alchemy 2.0.0-beta.16 → 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 +79 -6
- package/bin/alchemy.js.map +1 -1
- package/bin/cli.js +9 -7
- package/bin/commands/deploy.ts +11 -2
- package/bin/commands/profile.ts +21 -1
- 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 +2 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.js +6 -5
- package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
- package/lib/Cloudflare/ApiToken/Common.d.ts +5 -11
- 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.js +4 -4
- package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -1
- 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/Providers.d.ts.map +1 -1
- package/lib/GitHub/Providers.js +2 -1
- package/lib/GitHub/Providers.js.map +1 -1
- package/lib/GitHub/Secret.d.ts +2 -2
- package/lib/GitHub/Secret.d.ts.map +1 -1
- package/lib/GitHub/Variable.d.ts +2 -2
- package/lib/GitHub/Variable.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Auth/Credentials.ts +17 -1
- package/src/Auth/Profile.ts +15 -0
- package/src/Cloudflare/ApiToken/AccountApiToken.ts +6 -5
- package/src/Cloudflare/ApiToken/Common.ts +6 -18
- package/src/Cloudflare/ApiToken/UserApiToken.ts +4 -4
- package/src/GitHub/Comment.ts +4 -1
- package/src/GitHub/Providers.ts +8 -2
- package/src/GitHub/Secret.ts +2 -2
- package/src/GitHub/Variable.ts +2 -2
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/profile.ts
CHANGED
|
@@ -6,7 +6,9 @@ import * as Logger from "effect/Logger";
|
|
|
6
6
|
import { Command } from "effect/unstable/cli";
|
|
7
7
|
|
|
8
8
|
import { AuthProviders } from "../../src/Auth/AuthProvider.ts";
|
|
9
|
+
import { deleteProfileCredentials } from "../../src/Auth/Credentials.ts";
|
|
9
10
|
import {
|
|
11
|
+
deleteProfile,
|
|
10
12
|
getProfile,
|
|
11
13
|
readConfig,
|
|
12
14
|
withProfileOverride,
|
|
@@ -81,6 +83,24 @@ const showCommand = Command.make(
|
|
|
81
83
|
}),
|
|
82
84
|
);
|
|
83
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
|
+
|
|
84
104
|
export const profileCommand = Command.make("profile", {}).pipe(
|
|
85
|
-
Command.withSubcommands([showCommand]),
|
|
105
|
+
Command.withSubcommands([showCommand, clearCommand]),
|
|
86
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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"}
|
|
@@ -32,6 +32,7 @@ export type AccountApiToken = Resource<"Cloudflare.AccountApiToken", ApiTokenPro
|
|
|
32
32
|
* ```typescript
|
|
33
33
|
* const token = yield* Cloudflare.AccountApiToken("ci-token", {
|
|
34
34
|
* name: "my-ci-token",
|
|
35
|
+
* accountId,
|
|
35
36
|
* policies: [
|
|
36
37
|
* {
|
|
37
38
|
* effect: "allow",
|
|
@@ -39,7 +40,7 @@ export type AccountApiToken = Resource<"Cloudflare.AccountApiToken", ApiTokenPro
|
|
|
39
40
|
* "Workers Scripts Write",
|
|
40
41
|
* "Workers KV Storage Write",
|
|
41
42
|
* ],
|
|
42
|
-
* resources: {
|
|
43
|
+
* resources: { [`com.cloudflare.api.account.${accountId}`]: "*" },
|
|
43
44
|
* },
|
|
44
45
|
* ],
|
|
45
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,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
|
|
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
|
* });
|
|
@@ -72,8 +73,8 @@ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Ef
|
|
|
72
73
|
}
|
|
73
74
|
const oldName = output?.name ?? (yield* resolveName(id, olds?.name));
|
|
74
75
|
const newName = yield* resolveName(id, news.name);
|
|
75
|
-
const oldPolicyFp = policyFingerprint(resolvePolicies(olds?.policies ?? []
|
|
76
|
-
const newPolicyFp = policyFingerprint(resolvePolicies(news.policies
|
|
76
|
+
const oldPolicyFp = policyFingerprint(resolvePolicies(olds?.policies ?? []));
|
|
77
|
+
const newPolicyFp = policyFingerprint(resolvePolicies(news.policies));
|
|
77
78
|
const oldCondFp = conditionFingerprint(olds?.condition);
|
|
78
79
|
const newCondFp = conditionFingerprint(news.condition);
|
|
79
80
|
if (oldName !== newName ||
|
|
@@ -87,7 +88,7 @@ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Ef
|
|
|
87
88
|
create: Effect.fn(function* ({ id, news }) {
|
|
88
89
|
const accountId = news.accountId ?? defaultAccountId;
|
|
89
90
|
const name = yield* resolveName(id, news.name);
|
|
90
|
-
const policies = resolvePolicies(news.policies
|
|
91
|
+
const policies = resolvePolicies(news.policies);
|
|
91
92
|
const result = yield* createToken({
|
|
92
93
|
accountId,
|
|
93
94
|
name,
|
|
@@ -104,7 +105,7 @@ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Ef
|
|
|
104
105
|
update: Effect.fn(function* ({ id, news, output }) {
|
|
105
106
|
const accountId = news.accountId ?? defaultAccountId;
|
|
106
107
|
const name = yield* resolveName(id, news.name);
|
|
107
|
-
const policies = resolvePolicies(news.policies
|
|
108
|
+
const policies = resolvePolicies(news.policies);
|
|
108
109
|
const result = yield* updateToken({
|
|
109
110
|
accountId,
|
|
110
111
|
tokenId: output.tokenId,
|
|
@@ -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;AAqBrB
|
|
1
|
+
{"version":3,"file":"AccountApiToken.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/AccountApiToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import { type PermissionGroupName } from "./PermissionGroups.ts";
|
|
|
2
2
|
/**
|
|
3
3
|
* Resource keys recognized by Cloudflare API token policies.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Cloudflare requires the account ID to be embedded directly in the resource
|
|
6
|
+
* key (e.g. `com.cloudflare.api.account.<accountId>`); pass the fully-qualified
|
|
7
|
+
* key — no rewriting is performed.
|
|
8
8
|
*
|
|
9
9
|
* @see https://developers.cloudflare.com/fundamentals/api/reference/permissions/
|
|
10
10
|
*/
|
|
11
|
-
export type ApiTokenResourceKey =
|
|
11
|
+
export type ApiTokenResourceKey = `com.cloudflare.api.account.${string}` | `com.cloudflare.api.account.zone.${string}` | `com.cloudflare.edge.r2.bucket.${string}` | (string & {});
|
|
12
12
|
/**
|
|
13
13
|
* A permission group reference: either a typed Cloudflare permission-group
|
|
14
14
|
* name (resolved against the static catalog) or an explicit `{ id }` for
|
|
@@ -78,13 +78,7 @@ export declare const resolvePermissionGroup: (ref: ApiTokenPermissionGroupRef) =
|
|
|
78
78
|
value?: string;
|
|
79
79
|
};
|
|
80
80
|
};
|
|
81
|
-
|
|
82
|
-
* Rewrite the bare `"com.cloudflare.api.account"` key to the
|
|
83
|
-
* account-scoped form. Pass `accountId: undefined` to leave keys unchanged
|
|
84
|
-
* (e.g. for user-owned tokens whose policies don't carry an account scope).
|
|
85
|
-
*/
|
|
86
|
-
export declare const resolveResources: (resources: ApiTokenPolicy["resources"], accountId: string | undefined) => Record<string, string>;
|
|
87
|
-
export declare const resolvePolicies: (policies: ApiTokenPolicy[], accountId: string | undefined) => ResolvedPolicy[];
|
|
81
|
+
export declare const resolvePolicies: (policies: ApiTokenPolicy[]) => ResolvedPolicy[];
|
|
88
82
|
export declare const policyFingerprint: (policies: ResolvedPolicy[]) => string;
|
|
89
83
|
export declare const conditionFingerprint: (condition: ApiTokenCondition | undefined) => string;
|
|
90
84
|
export declare const buildConditionPayload: (condition: ApiTokenCondition | undefined) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/Common.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAC3B,
|
|
1
|
+
{"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/Common.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAC3B,8BAA8B,MAAM,EAAE,GACtC,mCAAmC,MAAM,EAAE,GAC3C,iCAAiC,MAAM,EAAE,GACzC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAClC,mBAAmB,GACnB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;IAC/C,SAAS,EAAE;SAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,MAAM;KAAE,CAAC;CACpD;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE;QACV,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,gBAAgB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IAC5E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,KAAK,0BAA0B;;;;;;cA7CrC,MAAM;gBAAU,MAAM;;CA0DtD,CAAC;AAaF,eAAO,MAAM,eAAe,GAC1B,UAAU,cAAc,EAAE,KACzB,cAAc,EAKZ,CAAC;AAEN,eAAO,MAAM,iBAAiB,GAAI,UAAU,cAAc,EAAE,KAAG,MAW5D,CAAC;AAEJ,eAAO,MAAM,oBAAoB,GAC/B,WAAW,iBAAiB,GAAG,SAAS,KACvC,MAIC,CAAC;AAEL,eAAO,MAAM,qBAAqB,GAChC,WAAW,iBAAiB,GAAG,SAAS;;;;;aAW3B,CAAC"}
|
|
@@ -11,29 +11,19 @@ export const resolvePermissionGroup = (ref) => {
|
|
|
11
11
|
}
|
|
12
12
|
return ref.meta ? { id: ref.id, meta: ref.meta } : { id: ref.id };
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
* Rewrite the bare `"com.cloudflare.api.account"` key to the
|
|
16
|
-
* account-scoped form. Pass `accountId: undefined` to leave keys unchanged
|
|
17
|
-
* (e.g. for user-owned tokens whose policies don't carry an account scope).
|
|
18
|
-
*/
|
|
19
|
-
export const resolveResources = (resources, accountId) => {
|
|
14
|
+
const resolveResources = (resources) => {
|
|
20
15
|
const out = {};
|
|
21
16
|
for (const [key, value] of Object.entries(resources)) {
|
|
22
17
|
if (value === undefined)
|
|
23
18
|
continue;
|
|
24
|
-
|
|
25
|
-
out[`com.cloudflare.api.account.${accountId}`] = value;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
out[key] = value;
|
|
29
|
-
}
|
|
19
|
+
out[key] = value;
|
|
30
20
|
}
|
|
31
21
|
return out;
|
|
32
22
|
};
|
|
33
|
-
export const resolvePolicies = (policies
|
|
23
|
+
export const resolvePolicies = (policies) => policies.map((policy) => ({
|
|
34
24
|
effect: policy.effect,
|
|
35
25
|
permissionGroups: policy.permissionGroups.map(resolvePermissionGroup),
|
|
36
|
-
resources: resolveResources(policy.resources
|
|
26
|
+
resources: resolveResources(policy.resources),
|
|
37
27
|
}));
|
|
38
28
|
export const policyFingerprint = (policies) => JSON.stringify(policies.map((p) => ({
|
|
39
29
|
effect: p.effect,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/Common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/Common.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,8 +58,8 @@ export const UserApiTokenProvider = () => Provider.effect(UserApiToken, Effect.g
|
|
|
58
58
|
return undefined;
|
|
59
59
|
const oldName = output?.name ?? (yield* resolveName(id, olds?.name));
|
|
60
60
|
const newName = yield* resolveName(id, news.name);
|
|
61
|
-
const oldPolicyFp = policyFingerprint(resolvePolicies(olds?.policies ?? []
|
|
62
|
-
const newPolicyFp = policyFingerprint(resolvePolicies(news.policies
|
|
61
|
+
const oldPolicyFp = policyFingerprint(resolvePolicies(olds?.policies ?? []));
|
|
62
|
+
const newPolicyFp = policyFingerprint(resolvePolicies(news.policies));
|
|
63
63
|
const oldCondFp = conditionFingerprint(olds?.condition);
|
|
64
64
|
const newCondFp = conditionFingerprint(news.condition);
|
|
65
65
|
if (oldName !== newName ||
|
|
@@ -72,7 +72,7 @@ export const UserApiTokenProvider = () => Provider.effect(UserApiToken, Effect.g
|
|
|
72
72
|
}),
|
|
73
73
|
create: Effect.fn(function* ({ id, news }) {
|
|
74
74
|
const name = yield* resolveName(id, news.name);
|
|
75
|
-
const policies = resolvePolicies(news.policies
|
|
75
|
+
const policies = resolvePolicies(news.policies);
|
|
76
76
|
const result = yield* createToken({
|
|
77
77
|
name,
|
|
78
78
|
policies,
|
|
@@ -87,7 +87,7 @@ export const UserApiTokenProvider = () => Provider.effect(UserApiToken, Effect.g
|
|
|
87
87
|
}),
|
|
88
88
|
update: Effect.fn(function* ({ id, news, output }) {
|
|
89
89
|
const name = yield* resolveName(id, news.name);
|
|
90
|
-
const policies = resolvePolicies(news.policies
|
|
90
|
+
const policies = resolvePolicies(news.policies);
|
|
91
91
|
const result = yield* updateToken({
|
|
92
92
|
tokenId: output.tokenId,
|
|
93
93
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserApiToken.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/UserApiToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,kCAAkC,CAAC;AACzD,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;AAE7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAEhB,MAAM,aAAa,CAAC;AAmBrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAe,yBAAyB,CAAC,CAAC;AAI9E,MAAM,WAAW,GAAG,CAAC,EAAU,EAAE,IAAwB,EAAE,EAAE,CAC3D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CACvC,QAAQ,CAAC,MAAM,CACb,YAAY,EACZ,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAEtC,MAAM,eAAe,GAAG,CACtB,SAIC,EACD,KAAgC,EACR,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;QAC1B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,QAAQ;QACpC,KAAK;KACN,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,CAAC,SAAS,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;YACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,iBAAiB,CACnC,eAAe,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"UserApiToken.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/UserApiToken.ts"],"names":[],"mappings":"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"}
|
package/lib/GitHub/Comment.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Provider from "../Provider.ts";
|
|
2
2
|
import { Resource } from "../Resource.ts";
|
|
3
|
+
import * as GitHub from "./Providers.ts";
|
|
3
4
|
export interface CommentProps {
|
|
4
5
|
/**
|
|
5
6
|
* Repository owner (user or organization).
|
|
@@ -47,7 +48,7 @@ export interface Comment extends Resource<"GitHub.Comment", CommentProps, {
|
|
|
47
48
|
* ISO-8601 timestamp of the last update.
|
|
48
49
|
*/
|
|
49
50
|
updatedAt: string;
|
|
50
|
-
}> {
|
|
51
|
+
}, never, GitHub.Providers> {
|
|
51
52
|
}
|
|
52
53
|
/**
|
|
53
54
|
* A GitHub issue or pull request comment.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Comment.d.ts","sourceRoot":"","sources":["../../src/GitHub/Comment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Comment.d.ts","sourceRoot":"","sources":["../../src/GitHub/Comment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CACvC,gBAAgB,EAChB,YAAY,EACZ;IACE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,EACD,KAAK,EACL,MAAM,CAAC,SAAS,CACjB;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,eAAO,MAAM,OAAO,iDAAsC,CAAC;AAY3D,eAAO,MAAM,eAAe,8EAiExB,CAAC"}
|
package/lib/GitHub/Comment.js
CHANGED
|
@@ -3,6 +3,7 @@ import * as Effect from "effect/Effect";
|
|
|
3
3
|
import * as Provider from "../Provider.js";
|
|
4
4
|
import { Resource } from "../Resource.js";
|
|
5
5
|
import { dedent } from "../Util/dedent.js";
|
|
6
|
+
import * as GitHub from "./Providers.js";
|
|
6
7
|
/**
|
|
7
8
|
* A GitHub issue or pull request comment.
|
|
8
9
|
*
|