void 0.21.2 → 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 (184) hide show
  1. package/dist/{account-cmd-D8OC-U7y.mjs → account-cmd-DGt9cpRe.mjs} +4 -4
  2. package/dist/{agents-gni4eqBu.mjs → agents-B_pX_HmQ.mjs} +1 -1
  3. package/dist/ast-CPGPjb0V.mjs +18 -0
  4. package/dist/{auth-CAw7zHqj.mjs → auth-CZuiVsFh.mjs} +1 -1
  5. package/dist/{auth-B9_D6ygs.mjs → auth-DLNN0D3Z.mjs} +4 -4
  6. package/dist/{auth-link-BYFeMJAp.mjs → auth-link-Cl9vOuf7.mjs} +4 -4
  7. package/dist/{auth-router-OHZNmrb_.mjs → auth-router-D4ZcMUSf.mjs} +6 -6
  8. package/dist/{better-auth-shared-BoVwA5Vm.d.mts → better-auth-shared-BVkjZ3vM.d.mts} +1 -0
  9. package/dist/{better-auth-shared-syGYYmnY.mjs → better-auth-shared-rsBGBvWJ.mjs} +3 -6
  10. package/dist/{build-cmd-Bft7EY51.mjs → build-cmd-Dpt0jd-x.mjs} +4 -4
  11. package/dist/{cache-CKV1Gz2w.mjs → cache-7_UeZdTk.mjs} +4 -4
  12. package/dist/{cancel-deploy-BAKmkX4f.mjs → cancel-deploy-D23R1RXT.mjs} +3 -3
  13. package/dist/{cf-access-rAZxzMkL.mjs → cf-access-P0iZnu0q.mjs} +1 -1
  14. package/dist/{cf-build-output-CTdlo6Rt.mjs → cf-build-output-CGT03qCD.mjs} +2 -2
  15. package/dist/cli/cf-compat.mjs +2 -2
  16. package/dist/cli/cli.mjs +47 -43
  17. package/dist/cli/env-schema-probe.mjs +3 -3
  18. package/dist/client-4cDVv7BO.mjs +2 -0
  19. package/dist/{client-PdAJ-F0t.mjs → client-QTl6ko_D.mjs} +28 -5
  20. package/dist/{cloudflare-auth-BCmTc1X_.mjs → cloudflare-auth-B9jPCkV2.mjs} +1 -1
  21. package/dist/{cloudflare-cmd-D6PrKn7o.mjs → cloudflare-cmd-BjNxR1XF.mjs} +3 -3
  22. package/dist/{cloudflare-connect-DloREDlc.mjs → cloudflare-connect-CCUozPOe.mjs} +3 -3
  23. package/dist/{cloudflare-operations-BHNJVDbN.mjs → cloudflare-operations-BipGMJ5O.mjs} +1 -1
  24. package/dist/{cloudflare-operations-CPEdHYhM.mjs → cloudflare-operations-sMZXpk_S.mjs} +4 -4
  25. package/dist/collect-DLyFDiKW.mjs +2 -0
  26. package/dist/{collect-DXHNWHcT.mjs → collect-DiTn9yr6.mjs} +1 -1
  27. package/dist/config-0acf1oys.mjs +2 -0
  28. package/dist/{config-DywxBLQC.d.mts → config-CF69HgXc.d.mts} +7 -0
  29. package/dist/{config-Dxr6cTXn.mjs → config-CafTW6Cz.mjs} +12 -1
  30. package/dist/{config-BSe70f4T.mjs → config-D8MOgiQV.mjs} +3 -3
  31. package/dist/config-DPByhVck.mjs +32 -0
  32. package/dist/config-entry.d.mts +1 -1
  33. package/dist/{config--T87TD8T.mjs → config-s7Xj7tPb.mjs} +1 -1
  34. package/dist/{config-write-y3CBI_ux.mjs → config-write-BSduPMY8.mjs} +3 -3
  35. package/dist/{connect-DLx1pRYk.mjs → connect-4Ph5Y0QE.mjs} +7 -7
  36. package/dist/{create-project-JV9-6ICF.mjs → create-project-BniEV0OW.mjs} +1 -1
  37. package/dist/{create-project-BZBl_gQ0.mjs → create-project-DBfFSZKY.mjs} +4 -4
  38. package/dist/{db-B98_UV4H.mjs → db-DzJRn-qz.mjs} +123 -55
  39. package/dist/{delete-BEEyqlwd.mjs → delete-D6dZ9B6B.mjs} +4 -4
  40. package/dist/deploy-BH0grP4y.mjs +2 -0
  41. package/dist/{deploy-Bsymb0_c.mjs → deploy-CsMJrPfM.mjs} +520 -260
  42. package/dist/discover-AMCBXivQ.mjs +2 -0
  43. package/dist/{discover-C4O6YxVS.mjs → discover-BcPPiF1o.mjs} +2 -2
  44. package/dist/{dist-4WkAWhWx.mjs → dist-BVqXeR_h.mjs} +9 -1
  45. package/dist/dist-_UUlL6bg.mjs +2 -0
  46. package/dist/{domain-Av2AkLQP.mjs → domain-Dmhvb2oU.mjs} +4 -4
  47. package/dist/{email-C5kaZXzJ.mjs → email--tEtMoj_.mjs} +1 -1
  48. package/dist/{email-CUqa6TtH.mjs → email-BRKOG2RG.mjs} +9 -9
  49. package/dist/{entry-DdRFGK0y.mjs → entry-CF5wvH4w.mjs} +4 -21
  50. package/dist/{env-D4RIGEzz.mjs → env-Csi-tMbT.mjs} +7 -7
  51. package/dist/{env-Yz4HcvHs.mjs → env-D5liuQYR.mjs} +5 -2
  52. package/dist/{env-DX_v-Q-v.mjs → env-_v349JBd.mjs} +1 -1
  53. package/dist/{env-types-CWDtqHgw.mjs → env-types-C2_bIk_b.mjs} +2 -2
  54. package/dist/{env-validation-BsFEXps5.mjs → env-validation-BB4GkLxn.mjs} +4 -4
  55. package/dist/{env-validation-DIDGM7h4.mjs → env-validation-BXge7uyK.mjs} +1 -1
  56. package/dist/{gen-pg-Ojg8Y.mjs → gen-Dz3X1Qab.mjs} +8 -8
  57. package/dist/gen-Vnv2f65C.mjs +2 -0
  58. package/dist/{generate-C0VY6RVf.mjs → generate-GDbL7sUr.mjs} +2 -2
  59. package/dist/{github-cmd-BEK4VprE.mjs → github-cmd-BED3_9JD.mjs} +4 -4
  60. package/dist/{headers-B_HBMgi0.mjs → headers-BOg_velo.mjs} +2 -2
  61. package/dist/{help-iQOt7WHk.mjs → help-DC7gdz7L.mjs} +7 -3
  62. package/dist/help-DQMfeKMz.mjs +2 -0
  63. package/dist/index.mjs +132 -158
  64. package/dist/{init-D5niUPAz.mjs → init-CRGDXzVC.mjs} +105 -289
  65. package/dist/{link-3lGrfXzd.mjs → link-CsHOinF7.mjs} +5 -5
  66. package/dist/{list-CVjGr_C6.mjs → list-CDb-4bZ1.mjs} +5 -5
  67. package/dist/{local-d1-DzykTWY8.mjs → local-d1-CC8sKFGu.mjs} +3 -3
  68. package/dist/{login-BgQJzxAl.mjs → login-BQyISZuW.mjs} +3 -3
  69. package/dist/login-r2gL8l7B.mjs +2 -0
  70. package/dist/{logs-DbzD-QDf.mjs → logs-BdfiOezj.mjs} +4 -4
  71. package/dist/{migrate-BV8qHiCb.mjs → migrate-B8KuoYsO.mjs} +69 -44
  72. package/dist/migrate-TsHGBnDA.mjs +2 -0
  73. package/dist/{node-Cupyf7-s.mjs → node-BM43oz4G.mjs} +5 -5
  74. package/dist/{operator-auth-BkVgJqv-.mjs → operator-auth-8KnOVXVd.mjs} +2 -2
  75. package/dist/{operator-client-A0iex2yi.mjs → operator-client-DUwumHpQ.mjs} +2 -2
  76. package/dist/{operator-cmd-CR6Lxzt0.mjs → operator-cmd-Co-PeaeD.mjs} +6 -6
  77. package/dist/{package-json-iCbMg5XF.mjs → package-json-DXfiT1jV.mjs} +1 -1
  78. package/dist/pages/index.d.mts +1 -1
  79. package/dist/pages/index.mjs +11 -6
  80. package/dist/pages/islands-plugin.d.mts +271 -1
  81. package/dist/pages/islands-plugin.mjs +95 -18
  82. package/dist/parse-filename-DioPHiR9.mjs +77 -0
  83. package/dist/{platform-auth-config-De7BqRJm.mjs → platform-auth-config-TSw8edHw.mjs} +5 -5
  84. package/dist/{platform-auth-protection-Dcat-6zu.mjs → platform-auth-protection-Ba1XqGhn.mjs} +6 -6
  85. package/dist/{platform-auth-recovery-C9gsM640.mjs → platform-auth-recovery-BkT3EsF2.mjs} +5 -5
  86. package/dist/{platform-cmd-Cl9Uhzru.mjs → platform-cmd-C8OqhqPt.mjs} +1 -1
  87. package/dist/{platform-cmd-CudokNIg.mjs → platform-cmd-CRSKfu8k.mjs} +5 -5
  88. package/dist/{platform-domain-Ckpd2kXw.mjs → platform-domain-j9YCXRm6.mjs} +3 -3
  89. package/dist/{platform-lifecycle-DVzM2T4j.mjs → platform-lifecycle-78H0XQUA.mjs} +277 -229
  90. package/dist/{platform-lifecycle-DlpiGcjr.mjs → platform-lifecycle-DDc9zCeJ.mjs} +1 -1
  91. package/dist/{platform-management-ibuS1as0.mjs → platform-management-6w8-DUjC.mjs} +2 -2
  92. package/dist/{platform-management-44Bxd3YC.mjs → platform-management-DzKNsMlt.mjs} +1 -1
  93. package/dist/{platform-recovery-D_KmvdSk.mjs → platform-recovery-Do8VOyDE.mjs} +3 -3
  94. package/dist/{platform-registry-BJbgZLS1.mjs → platform-registry-QBa4DK32.mjs} +1 -1
  95. package/dist/{plugin-inference-DsvtJLll.mjs → plugin-inference-BMfKRSqE.mjs} +188 -85
  96. package/dist/prepare-BZXkjdNe.mjs +2 -0
  97. package/dist/{prepare-pcWcxSCh.mjs → prepare-C3kt3Rst.mjs} +11 -11
  98. package/dist/{prepare-_T-Haxrr.mjs → prepare-DyZ-Yok5.mjs} +1 -1
  99. package/dist/{prerender-render-Cf_WDE9W.mjs → prerender-render-D9qbLs2f.mjs} +1 -1
  100. package/dist/prerender-render.mjs +1 -1
  101. package/dist/{preset-Dowh9tTt.mjs → preset-UHj9ARyP.mjs} +4 -4
  102. package/dist/{project-BEBFDFLz.mjs → project-BuUwfj6f.mjs} +1 -1
  103. package/dist/{project-CWNIPoXc.mjs → project-C0Fqu05O.mjs} +2 -2
  104. package/dist/{project-cmd-BuF9doku.mjs → project-cmd-B44I8J_W.mjs} +15 -15
  105. package/dist/{project-paths-CKQ-Q5JS.mjs → project-paths-GgcMozYz.mjs} +1 -1
  106. package/dist/{project-team-B1Tia8vd.mjs → project-team-BkbYIsXN.mjs} +4 -4
  107. package/dist/{project-token-Bwxjf4y6.mjs → project-token-C8xEEQnB.mjs} +4 -4
  108. package/dist/{project-tsconfig-CwfqUnVp.mjs → project-tsconfig-B8GeM0RM.mjs} +2 -2
  109. package/dist/{provision-Cck2m3jJ.mjs → provision-BhreDAOS.mjs} +141 -78
  110. package/dist/provision-DNtrtaVD.mjs +3 -0
  111. package/dist/{requests-CphRF98D.mjs → requests-DFyhBMaf.mjs} +3 -3
  112. package/dist/{resolve-project-Xvis70DG.mjs → resolve-project-BG5ORGID.mjs} +1 -1
  113. package/dist/resolve-project-DtbidV4y.mjs +2 -0
  114. package/dist/{rollback-BYHJV2yD.mjs → rollback-DHHxXZiS.mjs} +4 -4
  115. package/dist/{route-types-Id82-veQ.mjs → route-types-Clm4WD0B.mjs} +39 -16
  116. package/dist/{runner-CQs_cDSG.mjs → runner-B8wXwWlo.mjs} +1 -1
  117. package/dist/{runner-mysql-1o47achK.mjs → runner-mysql-CEG5JozK.mjs} +1 -1
  118. package/dist/{runner-mysql-BhwMk2Bm.mjs → runner-mysql-DmWchSWJ.mjs} +1 -1
  119. package/dist/{runner-BGVsGgkb.mjs → runner-p-dMs2UN.mjs} +3 -3
  120. package/dist/{runner-pg-D7z01mQS.mjs → runner-pg-Bh4AgZdj.mjs} +1 -1
  121. package/dist/{runner-pg-CJ_JeGF6.mjs → runner-pg-D4OPlil-.mjs} +1 -1
  122. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  123. package/dist/runtime/better-auth-mysql.mjs +1 -1
  124. package/dist/runtime/better-auth-pg.d.mts +1 -1
  125. package/dist/runtime/better-auth-pg.mjs +1 -1
  126. package/dist/runtime/better-auth.d.mts +1 -1
  127. package/dist/runtime/better-auth.mjs +2 -2
  128. package/dist/runtime/db.mjs +8 -5
  129. package/dist/runtime/durable.mjs +1 -1
  130. package/dist/runtime/email/testing.mjs +1 -1
  131. package/dist/runtime/env-public.mjs +1 -1
  132. package/dist/runtime/env.d.mts +1 -1
  133. package/dist/runtime/env.mjs +1 -1
  134. package/dist/runtime/kv.mjs +1 -1
  135. package/dist/runtime/live-server.mjs +38 -23
  136. package/dist/runtime/queues.mjs +1 -1
  137. package/dist/runtime/sandbox.mjs +1 -1
  138. package/dist/runtime/storage.mjs +1 -1
  139. package/dist/runtime/ws-server.d.mts +1 -1
  140. package/dist/runtime/ws-server.mjs +1 -1
  141. package/dist/{scan-DJbooZm2.mjs → scan-4tfN-PSn.mjs} +113 -99
  142. package/dist/{scan-DdDvRCU1.mjs → scan-ClYmX3sa.mjs} +35 -137
  143. package/dist/{secret-Rt9c4Ttw.mjs → secret-DN9sSNiV.mjs} +6 -6
  144. package/dist/{skills-B-690E7h.mjs → skills-O6FUaizK.mjs} +2 -2
  145. package/dist/sveltekit.mjs +1 -1
  146. package/dist/{validate-qNhV00PD.mjs → validate-CIUwFpjB.mjs} +2 -2
  147. package/dist/validate-EKmJWxmy.mjs +2 -0
  148. package/dist/{wrangler-D01qs6VB.mjs → wrangler-BymcxrRa.mjs} +3 -3
  149. package/dist/{yarn-pnp-CVEc3gE7.mjs → yarn-pnp-BV4AzNul.mjs} +1 -1
  150. package/package.json +7 -7
  151. package/schema.json +18 -0
  152. package/skills/void/docs/guide/app-types.md +1 -1
  153. package/skills/void/docs/guide/auth.md +2 -2
  154. package/skills/void/docs/guide/database/d1.md +6 -0
  155. package/skills/void/docs/guide/durable-state.md +1 -1
  156. package/skills/void/docs/guide/edge/rewrites.md +2 -3
  157. package/skills/void/docs/guide/env-migration.md +1 -1
  158. package/skills/void/docs/guide/pages-routing/markdown.md +1 -1
  159. package/skills/void/docs/guide/platform/development/local.md +1 -1
  160. package/skills/void/docs/guide/platform/installation/prerequisites.md +2 -2
  161. package/skills/void/docs/guide/platform/installation/setup.md +1 -1
  162. package/skills/void/docs/guide/server-routing.md +2 -3
  163. package/skills/void/docs/guide/ssr.md +4 -10
  164. package/skills/void/docs/guide/websockets.md +1 -1
  165. package/skills/void/docs/integrations/cloudflare.md +2 -0
  166. package/skills/void/docs/reference/api.md +1 -1
  167. package/skills/void/docs/reference/cli.md +9 -3
  168. package/skills/void/docs/reference/config.md +11 -0
  169. package/skills/void/docs/reference/resource-inference.md +1 -1
  170. package/dist/client-DAAivdid.mjs +0 -2
  171. package/dist/collect-DAUItMDS.mjs +0 -2
  172. package/dist/config-DDIFxQYx.mjs +0 -2
  173. package/dist/config-uP7ZDtVZ.mjs +0 -21
  174. package/dist/deploy-CsjbRNyv.mjs +0 -2
  175. package/dist/discover-BBzDZe_o.mjs +0 -2
  176. package/dist/dist-D7-nEOXi.mjs +0 -2
  177. package/dist/gen-B87rlalt.mjs +0 -2
  178. package/dist/help-r_vrpH_d.mjs +0 -2
  179. package/dist/login-Bz0zEPoy.mjs +0 -2
  180. package/dist/migrate-BXY3B3m7.mjs +0 -2
  181. package/dist/prepare-D4CkM3_v.mjs +0 -2
  182. package/dist/provision-CNgEBkVA.mjs +0 -3
  183. package/dist/resolve-project-BTotl8Nn.mjs +0 -2
  184. package/dist/validate-DqJ33oHj.mjs +0 -2
@@ -1,13 +1,13 @@
1
- import { c as getToken, p as removeToken } from "./auth-B9_D6ygs.mjs";
1
+ import { c as getToken, p as removeToken } from "./auth-DLNN0D3Z.mjs";
2
2
  import { j as log } from "./dist-Dn6nn2IU.mjs";
3
- import { n as PlatformClient } from "./client-PdAJ-F0t.mjs";
4
- import { n as runLoginCommand } from "./login-BgQJzxAl.mjs";
3
+ import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
4
+ import { n as runLoginCommand } from "./login-BQyISZuW.mjs";
5
5
  import { execSync } from "node:child_process";
6
6
  //#region src/cli/account-cmd.ts
7
7
  async function runAccountCommand(root, args) {
8
8
  switch (args.subcommand) {
9
9
  case "login": return runLoginCommand(root);
10
- case "link": return import("./auth-link-BYFeMJAp.mjs").then(({ runAuthLink }) => runAuthLink(root, args.connectionId));
10
+ case "link": return import("./auth-link-Cl9vOuf7.mjs").then(({ runAuthLink }) => runAuthLink(root, args.connectionId));
11
11
  case "logout":
12
12
  if (removeToken(root)) log.success("Logged out.");
13
13
  else log.info("Not logged in.");
@@ -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 { existsSync, readFileSync } from "node:fs";
3
3
  import { fileURLToPath } from "node:url";
4
4
  //#region src/cli/agents.ts
@@ -0,0 +1,18 @@
1
+ //#region src/shared/ast.ts
2
+ function isIdentifier(node) {
3
+ return node?.type === "Identifier" && typeof node.name === "string";
4
+ }
5
+ function isLiteral(node) {
6
+ return node?.type === "Literal";
7
+ }
8
+ function isMemberExpression(node) {
9
+ return node?.type === "MemberExpression";
10
+ }
11
+ function isCallExpression(node) {
12
+ return node?.type === "CallExpression";
13
+ }
14
+ function isObjectExpression(node) {
15
+ return node?.type === "ObjectExpression";
16
+ }
17
+ //#endregion
18
+ export { isObjectExpression as a, isMemberExpression as i, isIdentifier as n, isLiteral as r, isCallExpression as t };
@@ -1,2 +1,2 @@
1
- import { a as getApiUrl, h as runPlatformLogin, s as getSiteDomain } from "./auth-B9_D6ygs.mjs";
1
+ import { a as getApiUrl, h as runPlatformLogin, s as getSiteDomain } from "./auth-DLNN0D3Z.mjs";
2
2
  export { getApiUrl, getSiteDomain, runPlatformLogin };
@@ -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 { t as cfAccessHeaders } from "./cf-access-DRsQRe6k.mjs";
3
- import { S as writeKeyringPassword, b as deleteKeyringPassword, c as platformCredentialAccount, o as listPlatformConnections, r as getActivePlatformConnection, s as normalizePlatformApiUrl, x as readKeyringPassword } from "./platform-registry-BJbgZLS1.mjs";
4
- import { t as ensureCloudflaredToken } from "./cf-access-rAZxzMkL.mjs";
5
- import { a as readProjectApplicationDomain, f as VOID_CLOUD_PLATFORM, m as readLegacyHostedPlatformSelection, n as isLegacyVoidCloudProject, p as VOID_CLOUD_STAGING_PLATFORM, r as isVoidInternalStaging, s as readProjectPlatformUrl } from "./project-CWNIPoXc.mjs";
3
+ import { S as writeKeyringPassword, b as deleteKeyringPassword, c as platformCredentialAccount, o as listPlatformConnections, r as getActivePlatformConnection, s as normalizePlatformApiUrl, x as readKeyringPassword } from "./platform-registry-QBa4DK32.mjs";
4
+ import { t as ensureCloudflaredToken } from "./cf-access-P0iZnu0q.mjs";
5
+ import { a as readProjectApplicationDomain, f as VOID_CLOUD_PLATFORM, m as readLegacyHostedPlatformSelection, n as isLegacyVoidCloudProject, p as VOID_CLOUD_STAGING_PLATFORM, r as isVoidInternalStaging, s as readProjectPlatformUrl } from "./project-C0Fqu05O.mjs";
6
6
  import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
7
7
  import { createHash, randomBytes } from "node:crypto";
8
8
  import { homedir } from "node:os";
@@ -1,8 +1,8 @@
1
- import { a as getApiUrl, c as getToken, d as openBrowser, g as savePlatformToken, h as runPlatformLogin } from "./auth-B9_D6ygs.mjs";
1
+ import { a as getApiUrl, c as getToken, d as openBrowser, g as savePlatformToken, h as runPlatformLogin } from "./auth-DLNN0D3Z.mjs";
2
2
  import { j as log } from "./dist-Dn6nn2IU.mjs";
3
- import { n as PlatformClient } from "./client-PdAJ-F0t.mjs";
4
- import { r as selectPlatformLoginMethod } from "./login-BgQJzxAl.mjs";
5
- import { t as discoverPlatform } from "./platform-cmd-CudokNIg.mjs";
3
+ import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
4
+ import { r as selectPlatformLoginMethod } from "./login-BQyISZuW.mjs";
5
+ import { t as discoverPlatform } from "./platform-cmd-CRSKfu8k.mjs";
6
6
  import { execFile } from "node:child_process";
7
7
  //#region src/cli/auth-link.ts
8
8
  async function runAuthLink(root, connectionId) {
@@ -1,5 +1,5 @@
1
- import { o as listPlatformConnections } from "./platform-registry-BJbgZLS1.mjs";
2
- import { i as readDeploymentPlatform } from "./project-CWNIPoXc.mjs";
1
+ import { o as listPlatformConnections } from "./platform-registry-QBa4DK32.mjs";
2
+ import { i as readDeploymentPlatform } from "./project-C0Fqu05O.mjs";
3
3
  import { I as select, W as isCancel } from "./dist-Dn6nn2IU.mjs";
4
4
  //#region src/cli/auth-router.ts
5
5
  async function chooseDestination(root, args, interactive) {
@@ -37,7 +37,7 @@ async function chooseDestination(root, args, interactive) {
37
37
  }
38
38
  async function runAuthRouter(root, args, interactive = Boolean(process.stdin.isTTY)) {
39
39
  if (args.subcommand === "link") {
40
- const { runAccountCommand } = await import("./account-cmd-D8OC-U7y.mjs");
40
+ const { runAccountCommand } = await import("./account-cmd-DGt9cpRe.mjs");
41
41
  await runAccountCommand(root, {
42
42
  subcommand: "link",
43
43
  ...args.connectionId ? { connectionId: args.connectionId } : {}
@@ -45,17 +45,17 @@ async function runAuthRouter(root, args, interactive = Boolean(process.stdin.isT
45
45
  return;
46
46
  }
47
47
  if (args.subcommand === "token") {
48
- const { runAccountCommand } = await import("./account-cmd-D8OC-U7y.mjs");
48
+ const { runAccountCommand } = await import("./account-cmd-DGt9cpRe.mjs");
49
49
  await runAccountCommand(root, { subcommand: "token" });
50
50
  return;
51
51
  }
52
52
  const destination = await chooseDestination(root, args, interactive);
53
53
  if (destination.platform === "cloudflare") {
54
- const { runCloudflareCommand } = await import("./cloudflare-cmd-D6PrKn7o.mjs");
54
+ const { runCloudflareCommand } = await import("./cloudflare-cmd-BjNxR1XF.mjs");
55
55
  await runCloudflareCommand(root, { subcommand: args.subcommand === "whoami" || args.subcommand === "status" ? "status" : args.subcommand });
56
56
  return;
57
57
  }
58
- const { runAccountCommand } = await import("./account-cmd-D8OC-U7y.mjs");
58
+ const { runAccountCommand } = await import("./account-cmd-DGt9cpRe.mjs");
59
59
  const subcommand = args.subcommand === "status" ? "whoami" : args.subcommand;
60
60
  if (!destination.apiUrl) {
61
61
  await runAccountCommand(root, { subcommand });
@@ -35,6 +35,7 @@ type VoidAuthRuntimeOptions = {
35
35
  dialect: VoidAuthDialect;
36
36
  providers: Array<VoidAuthProvider> | null;
37
37
  userConfig?: VoidAuthConfig;
38
+ dev?: boolean;
38
39
  };
39
40
  type VoidAuthEnv = Record<string, unknown> & {
40
41
  DB?: D1Database;
@@ -3,13 +3,10 @@ import { t as authContext } from "./auth-3sGB0zJ1.mjs";
3
3
  import { randomBytes, scrypt, timingSafeEqual } from "node:crypto";
4
4
  import { betterAuth } from "better-auth";
5
5
  //#region src/runtime/better-auth-shared.ts
6
- function isLocalHost(hostname) {
7
- return hostname === "localhost" || hostname === "127.0.0.1" || hostname.endsWith(".local");
8
- }
9
- function resolveSecret(request, env) {
6
+ function resolveSecret(env, dev) {
10
7
  const explicit = typeof env.BETTER_AUTH_SECRET === "string" && env.BETTER_AUTH_SECRET.length > 0 ? env.BETTER_AUTH_SECRET : void 0;
11
8
  if (explicit) return explicit;
12
- if (isLocalHost(new URL(request.url).hostname)) return "void-dev-better-auth-secret-1234567890";
9
+ if (dev) return "void-dev-better-auth-secret-1234567890";
13
10
  throw new Error("auth: Missing Better Auth secret. Set BETTER_AUTH_SECRET.");
14
11
  }
15
12
  function readEnvString(env, ...keys) {
@@ -125,7 +122,7 @@ function createVoidAuthRuntime(dialect, resolveDatabase, runVoidAuthMigrations)
125
122
  const defaults = {
126
123
  baseURL: origin,
127
124
  basePath: "/api/auth",
128
- secret: resolveSecret(request, env),
125
+ secret: resolveSecret(env, runtime.dev === true),
129
126
  database,
130
127
  ...emailAndPassword ? { emailAndPassword } : {},
131
128
  ...socialProviders ? { socialProviders } : {},
@@ -1,9 +1,9 @@
1
1
  import { a as dim, c as import_picocolors, r as cliTitle } from "./output-CCH48AMM.mjs";
2
- import { c as getToken } from "./auth-B9_D6ygs.mjs";
3
- import { o as readProjectConfig } from "./project-CWNIPoXc.mjs";
2
+ import { c as getToken } from "./auth-DLNN0D3Z.mjs";
3
+ import { o as readProjectConfig } from "./project-C0Fqu05O.mjs";
4
4
  import { O as intro, P as outro, j as log } from "./dist-Dn6nn2IU.mjs";
5
- import { n as PlatformClient, 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, t as PlatformApiError } from "./client-QTl6ko_D.mjs";
6
+ import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-BG5ORGID.mjs";
7
7
  import { appendFileSync, writeFileSync } from "node:fs";
8
8
  //#region src/cli/build-cmd.ts
9
9
  const POLL_MS = 1e3;
@@ -1,9 +1,9 @@
1
1
  import { a as dim, i as createSpinner, r as cliTitle } from "./output-CCH48AMM.mjs";
2
- import { c as getToken } from "./auth-B9_D6ygs.mjs";
3
- import { o as readProjectConfig } from "./project-CWNIPoXc.mjs";
2
+ import { c as getToken } from "./auth-DLNN0D3Z.mjs";
3
+ import { o as readProjectConfig } from "./project-C0Fqu05O.mjs";
4
4
  import { O as intro, P as outro, j as log } from "./dist-Dn6nn2IU.mjs";
5
- import { n as PlatformClient } from "./client-PdAJ-F0t.mjs";
6
- import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-Xvis70DG.mjs";
5
+ import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
6
+ import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-BG5ORGID.mjs";
7
7
  //#region src/cli/cache.ts
8
8
  async function runPurgeCacheCommand(root, projectSlug) {
9
9
  console.log();
@@ -1,8 +1,8 @@
1
1
  import { r as cliTitle } from "./output-CCH48AMM.mjs";
2
- import { c as getToken } from "./auth-B9_D6ygs.mjs";
3
- import { o as readProjectConfig } from "./project-CWNIPoXc.mjs";
2
+ import { c as getToken } from "./auth-DLNN0D3Z.mjs";
3
+ import { o as readProjectConfig } from "./project-C0Fqu05O.mjs";
4
4
  import { E as confirm, O as intro, P as outro, W as isCancel, 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/cancel-deploy.ts
7
7
  const ACTIVE_STATUSES = /* @__PURE__ */ new Set([
8
8
  "pending",
@@ -1,5 +1,5 @@
1
1
  import { n as isVoidAccessGatedUrl, t as cfAccessHeaders } from "./cf-access-DRsQRe6k.mjs";
2
- import { S as writeKeyringPassword, c as platformCredentialAccount, s as normalizePlatformApiUrl, x as readKeyringPassword } from "./platform-registry-BJbgZLS1.mjs";
2
+ import { S as writeKeyringPassword, c as platformCredentialAccount, s as normalizePlatformApiUrl, x as readKeyringPassword } from "./platform-registry-QBa4DK32.mjs";
3
3
  import { spawnSync } from "node:child_process";
4
4
  //#region src/cli/cf-access.ts
5
5
  const ACCESS_KEYRING_SERVICE = "dev.void.cli.access";
@@ -1,10 +1,10 @@
1
- import { a as join, i as isAbsolute, l as relative, n as dirname, r as extname, t as basename, u as resolve } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join, i as isAbsolute, l as relative, n as dirname, r as extname, t as basename, u as resolve } from "./dist-BVqXeR_h.mjs";
2
2
  import { copyFileSync, cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, realpathSync, rmSync, symlinkSync, writeFileSync } from "node:fs";
3
3
  import { fileURLToPath, pathToFileURL } from "node:url";
4
+ import { build } from "vite";
4
5
  import { tmpdir } from "node:os";
5
6
  import { spawnSync } from "node:child_process";
6
7
  import { isDeepStrictEqual } from "node:util";
7
- import { build } from "vite";
8
8
  import { getWorkerBundleDir, normalizeDirectoryName, readBuildOutput, writeAssets, writeContainerConfig, writeRootConfig, writeWorkerConfig } from "@cloudflare/build-output-utils";
9
9
  import { InputConfigSchema, OutputContainerSchema } from "@cloudflare/config";
10
10
  import ignore from "ignore";
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { a as join, n as dirname, u as resolve } from "../dist-4WkAWhWx.mjs";
3
- import { t as prepareCfBuildOutput } from "../cf-build-output-CTdlo6Rt.mjs";
2
+ import { a as join, n as dirname, u as resolve } from "../dist-BVqXeR_h.mjs";
3
+ import { t as prepareCfBuildOutput } from "../cf-build-output-CGT03qCD.mjs";
4
4
  import { copyFileSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { tmpdir } from "node:os";
package/dist/cli/cli.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { a as join } from "../dist-4WkAWhWx.mjs";
2
+ import { a as join } from "../dist-BVqXeR_h.mjs";
3
3
  import { j as log } from "../dist-Dn6nn2IU.mjs";
4
- import { n as getPackageDir } from "../agents-gni4eqBu.mjs";
4
+ import { n as getPackageDir } from "../agents-B_pX_HmQ.mjs";
5
5
  import { t as formatCloudflareUserMessage } from "../cloudflare-user-output-Q-k0QoNQ.mjs";
6
- import { a as operatorGroups, i as printVoidHeader, n as printGlobalHelp, o as parseOperatorArgs, r as printHelpPage, t as getHelpPath } from "../help-iQOt7WHk.mjs";
7
- import { r as OperatorClientError } from "../operator-client-A0iex2yi.mjs";
6
+ import { a as operatorGroups, i as printVoidHeader, n as printGlobalHelp, o as parseOperatorArgs, r as printHelpPage, t as getHelpPath } from "../help-DC7gdz7L.mjs";
7
+ import { r as OperatorClientError } from "../operator-client-DUwumHpQ.mjs";
8
8
  import { readFileSync } from "node:fs";
9
9
  import { PLATFORM_LOGIN_KINDS, parsePlatformLoginId } from "@void/platform";
10
10
  import { parseArgs } from "node:util";
@@ -65,7 +65,8 @@ function parseDeployArgs(args) {
65
65
  platform: { type: "string" },
66
66
  backend: { type: "string" },
67
67
  provision: { type: "boolean" },
68
- "require-email": { type: "boolean" }
68
+ "require-email": { type: "boolean" },
69
+ atomic: { type: "boolean" }
69
70
  },
70
71
  allowPositionals: true,
71
72
  strict: true,
@@ -107,6 +108,7 @@ function parseDeployArgs(args) {
107
108
  const provision = parsed.values.provision === true ? true : void 0;
108
109
  if (provision && backend !== "cloudflare" && platform !== "cloudflare") throw new Error("deploy: --provision requires --platform cloudflare.");
109
110
  const requireEmail = parsed.values["require-email"] === true ? true : void 0;
111
+ const atomic = parsed.values.atomic === true ? true : void 0;
110
112
  if (requireEmail && backend !== "cloudflare" && platform !== "cloudflare") throw new Error("deploy: --require-email requires --platform cloudflare.");
111
113
  if (backend === "cloudflare" || platform === "cloudflare") {
112
114
  if (projectSlug !== void 0) throw new Error("deploy: --project is not supported with --platform cloudflare — this platform deploys to your own Cloudflare account and no Void project is involved.");
@@ -120,7 +122,8 @@ function parseDeployArgs(args) {
120
122
  platform,
121
123
  backend,
122
124
  provision,
123
- requireEmail
125
+ requireEmail,
126
+ atomic
124
127
  };
125
128
  }
126
129
  //#endregion
@@ -2017,7 +2020,7 @@ if (helpPath) {
2017
2020
  log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
2018
2021
  process.exit(1);
2019
2022
  }
2020
- import("../deploy-CsjbRNyv.mjs").then(({ runDeploy }) => {
2023
+ import("../deploy-BH0grP4y.mjs").then(({ runDeploy }) => {
2021
2024
  runDeploy(root, {
2022
2025
  projectSlug: deployArgs.projectSlug,
2023
2026
  dir: deployArgs.dir,
@@ -2027,7 +2030,8 @@ if (helpPath) {
2027
2030
  platform: deployArgs.platform,
2028
2031
  backend: deployArgs.backend,
2029
2032
  provision: deployArgs.provision,
2030
- requireEmail: deployArgs.requireEmail
2033
+ requireEmail: deployArgs.requireEmail,
2034
+ atomic: deployArgs.atomic
2031
2035
  }).catch((err) => {
2032
2036
  log.error(formatCloudflareUserMessage(err.message ?? String(err)));
2033
2037
  process.exit(1);
@@ -2035,25 +2039,25 @@ if (helpPath) {
2035
2039
  });
2036
2040
  } else if (command === "connect") (async () => {
2037
2041
  const parsed = parseConnectArgs(args.slice(1));
2038
- const { runConnectCommand } = await import("../connect-DLx1pRYk.mjs");
2042
+ const { runConnectCommand } = await import("../connect-4Ph5Y0QE.mjs");
2039
2043
  await runConnectCommand(process.cwd(), parsed);
2040
2044
  })().catch((err) => {
2041
2045
  log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
2042
2046
  process.exit(1);
2043
2047
  });
2044
- else if (command === "auth") runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (root, parsed) => import("../auth-router-OHZNmrb_.mjs").then(({ runAuthRouter }) => runAuthRouter(root, parsed)));
2045
- else if (command === "account") runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (root, parsed) => import("../account-cmd-D8OC-U7y.mjs").then(({ runAccountCommand }) => runAccountCommand(root, parsed)));
2046
- else if (command === "platform") runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (root, parsed) => import("../platform-cmd-Cl9Uhzru.mjs").then(({ runPlatformCommand }) => runPlatformCommand(root, parsed)));
2047
- else if (command === "cloudflare") runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (root, parsed) => import("../cloudflare-cmd-D6PrKn7o.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(root, parsed)));
2048
- else if (command === "project") runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (root, parsed) => import("../project-cmd-BuF9doku.mjs").then(({ runProjectCommand }) => runProjectCommand(root, parsed)));
2049
- else if (command === "secret") runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (root, parsed) => import("../secret-Rt9c4Ttw.mjs").then(({ runSecretCommand }) => runSecretCommand(root, parsed)));
2050
- else if (command === "domain") runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (root, parsed) => import("../domain-Av2AkLQP.mjs").then(({ runDomainCommand }) => runDomainCommand(root, parsed)));
2051
- else if (command === "email") runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (root, parsed) => import("../email-CUqa6TtH.mjs").then(({ runEmailCommand }) => runEmailCommand(root, parsed)));
2052
- else if (command === "db") runSubcommandGroup("db", dbSubcommands, parseDbArgs, (root, parsed) => import("../db-B98_UV4H.mjs").then(({ runDbCommand }) => runDbCommand(root, parsed)));
2053
- else if (command === "env") runSubcommandGroup("env", envSubcommands, parseEnvArgs, (root, parsed) => import("../env-D4RIGEzz.mjs").then(({ runEnvCommand }) => runEnvCommand(root, parsed)));
2054
- else if (command === "gen") runSubcommandGroup("gen", genSubcommands, parseGenArgs, (root, parsed) => import("../gen-B87rlalt.mjs").then(({ runGenCommand }) => runGenCommand(root, parsed)));
2055
- else if (command === "github") runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (root, parsed) => import("../github-cmd-BEK4VprE.mjs").then(({ runGithubCommand }) => runGithubCommand(root, parsed)));
2056
- else if (command === "build") runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (root, parsed) => import("../build-cmd-Bft7EY51.mjs").then(({ runBuildCommand }) => runBuildCommand(root, parsed)));
2048
+ else if (command === "auth") runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (root, parsed) => import("../auth-router-D4ZcMUSf.mjs").then(({ runAuthRouter }) => runAuthRouter(root, parsed)));
2049
+ else if (command === "account") runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (root, parsed) => import("../account-cmd-DGt9cpRe.mjs").then(({ runAccountCommand }) => runAccountCommand(root, parsed)));
2050
+ else if (command === "platform") runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (root, parsed) => import("../platform-cmd-C8OqhqPt.mjs").then(({ runPlatformCommand }) => runPlatformCommand(root, parsed)));
2051
+ else if (command === "cloudflare") runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (root, parsed) => import("../cloudflare-cmd-BjNxR1XF.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(root, parsed)));
2052
+ else if (command === "project") runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (root, parsed) => import("../project-cmd-B44I8J_W.mjs").then(({ runProjectCommand }) => runProjectCommand(root, parsed)));
2053
+ else if (command === "secret") runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (root, parsed) => import("../secret-DN9sSNiV.mjs").then(({ runSecretCommand }) => runSecretCommand(root, parsed)));
2054
+ else if (command === "domain") runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (root, parsed) => import("../domain-Dmhvb2oU.mjs").then(({ runDomainCommand }) => runDomainCommand(root, parsed)));
2055
+ else if (command === "email") runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (root, parsed) => import("../email-BRKOG2RG.mjs").then(({ runEmailCommand }) => runEmailCommand(root, parsed)));
2056
+ else if (command === "db") runSubcommandGroup("db", dbSubcommands, parseDbArgs, (root, parsed) => import("../db-DzJRn-qz.mjs").then(({ runDbCommand }) => runDbCommand(root, parsed)));
2057
+ else if (command === "env") runSubcommandGroup("env", envSubcommands, parseEnvArgs, (root, parsed) => import("../env-Csi-tMbT.mjs").then(({ runEnvCommand }) => runEnvCommand(root, parsed)));
2058
+ else if (command === "gen") runSubcommandGroup("gen", genSubcommands, parseGenArgs, (root, parsed) => import("../gen-Vnv2f65C.mjs").then(({ runGenCommand }) => runGenCommand(root, parsed)));
2059
+ else if (command === "github") runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (root, parsed) => import("../github-cmd-BED3_9JD.mjs").then(({ runGithubCommand }) => runGithubCommand(root, parsed)));
2060
+ else if (command === "build") runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (root, parsed) => import("../build-cmd-Dpt0jd-x.mjs").then(({ runBuildCommand }) => runBuildCommand(root, parsed)));
2057
2061
  else if (command === "prepare") {
2058
2062
  const root = process.cwd();
2059
2063
  let prepareArgs;
@@ -2063,7 +2067,7 @@ else if (command === "prepare") {
2063
2067
  log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
2064
2068
  process.exit(1);
2065
2069
  }
2066
- import("../prepare-_T-Haxrr.mjs").then(({ runPrepareCommand }) => {
2070
+ import("../prepare-DyZ-Yok5.mjs").then(({ runPrepareCommand }) => {
2067
2071
  runPrepareCommand(root, prepareArgs).catch((err) => {
2068
2072
  log.error(formatCloudflareUserMessage(err.message ?? String(err)));
2069
2073
  process.exit(1);
@@ -2071,7 +2075,7 @@ else if (command === "prepare") {
2071
2075
  });
2072
2076
  } else if (command === "init") {
2073
2077
  const root = process.cwd();
2074
- import("../init-D5niUPAz.mjs").then(({ runInitCommand, parseInitArgs }) => {
2078
+ import("../init-CRGDXzVC.mjs").then(({ runInitCommand, parseInitArgs }) => {
2075
2079
  let initArgs;
2076
2080
  try {
2077
2081
  initArgs = parseInitArgs(args.slice(1));
@@ -2089,7 +2093,7 @@ else if (command === "prepare") {
2089
2093
  log.error("migrate: This command takes no arguments.");
2090
2094
  process.exit(1);
2091
2095
  }
2092
- import("../migrate-BXY3B3m7.mjs").then(({ runMigrateCommand }) => {
2096
+ import("../migrate-TsHGBnDA.mjs").then(({ runMigrateCommand }) => {
2093
2097
  runMigrateCommand(process.cwd()).catch((err) => {
2094
2098
  log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
2095
2099
  process.exit(1);
@@ -2203,40 +2207,40 @@ else if (command === "prepare") {
2203
2207
  const root = process.cwd();
2204
2208
  switch (cmd) {
2205
2209
  case "connect": {
2206
- const { runConnectCommand } = await import("../connect-DLx1pRYk.mjs");
2210
+ const { runConnectCommand } = await import("../connect-4Ph5Y0QE.mjs");
2207
2211
  await runConnectCommand(root, parseConnectArgs([]));
2208
2212
  return;
2209
2213
  }
2210
2214
  case "init": {
2211
- const { runInitCommand, parseInitArgs } = await import("../init-D5niUPAz.mjs");
2215
+ const { runInitCommand, parseInitArgs } = await import("../init-CRGDXzVC.mjs");
2212
2216
  await runInitCommand(root, parseInitArgs([]));
2213
2217
  return;
2214
2218
  }
2215
2219
  case "migrate": {
2216
- const { runMigrateCommand } = await import("../migrate-BXY3B3m7.mjs");
2220
+ const { runMigrateCommand } = await import("../migrate-TsHGBnDA.mjs");
2217
2221
  await runMigrateCommand(root);
2218
2222
  return;
2219
2223
  }
2220
2224
  case "deploy": {
2221
- const { runDeploy } = await import("../deploy-CsjbRNyv.mjs");
2225
+ const { runDeploy } = await import("../deploy-BH0grP4y.mjs");
2222
2226
  await runDeploy(root);
2223
2227
  return;
2224
2228
  }
2225
- case "auth": return runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (r, p) => import("../auth-router-OHZNmrb_.mjs").then(({ runAuthRouter }) => runAuthRouter(r, p)));
2226
- case "account": return runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (r, p) => import("../account-cmd-D8OC-U7y.mjs").then(({ runAccountCommand }) => runAccountCommand(r, p)));
2227
- case "platform": return runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (r, p) => import("../platform-cmd-Cl9Uhzru.mjs").then(({ runPlatformCommand }) => runPlatformCommand(r, p)));
2228
- case "cloudflare": return runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (r, p) => import("../cloudflare-cmd-D6PrKn7o.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(r, p)));
2229
- case "project": return runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (r, p) => import("../project-cmd-BuF9doku.mjs").then(({ runProjectCommand }) => runProjectCommand(r, p)));
2230
- case "secret": return runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (r, p) => import("../secret-Rt9c4Ttw.mjs").then(({ runSecretCommand }) => runSecretCommand(r, p)));
2231
- case "domain": return runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (r, p) => import("../domain-Av2AkLQP.mjs").then(({ runDomainCommand }) => runDomainCommand(r, p)));
2232
- case "github": return runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (r, p) => import("../github-cmd-BEK4VprE.mjs").then(({ runGithubCommand }) => runGithubCommand(r, p)));
2233
- case "build": return runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (r, p) => import("../build-cmd-Bft7EY51.mjs").then(({ runBuildCommand }) => runBuildCommand(r, p)));
2234
- case "email": return runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (r, p) => import("../email-CUqa6TtH.mjs").then(({ runEmailCommand }) => runEmailCommand(r, p)));
2235
- case "db": return runSubcommandGroup("db", dbSubcommands, parseDbArgs, (r, p) => import("../db-B98_UV4H.mjs").then(({ runDbCommand }) => runDbCommand(r, p)));
2236
- case "env": return runSubcommandGroup("env", envSubcommands, parseEnvArgs, (r, p) => import("../env-D4RIGEzz.mjs").then(({ runEnvCommand }) => runEnvCommand(r, p)));
2237
- case "gen": return runSubcommandGroup("gen", genSubcommands, parseGenArgs, (r, p) => import("../gen-B87rlalt.mjs").then(({ runGenCommand }) => runGenCommand(r, p)));
2229
+ case "auth": return runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (r, p) => import("../auth-router-D4ZcMUSf.mjs").then(({ runAuthRouter }) => runAuthRouter(r, p)));
2230
+ case "account": return runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (r, p) => import("../account-cmd-DGt9cpRe.mjs").then(({ runAccountCommand }) => runAccountCommand(r, p)));
2231
+ case "platform": return runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (r, p) => import("../platform-cmd-C8OqhqPt.mjs").then(({ runPlatformCommand }) => runPlatformCommand(r, p)));
2232
+ case "cloudflare": return runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (r, p) => import("../cloudflare-cmd-BjNxR1XF.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(r, p)));
2233
+ case "project": return runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (r, p) => import("../project-cmd-B44I8J_W.mjs").then(({ runProjectCommand }) => runProjectCommand(r, p)));
2234
+ case "secret": return runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (r, p) => import("../secret-DN9sSNiV.mjs").then(({ runSecretCommand }) => runSecretCommand(r, p)));
2235
+ case "domain": return runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (r, p) => import("../domain-Dmhvb2oU.mjs").then(({ runDomainCommand }) => runDomainCommand(r, p)));
2236
+ case "github": return runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (r, p) => import("../github-cmd-BED3_9JD.mjs").then(({ runGithubCommand }) => runGithubCommand(r, p)));
2237
+ case "build": return runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (r, p) => import("../build-cmd-Dpt0jd-x.mjs").then(({ runBuildCommand }) => runBuildCommand(r, p)));
2238
+ case "email": return runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (r, p) => import("../email-BRKOG2RG.mjs").then(({ runEmailCommand }) => runEmailCommand(r, p)));
2239
+ case "db": return runSubcommandGroup("db", dbSubcommands, parseDbArgs, (r, p) => import("../db-DzJRn-qz.mjs").then(({ runDbCommand }) => runDbCommand(r, p)));
2240
+ case "env": return runSubcommandGroup("env", envSubcommands, parseEnvArgs, (r, p) => import("../env-Csi-tMbT.mjs").then(({ runEnvCommand }) => runEnvCommand(r, p)));
2241
+ case "gen": return runSubcommandGroup("gen", genSubcommands, parseGenArgs, (r, p) => import("../gen-Vnv2f65C.mjs").then(({ runGenCommand }) => runGenCommand(r, p)));
2238
2242
  case "prepare": {
2239
- const { runPrepareCommand } = await import("../prepare-_T-Haxrr.mjs");
2243
+ const { runPrepareCommand } = await import("../prepare-DyZ-Yok5.mjs");
2240
2244
  await runPrepareCommand(root, parsePrepareArgs([]));
2241
2245
  return;
2242
2246
  }
@@ -1,4 +1,4 @@
1
- import { t as findEnvFile } from "../env-types-CWDtqHgw.mjs";
1
+ import { t as findEnvFile } from "../env-types-C2_bIk_b.mjs";
2
2
  import { writeSync } from "node:fs";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { spawnSync } from "node:child_process";
@@ -169,7 +169,7 @@ function emitResult(result) {
169
169
  * facts. The import stays isolated because env.ts is arbitrary project code.
170
170
  */
171
171
  async function runFactsChild(root) {
172
- const { deriveSelfHostSchemaFacts, SelfHostSchemaError } = await import("../env-validation-DIDGM7h4.mjs");
172
+ const { deriveSelfHostSchemaFacts, SelfHostSchemaError } = await import("../env-validation-BXge7uyK.mjs");
173
173
  try {
174
174
  emitResult({
175
175
  kind: "ok",
@@ -194,7 +194,7 @@ async function runFactsChild(root) {
194
194
  * fault → fail closed as a values-free schema error.
195
195
  */
196
196
  async function runValidateEmittedChild(root) {
197
- const { computeInvalidEmittedKeys, readEmittedWorkerVars, SelfHostSchemaError } = await import("../env-validation-DIDGM7h4.mjs");
197
+ const { computeInvalidEmittedKeys, readEmittedWorkerVars, SelfHostSchemaError } = await import("../env-validation-BXge7uyK.mjs");
198
198
  const emitted = readEmittedWorkerVars(root);
199
199
  if (!emitted.ok) {
200
200
  emitResult({
@@ -0,0 +1,2 @@
1
+ import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
2
+ export { PlatformClient };
@@ -1,9 +1,9 @@
1
- import { a as join } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
2
  import { t as cfAccessHeaders } from "./cf-access-DRsQRe6k.mjs";
3
- import { a as getApiUrl } from "./auth-B9_D6ygs.mjs";
4
- import { s as normalizePlatformApiUrl } from "./platform-registry-BJbgZLS1.mjs";
5
- import { i as isCloudflareAccessChallenge, n as ensurePlatformAccessToken, t as ensureCloudflaredToken } from "./cf-access-rAZxzMkL.mjs";
6
- import { n as getPackageDir } from "./agents-gni4eqBu.mjs";
3
+ import { a as getApiUrl } from "./auth-DLNN0D3Z.mjs";
4
+ import { s as normalizePlatformApiUrl } from "./platform-registry-QBa4DK32.mjs";
5
+ import { i as isCloudflareAccessChallenge, n as ensurePlatformAccessToken, t as ensureCloudflaredToken } from "./cf-access-P0iZnu0q.mjs";
6
+ import { n as getPackageDir } from "./agents-B_pX_HmQ.mjs";
7
7
  import { readFileSync } from "node:fs";
8
8
  import { stripVTControlCharacters } from "node:util";
9
9
  //#region src/cli/platform-errors.ts
@@ -237,6 +237,29 @@ var PlatformClient = class {
237
237
  if (!res.ok) await throwPlatformApiError("Failed to list projects", res);
238
238
  return res.json();
239
239
  }
240
+ /** A lightweight project list for interactive linking; older platforms use the full list. */
241
+ async listProjectChoices() {
242
+ const res = await this.request(`${this.baseUrl}/projects/choices`, { headers: { ...this.authHeaders } });
243
+ if (res.status === 404) return this.listProjects();
244
+ if (!res.ok) await throwPlatformApiError("Failed to list project choices", res);
245
+ return res.json();
246
+ }
247
+ /** Resolve one known project without loading account-wide deployment and traffic summaries. */
248
+ async getProject(projectId) {
249
+ const res = await this.request(`${this.baseUrl}/projects/${encodeURIComponent(projectId)}`, { headers: { ...this.authHeaders } });
250
+ if (res.status === 404) return null;
251
+ if (!res.ok) await throwPlatformApiError("Failed to get project", res);
252
+ return res.json();
253
+ }
254
+ /** New platforms resolve a slug directly; older installations retain the list fallback. */
255
+ async findProjectBySlug(slug) {
256
+ const url = new URL(`${this.baseUrl}/projects/resolve`);
257
+ url.searchParams.set("slug", slug);
258
+ const res = await this.request(url.toString(), { headers: { ...this.authHeaders } });
259
+ if (res.status === 404) return (await this.listProjects()).find((project) => project.slug === slug) ?? null;
260
+ if (!res.ok) await throwPlatformApiError("Failed to resolve project", res);
261
+ return (await res.json()).project;
262
+ }
240
263
  async listProjectTokens(projectId) {
241
264
  const res = await this.request(`${this.baseUrl}/projects/${projectId}/tokens`, { headers: { ...this.authHeaders } });
242
265
  if (!res.ok) await throwPlatformApiError("Failed to list project tokens", res, "owner");
@@ -1,5 +1,5 @@
1
1
  import { j as log } from "./dist-Dn6nn2IU.mjs";
2
- import { o as resolveWranglerArgv } from "./preset-Dowh9tTt.mjs";
2
+ import { o as resolveWranglerArgv } from "./preset-UHj9ARyP.mjs";
3
3
  import { execFile, spawn, spawnSync } from "node:child_process";
4
4
  //#region src/cli/cloudflare-auth.ts
5
5
  var CloudflareAuthenticationError = class extends Error {
@@ -1,7 +1,7 @@
1
- import { t as basename } from "./dist-4WkAWhWx.mjs";
2
- import { v as readRootWranglerConfig } from "./wrangler-D01qs6VB.mjs";
1
+ import { t as basename } from "./dist-BVqXeR_h.mjs";
2
+ import { v as readRootWranglerConfig } from "./wrangler-BymcxrRa.mjs";
3
3
  import { j as log } from "./dist-Dn6nn2IU.mjs";
4
- import { a as createBundledCloudflareAuthRunner, i as cloudflareCredentialOverrides, o as ensureCloudflareAuthentication, s as parseCloudflareAuthSession } from "./cloudflare-auth-BCmTc1X_.mjs";
4
+ import { a as createBundledCloudflareAuthRunner, i as cloudflareCredentialOverrides, o as ensureCloudflareAuthentication, s as parseCloudflareAuthSession } from "./cloudflare-auth-B9jPCkV2.mjs";
5
5
  //#region src/cli/cloudflare-cmd.ts
6
6
  async function runCloudflareCommand(root, args) {
7
7
  const runWrangler = createBundledCloudflareAuthRunner(root);
@@ -1,7 +1,7 @@
1
- import { a as join, t as basename } from "./dist-4WkAWhWx.mjs";
2
- import { i as LATEST_KNOWN_COMPAT_DATE, k as writeProvisionedWranglerConfig, v as readRootWranglerConfig } from "./wrangler-D01qs6VB.mjs";
1
+ import { a as join, t as basename } from "./dist-BVqXeR_h.mjs";
2
+ import { i as LATEST_KNOWN_COMPAT_DATE, k as writeProvisionedWranglerConfig, v as readRootWranglerConfig } from "./wrangler-BymcxrRa.mjs";
3
3
  import { I as select, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
4
- import { a as createBundledCloudflareAuthRunner, o as ensureCloudflareAuthentication } from "./cloudflare-auth-BCmTc1X_.mjs";
4
+ import { a as createBundledCloudflareAuthRunner, o as ensureCloudflareAuthentication } from "./cloudflare-auth-B9jPCkV2.mjs";
5
5
  import { existsSync } from "node:fs";
6
6
  //#region src/cli/cloudflare-connect.ts
7
7
  async function connectCloudflare(root, interactive = Boolean(process.stdin.isTTY)) {
@@ -1,2 +1,2 @@
1
- import { _ as resolveCloudflareD1Context, b as tailCloudflareWorker, c as listCloudflareDomains, g as readCloudflareWorkerStatus, h as readCloudflareD1Migrations, l as listCloudflareSecrets, m as putCloudflareSecret, n as applyCloudflareD1Migrations, o as deleteCloudflareSecret, r as changeCloudflareDomain, s as executeCloudflareD1Sql, t as activateCloudflareExistingVersion, v as resolveCloudflareOperationContext, y as syncCloudflareSecrets } from "./cloudflare-operations-CPEdHYhM.mjs";
1
+ import { _ as resolveCloudflareD1Context, b as tailCloudflareWorker, c as listCloudflareDomains, g as readCloudflareWorkerStatus, h as readCloudflareD1Migrations, l as listCloudflareSecrets, m as putCloudflareSecret, n as applyCloudflareD1Migrations, o as deleteCloudflareSecret, r as changeCloudflareDomain, s as executeCloudflareD1Sql, t as activateCloudflareExistingVersion, v as resolveCloudflareOperationContext, y as syncCloudflareSecrets } from "./cloudflare-operations-sMZXpk_S.mjs";
2
2
  export { activateCloudflareExistingVersion, applyCloudflareD1Migrations, changeCloudflareDomain, deleteCloudflareSecret, executeCloudflareD1Sql, listCloudflareDomains, listCloudflareSecrets, putCloudflareSecret, readCloudflareD1Migrations, readCloudflareWorkerStatus, resolveCloudflareD1Context, resolveCloudflareOperationContext, syncCloudflareSecrets, tailCloudflareWorker };
@@ -1,8 +1,8 @@
1
- import { a as join } from "./dist-4WkAWhWx.mjs";
2
- import { A as writeWranglerPublishedTrafficSnapshot, L as materializeCloudflareConfig, O as updateWranglerCustomDomain, R as persistCloudflareConfig, S as readWranglerPublishedTrafficSnapshot, b as readWranglerCustomDomains } from "./wrangler-D01qs6VB.mjs";
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
+ import { A as writeWranglerPublishedTrafficSnapshot, L as materializeCloudflareConfig, O as updateWranglerCustomDomain, R as persistCloudflareConfig, S as readWranglerPublishedTrafficSnapshot, b as readWranglerCustomDomains } from "./wrangler-BymcxrRa.mjs";
3
3
  import { r as scanWranglerDotenvKeys } from "./dotenv-VQxupEUv.mjs";
4
- import { o as resolveWranglerArgv } from "./preset-Dowh9tTt.mjs";
5
- import { g as resolvePinnedApiBaseUrl, h as provisionEnv, r as assertNoTransportRedirectInProjectDotenv, s as deleteEnvVarCaseAware } from "./provision-Cck2m3jJ.mjs";
4
+ import { o as resolveWranglerArgv } from "./preset-UHj9ARyP.mjs";
5
+ import { _ as resolvePinnedApiBaseUrl, g as provisionEnv, r as assertNoTransportRedirectInProjectDotenv, s as deleteEnvVarCaseAware } from "./provision-BhreDAOS.mjs";
6
6
  import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
7
7
  import { tmpdir } from "node:os";
8
8
  import { spawnSync } from "node:child_process";
@@ -0,0 +1,2 @@
1
+ import { t as collectMigrations } from "./collect-DiTn9yr6.mjs";
2
+ export { collectMigrations };
@@ -1,4 +1,4 @@
1
- import { a as join, n as dirname } from "./dist-4WkAWhWx.mjs";
1
+ import { a as join, n as dirname } from "./dist-BVqXeR_h.mjs";
2
2
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
3
3
  //#region src/migrations/collect.ts
4
4
  /**
@@ -0,0 +1,2 @@
1
+ import { t as writeDrizzleConfig } from "./config-D8MOgiQV.mjs";
2
+ export { writeDrizzleConfig };
@@ -92,6 +92,12 @@ type AiConfig = {
92
92
  type EmailConfig = {
93
93
  from?: string;
94
94
  };
95
+ /** Deployment choices owned by Void rather than passed to the Worker config. */
96
+ type DeployConfig = {
97
+ cloudflare?: {
98
+ mode?: "staged" | "atomic";
99
+ };
100
+ };
95
101
  /** Cloudflare Worker configuration passed through to the native deploy artifact. */
96
102
  type CloudflareField<T> = T & Record<string, unknown>;
97
103
  type CloudflareConfig = Record<string, unknown> & {
@@ -177,6 +183,7 @@ type VoidConfig = {
177
183
  remote?: boolean;
178
184
  worker?: WranglerConfig;
179
185
  cloudflare?: CloudflareConfig;
186
+ deploy?: DeployConfig;
180
187
  database?: "pg" | "mysql";
181
188
  ai?: AiConfig;
182
189
  email?: EmailConfig;