void 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +19 -106
  2. package/dist/{account-cmd-vJhh5lrb.mjs → account-cmd-DcR1ywt8.mjs} +5 -5
  3. package/dist/{auth-CQkSDS50.mjs → auth-7wuZ5ob8.mjs} +3 -3
  4. package/dist/{auth-DX3JURcX.mjs → auth-CdgZ9uag.mjs} +1 -1
  5. package/dist/{auth-link-D75t9wO2.mjs → auth-link-Z6E5DYvM.mjs} +5 -6
  6. package/dist/{auth-router-ClfhL1J7.mjs → auth-router-BdM4avI8.mjs} +7 -7
  7. package/dist/{build-cmd-zMi1iFnS.mjs → build-cmd-CEE7D-hM.mjs} +6 -7
  8. package/dist/{cache-ZtQmyxVV.mjs → cache-TcZnBLtH.mjs} +6 -7
  9. package/dist/{cancel-deploy-Box0kkEV.mjs → cancel-deploy-CYoZmcmR.mjs} +4 -6
  10. package/dist/{cf-access-BGe5sWXF.mjs → cf-access-AHKBzmuu.mjs} +1 -1
  11. package/dist/cf-build-output-ChY6-XWP.mjs +2 -0
  12. package/dist/cli/cli.mjs +45 -45
  13. package/dist/cli/cloudflare-operation-process.mjs +2 -2
  14. package/dist/cli/env-schema-probe.mjs +2 -2
  15. package/dist/client-B4Me-9HE.mjs +2 -0
  16. package/dist/{client-DKAsFA4X.mjs → client-RsPo8wsP.mjs} +103 -25
  17. package/dist/{cloudflare-cmd-CmY8dGkd.mjs → cloudflare-cmd-bhwCxAN6.mjs} +2 -2
  18. package/dist/{cloudflare-connect-IiR3ZieC.mjs → cloudflare-connect-CuhRgk3k.mjs} +2 -2
  19. package/dist/{cloudflare-operations-BCdXSsmo.mjs → cloudflare-operations-BhbK6yTq.mjs} +1 -1
  20. package/dist/{cloudflare-operations-DzH-A966.mjs → cloudflare-operations-CjaV4lZi.mjs} +2 -2
  21. package/dist/{connect-B-usTnlF.mjs → connect-DCvUmPXY.mjs} +12 -9
  22. package/dist/{create-project-FWbf5Olo.mjs → create-project-C734I-Mu.mjs} +1 -1
  23. package/dist/{create-project-CYOOAYcn.mjs → create-project-eAPgYq35.mjs} +6 -6
  24. package/dist/{db-Ck2eZ2iB.mjs → db-C07GEdKF.mjs} +25 -28
  25. package/dist/{delete-sK56qtzZ.mjs → delete-pKMVsrpJ.mjs} +5 -6
  26. package/dist/deploy-BDu1vhSH.mjs +2 -0
  27. package/dist/{deploy-gCVaiJbS.mjs → deploy-DfsAe-T0.mjs} +9212 -8902
  28. package/dist/{dev-inbox-P0u4tM8Y.mjs → dev-inbox-D64ZKUod.mjs} +5 -6
  29. package/dist/{domain-DFfQE8jg.mjs → domain-D3uA9ize.mjs} +8 -8
  30. package/dist/{email-CdnhUHvJ.mjs → email-z3o2cwjH.mjs} +7 -7
  31. package/dist/{env-DmGdHi5i.mjs → env-3Q8-_2IH.mjs} +6 -8
  32. package/dist/{env-validation-zZOCcQVZ.mjs → env-validation-cZBvGWaP.mjs} +1 -1
  33. package/dist/gen-ById9r2j.mjs +2 -0
  34. package/dist/{gen-CshAkukR.mjs → gen-NjwoG9FK.mjs} +2 -4
  35. package/dist/{github-cmd-DftuEvIt.mjs → github-cmd-DquUq-b1.mjs} +7 -16
  36. package/dist/help-DPGBwomV.mjs +2 -0
  37. package/dist/{help-Dotbf6iz.mjs → help-DRZXC4fj.mjs} +3 -3
  38. package/dist/index.d.mts +18 -14
  39. package/dist/index.mjs +2166 -2096
  40. package/dist/{info-B97bTX9N.mjs → info-BmA3_IFZ.mjs} +1 -3
  41. package/dist/{init-BTQEZZGJ.mjs → init-DT7yuuyl.mjs} +16 -18
  42. package/dist/{link-B46sYH0K.mjs → link-CXOlqh2F.mjs} +6 -7
  43. package/dist/{list-BnPrIsU_.mjs → list-eEWVJEPn.mjs} +8 -9
  44. package/dist/{local-d1-2CMnpuW_.mjs → local-d1-Df4XpwhW.mjs} +1 -1
  45. package/dist/login-C98-sw79.mjs +2 -0
  46. package/dist/{login-BuiMyUrx.mjs → login-pWQHYVu2.mjs} +9 -7
  47. package/dist/{logs-CZG9d-ic.mjs → logs-DnxVX7TR.mjs} +7 -8
  48. package/dist/migrate-CEu2X5DB.mjs +2 -0
  49. package/dist/{migrate-q4_njtaW.mjs → migrate-CV1on-yJ.mjs} +2 -4
  50. package/dist/{operator-args-B3BTmSoi.mjs → operator-args-CAVcmwUt.mjs} +1 -1
  51. package/dist/{operator-auth-7erYc6Lt.mjs → operator-auth-CkmTE3rt.mjs} +2 -2
  52. package/dist/{operator-client-CpHjTd0t.mjs → operator-client-LmwjxT6q.mjs} +2 -2
  53. package/dist/{operator-cmd-DGqPJUD3.mjs → operator-cmd-d-IEKgNk.mjs} +6 -6
  54. package/dist/{output-CbM85T4k.mjs → output-BBsUwdyT.mjs} +5 -5
  55. package/dist/pages/client.d.mts +3 -0
  56. package/dist/pages/client.mjs +120 -29
  57. package/dist/{platform-args-3k8X9-H_.mjs → platform-args-Bzf8JPc2.mjs} +1 -1
  58. package/dist/platform-args-Cq6EjQro.mjs +2 -0
  59. package/dist/{platform-auth-config-DDrxUy4m.mjs → platform-auth-config-0V0lA3pF.mjs} +7 -7
  60. package/dist/{platform-auth-protection-BLadnnct.mjs → platform-auth-protection-DFeJ-JkK.mjs} +8 -8
  61. package/dist/{platform-auth-recovery-CmCzX2Fl.mjs → platform-auth-recovery-ICy4muq6.mjs} +7 -7
  62. package/dist/{platform-cmd-pMTRhvYs.mjs → platform-cmd-BPySFOew.mjs} +1 -1
  63. package/dist/{platform-cmd-DMDEc9uS.mjs → platform-cmd-D7vSWMvV.mjs} +37 -27
  64. package/dist/platform-discovery-DDDUvnqp.mjs +27 -0
  65. package/dist/{platform-domain-Di6EYrQl.mjs → platform-domain-CUdY064e.mjs} +4 -4
  66. package/dist/{platform-lifecycle-BFdSi9Qt.mjs → platform-lifecycle-BaUdTRPU.mjs} +1 -1
  67. package/dist/{platform-lifecycle-BBoNzojY.mjs → platform-lifecycle-Dm09JNkn.mjs} +3901 -3651
  68. package/dist/{platform-management-CWOQOWXm.mjs → platform-management-BSEc_ZeG.mjs} +47 -10
  69. package/dist/platform-management-Bp6aoH2C.mjs +2 -0
  70. package/dist/{platform-plans-config-Vl9BP3H4.mjs → platform-plans-config-B0pOVQyW.mjs} +3 -3
  71. package/dist/{platform-recovery-BJnQJEtQ.mjs → platform-recovery-WOZ95Uze.mjs} +3 -3
  72. package/dist/{prepare-CBLT3CHH.mjs → prepare-39EvOhI6.mjs} +1 -3
  73. package/dist/{project-DKG5Ra8p.mjs → project-BkbfDs0V.mjs} +1 -1
  74. package/dist/{project-DsblYifa.mjs → project-IOjBU8R6.mjs} +1 -1
  75. package/dist/{project-cmd-DxnXstAq.mjs → project-cmd-Bs5A392E.mjs} +21 -22
  76. package/dist/{project-team-BmHcaALJ.mjs → project-team-ohAWWaew.mjs} +8 -9
  77. package/dist/{project-token-GionZlBI.mjs → project-token-CP01Jna6.mjs} +6 -9
  78. package/dist/{project-zero-trust-JLCjVQA7.mjs → project-zero-trust-BzkVgx35.mjs} +5 -6
  79. package/dist/{prompts-BNUoTiaf.mjs → prompts-6OSVA7DJ.mjs} +58 -15
  80. package/dist/{prompts-2TGE6oXx.mjs → prompts-ZAuJlyCj.mjs} +1 -1
  81. package/dist/{provision-CVku1JFU.mjs → provision-BEv0k-qz.mjs} +1 -1
  82. package/dist/{provision-CaoxO_U7.mjs → provision-Btj1jppf.mjs} +5 -7
  83. package/dist/{requests-BOjIVAeF.mjs → requests-B3PBuGlX.mjs} +5 -6
  84. package/dist/{rollback-CwR3pLj3.mjs → rollback-DDub9GsO.mjs} +9 -10
  85. package/dist/runtime/email/testing.mjs +1 -1
  86. package/dist/runtime/email.mjs +35 -17
  87. package/dist/runtime/routing.mjs +1 -1
  88. package/dist/{secret-ByWJWBUG.mjs → secret-3c72lY1U.mjs} +15 -16
  89. package/dist/{skills-C1PlclPt.mjs → skills-BPQUGClu.mjs} +1 -1
  90. package/dist/{subcommand-prompt-klFCfcor.mjs → subcommand-prompt-Dhom39bd.mjs} +2 -2
  91. package/dist/sveltekit.d.mts +1 -1
  92. package/dist/sveltekit.mjs +4 -9
  93. package/dist/{wrangler-7K-bW_DL.mjs → wrangler-DhUerFkW.mjs} +10 -15
  94. package/package.json +21 -21
  95. package/sandbox.Dockerfile +1 -1
  96. package/skills/void/docs/guide/ai.md +24 -86
  97. package/skills/void/docs/guide/auth.md +0 -2
  98. package/skills/void/docs/guide/database/d1.md +7 -7
  99. package/skills/void/docs/guide/deployment.md +58 -124
  100. package/skills/void/docs/guide/env-vars.md +1 -5
  101. package/skills/void/docs/guide/index.md +19 -18
  102. package/skills/void/docs/guide/kv.md +0 -2
  103. package/skills/void/docs/guide/pages-routing/actions-and-forms.md +49 -47
  104. package/skills/void/docs/guide/pages-routing/overview.md +2 -2
  105. package/skills/void/docs/guide/platform/administration/email.md +0 -2
  106. package/skills/void/docs/guide/platform/administration/operations.md +11 -22
  107. package/skills/void/docs/guide/platform/administration/plans.md +1 -5
  108. package/skills/void/docs/guide/platform/administration/zero-trust.md +1 -4
  109. package/skills/void/docs/guide/platform/development/schema-ci.md +7 -1
  110. package/skills/void/docs/guide/platform/installation/maintenance.md +30 -10
  111. package/skills/void/docs/guide/platform/installation/prerequisites.md +79 -7
  112. package/skills/void/docs/guide/quickstart.md +37 -80
  113. package/skills/void/docs/guide/sandboxes.md +36 -46
  114. package/skills/void/docs/guide/self-hosted-platform.md +20 -0
  115. package/skills/void/docs/guide/websockets.md +0 -2
  116. package/skills/void/docs/integrations/frameworks/overview.md +2 -2
  117. package/skills/void/docs/integrations/frameworks/sveltekit.md +40 -25
  118. package/skills/void/docs/integrations/nodejs-bun-deno.md +7 -2
  119. package/skills/void/docs/reference/api/resources.md +27 -0
  120. package/skills/void/docs/reference/api.md +1 -1
  121. package/skills/void/docs/reference/cli/deploy.md +1 -1
  122. package/skills/void/docs/reference/cli/platform-operations.md +4 -8
  123. package/skills/void/docs/reference/cli/platform.md +5 -0
  124. package/skills/void/docs/reference/resource-inference.md +11 -8
  125. package/dist/cf-build-output-_0HNWysu.mjs +0 -2
  126. package/dist/client-B9UBI03V.mjs +0 -2
  127. package/dist/deploy-irP5q0-x.mjs +0 -2
  128. package/dist/gen-DvQTWzDU.mjs +0 -2
  129. package/dist/help-mabuIV98.mjs +0 -2
  130. package/dist/login-DIy9Sb-U.mjs +0 -2
  131. package/dist/migrate-BCiJ8w0f.mjs +0 -2
  132. package/dist/platform-args-DdnM6WIf.mjs +0 -2
  133. package/dist/platform-management-DG47jys8.mjs +0 -2
  134. package/skills/void/docs/guide/env-migration.md +0 -109
  135. package/dist/{cf-build-output-BPqOT964.mjs → cf-build-output-U8o1Gl6X.mjs} +1 -1
  136. package/dist/{env-validation-C_8tPdhs.mjs → env-validation-vBSQ8gw5.mjs} +1 -1
  137. package/dist/{platform-registry-DkPPXfp_.mjs → platform-registry-KfNEF84O.mjs} +1 -1
@@ -207,12 +207,12 @@ const DEFAULT_BUFFER_LIMIT = 100;
207
207
  * workerd — so that is the dev server's own heap.
208
208
  */
209
209
  const DEFAULT_BUFFER_BYTES = 67108864;
210
+ const inboxGlobal = globalThis;
210
211
  function registry() {
211
- const g = globalThis;
212
- let r = g[SINK_KEY];
212
+ let r = inboxGlobal[SINK_KEY];
213
213
  if (!r) {
214
214
  r = { sinks: /* @__PURE__ */ new Set() };
215
- g[SINK_KEY] = r;
215
+ inboxGlobal[SINK_KEY] = r;
216
216
  }
217
217
  return r;
218
218
  }
@@ -236,15 +236,14 @@ function hasActiveSink() {
236
236
  }
237
237
  /** Get or create the shared dev-server ring buffer. */
238
238
  function getDevBuffer(limit = DEFAULT_BUFFER_LIMIT) {
239
- const g = globalThis;
240
- let b = g[BUFFER_KEY];
239
+ let b = inboxGlobal[BUFFER_KEY];
241
240
  if (!b) {
242
241
  b = {
243
242
  limit,
244
243
  bytes: 0,
245
244
  items: []
246
245
  };
247
- g[BUFFER_KEY] = b;
246
+ inboxGlobal[BUFFER_KEY] = b;
248
247
  }
249
248
  return b;
250
249
  }
@@ -1,8 +1,8 @@
1
- import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-DKG5Ra8p.mjs";
2
- import { c as getToken } from "./auth-CQkSDS50.mjs";
3
- import { B as note, L as log } from "./prompts-BNUoTiaf.mjs";
4
- import { n as PlatformClient } from "./client-DKAsFA4X.mjs";
5
- import { c as import_picocolors } from "./output-CbM85T4k.mjs";
1
+ import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-BkbfDs0V.mjs";
2
+ import { c as getToken } from "./auth-7wuZ5ob8.mjs";
3
+ import { B as note, L as log } from "./prompts-6OSVA7DJ.mjs";
4
+ import { r as PlatformClient } from "./client-RsPo8wsP.mjs";
5
+ import { c as import_picocolors } from "./output-BBsUwdyT.mjs";
6
6
  //#region src/cli/domain.ts
7
7
  async function runDomainCommand(root, args) {
8
8
  const platform = readDeploymentPlatform(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-BCdXSsmo.mjs");
43
+ const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-BhbK6yTq.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.`);
@@ -123,7 +123,7 @@ function computeRollup(status) {
123
123
  };
124
124
  if (status.cf_status === "pending_issuance" || status.cf_status === "active" && status.ssl_status !== "active") return {
125
125
  state: "issuing_cert",
126
- diagnostic: status.cname_target ? "Cloudflare is issuing the SSL certificate automatically (typically <5 minutes). If this persists, confirm the traffic CNAME below is published." : "Cloudflare is issuing the SSL certificate automatically (typically <5 minutes)."
126
+ diagnostic: "Cloudflare is issuing the SSL certificate automatically (typically <5 minutes). If this persists, confirm the traffic CNAME below is published."
127
127
  };
128
128
  if (status.cf_status === "pending_deployment") return {
129
129
  state: "deploying_cert",
@@ -157,7 +157,7 @@ async function domainStatus(client, projectId, hostname, verbose) {
157
157
  note(rollupLines.join("\n"), "Domain Status");
158
158
  let cnameSection;
159
159
  let ownershipSection;
160
- if (status.cname_target && status.ssl_status !== "active") cnameSection = `CNAME (traffic)\n ${status.hostname} → ${status.cname_target}`;
160
+ if (status.ssl_status !== "active") cnameSection = `CNAME (traffic)\n ${status.hostname} → ${status.cname_target}`;
161
161
  if (status.ownership_verification) ownershipSection = `TXT (ownership verification)\n ${status.ownership_verification.name} → ${status.ownership_verification.value}`;
162
162
  const pendingRecords = [cnameSection, ownershipSection].filter((s) => s !== void 0);
163
163
  if (pendingRecords.length > 0) note(pendingRecords.join("\n\n"), pendingRecords.length === 1 ? "Add this DNS record to your provider" : "Add these DNS records to your provider");
@@ -2,13 +2,13 @@ import { a as join } from "./dist-BVqXeR_h.mjs";
2
2
  import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
3
3
  import { m as readConfig } from "./config-Br_JZD6u.mjs";
4
4
  import { a as scanEmailHandlersSync } from "./email--tEtMoj_.mjs";
5
- import { L as resolveDeployTransport, O as isWranglerNonInteractiveOrCI, X as runWranglerAuthToken, _ as deriveWorkerName, _t as createNodeEmailDns, bt as renderAddressMap, gt as applyEmailSetup, h as createDeployWranglerRunner, k as loadProvisionModule, v as discoverRootWranglerConfig, vt as findEmailConfigConflicts, xt as renderEmailChecklist, yt as preflightEmail } from "./deploy-gCVaiJbS.mjs";
6
- import { r as readProjectConfig } from "./project-DKG5Ra8p.mjs";
7
- import { c as getToken, u as openBrowser } from "./auth-CQkSDS50.mjs";
8
- import { A as writeProvisionedWranglerConfig } from "./wrangler-7K-bW_DL.mjs";
9
- import { A as confirm, B as note, L as log, U as password, tt as isCancel } from "./prompts-BNUoTiaf.mjs";
10
- import { n as PlatformClient, t as PlatformApiError } from "./client-DKAsFA4X.mjs";
11
- import { c as import_picocolors, i as createSpinner } from "./output-CbM85T4k.mjs";
5
+ import { B as resolveDeployTransport, F as isWranglerNonInteractiveOrCI, G as deriveWorkerName, I as runWranglerAuthToken, N as createDeployWranglerRunner, d as applyEmailSetup, f as createNodeEmailDns, g as renderEmailChecklist, h as renderAddressMap, j as discoverRootWranglerConfig, m as preflightEmail, p as findEmailConfigConflicts, q as loadProvisionModule } from "./deploy-DfsAe-T0.mjs";
6
+ import { r as readProjectConfig } from "./project-BkbfDs0V.mjs";
7
+ import { A as writeProvisionedWranglerConfig } from "./wrangler-DhUerFkW.mjs";
8
+ import { c as getToken, u as openBrowser } from "./auth-7wuZ5ob8.mjs";
9
+ import { A as confirm, B as note, L as log, U as password, tt as isCancel } from "./prompts-6OSVA7DJ.mjs";
10
+ import { n as PlatformApiError, r as PlatformClient } from "./client-RsPo8wsP.mjs";
11
+ import { c as import_picocolors, r as createSpinner } from "./output-BBsUwdyT.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";
@@ -1,16 +1,14 @@
1
1
  import { a as join } from "./dist-BVqXeR_h.mjs";
2
- import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-DKG5Ra8p.mjs";
3
- import { c as getToken } from "./auth-CQkSDS50.mjs";
2
+ import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-BkbfDs0V.mjs";
3
+ import { c as getToken } from "./auth-7wuZ5ob8.mjs";
4
4
  import { r as generateEnvTypes, t as findEnvFile } from "./env-types-D5kds_OZ.mjs";
5
- import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-C_8tPdhs.mjs";
6
- import { B as note, H as outro, L as log, N as intro } from "./prompts-BNUoTiaf.mjs";
7
- import { n as PlatformClient } from "./client-DKAsFA4X.mjs";
8
- import { r as cliTitle } from "./output-CbM85T4k.mjs";
5
+ import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-vBSQ8gw5.mjs";
6
+ import { B as note, H as outro, L as log } from "./prompts-6OSVA7DJ.mjs";
7
+ import { r as PlatformClient } from "./client-RsPo8wsP.mjs";
9
8
  import { mkdirSync, writeFileSync } from "node:fs";
10
9
  //#region src/cli/env.ts
11
10
  async function runEnvCommand(root, args) {
12
11
  console.log();
13
- intro(cliTitle(`env ${args.subcommand}`));
14
12
  if (args.subcommand === "check") {
15
13
  await runCheck(root, args.useRemoteSecrets);
16
14
  return;
@@ -26,7 +24,7 @@ async function runCheck(root, useRemoteSecrets) {
26
24
  const platform = readDeploymentPlatform(root);
27
25
  if (platform === "none") throw new Error("env: Deployment is disabled. Run `void init` to choose a platform.");
28
26
  if (platform === "cloudflare") {
29
- const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-BCdXSsmo.mjs");
27
+ const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-BhbK6yTq.mjs");
30
28
  remoteSecrets = await listCloudflareSecrets(resolveCloudflareOperationContext(root));
31
29
  } else {
32
30
  const token = getToken(root);
@@ -1,2 +1,2 @@
1
- import { a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars, r as SelfHostSchemaError } from "./env-validation-C_8tPdhs.mjs";
1
+ import { a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars, r as SelfHostSchemaError } from "./env-validation-vBSQ8gw5.mjs";
2
2
  export { SelfHostSchemaError, computeInvalidEmittedKeys, deriveSelfHostSchemaFacts, readEmittedWorkerVars };
@@ -0,0 +1,2 @@
1
+ import { r as runGenCommand } from "./gen-NjwoG9FK.mjs";
2
+ export { runGenCommand };
@@ -3,10 +3,9 @@ import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
3
3
  import { m as readConfig, u as getDatabaseDialect } from "./config-Br_JZD6u.mjs";
4
4
  import { n as readJournal, t as collectMigrations } from "./collect-DiTn9yr6.mjs";
5
5
  import { n as ensureProjectTsconfig } from "./project-tsconfig-B8GeM0RM.mjs";
6
- import { H as outro, K as select, L as log, N as intro, O as cancel, tt as isCancel } from "./prompts-BNUoTiaf.mjs";
7
- import { t as writeDrizzleConfig } from "./config-D8MOgiQV.mjs";
6
+ import { H as outro, K as select, L as log, O as cancel, tt as isCancel } from "./prompts-6OSVA7DJ.mjs";
8
7
  import { r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-ctOrgiS3.mjs";
9
- import { r as cliTitle } from "./output-CbM85T4k.mjs";
8
+ import { t as writeDrizzleConfig } from "./config-D8MOgiQV.mjs";
10
9
  import { t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-BV4AzNul.mjs";
11
10
  import { existsSync, mkdirSync, readFileSync, readdirSync, unlinkSync, writeFileSync } from "node:fs";
12
11
  import { fileURLToPath } from "node:url";
@@ -15,7 +14,6 @@ import { spawnSync } from "node:child_process";
15
14
  const drizzleKitBin = join(fileURLToPath(import.meta.resolve("drizzle-kit")), "..", "bin.cjs");
16
15
  async function runGenCommand(root, args) {
17
16
  console.log();
18
- intro(cliTitle("gen"));
19
17
  if (args.subcommand === "model") await runModel(root, args.name, args.columns);
20
18
  else if (args.subcommand === "migration") runMigration(root, args.name);
21
19
  else if (args.subcommand === "route") runRoute(root, args.path, args.methods);
@@ -1,8 +1,8 @@
1
- import { r as readProjectConfig } from "./project-DKG5Ra8p.mjs";
2
- import { c as getToken, n as createCodeChallenge, r as createCodeVerifier, t as awaitBrowserCallback, u as openBrowser } from "./auth-CQkSDS50.mjs";
3
- import { A as confirm, K as select, L as log, O as cancel, X as text, tt as isCancel } from "./prompts-BNUoTiaf.mjs";
4
- import { n as PlatformClient, o as parsePlatformErrorBody, s as platformErrorMessage, t as PlatformApiError } from "./client-DKAsFA4X.mjs";
5
- import { c as import_picocolors } from "./output-CbM85T4k.mjs";
1
+ import { r as readProjectConfig } from "./project-BkbfDs0V.mjs";
2
+ import { c as getToken, n as createCodeChallenge, r as createCodeVerifier, t as awaitBrowserCallback, u as openBrowser } from "./auth-7wuZ5ob8.mjs";
3
+ import { A as confirm, K as select, L as log, O as cancel, X as text, tt as isCancel } from "./prompts-6OSVA7DJ.mjs";
4
+ import { c as platformErrorMessage, n as PlatformApiError, r as PlatformClient, s as parsePlatformErrorBody } from "./client-RsPo8wsP.mjs";
5
+ import { c as import_picocolors } from "./output-BBsUwdyT.mjs";
6
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";
@@ -505,9 +505,8 @@ async function runConnect(root, client, args) {
505
505
  workflowPath,
506
506
  ...extra
507
507
  });
508
- let connection;
509
508
  try {
510
- connection = await attemptConnect();
509
+ await attemptConnect();
511
510
  } catch (err) {
512
511
  if (!(err instanceof PlatformApiError)) throw err;
513
512
  if (err.status === 403 && err.code === "connect_authorization_required") {
@@ -517,7 +516,7 @@ async function runConnect(root, client, args) {
517
516
  }
518
517
  const grant = await runGithubConnectAuthorize(client, installation.installation_id, repoFullName);
519
518
  try {
520
- connection = await attemptConnect({
519
+ await attemptConnect({
521
520
  connectGrant: grant.connectGrant,
522
521
  codeVerifier: grant.codeVerifier
523
522
  });
@@ -537,10 +536,6 @@ async function runConnect(root, client, args) {
537
536
  throw err;
538
537
  }
539
538
  }
540
- if (workflowPath !== void 0 && connection.workflow_path !== workflowPath) {
541
- log.error(`connect: server did not apply workflow path ${workflowPath} (got ${connection.workflow_path ?? "none"}). The platform may be too old to support a custom workflow path.`);
542
- process.exit(1);
543
- }
544
539
  log.success(`Connected ${repoFullName} (${branch}) → project. Push to ${branch} to deploy.`);
545
540
  }
546
541
  async function runGithubUpdate(root, client, args) {
@@ -677,10 +672,6 @@ async function runGithubUpdate(root, client, args) {
677
672
  }
678
673
  throw err;
679
674
  }
680
- if (patch.workflowPath !== void 0 && updated.workflow_path !== patch.workflowPath) {
681
- log.error(`update: server did not apply workflow path ${patch.workflowPath} (got ${updated.workflow_path ?? "none"}). The platform may be too old to support a custom workflow path.`);
682
- process.exit(1);
683
- }
684
675
  log.success(`Updated ${updated.repo_full_name} → branch ${updated.branch}, executor ${updated.build_executor}, workflow ${updated.workflow_path}.`);
685
676
  }
686
677
  /**
@@ -0,0 +1,2 @@
1
+ import { r as printHelpPage } from "./help-DRZXC4fj.mjs";
2
+ export { printHelpPage };
@@ -1,8 +1,8 @@
1
1
  import { a as join } from "./dist-BVqXeR_h.mjs";
2
- import { B as note, H as outro } from "./prompts-BNUoTiaf.mjs";
2
+ import { B as note, H as outro } from "./prompts-6OSVA7DJ.mjs";
3
3
  import { n as getPackageDir } from "./agents-B_pX_HmQ.mjs";
4
- import { c as import_picocolors, s as helpLine, t as categoryTitle, u as sectionTitle } from "./output-CbM85T4k.mjs";
5
- import { n as operatorGroups, t as operatorCommands } from "./operator-args-B3BTmSoi.mjs";
4
+ import { c as import_picocolors, s as helpLine, t as categoryTitle, u as sectionTitle } from "./output-BBsUwdyT.mjs";
5
+ import { n as operatorGroups, t as operatorCommands } from "./operator-args-CAVcmwUt.mjs";
6
6
  import { readFileSync } from "node:fs";
7
7
  //#region src/cli/ascii.ts
8
8
  const asciiArts = [
package/dist/index.d.mts CHANGED
@@ -7,20 +7,7 @@ import { Plugin } from "vite";
7
7
  //#region src/router/parse-filename.d.ts
8
8
  type RouteEnvironment = "dev" | "prod";
9
9
  //#endregion
10
- //#region src/index.d.ts
11
- /**
12
- * Decide whether to inject a Workers AI binding into the built wrangler config.
13
- *
14
- * Builds use the production binding. During dev, a project explicitly saved
15
- * with the direct Cloudflare destination uses Cloudflare's remote binding;
16
- * managed and unsaved projects keep using the Void HTTPS proxy.
17
- *
18
- * `!resolvedAi` is load-bearing: mergeBindings' return is defu-merged over the
19
- * resolved root-wrangler config and wins, so skipping when the user already
20
- * declared an `ai` binding avoids clobbering theirs. `!resultAi` is harmless
21
- * defense-in-depth (nothing else in mergeBindings sets `result.ai`).
22
- */
23
- export declare function shouldBindWorkersAi(command: string, needsAI: boolean, resolvedAi: unknown, resultAi: unknown, directCloudflareDev?: boolean): boolean;
10
+ //#region src/plugin-binding-utils.d.ts
24
11
  /**
25
12
  * Decide whether to inject the `void dev` email-inbox loopback var.
26
13
  *
@@ -43,8 +30,25 @@ export declare function shouldBindWorkersAi(command: string, needsAI: boolean, r
43
30
  * only arm a path that must then fail; gate on it instead.
44
31
  */
45
32
  export declare function shouldInjectEmailDevInboxVar(routeEnvironment: RouteEnvironment, needsEmail: boolean | undefined, assetsBinding: string | undefined): boolean;
33
+ //#endregion
34
+ //#region src/plugin-ai-setup.d.ts
35
+ /**
36
+ * Decide whether to inject a Workers AI binding into the built wrangler config.
37
+ *
38
+ * Builds use the production binding. During dev, a project explicitly saved
39
+ * with the direct Cloudflare destination uses Cloudflare's remote binding;
40
+ * managed and unsaved projects keep using the Void HTTPS proxy.
41
+ *
42
+ * `!resolvedAi` is load-bearing: mergeBindings' return is defu-merged over the
43
+ * resolved root-wrangler config and wins, so skipping when the user already
44
+ * declared an `ai` binding avoids clobbering theirs. `!resultAi` is harmless
45
+ * defense-in-depth (nothing else in mergeBindings sets `result.ai`).
46
+ */
47
+ export declare function shouldBindWorkersAi(command: string, needsAI: boolean, resolvedAi: unknown, resultAi: unknown, directCloudflareDev?: boolean): boolean;
46
48
  /** Resolve the runtime Workers AI binding, preserving a root Wrangler declaration. */
47
49
  export declare function resolveWorkersAiBindingName(resolvedAi: unknown, configuredName?: string): string;
50
+ //#endregion
51
+ //#region src/index.d.ts
48
52
  export declare function voidPlugin(options?: {
49
53
  persistTo?: string;
50
54
  auxiliaryWorkers?: PluginConfig["auxiliaryWorkers"];