void 0.21.1 → 0.21.2
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/README.md +3 -2
- package/dist/{auth-cmd-g_ymMkUe.mjs → account-cmd-D8OC-U7y.mjs} +8 -8
- package/dist/{auth-link-DFvxIyZi.mjs → auth-link-BYFeMJAp.mjs} +3 -3
- package/dist/auth-router-OHZNmrb_.mjs +74 -0
- package/dist/{build-cmd-wJAv808h.mjs → build-cmd-Bft7EY51.mjs} +1 -1
- package/dist/{cache-Be0Fu5Ka.mjs → cache-CKV1Gz2w.mjs} +1 -1
- package/dist/{cancel-deploy-BgmyOwhe.mjs → cancel-deploy-BAKmkX4f.mjs} +1 -1
- package/dist/cli/cli.mjs +104 -52
- package/dist/{connect-LnvW4HKx.mjs → connect-DLx1pRYk.mjs} +3 -3
- package/dist/{db-Mzv88E1C.mjs → db-B98_UV4H.mjs} +6 -6
- package/dist/{delete-Ri6JemSU.mjs → delete-BEEyqlwd.mjs} +1 -1
- package/dist/{deploy-DEsMVrCY.mjs → deploy-Bsymb0_c.mjs} +3 -3
- package/dist/{deploy-DAH2-m_-.mjs → deploy-CsjbRNyv.mjs} +1 -1
- package/dist/{domain-BA37Ye7T.mjs → domain-Av2AkLQP.mjs} +1 -1
- package/dist/{email-C5NsxrQG.mjs → email-CUqa6TtH.mjs} +2 -2
- package/dist/{env-U_ohASB0.mjs → env-D4RIGEzz.mjs} +1 -1
- package/dist/{github-cmd-DsrkweIl.mjs → github-cmd-BEK4VprE.mjs} +3 -3
- package/dist/{help-sBhFH6pi.mjs → help-iQOt7WHk.mjs} +39 -8
- package/dist/help-r_vrpH_d.mjs +2 -0
- package/dist/index.mjs +3 -3
- package/dist/{init-C--Yyj1b.mjs → init-D5niUPAz.mjs} +2 -2
- package/dist/{link-BC-mNG9-.mjs → link-3lGrfXzd.mjs} +1 -1
- package/dist/{list-DHU1Wj6c.mjs → list-CVjGr_C6.mjs} +1 -1
- package/dist/{login-jKe_0QZL.mjs → login-BgQJzxAl.mjs} +2 -2
- package/dist/login-Bz0zEPoy.mjs +2 -0
- package/dist/{logs-BG11f5PR.mjs → logs-DbzD-QDf.mjs} +1 -1
- package/dist/{operator-cmd-BwAS2XZt.mjs → operator-cmd-CR6Lxzt0.mjs} +3 -3
- package/dist/{platform-auth-config-C-hv-_Ok.mjs → platform-auth-config-De7BqRJm.mjs} +2 -2
- package/dist/{platform-auth-protection-DjTE5Hj-.mjs → platform-auth-protection-Dcat-6zu.mjs} +2 -2
- package/dist/{platform-auth-recovery-Cr0r8TEb.mjs → platform-auth-recovery-C9gsM640.mjs} +2 -2
- package/dist/{platform-cmd-DE6dw45v.mjs → platform-cmd-Cl9Uhzru.mjs} +1 -1
- package/dist/{platform-cmd-0tEh2ZtA.mjs → platform-cmd-CudokNIg.mjs} +3 -3
- package/dist/{platform-domain-B_7x6Iqx.mjs → platform-domain-Ckpd2kXw.mjs} +2 -2
- package/dist/{platform-lifecycle-Di0LbhPM.mjs → platform-lifecycle-DVzM2T4j.mjs} +7 -7
- package/dist/{platform-lifecycle-Dhx9Pnub.mjs → platform-lifecycle-DlpiGcjr.mjs} +1 -1
- package/dist/{platform-management-B9LUtMt9.mjs → platform-management-44Bxd3YC.mjs} +1 -1
- package/dist/{platform-management-eaiaU3uM.mjs → platform-management-ibuS1as0.mjs} +1 -1
- package/dist/{platform-recovery-BxfA8E5C.mjs → platform-recovery-D_KmvdSk.mjs} +2 -2
- package/dist/{project-cmd-DrnRJdep.mjs → project-cmd-BuF9doku.mjs} +12 -12
- package/dist/{project-team-CzRbO_kA.mjs → project-team-B1Tia8vd.mjs} +2 -2
- package/dist/{requests-DwrqUQZ8.mjs → requests-CphRF98D.mjs} +1 -1
- package/dist/{rollback-B4tFWmkN.mjs → rollback-BYHJV2yD.mjs} +1 -1
- package/dist/{secret-UtrRjhEO.mjs → secret-Rt9c4Ttw.mjs} +1 -1
- package/package.json +7 -7
- package/skills/migrate-vite-cloudflare-to-void/SKILL.md +1 -1
- package/skills/void/SKILL.md +4 -2
- package/skills/void/docs/guide/platform/administration/access.md +1 -1
- package/skills/void/docs/guide/project-collaboration.md +1 -1
- package/skills/void/docs/reference/cli.md +25 -10
- package/skills/void/docs/reference/config.md +1 -1
- package/dist/help-B403BLBB.mjs +0 -2
- package/dist/login-BwiopVdg.mjs +0 -2
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ for every command.
|
|
|
11
11
|
|
|
12
12
|
Use `void platform config auth` to manage login methods and company signup.
|
|
13
13
|
Cloudflare Access protection has separate create/connect controls. Users can
|
|
14
|
-
link another enabled login to their account with `void
|
|
14
|
+
link another enabled login to their account with `void account link`.
|
|
15
15
|
|
|
16
16
|
## What It Covers
|
|
17
17
|
|
|
@@ -57,7 +57,8 @@ export default defineConfig({
|
|
|
57
57
|
|
|
58
58
|
- `voidPlugin()` — Vite integration, routing, pages mode, codegen, migrations, packaging
|
|
59
59
|
- `void prepare` — generate `.void` artifacts for CI, editors, and fresh clones
|
|
60
|
-
- `void auth login` —
|
|
60
|
+
- `void auth login` — sign in to the project's saved Cloudflare or Void destination
|
|
61
|
+
- `void account login` — platform auth
|
|
61
62
|
- `void connect [url]` — choose Cloudflare or a Void platform, sign in, and save the deployment destination
|
|
62
63
|
- `void platform *` — list, select, inspect, install, recover, repair, upgrade, disable, and safely uninstall a company platform
|
|
63
64
|
- `void deploy` — build and deploy to the saved Cloudflare or Void target
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { c as getToken, p as removeToken } from "./auth-B9_D6ygs.mjs";
|
|
2
2
|
import { j as log } from "./dist-Dn6nn2IU.mjs";
|
|
3
3
|
import { n as PlatformClient } from "./client-PdAJ-F0t.mjs";
|
|
4
|
-
import { n as runLoginCommand } from "./login-
|
|
4
|
+
import { n as runLoginCommand } from "./login-BgQJzxAl.mjs";
|
|
5
5
|
import { execSync } from "node:child_process";
|
|
6
|
-
//#region src/cli/
|
|
7
|
-
async function
|
|
6
|
+
//#region src/cli/account-cmd.ts
|
|
7
|
+
async function runAccountCommand(root, args) {
|
|
8
8
|
switch (args.subcommand) {
|
|
9
9
|
case "login": return runLoginCommand(root);
|
|
10
|
-
case "link": return import("./auth-link-
|
|
10
|
+
case "link": return import("./auth-link-BYFeMJAp.mjs").then(({ runAuthLink }) => runAuthLink(root, args.connectionId));
|
|
11
11
|
case "logout":
|
|
12
12
|
if (removeToken(root)) log.success("Logged out.");
|
|
13
13
|
else log.info("Not logged in.");
|
|
@@ -15,7 +15,7 @@ async function runAuthCommand(root, args) {
|
|
|
15
15
|
case "whoami": {
|
|
16
16
|
const token = getToken(root);
|
|
17
17
|
if (!token) {
|
|
18
|
-
log.error("Not logged in. Run `void
|
|
18
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
19
19
|
process.exit(1);
|
|
20
20
|
}
|
|
21
21
|
const user = await new PlatformClient(token, { root }).whoami();
|
|
@@ -26,7 +26,7 @@ async function runAuthCommand(root, args) {
|
|
|
26
26
|
if (!getToken(root)) await runLoginCommand(root);
|
|
27
27
|
const token = getToken(root);
|
|
28
28
|
if (!token) {
|
|
29
|
-
log.error("Login failed. Run `void
|
|
29
|
+
log.error("Login failed. Run `void account login` to try again.");
|
|
30
30
|
process.exit(1);
|
|
31
31
|
}
|
|
32
32
|
const platform = process.platform;
|
|
@@ -35,11 +35,11 @@ async function runAuthCommand(root, args) {
|
|
|
35
35
|
execSync(cmd, { input: token });
|
|
36
36
|
log.success("Token copied to clipboard.");
|
|
37
37
|
} catch {
|
|
38
|
-
log.warn("Could not copy to clipboard.
|
|
38
|
+
log.warn("Could not copy to clipboard. Run `void account token` again.");
|
|
39
39
|
}
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
//#endregion
|
|
45
|
-
export {
|
|
45
|
+
export { runAccountCommand };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { a as getApiUrl, c as getToken, d as openBrowser, g as savePlatformToken, h as runPlatformLogin } from "./auth-B9_D6ygs.mjs";
|
|
2
2
|
import { j as log } from "./dist-Dn6nn2IU.mjs";
|
|
3
3
|
import { n as PlatformClient } from "./client-PdAJ-F0t.mjs";
|
|
4
|
-
import { r as selectPlatformLoginMethod } from "./login-
|
|
5
|
-
import { t as discoverPlatform } from "./platform-cmd-
|
|
4
|
+
import { r as selectPlatformLoginMethod } from "./login-BgQJzxAl.mjs";
|
|
5
|
+
import { t as discoverPlatform } from "./platform-cmd-CudokNIg.mjs";
|
|
6
6
|
import { execFile } from "node:child_process";
|
|
7
7
|
//#region src/cli/auth-link.ts
|
|
8
8
|
async function runAuthLink(root, connectionId) {
|
|
9
9
|
const token = getToken(root);
|
|
10
|
-
if (!token) throw new Error("auth: Sign in to your existing account with `void
|
|
10
|
+
if (!token) throw new Error("auth: Sign in to your existing account with `void account login` first.");
|
|
11
11
|
const apiUrl = getApiUrl(root);
|
|
12
12
|
const platform = await discoverPlatform(apiUrl);
|
|
13
13
|
if (!platform.authentication) throw new Error("auth: This platform must be upgraded before linking login methods.");
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { o as listPlatformConnections } from "./platform-registry-BJbgZLS1.mjs";
|
|
2
|
+
import { i as readDeploymentPlatform } from "./project-CWNIPoXc.mjs";
|
|
3
|
+
import { I as select, W as isCancel } from "./dist-Dn6nn2IU.mjs";
|
|
4
|
+
//#region src/cli/auth-router.ts
|
|
5
|
+
async function chooseDestination(root, args, interactive) {
|
|
6
|
+
const saved = readDeploymentPlatform(root);
|
|
7
|
+
const platform = args.platform ?? (saved === "none" ? null : saved);
|
|
8
|
+
if (platform) return { platform };
|
|
9
|
+
if (!interactive) throw new Error("auth: No deployment destination is saved. Use `void auth login --platform cloudflare|void`, `void account login`, or `void cloudflare login`.");
|
|
10
|
+
const connections = listPlatformConnections();
|
|
11
|
+
const options = [
|
|
12
|
+
{
|
|
13
|
+
value: "cloudflare",
|
|
14
|
+
label: "Cloudflare",
|
|
15
|
+
hint: "Your own Cloudflare account"
|
|
16
|
+
},
|
|
17
|
+
...connections.map((connection) => ({
|
|
18
|
+
value: connection.apiUrl,
|
|
19
|
+
label: connection.displayName,
|
|
20
|
+
hint: connection.apiUrl
|
|
21
|
+
})),
|
|
22
|
+
...connections.length === 0 ? [{
|
|
23
|
+
value: "void",
|
|
24
|
+
label: "Void platform",
|
|
25
|
+
hint: "Use the current Void account origin"
|
|
26
|
+
}] : []
|
|
27
|
+
];
|
|
28
|
+
const selected = await select({
|
|
29
|
+
message: "Where do you want to authenticate?",
|
|
30
|
+
options
|
|
31
|
+
});
|
|
32
|
+
if (isCancel(selected) || typeof selected !== "string") throw new Error("auth: Cancelled.");
|
|
33
|
+
return selected === "cloudflare" ? { platform: "cloudflare" } : {
|
|
34
|
+
platform: "void",
|
|
35
|
+
...selected === "void" ? {} : { apiUrl: selected }
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async function runAuthRouter(root, args, interactive = Boolean(process.stdin.isTTY)) {
|
|
39
|
+
if (args.subcommand === "link") {
|
|
40
|
+
const { runAccountCommand } = await import("./account-cmd-D8OC-U7y.mjs");
|
|
41
|
+
await runAccountCommand(root, {
|
|
42
|
+
subcommand: "link",
|
|
43
|
+
...args.connectionId ? { connectionId: args.connectionId } : {}
|
|
44
|
+
});
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (args.subcommand === "token") {
|
|
48
|
+
const { runAccountCommand } = await import("./account-cmd-D8OC-U7y.mjs");
|
|
49
|
+
await runAccountCommand(root, { subcommand: "token" });
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const destination = await chooseDestination(root, args, interactive);
|
|
53
|
+
if (destination.platform === "cloudflare") {
|
|
54
|
+
const { runCloudflareCommand } = await import("./cloudflare-cmd-D6PrKn7o.mjs");
|
|
55
|
+
await runCloudflareCommand(root, { subcommand: args.subcommand === "whoami" || args.subcommand === "status" ? "status" : args.subcommand });
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const { runAccountCommand } = await import("./account-cmd-D8OC-U7y.mjs");
|
|
59
|
+
const subcommand = args.subcommand === "status" ? "whoami" : args.subcommand;
|
|
60
|
+
if (!destination.apiUrl) {
|
|
61
|
+
await runAccountCommand(root, { subcommand });
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const previous = process.env.VOID_API_URL;
|
|
65
|
+
process.env.VOID_API_URL = destination.apiUrl;
|
|
66
|
+
try {
|
|
67
|
+
await runAccountCommand(root, { subcommand });
|
|
68
|
+
} finally {
|
|
69
|
+
if (previous === void 0) delete process.env.VOID_API_URL;
|
|
70
|
+
else process.env.VOID_API_URL = previous;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//#endregion
|
|
74
|
+
export { runAuthRouter };
|
|
@@ -65,7 +65,7 @@ async function runBuildLogsCommand(root, args) {
|
|
|
65
65
|
intro(cliTitle("build logs"));
|
|
66
66
|
const token = getToken(root);
|
|
67
67
|
if (!token) {
|
|
68
|
-
log.error("Not logged in. Run `void
|
|
68
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
69
69
|
process.exit(1);
|
|
70
70
|
}
|
|
71
71
|
const client = new PlatformClient(token, { root });
|
|
@@ -10,7 +10,7 @@ async function runPurgeCacheCommand(root, projectSlug) {
|
|
|
10
10
|
intro(cliTitle("project purge-cache"));
|
|
11
11
|
const token = getToken(root);
|
|
12
12
|
if (!token) {
|
|
13
|
-
log.error("Not logged in. Run `void
|
|
13
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
14
14
|
process.exit(1);
|
|
15
15
|
}
|
|
16
16
|
const requestedSlug = getRequestedProjectSlug({ projectSlug });
|
|
@@ -15,7 +15,7 @@ async function runCancelDeployCommand(root, deployId) {
|
|
|
15
15
|
intro(cliTitle("project cancel"));
|
|
16
16
|
const token = getToken(root);
|
|
17
17
|
if (!token) {
|
|
18
|
-
log.error("Not logged in. Run `void
|
|
18
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
19
19
|
process.exit(1);
|
|
20
20
|
}
|
|
21
21
|
const linked = readProjectConfig(root);
|
package/dist/cli/cli.mjs
CHANGED
|
@@ -3,11 +3,53 @@ import { a as join } from "../dist-4WkAWhWx.mjs";
|
|
|
3
3
|
import { j as log } from "../dist-Dn6nn2IU.mjs";
|
|
4
4
|
import { n as getPackageDir } from "../agents-gni4eqBu.mjs";
|
|
5
5
|
import { t as formatCloudflareUserMessage } from "../cloudflare-user-output-Q-k0QoNQ.mjs";
|
|
6
|
-
import { a as operatorGroups, i as printVoidHeader, n as printGlobalHelp, o as parseOperatorArgs, r as printHelpPage, t as getHelpPath } from "../help-
|
|
6
|
+
import { a as operatorGroups, i as printVoidHeader, n as printGlobalHelp, o as parseOperatorArgs, r as printHelpPage, t as getHelpPath } from "../help-iQOt7WHk.mjs";
|
|
7
7
|
import { r as OperatorClientError } from "../operator-client-A0iex2yi.mjs";
|
|
8
8
|
import { readFileSync } from "node:fs";
|
|
9
9
|
import { PLATFORM_LOGIN_KINDS, parsePlatformLoginId } from "@void/platform";
|
|
10
10
|
import { parseArgs } from "node:util";
|
|
11
|
+
//#region src/cli/account-args.ts
|
|
12
|
+
const accountSubcommands = [
|
|
13
|
+
{
|
|
14
|
+
name: "login",
|
|
15
|
+
description: "Log in with an enabled platform login method"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "link",
|
|
19
|
+
description: "Link another login method to your account"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "logout",
|
|
23
|
+
description: "Log out and remove credentials"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "whoami",
|
|
27
|
+
description: "Show the logged-in username"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "token",
|
|
31
|
+
description: "Copy auth token to clipboard"
|
|
32
|
+
}
|
|
33
|
+
];
|
|
34
|
+
function parseAccountArgs(args) {
|
|
35
|
+
const [subcommand, extra, trailing] = args;
|
|
36
|
+
if (subcommand === "link") {
|
|
37
|
+
if (trailing || extra !== void 0 && !/^[a-z][a-z0-9_-]{0,63}$/.test(extra)) throw new Error("account: Usage: void account link [connection-id].");
|
|
38
|
+
return {
|
|
39
|
+
subcommand,
|
|
40
|
+
...extra ? { connectionId: extra } : {}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (!subcommand || ![
|
|
44
|
+
"login",
|
|
45
|
+
"logout",
|
|
46
|
+
"whoami",
|
|
47
|
+
"token"
|
|
48
|
+
].includes(subcommand)) throw new Error("account: Usage: void account <login|link|logout|whoami|token>.");
|
|
49
|
+
if (extra) throw new Error(`account: Unexpected argument '${extra}'.`);
|
|
50
|
+
return { subcommand };
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
11
53
|
//#region src/cli/args.ts
|
|
12
54
|
function parseDeployArgs(args) {
|
|
13
55
|
let parsed;
|
|
@@ -86,42 +128,45 @@ function parseDeployArgs(args) {
|
|
|
86
128
|
const authSubcommands = [
|
|
87
129
|
{
|
|
88
130
|
name: "login",
|
|
89
|
-
description: "
|
|
131
|
+
description: "Sign in to the selected deployment destination"
|
|
90
132
|
},
|
|
91
133
|
{
|
|
92
|
-
name: "
|
|
93
|
-
description: "
|
|
134
|
+
name: "status",
|
|
135
|
+
description: "Show the selected destination’s signed-in identity"
|
|
94
136
|
},
|
|
95
137
|
{
|
|
96
138
|
name: "logout",
|
|
97
|
-
description: "
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
name: "whoami",
|
|
101
|
-
description: "Show the logged-in username"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
name: "token",
|
|
105
|
-
description: "Copy auth token to clipboard"
|
|
139
|
+
description: "Sign out of the selected deployment destination"
|
|
106
140
|
}
|
|
107
141
|
];
|
|
108
142
|
function parseAuthArgs(args) {
|
|
109
|
-
const [subcommand,
|
|
110
|
-
if (subcommand === "link") {
|
|
111
|
-
if (trailing || extra !== void 0 && !/^[a-z][a-z0-9_-]{0,63}$/.test(extra)) throw new Error("auth: Usage: void auth link [connection-id].");
|
|
112
|
-
return {
|
|
113
|
-
subcommand,
|
|
114
|
-
...extra ? { connectionId: extra } : {}
|
|
115
|
-
};
|
|
116
|
-
}
|
|
143
|
+
const [subcommand, ...rest] = args;
|
|
117
144
|
if (!subcommand || ![
|
|
118
145
|
"login",
|
|
119
146
|
"logout",
|
|
147
|
+
"status",
|
|
120
148
|
"whoami",
|
|
149
|
+
"link",
|
|
121
150
|
"token"
|
|
122
|
-
].includes(subcommand)) throw new Error("auth: Usage: void auth <login|
|
|
123
|
-
|
|
124
|
-
|
|
151
|
+
].includes(subcommand)) throw new Error("auth: Usage: void auth <login|status|logout> [--platform cloudflare|void].");
|
|
152
|
+
let platform;
|
|
153
|
+
let connectionId;
|
|
154
|
+
for (let index = 0; index < rest.length; index++) {
|
|
155
|
+
const value = rest[index];
|
|
156
|
+
if (value === "--platform") {
|
|
157
|
+
const target = rest[++index];
|
|
158
|
+
if (target !== "cloudflare" && target !== "void") throw new Error("auth: --platform must be cloudflare or void.");
|
|
159
|
+
if (platform) throw new Error("auth: --platform may be supplied only once.");
|
|
160
|
+
platform = target;
|
|
161
|
+
} else if (subcommand === "link" && !connectionId && /^[a-z][a-z0-9_-]{0,63}$/.test(value)) connectionId = value;
|
|
162
|
+
else throw new Error(`auth: Unexpected argument '${value}'.`);
|
|
163
|
+
}
|
|
164
|
+
if ((subcommand === "link" || subcommand === "token") && platform === "cloudflare") throw new Error(`auth: ${subcommand} belongs to a Void account. Use \`void account ${subcommand}\`.`);
|
|
165
|
+
return {
|
|
166
|
+
subcommand,
|
|
167
|
+
...platform ? { platform } : {},
|
|
168
|
+
...connectionId ? { connectionId } : {}
|
|
169
|
+
};
|
|
125
170
|
}
|
|
126
171
|
//#endregion
|
|
127
172
|
//#region src/cli/build-args.ts
|
|
@@ -1972,7 +2017,7 @@ if (helpPath) {
|
|
|
1972
2017
|
log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
|
|
1973
2018
|
process.exit(1);
|
|
1974
2019
|
}
|
|
1975
|
-
import("../deploy-
|
|
2020
|
+
import("../deploy-CsjbRNyv.mjs").then(({ runDeploy }) => {
|
|
1976
2021
|
runDeploy(root, {
|
|
1977
2022
|
projectSlug: deployArgs.projectSlug,
|
|
1978
2023
|
dir: deployArgs.dir,
|
|
@@ -1990,24 +2035,25 @@ if (helpPath) {
|
|
|
1990
2035
|
});
|
|
1991
2036
|
} else if (command === "connect") (async () => {
|
|
1992
2037
|
const parsed = parseConnectArgs(args.slice(1));
|
|
1993
|
-
const { runConnectCommand } = await import("../connect-
|
|
2038
|
+
const { runConnectCommand } = await import("../connect-DLx1pRYk.mjs");
|
|
1994
2039
|
await runConnectCommand(process.cwd(), parsed);
|
|
1995
2040
|
})().catch((err) => {
|
|
1996
2041
|
log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
|
|
1997
2042
|
process.exit(1);
|
|
1998
2043
|
});
|
|
1999
|
-
else if (command === "auth") runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (root, parsed) => import("../auth-
|
|
2000
|
-
else if (command === "
|
|
2044
|
+
else if (command === "auth") runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (root, parsed) => import("../auth-router-OHZNmrb_.mjs").then(({ runAuthRouter }) => runAuthRouter(root, parsed)));
|
|
2045
|
+
else if (command === "account") runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (root, parsed) => import("../account-cmd-D8OC-U7y.mjs").then(({ runAccountCommand }) => runAccountCommand(root, parsed)));
|
|
2046
|
+
else if (command === "platform") runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (root, parsed) => import("../platform-cmd-Cl9Uhzru.mjs").then(({ runPlatformCommand }) => runPlatformCommand(root, parsed)));
|
|
2001
2047
|
else if (command === "cloudflare") runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (root, parsed) => import("../cloudflare-cmd-D6PrKn7o.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(root, parsed)));
|
|
2002
|
-
else if (command === "project") runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (root, parsed) => import("../project-cmd-
|
|
2003
|
-
else if (command === "secret") runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (root, parsed) => import("../secret-
|
|
2004
|
-
else if (command === "domain") runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (root, parsed) => import("../domain-
|
|
2005
|
-
else if (command === "email") runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (root, parsed) => import("../email-
|
|
2006
|
-
else if (command === "db") runSubcommandGroup("db", dbSubcommands, parseDbArgs, (root, parsed) => import("../db-
|
|
2007
|
-
else if (command === "env") runSubcommandGroup("env", envSubcommands, parseEnvArgs, (root, parsed) => import("../env-
|
|
2048
|
+
else if (command === "project") runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (root, parsed) => import("../project-cmd-BuF9doku.mjs").then(({ runProjectCommand }) => runProjectCommand(root, parsed)));
|
|
2049
|
+
else if (command === "secret") runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (root, parsed) => import("../secret-Rt9c4Ttw.mjs").then(({ runSecretCommand }) => runSecretCommand(root, parsed)));
|
|
2050
|
+
else if (command === "domain") runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (root, parsed) => import("../domain-Av2AkLQP.mjs").then(({ runDomainCommand }) => runDomainCommand(root, parsed)));
|
|
2051
|
+
else if (command === "email") runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (root, parsed) => import("../email-CUqa6TtH.mjs").then(({ runEmailCommand }) => runEmailCommand(root, parsed)));
|
|
2052
|
+
else if (command === "db") runSubcommandGroup("db", dbSubcommands, parseDbArgs, (root, parsed) => import("../db-B98_UV4H.mjs").then(({ runDbCommand }) => runDbCommand(root, parsed)));
|
|
2053
|
+
else if (command === "env") runSubcommandGroup("env", envSubcommands, parseEnvArgs, (root, parsed) => import("../env-D4RIGEzz.mjs").then(({ runEnvCommand }) => runEnvCommand(root, parsed)));
|
|
2008
2054
|
else if (command === "gen") runSubcommandGroup("gen", genSubcommands, parseGenArgs, (root, parsed) => import("../gen-B87rlalt.mjs").then(({ runGenCommand }) => runGenCommand(root, parsed)));
|
|
2009
|
-
else if (command === "github") runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (root, parsed) => import("../github-cmd-
|
|
2010
|
-
else if (command === "build") runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (root, parsed) => import("../build-cmd-
|
|
2055
|
+
else if (command === "github") runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (root, parsed) => import("../github-cmd-BEK4VprE.mjs").then(({ runGithubCommand }) => runGithubCommand(root, parsed)));
|
|
2056
|
+
else if (command === "build") runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (root, parsed) => import("../build-cmd-Bft7EY51.mjs").then(({ runBuildCommand }) => runBuildCommand(root, parsed)));
|
|
2011
2057
|
else if (command === "prepare") {
|
|
2012
2058
|
const root = process.cwd();
|
|
2013
2059
|
let prepareArgs;
|
|
@@ -2025,7 +2071,7 @@ else if (command === "prepare") {
|
|
|
2025
2071
|
});
|
|
2026
2072
|
} else if (command === "init") {
|
|
2027
2073
|
const root = process.cwd();
|
|
2028
|
-
import("../init-
|
|
2074
|
+
import("../init-D5niUPAz.mjs").then(({ runInitCommand, parseInitArgs }) => {
|
|
2029
2075
|
let initArgs;
|
|
2030
2076
|
try {
|
|
2031
2077
|
initArgs = parseInitArgs(args.slice(1));
|
|
@@ -2076,8 +2122,13 @@ else if (command === "prepare") {
|
|
|
2076
2122
|
},
|
|
2077
2123
|
{
|
|
2078
2124
|
name: "auth",
|
|
2079
|
-
hint: "login |
|
|
2080
|
-
description: "
|
|
2125
|
+
hint: "login | status | logout",
|
|
2126
|
+
description: "Sign in to this project’s Cloudflare or Void destination"
|
|
2127
|
+
},
|
|
2128
|
+
{
|
|
2129
|
+
name: "account",
|
|
2130
|
+
hint: "login | link | logout | whoami | token",
|
|
2131
|
+
description: "Manage your Void platform account"
|
|
2081
2132
|
},
|
|
2082
2133
|
{
|
|
2083
2134
|
name: "platform",
|
|
@@ -2152,12 +2203,12 @@ else if (command === "prepare") {
|
|
|
2152
2203
|
const root = process.cwd();
|
|
2153
2204
|
switch (cmd) {
|
|
2154
2205
|
case "connect": {
|
|
2155
|
-
const { runConnectCommand } = await import("../connect-
|
|
2206
|
+
const { runConnectCommand } = await import("../connect-DLx1pRYk.mjs");
|
|
2156
2207
|
await runConnectCommand(root, parseConnectArgs([]));
|
|
2157
2208
|
return;
|
|
2158
2209
|
}
|
|
2159
2210
|
case "init": {
|
|
2160
|
-
const { runInitCommand, parseInitArgs } = await import("../init-
|
|
2211
|
+
const { runInitCommand, parseInitArgs } = await import("../init-D5niUPAz.mjs");
|
|
2161
2212
|
await runInitCommand(root, parseInitArgs([]));
|
|
2162
2213
|
return;
|
|
2163
2214
|
}
|
|
@@ -2167,21 +2218,22 @@ else if (command === "prepare") {
|
|
|
2167
2218
|
return;
|
|
2168
2219
|
}
|
|
2169
2220
|
case "deploy": {
|
|
2170
|
-
const { runDeploy } = await import("../deploy-
|
|
2221
|
+
const { runDeploy } = await import("../deploy-CsjbRNyv.mjs");
|
|
2171
2222
|
await runDeploy(root);
|
|
2172
2223
|
return;
|
|
2173
2224
|
}
|
|
2174
|
-
case "auth": return runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (r, p) => import("../auth-
|
|
2175
|
-
case "
|
|
2225
|
+
case "auth": return runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (r, p) => import("../auth-router-OHZNmrb_.mjs").then(({ runAuthRouter }) => runAuthRouter(r, p)));
|
|
2226
|
+
case "account": return runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (r, p) => import("../account-cmd-D8OC-U7y.mjs").then(({ runAccountCommand }) => runAccountCommand(r, p)));
|
|
2227
|
+
case "platform": return runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (r, p) => import("../platform-cmd-Cl9Uhzru.mjs").then(({ runPlatformCommand }) => runPlatformCommand(r, p)));
|
|
2176
2228
|
case "cloudflare": return runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (r, p) => import("../cloudflare-cmd-D6PrKn7o.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(r, p)));
|
|
2177
|
-
case "project": return runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (r, p) => import("../project-cmd-
|
|
2178
|
-
case "secret": return runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (r, p) => import("../secret-
|
|
2179
|
-
case "domain": return runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (r, p) => import("../domain-
|
|
2180
|
-
case "github": return runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (r, p) => import("../github-cmd-
|
|
2181
|
-
case "build": return runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (r, p) => import("../build-cmd-
|
|
2182
|
-
case "email": return runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (r, p) => import("../email-
|
|
2183
|
-
case "db": return runSubcommandGroup("db", dbSubcommands, parseDbArgs, (r, p) => import("../db-
|
|
2184
|
-
case "env": return runSubcommandGroup("env", envSubcommands, parseEnvArgs, (r, p) => import("../env-
|
|
2229
|
+
case "project": return runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (r, p) => import("../project-cmd-BuF9doku.mjs").then(({ runProjectCommand }) => runProjectCommand(r, p)));
|
|
2230
|
+
case "secret": return runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (r, p) => import("../secret-Rt9c4Ttw.mjs").then(({ runSecretCommand }) => runSecretCommand(r, p)));
|
|
2231
|
+
case "domain": return runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (r, p) => import("../domain-Av2AkLQP.mjs").then(({ runDomainCommand }) => runDomainCommand(r, p)));
|
|
2232
|
+
case "github": return runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (r, p) => import("../github-cmd-BEK4VprE.mjs").then(({ runGithubCommand }) => runGithubCommand(r, p)));
|
|
2233
|
+
case "build": return runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (r, p) => import("../build-cmd-Bft7EY51.mjs").then(({ runBuildCommand }) => runBuildCommand(r, p)));
|
|
2234
|
+
case "email": return runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (r, p) => import("../email-CUqa6TtH.mjs").then(({ runEmailCommand }) => runEmailCommand(r, p)));
|
|
2235
|
+
case "db": return runSubcommandGroup("db", dbSubcommands, parseDbArgs, (r, p) => import("../db-B98_UV4H.mjs").then(({ runDbCommand }) => runDbCommand(r, p)));
|
|
2236
|
+
case "env": return runSubcommandGroup("env", envSubcommands, parseEnvArgs, (r, p) => import("../env-D4RIGEzz.mjs").then(({ runEnvCommand }) => runEnvCommand(r, p)));
|
|
2185
2237
|
case "gen": return runSubcommandGroup("gen", genSubcommands, parseGenArgs, (r, p) => import("../gen-B87rlalt.mjs").then(({ runGenCommand }) => runGenCommand(r, p)));
|
|
2186
2238
|
case "prepare": {
|
|
2187
2239
|
const { runPrepareCommand } = await import("../prepare-_T-Haxrr.mjs");
|
|
@@ -3,8 +3,8 @@ import { o as listPlatformConnections, s as normalizePlatformApiUrl } from "./pl
|
|
|
3
3
|
import { i as readDeploymentPlatform, l as writeDeploymentPlatform, u as writePlatformSelection } from "./project-CWNIPoXc.mjs";
|
|
4
4
|
import { I as select, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
|
|
5
5
|
import { i as isExpiredTokenError, n as PlatformClient } from "./client-PdAJ-F0t.mjs";
|
|
6
|
-
import { t as promptForLoginToken } from "./login-
|
|
7
|
-
import { i as saveDiscoveredPlatform, n as promptPlatformUrl, t as discoverPlatform } from "./platform-cmd-
|
|
6
|
+
import { t as promptForLoginToken } from "./login-BgQJzxAl.mjs";
|
|
7
|
+
import { i as saveDiscoveredPlatform, n as promptPlatformUrl, t as discoverPlatform } from "./platform-cmd-CudokNIg.mjs";
|
|
8
8
|
import { t as connectCloudflare } from "./cloudflare-connect-DloREDlc.mjs";
|
|
9
9
|
//#region src/cli/connect.ts
|
|
10
10
|
async function selectVoidPlatform(interactive) {
|
|
@@ -74,7 +74,7 @@ async function runConnectCommand(root, args, interactive = Boolean(process.stdin
|
|
|
74
74
|
const selected = Boolean(envUrl && normalizePlatformApiUrl(envUrl) !== discovery.apiUrl || process.env.VOID_TOKEN && !envUrl) ? false : writePlatformSelection(root, discovery);
|
|
75
75
|
log.success(`Connected to ${discovery.displayName} at ${discovery.apiUrl}.`);
|
|
76
76
|
if (!selected) log.info("Saved the connection. The current project link or environment still selects its existing destination.");
|
|
77
|
-
if (args.noLogin) log.info("Connection saved without login. Run `void
|
|
77
|
+
if (args.noLogin) log.info("Connection saved without login. Run `void account login` in a project using this platform when ready.");
|
|
78
78
|
else if (selected) log.info("Run `void project link` to select a project, then `void deploy`.");
|
|
79
79
|
}
|
|
80
80
|
//#endregion
|
|
@@ -622,7 +622,7 @@ async function runExecute(root, command, file, dialect, remote) {
|
|
|
622
622
|
}
|
|
623
623
|
const token = getToken(root);
|
|
624
624
|
if (!token) {
|
|
625
|
-
log.error("Not logged in. Run `void
|
|
625
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
626
626
|
process.exit(1);
|
|
627
627
|
}
|
|
628
628
|
const projectConfig = readProjectConfig(root);
|
|
@@ -826,7 +826,7 @@ async function runMigrate(root, dialect, remote) {
|
|
|
826
826
|
log.error(getErrorMessage(error));
|
|
827
827
|
process.exit(1);
|
|
828
828
|
}
|
|
829
|
-
const { checkWranglerMigrationApplySet, parseRootWranglerConfig } = await import("./deploy-
|
|
829
|
+
const { checkWranglerMigrationApplySet, parseRootWranglerConfig } = await import("./deploy-CsjbRNyv.mjs");
|
|
830
830
|
const applySet = await checkWranglerMigrationApplySet(context.operation.configPath, parseRootWranglerConfig(context.operation.configPath), binding, context.migrationsDir, rawMigrations);
|
|
831
831
|
if (!applySet.ok) {
|
|
832
832
|
log.error(applySet.reason);
|
|
@@ -846,7 +846,7 @@ async function runMigrate(root, dialect, remote) {
|
|
|
846
846
|
}
|
|
847
847
|
const token = getToken(root);
|
|
848
848
|
if (!token) {
|
|
849
|
-
log.error("Not logged in. Run `void
|
|
849
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
850
850
|
process.exit(1);
|
|
851
851
|
}
|
|
852
852
|
const config = readProjectConfig(root);
|
|
@@ -978,7 +978,7 @@ async function runStudio(root, dialect, remote) {
|
|
|
978
978
|
} else {
|
|
979
979
|
const token = getToken(root);
|
|
980
980
|
if (!token) {
|
|
981
|
-
log.error("Not logged in. Run `void
|
|
981
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
982
982
|
process.exit(1);
|
|
983
983
|
}
|
|
984
984
|
const projectConfig = readProjectConfig(root);
|
|
@@ -1109,7 +1109,7 @@ async function runRenameMigrations(root, dialect) {
|
|
|
1109
1109
|
const config = readProjectConfig(root);
|
|
1110
1110
|
let remoteRenamed = false;
|
|
1111
1111
|
if (config && !token) {
|
|
1112
|
-
log.error("Project is linked but you are not logged in.\nRun `void
|
|
1112
|
+
log.error("Project is linked but you are not logged in.\nRun `void account login` first so remote migration records can be updated.");
|
|
1113
1113
|
process.exit(1);
|
|
1114
1114
|
}
|
|
1115
1115
|
if (token && config) try {
|
|
@@ -1448,7 +1448,7 @@ async function runSetUrl(root) {
|
|
|
1448
1448
|
}
|
|
1449
1449
|
const token = getToken(root);
|
|
1450
1450
|
if (!token) {
|
|
1451
|
-
log.error("No auth token found. Run `void
|
|
1451
|
+
log.error("No auth token found. Run `void account login` first.");
|
|
1452
1452
|
process.exit(1);
|
|
1453
1453
|
}
|
|
1454
1454
|
const projectConfig = readProjectConfig(root);
|
|
@@ -10,7 +10,7 @@ async function runDeleteCommand(root, slug, options) {
|
|
|
10
10
|
intro(cliTitle("delete"));
|
|
11
11
|
const token = getToken(root);
|
|
12
12
|
if (!token) {
|
|
13
|
-
log.error("Not logged in. Run `void
|
|
13
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
14
14
|
process.exit(1);
|
|
15
15
|
}
|
|
16
16
|
const client = new PlatformClient(token, { root });
|
|
@@ -42,7 +42,7 @@ import { t as formatCloudflareUserMessage } from "./cloudflare-user-output-Q-k0Q
|
|
|
42
42
|
import { a as promptProjectSetupAction, i as promptProjectSelection, r as promptAndCreateProject } from "./create-project-BZBl_gQ0.mjs";
|
|
43
43
|
import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-Xvis70DG.mjs";
|
|
44
44
|
import { t as collectGitDeployMetadata } from "./git-metadata-D-gurjzG.mjs";
|
|
45
|
-
import { t as promptForLoginToken } from "./login-
|
|
45
|
+
import { t as promptForLoginToken } from "./login-BgQJzxAl.mjs";
|
|
46
46
|
import { createRequire } from "node:module";
|
|
47
47
|
import { copyFileSync, cpSync, createWriteStream, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
48
48
|
import { fileURLToPath } from "node:url";
|
|
@@ -7855,7 +7855,7 @@ async function runManagedDeploy(root, options, cliLog) {
|
|
|
7855
7855
|
}
|
|
7856
7856
|
token ??= getToken(root);
|
|
7857
7857
|
if (!token) {
|
|
7858
|
-
log.error("No auth token found. Run `void
|
|
7858
|
+
log.error("No auth token found. Run `void account login` first.");
|
|
7859
7859
|
process.exit(1);
|
|
7860
7860
|
}
|
|
7861
7861
|
const client = new PlatformClient(token, {
|
|
@@ -7942,7 +7942,7 @@ async function runManagedDeploy(root, options, cliLog) {
|
|
|
7942
7942
|
} catch (error) {
|
|
7943
7943
|
if (isExpiredTokenError(error)) {
|
|
7944
7944
|
if (getTokenSource() === "ci") throw new Error("`VOID_TOKEN` is invalid or expired. Generate a new token and try again.");
|
|
7945
|
-
if (!process.stdin.isTTY || reauthenticated) throw new Error("Auth token expired. Run `void
|
|
7945
|
+
if (!process.stdin.isTTY || reauthenticated) throw new Error("Auth token expired. Run `void account login` and try again.");
|
|
7946
7946
|
log.warn("Auth token expired. Re-authenticating...");
|
|
7947
7947
|
await promptForLoginToken(root);
|
|
7948
7948
|
log.success("Re-authenticated. Retrying deploy...");
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as parseRootWranglerConfig, f as checkWranglerMigrationApplySet, q as runDeploy } from "./deploy-
|
|
1
|
+
import { A as parseRootWranglerConfig, f as checkWranglerMigrationApplySet, q as runDeploy } from "./deploy-Bsymb0_c.mjs";
|
|
2
2
|
export { checkWranglerMigrationApplySet, parseRootWranglerConfig, runDeploy };
|
|
@@ -10,7 +10,7 @@ async function runDomainCommand(root, args) {
|
|
|
10
10
|
if (platform === "none") throw new Error("domain: Deployment is disabled. Run `void init` to choose a platform.");
|
|
11
11
|
const token = getToken(root);
|
|
12
12
|
if (!token) {
|
|
13
|
-
log.error("Not logged in. Run `void
|
|
13
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
14
14
|
process.exit(1);
|
|
15
15
|
}
|
|
16
16
|
const client = new PlatformClient(token, { root });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as join } from "./dist-4WkAWhWx.mjs";
|
|
2
2
|
import { c as import_picocolors, i as createSpinner } from "./output-CCH48AMM.mjs";
|
|
3
|
-
import { I as resolveDeployTransport, O as isWranglerNonInteractiveOrCI, Y as runWranglerAuthToken, _ as deriveWorkerName, _t as preflightEmail, gt as findEmailConfigConflicts, h as createDeployWranglerRunner, ht as createNodeEmailDns, k as loadProvisionModule, mt as applyEmailSetup, v as discoverRootWranglerConfig, vt as renderAddressMap, yt as renderEmailChecklist } from "./deploy-
|
|
3
|
+
import { I as resolveDeployTransport, O as isWranglerNonInteractiveOrCI, Y as runWranglerAuthToken, _ as deriveWorkerName, _t as preflightEmail, gt as findEmailConfigConflicts, h as createDeployWranglerRunner, ht as createNodeEmailDns, k as loadProvisionModule, mt as applyEmailSetup, v as discoverRootWranglerConfig, vt as renderAddressMap, yt as renderEmailChecklist } from "./deploy-Bsymb0_c.mjs";
|
|
4
4
|
import { n as readProjectPaths } from "./project-paths-CKQ-Q5JS.mjs";
|
|
5
5
|
import { c as getToken, d as openBrowser } from "./auth-B9_D6ygs.mjs";
|
|
6
6
|
import { o as readProjectConfig } from "./project-CWNIPoXc.mjs";
|
|
@@ -26,7 +26,7 @@ async function runEmailCommand(root, args) {
|
|
|
26
26
|
}
|
|
27
27
|
const token = getToken(root);
|
|
28
28
|
if (!token) {
|
|
29
|
-
log.error("Not logged in. Run `void
|
|
29
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
30
30
|
process.exit(1);
|
|
31
31
|
}
|
|
32
32
|
const client = new PlatformClient(token, { root });
|
|
@@ -31,7 +31,7 @@ async function runCheck(root, useRemoteSecrets) {
|
|
|
31
31
|
} else {
|
|
32
32
|
const token = getToken(root);
|
|
33
33
|
if (!token) {
|
|
34
|
-
log.error("--remote requires authentication. Run `void
|
|
34
|
+
log.error("--remote requires authentication. Run `void account login` first.");
|
|
35
35
|
process.exit(1);
|
|
36
36
|
}
|
|
37
37
|
const config = readProjectConfig(root);
|
|
@@ -102,7 +102,7 @@ function formatConnection(connection) {
|
|
|
102
102
|
async function runGithubCommand(root, args) {
|
|
103
103
|
const token = getToken(root);
|
|
104
104
|
if (!token) {
|
|
105
|
-
log.error("Not logged in. Run `void
|
|
105
|
+
log.error("Not logged in. Run `void account login` first.");
|
|
106
106
|
process.exit(1);
|
|
107
107
|
}
|
|
108
108
|
const client = new PlatformClient(token, { root });
|
|
@@ -122,7 +122,7 @@ async function runGithubCommand(root, args) {
|
|
|
122
122
|
*
|
|
123
123
|
* If the account has no linked GitHub identity, the server returns a 403 with
|
|
124
124
|
* the stable code `github_identity_required` (Task 3). Rather than telling the
|
|
125
|
-
* user to `void
|
|
125
|
+
* user to `void account login` (which risks forking into a second account), we run
|
|
126
126
|
* the link flow inline and retry the install URL exactly once.
|
|
127
127
|
*
|
|
128
128
|
* `linkIdentity` is injectable so tests can supply a fake linker instead of
|
|
@@ -155,7 +155,7 @@ async function runInstall(root, client, linkIdentity = runGithubLink) {
|
|
|
155
155
|
/**
|
|
156
156
|
* Link the current Void account (the logged-in CLI token holder) to a GitHub
|
|
157
157
|
* identity. Drives the platform's 3-endpoint link flow with a localhost +
|
|
158
|
-
* PKCE handshake, mirroring `void
|
|
158
|
+
* PKCE handshake, mirroring `void account login`.
|
|
159
159
|
*
|
|
160
160
|
* Exported so Task 5 can call it (e.g. when `github install` returns 403 for a
|
|
161
161
|
* GitHub-less account, prompt to link and retry). The success path is
|