void 0.10.10 → 0.10.12

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 (109) hide show
  1. package/AGENT_PROMPT.md +4 -0
  2. package/README.md +1 -1
  3. package/dist/{agents-Bmr5tFFb.mjs → agents-CtgBYqld.mjs} +1 -1
  4. package/dist/{auth-cmd-Cw1edJdZ.mjs → auth-cmd-BqsdZJp5.mjs} +3 -3
  5. package/dist/{better-auth-shared-BvnM9px6.d.mts → better-auth-shared-DealXecJ.d.mts} +1 -1
  6. package/dist/{build-cmd-C6kNDJBv.mjs → build-cmd-Bujrv5q-.mjs} +3 -3
  7. package/dist/{cache-DIUSnIjJ.mjs → cache-C11V8Fxq.mjs} +3 -3
  8. package/dist/{cancel-deploy-BosnzEHC.mjs → cancel-deploy-fwFYF04b.mjs} +2 -2
  9. package/dist/cli/cli.mjs +124 -41
  10. package/dist/cli/env-schema-probe.d.mts +96 -0
  11. package/dist/cli/env-schema-probe.mjs +272 -0
  12. package/dist/{client-C9FG6Vzc.mjs → client-Gb71-XkG.mjs} +12 -2
  13. package/dist/{config-BcAeIPe3.mjs → config-BkTvs43g.mjs} +15 -2
  14. package/dist/{config-BdUctCZD.mjs → config-CutEMNGJ.mjs} +3 -3
  15. package/dist/{create-project-CjYX23M_.mjs → create-project-DsYvl3TB.mjs} +3 -3
  16. package/dist/{db-BvKV34IK.mjs → db-DOiJMRt2.mjs} +27 -27
  17. package/dist/{delete-CThKLXfi.mjs → delete-mh6p-zkQ.mjs} +3 -3
  18. package/dist/deploy-u7Rv9q_q.mjs +7126 -0
  19. package/dist/{discover-BuVVSAum.mjs → discover-CJHyvYfR.mjs} +2 -2
  20. package/dist/dist-DaKKDf8D.mjs +41 -0
  21. package/dist/{domain-DMrBabBQ.mjs → domain-DiaNQbrl.mjs} +2 -2
  22. package/dist/entry-D7yy4xVH.mjs +100 -0
  23. package/dist/{env-BfG7O71F.mjs → env-CZy5MorI.mjs} +5 -5
  24. package/dist/env-mask-Dd47NbR6.mjs +90 -0
  25. package/dist/env-public-BfiLcMBk.d.mts +140 -0
  26. package/dist/{env-types-D51bnR-c.mjs → env-types-QBj-ndax.mjs} +2 -2
  27. package/dist/env-validation-Dea3v3ej.mjs +1069 -0
  28. package/dist/{gen-Bee261SV.mjs → gen-o_w-8yI8.mjs} +8 -8
  29. package/dist/{git-metadata-CBKaL0v5.mjs → git-metadata-D-gurjzG.mjs} +6 -5
  30. package/dist/{github-cmd-DfeFEasr.mjs → github-cmd-DKcGUNsj.mjs} +4 -4
  31. package/dist/{handler-imD0UVDT.d.mts → handler-Cjh8uM3Y.d.mts} +1 -1
  32. package/dist/{headers-CTAjX-UO.mjs → headers-nsHIFixA.mjs} +2 -2
  33. package/dist/index.d.mts +1 -1
  34. package/dist/index.mjs +98 -52
  35. package/dist/{init-xfwW7cLp.mjs → init-3rgHKBVi.mjs} +13 -14
  36. package/dist/{link-Co136MEs.mjs → link-CdGHSIy-.mjs} +4 -4
  37. package/dist/{list-BKDjA3M5.mjs → list-CPwFDZ_c.mjs} +3 -3
  38. package/dist/{login-CrOTnR_6.mjs → login-BT3H8PN3.mjs} +2 -2
  39. package/dist/{logs-DlAg25ww.mjs → logs-Bt313ax7.mjs} +3 -2
  40. package/dist/{mcp-BNjMGMB0.mjs → mcp-DoM3_nhd.mjs} +7 -2
  41. package/dist/{node-CnE-SZCk.mjs → node-Da0UcsGA.mjs} +5 -5
  42. package/dist/{package-json-B0NuUWGd.mjs → package-json-Cx1osYo6.mjs} +1 -1
  43. package/dist/pages/client.d.mts +1 -1
  44. package/dist/pages/index.d.mts +1 -23
  45. package/dist/pages/index.mjs +5 -5
  46. package/dist/pages/islands-plugin.mjs +2 -2
  47. package/dist/pages/protocol.d.mts +2 -2
  48. package/dist/{plugin-inference-CJxi_fWI.mjs → plugin-inference-DMeavIJ6.mjs} +4 -98
  49. package/dist/{prepare-BRyC4TCC.mjs → prepare-BoKHgMNx.mjs} +10 -10
  50. package/dist/preset-BjyR3lzz.mjs +592 -0
  51. package/dist/{project-cmd-B2bcKefD.mjs → project-cmd-D_w-4w5B.mjs} +13 -9
  52. package/dist/{project-paths-tpdR1mJR.mjs → project-paths-BQd7OmIo.mjs} +1 -1
  53. package/dist/project-paths-GpziKeQQ.d.mts +25 -0
  54. package/dist/{project-tsconfig-D9uSVVpA.mjs → project-tsconfig-B-QtXjLQ.mjs} +2 -2
  55. package/dist/{protocol-6hTJ04T1.d.mts → protocol-Bnb0LFp3.d.mts} +1 -1
  56. package/dist/provision-rShh6MKY.mjs +2557 -0
  57. package/dist/requests-B8sZxaFM.mjs +50 -0
  58. package/dist/{resolve-project-D2HI3TrG.mjs → resolve-project-BBMtLLV9.mjs} +1 -1
  59. package/dist/{rollback-9dfmB-YZ.mjs → rollback-CkvTFXx5.mjs} +2 -2
  60. package/dist/{route-types-CfKfhbIg.mjs → route-types-COI2DsZv.mjs} +2 -2
  61. package/dist/{runner-h272wcPj.mjs → runner-kapo9aPs.mjs} +3 -3
  62. package/dist/{runner-pg-waxJOnBb.mjs → runner-pg-CHM76xuC.mjs} +1 -1
  63. package/dist/runtime/better-auth-pg.d.mts +1 -1
  64. package/dist/runtime/better-auth.d.mts +1 -1
  65. package/dist/runtime/env-public.d.mts +1 -139
  66. package/dist/runtime/env-public.mjs +2 -90
  67. package/dist/runtime/handler.d.mts +1 -1
  68. package/dist/runtime/live.d.mts +1 -1
  69. package/dist/runtime/validator.d.mts +1 -1
  70. package/dist/runtime/ws-server.d.mts +1 -1
  71. package/dist/runtime/ws.d.mts +2 -2
  72. package/dist/{scan-Dp_Gyzs3.mjs → scan-DEwlM_Xy.mjs} +2 -2
  73. package/dist/{scan-i7Yz54fv.mjs → scan-DYXkrasO.mjs} +4 -4
  74. package/dist/{secret-DeMnMcV0.mjs → secret-Dt32J6RI.mjs} +3 -3
  75. package/dist/{skills-DsdNDtX3.mjs → skills-CLjN0uUO.mjs} +2 -2
  76. package/dist/{subcommand-prompt-DtES-oP6.mjs → subcommand-prompt-BzV8iQZo.mjs} +1 -1
  77. package/dist/sveltekit.mjs +1 -1
  78. package/dist/{validate-DT7nFMlf.mjs → validate-Cw_RLeTj.mjs} +1 -1
  79. package/dist/{yarn-pnp-CW8LB6g_.mjs → yarn-pnp-DJn3SAHF.mjs} +1 -1
  80. package/getting-started-prompt.txt +3 -1
  81. package/package.json +5 -3
  82. package/schema.json +5 -0
  83. package/skills/void/SKILL.md +34 -33
  84. package/skills/void/docs/guide/app-types.md +43 -0
  85. package/skills/void/docs/guide/auth.md +8 -0
  86. package/skills/void/docs/guide/deployment.md +1 -1
  87. package/skills/void/docs/guide/edge/static-assets.md +23 -0
  88. package/skills/void/docs/guide/env-vars.md +14 -6
  89. package/skills/void/docs/guide/queues.md +4 -0
  90. package/skills/void/docs/integrations/cloudflare.md +64 -5
  91. package/skills/void/docs/integrations/frameworks/overview.md +1 -0
  92. package/skills/void/docs/node_modules/void/AGENT_PROMPT.md +4 -0
  93. package/skills/void/docs/node_modules/void/README.md +1 -1
  94. package/skills/void/docs/node_modules/void/node_modules/@types/proper-lockfile/README.md +51 -0
  95. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathslash/README.md +64 -0
  96. package/skills/void/docs/node_modules/void/node_modules/pathslash/README.md +64 -0
  97. package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/CHANGELOG.md +108 -0
  98. package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/README.md +183 -0
  99. package/skills/void/docs/node_modules/void/skills/void/SKILL.md +34 -33
  100. package/skills/void/docs/node_modules/void/test/e2e/README.md +85 -0
  101. package/skills/void/docs/reference/cli.md +74 -14
  102. package/skills/void/docs/reference/config.md +27 -1
  103. package/dist/deploy-B02JyKP9.mjs +0 -3748
  104. package/dist/dotenv-D_UbC_vc.mjs +0 -173
  105. package/dist/env-validation-CeC2FL66.mjs +0 -163
  106. package/dist/pathe.M-eThtNZ-CQzLbt4c.mjs +0 -150
  107. package/dist/preset-CVvwCeIy.mjs +0 -208
  108. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathe/README.md +0 -73
  109. package/skills/void/docs/node_modules/void/node_modules/pathe/README.md +0 -73
@@ -1,11 +1,11 @@
1
- import { a as join, n as dirname, s as relative } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
2
- import { D as outro, T as log, a as cliTitle, j as isCancel, k as select, w as intro, x as cancel } from "./agents-Bmr5tFFb.mjs";
3
- import { n as readProjectPaths } from "./project-paths-tpdR1mJR.mjs";
4
- import { n as ensureProjectTsconfig } from "./project-tsconfig-D9uSVVpA.mjs";
5
- import { c as getDatabaseDialect, f as readConfig } from "./config-BcAeIPe3.mjs";
6
- import { n as writeDrizzleConfig } from "./config-BdUctCZD.mjs";
7
- import { c as collectMigrations, n as listDrizzleArtifacts, t as assertJournalCoherence, u as readJournal } from "./validate-DT7nFMlf.mjs";
8
- import { t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-CW8LB6g_.mjs";
1
+ import { a as join, n as dirname, s as relative } from "./dist-DaKKDf8D.mjs";
2
+ import { D as outro, T as log, a as cliTitle, j as isCancel, k as select, w as intro, x as cancel } from "./agents-CtgBYqld.mjs";
3
+ import { n as readProjectPaths } from "./project-paths-BQd7OmIo.mjs";
4
+ import { n as ensureProjectTsconfig } from "./project-tsconfig-B-QtXjLQ.mjs";
5
+ import { c as getDatabaseDialect, f as readConfig } from "./config-BkTvs43g.mjs";
6
+ import { n as writeDrizzleConfig } from "./config-CutEMNGJ.mjs";
7
+ import { c as collectMigrations, n as listDrizzleArtifacts, t as assertJournalCoherence, u as readJournal } from "./validate-Cw_RLeTj.mjs";
8
+ import { t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-DJn3SAHF.mjs";
9
9
  import { existsSync, mkdirSync, readFileSync, readdirSync, unlinkSync, writeFileSync } from "node:fs";
10
10
  import { fileURLToPath } from "node:url";
11
11
  import { spawnSync } from "node:child_process";
@@ -1,6 +1,6 @@
1
1
  import { execFileSync } from "node:child_process";
2
2
  //#region src/cli/git-metadata.ts
3
- function git(root, args) {
3
+ function git(root, args, env) {
4
4
  try {
5
5
  return execFileSync("git", args, {
6
6
  cwd: root,
@@ -9,7 +9,8 @@ function git(root, args) {
9
9
  "ignore",
10
10
  "pipe",
11
11
  "ignore"
12
- ]
12
+ ],
13
+ env
13
14
  }).trim();
14
15
  } catch {
15
16
  return null;
@@ -60,17 +61,17 @@ function getGitHubRepositoryUrl(env) {
60
61
  if (!env.GITHUB_REPOSITORY) return null;
61
62
  return normalizeGitRemoteUrl(`${env.GITHUB_SERVER_URL ?? "https://github.com"}/${env.GITHUB_REPOSITORY}`);
62
63
  }
63
- function collectGitDeployMetadata(root, commit, env = process.env) {
64
+ function collectGitDeployMetadata(root, commit, env = process.env, childEnv = process.env) {
64
65
  const repositoryUrl = getGitHubRepositoryUrl(env) ?? normalizeGitRemoteUrl(git(root, [
65
66
  "remote",
66
67
  "get-url",
67
68
  "origin"
68
- ]));
69
+ ], childEnv));
69
70
  const gitRef = getGitRefFromEnv(env) ?? git(root, [
70
71
  "rev-parse",
71
72
  "--abbrev-ref",
72
73
  "HEAD"
73
- ]);
74
+ ], childEnv);
74
75
  return {
75
76
  commit,
76
77
  commitUrl: buildCommitUrl(repositoryUrl, commit),
@@ -1,7 +1,7 @@
1
- import { A as text, S as confirm, T as log, j as isCancel, k as select, u as import_picocolors, x as cancel } from "./agents-Bmr5tFFb.mjs";
2
- import { b as readProjectConfig, c as createCodeChallenge, f as getToken, h as openBrowser, l as createCodeVerifier, n as PlatformClient, o as parsePlatformErrorBody, s as awaitBrowserCallback, t as PlatformApiError } from "./client-C9FG6Vzc.mjs";
3
- import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D2HI3TrG.mjs";
4
- import { t as collectGitDeployMetadata } from "./git-metadata-CBKaL0v5.mjs";
1
+ import { A as text, S as confirm, T as log, j as isCancel, k as select, u as import_picocolors, x as cancel } from "./agents-CtgBYqld.mjs";
2
+ import { b as readProjectConfig, c as createCodeChallenge, f as getToken, h as openBrowser, l as createCodeVerifier, n as PlatformClient, o as parsePlatformErrorBody, s as awaitBrowserCallback, t as PlatformApiError } from "./client-Gb71-XkG.mjs";
3
+ import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-BBMtLLV9.mjs";
4
+ import { t as collectGitDeployMetadata } from "./git-metadata-D-gurjzG.mjs";
5
5
  import { randomBytes } from "node:crypto";
6
6
  //#region src/cli/github-cmd.ts
7
7
  /**
@@ -1,6 +1,6 @@
1
+ import { t as StandardSchemaV1 } from "./standard-schema-DJ0HW7QP.mjs";
1
2
  import { n as HeadDescriptor } from "./head-nmvOgFjd.mjs";
2
3
  import { r as AuthUser, t as AuthSession } from "./auth-qgMlYp7Z.mjs";
3
- import { t as StandardSchemaV1 } from "./standard-schema-DJ0HW7QP.mjs";
4
4
  import { Context, Env, MiddlewareHandler } from "hono";
5
5
  import { RewriteDestination } from "void/routes";
6
6
 
@@ -1,5 +1,5 @@
1
- import { a as join } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
2
- import { a as convertRedirectsConfig, d as parseHostPrefixedSource, i as convertHeadersConfig, o as convertRewritesConfig, r as convertFallbacksConfig, s as countSplats, t as VALID_REDIRECT_STATUSES, u as isProtocolRelative } from "./config-BcAeIPe3.mjs";
1
+ import { a as join } from "./dist-DaKKDf8D.mjs";
2
+ import { a as convertRedirectsConfig, d as parseHostPrefixedSource, i as convertHeadersConfig, o as convertRewritesConfig, r as convertFallbacksConfig, s as countSplats, t as VALID_REDIRECT_STATUSES, u as isProtocolRelative } from "./config-BkTvs43g.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
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { n as HeadDescriptor } from "./head-nmvOgFjd.mjs";
2
2
  import { r as AuthUser } from "./auth-qgMlYp7Z.mjs";
3
- import { C as defer, E as ValidatorSlots, S as InferProps, T as HandlerInput, _ as defineQueue, a as CloudEnv, b as Deferred, c as QueueRetryOptions, d as TypedQueueHandler, f as VoidAssetRewriteError, g as defineMiddleware, h as defineHead, i as CloudContextVariables, l as RenderAssetTags, m as defineHandler, o as QueueBatch, p as basicAuth, r as CloudContext, s as QueueMessage, t as BasicAuthOptions, u as TypedHandler, v as defineRender, x as DeferredState, y as defineScheduled } from "./handler-imD0UVDT.mjs";
3
+ import { C as defer, E as ValidatorSlots, S as InferProps, T as HandlerInput, _ as defineQueue, a as CloudEnv, b as Deferred, c as QueueRetryOptions, d as TypedQueueHandler, f as VoidAssetRewriteError, g as defineMiddleware, h as defineHead, i as CloudContextVariables, l as RenderAssetTags, m as defineHandler, o as QueueBatch, p as basicAuth, r as CloudContext, s as QueueMessage, t as BasicAuthOptions, u as TypedHandler, v as defineRender, x as DeferredState, y as defineScheduled } from "./handler-Cjh8uM3Y.mjs";
4
4
  import { QueueMap } from "./runtime/queues.mjs";
5
5
  import { PluginConfig } from "@cloudflare/vite-plugin";
6
6
  import { Plugin } from "vite";
package/dist/index.mjs CHANGED
@@ -1,23 +1,24 @@
1
1
  import { r as __toESM } from "./rolldown-runtime-DJK8HYOj.mjs";
2
- import { a as join, n as dirname, s as relative } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
3
- import { M as require_picocolors } from "./agents-Bmr5tFFb.mjs";
4
- import { C as isSandboxEnabled, D as resolveAssetRoutingPolicy, E as hasDocumentRoutes, S as SANDBOX_MIGRATION_TAG, T as hasApiRoutes, _ as normalizeWranglerCompatibilityFlags, a as prerenderPagesNode, b as resolveLiveBindingConfig, c as filterLoadedEnv, d as LIVE_MIGRATION_TAG, f as ensureWranglerCompat, g as nextDurableObjectMigrationTag, h as hasDurableObjectSqliteMigration, i as prerenderPages, l as resolveRemoteMode, m as ensureWranglerNodejsAlsFlag, n as resolveDistDir, o as collectRevalidate, p as ensureWranglerCompatibilityDate, r as resolveWorkerDirName, s as hasRevalidate, u as stripInternalEnvKeys, v as readExistingLiveBindingConfig, w as resolveSandboxConfig, x as syncWranglerBindings, y as readWranglerCompat } from "./deploy-B02JyKP9.mjs";
5
- import { i as resolveProjectPaths, n as readProjectPaths, t as assertNoRootSourceConventionConflicts } from "./project-paths-tpdR1mJR.mjs";
6
- import { a as scanQueuesSync, c as loadVoidAuthConfig, i as scanWebSocketRoutesSync, n as scanRoutePatternsSync, o as scanJobsSync, r as scanRoutes, s as findVoidAuthConfig, t as scanMiddlewareSync } from "./scan-i7Yz54fv.mjs";
7
- import { b as readProjectConfig, f as getToken, m as isStagingMode } from "./client-C9FG6Vzc.mjs";
8
- import { n as ensureProjectTsconfig, r as writeFileIfChanged } from "./project-tsconfig-D9uSVVpA.mjs";
9
- import { c as getDatabaseDialect, f as readConfig, l as isNodeTarget, p as resolveBindingNames } from "./config-BcAeIPe3.mjs";
10
- import { a as SSR_CLIENT_ENTRY_RELATIVE_PATHS, c as validateSsrEntries, f as isIdentifier, g as walk, i as inferProjectBindings, l as validateSsrEntry, m as isMemberExpression, n as FRAMEWORK_SCAN_DIRS, o as SSR_SERVER_ENTRY_RELATIVE_PATHS, p as isLiteral, r as detectFramework, t as DEFAULT_SCAN_DIRS, u as inferBindingsFromSource } from "./plugin-inference-CJxi_fWI.mjs";
2
+ import { a as join, n as dirname, s as relative } from "./dist-DaKKDf8D.mjs";
3
+ import { M as require_picocolors } from "./agents-CtgBYqld.mjs";
4
+ import { A as resolveAssetRoutingPolicy, C as syncWranglerBindings, D as resolveSandboxConfig, E as isSandboxEnabled, O as hasApiRoutes, S as resolveLiveBindingConfig, T as SANDBOX_MIGRATION_TAG, _ as nextDurableObjectMigrationTag, a as prerenderPagesNode, c as filterLoadedEnv, d as LIVE_MIGRATION_TAG, g as hasDurableObjectSqliteMigration, h as ensureWranglerNodejsAlsFlag, i as prerenderPages, k as hasDocumentRoutes, l as resolveRemoteMode, m as ensureWranglerCompatibilityDate, n as resolveDistDir, o as collectRevalidate, p as ensureWranglerCompat, r as resolveWorkerDirName, s as hasRevalidate, u as stripInternalEnvKeys, v as normalizeWranglerCompatibilityFlags, x as readWranglerCompat, y as readExistingLiveBindingConfig } from "./deploy-u7Rv9q_q.mjs";
5
+ import { i as resolveProjectPaths, n as readProjectPaths, t as assertNoRootSourceConventionConflicts } from "./project-paths-BQd7OmIo.mjs";
6
+ import { a as scanQueuesSync, c as loadVoidAuthConfig, i as scanWebSocketRoutesSync, n as scanRoutePatternsSync, o as scanJobsSync, r as scanRoutes, s as findVoidAuthConfig, t as scanMiddlewareSync } from "./scan-DYXkrasO.mjs";
7
+ import { b as readProjectConfig, f as getToken, m as isStagingMode } from "./client-Gb71-XkG.mjs";
8
+ import { n as ensureProjectTsconfig, r as writeFileIfChanged } from "./project-tsconfig-B-QtXjLQ.mjs";
9
+ import { c as getDatabaseDialect, f as readConfig, l as isNodeTarget, p as resolveBindingNames } from "./config-BkTvs43g.mjs";
10
+ import { a as inferBindingsFromSource, i as inferProjectBindings, n as FRAMEWORK_SCAN_DIRS, o as walk, r as detectFramework, t as DEFAULT_SCAN_DIRS } from "./plugin-inference-DMeavIJ6.mjs";
11
+ import { a as validateSsrEntries, c as isIdentifier, l as isLiteral, n as SSR_SERVER_ENTRY_RELATIVE_PATHS, o as validateSsrEntry, t as SSR_CLIENT_ENTRY_RELATIVE_PATHS, u as isMemberExpression } from "./entry-D7yy4xVH.mjs";
11
12
  import { i as voidWarn, n as voidError, r as voidLog, t as setShowTimestamp } from "./log-ChfPKsVd.mjs";
12
- import { r as parseDotenvFile } from "./dotenv-D_UbC_vc.mjs";
13
- import { i as generateVoidAuthDrizzleSchema, n as generateQueueTypes, o as DRIZZLE_OPERATORS, r as generateVoidAuthDatabaseModule, s as generateDbDts, t as generateRouteTypes } from "./route-types-CfKfhbIg.mjs";
14
- import { t as discoverSchema } from "./discover-BuVVSAum.mjs";
13
+ import { l as parseDotenvFile } from "./preset-BjyR3lzz.mjs";
14
+ import { i as generateVoidAuthDrizzleSchema, n as generateQueueTypes, o as DRIZZLE_OPERATORS, r as generateVoidAuthDatabaseModule, s as generateDbDts, t as generateRouteTypes } from "./route-types-COI2DsZv.mjs";
15
+ import { t as discoverSchema } from "./discover-CJHyvYfR.mjs";
15
16
  import { t as MagicString } from "./magic-string.es-ZQjdJFFn.mjs";
16
- import { n as findEnvFileForPaths, r as generateEnvTypes, t as findEnvFile } from "./env-types-D51bnR-c.mjs";
17
- import { a as loadUserEnvFile } from "./env-validation-CeC2FL66.mjs";
18
- import { i as resolveLayoutIds } from "./scan-Dp_Gyzs3.mjs";
17
+ import { n as findEnvFileForPaths, r as generateEnvTypes, t as findEnvFile } from "./env-types-QBj-ndax.mjs";
18
+ import { h as loadUserEnvFile } from "./env-validation-Dea3v3ej.mjs";
19
+ import { i as resolveLayoutIds } from "./scan-DEwlM_Xy.mjs";
19
20
  import { n as STAGING_PROXY_URL, t as DEFAULT_PROXY_URL } from "./proxy-D-3_D-Gl.mjs";
20
- import { n as lintDuplicateSources, r as mergeRoutingRules, t as lintDestinationSplats } from "./headers-CTAjX-UO.mjs";
21
+ import { n as lintDuplicateSources, r as mergeRoutingRules, t as lintDestinationSplats } from "./headers-nsHIFixA.mjs";
21
22
  import { n as INTERNAL_BINDING_PREFIXES, t as INTERNAL_BINDING_EXACT_NAMES } from "./env-raw-Cx8ElDdj.mjs";
22
23
  import { n as defer } from "./defer-YsYDUoii.mjs";
23
24
  import { VoidAssetRewriteError, basicAuth, defineHandler, defineHead, defineMiddleware, defineQueue, defineRender, defineScheduled } from "./runtime/handler.mjs";
@@ -654,7 +655,7 @@ export function createDb(d1) {
654
655
  const migrationsDir = paths.migrationsDir;
655
656
  if (!(existsSync(migrationsDir) && readdirSync(migrationsDir).some((f) => f.endsWith(".sql")))) {
656
657
  if (dialect === "sqlite") {
657
- const { getApplicationTables, getMiniflareDatabasePath } = await import("./runner-h272wcPj.mjs");
658
+ const { getApplicationTables, getMiniflareDatabasePath } = await import("./runner-kapo9aPs.mjs");
658
659
  if ((await getApplicationTables(getMiniflareDatabasePath(options.localD1PersistRoot ?? join(root, ".void"), options.localD1DatabaseId ?? "local")).catch(() => [])).length > 0) return;
659
660
  }
660
661
  voidWarn(`Schema found but no migrations in ${paths.sourceRelative("db/migrations")}/.\n \`void db push\` syncs the schema to your local DB without creating migration files.
@@ -1654,9 +1655,9 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
1654
1655
  else warn();
1655
1656
  return;
1656
1657
  }
1657
- const { runPgMigrations, getPgAppliedMigrations } = await import("./runner-pg-waxJOnBb.mjs");
1658
- const { collectMigrations } = await import("./validate-DT7nFMlf.mjs").then((n) => n.l);
1659
- const { validateMigrations } = await import("./validate-DT7nFMlf.mjs").then((n) => n.i);
1658
+ const { runPgMigrations, getPgAppliedMigrations } = await import("./runner-pg-CHM76xuC.mjs");
1659
+ const { collectMigrations } = await import("./validate-Cw_RLeTj.mjs").then((n) => n.l);
1660
+ const { validateMigrations } = await import("./validate-Cw_RLeTj.mjs").then((n) => n.i);
1660
1661
  const allMigrations = collectMigrations(migrationsDir);
1661
1662
  const pgApplied = await getPgAppliedMigrations(url);
1662
1663
  const pgAppliedSet = new Set(pgApplied);
@@ -1669,9 +1670,9 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
1669
1670
  const applied = await runPgMigrations(migrationsDir, url);
1670
1671
  if (applied.length > 0) voidLog(`Applied ${applied.length} migration(s): ${applied.join(", ")}`);
1671
1672
  } else if (hasSqlMigrations) {
1672
- const { runMigrations, getMiniflareDatabasePath, getAppliedMigrations } = await import("./runner-h272wcPj.mjs");
1673
- const { collectMigrations } = await import("./validate-DT7nFMlf.mjs").then((n) => n.l);
1674
- const { validateMigrations } = await import("./validate-DT7nFMlf.mjs").then((n) => n.i);
1673
+ const { runMigrations, getMiniflareDatabasePath, getAppliedMigrations } = await import("./runner-kapo9aPs.mjs");
1674
+ const { collectMigrations } = await import("./validate-Cw_RLeTj.mjs").then((n) => n.l);
1675
+ const { validateMigrations } = await import("./validate-Cw_RLeTj.mjs").then((n) => n.i);
1675
1676
  const dbPath = getMiniflareDatabasePath(persistRoot, databaseId);
1676
1677
  const allMigrations = collectMigrations(migrationsDir);
1677
1678
  const appliedRows = await getAppliedMigrations(dbPath);
@@ -1686,7 +1687,7 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
1686
1687
  if (applied.length > 0) voidLog(`Applied ${applied.length} migration(s): ${applied.join(", ")}`);
1687
1688
  }
1688
1689
  if (auth?.enabled) {
1689
- const { runLocalVoidAuthMigrations } = await import("./node-CnE-SZCk.mjs");
1690
+ const { runLocalVoidAuthMigrations } = await import("./node-Da0UcsGA.mjs");
1690
1691
  await runLocalVoidAuthMigrations(root, dialect, persistRoot, databaseId, auth.configPath);
1691
1692
  voidLog("Applied Better Auth migrations");
1692
1693
  }
@@ -3561,9 +3562,19 @@ function compilePageRoutes(lines, scan, pages, options) {
3561
3562
  * Class A framework wrappers. If the app returns 404, check ASSETS binding
3562
3563
  * for static files and set cache headers. Edge caching of hashed assets
3563
3564
  * happens at the dispatch layer (see design doc 0042).
3565
+ *
3566
+ * `notFound` is the RESOLVED `assetConfig.not_found_handling` for this build
3567
+ * (`resolveAssetRoutingPolicy`), and it decides what happens once the asset
3568
+ * binding has also answered 404. It is a separate argument from
3569
+ * `serveSpaFallback` because the two are not derived from each other: the
3570
+ * common worker-first app runs with `not_found_handling: 'none'` and STILL
3571
+ * wants the worker-side shell fallback (that is the whole reason the flag
3572
+ * exists). They are mutually exclusive in practice — `resolveAssetRoutingPolicy`
3573
+ * clears `workerSpaFallback` whenever an explicit `routing.notFound` asks for
3574
+ * anything other than the SPA shell.
3564
3575
  */
3565
- function compileAssetFallbackHelper(assetsDir = "assets", serveSpaFallback = false) {
3566
- const spaFallbackCode = serveSpaFallback ? ` // SPA fallback: when HTML-owning features make
3576
+ function compileAssetFallbackHelper(assetsDir = "assets", serveSpaFallback = false, notFound = "none") {
3577
+ const fallthroughCode = serveSpaFallback ? ` // SPA fallback: when HTML-owning features make
3567
3578
  // assetConfig.not_found_handling = 'none', the asset binding returns 404
3568
3579
  // instead of falling back to index.html itself. Do that fallback here, after
3569
3580
  // user routes/middleware have run, so auth gates and OAuth callbacks see the request first.
@@ -3582,6 +3593,13 @@ function compileAssetFallbackHelper(assetsDir = "assets", serveSpaFallback = fal
3582
3593
  return res;
3583
3594
  }
3584
3595
  }
3596
+ return response;` : notFound === "404-page" ? ` const accept = request.headers.get("accept") ?? "";
3597
+ const assetContentType = asset.headers.get("content-type") ?? "";
3598
+ if (accept.includes("text/html") && assetContentType.includes("text/html")) {
3599
+ const res = new Response(asset.body, asset);
3600
+ res.headers.set("Cache-Control", "no-store");
3601
+ return res;
3602
+ }
3585
3603
  return response;` : ` return response;`;
3586
3604
  return `
3587
3605
  async function serveWithAssets(request, env, response) {
@@ -3596,7 +3614,7 @@ async function serveWithAssets(request, env, response) {
3596
3614
  }
3597
3615
  return res;
3598
3616
  }
3599
- ${spaFallbackCode}
3617
+ ${fallthroughCode}
3600
3618
  }
3601
3619
  `;
3602
3620
  }
@@ -3615,7 +3633,7 @@ ${spaFallbackCode}
3615
3633
  * remote mode (`__VOID_REMOTE`) and replace local bindings with
3616
3634
  * proxy-backed versions.
3617
3635
  */
3618
- function compileWorkerEntry(hasQueues = false, remote, assetsDir = "assets", webSocketClasses = [], runtimeEnvPath = "void/_env", envSchemaModule, sandbox, serveSpaFallback = false, live, isr) {
3636
+ function compileWorkerEntry(hasQueues = false, remote, assetsDir = "assets", webSocketClasses = [], runtimeEnvPath = "void/_env", envSchemaModule, sandbox, serveSpaFallback = false, live, isr, notFound = "none") {
3619
3637
  const remotePath = remote?.remotePath;
3620
3638
  const remoteBindingNames = JSON.stringify(remote?.bindingNames);
3621
3639
  const createRemoteEnvCall = `createRemoteEnv(env${remote?.bindingNames ? `, ${remoteBindingNames}` : ""})`;
@@ -3660,7 +3678,7 @@ function __filterInternalBindings(env) {
3660
3678
  });
3661
3679
  }
3662
3680
  `;
3663
- const assetHelper = compileAssetFallbackHelper(assetsDir, serveSpaFallback);
3681
+ const assetHelper = compileAssetFallbackHelper(assetsDir, serveSpaFallback, notFound);
3664
3682
  const isrImport = isr ? `import { handleIsr } from ${JSON.stringify(isr.runtimePath)};\nimport { __VOID_ISR_REVALIDATE, __VOID_ISR_DEPLOYMENT_ID } from 'virtual:void-routes';\n` : "";
3665
3683
  const isrEnvCapture = isr ? ` env.__VOID_ISR_DEPLOYMENT_ID ??= __VOID_ISR_DEPLOYMENT_ID;\n env.__VOID_ISR_HOST = new URL(request.url).hostname;\n` : "";
3666
3684
  const isrDeploymentStamp = isr ? ` env.__VOID_ISR_DEPLOYMENT_ID ??= __VOID_ISR_DEPLOYMENT_ID;\n` : "";
@@ -4417,6 +4435,15 @@ function routingPlugin(root, options) {
4417
4435
  if (!scan) return false;
4418
4436
  return resolveCurrentAssetRoutingPolicy().workerSpaFallback;
4419
4437
  }
4438
+ /**
4439
+ * The `not_found_handling` the generated worker entry must agree with. Read
4440
+ * off the SAME resolved policy that produces the wrangler asset config, so
4441
+ * the emitted `serveWithAssets` can never disagree with the platform switch
4442
+ * it is standing in for.
4443
+ */
4444
+ function currentNotFoundHandling() {
4445
+ return resolveCurrentAssetRoutingPolicy().assetConfig.not_found_handling ?? "none";
4446
+ }
4420
4447
  function resolveCurrentAssetRoutingPolicy() {
4421
4448
  if (!scan) return resolveAssetRoutingPolicy({
4422
4449
  isSsr: Boolean(ssr),
@@ -4426,7 +4453,8 @@ function routingPlugin(root, options) {
4426
4453
  hasMiddleware: false,
4427
4454
  hasWebSockets: false,
4428
4455
  authEnabled: compileOptions.auth !== null,
4429
- liveEnabled: options.live !== void 0
4456
+ liveEnabled: options.live !== void 0,
4457
+ notFound: options.routing?.notFound
4430
4458
  });
4431
4459
  return resolveAssetRoutingPolicy({
4432
4460
  isSsr: Boolean(ssr),
@@ -4436,7 +4464,8 @@ function routingPlugin(root, options) {
4436
4464
  hasMiddleware: scan.middleware.length > 0,
4437
4465
  hasWebSockets: hasDocumentRoutes(scan.websockets ?? []),
4438
4466
  authEnabled: compileOptions.auth !== null,
4439
- liveEnabled: options.live !== void 0
4467
+ liveEnabled: options.live !== void 0,
4468
+ notFound: options.routing?.notFound
4440
4469
  });
4441
4470
  }
4442
4471
  const outDir = join(root, ".void");
@@ -4497,8 +4526,8 @@ function routingPlugin(root, options) {
4497
4526
  if (!options.target) {
4498
4527
  const migrationsDir = paths.migrationsDir;
4499
4528
  if (existsSync(migrationsDir) || compileOptions.auth) {
4500
- const { collectMigrations } = await import("./validate-DT7nFMlf.mjs").then((n) => n.l);
4501
- const { buildMigrationPlanBundle } = await import("./validate-DT7nFMlf.mjs").then((n) => n.s);
4529
+ const { collectMigrations } = await import("./validate-Cw_RLeTj.mjs").then((n) => n.l);
4530
+ const { buildMigrationPlanBundle } = await import("./validate-Cw_RLeTj.mjs").then((n) => n.s);
4502
4531
  const migrations = existsSync(migrationsDir) ? collectMigrations(migrationsDir) : [];
4503
4532
  const dialect = getDatabaseDialect(readConfig(root));
4504
4533
  compileOptions.migrationHandlerPath = resolveFile(dialect === "postgresql" ? "#self/runtime/migration-handler-pg" : "#self/runtime/migration-handler");
@@ -4519,7 +4548,7 @@ function routingPlugin(root, options) {
4519
4548
  bindingName: options.sandboxBindingName,
4520
4549
  className: options.sandboxClassName,
4521
4550
  runtimePath: sandboxRuntimePath
4522
- } : false, shouldServeSpaFallback(), options.live, isr));
4551
+ } : false, shouldServeSpaFallback(), options.live, isr, currentNotFoundHandling()));
4523
4552
  }
4524
4553
  },
4525
4554
  resolveId: {
@@ -4570,7 +4599,7 @@ function routingPlugin(root, options) {
4570
4599
  bindingName: options.sandboxBindingName,
4571
4600
  className: options.sandboxClassName,
4572
4601
  runtimePath: sandboxRuntimePath
4573
- } : false, shouldServeSpaFallback(), options.live));
4602
+ } : false, shouldServeSpaFallback(), options.live, void 0, currentNotFoundHandling()));
4574
4603
  const structural = event !== "change";
4575
4604
  const pageManifestChanged = isInDirectory(normalizedPath, normalizedPagesDir) && (structural || normalizedPath.endsWith(".md"));
4576
4605
  for (const env of Object.values(devServer.environments)) {
@@ -4705,10 +4734,10 @@ function warnIfPackageJsonIsNotEsm(root) {
4705
4734
  * dead-code-eliminated in `vite build`. Production deploys go through
4706
4735
  * `cli/wrapper.ts` instead.
4707
4736
  */
4708
- function getFrameworkEntry(framework, root, devTriggerToken) {
4737
+ function getFrameworkEntry(framework, root, devTriggerToken, notFound) {
4709
4738
  const isBuild = isViteBuildOrPreview();
4710
4739
  if (!isBuild) writeFrameworkTriggersDispatch(root, devTriggerToken);
4711
- return generateClassATriggerWrapper(root, framework, getOriginalFrameworkEntry(framework, root), isBuild);
4740
+ return generateClassATriggerWrapper(root, framework, getOriginalFrameworkEntry(framework, root), isBuild, void 0, notFound);
4712
4741
  }
4713
4742
  /** The framework's own server entry, before our trigger wrapper. */
4714
4743
  function getOriginalFrameworkEntry(framework, root) {
@@ -4737,7 +4766,7 @@ function getOriginalFrameworkEntry(framework, root) {
4737
4766
  * dispatch file (and its transitive user-cron/queue imports + dev token)
4738
4767
  * would still ship in the production bundle.
4739
4768
  */
4740
- function generateClassATriggerWrapper(root, framework, original, isBuild, assetsDir = "assets") {
4769
+ function generateClassATriggerWrapper(root, framework, original, isBuild, assetsDir = "assets", notFound) {
4741
4770
  const outDir = join(root, ".void");
4742
4771
  mkdirSync(outDir, { recursive: true });
4743
4772
  const wrapperPath = join(outDir, `${framework}-trigger-wrapper.ts`);
@@ -4750,7 +4779,7 @@ export default {
4750
4779
  return serveWithAssets(request, env, await original.fetch(request, env, ctx));
4751
4780
  },
4752
4781
  };
4753
- ${compileAssetFallbackHelper(assetsDir)}
4782
+ ${compileAssetFallbackHelper(assetsDir, false, notFound)}
4754
4783
  ` : `// @ts-nocheck — Auto-generated by Void in dev. Do NOT edit.
4755
4784
  import original from ${JSON.stringify(original)};
4756
4785
 
@@ -4948,10 +4977,10 @@ const STAGING_API_URL = "https://api.staging.void.cloud";
4948
4977
  * block the server. On completion, writes project.json and restarts the server.
4949
4978
  */
4950
4979
  async function runAiSetupPrompt(root, token, staging, server) {
4951
- const { select, text, isCancel, log } = await import("./agents-Bmr5tFFb.mjs").then((n) => n.C);
4952
- const { PlatformClient } = await import("./client-C9FG6Vzc.mjs").then((n) => n.r);
4953
- const { writeProjectConfig } = await import("./client-C9FG6Vzc.mjs").then((n) => n.y);
4954
- const { inferDefaultSlug } = await import("./resolve-project-D2HI3TrG.mjs").then((n) => n.i);
4980
+ const { select, text, isCancel, log } = await import("./agents-CtgBYqld.mjs").then((n) => n.C);
4981
+ const { PlatformClient } = await import("./client-Gb71-XkG.mjs").then((n) => n.r);
4982
+ const { writeProjectConfig } = await import("./client-Gb71-XkG.mjs").then((n) => n.y);
4983
+ const { inferDefaultSlug } = await import("./resolve-project-BBMtLLV9.mjs").then((n) => n.i);
4955
4984
  const client = new PlatformClient(token, staging ? STAGING_API_URL : DEFAULT_API_URL);
4956
4985
  let projects;
4957
4986
  try {
@@ -4977,8 +5006,8 @@ async function runAiSetupPrompt(root, token, staging, server) {
4977
5006
  let projectId;
4978
5007
  let slug;
4979
5008
  if (result === "__create__") {
4980
- const { validateProjectSlug } = await import("./create-project-CjYX23M_.mjs").then((n) => n.a);
4981
- const { createProjectWithSlugRetry } = await import("./create-project-CjYX23M_.mjs").then((n) => n.t);
5009
+ const { validateProjectSlug } = await import("./create-project-DsYvl3TB.mjs").then((n) => n.a);
5010
+ const { createProjectWithSlugRetry } = await import("./create-project-DsYvl3TB.mjs").then((n) => n.t);
4982
5011
  let created;
4983
5012
  try {
4984
5013
  created = await createProjectWithSlugRetry(client, inferDefaultSlug(root), async (defaultSlug) => {
@@ -5209,9 +5238,10 @@ function voidPlugin(options) {
5209
5238
  mkdirSync(outDir, { recursive: true });
5210
5239
  function mergeBindings(resolved) {
5211
5240
  const result = { ...workerConfig };
5212
- if (workerConfig.assets && resolved.assets) {
5213
- delete resolved.assets.not_found_handling;
5214
- delete resolved.assets.run_worker_first;
5241
+ const generatedAssets = workerConfig.assets;
5242
+ if (generatedAssets && resolved.assets) {
5243
+ if (generatedAssets.not_found_handling !== void 0) delete resolved.assets.not_found_handling;
5244
+ if (generatedAssets.run_worker_first !== void 0) delete resolved.assets.run_worker_first;
5215
5245
  }
5216
5246
  const d1Name = bindingNames?.d1 ?? "DB";
5217
5247
  const d1 = [];
@@ -5327,12 +5357,19 @@ function voidPlugin(options) {
5327
5357
  for (const [key, value] of Object.entries(defaults)) if (vars[key] === void 0) vars[key] = value;
5328
5358
  workerConfig.vars = vars;
5329
5359
  }
5360
+ let voidDeployBuildConfig;
5330
5361
  const envPlugin = {
5331
5362
  name: "void:env",
5363
+ api: { getVoidDeployBuildConfig: () => voidDeployBuildConfig },
5332
5364
  config(userConfig, { mode, command }) {
5333
5365
  viteCommand = command;
5334
5366
  const ignored = ["**/.void/**"];
5335
- const { sanitized: env, stripped } = stripInternalEnvKeys(filterLoadedEnv(loadEnv(mode, typeof userConfig.envDir === "string" && userConfig.envDir.length > 0 ? join(root, userConfig.envDir) : root, "")));
5367
+ const rawEnvDir = typeof userConfig.envDir === "string" && userConfig.envDir.length > 0 ? userConfig.envDir : void 0;
5368
+ voidDeployBuildConfig = {
5369
+ mode,
5370
+ envDir: rawEnvDir
5371
+ };
5372
+ const { sanitized: env, stripped } = stripInternalEnvKeys(filterLoadedEnv(loadEnv(mode, rawEnvDir ? join(root, rawEnvDir) : root, "")));
5336
5373
  if (stripped.length > 0) voidWarn(`Ignoring internal env keys from .env files: ${stripped.join(", ")}. These are reserved for Void runtime use.`);
5337
5374
  workerConfig.vars = {
5338
5375
  ...workerConfig.vars,
@@ -5440,12 +5477,20 @@ function voidPlugin(options) {
5440
5477
  }
5441
5478
  };
5442
5479
  if (framework) {
5443
- workerConfig.main = getFrameworkEntry(framework, root, devTriggerToken);
5480
+ workerConfig.main = getFrameworkEntry(framework, root, devTriggerToken, config.routing?.notFound);
5444
5481
  const frameworkBuildWrapperPlugin = {
5445
5482
  name: "void:framework-build-wrapper",
5483
+ config(_userConfig, env) {
5484
+ const notFound = config.routing?.notFound;
5485
+ if (env.command !== "build" || notFound === void 0) return;
5486
+ workerConfig.assets = {
5487
+ ...workerConfig.assets,
5488
+ not_found_handling: notFound
5489
+ };
5490
+ },
5446
5491
  configResolved(resolved) {
5447
5492
  if (resolved.command !== "build") return;
5448
- generateClassATriggerWrapper(root, framework, getOriginalFrameworkEntry(framework, root), true, resolved.build.assetsDir);
5493
+ generateClassATriggerWrapper(root, framework, getOriginalFrameworkEntry(framework, root), true, resolved.build.assetsDir, config.routing?.notFound);
5449
5494
  }
5450
5495
  };
5451
5496
  const existingFlags = workerConfig.compatibility_flags ?? [];
@@ -5546,7 +5591,8 @@ function voidPlugin(options) {
5546
5591
  hasMiddleware,
5547
5592
  hasWebSockets: hasDocumentRoutes(websocketRoutes),
5548
5593
  authEnabled,
5549
- liveEnabled: liveConfig !== void 0
5594
+ liveEnabled: liveConfig !== void 0,
5595
+ notFound: config.routing?.notFound
5550
5596
  });
5551
5597
  workerConfig.main = join(root, ".void", "entry.ts");
5552
5598
  if (jobs.length > 0) workerConfig.triggers = { crons: jobs.flatMap((job) => job.crons) };
@@ -1,17 +1,16 @@
1
- import { a as join, c as resolve, i as isAbsolute, n as dirname, s as relative, t as basename } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
2
- import { A as text, D as outro, E as note, S as confirm, T as log, a as cliTitle, j as isCancel, k as select, n as getAgentById, r as getPackageDir, t as detectAgents, w as intro, x as cancel } from "./agents-Bmr5tFFb.mjs";
3
- import { n as readProjectPaths } from "./project-paths-tpdR1mJR.mjs";
4
- import { S as writeProjectConfig, b as readProjectConfig, f as getToken, m as isStagingMode, n as PlatformClient } from "./client-C9FG6Vzc.mjs";
5
- import { n as ensureProjectTsconfig, t as createProjectTsconfig } from "./project-tsconfig-D9uSVVpA.mjs";
6
- import { c as getDatabaseDialect, f as readConfig } from "./config-BcAeIPe3.mjs";
7
- import { r as detectFramework } from "./plugin-inference-CJxi_fWI.mjs";
8
- import { r as parseDotenvFile, t as expandDotenv } from "./dotenv-D_UbC_vc.mjs";
1
+ import { a as join, c as resolve, i as isAbsolute, n as dirname, s as relative, t as basename } from "./dist-DaKKDf8D.mjs";
2
+ import { A as text, D as outro, E as note, S as confirm, T as log, a as cliTitle, j as isCancel, k as select, n as getAgentById, r as getPackageDir, t as detectAgents, w as intro, x as cancel } from "./agents-CtgBYqld.mjs";
3
+ import { n as readProjectPaths } from "./project-paths-BQd7OmIo.mjs";
4
+ import { S as writeProjectConfig, b as readProjectConfig, f as getToken, m as isStagingMode, n as PlatformClient } from "./client-Gb71-XkG.mjs";
5
+ import { n as ensureProjectTsconfig, t as createProjectTsconfig } from "./project-tsconfig-B-QtXjLQ.mjs";
6
+ import { c as getDatabaseDialect, f as readConfig } from "./config-BkTvs43g.mjs";
7
+ import { r as detectFramework } from "./plugin-inference-DMeavIJ6.mjs";
8
+ import { l as parseDotenvFile, r as formatProjectCommand, s as expandDotenv } from "./preset-BjyR3lzz.mjs";
9
9
  import { t as MagicString } from "./magic-string.es-ZQjdJFFn.mjs";
10
- import { n as writeDrizzleConfig } from "./config-BdUctCZD.mjs";
11
- import { n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-CjYX23M_.mjs";
12
- import { t as promptForLoginToken } from "./login-CrOTnR_6.mjs";
13
- import { r as formatProjectCommand } from "./preset-CVvwCeIy.mjs";
14
- import { n as findInstalledYarnPnpRuntime, r as hasLocalLockfile, t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-CW8LB6g_.mjs";
10
+ import { n as writeDrizzleConfig } from "./config-CutEMNGJ.mjs";
11
+ import { n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-DsYvl3TB.mjs";
12
+ import { t as promptForLoginToken } from "./login-BT3H8PN3.mjs";
13
+ import { n as findInstalledYarnPnpRuntime, r as hasLocalLockfile, t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-DJn3SAHF.mjs";
15
14
  import { createRequire } from "node:module";
16
15
  import { existsSync, mkdirSync, readFileSync, readdirSync, rmdirSync, unlinkSync, writeFileSync } from "node:fs";
17
16
  import { fileURLToPath } from "node:url";
@@ -2796,7 +2795,7 @@ async function runInitCommand(root, initArgs) {
2796
2795
  const agentSetup = await resolveAgentSetup(root);
2797
2796
  injectAgentBlock(root, agentSetup.instructionFilePath);
2798
2797
  if (agentSetup.agents.length > 0) {
2799
- const { linkSkillsForSpecificAgents } = await import("./skills-DsdNDtX3.mjs");
2798
+ const { linkSkillsForSpecificAgents } = await import("./skills-CLjN0uUO.mjs");
2800
2799
  linkSkillsForSpecificAgents(root, agentSetup.agents);
2801
2800
  } else log.info("Skills linking skipped for generic agent setup");
2802
2801
  setupMcpConfig(root, agentSetup.agents);
@@ -1,7 +1,7 @@
1
- import { D as outro, T as log, a as cliTitle, u as import_picocolors, w as intro, x as cancel } from "./agents-Bmr5tFFb.mjs";
2
- import { S as writeProjectConfig, b as readProjectConfig, d as getSiteDomain, f as getToken, n as PlatformClient } from "./client-C9FG6Vzc.mjs";
3
- import { n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-CjYX23M_.mjs";
4
- import { r as resolveProjectBySlug } from "./resolve-project-D2HI3TrG.mjs";
1
+ import { D as outro, T as log, a as cliTitle, u as import_picocolors, w as intro, x as cancel } from "./agents-CtgBYqld.mjs";
2
+ import { S as writeProjectConfig, b as readProjectConfig, d as getSiteDomain, f as getToken, n as PlatformClient } from "./client-Gb71-XkG.mjs";
3
+ import { n as promptAndCreateProject, r as promptProjectSelection } from "./create-project-DsYvl3TB.mjs";
4
+ import { r as resolveProjectBySlug } from "./resolve-project-BBMtLLV9.mjs";
5
5
  //#region src/cli/link.ts
6
6
  async function runLink(root, slug) {
7
7
  console.log();
@@ -1,6 +1,6 @@
1
- import { D as outro, T as log, a as cliTitle, c as ensureUtc, f as tablePrefix, s as dim, u as import_picocolors, w as intro } from "./agents-Bmr5tFFb.mjs";
2
- import { b as readProjectConfig, f as getToken, n as PlatformClient } from "./client-C9FG6Vzc.mjs";
3
- import { r as resolveProjectBySlug } from "./resolve-project-D2HI3TrG.mjs";
1
+ import { D as outro, T as log, a as cliTitle, c as ensureUtc, f as tablePrefix, s as dim, u as import_picocolors, w as intro } from "./agents-CtgBYqld.mjs";
2
+ import { b as readProjectConfig, f as getToken, n as PlatformClient } from "./client-Gb71-XkG.mjs";
3
+ import { r as resolveProjectBySlug } from "./resolve-project-BBMtLLV9.mjs";
4
4
  //#region src/cli/list.ts
5
5
  async function runListCommand(root, slug) {
6
6
  console.log();
@@ -1,5 +1,5 @@
1
- import { D as outro, T as log, a as cliTitle, j as isCancel, k as select, o as createSpinner, u as import_picocolors, w as intro, x as cancel } from "./agents-Bmr5tFFb.mjs";
2
- import { _ as runLogin, a as isExpiredTokenError, f as getToken, g as removeToken, m as isStagingMode, n as PlatformClient, p as getTokenSource, v as saveToken } from "./client-C9FG6Vzc.mjs";
1
+ import { D as outro, T as log, a as cliTitle, j as isCancel, k as select, o as createSpinner, u as import_picocolors, w as intro, x as cancel } from "./agents-CtgBYqld.mjs";
2
+ import { _ as runLogin, a as isExpiredTokenError, f as getToken, g as removeToken, m as isStagingMode, n as PlatformClient, p as getTokenSource, v as saveToken } from "./client-Gb71-XkG.mjs";
3
3
  //#region src/cli/login.ts
4
4
  async function promptForLoginToken(root = process.cwd()) {
5
5
  const provider = await select({
@@ -1,5 +1,5 @@
1
- import { D as outro, T as log, a as cliTitle, s as dim, u as import_picocolors, w as intro } from "./agents-Bmr5tFFb.mjs";
2
- import { b as readProjectConfig, f as getToken, n as PlatformClient } from "./client-C9FG6Vzc.mjs";
1
+ import { D as outro, T as log, a as cliTitle, s as dim, u as import_picocolors, w as intro } from "./agents-CtgBYqld.mjs";
2
+ import { b as readProjectConfig, f as getToken, n as PlatformClient } from "./client-Gb71-XkG.mjs";
3
3
  //#region src/cli/logs.ts
4
4
  async function runLogsCommand(root, filter, range, deployment, level) {
5
5
  console.log();
@@ -73,6 +73,7 @@ function filterLogEntries(entries, level, filter) {
73
73
  if (level === "error") {
74
74
  if (entry.outcome !== "ok") return true;
75
75
  if (entry.exceptions.length > 0) return true;
76
+ if (parseInt(entry.status, 10) >= 500) return true;
76
77
  for (const l of entry.logs) if (l.level === "error") return true;
77
78
  return false;
78
79
  }
@@ -1,5 +1,5 @@
1
- import { a as join, n as dirname } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
2
- import { S as writeProjectConfig, f as getToken, n as PlatformClient } from "./client-C9FG6Vzc.mjs";
1
+ import { a as join, n as dirname } from "./dist-DaKKDf8D.mjs";
2
+ import { S as writeProjectConfig, f as getToken, n as PlatformClient } from "./client-Gb71-XkG.mjs";
3
3
  import { existsSync, readFileSync, readdirSync } from "node:fs";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { createInterface } from "node:readline";
@@ -179,6 +179,11 @@ Available methods on the "void_" object:
179
179
  void_.getLogs(projectId, since, limit?, deploymentId?) → { timestamp, outcome, logs, exceptions, url, method, status }[]
180
180
  since: duration string (e.g. "1h"), limit: number (default 200)
181
181
 
182
+ Requests:
183
+ void_.getRequests(projectId, since, limit?, status?) → { timestamp, type, method, status, bytes, durationMs }[]
184
+ since: duration string (e.g. "1h"), limit: number (default 200), status: class like "5xx" or exact code like "500"
185
+ Edge request metering — includes edge-generated 5xx and static/SPA requests that never invoke a worker.
186
+
182
187
  Secrets:
183
188
  void_.listSecrets(projectId) → { name }[]
184
189
  void_.setSecret(projectId, name, value) → { ok, name }
@@ -1,9 +1,9 @@
1
- import { a as join } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
2
- import { c as loadVoidAuthConfig, s as findVoidAuthConfig } from "./scan-i7Yz54fv.mjs";
3
- import { f as readConfig } from "./config-BcAeIPe3.mjs";
4
- import { a as resolveVoidAuthMigrationSchema } from "./route-types-CfKfhbIg.mjs";
1
+ import { a as join } from "./dist-DaKKDf8D.mjs";
2
+ import { c as loadVoidAuthConfig, s as findVoidAuthConfig } from "./scan-DYXkrasO.mjs";
3
+ import { f as readConfig } from "./config-BkTvs43g.mjs";
4
+ import { a as resolveVoidAuthMigrationSchema } from "./route-types-COI2DsZv.mjs";
5
5
  import { n as applySqliteAuthMigrations, t as applyPgAuthMigrations } from "./auth-migrations-BTZ-ATvQ.mjs";
6
- import { getMiniflareDatabasePath } from "./runner-h272wcPj.mjs";
6
+ import { getMiniflareDatabasePath } from "./runner-kapo9aPs.mjs";
7
7
  import { loadEnv } from "vite";
8
8
  //#region src/auth/node.ts
9
9
  async function runLocalVoidAuthMigrations(root, dialect, persistRoot = join(root, ".void"), databaseId = "local", configPath = findVoidAuthConfig(root)) {
@@ -1,4 +1,4 @@
1
- import { a as join, n as dirname } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
1
+ import { a as join, n as dirname } from "./dist-DaKKDf8D.mjs";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  //#region src/shared/package-json.ts
4
4
  const DEFAULT_DEPENDENCY_FIELDS = ["dependencies", "devDependencies"];
@@ -1,4 +1,4 @@
1
- import { t as PageObject } from "../protocol-6hTJ04T1.mjs";
1
+ import { t as PageObject } from "../protocol-Bnb0LFp3.mjs";
2
2
  import { CacheForInput, CacheForResult } from "./prefetch.mjs";
3
3
 
4
4
  //#region src/pages/action-result.d.ts
@@ -1,30 +1,8 @@
1
1
  import { a as renderHtmlAttrs, i as renderHeadToString, n as HeadDescriptor, o as resolveHead, r as renderBodyAttrs, t as HeadConfig } from "../head-nmvOgFjd.mjs";
2
+ import { n as resolvePagesDir, t as ProjectPaths } from "../project-paths-GpziKeQQ.mjs";
2
3
  import { i as PageDefinition, n as LayoutDefinition, o as PageScanResult, r as NamedLayoutDefinition } from "../types-lLjNE9Qp.mjs";
3
4
  import { serializePageData } from "./serialize.mjs";
4
- import { RewriteDestination } from "void/routes";
5
5
 
6
- //#region src/project-paths.d.ts
7
- type ProjectPaths = {
8
- root: string;
9
- sourceDir: string;
10
- sourceRoot: string;
11
- routesDir: string;
12
- middlewareDir: string;
13
- cronsDir: string;
14
- queuesDir: string;
15
- pagesDir: string;
16
- dbDir: string;
17
- migrationsDir: string;
18
- schemaFile: string;
19
- schemaDir: string;
20
- srcDir: string;
21
- ssrDir: string;
22
- sourceRelative: (path: string) => string;
23
- authConfigCandidates: ReadonlyArray<string>;
24
- envFileCandidates: ReadonlyArray<string>;
25
- };
26
- declare function resolvePagesDir(root?: string): string;
27
- //#endregion
28
6
  //#region src/pages/layout-resolution.d.ts
29
7
  /** Resolve the layout chain for a component (innermost last) */
30
8
  declare function resolveLayoutChain(componentId: string, layouts: Array<LayoutDefinition>, componentPath?: string): Array<LayoutDefinition>;