@vesk/vesk-cli 0.2.74 → 0.2.77

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 (2) hide show
  1. package/dist/cli.js +170 -143
  2. package/package.json +5 -5
package/dist/cli.js CHANGED
@@ -35728,40 +35728,40 @@ var init_paths = __esm({
35728
35728
 
35729
35729
  // ../adapter/src/platform-output.ts
35730
35730
  import {
35731
- mkdirSync as mkdirSync6,
35731
+ mkdirSync as mkdirSync7,
35732
35732
  copyFileSync as copyFileSync2,
35733
35733
  readdirSync as readdirSync4,
35734
35734
  statSync as statSync7,
35735
35735
  existsSync as existsSync15,
35736
- writeFileSync as writeFileSync7,
35736
+ writeFileSync as writeFileSync8,
35737
35737
  rmSync as rmSync2,
35738
35738
  readFileSync as readFileSync17
35739
35739
  } from "node:fs";
35740
35740
  import { resolve as resolve13, join as join11, extname as extname3, dirname as dirname11 } from "node:path";
35741
35741
  function ensureCleanDir(dir) {
35742
35742
  rmSync2(dir, { recursive: true, force: true });
35743
- mkdirSync6(dir, { recursive: true });
35743
+ mkdirSync7(dir, { recursive: true });
35744
35744
  }
35745
35745
  function copyDirContents(srcDir, destDir) {
35746
35746
  if (!existsSync15(srcDir)) return;
35747
- mkdirSync6(destDir, { recursive: true });
35747
+ mkdirSync7(destDir, { recursive: true });
35748
35748
  for (const entry of readdirSync4(srcDir)) {
35749
35749
  const srcPath = join11(srcDir, entry);
35750
35750
  const destPath = join11(destDir, entry);
35751
35751
  if (statSync7(srcPath).isDirectory()) {
35752
35752
  copyDirContents(srcPath, destPath);
35753
35753
  } else {
35754
- mkdirSync6(dirname11(destPath), { recursive: true });
35754
+ mkdirSync7(dirname11(destPath), { recursive: true });
35755
35755
  copyFileSync2(srcPath, destPath);
35756
35756
  }
35757
35757
  }
35758
35758
  }
35759
35759
  function writeFile(path, content) {
35760
- mkdirSync6(dirname11(path), { recursive: true });
35761
- writeFileSync7(path, content, "utf-8");
35760
+ mkdirSync7(dirname11(path), { recursive: true });
35761
+ writeFileSync8(path, content, "utf-8");
35762
35762
  }
35763
35763
  function writePlatformStatic(buildStaticDir, platformStaticDir) {
35764
- mkdirSync6(platformStaticDir, { recursive: true });
35764
+ mkdirSync7(platformStaticDir, { recursive: true });
35765
35765
  const publicDir = resolve13(buildStaticDir, "public");
35766
35766
  if (existsSync15(publicDir)) {
35767
35767
  copyDirContents(publicDir, platformStaticDir);
@@ -35771,7 +35771,7 @@ function writePlatformStatic(buildStaticDir, platformStaticDir) {
35771
35771
  const runtimeAlias = resolve13(platformStaticDir, "_vesk", "runtime.js");
35772
35772
  const clientPath = resolve13(buildStaticDir, "client.js");
35773
35773
  if (existsSync15(clientPath)) {
35774
- mkdirSync6(dirname11(runtimeAlias), { recursive: true });
35774
+ mkdirSync7(dirname11(runtimeAlias), { recursive: true });
35775
35775
  copyFileSync2(clientPath, runtimeAlias);
35776
35776
  }
35777
35777
  }
@@ -35861,9 +35861,9 @@ __export(plugins_exports, {
35861
35861
  });
35862
35862
  import {
35863
35863
  readFileSync as readFileSync19,
35864
- writeFileSync as writeFileSync8,
35864
+ writeFileSync as writeFileSync9,
35865
35865
  existsSync as existsSync17,
35866
- mkdirSync as mkdirSync7,
35866
+ mkdirSync as mkdirSync8,
35867
35867
  statSync as statSync9
35868
35868
  } from "node:fs";
35869
35869
  import { resolve as resolve15, dirname as dirname13, join as join12, extname as extname4, basename as basename2 } from "node:path";
@@ -35901,8 +35901,8 @@ function readPluginState(veskDir) {
35901
35901
  function writePluginState(veskDir, state) {
35902
35902
  const file = stateFilePath(veskDir);
35903
35903
  const dir = dirname13(file);
35904
- if (!existsSync17(dir)) mkdirSync7(dir, { recursive: true });
35905
- writeFileSync8(file, JSON.stringify(state, null, 2) + "\n", "utf-8");
35904
+ if (!existsSync17(dir)) mkdirSync8(dir, { recursive: true });
35905
+ writeFileSync9(file, JSON.stringify(state, null, 2) + "\n", "utf-8");
35906
35906
  }
35907
35907
  function resolvePackage(appDir, pkg) {
35908
35908
  const require3 = createRequire4(resolve15(appDir, "package.json"));
@@ -36780,15 +36780,15 @@ __export(static_exports, {
36780
36780
  generateSitemap: () => generateSitemap,
36781
36781
  generateSsgRoutes: () => generateSsgRoutes
36782
36782
  });
36783
- import { mkdirSync as mkdirSync8, copyFileSync as copyFileSync3, readdirSync as readdirSync5, statSync as statSync10, existsSync as existsSync18, writeFileSync as writeFileSync9, readFileSync as readFileSync20 } from "node:fs";
36783
+ import { mkdirSync as mkdirSync9, copyFileSync as copyFileSync3, readdirSync as readdirSync5, statSync as statSync10, existsSync as existsSync18, writeFileSync as writeFileSync10, readFileSync as readFileSync20 } from "node:fs";
36784
36784
  import { resolve as resolve16, join as join13 } from "node:path";
36785
36785
  function copyStaticAssets2(publicDir, outDir) {
36786
36786
  const targetDir = resolve16(outDir, "static", "public");
36787
- mkdirSync8(targetDir, { recursive: true });
36787
+ mkdirSync9(targetDir, { recursive: true });
36788
36788
  if (!existsSync18(publicDir))
36789
36789
  return;
36790
36790
  function copyDir(src2, dest) {
36791
- mkdirSync8(dest, { recursive: true });
36791
+ mkdirSync9(dest, { recursive: true });
36792
36792
  const entries = readdirSync5(src2);
36793
36793
  for (const entry of entries) {
36794
36794
  const srcPath = join13(src2, entry);
@@ -36806,7 +36806,7 @@ function copyStaticAssets2(publicDir, outDir) {
36806
36806
  async function generateSsgRoutes(routeTree, appDir, outDir, plugins, headExtra, cssUrls) {
36807
36807
  const { ssg: ssg2 } = await Promise.resolve().then(() => (init_server_render(), server_render_exports));
36808
36808
  const prerenderDir = resolve16(outDir, "prerendered");
36809
- mkdirSync8(prerenderDir, { recursive: true });
36809
+ mkdirSync9(prerenderDir, { recursive: true });
36810
36810
  const ssgOptions = { plugins, headExtra, cssUrls };
36811
36811
  const results = [];
36812
36812
  async function evaluateExport(src2, exportName) {
@@ -36843,8 +36843,8 @@ async function generateSsgRoutes(routeTree, appDir, outDir, plugins, headExtra,
36843
36843
  console.error(`vesk: SSG path escaped output dir \u2014 skipping ${pagePath} (path: ${urlPath})`);
36844
36844
  continue;
36845
36845
  }
36846
- mkdirSync8(resolve16(htmlPath, ".."), { recursive: true });
36847
- writeFileSync9(htmlPath, result.html);
36846
+ mkdirSync9(resolve16(htmlPath, ".."), { recursive: true });
36847
+ writeFileSync10(htmlPath, result.html);
36848
36848
  results.push({ path: urlPath, html: htmlPath, static: result.static, params });
36849
36849
  } catch (e) {
36850
36850
  const message = e instanceof Error ? e.message : String(e);
@@ -36856,8 +36856,8 @@ async function generateSsgRoutes(routeTree, appDir, outDir, plugins, headExtra,
36856
36856
  try {
36857
36857
  const result = await ssg2(src2, null, void 0, ssgOptions);
36858
36858
  const htmlPath = resolve16(prerenderDir, node.fullPath === "/" ? "index.html" : `${node.fullPath.slice(1)}.html`);
36859
- mkdirSync8(resolve16(htmlPath, ".."), { recursive: true });
36860
- writeFileSync9(htmlPath, result.html);
36859
+ mkdirSync9(resolve16(htmlPath, ".."), { recursive: true });
36860
+ writeFileSync10(htmlPath, result.html);
36861
36861
  results.push({ path: node.fullPath, html: htmlPath, static: result.static });
36862
36862
  } catch (e) {
36863
36863
  const message = e instanceof Error ? e.message : String(e);
@@ -36927,7 +36927,7 @@ __export(image_pipeline_exports, {
36927
36927
  collectImageRefs: () => collectImageRefs,
36928
36928
  optimizeImages: () => optimizeImages
36929
36929
  });
36930
- import { mkdirSync as mkdirSync9, writeFileSync as writeFileSync10, readFileSync as readFileSync21, existsSync as existsSync19, readdirSync as readdirSync6, statSync as statSync11 } from "node:fs";
36930
+ import { mkdirSync as mkdirSync10, writeFileSync as writeFileSync11, readFileSync as readFileSync21, existsSync as existsSync19, readdirSync as readdirSync6, statSync as statSync11 } from "node:fs";
36931
36931
  import { spawnSync } from "node:child_process";
36932
36932
  import { resolve as resolve17, extname as extname5, dirname as dirname14, join as join14 } from "node:path";
36933
36933
  import { createRequire as createRequire5 } from "node:module";
@@ -36957,7 +36957,7 @@ function writeProbeMemo(usable) {
36957
36957
  if (path === null)
36958
36958
  return;
36959
36959
  try {
36960
- writeFileSync10(path, JSON.stringify({ usable, at: Date.now() }), "utf-8");
36960
+ writeFileSync11(path, JSON.stringify({ usable, at: Date.now() }), "utf-8");
36961
36961
  } catch {
36962
36962
  }
36963
36963
  }
@@ -36995,8 +36995,8 @@ async function processImage(srcPath, outDir, baseName) {
36995
36995
  const written = [];
36996
36996
  for (const w of OUTPUT_WIDTHS) {
36997
36997
  const outputPath = resolve17(outDir, `${baseName}-${w}w${ext}`);
36998
- mkdirSync9(dirname14(outputPath), { recursive: true });
36999
- writeFileSync10(outputPath, original);
36998
+ mkdirSync10(dirname14(outputPath), { recursive: true });
36999
+ writeFileSync11(outputPath, original);
37000
37000
  written.push(outputPath);
37001
37001
  }
37002
37002
  return written;
@@ -37008,14 +37008,14 @@ async function processImage(srcPath, outDir, baseName) {
37008
37008
  const base = `${baseName}-${w}w`;
37009
37009
  if (w >= originalWidth) {
37010
37010
  const copyPath = resolve17(outDir, `${base}${extname5(srcPath)}`);
37011
- mkdirSync9(dirname14(copyPath), { recursive: true });
37012
- writeFileSync10(copyPath, readFileSync21(srcPath));
37011
+ mkdirSync10(dirname14(copyPath), { recursive: true });
37012
+ writeFileSync11(copyPath, readFileSync21(srcPath));
37013
37013
  generated.push(copyPath);
37014
37014
  continue;
37015
37015
  }
37016
37016
  const resized = image.clone().resize({ width: w, withoutEnlargement: true });
37017
37017
  const jpgPath = resolve17(outDir, `${base}${extname5(srcPath)}`);
37018
- mkdirSync9(dirname14(jpgPath), { recursive: true });
37018
+ mkdirSync10(dirname14(jpgPath), { recursive: true });
37019
37019
  await resized.toFile(jpgPath);
37020
37020
  generated.push(jpgPath);
37021
37021
  for (const fmt of FORMATS) {
@@ -37056,7 +37056,7 @@ function collectImageRefs(appDir) {
37056
37056
  return refs;
37057
37057
  }
37058
37058
  async function optimizeImages(appDir, outDir) {
37059
- mkdirSync9(resolve17(outDir, "static", "public"), { recursive: true });
37059
+ mkdirSync10(resolve17(outDir, "static", "public"), { recursive: true });
37060
37060
  const refs = collectImageRefs(appDir);
37061
37061
  if (refs.length === 0) {
37062
37062
  console.error("vesk images: no <Image> refs found");
@@ -37090,7 +37090,7 @@ async function optimizeImages(appDir, outDir) {
37090
37090
  }
37091
37091
  const baseName = ref2.src.replace(/^\//, "").replace(extname5(ref2.src), "");
37092
37092
  const imageOutDir = resolve17(outDir, "static", "public");
37093
- mkdirSync9(imageOutDir, { recursive: true });
37093
+ mkdirSync10(imageOutDir, { recursive: true });
37094
37094
  const files = await processImage(srcPath, imageOutDir, baseName);
37095
37095
  results.push({ src: ref2.src, baseName, files, widths: OUTPUT_WIDTHS });
37096
37096
  console.error(`vesk images: ${ref2.src} \u2192 ${files.length} variants`);
@@ -37667,7 +37667,7 @@ var platform_deploy_exports = {};
37667
37667
  __export(platform_deploy_exports, {
37668
37668
  emitPlatformOutput: () => emitPlatformOutput
37669
37669
  });
37670
- import { writeFileSync as writeFileSync11, mkdirSync as mkdirSync10, rmSync as rmSync3, cpSync } from "node:fs";
37670
+ import { writeFileSync as writeFileSync12, mkdirSync as mkdirSync11, rmSync as rmSync3, cpSync } from "node:fs";
37671
37671
  import { resolve as resolve20 } from "node:path";
37672
37672
  async function emitPlatformOutput(platform, ctx2) {
37673
37673
  if (platform === "node") return null;
@@ -37702,14 +37702,14 @@ ${inlineStaticSource(staticDir)}`;
37702
37702
  source += `
37703
37703
  ${shell.bootstrap}
37704
37704
  `;
37705
- writeFileSync11(entry, source, "utf-8");
37705
+ writeFileSync12(entry, source, "utf-8");
37706
37706
  let handlerRel;
37707
37707
  if (shell.functionFile) {
37708
37708
  const funcDir = resolve20(outRoot, shell.functionFile.dir);
37709
- mkdirSync10(funcDir, { recursive: true });
37709
+ mkdirSync11(funcDir, { recursive: true });
37710
37710
  if (shell.functionConfig) {
37711
- writeFileSync11(resolve20(funcDir, ".vc-config.json"), JSON.stringify(shell.functionConfig, null, 2), "utf-8");
37712
- writeFileSync11(resolve20(funcDir, "package.json"), JSON.stringify({ type: "module" }, null, 2) + "\n", "utf-8");
37711
+ writeFileSync12(resolve20(funcDir, ".vc-config.json"), JSON.stringify(shell.functionConfig, null, 2), "utf-8");
37712
+ writeFileSync12(resolve20(funcDir, "package.json"), JSON.stringify({ type: "module" }, null, 2) + "\n", "utf-8");
37713
37713
  }
37714
37714
  handlerRel = `${shell.functionFile.dir}/${shell.functionFile.file}`;
37715
37715
  await bundlePlatformHandler({ entry, outfile: resolve20(funcDir, shell.functionFile.file), nodeBuiltins: shell.nodeBuiltins });
@@ -37718,12 +37718,12 @@ ${shell.bootstrap}
37718
37718
  await bundlePlatformHandler({ entry, outfile: resolve20(outRoot, handlerRel), nodeBuiltins: shell.nodeBuiltins });
37719
37719
  }
37720
37720
  for (const file of shell.extraFiles || []) {
37721
- writeFileSync11(resolve20(outRoot, file.path), file.content, "utf-8");
37721
+ writeFileSync12(resolve20(outRoot, file.path), file.content, "utf-8");
37722
37722
  }
37723
37723
  if (platform === "vercel") {
37724
- writeFileSync11(resolve20(outRoot, "config.json"), vercelConfigJson(prerenderedPaths), "utf-8");
37724
+ writeFileSync12(resolve20(outRoot, "config.json"), vercelConfigJson(prerenderedPaths), "utf-8");
37725
37725
  }
37726
- writeFileSync11(resolve20(outRoot, "manifest.json"), JSON.stringify({
37726
+ writeFileSync12(resolve20(outRoot, "manifest.json"), JSON.stringify({
37727
37727
  platform,
37728
37728
  runtime: shell.nodeBuiltins ? "node" : "edge",
37729
37729
  static: shell.staticMode,
@@ -48913,7 +48913,7 @@ __export(migrate_exports, {
48913
48913
  detectInstalledVersion: () => detectInstalledVersion,
48914
48914
  runMigrate: () => runMigrate
48915
48915
  });
48916
- import { readFileSync as readFileSync44, writeFileSync as writeFileSync22, existsSync as existsSync45, statSync as statSync24, readdirSync as readdirSync16 } from "node:fs";
48916
+ import { readFileSync as readFileSync44, writeFileSync as writeFileSync24, existsSync as existsSync45, statSync as statSync24, readdirSync as readdirSync16 } from "node:fs";
48917
48917
  import { join as join31, relative as relative11, extname as extname8 } from "node:path";
48918
48918
  function detectInstalledVersion(projectDir, cliVersion) {
48919
48919
  for (const pkg of ["@vesk/vesk-cli", "@vesk/adapter", "@vesk/compiler"]) {
@@ -49002,7 +49002,7 @@ function runMigrate(options) {
49002
49002
  }
49003
49003
  if (!changed) continue;
49004
49004
  report.filesChanged.push(relPath);
49005
- if (!options.dryRun) writeFileSync22(abs, current3, "utf-8");
49005
+ if (!options.dryRun) writeFileSync24(abs, current3, "utf-8");
49006
49006
  }
49007
49007
  return report;
49008
49008
  }
@@ -49017,7 +49017,7 @@ var init_migrate = __esm({
49017
49017
  });
49018
49018
 
49019
49019
  // src/index.ts
49020
- import { readFileSync as readFileSync45, writeFileSync as writeFileSync23, mkdirSync as mkdirSync20, existsSync as existsSync46 } from "fs";
49020
+ import { readFileSync as readFileSync45, writeFileSync as writeFileSync25, mkdirSync as mkdirSync22, existsSync as existsSync46 } from "fs";
49021
49021
  import { resolve as resolve41, join as join32 } from "path";
49022
49022
  import { fileURLToPath as fileURLToPath9 } from "url";
49023
49023
  import { createRequire as createRequire8 } from "module";
@@ -49598,7 +49598,7 @@ function setRuntimeModule2(mod) {
49598
49598
  }
49599
49599
 
49600
49600
  // ../adapter/dist/index.js
49601
- import { mkdirSync as mkdirSync11, writeFileSync as writeFileSync12, existsSync as existsSync22, readFileSync as readFileSync23 } from "node:fs";
49601
+ import { mkdirSync as mkdirSync12, writeFileSync as writeFileSync13, existsSync as existsSync22, readFileSync as readFileSync23 } from "node:fs";
49602
49602
  import { resolve as resolve21, dirname as dirname17, relative as relative4, basename as basename3, join as join16 } from "node:path";
49603
49603
  import { fileURLToPath as fileURLToPath5 } from "node:url";
49604
49604
 
@@ -49830,7 +49830,7 @@ async function bundleRuntime(appDir, outDir) {
49830
49830
  }
49831
49831
 
49832
49832
  // ../adapter/src/ssr-function.ts
49833
- import { readFileSync as readFileSync7, existsSync as existsSync8 } from "node:fs";
49833
+ import { readFileSync as readFileSync7, existsSync as existsSync8, mkdirSync as mkdirSync2, writeFileSync as writeFileSync3 } from "node:fs";
49834
49834
  import { resolve as resolve7, relative, join as join5 } from "node:path";
49835
49835
 
49836
49836
  // ../compiler/src/server-codegen.ts
@@ -50034,9 +50034,6 @@ function precompilePlan(entryPath) {
50034
50034
  const src2 = readFileSync7(entryPath, "utf-8");
50035
50035
  return JSON.stringify(precompileFile(src2, entryPath));
50036
50036
  }
50037
- function hydrateInvoke(planExpr) {
50038
- return `(() => { try { return hydratePrecompile(${planExpr}); } catch { return null; } })()`;
50039
- }
50040
50037
  function buildParamExtraction(node, urlParts) {
50041
50038
  const parts = [];
50042
50039
  let partIdx = Math.max(0, urlParts.length - 1);
@@ -50121,6 +50118,28 @@ function generateSsrFunction(routeNode, appDir, outDir, componentMap, options) {
50121
50118
  const middlewareCode = options?.middlewareCode || null;
50122
50119
  const headExtra = options?.headExtra || null;
50123
50120
  const pagePath = resolve7(appDir, routeNode.sourceDir, "page.vsk");
50121
+ const plansDir = resolve7(outDir, "static", "ssr-plans");
50122
+ mkdirSync2(plansDir, { recursive: true });
50123
+ function writePlan(planKey, planJSON) {
50124
+ const fileName = `plan-${planKey}.mjs`;
50125
+ const planFile = resolve7(plansDir, fileName);
50126
+ writeFileSync3(planFile, `export const plan = ${planJSON};
50127
+ `, "utf-8");
50128
+ return relative(resolve7(outDir, "server", "functions"), planFile);
50129
+ }
50130
+ function planGetterCode(varName, planUrl) {
50131
+ return `const ${varName} = (() => {
50132
+ let cache = null;
50133
+ return async () => {
50134
+ if (cache) return cache;
50135
+ try {
50136
+ const mod = await import(${JSON.stringify(planUrl)});
50137
+ cache = hydratePrecompile(mod.plan);
50138
+ } catch { cache = null; }
50139
+ return cache;
50140
+ };
50141
+ })();`;
50142
+ }
50124
50143
  const parts = routeNode.fullPath.split("/").filter(Boolean);
50125
50144
  const name = routeName(parts);
50126
50145
  const funcDir = resolve7(outDir, "server", "functions");
@@ -50136,15 +50155,15 @@ function generateSsrFunction(routeNode, appDir, outDir, componentMap, options) {
50136
50155
  ...routeNode.layout ? [{ sourceDir: routeNode.sourceDir, layoutCompName: routeNode.layout }] : []
50137
50156
  ];
50138
50157
  const layoutDecls = [];
50139
- for (const entry of layoutStack) {
50158
+ for (let li = 0; li < layoutStack.length; li++) {
50159
+ const entry = layoutStack[li];
50140
50160
  const entryPath = resolve7(appDir, entry.sourceDir, "layout.vsk");
50141
50161
  const entrySrc = readFileSync7(entryPath, "utf-8");
50142
50162
  const entryComp = extractCompName(entrySrc) || "Layout";
50143
50163
  const plan = precompilePlan(entryPath);
50144
50164
  layoutDecls.push({
50145
50165
  comp: JSON.stringify(entryComp),
50146
- plan,
50147
- compiled: hydrateInvoke(plan)
50166
+ planUrl: writePlan("layout-" + name + "-" + li, plan)
50148
50167
  });
50149
50168
  }
50150
50169
  const pagePlan = precompilePlan(pagePath);
@@ -50153,32 +50172,34 @@ function generateSsrFunction(routeNode, appDir, outDir, componentMap, options) {
50153
50172
  const errorSrc = errorPath ? readFileSync7(errorPath, "utf-8") : null;
50154
50173
  const errorComp = errorPath ? extractCompName(errorSrc) || "Error" : null;
50155
50174
  const errorVars = errorPath ? `const _errorComp = ${JSON.stringify(errorComp)};
50156
- const _errorCompiled = ${hydrateInvoke(precompilePlan(errorPath))};
50157
- ` : "const _errorComp = null;\nconst _errorCompiled = null;\n";
50175
+ ${planGetterCode("_errorCompiled", writePlan("error-" + name, precompilePlan(errorPath)))}
50176
+ ` : "const _errorComp = null;\nasync function _errorCompiled() { return null; }\n";
50158
50177
  const notFoundPath = resolveNotFoundFile(routeNode.sourceDir, appDir);
50159
50178
  const notFoundSrc = notFoundPath ? readFileSync7(notFoundPath, "utf-8") : null;
50160
50179
  const notFoundComp = notFoundPath ? extractCompName(notFoundSrc) || "NotFound" : null;
50161
50180
  const notFoundVars = notFoundPath ? `const _notFoundComp = ${JSON.stringify(notFoundComp)};
50162
- const _notFoundCompiled = ${hydrateInvoke(precompilePlan(notFoundPath))};
50163
- ` : "const _notFoundComp = null;\nconst _notFoundCompiled = null;\n";
50181
+ ${planGetterCode("_notFoundCompiled", writePlan("notfound-" + name, precompilePlan(notFoundPath)))}
50182
+ ` : "const _notFoundComp = null;\nasync function _notFoundCompiled() { return null; }\n";
50183
+ const pagePlanUrl = writePlan("page-" + name, pagePlan);
50164
50184
  let src2 = "";
50165
50185
  if (layoutDecls.length > 0) {
50186
+ const pageGetter = planGetterCode("_pageCompiled", pagePlanUrl);
50187
+ const layoutGetters = layoutDecls.map(
50188
+ (d, i) => planGetterCode("_layoutCompiled_" + i, d.planUrl)
50189
+ );
50166
50190
  src2 = `const _pageComp = ${JSON.stringify(pageComp)};
50167
50191
  `;
50168
- src2 += `const _pageCompiled = (() => { try { return hydratePrecompile(${pagePlan}); } catch { return null; } })();
50169
- `;
50192
+ src2 += pageGetter + "\n";
50193
+ src2 += layoutGetters.join("\n") + "\n";
50170
50194
  src2 += `const _layoutCompList = [${layoutDecls.map((d) => d.comp).join(", ")}];
50171
50195
  `;
50172
- src2 += `const _layoutCompiledList = [
50173
- ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50174
- ];
50196
+ src2 += `const _layoutCompiledList = [${layoutDecls.map((_, i) => "_layoutCompiled_" + i).join(", ")}];
50175
50197
  `;
50176
50198
  src2 += errorVars + notFoundVars;
50177
50199
  } else {
50178
50200
  src2 = `const _comp = ${JSON.stringify(pageComp)};
50179
50201
  `;
50180
- src2 += `const _compiled = (() => { try { return hydratePrecompile(${pagePlan}); } catch { return null; } })();
50181
- `;
50202
+ src2 += planGetterCode("_compiled", pagePlanUrl) + "\n";
50182
50203
  src2 += errorVars + notFoundVars;
50183
50204
  }
50184
50205
  const urlParts = routeNode.fullPath.split("/").filter(Boolean);
@@ -50193,12 +50214,16 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50193
50214
  let registryCode = "";
50194
50215
  const compRegEntries = [];
50195
50216
  const compMap = componentMap || /* @__PURE__ */ new Map();
50217
+ let compCounter = 0;
50196
50218
  for (const [compName, compPath] of compMap) {
50197
50219
  const plan = precompilePlan(compPath);
50220
+ const compPlanUrl = writePlan("comp-" + name + "-" + compCounter, plan);
50221
+ const compGetter = "_compiled_" + compCounter;
50222
+ compCounter++;
50198
50223
  compRegEntries.push(` (() => {
50199
- const _compiled = (() => { try { return hydratePrecompile(${plan}); } catch { return null; } })();
50224
+ ${planGetterCode(compGetter, compPlanUrl)}
50200
50225
  __componentRegistry.set(${JSON.stringify(compName)}, async (props, __registry, __vesk) => {
50201
- const result = await renderPage('', ${JSON.stringify(compName)}, props, __registry, { hydrate: true, cached: _compiled });
50226
+ const result = await renderPage('', ${JSON.stringify(compName)}, props, __registry, { hydrate: true, cached: await ${compGetter}() });
50202
50227
  return result.body;
50203
50228
  });
50204
50229
  })();`);
@@ -50214,7 +50239,7 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50214
50239
  "async function __renderErrorBody(props) {",
50215
50240
  ' if (!_errorComp) throw props.error || new Error("Internal Server Error");',
50216
50241
  " try {",
50217
- " const result = await renderPage('', _errorComp, props, __componentRegistry, { hydrate: true, cached: _errorCompiled });",
50242
+ " const result = await renderPage('', _errorComp, props, __componentRegistry, { hydrate: true, cached: await _errorCompiled() });",
50218
50243
  " return result.body;",
50219
50244
  " } catch {",
50220
50245
  ` return ${JSON.stringify(renderDefaultErrorFragment())};`,
@@ -50227,7 +50252,7 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50227
50252
  "async function __renderNotFoundBody(props) {",
50228
50253
  " if (!_notFoundComp) return null;",
50229
50254
  " try {",
50230
- " const result = await renderPage('', _notFoundComp, props, __componentRegistry, { hydrate: true, cached: _notFoundCompiled });",
50255
+ " const result = await renderPage('', _notFoundComp, props, __componentRegistry, { hydrate: true, cached: await _notFoundCompiled() });",
50231
50256
  " return result.body;",
50232
50257
  " } catch {",
50233
50258
  " return null;",
@@ -50241,11 +50266,11 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50241
50266
  " let _b = body;",
50242
50267
  ' let _h = head || "";',
50243
50268
  " for (let _i = _layoutCompList.length - 1; _i > 0; _i--) {",
50244
- " const _inner = await renderPage('', _layoutCompList[_i], { params, children: _b }, __componentRegistry, { hydrate: true, cached: _layoutCompiledList[_i] });",
50269
+ " const _inner = await renderPage('', _layoutCompList[_i], { params, children: _b }, __componentRegistry, { hydrate: true, cached: await _layoutCompiledList[_i]() });",
50245
50270
  " _b = _inner.body;",
50246
50271
  " if (_inner.head) _h = _inner.head + _h;",
50247
50272
  " }",
50248
- " return renderFullPage('', _layoutCompList[0], { params, children: _b }, __componentRegistry, { hydrate: true, cached: _layoutCompiledList[0]" + bakedOptions + clientScriptOption + dataScriptOption + ", pageHead: _h });",
50273
+ " return renderFullPage('', _layoutCompList[0], { params, children: _b }, __componentRegistry, { hydrate: true, cached: await _layoutCompiledList[0]()" + bakedOptions + clientScriptOption + dataScriptOption + ", pageHead: _h });",
50249
50274
  "}",
50250
50275
  "",
50251
50276
  "async function __renderHtml(params, requestUrl) {",
@@ -50256,7 +50281,7 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50256
50281
  " let notFound = false;",
50257
50282
  " const __expose = process.env.NODE_ENV !== 'production';",
50258
50283
  " try {",
50259
- " page = await renderPage('', _pageComp, { params }, __componentRegistry, { hydrate: true, cached: _pageCompiled });",
50284
+ " page = await renderPage('', _pageComp, { params }, __componentRegistry, { hydrate: true, cached: await _pageCompiled() });",
50260
50285
  " } catch (err) {",
50261
50286
  " if (err && err.name === 'Redirect') throw err;",
50262
50287
  " if (err && err.name === 'NotFoundError') {",
@@ -50293,7 +50318,7 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50293
50318
  " const message = err && typeof err === 'object' && 'message' in err ? String(err.message) : String(err);",
50294
50319
  " const stack = err && typeof err === 'object' && 'stack' in err ? String(err.stack) : '';",
50295
50320
  " const props = { params, statusCode: 500, error: __expose ? message : 'Internal Server Error', stack: __expose ? stack : '', url: requestUrl || '' };",
50296
- " return renderFullPage('', _errorComp, props, __componentRegistry, { hydrate: true, cached: _errorCompiled" + bakedOptions + clientScriptOption + dataScriptOption + " });",
50321
+ " return renderFullPage('', _errorComp, props, __componentRegistry, { hydrate: true, cached: await _errorCompiled()" + bakedOptions + clientScriptOption + dataScriptOption + " });",
50297
50322
  "}",
50298
50323
  "",
50299
50324
  "async function __renderHtml(params, requestUrl) {",
@@ -50308,7 +50333,7 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50308
50333
  // though it runs outside the ALS scope.
50309
50334
  " const __streamToken = globalThis.__vsk_ssr_token || '';",
50310
50335
  " try {",
50311
- " stream = renderPageStream('', _comp, { params }, __componentRegistry, { hydrate: true, cached: _compiled" + bakedOptions + clientScriptOption + dataScriptOption + " });",
50336
+ " stream = renderPageStream('', _comp, { params }, __componentRegistry, { hydrate: true, cached: await _compiled()" + bakedOptions + clientScriptOption + dataScriptOption + " });",
50312
50337
  " } catch (err) {",
50313
50338
  " if (err && (err.name === 'NotFoundError' || err.name === 'Redirect')) throw err;",
50314
50339
  " const html = await __renderErrorFullPage(params, requestUrl, err);",
@@ -50382,7 +50407,7 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50382
50407
  " try {",
50383
50408
  " let dataPage;",
50384
50409
  " try {",
50385
- " dataPage = await renderPage('', _pageComp, { params }, __componentRegistry, { hydrate: true, cached: _pageCompiled });",
50410
+ " dataPage = await renderPage('', _pageComp, { params }, __componentRegistry, { hydrate: true, cached: await _pageCompiled() });",
50386
50411
  " } catch (err) {",
50387
50412
  " if (err && (err.name === 'NotFoundError' || err.name === 'Redirect')) throw err;",
50388
50413
  " const message = err && typeof err === 'object' && 'message' in err ? String(err.message) : String(err);",
@@ -50390,7 +50415,7 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50390
50415
  " }",
50391
50416
  " let _dataHead = dataPage.head || '';",
50392
50417
  " for (let _i = _layoutCompList.length - 1; _i >= 0; _i--) {",
50393
- " const _dl = await renderPage('', _layoutCompList[_i], { params, children: '' }, __componentRegistry, { hydrate: true, cached: _layoutCompiledList[_i] });",
50418
+ " const _dl = await renderPage('', _layoutCompList[_i], { params, children: '' }, __componentRegistry, { hydrate: true, cached: await _layoutCompiledList[_i]() });",
50394
50419
  " _dataHead = (_dl.head || '') + _dataHead;",
50395
50420
  " }",
50396
50421
  " return new Response(JSON.stringify({ path: url.pathname, params, props: dataPage.props || { params }, head: _dataHead }), {",
@@ -50408,7 +50433,7 @@ ${layoutDecls.map((d) => " " + d.compiled + ",").join("\n")}
50408
50433
  " try {",
50409
50434
  " let dataPage;",
50410
50435
  " try {",
50411
- " dataPage = await renderPage('', _comp, { params }, __componentRegistry, { hydrate: true, cached: _compiled });",
50436
+ " dataPage = await renderPage('', _comp, { params }, __componentRegistry, { hydrate: true, cached: await _compiled() });",
50412
50437
  " } catch (err) {",
50413
50438
  " if (err && (err.name === 'NotFoundError' || err.name === 'Redirect')) throw err;",
50414
50439
  " const message = err && typeof err === 'object' && 'message' in err ? String(err.message) : String(err);",
@@ -51064,7 +51089,7 @@ ${extracted.body}
51064
51089
 
51065
51090
  // ../adapter/src/events.ts
51066
51091
  init_esbuild_fallback();
51067
- import { writeFileSync as writeFileSync3, unlinkSync as unlinkSync2, mkdirSync as mkdirSync2 } from "node:fs";
51092
+ import { writeFileSync as writeFileSync4, unlinkSync as unlinkSync2, mkdirSync as mkdirSync3 } from "node:fs";
51068
51093
  import { resolve as resolve9 } from "node:path";
51069
51094
 
51070
51095
  // ../compiler/src/events.ts
@@ -51149,9 +51174,9 @@ async function compileEvents(appDir, outDir) {
51149
51174
  const sourcePath2 = collectEventsFile(appDir);
51150
51175
  if (!sourcePath2) return false;
51151
51176
  const serverDir = resolve9(outDir, "server");
51152
- mkdirSync2(serverDir, { recursive: true });
51177
+ mkdirSync3(serverDir, { recursive: true });
51153
51178
  const entryFile = resolve9(serverDir, `.events-entry-${buildId2++}.mjs`);
51154
- writeFileSync3(entryFile, buildEventsEntry(sourcePath2), "utf-8");
51179
+ writeFileSync4(entryFile, buildEventsEntry(sourcePath2), "utf-8");
51155
51180
  try {
51156
51181
  const result = await build({
51157
51182
  entryPoints: [entryFile],
@@ -51181,7 +51206,7 @@ async function compileEvents(appDir, outDir) {
51181
51206
 
51182
51207
  // ../adapter/src/client-bundle.ts
51183
51208
  init_esbuild_fallback();
51184
- import { readFileSync as readFileSync13, existsSync as existsSync11, writeFileSync as writeFileSync4, unlinkSync as unlinkSync3, statSync as statSync4, rmSync, mkdtempSync, mkdirSync as mkdirSync3 } from "node:fs";
51209
+ import { readFileSync as readFileSync13, existsSync as existsSync11, writeFileSync as writeFileSync5, unlinkSync as unlinkSync3, statSync as statSync4, rmSync, mkdtempSync, mkdirSync as mkdirSync4 } from "node:fs";
51185
51210
  import { resolve as resolve10, join as join8, dirname as dirname9, relative as relative2, sep } from "node:path";
51186
51211
  import { fileURLToPath as fileURLToPath2 } from "node:url";
51187
51212
  import { tmpdir } from "node:os";
@@ -52223,7 +52248,7 @@ ${body}
52223
52248
  members.push(` ${JSON.stringify(source)}: m${i},`);
52224
52249
  });
52225
52250
  lines.push(`globalThis.__veskShared = { ${members.join("\n")} };`);
52226
- writeFileSync4(sharedEntry, lines.join("\n"));
52251
+ writeFileSync5(sharedEntry, lines.join("\n"));
52227
52252
  const appTsconfig = findTsconfigPath(appDir);
52228
52253
  const runtimeShim = join8(tmpBase, "runtime-shim.js");
52229
52254
  const runtimeLines = [
@@ -52238,7 +52263,7 @@ ${body}
52238
52263
  for (const name of [...sharedRuntimeNames].sort()) {
52239
52264
  runtimeLines.push(`export const ${name} = __r(${JSON.stringify(name)});`);
52240
52265
  }
52241
- writeFileSync4(runtimeShim, runtimeLines.join("\n") + "\n");
52266
+ writeFileSync5(runtimeShim, runtimeLines.join("\n") + "\n");
52242
52267
  const result = await build({
52243
52268
  entryPoints: [sharedEntry],
52244
52269
  bundle: true,
@@ -52271,7 +52296,7 @@ ${body}
52271
52296
  for (const name of [...named].sort()) {
52272
52297
  shimLines.push(`export const ${name} = m[${JSON.stringify(name)}];`);
52273
52298
  }
52274
- writeFileSync4(shim, shimLines.join("\n") + "\n");
52299
+ writeFileSync5(shim, shimLines.join("\n") + "\n");
52275
52300
  chunkAlias[source] = shim;
52276
52301
  });
52277
52302
  } catch (e) {
@@ -52299,7 +52324,7 @@ ${body}
52299
52324
  const __hydrators = globalThis.__hydrators || (globalThis.__hydrators = {});
52300
52325
  ${entry.code}
52301
52326
  `;
52302
- writeFileSync4(tmpFile, toBundle);
52327
+ writeFileSync5(tmpFile, toBundle);
52303
52328
  const serverOnlyHits = [];
52304
52329
  const driverHits = [];
52305
52330
  const eagerHits = [];
@@ -52377,7 +52402,8 @@ A module-scope statement runs the moment the browser evaluates the chunk, so a s
52377
52402
  return { name: entry.name, code: finalCode };
52378
52403
  };
52379
52404
  const effectiveChunkEntries = options?.skipRouteChunks ? chunkEntries.filter((e) => e.name === SHARED_CHUNK_NAME) : chunkEntries;
52380
- const CHUNK_CONCURRENCY = Math.max(1, Math.min(6, (availableParallelism?.() ?? 4) - 1));
52405
+ const envConcurrency = process.env.VESK_CHUNK_CONCURRENCY ? Number(process.env.VESK_CHUNK_CONCURRENCY) : NaN;
52406
+ const CHUNK_CONCURRENCY = Number.isFinite(envConcurrency) && envConcurrency >= 1 ? Math.floor(envConcurrency) : Math.max(1, Math.min(6, (availableParallelism?.() ?? 4) - 1));
52381
52407
  const built = await mapWithConcurrency(effectiveChunkEntries, CHUNK_CONCURRENCY, buildChunkEntry);
52382
52408
  for (const c of built) {
52383
52409
  if (c !== null) chunks.push(c);
@@ -52553,14 +52579,14 @@ async function bundleRuntimeNames(runtimeDir, names, strict = false) {
52553
52579
  const unique = [...new Set(names)];
52554
52580
  try {
52555
52581
  try {
52556
- mkdirSync3(dirname9(entry), { recursive: true });
52582
+ mkdirSync4(dirname9(entry), { recursive: true });
52557
52583
  } catch {
52558
52584
  }
52559
52585
  try {
52560
52586
  rmSync(entry);
52561
52587
  } catch {
52562
52588
  }
52563
- writeFileSync4(entry, `export { ${unique.join(", ")} } from ${JSON.stringify(indexClient)};
52589
+ writeFileSync5(entry, `export { ${unique.join(", ")} } from ${JSON.stringify(indexClient)};
52564
52590
  `);
52565
52591
  const result = await build({
52566
52592
  entryPoints: [esbuildPath(entry)],
@@ -52764,14 +52790,14 @@ function generateManifest(routes, ssrRoutes, apiRoutes, staticRoutes, middleware
52764
52790
 
52765
52791
  // ../adapter/src/static.ts
52766
52792
  init_paths();
52767
- import { mkdirSync as mkdirSync4, copyFileSync, readdirSync as readdirSync3, statSync as statSync6, existsSync as existsSync13, writeFileSync as writeFileSync5, readFileSync as readFileSync15 } from "node:fs";
52793
+ import { mkdirSync as mkdirSync5, copyFileSync, readdirSync as readdirSync3, statSync as statSync6, existsSync as existsSync13, writeFileSync as writeFileSync6, readFileSync as readFileSync15 } from "node:fs";
52768
52794
  import { resolve as resolve12, join as join9 } from "node:path";
52769
52795
  function copyStaticAssets(publicDir, outDir) {
52770
52796
  const targetDir = resolve12(outDir, "static", "public");
52771
- mkdirSync4(targetDir, { recursive: true });
52797
+ mkdirSync5(targetDir, { recursive: true });
52772
52798
  if (!existsSync13(publicDir)) return;
52773
52799
  function copyDir(src2, dest) {
52774
- mkdirSync4(dest, { recursive: true });
52800
+ mkdirSync5(dest, { recursive: true });
52775
52801
  const entries = readdirSync3(src2);
52776
52802
  for (const entry of entries) {
52777
52803
  const srcPath = join9(src2, entry);
@@ -52828,7 +52854,7 @@ async function reportServerError(err, options) {
52828
52854
  init_paths();
52829
52855
 
52830
52856
  // ../adapter/src/load-config.ts
52831
- import { existsSync as existsSync14, readFileSync as readFileSync16, writeFileSync as writeFileSync6, mkdirSync as mkdirSync5 } from "node:fs";
52857
+ import { existsSync as existsSync14, readFileSync as readFileSync16, writeFileSync as writeFileSync7, mkdirSync as mkdirSync6 } from "node:fs";
52832
52858
  import { join as join10, dirname as dirname10 } from "node:path";
52833
52859
  import { pathToFileURL as pathToFileURL2 } from "node:url";
52834
52860
  import { createRequire as createRequire3 } from "node:module";
@@ -52873,8 +52899,8 @@ async function loadVeskConfig2(projectDir) {
52873
52899
  js = `const {${injectKeys.join(",")}} = globalThis.__vesk_inject;
52874
52900
  ` + js;
52875
52901
  const tmpFile = join10(projectDir, ".vesk", "config.loader.tmp.mjs");
52876
- mkdirSync5(dirname10(tmpFile), { recursive: true });
52877
- writeFileSync6(tmpFile, js, "utf-8");
52902
+ mkdirSync6(dirname10(tmpFile), { recursive: true });
52903
+ writeFileSync7(tmpFile, js, "utf-8");
52878
52904
  globalThis.__vesk_inject = inject;
52879
52905
  try {
52880
52906
  const mod = await import(`${pathToFileURL2(tmpFile).href}?t=${Date.now()}`);
@@ -54059,7 +54085,7 @@ async function build2(appDir, options) {
54059
54085
  resolve21(outDir, "prerendered")
54060
54086
  ];
54061
54087
  for (const d of dirs)
54062
- mkdirSync11(d, { recursive: true });
54088
+ mkdirSync12(d, { recursive: true });
54063
54089
  markPhase("config+dirs");
54064
54090
  const cssSourcePath = resolveUserCssPath(appDir);
54065
54091
  if (cssSourcePath !== null) {
@@ -54077,7 +54103,7 @@ async function build2(appDir, options) {
54077
54103
  }
54078
54104
  }
54079
54105
  }
54080
- writeFileSync12(cssTarget, finalCss, "utf-8");
54106
+ writeFileSync13(cssTarget, finalCss, "utf-8");
54081
54107
  if (tailwindActive) {
54082
54108
  console.error(`vesk build: css \u2192 static/global.css (${finalCss.length} bytes)`);
54083
54109
  } else {
@@ -54129,7 +54155,7 @@ async function build2(appDir, options) {
54129
54155
  const hashed = !options?.hmr;
54130
54156
  const clientAsset = describeAsset("client.js", main);
54131
54157
  const clientFileName = hashed ? clientAsset.fileName : "client.js";
54132
- writeFileSync12(resolve21(staticDir, clientFileName), main, "utf-8");
54158
+ writeFileSync13(resolve21(staticDir, clientFileName), main, "utf-8");
54133
54159
  const clientUrl = `/_vesk/static/${clientFileName}`;
54134
54160
  const mode = chunks.length > 0 ? "code-split" : "monolithic";
54135
54161
  console.error(`vesk build: client \u2192 static/${clientFileName} (${main.length} bytes, ${mode}${hashed ? `, ${clientAsset.hash}` : ""})`);
@@ -54137,7 +54163,7 @@ async function build2(appDir, options) {
54137
54163
  for (const chunk of chunks) {
54138
54164
  const asset = describeAsset(chunk.name, chunk.code);
54139
54165
  emittedAssets.push(asset);
54140
- writeFileSync12(resolve21(staticDir, hashed ? asset.fileName : chunk.name), chunk.code, "utf-8");
54166
+ writeFileSync13(resolve21(staticDir, hashed ? asset.fileName : chunk.name), chunk.code, "utf-8");
54141
54167
  console.error(`vesk build: chunk \u2192 static/${hashed ? asset.fileName : chunk.name} (${chunk.code.length} bytes${hashed ? `, ${asset.hash}` : ""})`);
54142
54168
  }
54143
54169
  const clientIntegrity = hashed ? clientAsset.integrity : void 0;
@@ -54161,7 +54187,7 @@ async function build2(appDir, options) {
54161
54187
  }
54162
54188
  const ssrAncestorLayouts = isStandalone ? [] : ancestorLayouts;
54163
54189
  const { funcPath, funcCode, name } = generateSsrFunction(node, appDir, outDir, componentMap, { ancestorLayouts: ssrAncestorLayouts, middlewareCode: mwCode, headExtra: pluginHeadExtra, clientScriptUrl: clientUrl, clientScriptIntegrity: clientIntegrity });
54164
- writeFileSync12(funcPath, funcCode, "utf-8");
54190
+ writeFileSync13(funcPath, funcCode, "utf-8");
54165
54191
  const pagePath = resolve21(appDir, node.sourceDir, "page.vsk");
54166
54192
  if (existsSync22(pagePath)) {
54167
54193
  const src2 = readFileSync23(pagePath, "utf-8");
@@ -54199,7 +54225,7 @@ async function build2(appDir, options) {
54199
54225
  for (const node of nodes) {
54200
54226
  if (node.filePath) {
54201
54227
  const { funcPath, funcCode, name } = generateApiFunction(node, apiDir, outDir);
54202
- writeFileSync12(funcPath, funcCode, "utf-8");
54228
+ writeFileSync13(funcPath, funcCode, "utf-8");
54203
54229
  apiRoutes.push(node);
54204
54230
  console.error(`vesk build: api \u2192 server/api/${name}.js (${node.fullPath})`);
54205
54231
  }
@@ -54212,7 +54238,7 @@ async function build2(appDir, options) {
54212
54238
  if (mwChain.length > 0) {
54213
54239
  const mwCode = compileMiddleware(mwChain, appDir);
54214
54240
  if (mwCode) {
54215
- writeFileSync12(resolve21(outDir, "server", "middleware.js"), mwCode, "utf-8");
54241
+ writeFileSync13(resolve21(outDir, "server", "middleware.js"), mwCode, "utf-8");
54216
54242
  middlewareEnabled = true;
54217
54243
  console.error(`vesk build: mw \u2192 server/middleware.js (${mwChain.length} middlewares)`);
54218
54244
  }
@@ -54250,13 +54276,13 @@ async function build2(appDir, options) {
54250
54276
  const sitemapOverride = resolve21(publicDirResolved, "sitemap.xml");
54251
54277
  if (!existsSync22(sitemapOverride)) {
54252
54278
  const sitemap = generateSitemap2(routeTree, ssrRoutes, prerenderedRoutes, { siteUrl });
54253
- writeFileSync12(sitemapOverride, sitemap, "utf-8");
54279
+ writeFileSync13(sitemapOverride, sitemap, "utf-8");
54254
54280
  console.error(`vesk build: seo \u2192 static/public/sitemap.xml (${sitemap.length} bytes)`);
54255
54281
  }
54256
54282
  const robotsOverride = resolve21(publicDirResolved, "robots.txt");
54257
54283
  if (!existsSync22(robotsOverride)) {
54258
54284
  const robots = generateRobotsTxt2(siteUrl);
54259
- writeFileSync12(robotsOverride, robots, "utf-8");
54285
+ writeFileSync13(robotsOverride, robots, "utf-8");
54260
54286
  console.error(`vesk build: seo \u2192 static/public/robots.txt (${robots.length} bytes)`);
54261
54287
  }
54262
54288
  }
@@ -54270,7 +54296,7 @@ async function build2(appDir, options) {
54270
54296
  client: { file: clientFileName, url: clientUrl, hash: clientAsset.hash, bytes: clientAsset.bytes, integrity: clientAsset.integrity },
54271
54297
  chunks: emittedAssets.slice(1).map((a) => ({ file: a.fileName, hash: a.hash, bytes: a.bytes, integrity: a.integrity }))
54272
54298
  };
54273
- writeFileSync12(resolve21(outDir, "config.json"), JSON.stringify(manifest, null, 2) + "\n", "utf-8");
54299
+ writeFileSync13(resolve21(outDir, "config.json"), JSON.stringify(manifest, null, 2) + "\n", "utf-8");
54274
54300
  console.error("vesk build: config \u2192 config.json");
54275
54301
  {
54276
54302
  const { detectPlatform: detectPlatform2 } = await Promise.resolve().then(() => (init_platform(), platform_exports));
@@ -54318,7 +54344,7 @@ vesk build: done (${outDir})`);
54318
54344
  init_seo_audit();
54319
54345
 
54320
54346
  // src/dev-server.ts
54321
- import { readFileSync as readFileSync41, watch, statSync as statSync22, existsSync as existsSync43, mkdirSync as mkdirSync19, readdirSync as readdirSync14, writeFileSync as writeFileSync21, renameSync as renameSync2 } from "node:fs";
54347
+ import { readFileSync as readFileSync41, watch, statSync as statSync22, existsSync as existsSync43, mkdirSync as mkdirSync21, readdirSync as readdirSync14, writeFileSync as writeFileSync23, renameSync as renameSync2 } from "node:fs";
54322
54348
  import { createHash as createHash3 } from "node:crypto";
54323
54349
  import { resolve as resolve39, extname as extname7, join as join28, dirname as dirname27, relative as relative9 } from "node:path";
54324
54350
  import { createServer as createServer2 } from "node:http";
@@ -58409,7 +58435,7 @@ function guessProjectRoots2(dir) {
58409
58435
  }
58410
58436
 
58411
58437
  // ../adapter/dist/client-bundle.js
58412
- import { readFileSync as readFileSync26, existsSync as existsSync28, writeFileSync as writeFileSync13, unlinkSync as unlinkSync4, statSync as statSync15, rmSync as rmSync4, mkdtempSync as mkdtempSync2, mkdirSync as mkdirSync12 } from "node:fs";
58438
+ import { readFileSync as readFileSync26, existsSync as existsSync28, writeFileSync as writeFileSync14, unlinkSync as unlinkSync4, statSync as statSync15, rmSync as rmSync4, mkdtempSync as mkdtempSync2, mkdirSync as mkdirSync13 } from "node:fs";
58413
58439
  import { resolve as resolve24, join as join21, dirname as dirname19, relative as relative6, sep as sep3 } from "node:path";
58414
58440
  import { fileURLToPath as fileURLToPath6 } from "node:url";
58415
58441
  import { tmpdir as tmpdir3 } from "node:os";
@@ -59308,7 +59334,7 @@ ${body}
59308
59334
  members.push(` ${JSON.stringify(source)}: m${i},`);
59309
59335
  });
59310
59336
  lines.push(`globalThis.__veskShared = { ${members.join("\n")} };`);
59311
- writeFileSync13(sharedEntry, lines.join("\n"));
59337
+ writeFileSync14(sharedEntry, lines.join("\n"));
59312
59338
  const appTsconfig = findTsconfigPath(appDir);
59313
59339
  const runtimeShim = join21(tmpBase, "runtime-shim.js");
59314
59340
  const runtimeLines = [
@@ -59324,7 +59350,7 @@ ${body}
59324
59350
  for (const name of [...sharedRuntimeNames].sort()) {
59325
59351
  runtimeLines.push(`export const ${name} = __r(${JSON.stringify(name)});`);
59326
59352
  }
59327
- writeFileSync13(runtimeShim, runtimeLines.join("\n") + "\n");
59353
+ writeFileSync14(runtimeShim, runtimeLines.join("\n") + "\n");
59328
59354
  const result = await build3({
59329
59355
  entryPoints: [sharedEntry],
59330
59356
  bundle: true,
@@ -59358,7 +59384,7 @@ ${body}
59358
59384
  for (const name of [...named].sort()) {
59359
59385
  shimLines.push(`export const ${name} = m[${JSON.stringify(name)}];`);
59360
59386
  }
59361
- writeFileSync13(shim, shimLines.join("\n") + "\n");
59387
+ writeFileSync14(shim, shimLines.join("\n") + "\n");
59362
59388
  chunkAlias[source] = shim;
59363
59389
  });
59364
59390
  } catch (e) {
@@ -59388,7 +59414,7 @@ ${body}
59388
59414
  const __hydrators = globalThis.__hydrators || (globalThis.__hydrators = {});
59389
59415
  ${entry.code}
59390
59416
  `;
59391
- writeFileSync13(tmpFile, toBundle);
59417
+ writeFileSync14(tmpFile, toBundle);
59392
59418
  const serverOnlyHits = [];
59393
59419
  const driverHits = [];
59394
59420
  const eagerHits = [];
@@ -59462,7 +59488,8 @@ A module-scope statement runs the moment the browser evaluates the chunk, so a s
59462
59488
  return { name: entry.name, code: finalCode };
59463
59489
  };
59464
59490
  const effectiveChunkEntries = options?.skipRouteChunks ? chunkEntries.filter((e) => e.name === SHARED_CHUNK_NAME2) : chunkEntries;
59465
- const CHUNK_CONCURRENCY = Math.max(1, Math.min(6, (availableParallelism2?.() ?? 4) - 1));
59491
+ const envConcurrency = process.env.VESK_CHUNK_CONCURRENCY ? Number(process.env.VESK_CHUNK_CONCURRENCY) : NaN;
59492
+ const CHUNK_CONCURRENCY = Number.isFinite(envConcurrency) && envConcurrency >= 1 ? Math.floor(envConcurrency) : Math.max(1, Math.min(6, (availableParallelism2?.() ?? 4) - 1));
59466
59493
  const built = await mapWithConcurrency2(effectiveChunkEntries, CHUNK_CONCURRENCY, buildChunkEntry);
59467
59494
  for (const c of built) {
59468
59495
  if (c !== null)
@@ -59658,14 +59685,14 @@ async function bundleRuntimeNames2(runtimeDir, names, strict = false) {
59658
59685
  const unique = [...new Set(names)];
59659
59686
  try {
59660
59687
  try {
59661
- mkdirSync12(dirname19(entry), { recursive: true });
59688
+ mkdirSync13(dirname19(entry), { recursive: true });
59662
59689
  } catch {
59663
59690
  }
59664
59691
  try {
59665
59692
  rmSync4(entry);
59666
59693
  } catch {
59667
59694
  }
59668
- writeFileSync13(entry, `export { ${unique.join(", ")} } from ${JSON.stringify(indexClient)};
59695
+ writeFileSync14(entry, `export { ${unique.join(", ")} } from ${JSON.stringify(indexClient)};
59669
59696
  `);
59670
59697
  const result = await build3({
59671
59698
  entryPoints: [esbuildPath2(entry)],
@@ -59898,7 +59925,7 @@ import { resolve as resolve28 } from "node:path";
59898
59925
 
59899
59926
  // ../adapter/dist/plugins.js
59900
59927
  init_paths();
59901
- import { readFileSync as readFileSync28, writeFileSync as writeFileSync14, existsSync as existsSync30, mkdirSync as mkdirSync13, statSync as statSync17 } from "node:fs";
59928
+ import { readFileSync as readFileSync28, writeFileSync as writeFileSync15, existsSync as existsSync30, mkdirSync as mkdirSync14, statSync as statSync17 } from "node:fs";
59902
59929
  import { resolve as resolve26, dirname as dirname20, join as join22, extname as extname6, basename as basename6 } from "node:path";
59903
59930
  import { createRequire as createRequire6 } from "node:module";
59904
59931
  import { spawn as spawn2 } from "node:child_process";
@@ -59942,8 +59969,8 @@ function writePluginState2(veskDir, state) {
59942
59969
  const file = stateFilePath2(veskDir);
59943
59970
  const dir = dirname20(file);
59944
59971
  if (!existsSync30(dir))
59945
- mkdirSync13(dir, { recursive: true });
59946
- writeFileSync14(file, JSON.stringify(state, null, 2) + "\n", "utf-8");
59972
+ mkdirSync14(dir, { recursive: true });
59973
+ writeFileSync15(file, JSON.stringify(state, null, 2) + "\n", "utf-8");
59947
59974
  }
59948
59975
  function resolvePackage2(appDir, pkg) {
59949
59976
  const require3 = createRequire6(resolve26(appDir, "package.json"));
@@ -60874,7 +60901,7 @@ var __internals2 = {
60874
60901
  };
60875
60902
 
60876
60903
  // ../adapter/dist/dev-config.js
60877
- import { existsSync as existsSync31, readFileSync as readFileSync29, writeFileSync as writeFileSync15, mkdirSync as mkdirSync14, mkdtempSync as mkdtempSync3, rmSync as rmSync5 } from "node:fs";
60904
+ import { existsSync as existsSync31, readFileSync as readFileSync29, writeFileSync as writeFileSync16, mkdirSync as mkdirSync15, mkdtempSync as mkdtempSync3, rmSync as rmSync5 } from "node:fs";
60878
60905
  import { tmpdir as tmpdir4 } from "node:os";
60879
60906
  import { resolve as resolve27, dirname as dirname21, join as join23 } from "node:path";
60880
60907
  init_parser();
@@ -60904,11 +60931,11 @@ async function parseConfigSource(source, isTs, projectDir) {
60904
60931
  js = `const { defineConfig, definePlugin, preset } = globalThis.__vesk_inject;
60905
60932
  ` + js;
60906
60933
  }
60907
- const base = projectDir ? (mkdirSync14(join23(projectDir, ".vesk"), { recursive: true }), join23(projectDir, ".vesk")) : void 0;
60934
+ const base = projectDir ? (mkdirSync15(join23(projectDir, ".vesk"), { recursive: true }), join23(projectDir, ".vesk")) : void 0;
60908
60935
  const dir = base ? mkdtempSync3(join23(base, "cfg-")) : mkdtempSync3(join23(tmpdir4(), "vesk-cfg-"));
60909
60936
  const tmpFile = join23(dir, "config.mjs");
60910
60937
  try {
60911
- writeFileSync15(tmpFile, js, "utf-8");
60938
+ writeFileSync16(tmpFile, js, "utf-8");
60912
60939
  globalThis.__vesk_inject = {
60913
60940
  defineConfig,
60914
60941
  // Pass-through like the real definePlugin (which validates + returns
@@ -60941,8 +60968,8 @@ async function writeConfigSource2(projectDir, source) {
60941
60968
  const { path, isTs } = findConfigFile2(projectDir);
60942
60969
  const target = path || resolve27(projectDir, "vesk.config.ts");
60943
60970
  await parseConfigSource(source, isTs, projectDir);
60944
- mkdirSync14(dirname21(target), { recursive: true });
60945
- writeFileSync15(target, source, "utf-8");
60971
+ mkdirSync15(dirname21(target), { recursive: true });
60972
+ writeFileSync16(target, source, "utf-8");
60946
60973
  const config = await parseConfigSource(source, isTs, projectDir);
60947
60974
  return { path: target, exists: true, source, config };
60948
60975
  }
@@ -62215,7 +62242,7 @@ function produceDiagnostics(input) {
62215
62242
  }
62216
62243
 
62217
62244
  // ../agentic/dist/checkpoints.js
62218
- import { existsSync as existsSync33, mkdirSync as mkdirSync15, readFileSync as readFileSync31, writeFileSync as writeFileSync16, statSync as statSync19, unlinkSync as unlinkSync5, rmSync as rmSync6, renameSync } from "node:fs";
62245
+ import { existsSync as existsSync33, mkdirSync as mkdirSync16, readFileSync as readFileSync31, writeFileSync as writeFileSync17, statSync as statSync19, unlinkSync as unlinkSync5, rmSync as rmSync6, renameSync } from "node:fs";
62219
62246
  import { join as join24, resolve as resolve29, dirname as dirname22, sep as sep5 } from "node:path";
62220
62247
  import { randomUUID as nodeRandomUUID } from "node:crypto";
62221
62248
  function generateId() {
@@ -62361,7 +62388,7 @@ function getCheckpointPath(projectDir, id) {
62361
62388
  return join24(getCheckpointDir(projectDir, id), "checkpoint.json");
62362
62389
  }
62363
62390
  function ensureDir(dir) {
62364
- mkdirSync15(dir, { recursive: true });
62391
+ mkdirSync16(dir, { recursive: true });
62365
62392
  }
62366
62393
  function readJson(filePath, fallback) {
62367
62394
  try {
@@ -62378,12 +62405,12 @@ function readJson(filePath, fallback) {
62378
62405
  function writeJsonAtomic(filePath, data2) {
62379
62406
  ensureDir(dirname22(filePath));
62380
62407
  const tmp = `${filePath}.tmp`;
62381
- writeFileSync16(tmp, JSON.stringify(data2, null, 2), "utf-8");
62408
+ writeFileSync17(tmp, JSON.stringify(data2, null, 2), "utf-8");
62382
62409
  try {
62383
62410
  renameSync(tmp, filePath);
62384
62411
  } catch {
62385
62412
  try {
62386
- writeFileSync16(filePath, JSON.stringify(data2, null, 2), "utf-8");
62413
+ writeFileSync17(filePath, JSON.stringify(data2, null, 2), "utf-8");
62387
62414
  try {
62388
62415
  unlinkSync5(tmp);
62389
62416
  } catch {
@@ -62478,7 +62505,7 @@ function rollback(projectDir, id) {
62478
62505
  } else {
62479
62506
  try {
62480
62507
  ensureDir(dirname22(abs));
62481
- writeFileSync16(abs, f.before, "utf-8");
62508
+ writeFileSync17(abs, f.before, "utf-8");
62482
62509
  } catch {
62483
62510
  }
62484
62511
  }
@@ -62487,7 +62514,7 @@ function rollback(projectDir, id) {
62487
62514
  }
62488
62515
 
62489
62516
  // ../agentic/dist/config.js
62490
- import { readFileSync as readFileSync32, writeFileSync as writeFileSync17, existsSync as existsSync34, mkdirSync as mkdirSync16, chmodSync } from "node:fs";
62517
+ import { readFileSync as readFileSync32, writeFileSync as writeFileSync18, existsSync as existsSync34, mkdirSync as mkdirSync17, chmodSync } from "node:fs";
62491
62518
  import { resolve as resolve30, dirname as dirname23 } from "node:path";
62492
62519
  var DEFAULT_CONFIG = {
62493
62520
  provider: "openai",
@@ -62578,7 +62605,7 @@ function writeDotenvValue(projectDir, key, value) {
62578
62605
  }
62579
62606
  if (!replaced)
62580
62607
  out += newLine + "\n";
62581
- writeFileSync17(p, out, { mode: 384 });
62608
+ writeFileSync18(p, out, { mode: 384 });
62582
62609
  try {
62583
62610
  chmodSync(p, 384);
62584
62611
  } catch {
@@ -62617,8 +62644,8 @@ function saveAgenticConfig(projectDir, patch) {
62617
62644
  if (next.baseUrl)
62618
62645
  toWrite.baseUrl = next.baseUrl;
62619
62646
  try {
62620
- mkdirSync16(dirname23(p), { recursive: true });
62621
- writeFileSync17(p, JSON.stringify(toWrite, null, 2), "utf-8");
62647
+ mkdirSync17(dirname23(p), { recursive: true });
62648
+ writeFileSync18(p, JSON.stringify(toWrite, null, 2), "utf-8");
62622
62649
  } catch {
62623
62650
  }
62624
62651
  return next;
@@ -63942,7 +63969,7 @@ var Agent = class {
63942
63969
  };
63943
63970
 
63944
63971
  // ../agentic/dist/tools/vesk.js
63945
- import { existsSync as existsSync36, readFileSync as readFileSync34, writeFileSync as writeFileSync18, mkdirSync as mkdirSync17, readdirSync as readdirSync11, statSync as statSync20 } from "node:fs";
63972
+ import { existsSync as existsSync36, readFileSync as readFileSync34, writeFileSync as writeFileSync19, mkdirSync as mkdirSync18, readdirSync as readdirSync11, statSync as statSync20 } from "node:fs";
63946
63973
  import { resolve as resolve32, join as join25, dirname as dirname24, sep as sep6 } from "node:path";
63947
63974
  function resolveWithin3(baseDir, relPath) {
63948
63975
  const base = resolve32(baseDir);
@@ -63976,8 +64003,8 @@ function readPluginState3(veskDir) {
63976
64003
  }
63977
64004
  function writePluginState3(veskDir, state) {
63978
64005
  const file = stateFilePath3(veskDir);
63979
- mkdirSync17(dirname24(file), { recursive: true });
63980
- writeFileSync18(file, JSON.stringify(state, null, 2) + "\n", "utf-8");
64006
+ mkdirSync18(dirname24(file), { recursive: true });
64007
+ writeFileSync19(file, JSON.stringify(state, null, 2) + "\n", "utf-8");
63981
64008
  }
63982
64009
  function eqIgnoreCase3(a, b) {
63983
64010
  return String(a || "").toLowerCase() === String(b || "").toLowerCase();
@@ -64336,8 +64363,8 @@ function createVeskTools(deps) {
64336
64363
  if (!contained)
64337
64364
  return jsonError("path escapes project root");
64338
64365
  }
64339
- mkdirSync17(dirname24(target), { recursive: true });
64340
- writeFileSync18(target, source, "utf-8");
64366
+ mkdirSync18(dirname24(target), { recursive: true });
64367
+ writeFileSync19(target, source, "utf-8");
64341
64368
  return jsonOk({ ok: true, path: target, source });
64342
64369
  }
64343
64370
  if (typeof a.key === "string" && a.key) {
@@ -64358,7 +64385,7 @@ function createVeskTools(deps) {
64358
64385
  return jsonError("could not safely edit the config object; use the source editor");
64359
64386
  if (patched === current3)
64360
64387
  return jsonOk({ ok: true, path: info.path, source: patched, unchanged: true });
64361
- writeFileSync18(info.path, patched, "utf-8");
64388
+ writeFileSync19(info.path, patched, "utf-8");
64362
64389
  return jsonOk({ ok: true, path: info.path, source: patched });
64363
64390
  }
64364
64391
  return jsonError("expected { source } or { key, value }");
@@ -64618,7 +64645,7 @@ function createVeskTools(deps) {
64618
64645
  } catch {
64619
64646
  }
64620
64647
  const dir = checkpointDir(veskDir);
64621
- mkdirSync17(dir, { recursive: true });
64648
+ mkdirSync18(dir, { recursive: true });
64622
64649
  const id = `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
64623
64650
  const file = join25(dir, `${id}.json`);
64624
64651
  const check = resolveWithin3(dir, `${id}.json`);
@@ -64632,7 +64659,7 @@ function createVeskTools(deps) {
64632
64659
  appDir,
64633
64660
  veskDir
64634
64661
  };
64635
- writeFileSync18(file, JSON.stringify(payload, null, 2) + "\n", "utf-8");
64662
+ writeFileSync19(file, JSON.stringify(payload, null, 2) + "\n", "utf-8");
64636
64663
  return jsonOk({ ok: true, checkpointId: id, message: payload.message, timestamp: payload.timestamp });
64637
64664
  } catch (e) {
64638
64665
  return jsonError(e instanceof Error ? e.message : String(e));
@@ -64758,7 +64785,7 @@ function renderDefaultNotFoundPage2(opts = {}) {
64758
64785
  }
64759
64786
 
64760
64787
  // ../adapter/dist/ssr-function.js
64761
- import { readFileSync as readFileSync35, existsSync as existsSync37 } from "node:fs";
64788
+ import { readFileSync as readFileSync35, existsSync as existsSync37, mkdirSync as mkdirSync19, writeFileSync as writeFileSync20 } from "node:fs";
64762
64789
  import { resolve as resolve33, relative as relative7, join as join26 } from "node:path";
64763
64790
  init_default_pages();
64764
64791
  function resolveBoundaryFileForUrl2(pathname, appDir, file) {
@@ -64800,7 +64827,7 @@ function resolveCssUrls2(opts) {
64800
64827
  // ../adapter/dist/hmr.js
64801
64828
  init_client_codegen();
64802
64829
  import { WebSocketServer } from "ws";
64803
- import { readFileSync as readFileSync37, existsSync as existsSync39, writeFileSync as writeFileSync19 } from "node:fs";
64830
+ import { readFileSync as readFileSync37, existsSync as existsSync39, writeFileSync as writeFileSync21 } from "node:fs";
64804
64831
  import { resolve as resolve35, dirname as dirname25 } from "node:path";
64805
64832
  import { fileURLToPath as fileURLToPath7 } from "node:url";
64806
64833
  init_default_pages();
@@ -65471,7 +65498,7 @@ function renderDevErrorPage(payload, opts) {
65471
65498
 
65472
65499
  // src/build-packages.ts
65473
65500
  import { spawnSync as spawnSync2 } from "node:child_process";
65474
- import { cpSync as cpSync2, existsSync as existsSync41, mkdirSync as mkdirSync18, readFileSync as readFileSync39, readdirSync as readdirSync12, statSync as statSync21, writeFileSync as writeFileSync20 } from "node:fs";
65501
+ import { cpSync as cpSync2, existsSync as existsSync41, mkdirSync as mkdirSync20, readFileSync as readFileSync39, readdirSync as readdirSync12, statSync as statSync21, writeFileSync as writeFileSync22 } from "node:fs";
65475
65502
  import { createRequire as createRequire7 } from "node:module";
65476
65503
  import { dirname as dirname26, join as join27, resolve as resolve37 } from "node:path";
65477
65504
  import { fileURLToPath as fileURLToPath8 } from "node:url";
@@ -65560,7 +65587,7 @@ function buildPackages(force = false) {
65560
65587
  const distDir = join27(pkgDir, "dist");
65561
65588
  for (const c of cfg.copy || []) {
65562
65589
  const to = join27(distDir, c.to);
65563
- mkdirSync18(dirname26(to), { recursive: true });
65590
+ mkdirSync20(dirname26(to), { recursive: true });
65564
65591
  cpSync2(join27(pkgDir, c.from), to, { recursive: true });
65565
65592
  }
65566
65593
  const srcPkg = JSON.parse(readFileSync39(join27(pkgDir, "package.json"), "utf-8"));
@@ -65577,9 +65604,9 @@ function buildPackages(force = false) {
65577
65604
  "./package.json": "./package.json"
65578
65605
  }
65579
65606
  };
65580
- writeFileSync20(join27(distDir, "package.json"), JSON.stringify(lucideDistPkg, null, 2) + "\n");
65607
+ writeFileSync22(join27(distDir, "package.json"), JSON.stringify(lucideDistPkg, null, 2) + "\n");
65581
65608
  } else {
65582
- writeFileSync20(join27(distDir, "package.json"), distPackageJson(cfg.name, cfg.entry, cfg.serverEntry, srcPkg.version || "1.0.0"));
65609
+ writeFileSync22(join27(distDir, "package.json"), distPackageJson(cfg.name, cfg.entry, cfg.serverEntry, srcPkg.version || "1.0.0"));
65583
65610
  }
65584
65611
  console.log(`[build] ${cfg.name} -> dist`);
65585
65612
  }
@@ -66572,10 +66599,10 @@ async function startDevServer(port, projectDir, config, host) {
66572
66599
  function writeDevBundleCache(main, chunks) {
66573
66600
  try {
66574
66601
  const dir = devCacheDir();
66575
- mkdirSync19(dir, { recursive: true });
66602
+ mkdirSync21(dir, { recursive: true });
66576
66603
  const file = join28(dir, "client-bundle.json");
66577
66604
  const tmp = join28(dir, `client-bundle.${process.pid}.tmp`);
66578
- writeFileSync21(tmp, JSON.stringify({ key: devCacheKey(), main, chunks }), "utf8");
66605
+ writeFileSync23(tmp, JSON.stringify({ key: devCacheKey(), main, chunks }), "utf8");
66579
66606
  renameSync2(tmp, file);
66580
66607
  } catch {
66581
66608
  }
@@ -68354,8 +68381,8 @@ if (cmd === "init") {
68354
68381
  console.error(`vesk init: ${target} already exists \u2014 skipping`);
68355
68382
  process.exit(0);
68356
68383
  }
68357
- mkdirSync20(appDirPath, { recursive: true });
68358
- writeFileSync23(target, [
68384
+ mkdirSync22(appDirPath, { recursive: true });
68385
+ writeFileSync25(target, [
68359
68386
  `@import 'tailwindcss';`,
68360
68387
  ``,
68361
68388
  `@layer base {`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vesk/vesk-cli",
3
- "version": "0.2.74",
3
+ "version": "0.2.77",
4
4
  "type": "module",
5
5
  "description": "Vesk — compiler-first framework for the post-VDOM web. vesk dev, vesk build.",
6
6
  "bin": {
@@ -8,10 +8,10 @@
8
8
  },
9
9
  "main": "./dist/cli.js",
10
10
  "dependencies": {
11
- "@vesk/adapter": "^0.2.74",
12
- "@vesk/compiler": "^0.2.74",
13
- "@vesk/plugin-tailwind": "^0.2.74",
14
- "@vesk/runtime": "^0.2.74",
11
+ "@vesk/adapter": "^0.2.77",
12
+ "@vesk/compiler": "^0.2.77",
13
+ "@vesk/plugin-tailwind": "^0.2.77",
14
+ "@vesk/runtime": "^0.2.77",
15
15
  "esrap": "^2.3.0",
16
16
  "typescript": "^5.8.0",
17
17
  "ws": "^8.18.0",