void 0.21.1 → 0.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/README.md +3 -2
  2. package/dist/{auth-cmd-g_ymMkUe.mjs → account-cmd-DGt9cpRe.mjs} +10 -10
  3. package/dist/{agents-gni4eqBu.mjs → agents-B_pX_HmQ.mjs} +1 -1
  4. package/dist/ast-CPGPjb0V.mjs +18 -0
  5. package/dist/{auth-CAw7zHqj.mjs → auth-CZuiVsFh.mjs} +1 -1
  6. package/dist/{auth-B9_D6ygs.mjs → auth-DLNN0D3Z.mjs} +4 -4
  7. package/dist/{auth-link-DFvxIyZi.mjs → auth-link-Cl9vOuf7.mjs} +5 -5
  8. package/dist/auth-router-D4ZcMUSf.mjs +74 -0
  9. package/dist/{better-auth-shared-BoVwA5Vm.d.mts → better-auth-shared-BVkjZ3vM.d.mts} +1 -0
  10. package/dist/{better-auth-shared-syGYYmnY.mjs → better-auth-shared-rsBGBvWJ.mjs} +3 -6
  11. package/dist/{build-cmd-wJAv808h.mjs → build-cmd-Dpt0jd-x.mjs} +5 -5
  12. package/dist/{cache-Be0Fu5Ka.mjs → cache-7_UeZdTk.mjs} +5 -5
  13. package/dist/{cancel-deploy-BgmyOwhe.mjs → cancel-deploy-D23R1RXT.mjs} +4 -4
  14. package/dist/{cf-access-rAZxzMkL.mjs → cf-access-P0iZnu0q.mjs} +1 -1
  15. package/dist/{cf-build-output-CTdlo6Rt.mjs → cf-build-output-CGT03qCD.mjs} +2 -2
  16. package/dist/cli/cf-compat.mjs +2 -2
  17. package/dist/cli/cli.mjs +122 -66
  18. package/dist/cli/env-schema-probe.mjs +3 -3
  19. package/dist/client-4cDVv7BO.mjs +2 -0
  20. package/dist/{client-PdAJ-F0t.mjs → client-QTl6ko_D.mjs} +28 -5
  21. package/dist/{cloudflare-auth-BCmTc1X_.mjs → cloudflare-auth-B9jPCkV2.mjs} +1 -1
  22. package/dist/{cloudflare-cmd-D6PrKn7o.mjs → cloudflare-cmd-BjNxR1XF.mjs} +3 -3
  23. package/dist/{cloudflare-connect-DloREDlc.mjs → cloudflare-connect-CCUozPOe.mjs} +3 -3
  24. package/dist/{cloudflare-operations-BHNJVDbN.mjs → cloudflare-operations-BipGMJ5O.mjs} +1 -1
  25. package/dist/{cloudflare-operations-CPEdHYhM.mjs → cloudflare-operations-sMZXpk_S.mjs} +4 -4
  26. package/dist/collect-DLyFDiKW.mjs +2 -0
  27. package/dist/{collect-DXHNWHcT.mjs → collect-DiTn9yr6.mjs} +1 -1
  28. package/dist/config-0acf1oys.mjs +2 -0
  29. package/dist/{config-DywxBLQC.d.mts → config-CF69HgXc.d.mts} +7 -0
  30. package/dist/{config-Dxr6cTXn.mjs → config-CafTW6Cz.mjs} +12 -1
  31. package/dist/{config-BSe70f4T.mjs → config-D8MOgiQV.mjs} +3 -3
  32. package/dist/config-DPByhVck.mjs +32 -0
  33. package/dist/config-entry.d.mts +1 -1
  34. package/dist/{config--T87TD8T.mjs → config-s7Xj7tPb.mjs} +1 -1
  35. package/dist/{config-write-y3CBI_ux.mjs → config-write-BSduPMY8.mjs} +3 -3
  36. package/dist/{connect-LnvW4HKx.mjs → connect-4Ph5Y0QE.mjs} +8 -8
  37. package/dist/{create-project-JV9-6ICF.mjs → create-project-BniEV0OW.mjs} +1 -1
  38. package/dist/{create-project-BZBl_gQ0.mjs → create-project-DBfFSZKY.mjs} +4 -4
  39. package/dist/{db-Mzv88E1C.mjs → db-DzJRn-qz.mjs} +128 -60
  40. package/dist/{delete-Ri6JemSU.mjs → delete-D6dZ9B6B.mjs} +5 -5
  41. package/dist/deploy-BH0grP4y.mjs +2 -0
  42. package/dist/{deploy-DEsMVrCY.mjs → deploy-CsMJrPfM.mjs} +522 -262
  43. package/dist/discover-AMCBXivQ.mjs +2 -0
  44. package/dist/{discover-C4O6YxVS.mjs → discover-BcPPiF1o.mjs} +2 -2
  45. package/dist/{dist-4WkAWhWx.mjs → dist-BVqXeR_h.mjs} +9 -1
  46. package/dist/dist-_UUlL6bg.mjs +2 -0
  47. package/dist/{domain-BA37Ye7T.mjs → domain-Dmhvb2oU.mjs} +5 -5
  48. package/dist/{email-C5kaZXzJ.mjs → email--tEtMoj_.mjs} +1 -1
  49. package/dist/{email-C5NsxrQG.mjs → email-BRKOG2RG.mjs} +10 -10
  50. package/dist/{entry-DdRFGK0y.mjs → entry-CF5wvH4w.mjs} +4 -21
  51. package/dist/{env-U_ohASB0.mjs → env-Csi-tMbT.mjs} +8 -8
  52. package/dist/{env-Yz4HcvHs.mjs → env-D5liuQYR.mjs} +5 -2
  53. package/dist/{env-DX_v-Q-v.mjs → env-_v349JBd.mjs} +1 -1
  54. package/dist/{env-types-CWDtqHgw.mjs → env-types-C2_bIk_b.mjs} +2 -2
  55. package/dist/{env-validation-BsFEXps5.mjs → env-validation-BB4GkLxn.mjs} +4 -4
  56. package/dist/{env-validation-DIDGM7h4.mjs → env-validation-BXge7uyK.mjs} +1 -1
  57. package/dist/{gen-pg-Ojg8Y.mjs → gen-Dz3X1Qab.mjs} +8 -8
  58. package/dist/gen-Vnv2f65C.mjs +2 -0
  59. package/dist/{generate-C0VY6RVf.mjs → generate-GDbL7sUr.mjs} +2 -2
  60. package/dist/{github-cmd-DsrkweIl.mjs → github-cmd-BED3_9JD.mjs} +7 -7
  61. package/dist/{headers-B_HBMgi0.mjs → headers-BOg_velo.mjs} +2 -2
  62. package/dist/{help-sBhFH6pi.mjs → help-DC7gdz7L.mjs} +46 -11
  63. package/dist/help-DQMfeKMz.mjs +2 -0
  64. package/dist/index.mjs +134 -160
  65. package/dist/{init-C--Yyj1b.mjs → init-CRGDXzVC.mjs} +105 -289
  66. package/dist/{link-BC-mNG9-.mjs → link-CsHOinF7.mjs} +6 -6
  67. package/dist/{list-DHU1Wj6c.mjs → list-CDb-4bZ1.mjs} +6 -6
  68. package/dist/{local-d1-DzykTWY8.mjs → local-d1-CC8sKFGu.mjs} +3 -3
  69. package/dist/{login-jKe_0QZL.mjs → login-BQyISZuW.mjs} +4 -4
  70. package/dist/login-r2gL8l7B.mjs +2 -0
  71. package/dist/{logs-BG11f5PR.mjs → logs-BdfiOezj.mjs} +5 -5
  72. package/dist/{migrate-BV8qHiCb.mjs → migrate-B8KuoYsO.mjs} +69 -44
  73. package/dist/migrate-TsHGBnDA.mjs +2 -0
  74. package/dist/{node-Cupyf7-s.mjs → node-BM43oz4G.mjs} +5 -5
  75. package/dist/{operator-auth-BkVgJqv-.mjs → operator-auth-8KnOVXVd.mjs} +2 -2
  76. package/dist/{operator-client-A0iex2yi.mjs → operator-client-DUwumHpQ.mjs} +2 -2
  77. package/dist/{operator-cmd-BwAS2XZt.mjs → operator-cmd-Co-PeaeD.mjs} +6 -6
  78. package/dist/{package-json-iCbMg5XF.mjs → package-json-DXfiT1jV.mjs} +1 -1
  79. package/dist/pages/index.d.mts +1 -1
  80. package/dist/pages/index.mjs +11 -6
  81. package/dist/pages/islands-plugin.d.mts +271 -1
  82. package/dist/pages/islands-plugin.mjs +95 -18
  83. package/dist/parse-filename-DioPHiR9.mjs +77 -0
  84. package/dist/{platform-auth-config-C-hv-_Ok.mjs → platform-auth-config-TSw8edHw.mjs} +5 -5
  85. package/dist/{platform-auth-protection-DjTE5Hj-.mjs → platform-auth-protection-Ba1XqGhn.mjs} +6 -6
  86. package/dist/{platform-auth-recovery-Cr0r8TEb.mjs → platform-auth-recovery-BkT3EsF2.mjs} +5 -5
  87. package/dist/{platform-cmd-DE6dw45v.mjs → platform-cmd-C8OqhqPt.mjs} +1 -1
  88. package/dist/{platform-cmd-0tEh2ZtA.mjs → platform-cmd-CRSKfu8k.mjs} +5 -5
  89. package/dist/{platform-domain-B_7x6Iqx.mjs → platform-domain-j9YCXRm6.mjs} +3 -3
  90. package/dist/{platform-lifecycle-Di0LbhPM.mjs → platform-lifecycle-78H0XQUA.mjs} +278 -230
  91. package/dist/{platform-lifecycle-Dhx9Pnub.mjs → platform-lifecycle-DDc9zCeJ.mjs} +1 -1
  92. package/dist/{platform-management-eaiaU3uM.mjs → platform-management-6w8-DUjC.mjs} +2 -2
  93. package/dist/{platform-management-B9LUtMt9.mjs → platform-management-DzKNsMlt.mjs} +1 -1
  94. package/dist/{platform-recovery-BxfA8E5C.mjs → platform-recovery-Do8VOyDE.mjs} +3 -3
  95. package/dist/{platform-registry-BJbgZLS1.mjs → platform-registry-QBa4DK32.mjs} +1 -1
  96. package/dist/{plugin-inference-DsvtJLll.mjs → plugin-inference-BMfKRSqE.mjs} +188 -85
  97. package/dist/prepare-BZXkjdNe.mjs +2 -0
  98. package/dist/{prepare-pcWcxSCh.mjs → prepare-C3kt3Rst.mjs} +11 -11
  99. package/dist/{prepare-_T-Haxrr.mjs → prepare-DyZ-Yok5.mjs} +1 -1
  100. package/dist/{prerender-render-Cf_WDE9W.mjs → prerender-render-D9qbLs2f.mjs} +1 -1
  101. package/dist/prerender-render.mjs +1 -1
  102. package/dist/{preset-Dowh9tTt.mjs → preset-UHj9ARyP.mjs} +4 -4
  103. package/dist/{project-BEBFDFLz.mjs → project-BuUwfj6f.mjs} +1 -1
  104. package/dist/{project-CWNIPoXc.mjs → project-C0Fqu05O.mjs} +2 -2
  105. package/dist/{project-cmd-DrnRJdep.mjs → project-cmd-B44I8J_W.mjs} +16 -16
  106. package/dist/{project-paths-CKQ-Q5JS.mjs → project-paths-GgcMozYz.mjs} +1 -1
  107. package/dist/{project-team-CzRbO_kA.mjs → project-team-BkbYIsXN.mjs} +6 -6
  108. package/dist/{project-token-Bwxjf4y6.mjs → project-token-C8xEEQnB.mjs} +4 -4
  109. package/dist/{project-tsconfig-CwfqUnVp.mjs → project-tsconfig-B8GeM0RM.mjs} +2 -2
  110. package/dist/{provision-Cck2m3jJ.mjs → provision-BhreDAOS.mjs} +141 -78
  111. package/dist/provision-DNtrtaVD.mjs +3 -0
  112. package/dist/{requests-DwrqUQZ8.mjs → requests-DFyhBMaf.mjs} +4 -4
  113. package/dist/{resolve-project-Xvis70DG.mjs → resolve-project-BG5ORGID.mjs} +1 -1
  114. package/dist/resolve-project-DtbidV4y.mjs +2 -0
  115. package/dist/{rollback-B4tFWmkN.mjs → rollback-DHHxXZiS.mjs} +5 -5
  116. package/dist/{route-types-Id82-veQ.mjs → route-types-Clm4WD0B.mjs} +39 -16
  117. package/dist/{runner-CQs_cDSG.mjs → runner-B8wXwWlo.mjs} +1 -1
  118. package/dist/{runner-mysql-1o47achK.mjs → runner-mysql-CEG5JozK.mjs} +1 -1
  119. package/dist/{runner-mysql-BhwMk2Bm.mjs → runner-mysql-DmWchSWJ.mjs} +1 -1
  120. package/dist/{runner-BGVsGgkb.mjs → runner-p-dMs2UN.mjs} +3 -3
  121. package/dist/{runner-pg-D7z01mQS.mjs → runner-pg-Bh4AgZdj.mjs} +1 -1
  122. package/dist/{runner-pg-CJ_JeGF6.mjs → runner-pg-D4OPlil-.mjs} +1 -1
  123. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  124. package/dist/runtime/better-auth-mysql.mjs +1 -1
  125. package/dist/runtime/better-auth-pg.d.mts +1 -1
  126. package/dist/runtime/better-auth-pg.mjs +1 -1
  127. package/dist/runtime/better-auth.d.mts +1 -1
  128. package/dist/runtime/better-auth.mjs +2 -2
  129. package/dist/runtime/db.mjs +8 -5
  130. package/dist/runtime/durable.mjs +1 -1
  131. package/dist/runtime/email/testing.mjs +1 -1
  132. package/dist/runtime/env-public.mjs +1 -1
  133. package/dist/runtime/env.d.mts +1 -1
  134. package/dist/runtime/env.mjs +1 -1
  135. package/dist/runtime/kv.mjs +1 -1
  136. package/dist/runtime/live-server.mjs +38 -23
  137. package/dist/runtime/queues.mjs +1 -1
  138. package/dist/runtime/sandbox.mjs +1 -1
  139. package/dist/runtime/storage.mjs +1 -1
  140. package/dist/runtime/ws-server.d.mts +1 -1
  141. package/dist/runtime/ws-server.mjs +1 -1
  142. package/dist/{scan-DJbooZm2.mjs → scan-4tfN-PSn.mjs} +113 -99
  143. package/dist/{scan-DdDvRCU1.mjs → scan-ClYmX3sa.mjs} +35 -137
  144. package/dist/{secret-UtrRjhEO.mjs → secret-DN9sSNiV.mjs} +7 -7
  145. package/dist/{skills-B-690E7h.mjs → skills-O6FUaizK.mjs} +2 -2
  146. package/dist/sveltekit.mjs +1 -1
  147. package/dist/{validate-qNhV00PD.mjs → validate-CIUwFpjB.mjs} +2 -2
  148. package/dist/validate-EKmJWxmy.mjs +2 -0
  149. package/dist/{wrangler-D01qs6VB.mjs → wrangler-BymcxrRa.mjs} +3 -3
  150. package/dist/{yarn-pnp-CVEc3gE7.mjs → yarn-pnp-BV4AzNul.mjs} +1 -1
  151. package/package.json +7 -7
  152. package/schema.json +18 -0
  153. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +1 -1
  154. package/skills/void/SKILL.md +4 -2
  155. package/skills/void/docs/guide/app-types.md +1 -1
  156. package/skills/void/docs/guide/auth.md +2 -2
  157. package/skills/void/docs/guide/database/d1.md +6 -0
  158. package/skills/void/docs/guide/durable-state.md +1 -1
  159. package/skills/void/docs/guide/edge/rewrites.md +2 -3
  160. package/skills/void/docs/guide/env-migration.md +1 -1
  161. package/skills/void/docs/guide/pages-routing/markdown.md +1 -1
  162. package/skills/void/docs/guide/platform/administration/access.md +1 -1
  163. package/skills/void/docs/guide/platform/development/local.md +1 -1
  164. package/skills/void/docs/guide/platform/installation/prerequisites.md +2 -2
  165. package/skills/void/docs/guide/platform/installation/setup.md +1 -1
  166. package/skills/void/docs/guide/project-collaboration.md +1 -1
  167. package/skills/void/docs/guide/server-routing.md +2 -3
  168. package/skills/void/docs/guide/ssr.md +4 -10
  169. package/skills/void/docs/guide/websockets.md +1 -1
  170. package/skills/void/docs/integrations/cloudflare.md +2 -0
  171. package/skills/void/docs/reference/api.md +1 -1
  172. package/skills/void/docs/reference/cli.md +34 -13
  173. package/skills/void/docs/reference/config.md +12 -1
  174. package/skills/void/docs/reference/resource-inference.md +1 -1
  175. package/dist/client-DAAivdid.mjs +0 -2
  176. package/dist/collect-DAUItMDS.mjs +0 -2
  177. package/dist/config-DDIFxQYx.mjs +0 -2
  178. package/dist/config-uP7ZDtVZ.mjs +0 -21
  179. package/dist/deploy-DAH2-m_-.mjs +0 -2
  180. package/dist/discover-BBzDZe_o.mjs +0 -2
  181. package/dist/dist-D7-nEOXi.mjs +0 -2
  182. package/dist/gen-B87rlalt.mjs +0 -2
  183. package/dist/help-B403BLBB.mjs +0 -2
  184. package/dist/login-BwiopVdg.mjs +0 -2
  185. package/dist/migrate-BXY3B3m7.mjs +0 -2
  186. package/dist/prepare-D4CkM3_v.mjs +0 -2
  187. package/dist/provision-CNgEBkVA.mjs +0 -3
  188. package/dist/resolve-project-BTotl8Nn.mjs +0 -2
  189. package/dist/validate-DqJ33oHj.mjs +0 -2
@@ -0,0 +1,2 @@
1
+ import { t as discoverSchema } from "./discover-BcPPiF1o.mjs";
2
+ export { discoverSchema };
@@ -1,5 +1,5 @@
1
- import { l as relative } from "./dist-4WkAWhWx.mjs";
2
- import { n as readProjectPaths } from "./project-paths-CKQ-Q5JS.mjs";
1
+ import { l as relative } from "./dist-BVqXeR_h.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
3
3
  import { existsSync, statSync } from "node:fs";
4
4
  //#region src/drizzle/discover.ts
5
5
  /**
@@ -8,6 +8,14 @@ const isWindows = process.platform === "win32";
8
8
  * slash is a literal character, not a separator.
9
9
  */
10
10
  const toForwardSlash = (path) => path.startsWith("\\\\?\\") ? path : path.replace(BACKSLASH_RE, "/");
11
+ /**
12
+ * Normalize separators to `/`, safely. On Windows it converts `\` to `/`. On
13
+ * POSIX it does nothing, because there a backslash is a legal filename character
14
+ * and rewriting it would corrupt the path.
15
+ */
16
+ function toSlash(path) {
17
+ return isWindows ? toForwardSlash(path) : path;
18
+ }
11
19
  const w = nodePath.win32;
12
20
  function slashed(fn) {
13
21
  return (...args) => toForwardSlash(fn(...args));
@@ -39,4 +47,4 @@ posix.win32 = win32.win32 = win32;
39
47
  const path = isWindows ? win32 : posix;
40
48
  const { basename, delimiter, dirname, extname, format, isAbsolute, join, matchesGlob, normalize, parse, relative, resolve, sep, toNamespacedPath } = path;
41
49
  //#endregion
42
- export { join as a, posix as c, win32 as d, isAbsolute as i, relative as l, dirname as n, normalize as o, extname as r, path as s, basename as t, resolve as u };
50
+ export { join as a, posix as c, toSlash as d, win32 as f, isAbsolute as i, relative as l, dirname as n, normalize as o, extname as r, path as s, basename as t, resolve as u };
@@ -0,0 +1,2 @@
1
+ import { n as dirname } from "./dist-BVqXeR_h.mjs";
2
+ export { dirname };
@@ -1,8 +1,8 @@
1
1
  import { c as import_picocolors } from "./output-CCH48AMM.mjs";
2
- import { c as getToken } from "./auth-B9_D6ygs.mjs";
3
- import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-CWNIPoXc.mjs";
2
+ import { c as getToken } from "./auth-DLNN0D3Z.mjs";
3
+ import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-C0Fqu05O.mjs";
4
4
  import { N as note, j as log } from "./dist-Dn6nn2IU.mjs";
5
- import { n as PlatformClient } from "./client-PdAJ-F0t.mjs";
5
+ import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
6
6
  //#region src/cli/domain.ts
7
7
  async function runDomainCommand(root, args) {
8
8
  const platform = readDeploymentPlatform(root);
@@ -10,7 +10,7 @@ async function runDomainCommand(root, args) {
10
10
  if (platform === "none") throw new Error("domain: Deployment is disabled. Run `void init` to choose a platform.");
11
11
  const token = getToken(root);
12
12
  if (!token) {
13
- log.error("Not logged in. Run `void auth login` first.");
13
+ log.error("Not logged in. Run `void account login` first.");
14
14
  process.exit(1);
15
15
  }
16
16
  const client = new PlatformClient(token, { root });
@@ -40,7 +40,7 @@ async function runDomainCommand(root, args) {
40
40
  }
41
41
  async function runCloudflareDomainCommand(root, args) {
42
42
  if (args.projectSlug) throw new Error("domain: --project selects a Void platform project and is not used for direct Cloudflare apps.");
43
- const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-BHNJVDbN.mjs");
43
+ const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-BipGMJ5O.mjs");
44
44
  if (args.subcommand === "add") {
45
45
  const result = await changeCloudflareDomain(root, args.hostname, "add");
46
46
  log.success(result.modified ? `Domain ${args.hostname} added and activated on Cloudflare.` : `Domain ${args.hostname} is already configured.`);
@@ -1,4 +1,4 @@
1
- import { a as join } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
2
  import { n as globSync, t as glob } from "./dist-Bn8Kodjp.mjs";
3
3
  //#region src/router/email.ts
4
4
  /**
@@ -1,14 +1,14 @@
1
- import { a as join } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
2
  import { c as import_picocolors, i as createSpinner } from "./output-CCH48AMM.mjs";
3
- import { I as resolveDeployTransport, O as isWranglerNonInteractiveOrCI, Y as runWranglerAuthToken, _ as deriveWorkerName, _t as preflightEmail, gt as findEmailConfigConflicts, h as createDeployWranglerRunner, ht as createNodeEmailDns, k as loadProvisionModule, mt as applyEmailSetup, v as discoverRootWranglerConfig, vt as renderAddressMap, yt as renderEmailChecklist } from "./deploy-DEsMVrCY.mjs";
4
- import { n as readProjectPaths } from "./project-paths-CKQ-Q5JS.mjs";
5
- import { c as getToken, d as openBrowser } from "./auth-B9_D6ygs.mjs";
6
- import { o as readProjectConfig } from "./project-CWNIPoXc.mjs";
7
- import { m as readConfig } from "./config-Dxr6cTXn.mjs";
8
- import { k as writeProvisionedWranglerConfig } from "./wrangler-D01qs6VB.mjs";
3
+ import { L as resolveDeployTransport, O as isWranglerNonInteractiveOrCI, X as runWranglerAuthToken, _ as deriveWorkerName, _t as findEmailConfigConflicts, bt as renderEmailChecklist, gt as createNodeEmailDns, h as createDeployWranglerRunner, ht as applyEmailSetup, k as loadProvisionModule, v as discoverRootWranglerConfig, vt as preflightEmail, yt as renderAddressMap } from "./deploy-CsMJrPfM.mjs";
4
+ import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
5
+ import { c as getToken, d as openBrowser } from "./auth-DLNN0D3Z.mjs";
6
+ import { o as readProjectConfig } from "./project-C0Fqu05O.mjs";
7
+ import { m as readConfig } from "./config-CafTW6Cz.mjs";
8
+ import { k as writeProvisionedWranglerConfig } from "./wrangler-BymcxrRa.mjs";
9
9
  import { E as confirm, F as password, N as note, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
10
- import { a as scanEmailHandlersSync } from "./email-C5kaZXzJ.mjs";
11
- import { n as PlatformClient, t as PlatformApiError } from "./client-PdAJ-F0t.mjs";
10
+ import { a as scanEmailHandlersSync } from "./email--tEtMoj_.mjs";
11
+ import { n as PlatformClient, t as PlatformApiError } from "./client-QTl6ko_D.mjs";
12
12
  import { existsSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
13
13
  import { tmpdir } from "node:os";
14
14
  import { execSync } from "node:child_process";
@@ -26,7 +26,7 @@ async function runEmailCommand(root, args) {
26
26
  }
27
27
  const token = getToken(root);
28
28
  if (!token) {
29
- log.error("Not logged in. Run `void auth login` first.");
29
+ log.error("Not logged in. Run `void account login` first.");
30
30
  process.exit(1);
31
31
  }
32
32
  const client = new PlatformClient(token, { root });
@@ -1,24 +1,8 @@
1
- import { a as join, l as relative } from "./dist-4WkAWhWx.mjs";
2
- import { n as readProjectPaths } from "./project-paths-CKQ-Q5JS.mjs";
1
+ import { a as join, l as relative } from "./dist-BVqXeR_h.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
3
+ import { n as isIdentifier } from "./ast-CPGPjb0V.mjs";
3
4
  import { existsSync, readFileSync } from "node:fs";
4
5
  import { parseSync } from "vite";
5
- //#region src/shared/ast.ts
6
- function isIdentifier(node) {
7
- return node?.type === "Identifier" && typeof node.name === "string";
8
- }
9
- function isLiteral(node) {
10
- return node?.type === "Literal";
11
- }
12
- function isMemberExpression(node) {
13
- return node?.type === "MemberExpression";
14
- }
15
- function isCallExpression(node) {
16
- return node?.type === "CallExpression";
17
- }
18
- function isObjectExpression(node) {
19
- return node?.type === "ObjectExpression";
20
- }
21
- //#endregion
22
6
  //#region src/ssr/entry.ts
23
7
  const SSR_SERVER_ENTRY_RELATIVE_PATHS = ["src/main.ssr.ts", "src/main.ssr.tsx"];
24
8
  const SSR_CLIENT_ENTRY_RELATIVE_PATHS = ["src/main.client.ts", "src/main.client.tsx"];
@@ -45,7 +29,6 @@ function hasSsrEntry(root, paths = readProjectPaths(root)) {
45
29
  function validateServerRenderExport(entry) {
46
30
  const { absolutePath, relativePath } = entry;
47
31
  const source = readFileSync(absolutePath, "utf-8");
48
- if (/\bexport\s+(?:async\s+)?function\s+render\b/.test(source) || /\bexport\s+const\s+render\b/.test(source) || /\bexport\s+default\s+(?:defineRender\b|(?:async\s+)?function\b)/.test(source)) return;
49
32
  let parsed;
50
33
  try {
51
34
  parsed = parseSync(relativePath, source);
@@ -97,4 +80,4 @@ function validateSsrEntry(root, paths = readProjectPaths(root)) {
97
80
  return validateSsrEntries(root, paths)?.server.absolutePath ?? null;
98
81
  }
99
82
  //#endregion
100
- export { validateSsrEntries as a, isIdentifier as c, isObjectExpression as d, hasSsrEntry as i, isLiteral as l, SSR_SERVER_ENTRY_RELATIVE_PATHS as n, validateSsrEntry as o, getSsrServerEntryPath as r, isCallExpression as s, SSR_CLIENT_ENTRY_RELATIVE_PATHS as t, isMemberExpression as u };
83
+ export { validateSsrEntries as a, hasSsrEntry as i, SSR_SERVER_ENTRY_RELATIVE_PATHS as n, validateSsrEntry as o, getSsrServerEntryPath as r, SSR_CLIENT_ENTRY_RELATIVE_PATHS as t };
@@ -1,11 +1,11 @@
1
- import { a as join } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
2
  import { r as cliTitle } from "./output-CCH48AMM.mjs";
3
- import { c as getToken } from "./auth-B9_D6ygs.mjs";
4
- import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-CWNIPoXc.mjs";
5
- import { r as generateEnvTypes, t as findEnvFile } from "./env-types-CWDtqHgw.mjs";
6
- import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-BsFEXps5.mjs";
3
+ import { c as getToken } from "./auth-DLNN0D3Z.mjs";
4
+ import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-C0Fqu05O.mjs";
5
+ import { r as generateEnvTypes, t as findEnvFile } from "./env-types-C2_bIk_b.mjs";
6
+ import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-BB4GkLxn.mjs";
7
7
  import { N as note, O as intro, P as outro, j as log } from "./dist-Dn6nn2IU.mjs";
8
- import { n as PlatformClient } from "./client-PdAJ-F0t.mjs";
8
+ import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
9
9
  import { mkdirSync, writeFileSync } from "node:fs";
10
10
  //#region src/cli/env.ts
11
11
  async function runEnvCommand(root, args) {
@@ -26,12 +26,12 @@ async function runCheck(root, useRemoteSecrets) {
26
26
  const platform = readDeploymentPlatform(root);
27
27
  if (platform === "none") throw new Error("env: Deployment is disabled. Run `void init` to choose a platform.");
28
28
  if (platform === "cloudflare") {
29
- const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-BHNJVDbN.mjs");
29
+ const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-BipGMJ5O.mjs");
30
30
  remoteSecrets = await listCloudflareSecrets(resolveCloudflareOperationContext(root));
31
31
  } else {
32
32
  const token = getToken(root);
33
33
  if (!token) {
34
- log.error("--remote requires authentication. Run `void auth login` first.");
34
+ log.error("--remote requires authentication. Run `void account login` first.");
35
35
  process.exit(1);
36
36
  }
37
37
  const config = readProjectConfig(root);
@@ -10,9 +10,12 @@ import { AsyncLocalStorage } from "node:async_hooks";
10
10
  */
11
11
  const runtimeRequestContext = new AsyncLocalStorage();
12
12
  /** @internal Reuse a resource only within the current runtime request. */
13
- function getRuntimeRequestResource(key, initialize) {
13
+ function getRuntimeRequestResource(key, initialize, outsideScope) {
14
14
  const scope = runtimeRequestContext.getStore();
15
- if (!scope) throw new Error("env: Request-scoped resource is unavailable outside a runtime handler.");
15
+ if (!scope) {
16
+ if (outsideScope) return outsideScope();
17
+ throw new Error("env: Request-scoped resource is unavailable outside a runtime handler.");
18
+ }
16
19
  if (scope.resources.has(key)) return scope.resources.get(key);
17
20
  const resource = initialize();
18
21
  scope.resources.set(key, resource);
@@ -1,4 +1,4 @@
1
- import { a as join } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
2
  import { n as parseDotenvFile } from "./dotenv-VQxupEUv.mjs";
3
3
  import { readdirSync } from "node:fs";
4
4
  //#region src/shared/env.ts
@@ -1,5 +1,5 @@
1
- import { l as relative } from "./dist-4WkAWhWx.mjs";
2
- import { n as readProjectPaths } from "./project-paths-CKQ-Q5JS.mjs";
1
+ import { l as relative } from "./dist-BVqXeR_h.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
3
3
  import { i as voidWarn } from "./log-ChfPKsVd.mjs";
4
4
  import { existsSync } from "node:fs";
5
5
  //#region src/codegen/env-types.ts
@@ -1,8 +1,8 @@
1
- import { a as join, n as dirname, u as resolve } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join, n as dirname, u as resolve } from "./dist-BVqXeR_h.mjs";
2
2
  import { i as voidWarn } from "./log-ChfPKsVd.mjs";
3
- import { t as findEnvFile } from "./env-types-CWDtqHgw.mjs";
4
- import { a as loadLocalEnv, i as isClientEnvKey, r as findLegacyEnvFiles } from "./env-DX_v-Q-v.mjs";
5
- import { o as resolveWranglerArgv } from "./preset-Dowh9tTt.mjs";
3
+ import { t as findEnvFile } from "./env-types-C2_bIk_b.mjs";
4
+ import { a as loadLocalEnv, i as isClientEnvKey, r as findLegacyEnvFiles } from "./env-_v349JBd.mjs";
5
+ import { o as resolveWranglerArgv } from "./preset-UHj9ARyP.mjs";
6
6
  import { existsSync, readFileSync } from "node:fs";
7
7
  import { pathToFileURL } from "node:url";
8
8
  import { spawn } from "node:child_process";
@@ -1,2 +1,2 @@
1
- import { a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars, r as SelfHostSchemaError } from "./env-validation-BsFEXps5.mjs";
1
+ import { a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars, r as SelfHostSchemaError } from "./env-validation-BB4GkLxn.mjs";
2
2
  export { SelfHostSchemaError, computeInvalidEmittedKeys, deriveSelfHostSchemaFacts, readEmittedWorkerVars };
@@ -1,13 +1,13 @@
1
- import { a as join, l as relative, n as dirname } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join, l as relative, n as dirname } from "./dist-BVqXeR_h.mjs";
2
2
  import { r as cliTitle } from "./output-CCH48AMM.mjs";
3
- import { n as readProjectPaths } from "./project-paths-CKQ-Q5JS.mjs";
4
- import { m as readConfig, u as getDatabaseDialect } from "./config-Dxr6cTXn.mjs";
5
- import { n as ensureProjectTsconfig } from "./project-tsconfig-CwfqUnVp.mjs";
6
- import { n as readJournal, t as collectMigrations } from "./collect-DXHNWHcT.mjs";
3
+ import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
4
+ import { m as readConfig, u as getDatabaseDialect } from "./config-CafTW6Cz.mjs";
5
+ import { n as ensureProjectTsconfig } from "./project-tsconfig-B8GeM0RM.mjs";
6
+ import { n as readJournal, t as collectMigrations } from "./collect-DiTn9yr6.mjs";
7
7
  import { I as select, O as intro, P as outro, T as cancel, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
8
- import { t as writeDrizzleConfig } from "./config-BSe70f4T.mjs";
9
- import { r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-qNhV00PD.mjs";
10
- import { t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-CVEc3gE7.mjs";
8
+ import { t as writeDrizzleConfig } from "./config-D8MOgiQV.mjs";
9
+ import { r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-CIUwFpjB.mjs";
10
+ import { t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-BV4AzNul.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";
@@ -0,0 +1,2 @@
1
+ import { r as runGenCommand } from "./gen-Dz3X1Qab.mjs";
2
+ export { runGenCommand };
@@ -1,5 +1,5 @@
1
- import { a as join, n as dirname } from "./dist-4WkAWhWx.mjs";
2
- import { t as collectMigrations } from "./collect-DXHNWHcT.mjs";
1
+ import { a as join, n as dirname } from "./dist-BVqXeR_h.mjs";
2
+ import { t as collectMigrations } from "./collect-DiTn9yr6.mjs";
3
3
  import { n as openMigrationValidationDatabase } from "./sqlite-validation-BzKMWnO4.mjs";
4
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
5
5
  //#region src/drizzle/generate.ts
@@ -1,9 +1,9 @@
1
1
  import { c as import_picocolors } from "./output-CCH48AMM.mjs";
2
- import { c as getToken, d as openBrowser, n as createCodeChallenge, r as createCodeVerifier, t as awaitBrowserCallback } from "./auth-B9_D6ygs.mjs";
3
- import { o as readProjectConfig } from "./project-CWNIPoXc.mjs";
2
+ import { c as getToken, d as openBrowser, n as createCodeChallenge, r as createCodeVerifier, t as awaitBrowserCallback } from "./auth-DLNN0D3Z.mjs";
3
+ import { o as readProjectConfig } from "./project-C0Fqu05O.mjs";
4
4
  import { B as text, E as confirm, I as select, T as cancel, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
5
- import { n as PlatformClient, o as parsePlatformErrorBody, s as platformErrorMessage, t as PlatformApiError } from "./client-PdAJ-F0t.mjs";
6
- import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-Xvis70DG.mjs";
5
+ import { n as PlatformClient, o as parsePlatformErrorBody, s as platformErrorMessage, t as PlatformApiError } from "./client-QTl6ko_D.mjs";
6
+ import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-BG5ORGID.mjs";
7
7
  import { t as collectGitDeployMetadata } from "./git-metadata-D-gurjzG.mjs";
8
8
  import { randomBytes } from "node:crypto";
9
9
  //#region src/cli/github-cmd.ts
@@ -102,7 +102,7 @@ function formatConnection(connection) {
102
102
  async function runGithubCommand(root, args) {
103
103
  const token = getToken(root);
104
104
  if (!token) {
105
- log.error("Not logged in. Run `void auth login` first.");
105
+ log.error("Not logged in. Run `void account login` first.");
106
106
  process.exit(1);
107
107
  }
108
108
  const client = new PlatformClient(token, { root });
@@ -122,7 +122,7 @@ async function runGithubCommand(root, args) {
122
122
  *
123
123
  * If the account has no linked GitHub identity, the server returns a 403 with
124
124
  * the stable code `github_identity_required` (Task 3). Rather than telling the
125
- * user to `void auth login` (which risks forking into a second account), we run
125
+ * user to `void account login` (which risks forking into a second account), we run
126
126
  * the link flow inline and retry the install URL exactly once.
127
127
  *
128
128
  * `linkIdentity` is injectable so tests can supply a fake linker instead of
@@ -155,7 +155,7 @@ async function runInstall(root, client, linkIdentity = runGithubLink) {
155
155
  /**
156
156
  * Link the current Void account (the logged-in CLI token holder) to a GitHub
157
157
  * identity. Drives the platform's 3-endpoint link flow with a localhost +
158
- * PKCE handshake, mirroring `void auth login`.
158
+ * PKCE handshake, mirroring `void account login`.
159
159
  *
160
160
  * Exported so Task 5 can call it (e.g. when `github install` returns 403 for a
161
161
  * GitHub-less account, prompt to link and retry). The success path is
@@ -1,5 +1,5 @@
1
- import { a as join } from "./dist-4WkAWhWx.mjs";
2
- import { a as convertFallbacksConfig, c as convertRewritesConfig, f as isProtocolRelative, l as countSplats, n as VALID_REDIRECT_STATUSES, o as convertHeadersConfig, p as parseHostPrefixedSource, s as convertRedirectsConfig } from "./config-Dxr6cTXn.mjs";
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
+ import { a as convertFallbacksConfig, c as convertRewritesConfig, f as isProtocolRelative, l as countSplats, n as VALID_REDIRECT_STATUSES, o as convertHeadersConfig, p as parseHostPrefixedSource, s as convertRedirectsConfig } from "./config-CafTW6Cz.mjs";
3
3
  import { i as voidWarn } from "./log-ChfPKsVd.mjs";
4
4
  import { existsSync, readFileSync } from "node:fs";
5
5
  //#region src/cli/headers.ts
@@ -1,8 +1,8 @@
1
- import { a as join } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
2
  import { c as import_picocolors, l as sectionTitle, s as helpLine, t as categoryTitle } from "./output-CCH48AMM.mjs";
3
3
  import { N as note, P as outro } from "./dist-Dn6nn2IU.mjs";
4
- import { n as getPackageDir } from "./agents-gni4eqBu.mjs";
5
- import { t as OPERATOR_MAX_TIMEOUT_MS } from "./operator-client-A0iex2yi.mjs";
4
+ import { n as getPackageDir } from "./agents-B_pX_HmQ.mjs";
5
+ import { t as OPERATOR_MAX_TIMEOUT_MS } from "./operator-client-DUwumHpQ.mjs";
6
6
  import { readFileSync } from "node:fs";
7
7
  //#region src/cli/ascii.ts
8
8
  const asciiArts = [
@@ -747,6 +747,10 @@ const HELP_TREE = {
747
747
  command: "--require-email",
748
748
  description: "Fail instead of deploying without email when the mail domain is not set up (with --platform cloudflare)"
749
749
  },
750
+ {
751
+ command: "--atomic",
752
+ description: "Publish a Durable Object Worker without pre-traffic staging (Cloudflare only)"
753
+ },
750
754
  {
751
755
  command: "--debug",
752
756
  description: "Mirror the deploy log to stderr (always written to ~/.void/logs)"
@@ -772,8 +776,35 @@ const HELP_TREE = {
772
776
  ]
773
777
  },
774
778
  auth: {
775
- summary: "Log in, link login methods, log out, and inspect local auth state.",
776
- usage: ["void auth <command>"],
779
+ summary: "Authenticate with this project’s saved Cloudflare or Void destination. Without one, choose interactively or pass --platform.",
780
+ usage: ["void auth <login|status|logout> [--platform cloudflare|void]"],
781
+ commands: [
782
+ {
783
+ command: "login",
784
+ description: "Sign in to the selected destination"
785
+ },
786
+ {
787
+ command: "status",
788
+ description: "Show the selected destination’s identity"
789
+ },
790
+ {
791
+ command: "logout",
792
+ description: "Sign out of the selected destination"
793
+ }
794
+ ],
795
+ options: [{
796
+ command: "--platform <cloudflare|void>",
797
+ description: "Choose the destination explicitly"
798
+ }],
799
+ children: {
800
+ login: basicSubcommand("Sign in to the selected destination.", "void auth login [--platform cloudflare|void]"),
801
+ status: basicSubcommand("Show the selected destination’s identity.", "void auth status [--platform cloudflare|void]"),
802
+ logout: basicSubcommand("Sign out of the selected destination.", "void auth logout [--platform cloudflare|void]")
803
+ }
804
+ },
805
+ account: {
806
+ summary: "Manage your Void platform account.",
807
+ usage: ["void account <command>"],
777
808
  commands: [
778
809
  {
779
810
  command: "login",
@@ -797,11 +828,11 @@ const HELP_TREE = {
797
828
  }
798
829
  ],
799
830
  children: {
800
- login: basicSubcommand("Log in with an enabled platform login method.", "void auth login"),
801
- link: basicSubcommand("Sign in again, then verify and link another login method to your existing account.", "void auth link [connection-id]"),
802
- logout: basicSubcommand("Log out and remove credentials.", "void auth logout"),
803
- whoami: basicSubcommand("Show the logged-in username.", "void auth whoami"),
804
- token: basicSubcommand("Copy auth token to clipboard.", "void auth token")
831
+ login: basicSubcommand("Log in with an enabled platform login method.", "void account login"),
832
+ link: basicSubcommand("Sign in again, then verify and link another login method to your existing account.", "void account link [connection-id]"),
833
+ logout: basicSubcommand("Log out and remove credentials.", "void account logout"),
834
+ whoami: basicSubcommand("Show the logged-in username.", "void account whoami"),
835
+ token: basicSubcommand("Copy auth token to clipboard.", "void account token")
805
836
  }
806
837
  },
807
838
  cloudflare: {
@@ -2086,6 +2117,10 @@ function printGlobalHelp() {
2086
2117
  "",
2087
2118
  ...globalCommandGroup("auth"),
2088
2119
  "",
2120
+ ...globalCommandGroup("account"),
2121
+ "",
2122
+ ...globalCommandGroup("cloudflare"),
2123
+ "",
2089
2124
  ...globalCommandGroup("platform"),
2090
2125
  "",
2091
2126
  ...globalCommandGroup("project"),
@@ -2124,7 +2159,7 @@ function printGlobalHelp() {
2124
2159
  helpLine("void help <command>", "Show command-specific help"),
2125
2160
  helpLine("void <command> --help", "Show command-specific help")
2126
2161
  ].join("\n"), sectionTitle("Commands"));
2127
- note([helpLine("VOID_TOKEN", "Auth token (or use `void auth login`)"), helpLine("VOID_PROJECT", "Deploy target project name override")].join("\n"), sectionTitle("Environment"));
2162
+ note([helpLine("VOID_TOKEN", "Auth token (or use `void account login`)"), helpLine("VOID_PROJECT", "Deploy target project name override")].join("\n"), sectionTitle("Environment"));
2128
2163
  outro("https://void.cloud");
2129
2164
  }
2130
2165
  function printVoidHeader() {
@@ -0,0 +1,2 @@
1
+ import { r as printHelpPage } from "./help-DC7gdz7L.mjs";
2
+ export { printHelpPage };