void 1.1.11 → 1.2.0
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/dist/{account-cmd-R35a4Oa8.mjs → account-cmd-CdUll_35.mjs} +5 -5
- package/dist/action-key-XZ9HkWAO.mjs +26 -0
- package/dist/{application-analysis-D7nNmNJb.mjs → application-analysis-fEqoSeMp.mjs} +11 -11
- package/dist/{application-routing-CZH66gXn.mjs → application-routing-DAhNP4u3.mjs} +1 -1
- package/dist/{ast-CPGPjb0V.mjs → ast-CsZ_q_gc.mjs} +6 -1
- package/dist/ast-bindings-C3yaPs1y.mjs +296 -0
- package/dist/{auth-link-VHmiKZmP.mjs → auth-link-C87vGXM-.mjs} +5 -5
- package/dist/{auth-router-O_Wrs5kg.mjs → auth-router-6I81r-ix.mjs} +3 -3
- package/dist/{better-auth-shared-Bv18bB-l.d.mts → better-auth-shared-DVk2DkTW.d.mts} +1 -1
- package/dist/{build-cmd-CMZiMn46.mjs → build-cmd-ex1g-j_e.mjs} +4 -4
- package/dist/{cache-TZ5Ab3d7.mjs → cache-oHzrnY3z.mjs} +4 -4
- package/dist/{cancel-deploy-DXoR6oC3.mjs → cancel-deploy-viAMD0Q_.mjs} +3 -3
- package/dist/cf-build-output-BJHuSsVN.mjs +1 -0
- package/dist/{cf-build-output-Bc8i3dzE.mjs → cf-build-output-BhVxldCw.mjs} +75 -10
- package/dist/{cf-user-agent-ChjQp2MU.mjs → cf-command-values-ByHk0xg4.mjs} +6 -16
- package/dist/cf-worker-settings-BECvvTVd.mjs +37 -0
- package/dist/cli/cli.mjs +139 -35
- package/dist/cli/cloudflare-operation-process.mjs +65 -18
- package/dist/cli/env-schema-probe.d.mts +1 -1
- package/dist/cli/env-schema-probe.mjs +3 -3
- package/dist/{client-GuSO3v_x.mjs → client-BEkdj1kx.mjs} +58 -13
- package/dist/client-BiRDZTSd.mjs +1 -0
- package/dist/{cloudflare-auth-DSvBc1Gu.mjs → cloudflare-auth-Byo_0_N9.mjs} +1 -1
- package/dist/{cloudflare-cmd-ZSErUl6Y.mjs → cloudflare-cmd-DMzCv12s.mjs} +5 -5
- package/dist/{cloudflare-config-rdFOys4X.mjs → cloudflare-config-DchHxPTo.mjs} +1 -1
- package/dist/{cloudflare-connect-BN-k2kD-.mjs → cloudflare-connect-CCRTVg-I.mjs} +3 -3
- package/dist/{cloudflare-operations-DH3GedbV.mjs → cloudflare-operations-Dh9dEHJj.mjs} +17 -7
- package/dist/{cloudflare-operations-Cm8lVx7W.mjs → cloudflare-operations-DsSaw2BT.mjs} +1 -1
- package/dist/{cloudflare-process-CZJ4viYl.mjs → cloudflare-process-8jEYIeim.mjs} +3 -2
- package/dist/{config-DC5llZaI.mjs → config-BIaXIkkv.mjs} +8 -3
- package/dist/{config-DYJV8aEH.mjs → config-BU6hMu1W.mjs} +1 -1
- package/dist/{config-D26zcdKy.mjs → config-DHgSEWT7.mjs} +39 -6
- package/dist/{config-7qoq2p9v.d.mts → config-DQfHOKh9.d.mts} +10 -1
- package/dist/config-entry.d.mts +1 -1
- package/dist/{connect-yQuLbuiJ.mjs → connect-k7R2rPVA.mjs} +6 -6
- package/dist/{create-project-CGOo_OL_.mjs → create-project-DTuy-l0z.mjs} +1 -1
- package/dist/{create-project-DEEWJX_M.mjs → create-project-DV71ol5d.mjs} +4 -4
- package/dist/{db-COI-yTJE.mjs → db-DVOkLH5X.mjs} +79 -23
- package/dist/{delete-PgN6L_9N.mjs → delete-BbP5eopu.mjs} +4 -4
- package/dist/{deploy-DsW-PrRQ.mjs → deploy-7H32EnUs.mjs} +220 -95
- package/dist/deploy-CE0Ev0Ob.mjs +2 -0
- package/dist/{deploy-managed-static-Dqz06S2u.mjs → deploy-managed-static-DlvcvnQT.mjs} +74 -28
- package/dist/{deploy-transport-nY3vLXPL.mjs → deploy-transport-BzGEj0Ge.mjs} +2 -2
- package/dist/deploy.d.mts +22 -1
- package/dist/deploy.mjs +49 -8
- package/dist/{dev-inbox-Rd6j_8vM.mjs → dev-inbox-D0jxye_D.mjs} +1 -1
- package/dist/{dispatch-BAbbn3jg.mjs → dispatch-DoUnxTNo.mjs} +15 -11
- package/dist/{dist-CfgIkieS.mjs → dist-B1PLt4_8.mjs} +1 -1
- package/dist/{dist-BVdsO7Py.mjs → dist-Cor9XGoz.mjs} +94 -200
- package/dist/{dist-Bn8Kodjp.mjs → dist-D15hFhP0.mjs} +1 -1
- package/dist/{domain-DKlNI0SR.mjs → domain-CA2wBgra.mjs} +5 -5
- package/dist/drizzle-9TubSZvI.mjs +1 -0
- package/dist/{email-BcjSyAL0.mjs → email-B9ayYQEG.mjs} +1 -1
- package/dist/{email-C0s3OvJk.mjs → email-DXpCc77w.mjs} +10 -10
- package/dist/{email-cloudflare-etpKiITL.mjs → email-cloudflare-D03g2TkS.mjs} +7 -7
- package/dist/{entry-B_0IhV64.mjs → entry-BEM8ZuGP.mjs} +40 -12
- package/dist/{env-BX2JFsgF.mjs → env-DgOQ9_8S.mjs} +6 -6
- package/dist/{env-public-CCdykygU.d.mts → env-public-6lqiSD2b.d.mts} +1 -0
- package/dist/{env-types-GRchm5dw.mjs → env-types-BicfKBhV.mjs} +1 -1
- package/dist/{env-validation-CuGfWRJd.mjs → env-validation-BmsdCZEk.mjs} +1 -1
- package/dist/{env-validation-D_KyMdab.mjs → env-validation-Dwq3PJzK.mjs} +3 -3
- package/dist/{fetch-DHLOuPyk.d.mts → fetch-CUX0tB78.d.mts} +14 -1
- package/dist/fetch-CtESUYWd.mjs +26 -0
- package/dist/{fetch-error-Dj3crt0e.mjs → fetch-error-Bw0n-IY-.mjs} +1 -1
- package/dist/{fetch-stream-PGgz4uGz.mjs → fetch-stream-BspOeTAI.mjs} +1 -1
- package/dist/{fetch-stream-CNxOrBdP.d.mts → fetch-stream-DfkAzZf-.d.mts} +1 -1
- package/dist/{gen-Bj6ZkOcI.mjs → gen-BfmcIi2g.mjs} +5 -5
- package/dist/gen-NrOlWZaG.mjs +1 -0
- package/dist/{github-cmd-DQDryS-5.mjs → github-cmd-CY9LUqLh.mjs} +4 -4
- package/dist/{handler-_PqY82xe.d.mts → handler-BbkSPzGF.d.mts} +91 -9
- package/dist/{headers-Bi4bOAwp.mjs → headers-D522zd0A.mjs} +2 -2
- package/dist/help-BeAFFE5C.mjs +1 -0
- package/dist/{help-D49SL_lN.mjs → help-CxSlPpzJ.mjs} +83 -12
- package/dist/{inbound-BuTfm11U.mjs → inbound-VrOLqwZY.mjs} +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +125 -124
- package/dist/{info-Bxunp14X.mjs → info-7VDlhtyy.mjs} +4 -4
- package/dist/{init-DyTEY04s.mjs → init-DxYyOs4-.mjs} +103 -43
- package/dist/{link-CgOVn9EC.mjs → link-Ddmod1dZ.mjs} +5 -5
- package/dist/{list-CUfD9RSb.mjs → list-MogaugiO.mjs} +5 -5
- package/dist/{live-DJONVlQK.d.mts → live-Bt8Y_0bg.d.mts} +1 -1
- package/dist/{local-d1-CpaPbd_L.mjs → local-d1-BHBnKWRb.mjs} +1 -1
- package/dist/{log-vqY3pqwI.mjs → log-BMwmN5Ae.mjs} +2 -2
- package/dist/{login-BJvGW5Eu.mjs → login-Cttnagmm.mjs} +4 -4
- package/dist/login-DgDwlKc_.mjs +1 -0
- package/dist/{logs-DeizBI4j.mjs → logs-CAszUWZI.mjs} +4 -4
- package/dist/{migrate-8rk56vV8.mjs → migrate-DyT2jJ8y.mjs} +5 -5
- package/dist/migrate-n49ZeS1X.mjs +1 -0
- package/dist/{mime-srOklVVv.mjs → mime-BAyHPskU.mjs} +1 -1
- package/dist/nitro.mjs +3 -3
- package/dist/{node-uN8_zxJr.mjs → node-WB7c2N4L.mjs} +2 -2
- package/dist/operator-cmd-d2MvJOrl.mjs +1 -0
- package/dist/{operator-cmd-CA5QQyvE.mjs → operator-cmd-skshjMGl.mjs} +4 -4
- package/dist/output-BW9uK099.mjs +1 -0
- package/dist/{output-Ba6ZbrzY.mjs → output-BpgYODYx.mjs} +16 -4
- package/dist/pages/client.d.mts +2 -2
- package/dist/pages/client.mjs +48 -25
- package/dist/pages/index.d.mts +2 -2
- package/dist/pages/index.mjs +4 -4
- package/dist/pages/islands-plugin.d.mts +43 -5
- package/dist/pages/islands-plugin.mjs +100 -28
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +1 -1
- package/dist/pages/serialize.d.mts +2 -2
- package/dist/pages/serialize.mjs +1 -1
- package/dist/{parse-filename-CUbj-1MP.mjs → parse-filename-DioPHiR9.mjs} +1 -35
- package/dist/{picocolors-BTps1_gs.mjs → picocolors-BsDfhxIw.mjs} +1 -1
- package/dist/{platform-args-B7ke06up.mjs → platform-args-DVbVClZl.mjs} +12 -4
- package/dist/platform-args-kQrgxScY.mjs +1 -0
- package/dist/{platform-auth-config-CZaY812e.mjs → platform-auth-config-C-pm5Qzx.mjs} +6 -6
- package/dist/{platform-auth-protection-U9HCqoXv.mjs → platform-auth-protection-SHhvim1L.mjs} +4 -4
- package/dist/{platform-auth-recovery-B0BV2hfV.mjs → platform-auth-recovery-DXVWs-wA.mjs} +4 -4
- package/dist/{platform-cmd-CXrjk4fb.mjs → platform-cmd-D5I1beUX.mjs} +7 -7
- package/dist/{platform-cmd-D9lwFpcl.mjs → platform-cmd-PiNRkopU.mjs} +1 -1
- package/dist/{platform-domain-CXyq-68_.mjs → platform-domain-jpmBfZeb.mjs} +4 -4
- package/dist/{platform-lifecycle-Dz2cJsLX.mjs → platform-lifecycle-DH3Yr1qQ.mjs} +1 -1
- package/dist/{platform-lifecycle-D0TdyXbN.mjs → platform-lifecycle-DyKmuNY6.mjs} +405 -44
- package/dist/{platform-management-CnXhgxTM.mjs → platform-management--vDwSn35.mjs} +49 -5
- package/dist/{platform-management-BvgbusqL.mjs → platform-management-7m-PLaPJ.mjs} +1 -1
- package/dist/{platform-plans-config-BWn1S2Rv.mjs → platform-plans-config-CeydDSj0.mjs} +2 -2
- package/dist/{platform-recovery-CH_fThW6.mjs → platform-recovery-BiNpZZab.mjs} +2 -2
- package/dist/{platform-setup-YvN9VQXV.mjs → platform-setup-Ca53gtt0.mjs} +3 -2
- package/dist/{plugin-inference-Bekzjuqw.mjs → plugin-inference-DUjCd55H.mjs} +145 -218
- package/dist/{prepare-2XD6kh77.mjs → prepare-BcAE5Sdj.mjs} +3 -3
- package/dist/prepare-C4I0f--h.mjs +1 -0
- package/dist/{prepare-DepAGBcV.mjs → prepare-DA-17DhO.mjs} +5 -5
- package/dist/{prerender-render-Bfsumdkv.mjs → prerender-render-Cijv7UFo.mjs} +11 -6
- package/dist/prerender-render.mjs +1 -1
- package/dist/{project-cmd-CpLYflCH.mjs → project-cmd-DA4K5faU.mjs} +18 -18
- package/dist/{project-team-CTSY7W7Q.mjs → project-team-CQBNveX3.mjs} +4 -4
- package/dist/{project-token-Cybtlfbl.mjs → project-token-CCalFyQf.mjs} +4 -4
- package/dist/{project-zero-trust-DKOtqyvu.mjs → project-zero-trust-DPnkiEuT.mjs} +4 -4
- package/dist/{protocol-B8sI8dRD.d.mts → protocol-BBDpJz3G.d.mts} +3 -1
- package/dist/{protocol-RNP0u7UY.mjs → protocol-DimNxVRr.mjs} +42 -17
- package/dist/{provision-UcYjpTRh.mjs → provision-BFLCrnUp.mjs} +1 -1
- package/dist/{provision-BuifYvLc.mjs → provision-DtROpNNI.mjs} +6 -5
- package/dist/{requests-Ryiazz9i.mjs → requests-BpH0kImL.mjs} +3 -3
- package/dist/resolve-project-DD1vu8s9.mjs +1 -0
- package/dist/{resolve-project-WpwkCB_c.mjs → resolve-project-Xoi6eTWY.mjs} +1 -1
- package/dist/{rollback-Or0EV3rP.mjs → rollback-CXS1tAa-.mjs} +10 -9
- package/dist/{rolldown-runtime-DXIUcv95.mjs → rolldown-runtime-3h0WiCiA.mjs} +1 -1
- package/dist/{routing-assets-VkrKIbxE.mjs → routing-assets-DdSFxoLp.mjs} +10 -4
- package/dist/runtime/better-auth-mysql.d.mts +1 -1
- package/dist/runtime/better-auth-pg.d.mts +1 -1
- package/dist/runtime/better-auth.d.mts +1 -1
- package/dist/runtime/client-react.d.mts +2 -2
- package/dist/runtime/client-react.mjs +3 -3
- package/dist/runtime/client-solid.d.mts +2 -2
- package/dist/runtime/client-solid.mjs +3 -3
- package/dist/runtime/client-svelte.d.mts +2 -2
- package/dist/runtime/client-svelte.mjs +3 -3
- package/dist/runtime/client-vue.d.mts +2 -2
- package/dist/runtime/client-vue.mjs +3 -3
- package/dist/runtime/client.d.mts +2 -2
- package/dist/runtime/client.mjs +3 -3
- package/dist/runtime/email/testing.mjs +4 -4
- package/dist/runtime/email.mjs +3 -3
- package/dist/runtime/env-public.d.mts +1 -1
- package/dist/runtime/fetch-server.d.mts +8 -0
- package/dist/runtime/fetch-server.mjs +30 -0
- package/dist/runtime/fetch-stream.d.mts +2 -2
- package/dist/runtime/fetch-stream.mjs +2 -2
- package/dist/runtime/fetch.d.mts +2 -2
- package/dist/runtime/fetch.mjs +3 -3
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live.d.mts +1 -1
- package/dist/runtime/routing.d.mts +17 -76
- package/dist/runtime/routing.mjs +277 -216
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +2 -2
- package/dist/runtime/ws.d.mts +1 -1
- package/dist/{scan-D2-FcLHs.mjs → scan-8IzYXiU_.mjs} +12 -11
- package/dist/{secret-CClHaFxm.mjs → secret-BbXHfLAt.mjs} +6 -6
- package/dist/serialize-DtR8Vwa_.d.mts +18 -0
- package/dist/serialize-YHvlcG3Q.mjs +31 -0
- package/dist/{skills-C_yRTg0g.mjs → skills-CrUO3PJ0.mjs} +1 -1
- package/dist/{subcommand-prompt-Bm3ZlYgA.mjs → subcommand-prompt-D9OhhbGG.mjs} +2 -2
- package/dist/{version-metadata-B1Bm2wSq.mjs → version-metadata-tS39iW09.mjs} +1 -1
- package/dist/wrangler-BLb3_luP.mjs +1 -0
- package/dist/{wrangler-C9XSzrju.mjs → wrangler-F96NnLyb.mjs} +13 -5
- package/dist/{wrapper-BOigE1xJ.mjs → wrapper-D3sZyh2C.mjs} +5 -3
- package/dist/{ws-CsBNxv86.d.mts → ws-BH-im_tX.d.mts} +1 -1
- package/docs/guide/ai.md +1 -1
- package/docs/guide/database/postgresql.md +1 -1
- package/docs/guide/database.md +26 -0
- package/docs/guide/deployment.md +2 -0
- package/docs/guide/edge/headers.md +1 -1
- package/docs/guide/email/domains.md +1 -1
- package/docs/guide/email/receiving.md +1 -1
- package/docs/guide/email/sending.md +3 -3
- package/docs/guide/pages-routing/actions-and-forms.md +1 -1
- package/docs/guide/pages-routing/markdown.md +3 -1
- package/docs/guide/platform/administration/email.md +7 -1
- package/docs/guide/platform/installation/ci.md +2 -0
- package/docs/guide/platform/installation/credentials.md +24 -6
- package/docs/guide/platform/installation/domains.md +16 -0
- package/docs/guide/platform/installation/maintenance.md +32 -2
- package/docs/guide/platform/installation/setup.md +1 -1
- package/docs/guide/self-hosted-platform.md +1 -1
- package/docs/guide/server-routing.md +1 -1
- package/docs/guide/typed-fetch.md +1 -1
- package/docs/integrations/cloudflare.md +2 -1
- package/docs/integrations/frameworks/tanstack-start.md +25 -0
- package/docs/reference/api/deploy.md +35 -3
- package/docs/reference/api/env.md +1 -1
- package/docs/reference/api/rewrites.md +1 -1
- package/docs/reference/api/types.md +1 -0
- package/docs/reference/cli/database.md +15 -0
- package/docs/reference/cli/platform-installation.md +5 -2
- package/docs/reference/cli/project.md +4 -2
- package/docs/reference/cli/setup.md +17 -0
- package/docs/reference/cli.md +1 -0
- package/docs/reference/config.md +14 -1
- package/docs/reference/resource-inference.md +4 -0
- package/package.json +23 -22
- package/sandbox.Dockerfile +1 -1
- package/schema.json +23 -3
- package/dist/cf-build-output-BU3hqdHu.mjs +0 -1
- package/dist/client-DrdeJgHR.mjs +0 -1
- package/dist/deploy-CxNgEYr4.mjs +0 -2
- package/dist/fetch-sAcwjzLO.mjs +0 -18
- package/dist/gen-DsCukhuw.mjs +0 -1
- package/dist/help-DOFygYi4.mjs +0 -1
- package/dist/login-alAlxw4S.mjs +0 -1
- package/dist/migrate-D2odrAmh.mjs +0 -1
- package/dist/operator-cmd-D7toMPJ9.mjs +0 -1
- package/dist/platform-args-B_LrqEZB.mjs +0 -1
- package/dist/prepare-EVEbQ9n2.mjs +0 -1
- package/dist/resolve-project-PnhzMtY6.mjs +0 -1
- package/dist/serialize-BtQyaYoC.mjs +0 -20
- package/dist/serialize-CfSwWfF2.d.mts +0 -10
- package/dist/wrangler-DAdxHEzh.mjs +0 -1
|
@@ -95,14 +95,14 @@ function readCliVersion() {
|
|
|
95
95
|
}
|
|
96
96
|
const VOID_CLI_VERSION = readCliVersion();
|
|
97
97
|
/** The oldest Void platform release this CLI supports. */
|
|
98
|
-
const MIN_PLATFORM_VERSION = "1.
|
|
98
|
+
const MIN_PLATFORM_VERSION = "1.2.0";
|
|
99
99
|
const RELEASE_VERSION = /^(\d+)\.(\d+)\.(\d+)(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$/;
|
|
100
100
|
/**
|
|
101
|
-
*
|
|
102
|
-
* or too old) is kept for the rest of the process, so polling
|
|
103
|
-
* discovery once.
|
|
101
|
+
* Discovery probes keyed by platform base URL. Every outcome (pass,
|
|
102
|
+
* inconclusive, or too old) is kept for the rest of the process, so polling
|
|
103
|
+
* commands probe discovery once.
|
|
104
104
|
*/
|
|
105
|
-
const
|
|
105
|
+
const platformVersionProbes = /* @__PURE__ */ new Map();
|
|
106
106
|
/**
|
|
107
107
|
* Returns whether `version` is older than MIN_PLATFORM_VERSION, or null when
|
|
108
108
|
* it is not a release version. A prerelease sorts before its release.
|
|
@@ -244,15 +244,26 @@ var PlatformClient = class {
|
|
|
244
244
|
}
|
|
245
245
|
/**
|
|
246
246
|
* Checks the platform version once per process and base URL. Concurrent
|
|
247
|
-
* first requests share one
|
|
247
|
+
* first requests share one probe, and its outcome is kept for later requests.
|
|
248
248
|
*/
|
|
249
|
-
ensureSupportedPlatform() {
|
|
250
|
-
|
|
251
|
-
|
|
249
|
+
async ensureSupportedPlatform() {
|
|
250
|
+
assertSupportedPlatform(this.baseUrl, await this.platformProbe());
|
|
251
|
+
}
|
|
252
|
+
platformProbe() {
|
|
253
|
+
const cached = platformVersionProbes.get(this.baseUrl);
|
|
252
254
|
if (cached) return cached;
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
return
|
|
255
|
+
const probe = this.probePlatformVersion();
|
|
256
|
+
platformVersionProbes.set(this.baseUrl, probe);
|
|
257
|
+
return probe;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Whether discovery says the platform accepts Worker modules uploaded to R2.
|
|
261
|
+
* False when discovery omits the field or gave no usable answer.
|
|
262
|
+
*/
|
|
263
|
+
async supportsDirectWorkerUpload() {
|
|
264
|
+
let probe = await this.platformProbe();
|
|
265
|
+
if (probe.kind === "unknown") probe = await this.probePlatformVersion();
|
|
266
|
+
return probe.kind === "version" && probe.directWorkerUpload;
|
|
256
267
|
}
|
|
257
268
|
/** Reads the platform version from public discovery, without credentials. */
|
|
258
269
|
async probePlatformVersion() {
|
|
@@ -270,9 +281,11 @@ var PlatformClient = class {
|
|
|
270
281
|
return { kind: "missing" };
|
|
271
282
|
}
|
|
272
283
|
try {
|
|
284
|
+
const discovery = await readPlatformDiscoveryResponse(this.baseUrl, response);
|
|
273
285
|
return {
|
|
274
286
|
kind: "version",
|
|
275
|
-
version:
|
|
287
|
+
version: discovery.platformVersion,
|
|
288
|
+
directWorkerUpload: discovery.directWorkerUpload === true
|
|
276
289
|
};
|
|
277
290
|
} catch {
|
|
278
291
|
return { kind: "unknown" };
|
|
@@ -518,6 +531,38 @@ var PlatformClient = class {
|
|
|
518
531
|
if (!res.ok) await throwPlatformApiError("Failed to request upload URLs", res, "deploy");
|
|
519
532
|
return (await res.json()).urls;
|
|
520
533
|
}
|
|
534
|
+
/**
|
|
535
|
+
* Requests one presigned R2 PUT per Worker module, in `modules` order. The
|
|
536
|
+
* platform refuses a Worker over Cloudflare's size limit here (413
|
|
537
|
+
* `worker_too_large`), before any bytes are uploaded.
|
|
538
|
+
*/
|
|
539
|
+
async requestWorkerUploadUrls(projectId, modules) {
|
|
540
|
+
const url = `${this.baseUrl}/projects/${projectId}/deploy/worker-upload-urls`;
|
|
541
|
+
this.cliLog?.info("worker_upload_urls_post", {
|
|
542
|
+
url,
|
|
543
|
+
moduleCount: modules.length
|
|
544
|
+
});
|
|
545
|
+
const request = { modules };
|
|
546
|
+
const res = await this.request(url, {
|
|
547
|
+
method: "POST",
|
|
548
|
+
headers: {
|
|
549
|
+
"Content-Type": "application/json",
|
|
550
|
+
...this.authHeaders
|
|
551
|
+
},
|
|
552
|
+
body: JSON.stringify(request)
|
|
553
|
+
});
|
|
554
|
+
this.cliLog?.info("worker_upload_urls_response", {
|
|
555
|
+
status: res.status,
|
|
556
|
+
cfRay: res.headers.get("cf-ray")
|
|
557
|
+
});
|
|
558
|
+
if (!res.ok) await throwPlatformApiError("Failed to request worker upload URLs", res, "deploy");
|
|
559
|
+
const json = await res.json();
|
|
560
|
+
if (typeof json?.id !== "string" || !json.id || !Array.isArray(json.urls) || json.urls.length !== modules.length || !json.urls.every((entry) => typeof entry?.url === "string" && typeof entry.headers === "object" && !!entry.headers)) throw new Error("Invalid worker upload URLs from platform.");
|
|
561
|
+
return {
|
|
562
|
+
id: json.id,
|
|
563
|
+
urls: json.urls
|
|
564
|
+
};
|
|
565
|
+
}
|
|
521
566
|
async *finalizeDeploy(projectId, payload) {
|
|
522
567
|
const url = `${this.baseUrl}/projects/${projectId}/deploy`;
|
|
523
568
|
yield* this.streamDeployRequest(url, projectId, {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { r as PlatformClient } from "./client-BEkdj1kx.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as isCleanCloudflareExit, l as resolveCloudflareOperationArgv, n as decodeCloudflareOperationResult, r as encodeCloudflareOperation, t as createCloudflareProcessRunner } from "./cloudflare-process-
|
|
1
|
+
import { i as isCleanCloudflareExit, l as resolveCloudflareOperationArgv, n as decodeCloudflareOperationResult, r as encodeCloudflareOperation, t as createCloudflareProcessRunner } from "./cloudflare-process-8jEYIeim.mjs";
|
|
2
2
|
import { execFile, spawn } from "node:child_process";
|
|
3
3
|
//#region src/cli/cloudflare-auth.ts
|
|
4
4
|
var CloudflareAuthenticationError = class extends Error {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as basename } from "./dist-ipQi0Q8y.mjs";
|
|
2
|
-
import { b as readRootWranglerConfig } from "./wrangler-
|
|
3
|
-
import { L as log } from "./dist-
|
|
4
|
-
import { m as printSuccess } from "./output-
|
|
5
|
-
import { i as isCleanCloudflareExit } from "./cloudflare-process-
|
|
6
|
-
import { a as parseCloudflareAuthSession, i as ensureCloudflareAuthentication, n as cloudflareCredentialOverrides, r as createBundledCloudflareAuthRunner } from "./cloudflare-auth-
|
|
2
|
+
import { b as readRootWranglerConfig } from "./wrangler-F96NnLyb.mjs";
|
|
3
|
+
import { L as log } from "./dist-Cor9XGoz.mjs";
|
|
4
|
+
import { m as printSuccess } from "./output-BpgYODYx.mjs";
|
|
5
|
+
import { i as isCleanCloudflareExit } from "./cloudflare-process-8jEYIeim.mjs";
|
|
6
|
+
import { a as parseCloudflareAuthSession, i as ensureCloudflareAuthentication, n as cloudflareCredentialOverrides, r as createBundledCloudflareAuthRunner } from "./cloudflare-auth-Byo_0_N9.mjs";
|
|
7
7
|
//#region src/cli/cloudflare-cmd.ts
|
|
8
8
|
async function runCloudflareCommand(root, args) {
|
|
9
9
|
const runWrangler = createBundledCloudflareAuthRunner(root);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as join } from "./dist-ipQi0Q8y.mjs";
|
|
2
2
|
import "./project-paths-DGu_QZ_Q.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { p as readConfig } from "./config-DHgSEWT7.mjs";
|
|
4
4
|
import { t as writeFileAtomic } from "./atomic-write-Dq6R0BPN.mjs";
|
|
5
5
|
import { t as parseJsoncObject } from "./generated-wrangler-config-DeWj5F9Y.mjs";
|
|
6
6
|
import { existsSync, mkdirSync, readFileSync, rmSync } from "node:fs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as join, t as basename } from "./dist-ipQi0Q8y.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { K as select, L as log, tt as isCancel } from "./dist-
|
|
4
|
-
import { i as ensureCloudflareAuthentication, r as createBundledCloudflareAuthRunner } from "./cloudflare-auth-
|
|
2
|
+
import { M as writeProvisionedWranglerConfig, b as readRootWranglerConfig, i as LATEST_KNOWN_COMPAT_DATE } from "./wrangler-F96NnLyb.mjs";
|
|
3
|
+
import { K as select, L as log, tt as isCancel } from "./dist-Cor9XGoz.mjs";
|
|
4
|
+
import { i as ensureCloudflareAuthentication, r as createBundledCloudflareAuthRunner } from "./cloudflare-auth-Byo_0_N9.mjs";
|
|
5
5
|
import { existsSync } from "node:fs";
|
|
6
6
|
//#region src/cli/cloudflare-connect.ts
|
|
7
7
|
async function connectCloudflare(root, interactive = Boolean(process.stdin.isTTY)) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { a as join } from "./dist-ipQi0Q8y.mjs";
|
|
2
|
-
import { i as persistCloudflareConfig, r as materializeCloudflareConfig } from "./cloudflare-config-
|
|
3
|
-
import {
|
|
4
|
-
import { u as getErrorMessage } from "./output-
|
|
5
|
-
import { t as createCloudflareProcessRunner } from "./cloudflare-process-
|
|
6
|
-
import { _ as provisionEnv, r as assertNoTransportRedirectInProjectDotenv, s as deleteEnvVarCaseAware, v as resolvePinnedApiBaseUrl } from "./provision-
|
|
7
|
-
import { a as findWranglerCiOverrideDotenvFile, i as findAmbientConfigOverride } from "./deploy-transport-
|
|
2
|
+
import { i as persistCloudflareConfig, r as materializeCloudflareConfig } from "./cloudflare-config-DchHxPTo.mjs";
|
|
3
|
+
import { N as writeWranglerPublishedTrafficSnapshot, S as readWranglerCustomDomains, j as updateWranglerCustomDomain, w as readWranglerPublishedTrafficSnapshot } from "./wrangler-F96NnLyb.mjs";
|
|
4
|
+
import { u as getErrorMessage } from "./output-BpgYODYx.mjs";
|
|
5
|
+
import { t as createCloudflareProcessRunner } from "./cloudflare-process-8jEYIeim.mjs";
|
|
6
|
+
import { _ as provisionEnv, r as assertNoTransportRedirectInProjectDotenv, s as deleteEnvVarCaseAware, v as resolvePinnedApiBaseUrl } from "./provision-DtROpNNI.mjs";
|
|
7
|
+
import { a as findWranglerCiOverrideDotenvFile, i as findAmbientConfigOverride } from "./deploy-transport-BzGEj0Ge.mjs";
|
|
8
8
|
import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
9
9
|
import { tmpdir } from "node:os";
|
|
10
10
|
import { deployCloudflareVersionTraffic, encodeCloudflareVersionMessage, parseCloudflareVersionMessage, parseRootWranglerConfig, readBindingFieldPresence, readCloudflareTriggerConfig, readWranglerTopLevelString, resolveD1MigrateTarget, stabilizeCloudflareVersionTriggers } from "@void/deploy-cloudflare";
|
|
@@ -115,6 +115,16 @@ async function applyCloudflareD1Migrations(context) {
|
|
|
115
115
|
configPath: context.operation.configPath
|
|
116
116
|
}, { capture: false });
|
|
117
117
|
}
|
|
118
|
+
/** Restore the D1 database with Time Travel. Returns the bookmark that undoes the restore. */
|
|
119
|
+
async function restoreCloudflareD1Database(context, target) {
|
|
120
|
+
const previous = (await run(context.operation, {
|
|
121
|
+
type: "d1.time-travel.restore",
|
|
122
|
+
database: context.migrateToken,
|
|
123
|
+
target,
|
|
124
|
+
configPath: context.operation.configPath
|
|
125
|
+
})).data?.previousBookmark;
|
|
126
|
+
return typeof previous === "string" ? previous : void 0;
|
|
127
|
+
}
|
|
118
128
|
async function readCloudflareWorkerStatus(context) {
|
|
119
129
|
const [deployment, deployments, versions] = await Promise.all([
|
|
120
130
|
run(context, {
|
|
@@ -439,4 +449,4 @@ function failedOperationResult(error) {
|
|
|
439
449
|
};
|
|
440
450
|
}
|
|
441
451
|
//#endregion
|
|
442
|
-
export { resolveCloudflareD1Context as _, createCloudflareEmptyDomainPublisher as a,
|
|
452
|
+
export { resolveCloudflareD1Context as _, createCloudflareEmptyDomainPublisher as a, syncCloudflareSecrets as b, listCloudflareDomains as c, parseCloudflareDeployedVersionIds as d, parseCloudflareVersions as f, readCloudflareWorkerStatus as g, readCloudflareD1Migrations as h, createCloudflareEmptyCronPublisher as i, listCloudflareSecrets as l, putCloudflareSecret as m, applyCloudflareD1Migrations as n, deleteCloudflareSecret as o, publishEmptyCloudflareCustomDomainSet as p, changeCloudflareDomain as r, executeCloudflareD1Sql as s, activateCloudflareExistingVersion as t, parseActiveVersionId as u, resolveCloudflareOperationContext as v, tailCloudflareWorker as x, restoreCloudflareD1Database as y };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as activateCloudflareExistingVersion, n as applyCloudflareD1Migrations, r as changeCloudflareDomain, o as deleteCloudflareSecret, s as executeCloudflareD1Sql, c as listCloudflareDomains, l as listCloudflareSecrets, m as putCloudflareSecret, h as readCloudflareD1Migrations, g as readCloudflareWorkerStatus, _ as resolveCloudflareD1Context, v as resolveCloudflareOperationContext, y as
|
|
1
|
+
export { t as activateCloudflareExistingVersion, n as applyCloudflareD1Migrations, r as changeCloudflareDomain, o as deleteCloudflareSecret, s as executeCloudflareD1Sql, c as listCloudflareDomains, l as listCloudflareSecrets, m as putCloudflareSecret, h as readCloudflareD1Migrations, g as readCloudflareWorkerStatus, _ as resolveCloudflareD1Context, v as resolveCloudflareOperationContext, y as restoreCloudflareD1Database, b as syncCloudflareSecrets, x as tailCloudflareWorker } from "./cloudflare-operations-Dh9dEHJj.mjs";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { a as join, c as resolve, n as dirname, s as relative } from "./dist-ipQi0Q8y.mjs";
|
|
2
2
|
import { n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
|
|
3
|
-
import { i as hasSsrEntry, r as getSsrServerEntryPath } from "./entry-
|
|
3
|
+
import { i as hasSsrEntry, r as getSsrServerEntryPath } from "./entry-BEM8ZuGP.mjs";
|
|
4
4
|
import { i as readPackageJson, n as hasPackageDependency, t as getPackageDependencies } from "./package-json-BjYqR-So.mjs";
|
|
5
|
+
import { t as CF_VERSION_SOURCE_MAX_OUTPUT_BYTES } from "./cf-command-values-ByHk0xg4.mjs";
|
|
5
6
|
import { existsSync } from "node:fs";
|
|
6
7
|
import { fileURLToPath } from "node:url";
|
|
7
8
|
import { spawnSync } from "node:child_process";
|
|
@@ -364,7 +365,7 @@ function createCloudflareProcessRunner(options) {
|
|
|
364
365
|
encoding: "utf8",
|
|
365
366
|
shell: false,
|
|
366
367
|
windowsHide: true,
|
|
367
|
-
maxBuffer: 33554432,
|
|
368
|
+
maxBuffer: operation.type === "versions.view" && operation.includeSource ? CF_VERSION_SOURCE_MAX_OUTPUT_BYTES : 33554432,
|
|
368
369
|
timeout: options.timeoutMs,
|
|
369
370
|
stdio: streaming ? [
|
|
370
371
|
"inherit",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { a as join, s as relative } from "./dist-ipQi0Q8y.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { i as resolveProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
|
|
3
|
+
import { c as getDatabaseCasing, p as readConfig } from "./config-DHgSEWT7.mjs";
|
|
3
4
|
import { n as schemaSpecifier, t as discoverSchema } from "./discover-LaV0tbIu.mjs";
|
|
4
5
|
import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
5
6
|
import { tmpdir } from "node:os";
|
|
@@ -15,14 +16,17 @@ const PLACEHOLDER_DB_URL = {
|
|
|
15
16
|
* Schema and migration paths are relative to the project root: drizzle-kit
|
|
16
17
|
* resolves them against its working directory, and `void db` always runs it
|
|
17
18
|
* with `cwd` set to the project root, so the config file itself may live
|
|
18
|
-
* anywhere (see `outDir`).
|
|
19
|
+
* anywhere (see `outDir`). It carries `database.casing` from the project's
|
|
20
|
+
* config, which `void/db` also passes to drizzle.
|
|
19
21
|
*
|
|
20
22
|
* @param options.outDir Directory for the config file. When set, the file is
|
|
21
23
|
* written readable by the owner only.
|
|
22
24
|
* @returns Absolute path to the written config file.
|
|
23
25
|
*/
|
|
24
26
|
function writeDrizzleConfig(root, dbPath, dialect = "sqlite", options) {
|
|
25
|
-
const
|
|
27
|
+
const projectConfig = readConfig(root);
|
|
28
|
+
const paths = resolveProjectPaths(root, projectConfig);
|
|
29
|
+
const casing = getDatabaseCasing(projectConfig);
|
|
26
30
|
const schema = discoverSchema(root, paths);
|
|
27
31
|
const schemaPaths = [...schema ? [schemaSpecifier(schema, root)] : [], ...(options?.additionalSchemas ?? []).map((path) => `./${relative(root, path)}`)];
|
|
28
32
|
if (schemaPaths.length === 0) throw new Error(`db: No Drizzle schema found. Create ${paths.sourceRelative("db/schema.ts")} or run \`void gen model <name>\`.`);
|
|
@@ -30,6 +34,7 @@ function writeDrizzleConfig(root, dbPath, dialect = "sqlite", options) {
|
|
|
30
34
|
mkdirSync(outDir, { recursive: true });
|
|
31
35
|
const config = {
|
|
32
36
|
dialect,
|
|
37
|
+
...casing ? { casing } : {},
|
|
33
38
|
schema: schemaPaths.length === 1 ? schemaPaths[0] : schemaPaths,
|
|
34
39
|
out: `./${relative(root, paths.migrationsDir)}`,
|
|
35
40
|
migrations: { prefix: "timestamp" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as PLACEHOLDER_DB_URL, n as withPrivateDrizzleConfig, r as writeDrizzleConfig } from "./config-
|
|
1
|
+
export { t as PLACEHOLDER_DB_URL, n as withPrivateDrizzleConfig, r as writeDrizzleConfig } from "./config-BIaXIkkv.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as validateSourceDir, c as loadVoidConfig } from "./project-paths-DGu_QZ_Q.mjs";
|
|
2
2
|
import { a as isVoidAuthProvider, t as VOID_AUTH_PROVIDERS } from "./providers-BUHwJlmM.mjs";
|
|
3
|
-
import { n as MimeError, s as parseAddress } from "./mime-
|
|
3
|
+
import { n as MimeError, s as parseAddress } from "./mime-BAyHPskU.mjs";
|
|
4
4
|
import { isRecord } from "@void/deploy-core";
|
|
5
5
|
//#region src/config.ts
|
|
6
6
|
const CONFIG_FILE = "void.json";
|
|
@@ -40,6 +40,12 @@ const VALID_REDIRECT_STATUSES = /* @__PURE__ */ new Set([
|
|
|
40
40
|
308
|
|
41
41
|
]);
|
|
42
42
|
const VALID_DATABASE_VALUES = /* @__PURE__ */ new Set(["pg", "mysql"]);
|
|
43
|
+
const VALID_DATABASE_DIALECTS = /* @__PURE__ */ new Set([
|
|
44
|
+
"sqlite",
|
|
45
|
+
"pg",
|
|
46
|
+
"mysql"
|
|
47
|
+
]);
|
|
48
|
+
const VALID_DATABASE_CASINGS = /* @__PURE__ */ new Set(["snake_case", "camelCase"]);
|
|
43
49
|
/** Cloudflare's hard maximum for Workers CPU time per request (5 minutes). */
|
|
44
50
|
const MAX_WORKER_CPU_MS = 3e5;
|
|
45
51
|
const VALID_SANDBOX_INSTANCE_TYPES = /* @__PURE__ */ new Set([
|
|
@@ -361,7 +367,12 @@ function validateConfigObject(obj) {
|
|
|
361
367
|
}
|
|
362
368
|
}
|
|
363
369
|
if (obj.database !== void 0) {
|
|
364
|
-
if (
|
|
370
|
+
if (isRecord(obj.database)) {
|
|
371
|
+
const databaseCfg = obj.database;
|
|
372
|
+
for (const key of Object.keys(databaseCfg)) if (key !== "dialect" && key !== "casing") throw new Error(`config: Unknown key 'database.${key}' in ${CONFIG_FILE}. Valid: dialect, casing.`);
|
|
373
|
+
if (databaseCfg.dialect !== void 0 && (typeof databaseCfg.dialect !== "string" || !VALID_DATABASE_DIALECTS.has(databaseCfg.dialect))) throw new Error(`config: "database.dialect" in ${CONFIG_FILE} must be "sqlite", "pg" or "mysql".`);
|
|
374
|
+
if (databaseCfg.casing !== void 0 && (typeof databaseCfg.casing !== "string" || !VALID_DATABASE_CASINGS.has(databaseCfg.casing))) throw new Error(`config: "database.casing" in ${CONFIG_FILE} must be "snake_case" or "camelCase".`);
|
|
375
|
+
} else if (typeof obj.database !== "string" || !VALID_DATABASE_VALUES.has(obj.database)) throw new Error(`config: "database" in ${CONFIG_FILE} must be "pg", "mysql" or an object with "dialect" and "casing".`);
|
|
365
376
|
}
|
|
366
377
|
if (obj.ai !== void 0) {
|
|
367
378
|
if (!isRecord(obj.ai)) throw new Error(`config: "ai" in ${CONFIG_FILE} must be an object.`);
|
|
@@ -428,14 +439,36 @@ function resolveBindingNames(bindings) {
|
|
|
428
439
|
return hasCustom ? names : void 0;
|
|
429
440
|
}
|
|
430
441
|
/**
|
|
431
|
-
* Get the database dialect from config. Defaults to "sqlite".
|
|
442
|
+
* Get the database dialect from config, in its string or object form. Defaults to "sqlite".
|
|
432
443
|
*/
|
|
433
444
|
function getDatabaseDialect(config) {
|
|
434
|
-
|
|
435
|
-
|
|
445
|
+
const database = config.database;
|
|
446
|
+
const value = typeof database === "object" && database !== null ? database.dialect : database;
|
|
447
|
+
if (value === "pg") return "postgresql";
|
|
448
|
+
if (value === "mysql") return "mysql";
|
|
436
449
|
return "sqlite";
|
|
437
450
|
}
|
|
438
451
|
/**
|
|
452
|
+
* Get Drizzle's `casing` from config. Undefined when unset: callers then pass no casing,
|
|
453
|
+
* so Drizzle keeps its default of naming a column after its key.
|
|
454
|
+
*/
|
|
455
|
+
function getDatabaseCasing(config) {
|
|
456
|
+
const database = config.database;
|
|
457
|
+
return typeof database === "object" && database !== null ? database.casing : void 0;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* The `database` value for a dialect that keeps the configured casing. Without casing it is
|
|
461
|
+
* the string shorthand, or undefined for the default D1 (SQLite).
|
|
462
|
+
*/
|
|
463
|
+
function databaseConfigValue(dialect, casing) {
|
|
464
|
+
const shorthand = dialect === "postgresql" ? "pg" : dialect === "mysql" ? "mysql" : void 0;
|
|
465
|
+
if (casing === void 0) return shorthand;
|
|
466
|
+
return shorthand ? {
|
|
467
|
+
dialect: shorthand,
|
|
468
|
+
casing
|
|
469
|
+
} : { casing };
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
439
472
|
* Convert the `headers` config field into `HeaderRule[]` for the deploy manifest.
|
|
440
473
|
*
|
|
441
474
|
* Each key is a URL pattern (e.g. "/assets/*") and each value is an array of
|
|
@@ -537,4 +570,4 @@ function convertRewriteRules(caller, entries, field, force) {
|
|
|
537
570
|
return rules.length > 0 ? rules : void 0;
|
|
538
571
|
}
|
|
539
572
|
//#endregion
|
|
540
|
-
export { convertRewritesConfig as a,
|
|
573
|
+
export { convertRewritesConfig as a, getDatabaseCasing as c, isProtocolRelative as d, parseHostPrefixedSource as f, validateConfig as h, convertRedirectsConfig as i, getDatabaseDialect as l, resolveBindingNames as m, convertFallbacksConfig as n, countSplats as o, readConfig as p, convertHeadersConfig as r, databaseConfigValue as s, VALID_REDIRECT_STATUSES as t, isNodeTarget as u };
|
|
@@ -21,6 +21,15 @@ type RedirectDestination = string | {
|
|
|
21
21
|
to: string;
|
|
22
22
|
status?: 301 | 302 | 303 | 307 | 308;
|
|
23
23
|
};
|
|
24
|
+
/** Drizzle's `casing`: how a column declared without a name is named in the database. */
|
|
25
|
+
type DatabaseCasing = "snake_case" | "camelCase";
|
|
26
|
+
/** Object form of `database`, for options next to the dialect. */
|
|
27
|
+
type DatabaseConfig = {
|
|
28
|
+
/** Database backend. Defaults to `"sqlite"` (D1). */
|
|
29
|
+
dialect?: "sqlite" | "pg" | "mysql";
|
|
30
|
+
/** Column naming for keys without an explicit column name, as in Drizzle's `casing` option. */
|
|
31
|
+
casing?: DatabaseCasing;
|
|
32
|
+
};
|
|
24
33
|
/** Curated Worker fields accepted by the `worker` config field. */
|
|
25
34
|
type WranglerConfig = {
|
|
26
35
|
compatibility_date?: string;
|
|
@@ -184,7 +193,7 @@ type VoidConfig = {
|
|
|
184
193
|
worker?: WranglerConfig;
|
|
185
194
|
cloudflare?: CloudflareConfig;
|
|
186
195
|
deploy?: DeployConfig;
|
|
187
|
-
database?: "pg" | "mysql";
|
|
196
|
+
database?: "pg" | "mysql" | DatabaseConfig;
|
|
188
197
|
ai?: AiConfig;
|
|
189
198
|
email?: EmailConfig;
|
|
190
199
|
};
|
package/dist/config-entry.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as VoidConfig } from "./config-
|
|
1
|
+
import { t as VoidConfig } from "./config-DQfHOKh9.mjs";
|
|
2
2
|
//#region src/config-entry.d.ts
|
|
3
3
|
/** Define a typed Void project configuration without loading the Vite plugin. */
|
|
4
4
|
export declare function defineConfig<const T extends VoidConfig>(config: T): T;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { c as normalizePlatformApiUrl, s as listPlatformConnections } from "./platform-registry-B9mWX9LO.mjs";
|
|
2
2
|
import { c as writeDeploymentPlatform, l as writePlatformSelection, n as readDeploymentPlatform } from "./project-rqDnVsJN.mjs";
|
|
3
3
|
import { d as readPlatformToken } from "./auth-B6iOCjKI.mjs";
|
|
4
|
-
import { K as select, L as log, tt as isCancel } from "./dist-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { t as promptForLoginToken } from "./login-
|
|
8
|
-
import { i as saveDiscoveredPlatform, n as promptPlatformUrl, t as discoverPlatform } from "./platform-cmd-
|
|
9
|
-
import { t as connectCloudflare } from "./cloudflare-connect-
|
|
4
|
+
import { K as select, L as log, tt as isCancel } from "./dist-Cor9XGoz.mjs";
|
|
5
|
+
import { a as isExpiredTokenError, r as PlatformClient } from "./client-BEkdj1kx.mjs";
|
|
6
|
+
import { m as printSuccess } from "./output-BpgYODYx.mjs";
|
|
7
|
+
import { t as promptForLoginToken } from "./login-Cttnagmm.mjs";
|
|
8
|
+
import { i as saveDiscoveredPlatform, n as promptPlatformUrl, t as discoverPlatform } from "./platform-cmd-D5I1beUX.mjs";
|
|
9
|
+
import { t as connectCloudflare } from "./cloudflare-connect-CCRTVg-I.mjs";
|
|
10
10
|
//#region src/cli/connect.ts
|
|
11
11
|
async function selectVoidPlatform(interactive) {
|
|
12
12
|
if (!interactive) throw new Error("connect: Supply a Void platform URL in non-interactive mode.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as createProjectWithSlugRetry } from "./create-project-
|
|
1
|
+
export { t as createProjectWithSlugRetry } from "./create-project-DV71ol5d.mjs";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as attachSelectedPlatform, u as writeProjectConfig } from "./project-rqDnVsJN.mjs";
|
|
2
2
|
import { s as getSiteDomain } from "./auth-B6iOCjKI.mjs";
|
|
3
|
-
import { A as confirm, K as select, L as log, O as cancel, X as text, tt as isCancel } from "./dist-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { A as confirm, K as select, L as log, O as cancel, X as text, tt as isCancel } from "./dist-Cor9XGoz.mjs";
|
|
4
|
+
import { n as PlatformApiError } from "./client-BEkdj1kx.mjs";
|
|
5
|
+
import { f as import_picocolors, h as sanitizeTerminalText } from "./output-BpgYODYx.mjs";
|
|
6
6
|
import { t as validateProjectSlug } from "./project-slug-23TpquG4.mjs";
|
|
7
|
-
import { n as inferDefaultSlug } from "./resolve-project-
|
|
7
|
+
import { n as inferDefaultSlug } from "./resolve-project-Xoi6eTWY.mjs";
|
|
8
8
|
//#region src/cli/prompt.ts
|
|
9
9
|
async function promptProjectSetupAction(message = "Set up a Void project:", options = {}) {
|
|
10
10
|
const result = await select({
|