void 0.20.1 → 0.20.3
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 +5 -1
- package/dist/{auth-W9WII-mN.mjs → auth-DPl6kck4.mjs} +46 -26
- package/dist/{auth-cmd-CAH62yDU.mjs → auth-cmd-CzwquNiP.mjs} +5 -4
- package/dist/auth-link-ElDTgF7j.mjs +28 -0
- package/dist/{build-cmd-CJvZvPQO.mjs → build-cmd-BpJe6boP.mjs} +3 -3
- package/dist/{cache-BlNeQjuP.mjs → cache-D98YTqeE.mjs} +3 -3
- package/dist/{cancel-deploy-CmlAZ9P6.mjs → cancel-deploy-CPbEQLMG.mjs} +3 -3
- package/dist/cf-access-DRsQRe6k.mjs +75 -0
- package/dist/cli/cli.mjs +309 -1958
- package/dist/cli/env-schema-probe.mjs +11 -2
- package/dist/client-BQBrZoCX.mjs +989 -0
- package/dist/{cloudflare-auth-B1QtTO1b.mjs → cloudflare-auth-6M5llVPC.mjs} +2 -2
- package/dist/{cloudflare-cmd-B6_OZx2V.mjs → cloudflare-cmd-4RPGN3KB.mjs} +2 -2
- package/dist/{cloudflare-connect-j5D4hhrG.mjs → cloudflare-connect-t1UU5svD.mjs} +2 -2
- package/dist/{cloudflare-operations-CPTpRW6d.mjs → cloudflare-operations-BzWnlC1_.mjs} +1 -1
- package/dist/{config-BQFq7QvD.mjs → config-uNGuFsI2.mjs} +1 -1
- package/dist/{connect-C04Wdy_h.mjs → connect-WCQZ_u3m.mjs} +6 -6
- package/dist/{create-project-ChGZ1DFd.mjs → create-project-D0oXA090.mjs} +7 -7
- package/dist/{db-D2d_mUsB.mjs → db-DJ-9qs3S.mjs} +47 -30
- package/dist/{delete-D8GigDk8.mjs → delete-BZ4-WaGm.mjs} +3 -3
- package/dist/{deploy-iXZ3F0N6.mjs → deploy-BAhhcg5q.mjs} +135 -117
- package/dist/{dev-inbox-DkgRWLkW.mjs → dev-inbox-P0u4tM8Y.mjs} +1 -1
- package/dist/{domain-B1VmoSr0.mjs → domain-BxAyhxXN.mjs} +4 -4
- package/dist/email-Bj7Cvdwp.mjs +795 -0
- package/dist/{env-D4Emu-M_.mjs → env-DBKmK4vc.mjs} +1 -0
- package/dist/{env-BcQzYgoG.mjs → env-DP_EErve.mjs} +5 -5
- package/dist/{env-validation-ENpMy6Ez.mjs → env-validation-CF6KvTRf.mjs} +3 -1
- package/dist/{gen-DI2YwdBM.mjs → gen-B_wPnVTK.mjs} +2 -2
- package/dist/{github-cmd-xItS5Zwf.mjs → github-cmd-C-z_xRrQ.mjs} +15 -21
- package/dist/{headers-D8QfRX9Y.mjs → headers-BAHwgHdW.mjs} +1 -1
- package/dist/help-CwOX-zmI.mjs +2216 -0
- package/dist/{inbound-afAcWeQ9.d.mts → inbound-CH5Mksyy.d.mts} +34 -48
- package/dist/{inbound-2d0zi2yS.mjs → inbound-aVHEUhKo.mjs} +130 -100
- package/dist/index.mjs +54 -17
- package/dist/{init-BD-9THgn.mjs → init-BGktCXgA.mjs} +11 -11
- package/dist/{link-RMdgjF1v.mjs → link-D2kbqhWb.mjs} +4 -4
- package/dist/{list-3F52R_yO.mjs → list-CvkK_G7k.mjs} +4 -4
- package/dist/{login-pV69H-ZO.mjs → login-WIjNc77c.mjs} +28 -10
- package/dist/{logs-DFHHD6wE.mjs → logs-dLUFCapG.mjs} +4 -4
- package/dist/{mime-BJD7d_qL.mjs → mime-D5Nmdzf7.mjs} +23 -9
- package/dist/{node-Dk3H2jmU.mjs → node-Ez5KW5rn.mjs} +2 -2
- package/dist/operator-auth-B3e08unv.mjs +52 -0
- package/dist/operator-client-LUZnlnYk.mjs +82 -0
- package/dist/{operator-cmd-DYWRbWUA.mjs → operator-cmd-CKJ7xIRs.mjs} +35 -55
- package/dist/{output-tFQLLj26.mjs → output-B0cfNSx5.mjs} +316 -2
- package/dist/pages/index.mjs +2 -2
- package/dist/platform-auth-config-CdVWRRJr.mjs +368 -0
- package/dist/platform-auth-protection-Drl0qhrn.mjs +219 -0
- package/dist/platform-auth-recovery-CmKEWpDo.mjs +310 -0
- package/dist/{platform-cmd-DxJ2FRwR.mjs → platform-cmd-5q_k56xS.mjs} +16 -6
- package/dist/{platform-domain-ChvbJkdy.mjs → platform-domain-4GiDlcqx.mjs} +4 -4
- package/dist/{platform-lifecycle-DN4MzJF_.mjs → platform-lifecycle-R9xAxvtG.mjs} +1716 -204
- package/dist/{platform-management-Db2PXw0B.mjs → platform-management-BfWsXHEW.mjs} +35 -7
- package/dist/{platform-recovery-C_YO-tIs.mjs → platform-recovery-CbK-I1FB.mjs} +6 -5
- package/dist/{prepare-CBetXvsN.mjs → prepare-CtDJjoOj.mjs} +2 -2
- package/dist/{prepare-BfJvFUtJ.mjs → prepare-blNRQvQl.mjs} +2 -2
- package/dist/prerender-render.d.mts +11 -0
- package/dist/prerender-render.mjs +111 -0
- package/dist/{project-cmd-Mo0V9yKS.mjs → project-cmd-CTdmnzvc.mjs} +32 -14
- package/dist/project-team-CGxsQe3_.mjs +132 -0
- package/dist/project-token-Cirx7uwZ.mjs +75 -0
- package/dist/{provision-Blnstcm2.mjs → provision-CSJOjjQk.mjs} +2 -0
- package/dist/{requests-BcKOVpRg.mjs → requests-4Nq59hOr.mjs} +3 -3
- package/dist/{rollback-Bx85-0xh.mjs → rollback-Dr7u0Ljx.mjs} +4 -4
- package/dist/runtime/ai.mjs +3 -2
- package/dist/runtime/email/testing.d.mts +1 -1
- package/dist/runtime/email/testing.mjs +3 -3
- package/dist/runtime/email-protocol.d.mts +15 -0
- package/dist/runtime/email-protocol.mjs +70 -0
- package/dist/runtime/email.d.mts +2 -2
- package/dist/runtime/email.mjs +189 -96
- package/dist/runtime/remote/index.mjs +54 -11
- package/dist/runtime/sandbox.d.mts +4 -56
- package/dist/runtime/sandbox.mjs +81 -220
- package/dist/{secret-ByhJ9AMl.mjs → secret-AcPi-FoA.mjs} +5 -5
- package/dist/{skills-Q46GZMO-.mjs → skills-C0RvGjeE.mjs} +1 -1
- package/dist/{subcommand-prompt-WfySCQ7S.mjs → subcommand-prompt-Bmyn5Rlc.mjs} +1 -1
- package/package.json +12 -7
- package/skills/void/SKILL.md +35 -4
- package/skills/void/docs/guide/deployment.md +16 -14
- package/skills/void/docs/guide/email.md +114 -120
- package/skills/void/docs/guide/platform/administration/access.md +163 -0
- package/skills/void/docs/guide/platform/administration/email.md +121 -0
- package/skills/void/docs/guide/platform/administration/operations.md +97 -0
- package/skills/void/docs/guide/platform/administration/projects.md +54 -0
- package/skills/void/docs/guide/platform/development/local.md +119 -0
- package/skills/void/docs/guide/platform/development/runtime.md +124 -0
- package/skills/void/docs/guide/platform/development/schema-ci.md +95 -0
- package/skills/void/docs/guide/platform/installation/ci.md +55 -0
- package/skills/void/docs/guide/platform/installation/credentials.md +80 -0
- package/skills/void/docs/guide/platform/installation/domains.md +68 -0
- package/skills/void/docs/guide/platform/installation/first-deployment.md +82 -0
- package/skills/void/docs/guide/platform/installation/maintenance.md +137 -0
- package/skills/void/docs/guide/platform/installation/prerequisites.md +86 -0
- package/skills/void/docs/guide/platform/installation/setup.md +169 -0
- package/skills/void/docs/guide/platform/installation/uninstall.md +54 -0
- package/skills/void/docs/guide/platform-administration.md +6 -202
- package/skills/void/docs/guide/platform-development.md +5 -254
- package/skills/void/docs/guide/project-collaboration.md +94 -0
- package/skills/void/docs/guide/sandboxes.md +9 -24
- package/skills/void/docs/guide/self-hosted-platform.md +13 -542
- package/skills/void/docs/reference/api.md +34 -34
- package/skills/void/docs/reference/cli.md +276 -31
- package/skills/void/docs/reference/config.md +1 -1
- package/skills/void/docs/reference/resource-inference.md +10 -10
- package/dist/cf-access-AJ1ehiFR.mjs +0 -42
- package/dist/cf-access-DsSsZUPr.mjs +0 -67
- package/dist/client-Clirrol3.mjs +0 -705
- package/dist/email-uKyQYUVY.mjs +0 -1016
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { o as join } from "./dist-BrsS7cai.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { A as outro, D as log, E as intro, k as note, r as cliTitle } from "./output-B0cfNSx5.mjs";
|
|
3
|
+
import { S as readProjectConfig, l as getToken, x as readDeploymentPlatform } from "./auth-DPl6kck4.mjs";
|
|
4
4
|
import { r as generateEnvTypes, t as findEnvFile } from "./env-types-BNPhro-M.mjs";
|
|
5
|
-
import { c as fetchRemoteSecretNames, l as formatEnvReport, p as validateProdEnv } from "./env-validation-
|
|
6
|
-
import { n as PlatformClient } from "./client-
|
|
5
|
+
import { c as fetchRemoteSecretNames, l as formatEnvReport, p as validateProdEnv } from "./env-validation-CF6KvTRf.mjs";
|
|
6
|
+
import { n as PlatformClient } from "./client-BQBrZoCX.mjs";
|
|
7
7
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
8
8
|
//#region src/cli/env.ts
|
|
9
9
|
async function runEnvCommand(root, args) {
|
|
@@ -24,7 +24,7 @@ async function runCheck(root, useRemoteSecrets) {
|
|
|
24
24
|
const platform = readDeploymentPlatform(root);
|
|
25
25
|
if (platform === "none") throw new Error("env: Deployment is disabled. Run `void init` to choose a platform.");
|
|
26
26
|
if (platform === "cloudflare") {
|
|
27
|
-
const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-
|
|
27
|
+
const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-BzWnlC1_.mjs").then((n) => n.t);
|
|
28
28
|
remoteSecrets = await listCloudflareSecrets(resolveCloudflareOperationContext(root));
|
|
29
29
|
} else {
|
|
30
30
|
const token = getToken(root);
|
|
@@ -2,7 +2,7 @@ import { n as __exportAll } from "./rolldown-runtime-rQ84J-ij.mjs";
|
|
|
2
2
|
import { l as resolve, n as dirname, o as join } from "./dist-BrsS7cai.mjs";
|
|
3
3
|
import { i as voidWarn } from "./log-ChfPKsVd.mjs";
|
|
4
4
|
import { t as findEnvFile } from "./env-types-BNPhro-M.mjs";
|
|
5
|
-
import { a as loadLocalEnv, i as isClientEnvKey, r as findLegacyEnvFiles } from "./env-
|
|
5
|
+
import { a as loadLocalEnv, i as isClientEnvKey, r as findLegacyEnvFiles } from "./env-DBKmK4vc.mjs";
|
|
6
6
|
import { o as resolveWranglerArgv } from "./preset-lAy0B0BQ.mjs";
|
|
7
7
|
import { existsSync, readFileSync } from "node:fs";
|
|
8
8
|
import { pathToFileURL } from "node:url";
|
|
@@ -1003,6 +1003,8 @@ function secretListEnv(accountId, platform) {
|
|
|
1003
1003
|
};
|
|
1004
1004
|
scrub("CF_ACCESS_CLIENT_ID");
|
|
1005
1005
|
scrub("CF_ACCESS_CLIENT_SECRET");
|
|
1006
|
+
scrub("VOID_ACCESS_CREDENTIALS");
|
|
1007
|
+
scrub("VOID_ACCESS_ORIGIN");
|
|
1006
1008
|
scrub("WRANGLER_LOG_SANITIZE");
|
|
1007
1009
|
env.WRANGLER_LOG_SANITIZE = "true";
|
|
1008
1010
|
if (accountId) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as relative, n as dirname, o as join } from "./dist-BrsS7cai.mjs";
|
|
2
|
-
import { C as cancel, D as log, E as intro,
|
|
2
|
+
import { A as outro, C as cancel, D as log, E as intro, I as isCancel, M as select, r as cliTitle } from "./output-B0cfNSx5.mjs";
|
|
3
3
|
import { n as readProjectPaths } from "./project-paths-SK8nMHPp.mjs";
|
|
4
|
-
import { c as getDatabaseDialect, f as readConfig } from "./config-
|
|
4
|
+
import { c as getDatabaseDialect, f as readConfig } from "./config-uNGuFsI2.mjs";
|
|
5
5
|
import { n as ensureProjectTsconfig } from "./project-tsconfig-Ql2XsSQp.mjs";
|
|
6
6
|
import { c as collectMigrations, n as listDrizzleArtifacts, t as assertJournalCoherence, u as readJournal } from "./validate-tBBN_dXH.mjs";
|
|
7
7
|
import { n as writeDrizzleConfig } from "./config-NOG_U1aK.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { C as cancel, D as log,
|
|
2
|
-
import {
|
|
3
|
-
import { n as PlatformClient, o as parsePlatformErrorBody, t as PlatformApiError } from "./client-
|
|
1
|
+
import { C as cancel, D as log, I as isCancel, M as select, P as text, c as import_picocolors, w as confirm } from "./output-B0cfNSx5.mjs";
|
|
2
|
+
import { S as readProjectConfig, f as openBrowser, i as createCodeVerifier, l as getToken, n as awaitBrowserCallback, r as createCodeChallenge } from "./auth-DPl6kck4.mjs";
|
|
3
|
+
import { n as PlatformClient, o as parsePlatformErrorBody, s as platformErrorMessage, t as PlatformApiError } from "./client-BQBrZoCX.mjs";
|
|
4
4
|
import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project--Vxawf7z.mjs";
|
|
5
5
|
import { t as collectGitDeployMetadata } from "./git-metadata-D-gurjzG.mjs";
|
|
6
6
|
import { randomBytes } from "node:crypto";
|
|
@@ -30,7 +30,6 @@ function describeConnectError(status, errorCode) {
|
|
|
30
30
|
if (code.includes("not active")) return "Installation is not active. Re-install the GitHub App and try again.";
|
|
31
31
|
}
|
|
32
32
|
if (status === 400 && code.includes("not accessible")) return "Repository not accessible by this installation. Check the App has access to it.";
|
|
33
|
-
if (status === 403) return "You don't have access to this project.";
|
|
34
33
|
if (status === 404) return "Project or installation not found.";
|
|
35
34
|
return null;
|
|
36
35
|
}
|
|
@@ -46,6 +45,11 @@ function describeUpdateError(status, errorCode) {
|
|
|
46
45
|
if (status === 404 && code.includes("connection not found")) return "This project is not connected to a GitHub repository. Run `void github connect` first.";
|
|
47
46
|
return describeConnectError(status, code);
|
|
48
47
|
}
|
|
48
|
+
function describeGithubClientError(error, describe) {
|
|
49
|
+
const body = parsePlatformErrorBody(error.body);
|
|
50
|
+
if (platformErrorMessage(body) || error.status === 403) return error.message;
|
|
51
|
+
return describe(error.status, error.code);
|
|
52
|
+
}
|
|
49
53
|
/**
|
|
50
54
|
* Extract `owner/repo` from a `https://github.com/owner/repo(.git)?` URL.
|
|
51
55
|
* Returns null for non-GitHub URLs or null input.
|
|
@@ -518,16 +522,14 @@ async function runConnect(root, client, args) {
|
|
|
518
522
|
codeVerifier: grant.codeVerifier
|
|
519
523
|
});
|
|
520
524
|
} catch (retryErr) {
|
|
521
|
-
if (retryErr instanceof PlatformApiError && retryErr.status === 403) {
|
|
525
|
+
if (retryErr instanceof PlatformApiError && retryErr.status === 403 && retryErr.code === "invalid connect grant") {
|
|
522
526
|
log.error("connect: GitHub authorization failed or expired. Run `void github connect` again.");
|
|
523
527
|
process.exit(1);
|
|
524
528
|
}
|
|
525
529
|
throw retryErr;
|
|
526
530
|
}
|
|
527
531
|
} else {
|
|
528
|
-
const
|
|
529
|
-
const code = body?.error ?? body?.message ?? "";
|
|
530
|
-
const message = describeConnectError(err.status, code);
|
|
532
|
+
const message = describeGithubClientError(err, describeConnectError);
|
|
531
533
|
if (message !== null) {
|
|
532
534
|
log.error(`connect: ${message}`);
|
|
533
535
|
process.exit(1);
|
|
@@ -588,9 +590,7 @@ async function runGithubUpdate(root, client, args) {
|
|
|
588
590
|
current = await client.getGithubConnection(projectId);
|
|
589
591
|
} catch (err) {
|
|
590
592
|
if (err instanceof PlatformApiError) {
|
|
591
|
-
const
|
|
592
|
-
const code = body?.error ?? body?.message ?? "";
|
|
593
|
-
const message = describeUpdateError(err.status, code);
|
|
593
|
+
const message = describeGithubClientError(err, describeUpdateError);
|
|
594
594
|
if (message !== null) {
|
|
595
595
|
log.error(`update: ${message}`);
|
|
596
596
|
process.exit(1);
|
|
@@ -668,9 +668,7 @@ async function runGithubUpdate(root, client, args) {
|
|
|
668
668
|
updated = await client.updateGithubConnection(projectId, patch);
|
|
669
669
|
} catch (err) {
|
|
670
670
|
if (err instanceof PlatformApiError) {
|
|
671
|
-
const
|
|
672
|
-
const code = body?.error ?? body?.message ?? "";
|
|
673
|
-
const message = describeUpdateError(err.status, code);
|
|
671
|
+
const message = describeGithubClientError(err, describeUpdateError);
|
|
674
672
|
if (message !== null) {
|
|
675
673
|
log.error(`update: ${message}`);
|
|
676
674
|
process.exit(1);
|
|
@@ -734,9 +732,7 @@ async function runStatus(root, client, args) {
|
|
|
734
732
|
connection = await client.getGithubConnection(projectId);
|
|
735
733
|
} catch (err) {
|
|
736
734
|
if (err instanceof PlatformApiError) {
|
|
737
|
-
const
|
|
738
|
-
const code = body?.error ?? body?.message ?? "";
|
|
739
|
-
const message = describeUpdateError(err.status, code);
|
|
735
|
+
const message = describeGithubClientError(err, describeUpdateError);
|
|
740
736
|
if (message !== null) {
|
|
741
737
|
log.error(`status: ${message}`);
|
|
742
738
|
process.exit(1);
|
|
@@ -803,7 +799,7 @@ async function runGithubDisconnect(root, client, args) {
|
|
|
803
799
|
log.info("This project is not connected to a GitHub repository. Nothing to disconnect.");
|
|
804
800
|
return;
|
|
805
801
|
}
|
|
806
|
-
const message =
|
|
802
|
+
const message = describeGithubClientError(err, describeConnectError);
|
|
807
803
|
if (message !== null) {
|
|
808
804
|
log.error(`disconnect: ${message}`);
|
|
809
805
|
process.exit(1);
|
|
@@ -833,9 +829,7 @@ async function runGithubDisconnect(root, client, args) {
|
|
|
833
829
|
await client.deleteGithubConnection(projectId);
|
|
834
830
|
} catch (err) {
|
|
835
831
|
if (err instanceof PlatformApiError) {
|
|
836
|
-
const
|
|
837
|
-
const code = body?.error ?? body?.message ?? "";
|
|
838
|
-
const message = describeConnectError(err.status, code);
|
|
832
|
+
const message = describeGithubClientError(err, describeConnectError);
|
|
839
833
|
if (message !== null) {
|
|
840
834
|
log.error(`disconnect: ${message}`);
|
|
841
835
|
process.exit(1);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as join } from "./dist-BrsS7cai.mjs";
|
|
2
|
-
import { a as convertRedirectsConfig, d as parseHostPrefixedSource, i as convertHeadersConfig, o as convertRewritesConfig, r as convertFallbacksConfig, s as countSplats, t as VALID_REDIRECT_STATUSES, u as isProtocolRelative } from "./config-
|
|
2
|
+
import { a as convertRedirectsConfig, d as parseHostPrefixedSource, i as convertHeadersConfig, o as convertRewritesConfig, r as convertFallbacksConfig, s as countSplats, t as VALID_REDIRECT_STATUSES, u as isProtocolRelative } from "./config-uNGuFsI2.mjs";
|
|
3
3
|
import { i as voidWarn } from "./log-ChfPKsVd.mjs";
|
|
4
4
|
import { existsSync, readFileSync } from "node:fs";
|
|
5
5
|
//#region src/cli/headers.ts
|