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,42 +0,0 @@
|
|
|
1
|
-
//#region src/shared/cf-access.ts
|
|
2
|
-
/**
|
|
3
|
-
* Resolve Cloudflare Access headers from an env-like object.
|
|
4
|
-
*
|
|
5
|
-
* Priority:
|
|
6
|
-
* 1. Service token pair (`CF_ACCESS_CLIENT_ID` + `CF_ACCESS_CLIENT_SECRET`) — CI path
|
|
7
|
-
* 2. User JWT (`CF_ACCESS_TOKEN`) — dev path, typically populated via `cloudflared access token`
|
|
8
|
-
* 3. No headers — prod, or unprotected hostnames
|
|
9
|
-
*/
|
|
10
|
-
function isVoidAccessGatedUrl(targetUrl) {
|
|
11
|
-
try {
|
|
12
|
-
const url = new URL(targetUrl);
|
|
13
|
-
return url.protocol === "https:" && (url.hostname.endsWith(".staging.void.cloud") || url.hostname.endsWith(".staging.void.app"));
|
|
14
|
-
} catch {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function accessHeaders(env) {
|
|
19
|
-
const id = env.CF_ACCESS_CLIENT_ID;
|
|
20
|
-
const secret = env.CF_ACCESS_CLIENT_SECRET;
|
|
21
|
-
if (typeof id === "string" && typeof secret === "string" && id.length > 0 && secret.length > 0) return {
|
|
22
|
-
"CF-Access-Client-Id": id,
|
|
23
|
-
"CF-Access-Client-Secret": secret
|
|
24
|
-
};
|
|
25
|
-
const token = env.CF_ACCESS_TOKEN;
|
|
26
|
-
if (typeof token === "string" && token.length > 0) return { "cf-access-token": token };
|
|
27
|
-
return {};
|
|
28
|
-
}
|
|
29
|
-
/** Attach shared Void Access credentials only to known hosted staging origins. */
|
|
30
|
-
function cfAccessHeaders(env, targetUrl) {
|
|
31
|
-
return isVoidAccessGatedUrl(targetUrl) ? accessHeaders(env) : {};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Capture credentials for a Cloudflare Worker readiness request whose target
|
|
35
|
-
* is resolved and constrained by the direct-deploy adapter rather than a
|
|
36
|
-
* user-connected Void platform URL.
|
|
37
|
-
*/
|
|
38
|
-
function trustedCloudflareWorkerAccessHeaders(env) {
|
|
39
|
-
return accessHeaders(env);
|
|
40
|
-
}
|
|
41
|
-
//#endregion
|
|
42
|
-
export { isVoidAccessGatedUrl as n, trustedCloudflareWorkerAccessHeaders as r, cfAccessHeaders as t };
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { n as isVoidAccessGatedUrl } from "./cf-access-AJ1ehiFR.mjs";
|
|
2
|
-
import { spawnSync } from "node:child_process";
|
|
3
|
-
//#region src/cli/cf-access.ts
|
|
4
|
-
const probedHosts = /* @__PURE__ */ new Set();
|
|
5
|
-
/**
|
|
6
|
-
* If the CLI is about to talk to a Cloudflare-Access-gated staging host,
|
|
7
|
-
* probe the locally-installed `cloudflared` binary for a cached user JWT
|
|
8
|
-
* and export it as `CF_ACCESS_TOKEN`. On interactive shells with no cached
|
|
9
|
-
* token, open a browser login flow to populate the cache, then re-read it.
|
|
10
|
-
*
|
|
11
|
-
* Cached per-host so that an early non-gated call (e.g. prod) does not
|
|
12
|
-
* permanently disable the probe for a later gated call (e.g. staging) in
|
|
13
|
-
* the same process. Noop when:
|
|
14
|
-
* - a service-token pair is already set (CI path)
|
|
15
|
-
* - `CF_ACCESS_TOKEN` is already set (manual override or prior probe)
|
|
16
|
-
* - the target host is not gated
|
|
17
|
-
* - `cloudflared` is not installed
|
|
18
|
-
*/
|
|
19
|
-
function ensureCloudflaredToken(apiUrl) {
|
|
20
|
-
if (process.env.CF_ACCESS_CLIENT_ID && process.env.CF_ACCESS_CLIENT_SECRET) return;
|
|
21
|
-
if (process.env.CF_ACCESS_TOKEN) return;
|
|
22
|
-
if (!isVoidAccessGatedUrl(apiUrl)) return;
|
|
23
|
-
const host = new URL(apiUrl).hostname;
|
|
24
|
-
if (probedHosts.has(host)) return;
|
|
25
|
-
probedHosts.add(host);
|
|
26
|
-
let token = runCloudflared([
|
|
27
|
-
"access",
|
|
28
|
-
"token",
|
|
29
|
-
`-app=${apiUrl}`
|
|
30
|
-
]);
|
|
31
|
-
if (!token && process.stdin.isTTY && process.stdout.isTTY) {
|
|
32
|
-
runCloudflared([
|
|
33
|
-
"access",
|
|
34
|
-
"login",
|
|
35
|
-
apiUrl
|
|
36
|
-
], {
|
|
37
|
-
inherit: true,
|
|
38
|
-
timeoutMs: 12e4
|
|
39
|
-
});
|
|
40
|
-
token = runCloudflared([
|
|
41
|
-
"access",
|
|
42
|
-
"token",
|
|
43
|
-
`-app=${apiUrl}`
|
|
44
|
-
]);
|
|
45
|
-
}
|
|
46
|
-
if (token) process.env.CF_ACCESS_TOKEN = token;
|
|
47
|
-
}
|
|
48
|
-
function runCloudflared(args, opts) {
|
|
49
|
-
try {
|
|
50
|
-
const result = spawnSync("cloudflared", args, {
|
|
51
|
-
encoding: "utf-8",
|
|
52
|
-
stdio: opts?.inherit ? "inherit" : [
|
|
53
|
-
"ignore",
|
|
54
|
-
"pipe",
|
|
55
|
-
"pipe"
|
|
56
|
-
],
|
|
57
|
-
timeout: opts?.timeoutMs ?? 5e3
|
|
58
|
-
});
|
|
59
|
-
if (result.error || result.status !== 0) return null;
|
|
60
|
-
const out = (result.stdout ?? "").trim();
|
|
61
|
-
return out.length > 0 ? out : null;
|
|
62
|
-
} catch {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
//#endregion
|
|
67
|
-
export { ensureCloudflaredToken as t };
|