void 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/{auth-cmd-BSdoU6dB.mjs → auth-cmd-CPkWrQR9.mjs} +2 -2
  2. package/dist/{better-auth-shared-BxcgLiHN.d.mts → better-auth-shared-CmEQZs1T.d.mts} +2 -2
  3. package/dist/{cache-Cb4Vs95q.mjs → cache-1SVxZ7BK.mjs} +2 -2
  4. package/dist/{cancel-deploy-CLVkqGJB.mjs → cancel-deploy-JaFClLr7.mjs} +1 -1
  5. package/dist/cli/cli.mjs +77 -40
  6. package/dist/{client-CCOKwNUz.mjs → client-DIfOFf1W.mjs} +6 -1
  7. package/dist/{create-project-Dg5hiuDE.mjs → create-project-DCUrFJxa.mjs} +3 -3
  8. package/dist/{db-D7l4OGV1.mjs → db-DiddQC2v.mjs} +191 -19
  9. package/dist/{delete-Bi-gbEHT.mjs → delete-CYknzwXU.mjs} +2 -2
  10. package/dist/{deploy-iR7ug73w.mjs → deploy-CRU9fGjE.mjs} +8 -11
  11. package/dist/{domain-C_atK_X9.mjs → domain-B7RntQ1r.mjs} +13 -28
  12. package/dist/{env-Dc073Aip.mjs → env-Bvw0wMTI.mjs} +1 -1
  13. package/dist/{env-helpers-bupZjGHq.d.mts → env-helpers-Bd2wVdxz.d.mts} +1 -1
  14. package/dist/{gen-CsawhQZz.mjs → gen-CZdNWIaA.mjs} +1 -1
  15. package/dist/{handler-DMSGX5S6.d.mts → handler-xflsMwWM.d.mts} +3 -3
  16. package/dist/index.d.mts +3 -3
  17. package/dist/index.mjs +71 -52
  18. package/dist/{init-CD9yg4Xt.mjs → init-BHupO7Fm.mjs} +7 -7
  19. package/dist/{link-27a64clx.mjs → link-7MoXUMaI.mjs} +3 -3
  20. package/dist/{list-C3Xt_i8a.mjs → list-N2mCHv8q.mjs} +2 -2
  21. package/dist/{login-BZ1Yk9Xw.mjs → login-tt1OmNVg.mjs} +1 -1
  22. package/dist/{logs-CktUaLEr.mjs → logs-Cl7q2CjZ.mjs} +1 -1
  23. package/dist/{mcp-BU7CP6gX.mjs → mcp-BXD35N2J.mjs} +1 -1
  24. package/dist/{node-C2HhnBO_.mjs → node-CHWVVjO6.mjs} +3 -3
  25. package/dist/pages/client.d.mts +1 -1
  26. package/dist/pages/head-client.d.mts +1 -1
  27. package/dist/pages/head.d.mts +1 -1
  28. package/dist/pages/index.d.mts +2 -2
  29. package/dist/pages/index.mjs +1 -1
  30. package/dist/pages/islands-plugin.d.mts +1 -1
  31. package/dist/pages/protocol.d.mts +2 -2
  32. package/dist/pages/protocol.mjs +1 -1
  33. package/dist/{prepare-BNuC8Ds9.mjs → prepare-CrlAVbWS.mjs} +1 -1
  34. package/dist/{preset-Lvi0ORmO.mjs → preset-CIJG2O7a.mjs} +1 -1
  35. package/dist/{project-cmd-DUkWHooP.mjs → project-cmd-CLrqSbqj.mjs} +8 -8
  36. package/dist/{protocol-hjl3Nx5x.d.mts → protocol-DYca39yJ.d.mts} +3 -3
  37. package/dist/proxy-M3pxItg2.mjs +5 -0
  38. package/dist/{rollback-CEjAG9uQ.mjs → rollback-CEbAwbHK.mjs} +1 -1
  39. package/dist/{runner-Cioqe5b2.mjs → runner-DLZ9E_cX.mjs} +1 -1
  40. package/dist/runtime/ai.d.mts +20 -100
  41. package/dist/runtime/ai.mjs +102 -55
  42. package/dist/runtime/auth.d.mts +1 -1
  43. package/dist/runtime/better-auth-pg.d.mts +1 -1
  44. package/dist/runtime/better-auth-pg.mjs +3 -3
  45. package/dist/runtime/better-auth.d.mts +1 -1
  46. package/dist/runtime/better-auth.mjs +2 -2
  47. package/dist/runtime/client-react.d.mts +2 -2
  48. package/dist/runtime/client-react.mjs +1 -1
  49. package/dist/runtime/client-solid.d.mts +2 -2
  50. package/dist/runtime/client-solid.mjs +1 -1
  51. package/dist/runtime/client-svelte.d.mts +2 -2
  52. package/dist/runtime/client-svelte.mjs +1 -1
  53. package/dist/runtime/client-vue.d.mts +2 -2
  54. package/dist/runtime/client-vue.mjs +1 -1
  55. package/dist/runtime/client.d.mts +2 -2
  56. package/dist/runtime/client.mjs +1 -1
  57. package/dist/runtime/env-helpers.d.mts +1 -1
  58. package/dist/runtime/env-public-client.d.mts +1 -1
  59. package/dist/runtime/env-public.d.mts +2 -2
  60. package/dist/runtime/env-public.mjs +1 -1
  61. package/dist/runtime/env.mjs +1 -1
  62. package/dist/runtime/fetch-stream.d.mts +1 -1
  63. package/dist/runtime/fetch-stream.mjs +1 -1
  64. package/dist/runtime/fetch.d.mts +1 -1
  65. package/dist/runtime/fetch.mjs +1 -1
  66. package/dist/runtime/handler.d.mts +1 -1
  67. package/dist/runtime/handler.mjs +1 -1
  68. package/dist/runtime/isr.mjs +1 -1
  69. package/dist/runtime/live.d.mts +2 -2
  70. package/dist/runtime/live.mjs +1 -1
  71. package/dist/runtime/migration-handler-pg.mjs +1 -1
  72. package/dist/runtime/sandbox.mjs +1 -1
  73. package/dist/runtime/validator.d.mts +1 -1
  74. package/dist/runtime/ws-server.d.mts +2 -2
  75. package/dist/runtime/ws.d.mts +3 -3
  76. package/dist/{secret-Dab6XQdb.mjs → secret-C_uTY7xx.mjs} +2 -2
  77. package/dist/{skills-GPm5Kjev.mjs → skills-BRKc--As.mjs} +1 -1
  78. package/package.json +2 -2
  79. package/skills/void/docs/guide/ai.md +109 -51
  80. package/skills/void/docs/guide/auth.md +3 -3
  81. package/skills/void/docs/node_modules/void/AGENTS.md +1 -1
  82. package/skills/void/docs/reference/api.md +9 -2
  83. package/skills/void/docs/reference/cli.md +50 -30
  84. /package/dist/{agents-Dkgafwfr.mjs → agents-MhSzNMiC.mjs} +0 -0
  85. /package/dist/{auth-BL0cU_Sy.d.mts → auth-CDeb2XAl.d.mts} +0 -0
  86. /package/dist/{auth-migrations-DBoTUBvq.mjs → auth-migrations-CuQkjjWE.mjs} +0 -0
  87. /package/dist/{better-auth-shared-pR54mTD2.mjs → better-auth-shared-ChVbrq52.mjs} +0 -0
  88. /package/dist/{defer-BosTTQTi.mjs → defer-CouVukrf.mjs} +0 -0
  89. /package/dist/{drizzle-Bvhm-Uug.mjs → drizzle-2fs1qTgy.mjs} +0 -0
  90. /package/dist/{env-raw-DhK_myJu.mjs → env-raw-RDkMnSTC.mjs} +0 -0
  91. /package/dist/{fetch-error-B8GTcrQw.mjs → fetch-error-BFIoojjf.mjs} +0 -0
  92. /package/dist/{fetch-error-Dn-En6Wg.d.mts → fetch-error-CimrygMq.d.mts} +0 -0
  93. /package/dist/{head-BW_f2L_4.d.mts → head-BsSTGnIe.d.mts} +0 -0
  94. /package/dist/{headers-wAPJigtE.mjs → headers-Y0jshugF.mjs} +0 -0
  95. /package/dist/{package-json-BMdypFnO.mjs → package-json-B2TD0JLu.mjs} +0 -0
  96. /package/dist/{pg-C-ybKyFU.mjs → pg-CMZ_5wsC.mjs} +0 -0
  97. /package/dist/{project-slug-De4UjtD9.mjs → project-slug-rX3kTOfY.mjs} +0 -0
  98. /package/dist/{providers-BVUcW4Jo.d.mts → providers-3Kkv63Ha.d.mts} +0 -0
  99. /package/dist/{resolve-project-CNpUbUHd.mjs → resolve-project-D4O1_fZz.mjs} +0 -0
  100. /package/dist/{runner-pg-D8ciL41o.mjs → runner-pg-Cv9V7ydr.mjs} +0 -0
  101. /package/dist/{standard-schema-DCIm8cwQ.d.mts → standard-schema-Dnsh2vnl.d.mts} +0 -0
  102. /package/dist/{subcommand-prompt-DUaWltdH.mjs → subcommand-prompt-OD-x_Tsm.mjs} +0 -0
  103. /package/dist/{types-s2mK7ar_.d.mts → types-Dm9kep2X.d.mts} +0 -0
  104. /package/dist/{yarn-pnp-BdM0hoCa.mjs → yarn-pnp-0SwYgQxx.mjs} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { n as cliTitle, r as createSpinner } from "./output-DeiS4oEX.mjs";
2
- import { c as getToken, n as PlatformClient } from "./client-CCOKwNUz.mjs";
2
+ import { c as getToken, n as PlatformClient } from "./client-DIfOFf1W.mjs";
3
3
  import { _ as me, c as R, g as ge, l as Re, u as Se, x as q, y as ye } from "./dist-abzUneor.mjs";
4
4
  import { i as removeProjectConfig, r as readProjectConfig } from "./project-CH9pdo16.mjs";
5
- import { r as resolveProjectBySlug } from "./resolve-project-CNpUbUHd.mjs";
5
+ import { r as resolveProjectBySlug } from "./resolve-project-D4O1_fZz.mjs";
6
6
  //#region src/cli/delete.ts
7
7
  async function runDeleteCommand(root, slug, options) {
8
8
  console.log();
@@ -3,7 +3,7 @@ import { a as join, c as resolve, i as isAbsolute, n as dirname, r as extname, s
3
3
  import { n as cliTitle, r as createSpinner, s as import_picocolors } from "./output-DeiS4oEX.mjs";
4
4
  import { i as resolveProjectPaths, n as readProjectPaths } from "./project-paths-CCMrHYQm.mjs";
5
5
  import { t as findVoidAuthConfig } from "./config-hhMYPVRT.mjs";
6
- import { a as isExpiredTokenError, c as getToken, i as isCliOutdatedError, l as getTokenSource, n as PlatformClient, o as parsePlatformErrorBody, t as PlatformApiError, u as isStagingMode } from "./client-CCOKwNUz.mjs";
6
+ import { a as isExpiredTokenError, c as getToken, i as isCliOutdatedError, l as getTokenSource, n as PlatformClient, o as parsePlatformErrorBody, t as PlatformApiError, u as isStagingMode } from "./client-DIfOFf1W.mjs";
7
7
  import { c as R, g as ge, u as Se, v as ue, x as q, y as ye } from "./dist-abzUneor.mjs";
8
8
  import { a as writeProjectConfig, r as readProjectConfig } from "./project-CH9pdo16.mjs";
9
9
  import { c as getDatabaseDialect, f as readConfig, l as isNodeTarget, p as resolveBindingNames } from "./config-BVEC0lti.mjs";
@@ -18,11 +18,12 @@ import { t as collectMigrations } from "./collect-9rO3JFNM.mjs";
18
18
  import { n as buildMigrationPlanBundle } from "./plan-aD3wRDqF.mjs";
19
19
  import { r as validateMigrations, t as assertJournalCoherence } from "./validate-CNWm-PsL.mjs";
20
20
  import { t as scanPages } from "./scan-2YmJkYAf.mjs";
21
- import { i as promptProjectSetupAction, n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-Dg5hiuDE.mjs";
22
- import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-CNpUbUHd.mjs";
23
- import { n as lintDuplicateSources, r as mergeRoutingRules, t as lintDestinationSplats } from "./headers-wAPJigtE.mjs";
24
- import { t as promptForLoginToken } from "./login-BZ1Yk9Xw.mjs";
25
- import { i as resolveProjectCommand, n as detectPreset, r as formatProjectCommand, t as FRAMEWORK_PRESETS } from "./preset-Lvi0ORmO.mjs";
21
+ import { n as STAGING_PROXY_URL, t as DEFAULT_PROXY_URL } from "./proxy-M3pxItg2.mjs";
22
+ import { i as promptProjectSetupAction, n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-DCUrFJxa.mjs";
23
+ import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D4O1_fZz.mjs";
24
+ import { n as lintDuplicateSources, r as mergeRoutingRules, t as lintDestinationSplats } from "./headers-Y0jshugF.mjs";
25
+ import { t as promptForLoginToken } from "./login-tt1OmNVg.mjs";
26
+ import { i as resolveProjectCommand, n as detectPreset, r as formatProjectCommand, t as FRAMEWORK_PRESETS } from "./preset-CIJG2O7a.mjs";
26
27
  import { createRequire } from "node:module";
27
28
  import { copyFileSync, cpSync, createWriteStream, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
28
29
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -568,10 +569,6 @@ function stripInternalEnvKeys(input) {
568
569
  };
569
570
  }
570
571
  //#endregion
571
- //#region src/shared/proxy.ts
572
- const DEFAULT_PROXY_URL = "https://proxy.void.cloud";
573
- const STAGING_PROXY_URL = "https://proxy.staging.void.cloud";
574
- //#endregion
575
572
  //#region src/prerender.ts
576
573
  const PRERENDER_PATHS_ENDPOINT = "/__void/prerender-paths";
577
574
  const STATIC_PAGE_DATA_DIR = "_void/pages";
@@ -3587,4 +3584,4 @@ function resolveWorkerDirName(distDir, fwPreset, buildCommand) {
3587
3584
  throw new Error("deploy: Worker output not found. Expected dist/ssr/ or dist/rsc/.");
3588
3585
  }
3589
3586
  //#endregion
3590
- export { isSandboxEnabled as C, resolveAssetRoutingPolicy as D, hasDocumentRoutes as E, SANDBOX_MIGRATION_TAG as S, hasApiRoutes as T, normalizeWranglerCompatibilityFlags as _, prerenderPagesNode as a, resolveLiveBindingConfig as b, filterLoadedEnv as c, LIVE_MIGRATION_TAG as d, ensureWranglerCompat as f, nextDurableObjectMigrationTag as g, hasDurableObjectSqliteMigration as h, prerenderPages as i, resolveRemoteMode as l, ensureWranglerNodejsAlsFlag as m, resolveDistDir as n, DEFAULT_PROXY_URL as o, ensureWranglerCompatibilityDate as p, resolveWorkerDirName as r, STAGING_PROXY_URL as s, deploy_exports as t, stripInternalEnvKeys as u, readExistingLiveBindingConfig as v, resolveSandboxConfig as w, syncWranglerBindings as x, readWranglerCompat as y };
3587
+ export { hasApiRoutes as C, resolveSandboxConfig as S, resolveAssetRoutingPolicy as T, readWranglerCompat as _, prerenderPagesNode as a, SANDBOX_MIGRATION_TAG as b, stripInternalEnvKeys as c, ensureWranglerCompatibilityDate as d, ensureWranglerNodejsAlsFlag as f, readExistingLiveBindingConfig as g, normalizeWranglerCompatibilityFlags as h, prerenderPages as i, LIVE_MIGRATION_TAG as l, nextDurableObjectMigrationTag as m, resolveDistDir as n, filterLoadedEnv as o, hasDurableObjectSqliteMigration as p, resolveWorkerDirName as r, resolveRemoteMode as s, deploy_exports as t, ensureWranglerCompat as u, resolveLiveBindingConfig as v, hasDocumentRoutes as w, isSandboxEnabled as x, syncWranglerBindings as y };
@@ -1,5 +1,5 @@
1
1
  import { s as import_picocolors } from "./output-DeiS4oEX.mjs";
2
- import { c as getToken, n as PlatformClient } from "./client-CCOKwNUz.mjs";
2
+ import { c as getToken, n as PlatformClient } from "./client-DIfOFf1W.mjs";
3
3
  import { c as R, u as Se } from "./dist-abzUneor.mjs";
4
4
  import { r as readProjectConfig } from "./project-CH9pdo16.mjs";
5
5
  //#region src/cli/domain.ts
@@ -39,20 +39,13 @@ async function domainAdd(client, projectId, hostname) {
39
39
  R.success(`Domain ${hostname} added (status: ${domain.status})`);
40
40
  let cnameSection;
41
41
  let ownershipSection;
42
- let sslSection;
43
42
  if (domain.cname_target) cnameSection = `CNAME (traffic)\n ${hostname} → ${domain.cname_target}`;
44
43
  if (domain.ownership_verification) ownershipSection = `TXT (ownership verification)\n ${domain.ownership_verification.name} → ${domain.ownership_verification.value}`;
45
- const sslRecords = (domain.ssl_validation_records ?? []).filter((r) => Boolean(r.txt_name) && Boolean(r.txt_value));
46
- if (sslRecords.length > 0) sslSection = `TXT (SSL validation)\n${sslRecords.map((r) => ` ${r.txt_name} → ${r.txt_value}`).join("\n")}`;
47
- else sslSection = `SSL validation records will appear in \`void domain status\` shortly.`;
48
- const summary = `Add the records above to your DNS, then run \`void domain status ${hostname}\` to check progress.`;
49
- const sections = [
50
- cnameSection,
51
- ownershipSection,
52
- sslSection,
53
- summary
54
- ].filter((s) => s !== void 0);
55
- if (sections.length > 0) Se(sections.join("\n\n"), "DNS Setup");
44
+ const recordSections = [cnameSection, ownershipSection].filter((s) => s !== void 0);
45
+ if (recordSections.length > 0) {
46
+ const summary = `Add ${recordSections.length === 1 ? "the record above" : "the records above"} to your DNS, then run \`void domain status ${hostname}\` to check progress.`;
47
+ Se([...recordSections, summary].join("\n\n"), "DNS Setup");
48
+ }
56
49
  }
57
50
  async function domainRemove(client, projectId, hostname) {
58
51
  const domain = (await client.listDomains(projectId)).find((d) => d.hostname === hostname);
@@ -93,7 +86,7 @@ function computeRollup(status) {
93
86
  };
94
87
  if (status.cf_status === "pending_issuance" || status.cf_status === "active" && status.ssl_status !== "active") return {
95
88
  state: "issuing_cert",
96
- diagnostic: "Cloudflare is issuing the SSL certificate (typically <5 minutes)."
89
+ diagnostic: status.cname_target ? "Cloudflare is issuing the SSL certificate automatically (typically <5 minutes). If this persists, confirm the traffic CNAME below is published." : "Cloudflare is issuing the SSL certificate automatically (typically <5 minutes)."
97
90
  };
98
91
  if (status.cf_status === "pending_deployment") return {
99
92
  state: "deploying_cert",
@@ -125,20 +118,12 @@ async function domainStatus(client, projectId, hostname, verbose) {
125
118
  if (status.verification_errors && status.verification_errors.length > 0) rollupLines.push(` Errors: ${status.verification_errors.join(", ")}`);
126
119
  }
127
120
  Se(rollupLines.join("\n"), "Domain Status");
128
- const ownershipPending = Boolean(status.ownership_verification);
129
- const sslPending = status.ssl_status !== "active";
130
- if (ownershipPending || sslPending) {
131
- const pendingSections = [];
132
- if (ownershipPending && status.ownership_verification) pendingSections.push(`TXT (ownership verification)\n ${status.ownership_verification.name} → ${status.ownership_verification.value}`);
133
- if (sslPending) {
134
- const sslRecords = (status.ssl_validation_records ?? []).filter((r) => Boolean(r.txt_name) && Boolean(r.txt_value) && r.status !== "active");
135
- if (sslRecords.length > 0) {
136
- const lines = sslRecords.map((r) => ` ${r.txt_name} → ${r.txt_value}`).join("\n");
137
- pendingSections.push(`TXT (SSL validation)\n${lines}`);
138
- }
139
- }
140
- if (pendingSections.length > 0) Se(pendingSections.join("\n\n"), "Add these DNS records to your provider");
141
- }
121
+ let cnameSection;
122
+ let ownershipSection;
123
+ if (status.cname_target && status.ssl_status !== "active") cnameSection = `CNAME (traffic)\n ${status.hostname} → ${status.cname_target}`;
124
+ if (status.ownership_verification) ownershipSection = `TXT (ownership verification)\n ${status.ownership_verification.name} → ${status.ownership_verification.value}`;
125
+ const pendingRecords = [cnameSection, ownershipSection].filter((s) => s !== void 0);
126
+ if (pendingRecords.length > 0) Se(pendingRecords.join("\n\n"), pendingRecords.length === 1 ? "Add this DNS record to your provider" : "Add these DNS records to your provider");
142
127
  }
143
128
  //#endregion
144
129
  export { runDomainCommand };
@@ -1,6 +1,6 @@
1
1
  import { a as join } from "./pathe.M-eThtNZ-BrPhGF_K.mjs";
2
2
  import { n as cliTitle } from "./output-DeiS4oEX.mjs";
3
- import { c as getToken, n as PlatformClient } from "./client-CCOKwNUz.mjs";
3
+ import { c as getToken, n as PlatformClient } from "./client-DIfOFf1W.mjs";
4
4
  import { c as R, g as ge, u as Se, y as ye } from "./dist-abzUneor.mjs";
5
5
  import { r as readProjectConfig } from "./project-CH9pdo16.mjs";
6
6
  import { r as generateEnvTypes, t as findEnvFile } from "./env-types-D6qI1ThV.mjs";
@@ -1,4 +1,4 @@
1
- import { t as StandardSchemaV1 } from "./standard-schema-DCIm8cwQ.mjs";
1
+ import { t as StandardSchemaV1 } from "./standard-schema-Dnsh2vnl.mjs";
2
2
 
3
3
  //#region src/shared/env-mask.d.ts
4
4
  /** Per-key override set by `.secret()` / `.public()` on built-in helpers. */
@@ -7,7 +7,7 @@ import { n as ensureProjectTsconfig } from "./project-tsconfig-HAGjfY6w.mjs";
7
7
  import { n as writeDrizzleConfig } from "./config--wXmVOoe.mjs";
8
8
  import { r as readJournal, t as collectMigrations } from "./collect-9rO3JFNM.mjs";
9
9
  import { n as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-CNWm-PsL.mjs";
10
- import { t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-BdM0hoCa.mjs";
10
+ import { t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-0SwYgQxx.mjs";
11
11
  import { existsSync, mkdirSync, readFileSync, readdirSync, unlinkSync, writeFileSync } from "node:fs";
12
12
  import { fileURLToPath } from "node:url";
13
13
  import { spawnSync } from "node:child_process";
@@ -1,6 +1,6 @@
1
- import { n as HeadDescriptor } from "./head-BW_f2L_4.mjs";
2
- import { r as AuthUser, t as AuthSession } from "./auth-BL0cU_Sy.mjs";
3
- import { t as StandardSchemaV1 } from "./standard-schema-DCIm8cwQ.mjs";
1
+ import { n as HeadDescriptor } from "./head-BsSTGnIe.mjs";
2
+ import { r as AuthUser, t as AuthSession } from "./auth-CDeb2XAl.mjs";
3
+ import { t as StandardSchemaV1 } from "./standard-schema-Dnsh2vnl.mjs";
4
4
  import * as _$_cloudflare_sandbox0 from "@cloudflare/sandbox";
5
5
  import { Context, Env, MiddlewareHandler } from "hono";
6
6
  import { RewriteDestination } from "void/routes";
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { n as HeadDescriptor } from "./head-BW_f2L_4.mjs";
2
- import { r as AuthUser } from "./auth-BL0cU_Sy.mjs";
3
- import { C as HandlerInput, _ as defineScheduled, a as QueueBatch, b as InferProps, c as RenderAssetTags, d as VoidAssetRewriteError, f as defineHandler, g as defineRender, h as defineQueue, i as CloudEnv, l as TypedHandler, m as defineMiddleware, n as CloudContext, o as QueueMessage, p as defineHead, r as CloudContextVariables, s as QueueRetryOptions, u as TypedQueueHandler, v as Deferred, w as ValidatorSlots, x as defer, y as DeferredState } from "./handler-DMSGX5S6.mjs";
1
+ import { n as HeadDescriptor } from "./head-BsSTGnIe.mjs";
2
+ import { r as AuthUser } from "./auth-CDeb2XAl.mjs";
3
+ import { C as HandlerInput, _ as defineScheduled, a as QueueBatch, b as InferProps, c as RenderAssetTags, d as VoidAssetRewriteError, f as defineHandler, g as defineRender, h as defineQueue, i as CloudEnv, l as TypedHandler, m as defineMiddleware, n as CloudContext, o as QueueMessage, p as defineHead, r as CloudContextVariables, s as QueueRetryOptions, u as TypedQueueHandler, v as Deferred, w as ValidatorSlots, x as defer, y as DeferredState } from "./handler-xflsMwWM.mjs";
4
4
  import { QueueMap } from "./runtime/queues.mjs";
5
5
  import { PluginConfig } from "@cloudflare/vite-plugin";
6
6
  import { Plugin } from "vite";
package/dist/index.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  import { r as __toESM } from "./chunk-DJd-R1mw.mjs";
2
2
  import { a as join, n as dirname, s as relative } from "./pathe.M-eThtNZ-BrPhGF_K.mjs";
3
3
  import { u as require_picocolors } from "./output-DeiS4oEX.mjs";
4
- import { C as isSandboxEnabled, D as resolveAssetRoutingPolicy, E as hasDocumentRoutes, S as SANDBOX_MIGRATION_TAG, T as hasApiRoutes, _ as normalizeWranglerCompatibilityFlags, a as prerenderPagesNode, b as resolveLiveBindingConfig, c as filterLoadedEnv, d as LIVE_MIGRATION_TAG, f as ensureWranglerCompat, g as nextDurableObjectMigrationTag, h as hasDurableObjectSqliteMigration, i as prerenderPages, l as resolveRemoteMode, m as ensureWranglerNodejsAlsFlag, n as resolveDistDir, o as DEFAULT_PROXY_URL, p as ensureWranglerCompatibilityDate, r as resolveWorkerDirName, s as STAGING_PROXY_URL, u as stripInternalEnvKeys, v as readExistingLiveBindingConfig, w as resolveSandboxConfig, x as syncWranglerBindings, y as readWranglerCompat } from "./deploy-iR7ug73w.mjs";
4
+ import { C as hasApiRoutes, S as resolveSandboxConfig, T as resolveAssetRoutingPolicy, _ as readWranglerCompat, a as prerenderPagesNode, b as SANDBOX_MIGRATION_TAG, c as stripInternalEnvKeys, d as ensureWranglerCompatibilityDate, f as ensureWranglerNodejsAlsFlag, g as readExistingLiveBindingConfig, h as normalizeWranglerCompatibilityFlags, i as prerenderPages, l as LIVE_MIGRATION_TAG, m as nextDurableObjectMigrationTag, n as resolveDistDir, o as filterLoadedEnv, p as hasDurableObjectSqliteMigration, r as resolveWorkerDirName, s as resolveRemoteMode, u as ensureWranglerCompat, v as resolveLiveBindingConfig, w as hasDocumentRoutes, x as isSandboxEnabled, y as syncWranglerBindings } from "./deploy-CRU9fGjE.mjs";
5
5
  import { i as resolveProjectPaths, n as readProjectPaths, t as assertNoRootSourceConventionConflicts } from "./project-paths-CCMrHYQm.mjs";
6
6
  import { n as loadVoidAuthConfig, t as findVoidAuthConfig } from "./config-hhMYPVRT.mjs";
7
- import { c as getToken, u as isStagingMode } from "./client-CCOKwNUz.mjs";
7
+ import { c as getToken, u as isStagingMode } from "./client-DIfOFf1W.mjs";
8
8
  import { r as readProjectConfig } from "./project-CH9pdo16.mjs";
9
9
  import { c as getDatabaseDialect, f as readConfig, l as isNodeTarget, p as resolveBindingNames } from "./config-BVEC0lti.mjs";
10
10
  import { a as scanQueuesSync, i as scanWebSocketRoutesSync, n as scanRoutePatternsSync, o as scanJobsSync, r as scanRoutes, t as scanMiddlewareSync } from "./scan-BNC_1OsY.mjs";
@@ -18,10 +18,11 @@ import { t as MagicString } from "./magic-string.es-C1Fb0uxq.mjs";
18
18
  import { n as findEnvFileForPaths, r as generateEnvTypes, t as findEnvFile } from "./env-types-D6qI1ThV.mjs";
19
19
  import { a as loadUserEnvFile } from "./env-validation-DBJsxZLz.mjs";
20
20
  import { i as resolveLayoutIds } from "./scan-2YmJkYAf.mjs";
21
- import { n as lintDuplicateSources, r as mergeRoutingRules, t as lintDestinationSplats } from "./headers-wAPJigtE.mjs";
22
- import { n as generateVoidAuthDrizzleSchema, t as generateVoidAuthDatabaseModule } from "./drizzle-Bvhm-Uug.mjs";
23
- import { t as INTERNAL_BINDING_PREFIXES } from "./env-raw-DhK_myJu.mjs";
24
- import { n as defer } from "./defer-BosTTQTi.mjs";
21
+ import { n as STAGING_PROXY_URL, t as DEFAULT_PROXY_URL } from "./proxy-M3pxItg2.mjs";
22
+ import { n as lintDuplicateSources, r as mergeRoutingRules, t as lintDestinationSplats } from "./headers-Y0jshugF.mjs";
23
+ import { n as generateVoidAuthDrizzleSchema, t as generateVoidAuthDatabaseModule } from "./drizzle-2fs1qTgy.mjs";
24
+ import { t as INTERNAL_BINDING_PREFIXES } from "./env-raw-RDkMnSTC.mjs";
25
+ import { n as defer } from "./defer-CouVukrf.mjs";
25
26
  import { VoidAssetRewriteError, defineHandler, defineHead, defineMiddleware, defineQueue, defineRender, defineScheduled } from "./runtime/handler.mjs";
26
27
  import { closeSync, existsSync, mkdirSync, openSync, readFileSync, readdirSync, rmSync, writeFileSync, writeSync } from "node:fs";
27
28
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -653,7 +654,7 @@ export function createDb(d1) {
653
654
  const migrationsDir = paths.migrationsDir;
654
655
  if (!(existsSync(migrationsDir) && readdirSync(migrationsDir).some((f) => f.endsWith(".sql")))) {
655
656
  if (dialect === "sqlite") {
656
- const { getApplicationTables, getMiniflareDatabasePath } = await import("./runner-Cioqe5b2.mjs");
657
+ const { getApplicationTables, getMiniflareDatabasePath } = await import("./runner-DLZ9E_cX.mjs");
657
658
  if ((await getApplicationTables(getMiniflareDatabasePath(options.localD1PersistRoot ?? join(root, ".void"), options.localD1DatabaseId ?? "local")).catch(() => [])).length > 0) return;
658
659
  }
659
660
  voidWarn(`Schema found but no migrations in ${paths.sourceRelative("db/migrations")}/.\n \`void db push\` syncs the schema to your local DB without creating migration files.
@@ -1653,7 +1654,7 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
1653
1654
  else warn();
1654
1655
  return;
1655
1656
  }
1656
- const { runPgMigrations, getPgAppliedMigrations } = await import("./runner-pg-D8ciL41o.mjs");
1657
+ const { runPgMigrations, getPgAppliedMigrations } = await import("./runner-pg-Cv9V7ydr.mjs");
1657
1658
  const { collectMigrations } = await import("./collect-9rO3JFNM.mjs").then((n) => n.n);
1658
1659
  const { validateMigrations } = await import("./validate-CNWm-PsL.mjs").then((n) => n.i);
1659
1660
  const allMigrations = collectMigrations(migrationsDir);
@@ -1668,7 +1669,7 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
1668
1669
  const applied = await runPgMigrations(migrationsDir, url);
1669
1670
  if (applied.length > 0) voidLog(`Applied ${applied.length} migration(s): ${applied.join(", ")}`);
1670
1671
  } else if (hasSqlMigrations) {
1671
- const { runMigrations, getMiniflareDatabasePath, getAppliedMigrations } = await import("./runner-Cioqe5b2.mjs");
1672
+ const { runMigrations, getMiniflareDatabasePath, getAppliedMigrations } = await import("./runner-DLZ9E_cX.mjs");
1672
1673
  const { collectMigrations } = await import("./collect-9rO3JFNM.mjs").then((n) => n.n);
1673
1674
  const { validateMigrations } = await import("./validate-CNWm-PsL.mjs").then((n) => n.i);
1674
1675
  const dbPath = getMiniflareDatabasePath(persistRoot, databaseId);
@@ -1685,7 +1686,7 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
1685
1686
  if (applied.length > 0) voidLog(`Applied ${applied.length} migration(s): ${applied.join(", ")}`);
1686
1687
  }
1687
1688
  if (auth?.enabled) {
1688
- const { runLocalVoidAuthMigrations } = await import("./node-C2HhnBO_.mjs");
1689
+ const { runLocalVoidAuthMigrations } = await import("./node-CHWVVjO6.mjs");
1689
1690
  await runLocalVoidAuthMigrations(root, dialect, persistRoot, databaseId, auth.configPath);
1690
1691
  voidLog("Applied Better Auth migrations");
1691
1692
  }
@@ -3549,6 +3550,50 @@ function compilePageRoutes(lines, scan, pages, options) {
3549
3550
  lines.push("");
3550
3551
  }
3551
3552
  /**
3553
+ * Generate the asset fallthrough helper shared by native Void workers and
3554
+ * Class A framework wrappers. If the app returns 404, check ASSETS binding
3555
+ * for static files and set cache headers. Edge caching of hashed assets
3556
+ * happens at the dispatch layer (see design doc 0042).
3557
+ */
3558
+ function compileAssetFallbackHelper(assetsDir = "assets", serveSpaFallback = false) {
3559
+ const spaFallbackCode = serveSpaFallback ? ` // SPA fallback: when HTML-owning features make
3560
+ // assetConfig.not_found_handling = 'none', the asset binding returns 404
3561
+ // instead of falling back to index.html itself. Do that fallback here, after
3562
+ // user routes/middleware have run, so auth gates and OAuth callbacks see the request first.
3563
+ // Pages and SSR apps leave this disabled so intentional HTML 404s stay 404.
3564
+ const accept = request.headers.get("accept") ?? "";
3565
+ if (accept.includes("text/html")) {
3566
+ const indexUrl = new URL("/index.html", request.url);
3567
+ const indexAsset = await env.ASSETS.fetch(new Request(indexUrl, { method: request.method }));
3568
+ if (indexAsset.status === 200) {
3569
+ const res = new Response(indexAsset.body, {
3570
+ status: 200,
3571
+ headers: indexAsset.headers,
3572
+ });
3573
+ res.headers.set("Cache-Control", "no-store");
3574
+ res.headers.set("Content-Type", "text/html; charset=utf-8");
3575
+ return res;
3576
+ }
3577
+ }
3578
+ return response;` : ` return response;`;
3579
+ return `
3580
+ async function serveWithAssets(request, env, response) {
3581
+ if (response.status !== 404 || !env.ASSETS || (request.method !== "GET" && request.method !== "HEAD")) return response;
3582
+ const asset = await env.ASSETS.fetch(new Request(request.url, { method: request.method, headers: request.headers }));
3583
+ if (asset.status !== 404) {
3584
+ const res = new Response(asset.body, asset);
3585
+ if (new URL(request.url).pathname.startsWith(${JSON.stringify("/" + assetsDir + "/")})) {
3586
+ res.headers.set("Cache-Control", "public, max-age=31536000, immutable");
3587
+ } else {
3588
+ res.headers.set("Cache-Control", "no-store");
3589
+ }
3590
+ return res;
3591
+ }
3592
+ ${spaFallbackCode}
3593
+ }
3594
+ `;
3595
+ }
3596
+ /**
3552
3597
  * Generate the Worker entry module code.
3553
3598
  * Re-exports the Hono app from the virtual module with an asset-serving
3554
3599
  * fallthrough: when the app returns 404, the entry tries env.ASSETS.fetch()
@@ -3607,42 +3652,7 @@ function __filterInternalBindings(env) {
3607
3652
  });
3608
3653
  }
3609
3654
  `;
3610
- const spaFallbackCode = serveSpaFallback ? ` // SPA fallback: when HTML-owning features make
3611
- // assetConfig.not_found_handling = 'none', the asset binding returns 404
3612
- // instead of falling back to index.html itself. Do that fallback here, after
3613
- // user routes/middleware have run, so auth gates and OAuth callbacks see the request first.
3614
- // Pages and SSR apps leave this disabled so intentional HTML 404s stay 404.
3615
- const accept = request.headers.get("accept") ?? "";
3616
- if (accept.includes("text/html")) {
3617
- const indexUrl = new URL("/index.html", request.url);
3618
- const indexAsset = await env.ASSETS.fetch(new Request(indexUrl, { method: request.method }));
3619
- if (indexAsset.status === 200) {
3620
- const res = new Response(indexAsset.body, {
3621
- status: 200,
3622
- headers: indexAsset.headers,
3623
- });
3624
- res.headers.set("Cache-Control", "no-store");
3625
- res.headers.set("Content-Type", "text/html; charset=utf-8");
3626
- return res;
3627
- }
3628
- }
3629
- return response;` : ` return response;`;
3630
- const assetHelper = `
3631
- async function serveWithAssets(request, env, response) {
3632
- if (response.status !== 404 || !env.ASSETS || (request.method !== "GET" && request.method !== "HEAD")) return response;
3633
- const asset = await env.ASSETS.fetch(new Request(request.url, { method: request.method, headers: request.headers }));
3634
- if (asset.status !== 404) {
3635
- const res = new Response(asset.body, asset);
3636
- if (new URL(request.url).pathname.startsWith(${JSON.stringify("/" + assetsDir + "/")})) {
3637
- res.headers.set("Cache-Control", "public, max-age=31536000, immutable");
3638
- } else {
3639
- res.headers.set("Cache-Control", "no-store");
3640
- }
3641
- return res;
3642
- }
3643
- ${spaFallbackCode}
3644
- }
3645
- `;
3655
+ const assetHelper = compileAssetFallbackHelper(assetsDir, serveSpaFallback);
3646
3656
  const fetchHandler = remotePath ? `async (request, env, ctx) => {
3647
3657
  ${envValidateCall} const ws = await __voidHandleWebSocket(request, env);
3648
3658
  if (ws) return ws;
@@ -4703,7 +4713,7 @@ function getOriginalFrameworkEntry(framework, root) {
4703
4713
  * dispatch file (and its transitive user-cron/queue imports + dev token)
4704
4714
  * would still ship in the production bundle.
4705
4715
  */
4706
- function generateClassATriggerWrapper(root, framework, original, isBuild) {
4716
+ function generateClassATriggerWrapper(root, framework, original, isBuild, assetsDir = "assets") {
4707
4717
  const outDir = join(root, ".void");
4708
4718
  mkdirSync(outDir, { recursive: true });
4709
4719
  const wrapperPath = join(outDir, `${framework}-trigger-wrapper.ts`);
@@ -4713,9 +4723,10 @@ import original from ${JSON.stringify(original)};
4713
4723
  export default {
4714
4724
  ...original,
4715
4725
  async fetch(request, env, ctx) {
4716
- return original.fetch(request, env, ctx);
4726
+ return serveWithAssets(request, env, await original.fetch(request, env, ctx));
4717
4727
  },
4718
4728
  };
4729
+ ${compileAssetFallbackHelper(assetsDir)}
4719
4730
  ` : `// @ts-nocheck — Auto-generated by Void in dev. Do NOT edit.
4720
4731
  import original from ${JSON.stringify(original)};
4721
4732
 
@@ -4900,9 +4911,9 @@ const STAGING_API_URL = "https://api.staging.void.cloud";
4900
4911
  */
4901
4912
  async function runAiSetupPrompt(root, token, staging, server) {
4902
4913
  const { select, text, isCancel, log } = await import("./dist-abzUneor.mjs").then((n) => n.p);
4903
- const { PlatformClient } = await import("./client-CCOKwNUz.mjs").then((n) => n.r);
4914
+ const { PlatformClient } = await import("./client-DIfOFf1W.mjs").then((n) => n.r);
4904
4915
  const { writeProjectConfig } = await import("./project-CH9pdo16.mjs").then((n) => n.n);
4905
- const { inferDefaultSlug } = await import("./resolve-project-CNpUbUHd.mjs").then((n) => n.i);
4916
+ const { inferDefaultSlug } = await import("./resolve-project-D4O1_fZz.mjs").then((n) => n.i);
4906
4917
  const client = new PlatformClient(token, staging ? STAGING_API_URL : DEFAULT_API_URL);
4907
4918
  let projects;
4908
4919
  try {
@@ -4928,8 +4939,8 @@ async function runAiSetupPrompt(root, token, staging, server) {
4928
4939
  let projectId;
4929
4940
  let slug;
4930
4941
  if (result === "__create__") {
4931
- const { validateProjectSlug } = await import("./project-slug-De4UjtD9.mjs").then((n) => n.t);
4932
- const { createProjectWithSlugRetry } = await import("./create-project-Dg5hiuDE.mjs").then((n) => n.t);
4942
+ const { validateProjectSlug } = await import("./project-slug-rX3kTOfY.mjs").then((n) => n.t);
4943
+ const { createProjectWithSlugRetry } = await import("./create-project-DCUrFJxa.mjs").then((n) => n.t);
4933
4944
  let created;
4934
4945
  try {
4935
4946
  created = await createProjectWithSlugRetry(client, inferDefaultSlug(root), async (defaultSlug) => {
@@ -5367,6 +5378,13 @@ function voidPlugin(options) {
5367
5378
  };
5368
5379
  if (framework) {
5369
5380
  workerConfig.main = getFrameworkEntry(framework, root, devTriggerToken);
5381
+ const frameworkBuildWrapperPlugin = {
5382
+ name: "void:framework-build-wrapper",
5383
+ configResolved(resolved) {
5384
+ if (resolved.command !== "build") return;
5385
+ generateClassATriggerWrapper(root, framework, getOriginalFrameworkEntry(framework, root), true, resolved.build.assetsDir);
5386
+ }
5387
+ };
5370
5388
  const existingFlags = workerConfig.compatibility_flags ?? [];
5371
5389
  if (!existingFlags.includes("nodejs_compat")) workerConfig.compatibility_flags = [...existingFlags, "nodejs_compat"];
5372
5390
  const viteEnvironment = framework === "vinext-app" ? {
@@ -5405,6 +5423,7 @@ function voidPlugin(options) {
5405
5423
  }),
5406
5424
  migrationPlugin(root, getDatabaseDialect(config)),
5407
5425
  ...vinextCompat ? [vinextCompat] : [],
5426
+ frameworkBuildWrapperPlugin,
5408
5427
  frameworkTriggersPlugin(root, { devTriggerToken }),
5409
5428
  devTriggersHintPlugin(root, {
5410
5429
  framework: true,
@@ -1,7 +1,7 @@
1
1
  import { a as join, c as resolve, i as isAbsolute, n as dirname, s as relative, t as basename } from "./pathe.M-eThtNZ-BrPhGF_K.mjs";
2
2
  import { n as cliTitle } from "./output-DeiS4oEX.mjs";
3
3
  import { n as readProjectPaths } from "./project-paths-CCMrHYQm.mjs";
4
- import { c as getToken, n as PlatformClient, u as isStagingMode } from "./client-CCOKwNUz.mjs";
4
+ import { c as getToken, n as PlatformClient, u as isStagingMode } from "./client-DIfOFf1W.mjs";
5
5
  import { _ as me, c as R, g as ge, i as Ee, l as Re, u as Se, v as ue, x as q, y as ye } from "./dist-abzUneor.mjs";
6
6
  import { a as writeProjectConfig, r as readProjectConfig } from "./project-CH9pdo16.mjs";
7
7
  import { c as getDatabaseDialect, f as readConfig } from "./config-BVEC0lti.mjs";
@@ -10,11 +10,11 @@ import { r as parseDotenvFile, t as expandDotenv } from "./dotenv-Bkoqyq9r.mjs";
10
10
  import { n as ensureProjectTsconfig, t as createProjectTsconfig } from "./project-tsconfig-HAGjfY6w.mjs";
11
11
  import { t as MagicString } from "./magic-string.es-C1Fb0uxq.mjs";
12
12
  import { n as writeDrizzleConfig } from "./config--wXmVOoe.mjs";
13
- import { n as getAgentById, r as getPackageDir, t as detectAgents } from "./agents-Dkgafwfr.mjs";
14
- import { n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-Dg5hiuDE.mjs";
15
- import { t as promptForLoginToken } from "./login-BZ1Yk9Xw.mjs";
16
- import { r as formatProjectCommand } from "./preset-Lvi0ORmO.mjs";
17
- import { n as findInstalledYarnPnpRuntime, r as hasLocalLockfile, t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-BdM0hoCa.mjs";
13
+ import { n as getAgentById, r as getPackageDir, t as detectAgents } from "./agents-MhSzNMiC.mjs";
14
+ import { n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-DCUrFJxa.mjs";
15
+ import { t as promptForLoginToken } from "./login-tt1OmNVg.mjs";
16
+ import { r as formatProjectCommand } from "./preset-CIJG2O7a.mjs";
17
+ import { n as findInstalledYarnPnpRuntime, r as hasLocalLockfile, t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-0SwYgQxx.mjs";
18
18
  import { createRequire } from "node:module";
19
19
  import { existsSync, mkdirSync, readFileSync, readdirSync, rmdirSync, unlinkSync, writeFileSync } from "node:fs";
20
20
  import { fileURLToPath } from "node:url";
@@ -2764,7 +2764,7 @@ async function runInitCommand(root, initArgs) {
2764
2764
  const agentSetup = await resolveAgentSetup(root);
2765
2765
  injectAgentBlock(root, agentSetup.instructionFilePath);
2766
2766
  if (agentSetup.agents.length > 0) {
2767
- const { linkSkillsForSpecificAgents } = await import("./skills-GPm5Kjev.mjs");
2767
+ const { linkSkillsForSpecificAgents } = await import("./skills-BRKc--As.mjs");
2768
2768
  linkSkillsForSpecificAgents(root, agentSetup.agents);
2769
2769
  } else R.info("Skills linking skipped for generic agent setup");
2770
2770
  setupMcpConfig(root, agentSetup.agents);
@@ -1,9 +1,9 @@
1
1
  import { n as cliTitle, s as import_picocolors } from "./output-DeiS4oEX.mjs";
2
- import { c as getToken, n as PlatformClient, s as getSiteDomain } from "./client-CCOKwNUz.mjs";
2
+ import { c as getToken, n as PlatformClient, s as getSiteDomain } from "./client-DIfOFf1W.mjs";
3
3
  import { _ as me, c as R, g as ge, y as ye } from "./dist-abzUneor.mjs";
4
4
  import { a as writeProjectConfig, r as readProjectConfig } from "./project-CH9pdo16.mjs";
5
- import { n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-Dg5hiuDE.mjs";
6
- import { r as resolveProjectBySlug } from "./resolve-project-CNpUbUHd.mjs";
5
+ import { n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-DCUrFJxa.mjs";
6
+ import { r as resolveProjectBySlug } from "./resolve-project-D4O1_fZz.mjs";
7
7
  //#region src/cli/link.ts
8
8
  async function runLink(root, slug) {
9
9
  console.log();
@@ -1,8 +1,8 @@
1
1
  import { a as ensureUtc, i as dim, l as tablePrefix, n as cliTitle, s as import_picocolors } from "./output-DeiS4oEX.mjs";
2
- import { c as getToken, n as PlatformClient } from "./client-CCOKwNUz.mjs";
2
+ import { c as getToken, n as PlatformClient } from "./client-DIfOFf1W.mjs";
3
3
  import { c as R, g as ge, y as ye } from "./dist-abzUneor.mjs";
4
4
  import { r as readProjectConfig } from "./project-CH9pdo16.mjs";
5
- import { r as resolveProjectBySlug } from "./resolve-project-CNpUbUHd.mjs";
5
+ import { r as resolveProjectBySlug } from "./resolve-project-D4O1_fZz.mjs";
6
6
  //#region src/cli/list.ts
7
7
  async function runListCommand(root, slug) {
8
8
  console.log();
@@ -1,5 +1,5 @@
1
1
  import { n as cliTitle, r as createSpinner, s as import_picocolors } from "./output-DeiS4oEX.mjs";
2
- import { a as isExpiredTokenError, c as getToken, d as removeToken, f as runLogin, l as getTokenSource, n as PlatformClient, p as saveToken, u as isStagingMode } from "./client-CCOKwNUz.mjs";
2
+ import { a as isExpiredTokenError, c as getToken, d as removeToken, f as runLogin, l as getTokenSource, n as PlatformClient, p as saveToken, u as isStagingMode } from "./client-DIfOFf1W.mjs";
3
3
  import { _ as me, c as R, g as ge, i as Ee, x as q, y as ye } from "./dist-abzUneor.mjs";
4
4
  //#region src/cli/login.ts
5
5
  async function promptForLoginToken(root = process.cwd()) {
@@ -1,5 +1,5 @@
1
1
  import { i as dim, n as cliTitle, s as import_picocolors } from "./output-DeiS4oEX.mjs";
2
- import { c as getToken, n as PlatformClient } from "./client-CCOKwNUz.mjs";
2
+ import { c as getToken, n as PlatformClient } from "./client-DIfOFf1W.mjs";
3
3
  import { c as R, g as ge, y as ye } from "./dist-abzUneor.mjs";
4
4
  import { r as readProjectConfig } from "./project-CH9pdo16.mjs";
5
5
  //#region src/cli/logs.ts
@@ -1,5 +1,5 @@
1
1
  import { a as join, n as dirname } from "./pathe.M-eThtNZ-BrPhGF_K.mjs";
2
- import { c as getToken, n as PlatformClient } from "./client-CCOKwNUz.mjs";
2
+ import { c as getToken, n as PlatformClient } from "./client-DIfOFf1W.mjs";
3
3
  import { a as writeProjectConfig } from "./project-CH9pdo16.mjs";
4
4
  import { existsSync, readFileSync, readdirSync } from "node:fs";
5
5
  import { fileURLToPath } from "node:url";
@@ -1,9 +1,9 @@
1
1
  import { a as join } from "./pathe.M-eThtNZ-BrPhGF_K.mjs";
2
2
  import { n as loadVoidAuthConfig, t as findVoidAuthConfig } from "./config-hhMYPVRT.mjs";
3
3
  import { f as readConfig } from "./config-BVEC0lti.mjs";
4
- import { r as resolveVoidAuthMigrationSchema } from "./drizzle-Bvhm-Uug.mjs";
5
- import { n as applySqliteAuthMigrations, t as applyPgAuthMigrations } from "./auth-migrations-DBoTUBvq.mjs";
6
- import { getMiniflareDatabasePath } from "./runner-Cioqe5b2.mjs";
4
+ import { r as resolveVoidAuthMigrationSchema } from "./drizzle-2fs1qTgy.mjs";
5
+ import { n as applySqliteAuthMigrations, t as applyPgAuthMigrations } from "./auth-migrations-CuQkjjWE.mjs";
6
+ import { getMiniflareDatabasePath } from "./runner-DLZ9E_cX.mjs";
7
7
  import { loadEnv } from "vite";
8
8
  //#region src/auth/node.ts
9
9
  async function runLocalVoidAuthMigrations(root, dialect, persistRoot = join(root, ".void"), databaseId = "local", configPath = findVoidAuthConfig(root)) {
@@ -1,4 +1,4 @@
1
- import { t as PageObject } from "../protocol-hjl3Nx5x.mjs";
1
+ import { t as PageObject } from "../protocol-DYca39yJ.mjs";
2
2
  import { CacheForInput, CacheForResult } from "./prefetch.mjs";
3
3
 
4
4
  //#region src/pages/action-result.d.ts
@@ -1,4 +1,4 @@
1
- import { n as HeadDescriptor } from "../head-BW_f2L_4.mjs";
1
+ import { n as HeadDescriptor } from "../head-BsSTGnIe.mjs";
2
2
 
3
3
  //#region src/pages/head-client.d.ts
4
4
  /**
@@ -1,2 +1,2 @@
1
- import { a as renderHtmlAttrs, i as renderHeadToString, n as HeadDescriptor, o as resolveHead, r as renderBodyAttrs, t as HeadConfig } from "../head-BW_f2L_4.mjs";
1
+ import { a as renderHtmlAttrs, i as renderHeadToString, n as HeadDescriptor, o as resolveHead, r as renderBodyAttrs, t as HeadConfig } from "../head-BsSTGnIe.mjs";
2
2
  export { HeadConfig, HeadDescriptor, renderBodyAttrs, renderHeadToString, renderHtmlAttrs, resolveHead };
@@ -1,5 +1,5 @@
1
- import { a as renderHtmlAttrs, i as renderHeadToString, n as HeadDescriptor, o as resolveHead, r as renderBodyAttrs, t as HeadConfig } from "../head-BW_f2L_4.mjs";
2
- import { a as PageScanResult, i as PageDefinition, n as LayoutDefinition, r as NamedLayoutDefinition } from "../types-s2mK7ar_.mjs";
1
+ import { a as renderHtmlAttrs, i as renderHeadToString, n as HeadDescriptor, o as resolveHead, r as renderBodyAttrs, t as HeadConfig } from "../head-BsSTGnIe.mjs";
2
+ import { a as PageScanResult, i as PageDefinition, n as LayoutDefinition, r as NamedLayoutDefinition } from "../types-Dm9kep2X.mjs";
3
3
  import { serializePageData } from "./serialize.mjs";
4
4
  import { RewriteDestination } from "void/routes";
5
5
 
@@ -2,7 +2,7 @@ import { a as join } from "../pathe.M-eThtNZ-BrPhGF_K.mjs";
2
2
  import { r as resolvePagesDir } from "../project-paths-CCMrHYQm.mjs";
3
3
  import { f as readConfig } from "../config-BVEC0lti.mjs";
4
4
  import { a as resolveNamedLayout, i as resolveLayoutIds, n as resolveEffectiveLayoutChain, r as resolveLayoutChain, t as scanPages } from "../scan-2YmJkYAf.mjs";
5
- import { i as parseRedirectsFile } from "../headers-wAPJigtE.mjs";
5
+ import { i as parseRedirectsFile } from "../headers-Y0jshugF.mjs";
6
6
  import { renderBodyAttrs, renderHeadToString, renderHtmlAttrs, resolveHead } from "./head.mjs";
7
7
  import { serializePageData } from "./serialize.mjs";
8
8
  //#region src/pages/manifest.ts
@@ -1,4 +1,4 @@
1
- import { a as PageScanResult } from "../types-s2mK7ar_.mjs";
1
+ import { a as PageScanResult } from "../types-Dm9kep2X.mjs";
2
2
  import { ResolvedConfig, ViteDevServer } from "vite";
3
3
 
4
4
  //#region src/pages/islands-plugin.d.ts
@@ -1,3 +1,3 @@
1
- import { S as ValidationError } from "../handler-DMSGX5S6.mjs";
2
- import { a as handlePageMutation, i as handlePageGet, n as PageRenderResult, o as safeJsonStringify, r as flattenValidationErrors, t as PageObject } from "../protocol-hjl3Nx5x.mjs";
1
+ import { S as ValidationError } from "../handler-xflsMwWM.mjs";
2
+ import { a as handlePageMutation, i as handlePageGet, n as PageRenderResult, o as safeJsonStringify, r as flattenValidationErrors, t as PageObject } from "../protocol-DYca39yJ.mjs";
3
3
  export { PageObject, PageRenderResult, ValidationError, flattenValidationErrors, handlePageGet, handlePageMutation, safeJsonStringify };
@@ -1,5 +1,5 @@
1
1
  import { isConvertedResponse } from "../runtime/response.mjs";
2
- import { i as ValidationError, r as separateDeferred, t as DEFERRED } from "../defer-BosTTQTi.mjs";
2
+ import { i as ValidationError, r as separateDeferred, t as DEFERRED } from "../defer-CouVukrf.mjs";
3
3
  import { resolveHead } from "./head.mjs";
4
4
  //#region src/pages/protocol.ts
5
5
  const POWERED_BY = { "X-Powered-By": "Void" };
@@ -10,7 +10,7 @@ import { i as generateDbDts, n as generateQueueTypes, t as generateRouteTypes }
10
10
  import { n as ensureProjectTsconfig } from "./project-tsconfig-HAGjfY6w.mjs";
11
11
  import { t as discoverSchema } from "./discover-C8N1I4tK.mjs";
12
12
  import { r as generateEnvTypes, t as findEnvFile } from "./env-types-D6qI1ThV.mjs";
13
- import { n as generateVoidAuthDrizzleSchema, t as generateVoidAuthDatabaseModule } from "./drizzle-Bvhm-Uug.mjs";
13
+ import { n as generateVoidAuthDrizzleSchema, t as generateVoidAuthDatabaseModule } from "./drizzle-2fs1qTgy.mjs";
14
14
  import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
15
15
  import { fileURLToPath } from "node:url";
16
16
  import { loadEnv } from "vite";
@@ -1,7 +1,7 @@
1
1
  import { a as join, c as resolve } from "./pathe.M-eThtNZ-BrPhGF_K.mjs";
2
2
  import { n as readProjectPaths } from "./project-paths-CCMrHYQm.mjs";
3
3
  import { s as hasSsrEntry } from "./plugin-inference-BUBhHt_1.mjs";
4
- import { i as readPackageJson, n as hasPackageDependency, t as getPackageDependencies } from "./package-json-BMdypFnO.mjs";
4
+ import { i as readPackageJson, n as hasPackageDependency, t as getPackageDependencies } from "./package-json-B2TD0JLu.mjs";
5
5
  import { existsSync } from "node:fs";
6
6
  //#region src/cli/preset.ts
7
7
  /**