void 0.10.4 → 0.10.6
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/agents-Bmr5tFFb.mjs +1454 -0
- package/dist/{auth-cmd-CblKzAdD.mjs → auth-cmd-DlgNwByu.mjs} +10 -10
- package/dist/{better-auth-shared-D0Mbmx5V.mjs → better-auth-shared-BQooDxbw.mjs} +1 -1
- package/dist/{better-auth-shared-jkksALri.d.mts → better-auth-shared-BvnM9px6.d.mts} +2 -2
- package/dist/{build-cmd-CJQSRupz.mjs → build-cmd-Br8qL0rA.mjs} +15 -17
- package/dist/{cache-CMzjhxHh.mjs → cache-wH-mP8UE.mjs} +10 -12
- package/dist/{cancel-deploy-S2N8NSv6.mjs → cancel-deploy-BEBOEgtu.mjs} +16 -18
- package/dist/cli/cli.mjs +62 -51
- package/dist/{client-YIzxv2ZO.mjs → client-Cj96iiBH.mjs} +118 -8
- package/dist/{config-8dLIngKW.mjs → config-1twldYCW.mjs} +10 -10
- package/dist/{config--wXmVOoe.mjs → config-BdUctCZD.mjs} +6 -6
- package/dist/{create-project-pLQdzEPe.mjs → create-project-DD9n8Ho-.mjs} +28 -23
- package/dist/{db-hAmBumot.mjs → db-DjKE2-A-.mjs} +151 -150
- package/dist/{delete-CfSe3EJO.mjs → delete-D2kr3Kmk.mjs} +13 -15
- package/dist/{deploy-DpOdwtla.mjs → deploy-C4PbkFyE.mjs} +114 -119
- package/dist/{discover-C8N1I4tK.mjs → discover-BuVVSAum.mjs} +4 -4
- package/dist/{dist-5cGIJHQQ.mjs → dist-BuiRJkTd.mjs} +59 -27
- package/dist/{domain-CkowysQx.mjs → domain-_luIsM_B.mjs} +14 -16
- package/dist/{env-CIwG2y7G.mjs → env-CO5XAS9t.mjs} +23 -25
- package/dist/{env-helpers-B_ks681T.d.mts → env-helpers-z4stu8uc.d.mts} +1 -1
- package/dist/{env-types-CaJaIRXU.mjs → env-types-D51bnR-c.mjs} +4 -4
- package/dist/{env-validation-LH6eoyW-.mjs → env-validation-CeC2FL66.mjs} +4 -4
- package/dist/{fetch-error-C6qffTl2.mjs → fetch-error-Dj3crt0e.mjs} +3 -3
- package/dist/{gen-q6McxXgE.mjs → gen-Cf79J4aw.mjs} +42 -44
- package/dist/{github-cmd-BvEKQmcD.mjs → github-cmd-DnqxyOsb.mjs} +197 -91
- package/dist/{handler-B7rCOy21.d.mts → handler-imD0UVDT.d.mts} +4 -5
- package/dist/{headers-BNWymgnH.mjs → headers-BwvFGhkx.mjs} +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +102 -83
- package/dist/{init-CZP69LJu.mjs → init-KirOzVDs.mjs} +132 -134
- package/dist/link-CUmiosyb.mjs +45 -0
- package/dist/{list-B7qXBBjo.mjs → list-3GEw7b6m.mjs} +10 -12
- package/dist/{login-B3l_sDwT.mjs → login-DJReaT_Q.mjs} +14 -15
- package/dist/{logs-AXm660MB.mjs → logs-D-rQ56Lq.mjs} +9 -11
- package/dist/{magic-string.es-C1Fb0uxq.mjs → magic-string.es-ZQjdJFFn.mjs} +3 -3
- package/dist/{mcp-D2plINxM.mjs → mcp-D7yc0dXY.mjs} +2 -3
- package/dist/{node-B07cZs0d.mjs → node-yFFk626c.mjs} +6 -6
- package/dist/{package-json-Bg_GJdJB.mjs → package-json-B0NuUWGd.mjs} +1 -1
- package/dist/pages/client.d.mts +1 -1
- package/dist/pages/client.mjs +2 -1
- package/dist/pages/head-client.d.mts +1 -1
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/index.d.mts +2 -2
- package/dist/pages/index.mjs +5 -5
- package/dist/pages/islands-plugin.d.mts +1 -1
- package/dist/pages/islands-plugin.mjs +3 -3
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +5 -2
- package/dist/{plugin-inference-C3fLzFvP.mjs → plugin-inference-CJxi_fWI.mjs} +4 -4
- package/dist/{prepare-DRRboRqH.mjs → prepare-C_cVurhP.mjs} +15 -18
- package/dist/{preset-B7ZQZn0u.mjs → preset-CVvwCeIy.mjs} +4 -4
- package/dist/{project-cmd-InegJruy.mjs → project-cmd-DnU7u9QF.mjs} +13 -14
- package/dist/{project-paths-CCMrHYQm.mjs → project-paths-tpdR1mJR.mjs} +2 -2
- package/dist/{project-tsconfig-BTNuNoJ0.mjs → project-tsconfig-D9uSVVpA.mjs} +4 -4
- package/dist/{protocol-6UZCowS1.d.mts → protocol-6hTJ04T1.d.mts} +3 -3
- package/dist/{resolve-project-D4O1_fZz.mjs → resolve-project-D2HI3TrG.mjs} +2 -2
- package/dist/{rollback-CHVE-DeT.mjs → rollback-Yh7bCKob.mjs} +21 -23
- package/dist/{route-types-D03ryMXz.mjs → route-types-CfKfhbIg.mjs} +234 -3
- package/dist/{runner-BQyKUqAL.mjs → runner-h272wcPj.mjs} +4 -5
- package/dist/{runner-pg-EuhrFW3D.mjs → runner-pg-waxJOnBb.mjs} +1 -1
- package/dist/runtime/ai.mjs +2 -2
- package/dist/runtime/auth.d.mts +1 -1
- package/dist/runtime/better-auth-pg.d.mts +1 -1
- package/dist/runtime/better-auth-pg.mjs +3 -3
- package/dist/runtime/better-auth.d.mts +1 -1
- package/dist/runtime/better-auth.mjs +2 -2
- package/dist/runtime/client-react.d.mts +2 -2
- package/dist/runtime/client-react.mjs +1 -1
- package/dist/runtime/client-solid.d.mts +2 -2
- package/dist/runtime/client-solid.mjs +1 -1
- package/dist/runtime/client-svelte.d.mts +2 -2
- package/dist/runtime/client-svelte.mjs +1 -1
- package/dist/runtime/client-vue.d.mts +2 -2
- package/dist/runtime/client-vue.mjs +1 -1
- package/dist/runtime/client.d.mts +2 -2
- package/dist/runtime/client.mjs +1 -1
- package/dist/runtime/db-pg.d.mts +1 -1
- package/dist/runtime/env-helpers.d.mts +1 -1
- package/dist/runtime/env-public-client.d.mts +1 -1
- package/dist/runtime/env-public-client.mjs +2 -0
- package/dist/runtime/env-public.d.mts +3 -4
- package/dist/runtime/env-public.mjs +3 -1
- package/dist/runtime/env.mjs +1 -1
- package/dist/runtime/fetch-stream.d.mts +1 -1
- package/dist/runtime/fetch-stream.mjs +1 -1
- package/dist/runtime/fetch.d.mts +1 -1
- package/dist/runtime/fetch.mjs +1 -1
- package/dist/runtime/handler.d.mts +2 -2
- package/dist/runtime/handler.mjs +1 -1
- package/dist/runtime/isr.mjs +1 -1
- package/dist/runtime/live-server.mjs +2 -0
- package/dist/runtime/live.d.mts +2 -2
- package/dist/runtime/live.mjs +3 -1
- package/dist/runtime/migration-handler-pg.mjs +1 -1
- package/dist/runtime/migration-handler.mjs +1 -1
- package/dist/runtime/remote/index.mjs +11 -1
- package/dist/runtime/sandbox.d.mts +1 -4
- package/dist/runtime/sandbox.mjs +1 -1
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +2 -2
- package/dist/runtime/ws-server.mjs +2 -0
- package/dist/runtime/ws.d.mts +3 -3
- package/dist/runtime/ws.mjs +2 -0
- package/dist/{scan-VCAM1oh3.mjs → scan-Dp_Gyzs3.mjs} +3 -3
- package/dist/{scan-DGEp1-1Q.mjs → scan-i7Yz54fv.mjs} +26 -8
- package/dist/{secret-CVKwIOm3.mjs → secret-u7FRvg8d.mjs} +22 -24
- package/dist/{skills-Dl3u05da.mjs → skills-DsdNDtX3.mjs} +6 -7
- package/dist/{subcommand-prompt-B8ng0FTS.mjs → subcommand-prompt-DtES-oP6.mjs} +34 -35
- package/dist/sveltekit.mjs +2 -2
- package/dist/validate-DT7nFMlf.mjs +504 -0
- package/dist/{yarn-pnp-WLW2IHUY.mjs → yarn-pnp-CW8LB6g_.mjs} +1 -1
- package/package.json +19 -19
- package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +94 -0
- package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +32 -11
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +45 -0
- package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +5 -5
- package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +4 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +29 -12
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/AGENTS.md +1 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/README.md +18 -6
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/build.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/check.md +35 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/create.md +70 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/fmt.md +3 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/index.md +11 -7
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/lint.md +3 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/pack.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/run.md +141 -26
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/staged.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/test.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +145 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/cache.md +16 -28
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/check.md +16 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ci.md +15 -17
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/commit-hooks.md +9 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/create.md +255 -2
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/docker.md +175 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/env.md +70 -5
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/github-actions-cache.md +165 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ide-integration.md +2 -2
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/index.md +9 -3
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/install.md +63 -11
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate-rules.md +347 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate.md +27 -3
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/monorepo.md +176 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/pack.md +8 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/run.md +36 -4
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/troubleshooting.md +11 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/upgrade.md +65 -13
- package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +403 -390
- package/skills/void/docs/node_modules/void/node_modules/pg/README.md +2 -1
- package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/AGENTS.md +1 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/README.md +18 -6
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/build.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/check.md +35 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/create.md +70 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/fmt.md +3 -1
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/index.md +11 -7
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/lint.md +3 -1
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/pack.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/run.md +141 -26
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/staged.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/test.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +145 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/cache.md +16 -28
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/check.md +16 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ci.md +15 -17
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/commit-hooks.md +9 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/create.md +255 -2
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/docker.md +175 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/env.md +70 -5
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/github-actions-cache.md +165 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md +2 -2
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/index.md +9 -3
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/install.md +63 -11
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate-rules.md +347 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate.md +27 -3
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/monorepo.md +176 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/pack.md +8 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/run.md +36 -4
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/troubleshooting.md +11 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/upgrade.md +65 -13
- package/skills/void/docs/reference/cli.md +19 -1
- package/dist/agents-MhSzNMiC.mjs +0 -151
- package/dist/collect-9rO3JFNM.mjs +0 -55
- package/dist/config-hhMYPVRT.mjs +0 -21
- package/dist/dist-abzUneor.mjs +0 -1287
- package/dist/drizzle-DqstQTGq.mjs +0 -232
- package/dist/link-BKLElphS.mjs +0 -47
- package/dist/output-DeiS4oEX.mjs +0 -139
- package/dist/plan-aD3wRDqF.mjs +0 -271
- package/dist/project-CH9pdo16.mjs +0 -72
- package/dist/project-slug-rX3kTOfY.mjs +0 -10
- package/dist/validate-CNWm-PsL.mjs +0 -186
- /package/dist/{auth-migrations-BP-hMzYl.mjs → auth-migrations-BTZ-ATvQ.mjs} +0 -0
- /package/dist/{auth-Dz2CCn4T.d.mts → auth-qgMlYp7Z.d.mts} +0 -0
- /package/dist/{canonical-json-CEyQaVDa.mjs → canonical-json-DuDiiUsQ.mjs} +0 -0
- /package/dist/{cf-access-DKDsgwOU.mjs → cf-access-Bqw81xAf.mjs} +0 -0
- /package/dist/{defer-C-bdSM_b.mjs → defer-YsYDUoii.mjs} +0 -0
- /package/dist/{dotenv-lS94ymhM.mjs → dotenv-D_UbC_vc.mjs} +0 -0
- /package/dist/{env-raw-Dtj1UAoK.mjs → env-raw-CoS20LHP.mjs} +0 -0
- /package/dist/{fetch-error-B6RaJ-eZ.d.mts → fetch-error-Sp1R4mZv.d.mts} +0 -0
- /package/dist/{git-metadata-Ce0AtSZL.mjs → git-metadata-CBKaL0v5.mjs} +0 -0
- /package/dist/{head-eOUCWUNy.d.mts → head-nmvOgFjd.d.mts} +0 -0
- /package/dist/{log-BdD_Fpms.mjs → log-ChfPKsVd.mjs} +0 -0
- /package/dist/{pathe.M-eThtNZ-BrPhGF_K.mjs → pathe.M-eThtNZ-CQzLbt4c.mjs} +0 -0
- /package/dist/{pg-CempqvEJ.mjs → pg-J2HbZIkX.mjs} +0 -0
- /package/dist/{providers-BJIoduK9.d.mts → providers-BNKRacMr.d.mts} +0 -0
- /package/dist/{providers-BwPbdHdi.mjs → providers-CJlNS3kT.mjs} +0 -0
- /package/dist/{proxy-M3pxItg2.mjs → proxy-D-3_D-Gl.mjs} +0 -0
- /package/dist/{chunk-DJd-R1mw.mjs → rolldown-runtime-DJK8HYOj.mjs} +0 -0
- /package/dist/{standard-schema-Cy0lfeWv.d.mts → standard-schema-DJ0HW7QP.d.mts} +0 -0
- /package/dist/{types-BodZGegX.d.mts → types-lLjNE9Qp.d.mts} +0 -0
|
@@ -1,31 +1,27 @@
|
|
|
1
|
-
import { n as __exportAll } from "./
|
|
2
|
-
import { a as join, c as resolve, i as isAbsolute, n as dirname, r as extname, s as relative } from "./pathe.M-eThtNZ-
|
|
3
|
-
import {
|
|
4
|
-
import { i as resolveProjectPaths, n as readProjectPaths } from "./project-paths-
|
|
5
|
-
import {
|
|
6
|
-
import { t as cfAccessHeaders } from "./cf-access-
|
|
7
|
-
import { a as isExpiredTokenError, f as getToken, i as isCliOutdatedError, m as isStagingMode, n as PlatformClient, o as parsePlatformErrorBody, p as getTokenSource, t as PlatformApiError, u as getApiUrl
|
|
8
|
-
import { c as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { t as
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { t as
|
|
19
|
-
import { n as
|
|
20
|
-
import { r as
|
|
21
|
-
import { t as
|
|
22
|
-
import { n as
|
|
23
|
-
import {
|
|
24
|
-
import { r as
|
|
25
|
-
import { t as collectGitDeployMetadata } from "./git-metadata-Ce0AtSZL.mjs";
|
|
26
|
-
import { n as lintDuplicateSources, r as mergeRoutingRules, t as lintDestinationSplats } from "./headers-BNWymgnH.mjs";
|
|
27
|
-
import { t as promptForLoginToken } from "./login-B3l_sDwT.mjs";
|
|
28
|
-
import { i as resolveProjectCommand, n as detectPreset, r as formatProjectCommand, t as FRAMEWORK_PRESETS } from "./preset-B7ZQZn0u.mjs";
|
|
1
|
+
import { n as __exportAll } from "./rolldown-runtime-DJK8HYOj.mjs";
|
|
2
|
+
import { a as join, c as resolve, i as isAbsolute, n as dirname, r as extname, s as relative } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
|
|
3
|
+
import { D as outro, E as note, S as confirm, T as log, a as cliTitle, j as isCancel, o as createSpinner, u as import_picocolors, w as intro } from "./agents-Bmr5tFFb.mjs";
|
|
4
|
+
import { i as resolveProjectPaths, n as readProjectPaths } from "./project-paths-tpdR1mJR.mjs";
|
|
5
|
+
import { a as scanQueuesSync, i as scanWebSocketRoutesSync, o as scanJobsSync, r as scanRoutes, s as findVoidAuthConfig } from "./scan-i7Yz54fv.mjs";
|
|
6
|
+
import { t as cfAccessHeaders } from "./cf-access-Bqw81xAf.mjs";
|
|
7
|
+
import { C as ensureCloudflaredToken, S as writeProjectConfig, a as isExpiredTokenError, b as readProjectConfig, f as getToken, i as isCliOutdatedError, m as isStagingMode, n as PlatformClient, o as parsePlatformErrorBody, p as getTokenSource, t as PlatformApiError, u as getApiUrl } from "./client-Cj96iiBH.mjs";
|
|
8
|
+
import { c as getDatabaseDialect, f as readConfig, l as isNodeTarget, p as resolveBindingNames } from "./config-1twldYCW.mjs";
|
|
9
|
+
import { i as inferProjectBindings, l as validateSsrEntry, n as FRAMEWORK_SCAN_DIRS, r as detectFramework } from "./plugin-inference-CJxi_fWI.mjs";
|
|
10
|
+
import { i as voidWarn, r as voidLog } from "./log-ChfPKsVd.mjs";
|
|
11
|
+
import { n as mergeAndExpand, r as parseDotenvFile } from "./dotenv-D_UbC_vc.mjs";
|
|
12
|
+
import { t as discoverSchema } from "./discover-BuVVSAum.mjs";
|
|
13
|
+
import { t as findEnvFile } from "./env-types-D51bnR-c.mjs";
|
|
14
|
+
import { i as validateProdEnv, n as formatEnvReport, r as getDeployEnvDefaults, t as fetchRemoteSecretNames } from "./env-validation-CeC2FL66.mjs";
|
|
15
|
+
import { n as writeDrizzleConfig } from "./config-BdUctCZD.mjs";
|
|
16
|
+
import { a as buildMigrationPlanBundle, c as collectMigrations, r as validateMigrations, t as assertJournalCoherence } from "./validate-DT7nFMlf.mjs";
|
|
17
|
+
import { t as scanPages } from "./scan-Dp_Gyzs3.mjs";
|
|
18
|
+
import { n as STAGING_PROXY_URL, t as DEFAULT_PROXY_URL } from "./proxy-D-3_D-Gl.mjs";
|
|
19
|
+
import { i as promptProjectSetupAction, n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-DD9n8Ho-.mjs";
|
|
20
|
+
import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D2HI3TrG.mjs";
|
|
21
|
+
import { t as collectGitDeployMetadata } from "./git-metadata-CBKaL0v5.mjs";
|
|
22
|
+
import { n as lintDuplicateSources, r as mergeRoutingRules, t as lintDestinationSplats } from "./headers-BwvFGhkx.mjs";
|
|
23
|
+
import { t as promptForLoginToken } from "./login-DJReaT_Q.mjs";
|
|
24
|
+
import { i as resolveProjectCommand, n as detectPreset, r as formatProjectCommand, t as FRAMEWORK_PRESETS } from "./preset-CVvwCeIy.mjs";
|
|
29
25
|
import { createRequire } from "node:module";
|
|
30
26
|
import { copyFileSync, cpSync, createWriteStream, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
31
27
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
@@ -56,6 +52,7 @@ function workerOwnsHtmlRouting(inputs) {
|
|
|
56
52
|
function resolveAssetConfig(inputs) {
|
|
57
53
|
return resolveAssetRoutingPolicy(inputs).assetConfig;
|
|
58
54
|
}
|
|
55
|
+
const VOID_INTERNAL_WORKER_FIRST = ["/__void", "/__void/*"];
|
|
59
56
|
function resolveAssetRoutingPolicy(inputs) {
|
|
60
57
|
const workerFirst = workerOwnsHtmlRouting(inputs);
|
|
61
58
|
const apiWorkerFirst = !workerFirst && (inputs.hasApiRoutes === true || inputs.authEnabled === true);
|
|
@@ -65,8 +62,15 @@ function resolveAssetRoutingPolicy(inputs) {
|
|
|
65
62
|
run_worker_first: ["/**"]
|
|
66
63
|
} : apiWorkerFirst ? {
|
|
67
64
|
not_found_handling: "single-page-application",
|
|
68
|
-
run_worker_first: [
|
|
69
|
-
|
|
65
|
+
run_worker_first: [
|
|
66
|
+
"/api",
|
|
67
|
+
"/api/*",
|
|
68
|
+
...VOID_INTERNAL_WORKER_FIRST
|
|
69
|
+
]
|
|
70
|
+
} : {
|
|
71
|
+
not_found_handling: "single-page-application",
|
|
72
|
+
run_worker_first: [...VOID_INTERNAL_WORKER_FIRST]
|
|
73
|
+
},
|
|
70
74
|
apiWorkerFirst,
|
|
71
75
|
workerFirst,
|
|
72
76
|
workerSpaFallback: workerFirst && !inputs.isSsr && !inputs.hasPages
|
|
@@ -148,8 +152,8 @@ function resolveLiveBindingConfig(root, options) {
|
|
|
148
152
|
bindingName: generated.name,
|
|
149
153
|
className: generated.class_name
|
|
150
154
|
};
|
|
151
|
-
const usedBindings = new Set([...durableObjectBindings.map((binding) => binding.name), ...(options?.reservedBindings ?? []).filter((name) => typeof name === "string")]);
|
|
152
|
-
const usedClasses = new Set([...durableObjectBindings.map((binding) => binding.class_name), ...(options?.reservedClasses ?? []).filter((name) => typeof name === "string")]);
|
|
155
|
+
const usedBindings = /* @__PURE__ */ new Set([...durableObjectBindings.map((binding) => binding.name), ...(options?.reservedBindings ?? []).filter((name) => typeof name === "string")]);
|
|
156
|
+
const usedClasses = /* @__PURE__ */ new Set([...durableObjectBindings.map((binding) => binding.class_name), ...(options?.reservedClasses ?? []).filter((name) => typeof name === "string")]);
|
|
153
157
|
return {
|
|
154
158
|
bindingName: resolveGeneratedName(DEFAULT_LIVE_BINDING, usedBindings, "binding"),
|
|
155
159
|
className: resolveGeneratedName(DEFAULT_LIVE_CLASS, usedClasses, "class")
|
|
@@ -533,7 +537,7 @@ function resolveRemoteMode(configRemote) {
|
|
|
533
537
|
if (override === "0") return false;
|
|
534
538
|
return configRemote === true;
|
|
535
539
|
}
|
|
536
|
-
const INTERNAL_ENV_KEY_SET = new Set([
|
|
540
|
+
const INTERNAL_ENV_KEY_SET = /* @__PURE__ */ new Set([
|
|
537
541
|
"__VOID_TOKEN",
|
|
538
542
|
"__VOID_PROJECT_ID",
|
|
539
543
|
"__VOID_REMOTE",
|
|
@@ -676,7 +680,7 @@ function collectPrerenderWorkerModules(workerDir, workerMain) {
|
|
|
676
680
|
function buildPrerenderBindings(input) {
|
|
677
681
|
const { sanitized: wranglerVars, stripped: wranglerStripped } = stripInternalEnvKeys(input.wranglerVars);
|
|
678
682
|
const { sanitized: env, stripped: envStripped } = stripInternalEnvKeys(input.env);
|
|
679
|
-
const allStripped = [
|
|
683
|
+
const allStripped = [.../* @__PURE__ */ new Set([...wranglerStripped, ...envStripped])];
|
|
680
684
|
if (allStripped.length > 0) voidWarn(`Ignoring internal env keys in prerender inputs: ${allStripped.join(", ")}. These are reserved for Void runtime use.`);
|
|
681
685
|
const voidBindings = {};
|
|
682
686
|
if (input.voidToken && input.voidProjectId) {
|
|
@@ -727,7 +731,8 @@ async function createCloudflarePrerenderRunner(options) {
|
|
|
727
731
|
bindings
|
|
728
732
|
};
|
|
729
733
|
if (clientDir) mfOptions.serviceBindings = { [wranglerConfig.assets?.binding ?? "ASSETS"](request) {
|
|
730
|
-
const
|
|
734
|
+
const url = new URL(request.url);
|
|
735
|
+
const filePath = join(clientDir, url.pathname);
|
|
731
736
|
try {
|
|
732
737
|
const content = readFileSync(filePath);
|
|
733
738
|
return new Response(content);
|
|
@@ -1565,6 +1570,11 @@ const ASSET_MIME_TYPES = {
|
|
|
1565
1570
|
svg: "image/svg+xml; charset=utf-8",
|
|
1566
1571
|
txt: "text/plain; charset=utf-8",
|
|
1567
1572
|
csv: "text/csv; charset=utf-8",
|
|
1573
|
+
md: "text/markdown; charset=utf-8",
|
|
1574
|
+
markdown: "text/markdown; charset=utf-8",
|
|
1575
|
+
yaml: "text/yaml; charset=utf-8",
|
|
1576
|
+
yml: "text/yaml; charset=utf-8",
|
|
1577
|
+
toml: "application/toml",
|
|
1568
1578
|
png: "image/png",
|
|
1569
1579
|
jpg: "image/jpeg",
|
|
1570
1580
|
jpeg: "image/jpeg",
|
|
@@ -1594,7 +1604,8 @@ const ASSET_MIME_TYPES = {
|
|
|
1594
1604
|
* `application/octet-stream` for unknown extensions.
|
|
1595
1605
|
*/
|
|
1596
1606
|
function getAssetContentType(path) {
|
|
1597
|
-
|
|
1607
|
+
const ext = path.split(".").pop()?.toLowerCase() ?? "";
|
|
1608
|
+
return ASSET_MIME_TYPES[ext] ?? "application/octet-stream";
|
|
1598
1609
|
}
|
|
1599
1610
|
/**
|
|
1600
1611
|
* Compute MD5 of raw content as a 32-char lowercase hex string.
|
|
@@ -2020,8 +2031,8 @@ async function generateWrapper(workerDir, workerMain, root, features) {
|
|
|
2020
2031
|
let migrations;
|
|
2021
2032
|
let migrationPlanBundle;
|
|
2022
2033
|
if (features.hasMigrations) {
|
|
2023
|
-
const { collectMigrations } = await import("./
|
|
2024
|
-
const { buildMigrationPlanBundle } = await import("./
|
|
2034
|
+
const { collectMigrations } = await import("./validate-DT7nFMlf.mjs").then((n) => n.l);
|
|
2035
|
+
const { buildMigrationPlanBundle } = await import("./validate-DT7nFMlf.mjs").then((n) => n.s);
|
|
2025
2036
|
const migrationsDir = readProjectPaths(root).migrationsDir;
|
|
2026
2037
|
migrations = collectMigrations(migrationsDir);
|
|
2027
2038
|
migrationPlanBundle = features.migrationDialect === "sqlite" ? buildMigrationPlanBundle(migrations) : void 0;
|
|
@@ -2099,7 +2110,7 @@ function patchPgWorkerBundle(outDir) {
|
|
|
2099
2110
|
const path = join(outDir, file);
|
|
2100
2111
|
let code = readFileSync(path, "utf-8");
|
|
2101
2112
|
if (!code.includes("__require(\"pgpass\")") && !code.includes("createRequire(import.meta.url)")) continue;
|
|
2102
|
-
code = code.replaceAll("__require(\"pgpass\")", "__voidPgpassNoop").replace("import { createRequire } from \"node:module\";", "").replace("var __require = /* @__PURE__ */ createRequire(import.meta.url);", pgWorkerRequireShim());
|
|
2113
|
+
code = code.replaceAll("__require(\"pgpass\")", "__voidPgpassNoop").replace("import { createRequire } from \"node:module\";", "").replace("var __require = /* @__PURE__ */ createRequire(import.meta.url);", pgWorkerRequireShim()).replace("var __require = /* #__PURE__ */ (() => createRequire(import.meta.url))();", pgWorkerRequireShim());
|
|
2103
2114
|
code = `const __voidPgpassNoop = Object.assign(function pgpass(_connectionInfo, callback) { callback(undefined); }, { warnTo() {} });\n` + code;
|
|
2104
2115
|
writeFileSync(path, code);
|
|
2105
2116
|
}
|
|
@@ -2341,6 +2352,7 @@ var deploy_exports = /* @__PURE__ */ __exportAll({
|
|
|
2341
2352
|
ensurePreviouslyDeployedLiveBindingConfig: () => ensurePreviouslyDeployedLiveBindingConfig,
|
|
2342
2353
|
generateDeployWrapperIfNeeded: () => generateDeployWrapperIfNeeded,
|
|
2343
2354
|
hasDeploySchemaDrift: () => hasDeploySchemaDrift,
|
|
2355
|
+
loadDeployEnv: () => loadDeployEnv,
|
|
2344
2356
|
promptDeployProjectConfig: () => promptDeployProjectConfig,
|
|
2345
2357
|
resolveDeployLiveBindingConfig: () => resolveDeployLiveBindingConfig,
|
|
2346
2358
|
resolveDeployWorkerMain: () => resolveDeployWorkerMain,
|
|
@@ -2449,7 +2461,7 @@ function assertWorkerMainUploaded(workerFiles, workerMain) {
|
|
|
2449
2461
|
*/
|
|
2450
2462
|
async function runDeploy(root, options) {
|
|
2451
2463
|
console.log();
|
|
2452
|
-
|
|
2464
|
+
intro(cliTitle("deploy"));
|
|
2453
2465
|
const cliLog = openDeployLog({ mirrorToStderr: options?.debug === true || process.env.VOID_DEPLOY_DEBUG === "1" });
|
|
2454
2466
|
cliLog.info("deploy_start", {
|
|
2455
2467
|
cwd: root,
|
|
@@ -2513,7 +2525,7 @@ async function runDeployInner(root, options, cliLog) {
|
|
|
2513
2525
|
}
|
|
2514
2526
|
token ??= getToken(root);
|
|
2515
2527
|
if (!token) {
|
|
2516
|
-
|
|
2528
|
+
log.error("No auth token found. Run `void auth login` first.");
|
|
2517
2529
|
process.exit(1);
|
|
2518
2530
|
}
|
|
2519
2531
|
const client = new PlatformClient(token, {
|
|
@@ -2526,16 +2538,16 @@ async function runDeployInner(root, options, cliLog) {
|
|
|
2526
2538
|
config = resolveProjectBySlug(await client.listProjects(), requestedProjectSlug);
|
|
2527
2539
|
if (!config) if (!process.stdin.isTTY) config = await createProjectFromSlug(root, client, requestedProjectSlug, cliLog);
|
|
2528
2540
|
else {
|
|
2529
|
-
const shouldCreate = await
|
|
2530
|
-
if (
|
|
2531
|
-
|
|
2541
|
+
const shouldCreate = await confirm({ message: `Project "${requestedProjectSlug}" does not exist. Create it?` });
|
|
2542
|
+
if (isCancel(shouldCreate) || !shouldCreate) {
|
|
2543
|
+
log.info("Deploy cancelled.");
|
|
2532
2544
|
process.exit(0);
|
|
2533
2545
|
}
|
|
2534
2546
|
config = await createProjectFromSlug(root, client, requestedProjectSlug, cliLog);
|
|
2535
2547
|
}
|
|
2536
2548
|
} else config = readProjectConfig(root);
|
|
2537
2549
|
if (!config && !process.stdin.isTTY) {
|
|
2538
|
-
|
|
2550
|
+
log.error("No project specified. Set `VOID_PROJECT`, pass `--project <slug>`, or commit `.void/project.json`.");
|
|
2539
2551
|
process.exit(1);
|
|
2540
2552
|
}
|
|
2541
2553
|
if (!config) config = await promptDeployProjectConfig(root, client, cliLog);
|
|
@@ -2563,7 +2575,7 @@ async function runDeployInner(root, options, cliLog) {
|
|
|
2563
2575
|
const fwPreset = FRAMEWORK_PRESETS[detected.name];
|
|
2564
2576
|
if (detected.class === "b" || detected.class === "c") {
|
|
2565
2577
|
if (!fwPreset) {
|
|
2566
|
-
|
|
2578
|
+
log.error(`No deploy preset found for framework "${detected.name}".`);
|
|
2567
2579
|
process.exit(1);
|
|
2568
2580
|
}
|
|
2569
2581
|
await runFrameworkDeploy(root, config, client, detected, fwPreset, voidConfig, options?.skipBuild, gitMetadata, cliLog);
|
|
@@ -2584,9 +2596,9 @@ async function runDeployInner(root, options, cliLog) {
|
|
|
2584
2596
|
if (isExpiredTokenError(error)) {
|
|
2585
2597
|
if (getTokenSource() === "ci") throw new Error("`VOID_TOKEN` is invalid or expired. Generate a new token and try again.");
|
|
2586
2598
|
if (!process.stdin.isTTY || reauthenticated) throw new Error("Auth token expired. Run `void auth login` and try again.");
|
|
2587
|
-
|
|
2599
|
+
log.warn("Auth token expired. Re-authenticating...");
|
|
2588
2600
|
await promptForLoginToken(root);
|
|
2589
|
-
|
|
2601
|
+
log.success("Re-authenticated. Retrying deploy...");
|
|
2590
2602
|
reauthenticated = true;
|
|
2591
2603
|
continue;
|
|
2592
2604
|
}
|
|
@@ -2606,7 +2618,7 @@ async function promptDeployProjectConfig(root, client, cliLog) {
|
|
|
2606
2618
|
slug: result.project.slug
|
|
2607
2619
|
};
|
|
2608
2620
|
writeProjectConfig(root, config);
|
|
2609
|
-
|
|
2621
|
+
log.step(`Linked to ${import_picocolors.default.blue(config.slug)}`);
|
|
2610
2622
|
cliLog?.info("project_linked", {
|
|
2611
2623
|
projectId: config.projectId,
|
|
2612
2624
|
slug: config.slug
|
|
@@ -2677,7 +2689,7 @@ function applyDeployEvent(event, s) {
|
|
|
2677
2689
|
s.message(`Configuring queue consumers: ${event.queues.join(", ")}`);
|
|
2678
2690
|
return { kind: "continue" };
|
|
2679
2691
|
case "queue_consumer_conflict":
|
|
2680
|
-
|
|
2692
|
+
log.warn(`Queue consumer conflict on "${event.queue}": owned by "${event.ownerScript}". Messages for this queue will not be delivered to this deployment until the owning script is removed.`);
|
|
2681
2693
|
return { kind: "continue" };
|
|
2682
2694
|
case "prerender":
|
|
2683
2695
|
s.message(`Prerendering ${event.pages} pages...`);
|
|
@@ -2711,8 +2723,8 @@ async function streamDeployEvents(projectId, events, s, cliLog) {
|
|
|
2711
2723
|
const onSigint = () => {
|
|
2712
2724
|
interrupted = true;
|
|
2713
2725
|
s.stop("Deploy interrupted");
|
|
2714
|
-
if (deploymentId)
|
|
2715
|
-
else
|
|
2726
|
+
if (deploymentId) log.info(`Deployment: ${deploymentId}`);
|
|
2727
|
+
else log.info("Deployment id was not received before the interrupt.");
|
|
2716
2728
|
cliLog?.warn("stream_interrupted", { deploymentId });
|
|
2717
2729
|
cliLog?.close().catch(() => {});
|
|
2718
2730
|
process.exit(130);
|
|
@@ -2861,13 +2873,13 @@ function formatKnownAssetSummary(result, skipped) {
|
|
|
2861
2873
|
}
|
|
2862
2874
|
async function runStaticDeploy(root, config, client, preset, skipBuild, gitMetadata, hashedAssetsPrefix, headerRules, redirectRules, fallbackRules, routing, cliLog) {
|
|
2863
2875
|
const typeLabel = preset.appType === "spa" ? "Static SPA" : "Static Site";
|
|
2864
|
-
|
|
2876
|
+
log.info(`${typeLabel} deploy`);
|
|
2865
2877
|
cliLog?.info("deploy_mode", {
|
|
2866
2878
|
mode: "static",
|
|
2867
2879
|
appType: preset.appType
|
|
2868
2880
|
});
|
|
2869
2881
|
if (preset.buildCommand && !skipBuild) {
|
|
2870
|
-
|
|
2882
|
+
log.step("Building...");
|
|
2871
2883
|
cliLog?.info("build_start", { command: preset.buildCommand });
|
|
2872
2884
|
const buildStartedAt = Date.now();
|
|
2873
2885
|
execSync(preset.buildCommand, {
|
|
@@ -2878,7 +2890,7 @@ async function runStaticDeploy(root, config, client, preset, skipBuild, gitMetad
|
|
|
2878
2890
|
cliLog?.info("build_end", { durationMs: Date.now() - buildStartedAt });
|
|
2879
2891
|
} else if (skipBuild) cliLog?.info("build_skipped", { reason: "skipBuild" });
|
|
2880
2892
|
if (!existsSync(preset.outputDir)) {
|
|
2881
|
-
|
|
2893
|
+
log.error(`deploy: Output directory '${preset.outputDir}' not found. Run the build first.`);
|
|
2882
2894
|
process.exit(1);
|
|
2883
2895
|
}
|
|
2884
2896
|
if (routing) {
|
|
@@ -2907,7 +2919,7 @@ async function runStaticDeploy(root, config, client, preset, skipBuild, gitMetad
|
|
|
2907
2919
|
needed: needed.length,
|
|
2908
2920
|
skipped
|
|
2909
2921
|
});
|
|
2910
|
-
if (skipped > 0)
|
|
2922
|
+
if (skipped > 0) log.info(`Skipping ${skipped} unchanged asset(s)`);
|
|
2911
2923
|
s.start("Packaging...");
|
|
2912
2924
|
cliLog?.info("package_start", { mode: "static" });
|
|
2913
2925
|
const packageStartedAt = Date.now();
|
|
@@ -2924,9 +2936,9 @@ async function runStaticDeploy(root, config, client, preset, skipBuild, gitMetad
|
|
|
2924
2936
|
durationMs: Date.now() - packageStartedAt
|
|
2925
2937
|
});
|
|
2926
2938
|
const result = await streamDirectR2Deploy(client, config.projectId, manifest, assetManifest, assetFiles, needed, gitMetadata, neededSet !== null, void 0, s, cliLog);
|
|
2927
|
-
|
|
2939
|
+
note([`${typeLabel} — ${formatKnownAssetSummary(result, skipped)}`].join("\n"), result.url);
|
|
2928
2940
|
warnUnpublishedRouting(result);
|
|
2929
|
-
|
|
2941
|
+
outro("Done!");
|
|
2930
2942
|
}
|
|
2931
2943
|
/**
|
|
2932
2944
|
* Surface a persistent warning when a deploy committed live but its routing
|
|
@@ -2937,7 +2949,7 @@ async function runStaticDeploy(root, config, client, preset, skipBuild, gitMetad
|
|
|
2937
2949
|
*/
|
|
2938
2950
|
function warnUnpublishedRouting(result) {
|
|
2939
2951
|
if (result.published !== false) return;
|
|
2940
|
-
|
|
2952
|
+
log.warn("Routing was not published for this deploy. The project may be unreachable (first deploy) or still serving the previous deploy. Re-run `void deploy` to publish routing.");
|
|
2941
2953
|
}
|
|
2942
2954
|
/**
|
|
2943
2955
|
* Emit a single aggregated lint warning when a `_redirects` file contains
|
|
@@ -2948,13 +2960,13 @@ function warnUnpublishedRouting(result) {
|
|
|
2948
2960
|
*/
|
|
2949
2961
|
function warnRedundantForceOn3xx(count) {
|
|
2950
2962
|
if (count === 0) return;
|
|
2951
|
-
|
|
2963
|
+
log.warn(`Found ${count} redundant "!" on 3xx entries in _redirects (these always force by nature; safe to remove).`);
|
|
2952
2964
|
}
|
|
2953
2965
|
/**
|
|
2954
2966
|
* Class B/C framework deploy: build with framework CLI, package with preset output paths.
|
|
2955
2967
|
*/
|
|
2956
2968
|
async function runFrameworkDeploy(root, config, client, detected, fwPreset, voidConfig, skipBuild, gitMetadata, cliLog) {
|
|
2957
|
-
|
|
2969
|
+
log.info(`${detected.name} framework deploy`);
|
|
2958
2970
|
cliLog?.info("deploy_mode", {
|
|
2959
2971
|
mode: "framework",
|
|
2960
2972
|
framework: detected.name
|
|
@@ -2962,7 +2974,7 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
2962
2974
|
const dialect = getDatabaseDialect(voidConfig);
|
|
2963
2975
|
const buildCmd = voidConfig.inference?.build ?? formatProjectCommand(root, fwPreset.buildCommand);
|
|
2964
2976
|
if (!skipBuild) {
|
|
2965
|
-
|
|
2977
|
+
log.step(`Building (${buildCmd})...`);
|
|
2966
2978
|
cliLog?.info("build_start", { command: buildCmd });
|
|
2967
2979
|
const buildStartedAt = Date.now();
|
|
2968
2980
|
execSync(voidConfig.inference?.build ?? resolveProjectCommand(root, fwPreset.buildCommand), {
|
|
@@ -2985,7 +2997,7 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
2985
2997
|
lintDestinationSplats(redirectRules, "redirects/rewrites (pre-asset)");
|
|
2986
2998
|
lintDestinationSplats(fallbackRules, "fallbacks (post-asset)");
|
|
2987
2999
|
if (!existsSync(workerDir)) {
|
|
2988
|
-
|
|
3000
|
+
log.error(`deploy: Worker output '${fwPreset.workerDir}' not found. Run '${buildCmd}' first.`);
|
|
2989
3001
|
process.exit(1);
|
|
2990
3002
|
}
|
|
2991
3003
|
const inferenceOptions = voidConfig.inference?.bindings ? { bindings: voidConfig.inference.bindings } : void 0;
|
|
@@ -2996,11 +3008,11 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
2996
3008
|
paths
|
|
2997
3009
|
}, scanDirs);
|
|
2998
3010
|
if (bindings.needsAuth || findVoidAuthConfig(root, paths) !== null || voidConfig.auth !== void 0) {
|
|
2999
|
-
|
|
3011
|
+
log.error("deploy: Void-managed Better Auth is only supported in Void apps. Use Better Auth's official integration for this framework instead.");
|
|
3000
3012
|
process.exit(1);
|
|
3001
3013
|
}
|
|
3002
3014
|
if (bindings.needsLive) {
|
|
3003
|
-
|
|
3015
|
+
log.error("deploy: void/live is currently supported in Void apps only.");
|
|
3004
3016
|
process.exit(1);
|
|
3005
3017
|
}
|
|
3006
3018
|
const migrationsDir = paths.migrationsDir;
|
|
@@ -3010,14 +3022,14 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
3010
3022
|
try {
|
|
3011
3023
|
assertJournalCoherence(migrationsDir, rawMigrations);
|
|
3012
3024
|
} catch (err) {
|
|
3013
|
-
|
|
3025
|
+
log.error(getErrorMessage(err));
|
|
3014
3026
|
process.exit(1);
|
|
3015
3027
|
}
|
|
3016
3028
|
if (rawMigrations.length > 0) try {
|
|
3017
3029
|
validatedMigrations = validateMigrations(rawMigrations);
|
|
3018
|
-
|
|
3030
|
+
log.info(`Found ${validatedMigrations.length} migration(s)`);
|
|
3019
3031
|
} catch (err) {
|
|
3020
|
-
|
|
3032
|
+
log.error(getErrorMessage(err));
|
|
3021
3033
|
process.exit(1);
|
|
3022
3034
|
}
|
|
3023
3035
|
if (dialect === "postgresql" && (bindings.needsD1 || rawMigrations.length > 0)) {
|
|
@@ -3027,7 +3039,7 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
3027
3039
|
} catch {}
|
|
3028
3040
|
if (resources) {
|
|
3029
3041
|
if (!resources.some((resource) => resource.type === "hyperdrive")) {
|
|
3030
|
-
const { text: promptText, isCancel: isCancelPrompt } = await import("./
|
|
3042
|
+
const { text: promptText, isCancel: isCancelPrompt } = await import("./agents-Bmr5tFFb.mjs").then((n) => n.C);
|
|
3031
3043
|
const connectionString = await promptText({
|
|
3032
3044
|
message: "Your project uses PostgreSQL. Enter your connection string:",
|
|
3033
3045
|
placeholder: "postgresql://user:pass@host:5432/dbname",
|
|
@@ -3036,11 +3048,11 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
3036
3048
|
}
|
|
3037
3049
|
});
|
|
3038
3050
|
if (isCancelPrompt(connectionString)) {
|
|
3039
|
-
|
|
3051
|
+
log.info("Deploy cancelled.");
|
|
3040
3052
|
process.exit(0);
|
|
3041
3053
|
}
|
|
3042
3054
|
await client.provisionDatabase(config.projectId, connectionString);
|
|
3043
|
-
|
|
3055
|
+
log.success("Hyperdrive provisioned.");
|
|
3044
3056
|
}
|
|
3045
3057
|
}
|
|
3046
3058
|
}
|
|
@@ -3057,16 +3069,16 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
3057
3069
|
let actualWorkerDir = workerDir;
|
|
3058
3070
|
let actualWorkerMain = fwPreset.workerMain;
|
|
3059
3071
|
if (fwPreset.bundle) {
|
|
3060
|
-
|
|
3072
|
+
log.step("Bundling worker...");
|
|
3061
3073
|
const bundleResult = await bundleEntry(root, originalEntry);
|
|
3062
3074
|
actualWorkerDir = bundleResult.outputDir;
|
|
3063
3075
|
actualWorkerMain = bundleResult.entryFilename;
|
|
3064
|
-
|
|
3076
|
+
log.info("Worker bundled");
|
|
3065
3077
|
}
|
|
3066
3078
|
if (needsWrapper(wrapperFeatures)) {
|
|
3067
|
-
|
|
3079
|
+
log.step("Generating wrapper...");
|
|
3068
3080
|
await generateDeployWrapperIfNeeded(root, actualWorkerDir, actualWorkerMain, wrapperFeatures);
|
|
3069
|
-
|
|
3081
|
+
log.info("Wrapper generated");
|
|
3070
3082
|
}
|
|
3071
3083
|
const wranglerCompat = resolveDeployWranglerCompat(root, voidConfig, workerDir, { dialect });
|
|
3072
3084
|
const revalidate = voidConfig.routing?.revalidate;
|
|
@@ -3096,7 +3108,7 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
3096
3108
|
needed: needed.length,
|
|
3097
3109
|
skipped
|
|
3098
3110
|
});
|
|
3099
|
-
if (skipped > 0)
|
|
3111
|
+
if (skipped > 0) log.info(`Skipping ${skipped} unchanged asset(s)`);
|
|
3100
3112
|
s.start("Packaging...");
|
|
3101
3113
|
cliLog?.info("package_start", {
|
|
3102
3114
|
mode: "framework",
|
|
@@ -3143,10 +3155,10 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
|
|
|
3143
3155
|
if (revalidate) if (typeof revalidate === "number") summary.push(`ISR revalidate: ${revalidate}s`);
|
|
3144
3156
|
else summary.push(`ISR revalidate: ${Object.keys(revalidate).length} path rule(s)`);
|
|
3145
3157
|
summary.push(`Framework: ${detected.name}`);
|
|
3146
|
-
|
|
3158
|
+
note(summary.join("\n"), result.url);
|
|
3147
3159
|
cleanupWrapper(root);
|
|
3148
3160
|
warnUnpublishedRouting(result);
|
|
3149
|
-
|
|
3161
|
+
outro("Done!");
|
|
3150
3162
|
}
|
|
3151
3163
|
async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetadata, detected, cliLog) {
|
|
3152
3164
|
cliLog?.info("deploy_mode", {
|
|
@@ -3155,7 +3167,7 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3155
3167
|
});
|
|
3156
3168
|
if (!skipBuild) {
|
|
3157
3169
|
const buildCmd = formatProjectCommand(root, "vite build");
|
|
3158
|
-
|
|
3170
|
+
log.step(`Building (${buildCmd})...`);
|
|
3159
3171
|
cliLog?.info("build_start", { command: buildCmd });
|
|
3160
3172
|
const buildStartedAt = Date.now();
|
|
3161
3173
|
try {
|
|
@@ -3196,20 +3208,20 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3196
3208
|
needsD1: true
|
|
3197
3209
|
} : bindings;
|
|
3198
3210
|
if (isFrameworkMode && authEnabled) {
|
|
3199
|
-
|
|
3211
|
+
log.error("Void-managed Better Auth is only supported in Void apps. Use Better Auth's official integration for this framework instead.");
|
|
3200
3212
|
process.exit(1);
|
|
3201
3213
|
}
|
|
3202
3214
|
if (isFrameworkMode && bindings.needsSandbox) {
|
|
3203
|
-
|
|
3215
|
+
log.error("deploy: Cloudflare Sandboxes are currently supported in Void apps only.");
|
|
3204
3216
|
process.exit(1);
|
|
3205
3217
|
}
|
|
3206
3218
|
if (isFrameworkMode && bindings.needsLive) {
|
|
3207
|
-
|
|
3219
|
+
log.error("deploy: void/live is currently supported in Void apps only.");
|
|
3208
3220
|
process.exit(1);
|
|
3209
3221
|
}
|
|
3210
3222
|
const sandboxConfig = bindings.needsSandbox ? resolveSandboxConfig(deployConfig, root) : void 0;
|
|
3211
3223
|
if (bindings.needsSandbox && requiresSandboxPlatformImage(deployConfig)) {
|
|
3212
|
-
|
|
3224
|
+
log.error("deploy: `sandbox.image` points at a local Dockerfile. Add `sandbox.platformImage` with a pushed registry image for `void deploy`, or deploy this sandbox directly with Wrangler.");
|
|
3213
3225
|
process.exit(1);
|
|
3214
3226
|
}
|
|
3215
3227
|
const clientDir = join(distDir, "client");
|
|
@@ -3229,14 +3241,14 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3229
3241
|
try {
|
|
3230
3242
|
assertJournalCoherence(migrationsDir, rawMigrations);
|
|
3231
3243
|
} catch (err) {
|
|
3232
|
-
|
|
3244
|
+
log.error(getErrorMessage(err));
|
|
3233
3245
|
process.exit(1);
|
|
3234
3246
|
}
|
|
3235
3247
|
if (rawMigrations.length > 0) try {
|
|
3236
3248
|
validatedMigrations = validateMigrations(rawMigrations);
|
|
3237
|
-
|
|
3249
|
+
log.info(`Found ${validatedMigrations.length} migration(s)`);
|
|
3238
3250
|
} catch (err) {
|
|
3239
|
-
|
|
3251
|
+
log.error(getErrorMessage(err));
|
|
3240
3252
|
process.exit(1);
|
|
3241
3253
|
}
|
|
3242
3254
|
if (dialect === "postgresql" && (effectiveBindings.needsD1 || rawMigrations.length > 0)) {
|
|
@@ -3246,7 +3258,7 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3246
3258
|
} catch {}
|
|
3247
3259
|
if (resources) {
|
|
3248
3260
|
if (!resources.some((resource) => resource.type === "hyperdrive")) {
|
|
3249
|
-
const { text: promptText, isCancel: isCancelPrompt } = await import("./
|
|
3261
|
+
const { text: promptText, isCancel: isCancelPrompt } = await import("./agents-Bmr5tFFb.mjs").then((n) => n.C);
|
|
3250
3262
|
const connectionString = await promptText({
|
|
3251
3263
|
message: "Your project uses PostgreSQL. Enter your connection string:",
|
|
3252
3264
|
placeholder: "postgresql://user:pass@host:5432/dbname",
|
|
@@ -3255,11 +3267,11 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3255
3267
|
}
|
|
3256
3268
|
});
|
|
3257
3269
|
if (isCancelPrompt(connectionString)) {
|
|
3258
|
-
|
|
3270
|
+
log.info("Deploy cancelled.");
|
|
3259
3271
|
process.exit(0);
|
|
3260
3272
|
}
|
|
3261
3273
|
await client.provisionDatabase(config.projectId, connectionString);
|
|
3262
|
-
|
|
3274
|
+
log.success("Hyperdrive provisioned.");
|
|
3263
3275
|
}
|
|
3264
3276
|
}
|
|
3265
3277
|
}
|
|
@@ -3311,7 +3323,7 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3311
3323
|
}
|
|
3312
3324
|
if (deployConfig.output === "static" && pageScan && !isSsr) {
|
|
3313
3325
|
if (pageScan.pages.every((p) => p.shouldPrerender && (p.params.length === 0 && !p.catchAll || p.hasGetPrerenderPaths)) && !(hasRoutes || hasMiddleware || hasWebSockets || authEnabled || liveConfig !== void 0) && schedules.length === 0 && queues.length === 0) {
|
|
3314
|
-
|
|
3326
|
+
log.info("All pages prerendered — deploying as static site");
|
|
3315
3327
|
cliLog?.info("full_to_static_redirect", { reason: "all_pages_prerendered" });
|
|
3316
3328
|
return runStaticDeploy(root, config, client, {
|
|
3317
3329
|
buildCommand: null,
|
|
@@ -3363,7 +3375,7 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3363
3375
|
needed: needed.length,
|
|
3364
3376
|
skipped
|
|
3365
3377
|
});
|
|
3366
|
-
if (skipped > 0)
|
|
3378
|
+
if (skipped > 0) log.info(`Skipping ${skipped} unchanged asset(s)`);
|
|
3367
3379
|
s.start("Packaging...");
|
|
3368
3380
|
cliLog?.info("package_start", {
|
|
3369
3381
|
mode: "full",
|
|
@@ -3421,9 +3433,9 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3421
3433
|
migrationDialect: dialect
|
|
3422
3434
|
};
|
|
3423
3435
|
if (needsWrapper(wrapperFeatures)) {
|
|
3424
|
-
|
|
3436
|
+
log.step("Generating wrapper...");
|
|
3425
3437
|
await generateDeployWrapperIfNeeded(root, workerDir, fwPreset?.workerMain ?? "index.js", wrapperFeatures);
|
|
3426
|
-
|
|
3438
|
+
log.info("Wrapper generated");
|
|
3427
3439
|
}
|
|
3428
3440
|
}
|
|
3429
3441
|
const workerFiles = collectWorkerFiles(workerDir);
|
|
@@ -3442,12 +3454,12 @@ async function runFullDeploy(root, config, client, fwPreset, skipBuild, gitMetad
|
|
|
3442
3454
|
if (revalidate) if (typeof revalidate === "number") summary.push(`ISR revalidate: ${revalidate}s`);
|
|
3443
3455
|
else summary.push(`ISR revalidate: ${Object.keys(revalidate).length} path rule(s)`);
|
|
3444
3456
|
if (isFrameworkMode) summary.push("Framework mode");
|
|
3445
|
-
|
|
3457
|
+
note(summary.join("\n"), result.url);
|
|
3446
3458
|
warnUnpublishedRouting(result);
|
|
3447
|
-
|
|
3459
|
+
outro("Done!");
|
|
3448
3460
|
}
|
|
3449
3461
|
async function createProjectFromSlug(root, client, slug, cliLog) {
|
|
3450
|
-
|
|
3462
|
+
log.step(`Creating project ${import_picocolors.default.blue(slug)}...`);
|
|
3451
3463
|
cliLog?.info("project_create_start", { slug });
|
|
3452
3464
|
const project = await client.createProject(slug);
|
|
3453
3465
|
const config = {
|
|
@@ -3455,7 +3467,7 @@ async function createProjectFromSlug(root, client, slug, cliLog) {
|
|
|
3455
3467
|
slug: project.slug
|
|
3456
3468
|
};
|
|
3457
3469
|
writeProjectConfig(root, config);
|
|
3458
|
-
|
|
3470
|
+
log.success(`Project created: ${import_picocolors.default.blue(config.slug)}`);
|
|
3459
3471
|
cliLog?.info("project_create_success", {
|
|
3460
3472
|
projectId: config.projectId,
|
|
3461
3473
|
slug: config.slug
|
|
@@ -3490,10 +3502,10 @@ function assertDeploySchemaDriftFree(root, dialect) {
|
|
|
3490
3502
|
try {
|
|
3491
3503
|
if (!hasDeploySchemaDrift(root, dialect)) return;
|
|
3492
3504
|
} catch (error) {
|
|
3493
|
-
|
|
3505
|
+
log.error(getErrorMessage(error));
|
|
3494
3506
|
process.exit(1);
|
|
3495
3507
|
}
|
|
3496
|
-
|
|
3508
|
+
log.error(getDeploySchemaDriftMessage());
|
|
3497
3509
|
process.exit(1);
|
|
3498
3510
|
}
|
|
3499
3511
|
function hasDeploySchemaDrift(root, dialect) {
|
|
@@ -3637,8 +3649,8 @@ async function assertEnvSchemaValid(root, client, projectId) {
|
|
|
3637
3649
|
});
|
|
3638
3650
|
if (!hasSchema || report.valid) return;
|
|
3639
3651
|
const formatted = formatEnvReport(report);
|
|
3640
|
-
|
|
3641
|
-
if (report.missing.length > 0)
|
|
3652
|
+
log.error(`Env validation failed:\n${formatted}`);
|
|
3653
|
+
if (report.missing.length > 0) log.info(`Add the missing values to .env / .env.production, or upload them with \`void secret put <NAME>\`.`);
|
|
3642
3654
|
throw new DeployEventError("deploy: Aborting because env.ts schema is not satisfied.");
|
|
3643
3655
|
}
|
|
3644
3656
|
/**
|
|
@@ -3646,24 +3658,7 @@ async function assertEnvSchemaValid(root, client, projectId) {
|
|
|
3646
3658
|
* Later files win on conflict.
|
|
3647
3659
|
*/
|
|
3648
3660
|
function loadDeployEnv(root) {
|
|
3649
|
-
const
|
|
3650
|
-
const env = {};
|
|
3651
|
-
for (const file of files) {
|
|
3652
|
-
const filePath = join(root, file);
|
|
3653
|
-
if (!existsSync(filePath)) continue;
|
|
3654
|
-
const content = readFileSync(filePath, "utf-8");
|
|
3655
|
-
for (const line of content.split("\n")) {
|
|
3656
|
-
const trimmed = line.trim();
|
|
3657
|
-
if (!trimmed || trimmed.startsWith("#")) continue;
|
|
3658
|
-
const eqIndex = trimmed.indexOf("=");
|
|
3659
|
-
if (eqIndex === -1) continue;
|
|
3660
|
-
const key = trimmed.slice(0, eqIndex).trim();
|
|
3661
|
-
let value = trimmed.slice(eqIndex + 1).trim();
|
|
3662
|
-
if (value.startsWith("\"") && value.endsWith("\"") || value.startsWith("'") && value.endsWith("'")) value = value.slice(1, -1);
|
|
3663
|
-
env[key] = value;
|
|
3664
|
-
}
|
|
3665
|
-
}
|
|
3666
|
-
const { sanitized, stripped } = stripInternalEnvKeys(env);
|
|
3661
|
+
const { sanitized, stripped } = stripInternalEnvKeys(mergeAndExpand([".env", ".env.production"].map((file) => parseDotenvFile(join(root, file), { expand: false })), { onWarn: (msg) => voidWarn(msg) }));
|
|
3667
3662
|
if (stripped.length > 0) voidWarn(`Ignoring internal env keys from .env files: ${stripped.join(", ")}. These are reserved for Void runtime use and will not be shipped in the deploy manifest.`);
|
|
3668
3663
|
return sanitized;
|
|
3669
3664
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as __exportAll } from "./
|
|
2
|
-
import { s as relative } from "./pathe.M-eThtNZ-
|
|
3
|
-
import { n as readProjectPaths } from "./project-paths-
|
|
1
|
+
import { n as __exportAll } from "./rolldown-runtime-DJK8HYOj.mjs";
|
|
2
|
+
import { s as relative } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
|
|
3
|
+
import { n as readProjectPaths } from "./project-paths-tpdR1mJR.mjs";
|
|
4
4
|
import { existsSync, statSync } from "node:fs";
|
|
5
5
|
//#region src/drizzle/discover.ts
|
|
6
6
|
var discover_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -36,7 +36,7 @@ function discoverSchema(root, paths = readProjectPaths(root)) {
|
|
|
36
36
|
*/
|
|
37
37
|
function schemaSpecifier(location, root) {
|
|
38
38
|
if (!root) return location.type === "file" ? "./db/schema.ts" : "./db/schema/*.ts";
|
|
39
|
-
const rel = relative(root, location.path)
|
|
39
|
+
const rel = relative(root, location.path);
|
|
40
40
|
return location.type === "file" ? `./${rel}` : `./${rel}/*.ts`;
|
|
41
41
|
}
|
|
42
42
|
//#endregion
|