@absolutejs/absolute 0.19.0-beta.946 → 0.19.0-beta.947

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.
package/dist/build.js CHANGED
@@ -11884,7 +11884,7 @@ var traceAngularPhase = async (name, fn2, metadata) => {
11884
11884
  if (fileName.startsWith(outDir))
11885
11885
  return fileName.substring(outDir.length + 1);
11886
11886
  return fileName;
11887
- }, hasJsLikeExtension = (path) => /\.(js|ts|mjs|cjs)$/.test(path), splitSpecifierAndQuery = (specifier) => {
11887
+ }, hasJsLikeExtension = (path) => /\.(js|ts|mjs|cjs|json)$/.test(path), splitSpecifierAndQuery = (specifier) => {
11888
11888
  const separator = specifier.indexOf("?");
11889
11889
  if (separator === -1) {
11890
11890
  return {
@@ -12444,11 +12444,12 @@ ${fields}
12444
12444
  });
12445
12445
  const tsconfigAliases = readTsconfigPathAliases();
12446
12446
  const resolveSourceFile2 = (candidate) => {
12447
- const candidates = candidate.match(/\.[cm]?[tj]sx?$/) ? [candidate] : [
12447
+ const candidates = candidate.match(/\.(?:[cm]?[tj]sx?|json)$/) ? [candidate] : [
12448
12448
  `${candidate}.ts`,
12449
12449
  `${candidate}.tsx`,
12450
12450
  `${candidate}.js`,
12451
12451
  `${candidate}.jsx`,
12452
+ `${candidate}.json`,
12452
12453
  join18(candidate, "index.ts"),
12453
12454
  join18(candidate, "index.tsx"),
12454
12455
  join18(candidate, "index.js"),
@@ -12526,6 +12527,16 @@ ${fields}
12526
12527
  if (visited.has(resolved))
12527
12528
  return;
12528
12529
  visited.add(resolved);
12530
+ if (resolved.endsWith(".json") && existsSync16(resolved)) {
12531
+ const inputDir2 = dirname12(resolved);
12532
+ const relativeDir2 = inputDir2.startsWith(baseDir) ? inputDir2.substring(baseDir.length + 1) : inputDir2;
12533
+ const targetDir2 = join18(outDir, relativeDir2);
12534
+ const targetPath2 = join18(targetDir2, basename6(resolved));
12535
+ await fs.mkdir(targetDir2, { recursive: true });
12536
+ await fs.copyFile(resolved, targetPath2);
12537
+ allOutputs.push(targetPath2);
12538
+ return;
12539
+ }
12529
12540
  let actualPath = resolved;
12530
12541
  if (!actualPath.endsWith(".ts"))
12531
12542
  actualPath += ".ts";
@@ -20122,6 +20133,114 @@ var init_ssrCache = __esm(() => {
20122
20133
  dirtyFrameworks = new Set;
20123
20134
  });
20124
20135
 
20136
+ // src/utils/loadConfig.ts
20137
+ var exports_loadConfig = {};
20138
+ __export(exports_loadConfig, {
20139
+ loadRawConfig: () => loadRawConfig,
20140
+ loadConfig: () => loadConfig,
20141
+ isWorkspaceConfig: () => isWorkspaceConfig,
20142
+ getWorkspaceServices: () => getWorkspaceServices
20143
+ });
20144
+ import { resolve as resolve33 } from "path";
20145
+ var RESERVED_TOP_LEVEL_KEYS, isObject2 = (value) => typeof value === "object" && value !== null, isCommandService = (service) => service.kind === "command" || Array.isArray(service.command), isServiceCandidate = (value) => isObject2(value) && (typeof value.entry === "string" || Array.isArray(value.command)), isWorkspaceConfig = (config) => {
20146
+ if (!isObject2(config)) {
20147
+ return false;
20148
+ }
20149
+ const entries = Object.entries(config);
20150
+ if (entries.length === 0) {
20151
+ return false;
20152
+ }
20153
+ if (entries.some(([key]) => RESERVED_TOP_LEVEL_KEYS.has(key))) {
20154
+ return false;
20155
+ }
20156
+ return entries.every(([, value]) => isServiceCandidate(value));
20157
+ }, isConfigInput = (value) => isObject2(value), getWorkspaceServices = (config) => {
20158
+ if (!isWorkspaceConfig(config)) {
20159
+ throw new Error("absolute.config.ts is not a multi-service config. Define top-level named services with `entry` or `command` before using `absolute workspace dev`.");
20160
+ }
20161
+ return config;
20162
+ }, projectServiceConfig = (config, serviceName) => {
20163
+ const services = getWorkspaceServices(config);
20164
+ const service = services[serviceName];
20165
+ if (!service) {
20166
+ throw new Error(`Config file does not define service "${serviceName}".`);
20167
+ }
20168
+ if (isCommandService(service)) {
20169
+ throw new Error(`Service "${serviceName}" is a command service and cannot be loaded as an AbsoluteJS app config.`);
20170
+ }
20171
+ const {
20172
+ command: _command,
20173
+ config: _config,
20174
+ cwd: _cwd,
20175
+ dependsOn: _dependsOn,
20176
+ env: _env,
20177
+ kind: _kind,
20178
+ port: _port,
20179
+ ready: _ready,
20180
+ visibility: _visibility,
20181
+ ...serviceConfig
20182
+ } = service;
20183
+ return serviceConfig;
20184
+ }, loadConfig = async (configPath2) => {
20185
+ const config = await loadRawConfig(configPath2);
20186
+ const serviceName = process.env.ABSOLUTE_WORKSPACE_SERVICE_NAME;
20187
+ if (typeof serviceName === "string" && serviceName.length > 0) {
20188
+ return projectServiceConfig(config, serviceName);
20189
+ }
20190
+ if (isWorkspaceConfig(config)) {
20191
+ throw new Error("absolute.config.ts defines multiple services. Use `absolute workspace dev` or set ABSOLUTE_WORKSPACE_SERVICE_NAME before loading a specific service config.");
20192
+ }
20193
+ return config;
20194
+ }, loadRawConfig = async (configPath2) => {
20195
+ const resolved = resolve33(configPath2 ?? process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
20196
+ const mod = await import(resolved);
20197
+ const config = mod.default ?? mod.config;
20198
+ if (!config) {
20199
+ throw new Error(`Config file "${resolved}" does not export a valid configuration.
20200
+ Expected: export default defineConfig({ ... })`);
20201
+ }
20202
+ if (!isConfigInput(config)) {
20203
+ throw new Error(`Config file "${resolved}" must export an object configuration.`);
20204
+ }
20205
+ return config;
20206
+ };
20207
+ var init_loadConfig = __esm(() => {
20208
+ RESERVED_TOP_LEVEL_KEYS = new Set([
20209
+ "assetsDirectory",
20210
+ "astroDirectory",
20211
+ "buildDirectory",
20212
+ "bunBuild",
20213
+ "command",
20214
+ "config",
20215
+ "cwd",
20216
+ "dependsOn",
20217
+ "dev",
20218
+ "emberDirectory",
20219
+ "entry",
20220
+ "env",
20221
+ "htmlDirectory",
20222
+ "htmxDirectory",
20223
+ "images",
20224
+ "incrementalFiles",
20225
+ "islands",
20226
+ "kind",
20227
+ "mode",
20228
+ "options",
20229
+ "port",
20230
+ "postcss",
20231
+ "publicDirectory",
20232
+ "reactDirectory",
20233
+ "sitemap",
20234
+ "static",
20235
+ "stylesConfig",
20236
+ "svelteDirectory",
20237
+ "tailwind",
20238
+ "ready",
20239
+ "visibility",
20240
+ "vueDirectory"
20241
+ ]);
20242
+ });
20243
+
20125
20244
  // src/dev/moduleServer.ts
20126
20245
  var exports_moduleServer = {};
20127
20246
  __export(exports_moduleServer, {
@@ -20134,7 +20253,7 @@ __export(exports_moduleServer, {
20134
20253
  SRC_URL_PREFIX: () => SRC_URL_PREFIX
20135
20254
  });
20136
20255
  import { existsSync as existsSync25, readFileSync as readFileSync19, statSync as statSync4 } from "fs";
20137
- import { basename as basename10, dirname as dirname19, extname as extname10, join as join29, resolve as resolve33, relative as relative14 } from "path";
20256
+ import { basename as basename10, dirname as dirname19, extname as extname10, join as join29, resolve as resolve34, relative as relative14 } from "path";
20138
20257
  var SRC_PREFIX = "/@src/", jsTranspiler2, tsTranspiler2, tsxTranspiler, TRANSPILABLE, ALL_EXPORTS_RE, STRING_CONTENTS_RE, preserveTypeExports = (originalSource, transpiled, valueExports) => {
20139
20258
  const codeOnly = originalSource.replace(STRING_CONTENTS_RE, '""');
20140
20259
  const allExports = [];
@@ -20154,7 +20273,7 @@ var SRC_PREFIX = "/@src/", jsTranspiler2, tsTranspiler2, tsxTranspiler, TRANSPIL
20154
20273
  ${stubs}
20155
20274
  `;
20156
20275
  }, resolveRelativeExtension = (srcPath, projectRoot, extensions) => {
20157
- const found = extensions.find((ext) => existsSync25(resolve33(projectRoot, srcPath + ext)));
20276
+ const found = extensions.find((ext) => existsSync25(resolve34(projectRoot, srcPath + ext)));
20158
20277
  return found ? srcPath + found : srcPath;
20159
20278
  }, IMPORT_EXTENSIONS, SIDE_EFFECT_EXTENSIONS, MODULE_EXTENSIONS, RESOLVED_MODULE_EXTENSIONS, REACT_EXTENSIONS, escapeRegex3 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), buildImportRewriter = (vendorPaths) => {
20160
20279
  const entries = Object.entries(vendorPaths).sort(([a], [b2]) => b2.length - a.length);
@@ -20169,7 +20288,7 @@ ${stubs}
20169
20288
  return invalidationVersion > 0 ? `${mtime}.${invalidationVersion}` : `${mtime}`;
20170
20289
  }, srcUrl = (relPath, projectRoot) => {
20171
20290
  const base = `${SRC_PREFIX}${relPath.replace(/\\/g, "/")}`;
20172
- const absPath = resolve33(projectRoot, relPath);
20291
+ const absPath = resolve34(projectRoot, relPath);
20173
20292
  const cached = mtimeCache.get(absPath);
20174
20293
  if (cached !== undefined)
20175
20294
  return `${base}?v=${buildVersion(cached, absPath)}`;
@@ -20181,12 +20300,12 @@ ${stubs}
20181
20300
  return base;
20182
20301
  }
20183
20302
  }, resolveRelativeImport = (relPath, fileDir, projectRoot, extensions) => {
20184
- const absPath = resolve33(fileDir, relPath);
20303
+ const absPath = resolve34(fileDir, relPath);
20185
20304
  const rel = relative14(projectRoot, absPath);
20186
20305
  const extension = extname10(rel);
20187
20306
  let srcPath = RESOLVED_MODULE_EXTENSIONS.has(extension) ? rel : resolveRelativeExtension(rel, projectRoot, extensions);
20188
20307
  if (extname10(srcPath) === ".svelte") {
20189
- srcPath = relative14(projectRoot, resolveSvelteModulePath(resolve33(projectRoot, srcPath)));
20308
+ srcPath = relative14(projectRoot, resolveSvelteModulePath(resolve34(projectRoot, srcPath)));
20190
20309
  }
20191
20310
  return srcUrl(srcPath, projectRoot);
20192
20311
  }, NODE_BUILTIN_RE, resolveAbsoluteSpecifier = (specifier, projectRoot) => {
@@ -20205,13 +20324,13 @@ ${stubs}
20205
20324
  const packageName = isScoped ? `${parts[0]}/${parts[1]}` : parts[0];
20206
20325
  const subpath = isScoped ? parts.slice(2).join("/") : parts.slice(1).join("/");
20207
20326
  if (!subpath) {
20208
- const pkgDir = resolve33(projectRoot, "node_modules", packageName ?? "");
20327
+ const pkgDir = resolve34(projectRoot, "node_modules", packageName ?? "");
20209
20328
  const pkgJsonPath = join29(pkgDir, "package.json");
20210
20329
  if (existsSync25(pkgJsonPath)) {
20211
20330
  const pkg = JSON.parse(readFileSync19(pkgJsonPath, "utf-8"));
20212
20331
  const esmEntry = typeof pkg.module === "string" && pkg.module || typeof pkg.browser === "string" && pkg.browser;
20213
20332
  if (esmEntry) {
20214
- const resolved = resolve33(pkgDir, esmEntry);
20333
+ const resolved = resolve34(pkgDir, esmEntry);
20215
20334
  if (existsSync25(resolved))
20216
20335
  return relative14(projectRoot, resolved);
20217
20336
  }
@@ -20258,12 +20377,12 @@ ${stubs}
20258
20377
  result = result.replace(/((?:from|import)\s*["'])(\/[^"']+\.(tsx?|jsx?|ts))(["'])/g, rewriteAbsoluteToSrc);
20259
20378
  result = result.replace(/(import\s*\(\s*["'])(\/[^"']+\.(tsx?|jsx?|ts))(["']\s*\))/g, rewriteAbsoluteToSrc);
20260
20379
  result = result.replace(/new\s+URL\(\s*["'](\.\.?\/[^"']+)["']\s*,\s*import\.meta\.url\s*\)/g, (_match, relPath) => {
20261
- const absPath = resolve33(fileDir, relPath);
20380
+ const absPath = resolve34(fileDir, relPath);
20262
20381
  const rel = relative14(projectRoot, absPath);
20263
20382
  return `new URL('${srcUrl(rel, projectRoot)}', import.meta.url)`;
20264
20383
  });
20265
20384
  result = result.replace(/import\.meta\.resolve\(\s*["'](\.\.?\/[^"']+)["']\s*\)/g, (_match, relPath) => {
20266
- const absPath = resolve33(fileDir, relPath);
20385
+ const absPath = resolve34(fileDir, relPath);
20267
20386
  const rel = relative14(projectRoot, absPath);
20268
20387
  return `'${srcUrl(rel, projectRoot)}'`;
20269
20388
  });
@@ -20576,7 +20695,7 @@ ${code}`;
20576
20695
  code = injectVueHmr(code, filePath, projectRoot, vueDir);
20577
20696
  return rewriteImports(code, filePath, projectRoot, rewriter);
20578
20697
  }, injectVueHmr = (code, filePath, projectRoot, vueDir) => {
20579
- const hmrBase = vueDir ? resolve33(vueDir) : projectRoot;
20698
+ const hmrBase = vueDir ? resolve34(vueDir) : projectRoot;
20580
20699
  const hmrId = relative14(hmrBase, filePath).replace(/\\/g, "/").replace(/\.vue$/, "");
20581
20700
  let result = code.replace(/export\s+default\s+/, "var __hmr_comp__ = ");
20582
20701
  result += [
@@ -20740,7 +20859,7 @@ export default {};
20740
20859
  const escaped = virtualCss.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
20741
20860
  return jsResponse(`var s=document.createElement('style');s.textContent=\`${escaped}\`;s.dataset.svelteHmr=${JSON.stringify(cssCheckPath)};var p=document.querySelector('style[data-svelte-hmr="${cssCheckPath}"]');if(p)p.remove();document.head.appendChild(s);`);
20742
20861
  }, resolveSourcePath = (relPath, projectRoot) => {
20743
- const filePath = resolve33(projectRoot, relPath);
20862
+ const filePath = resolve34(projectRoot, relPath);
20744
20863
  const ext = extname10(filePath);
20745
20864
  if (ext === ".svelte")
20746
20865
  return { ext, filePath: resolveSvelteModulePath(filePath) };
@@ -20756,6 +20875,54 @@ export default {};
20756
20875
  }, transformAndCache = async (filePath, ext, projectRoot, rewriter, vueDir, stylePreprocessors) => {
20757
20876
  if (ext === ".css")
20758
20877
  return jsResponse(handleCssRequest(filePath));
20878
+ if (ext === ".json") {
20879
+ try {
20880
+ const { readFile: readFile6, stat: stat4 } = await import("fs/promises");
20881
+ const fileExists = async (p2) => {
20882
+ try {
20883
+ await stat4(p2);
20884
+ return true;
20885
+ } catch {
20886
+ return false;
20887
+ }
20888
+ };
20889
+ let sourcePath = filePath;
20890
+ if (!await fileExists(sourcePath)) {
20891
+ const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
20892
+ const generatedAngularRoot = getFrameworkGeneratedDir2("angular").replace(/\\/g, "/");
20893
+ const normalized = filePath.replace(/\\/g, "/");
20894
+ if (normalized.startsWith(generatedAngularRoot + "/") || normalized.startsWith(generatedAngularRoot)) {
20895
+ const tail = normalized.slice(generatedAngularRoot.length + 1);
20896
+ const absoluteCandidate = "/" + tail.replace(/^\/+/, "");
20897
+ const candidates = [
20898
+ absoluteCandidate,
20899
+ resolve34(projectRoot, tail)
20900
+ ];
20901
+ try {
20902
+ const { loadConfig: loadConfig2 } = await Promise.resolve().then(() => (init_loadConfig(), exports_loadConfig));
20903
+ const cfg = await loadConfig2();
20904
+ const angularDir = cfg.angularDirectory && resolve34(projectRoot, cfg.angularDirectory);
20905
+ if (angularDir)
20906
+ candidates.push(resolve34(angularDir, tail));
20907
+ } catch {}
20908
+ for (const candidate of candidates) {
20909
+ if (await fileExists(candidate)) {
20910
+ sourcePath = candidate;
20911
+ break;
20912
+ }
20913
+ }
20914
+ }
20915
+ }
20916
+ const text = await readFile6(sourcePath, "utf-8");
20917
+ JSON.parse(text);
20918
+ return jsResponse(`export default ${text};`);
20919
+ } catch (err) {
20920
+ return new Response(`console.error('[ModuleServer] JSON load error in ${filePath}:', ${JSON.stringify(String(err))});`, {
20921
+ headers: { "Content-Type": "application/javascript" },
20922
+ status: 500
20923
+ });
20924
+ }
20925
+ }
20759
20926
  const isSvelte = ext === ".svelte" || filePath.endsWith(".svelte.ts") || filePath.endsWith(".svelte.js");
20760
20927
  const cached = getTransformed(filePath);
20761
20928
  if (cached)
@@ -20767,7 +20934,7 @@ export default {};
20767
20934
  if (!TRANSPILABLE.has(ext))
20768
20935
  return;
20769
20936
  const stat3 = statSync4(filePath);
20770
- const resolvedVueDir = vueDir ? resolve33(vueDir) : undefined;
20937
+ const resolvedVueDir = vueDir ? resolve34(vueDir) : undefined;
20771
20938
  let content = REACT_EXTENSIONS.has(ext) ? transformReactFile(filePath, projectRoot, rewriter) : transformPlainFile(filePath, projectRoot, rewriter, resolvedVueDir);
20772
20939
  const isAngularGeneratedJs = ext === ".js" && filePath.replace(/\\/g, "/").includes("/.absolutejs/generated/angular/");
20773
20940
  if (isAngularGeneratedJs) {
@@ -20826,7 +20993,7 @@ export default {};
20826
20993
  const relPath = pathname.slice(SRC_PREFIX.length);
20827
20994
  if (relPath === "bun:wrap" || relPath.startsWith("bun:wrap?"))
20828
20995
  return handleBunWrapRequest();
20829
- const virtualCssResponse = handleVirtualSvelteCss(resolve33(projectRoot, relPath));
20996
+ const virtualCssResponse = handleVirtualSvelteCss(resolve34(projectRoot, relPath));
20830
20997
  if (virtualCssResponse)
20831
20998
  return virtualCssResponse;
20832
20999
  const { filePath, ext } = resolveSourcePath(relPath, projectRoot);
@@ -20842,11 +21009,11 @@ export default {};
20842
21009
  SRC_IMPORT_RE.lastIndex = 0;
20843
21010
  while ((match = SRC_IMPORT_RE.exec(content)) !== null) {
20844
21011
  if (match[1])
20845
- files.push(resolve33(projectRoot, match[1]));
21012
+ files.push(resolve34(projectRoot, match[1]));
20846
21013
  }
20847
21014
  return files;
20848
21015
  }, invalidateModule = (filePath) => {
20849
- const resolved = resolve33(filePath);
21016
+ const resolved = resolve34(filePath);
20850
21017
  invalidate(filePath);
20851
21018
  if (resolved !== filePath)
20852
21019
  invalidate(resolved);
@@ -20991,7 +21158,7 @@ __export(exports_hmrCompiler, {
20991
21158
  getApplyMetadataModule: () => getApplyMetadataModule,
20992
21159
  encodeHmrComponentId: () => encodeHmrComponentId
20993
21160
  });
20994
- import { dirname as dirname20, relative as relative15, resolve as resolve34 } from "path";
21161
+ import { dirname as dirname20, relative as relative15, resolve as resolve35 } from "path";
20995
21162
  import { performance as performance2 } from "perf_hooks";
20996
21163
  var getApplyMetadataModule = async (encodedId) => {
20997
21164
  const decoded = decodeURIComponent(encodedId);
@@ -21000,7 +21167,7 @@ var getApplyMetadataModule = async (encodedId) => {
21000
21167
  return null;
21001
21168
  const filePathRel = decoded.slice(0, at2);
21002
21169
  const className = decoded.slice(at2 + 1);
21003
- const componentFilePath = resolve34(process.cwd(), filePathRel);
21170
+ const componentFilePath = resolve35(process.cwd(), filePathRel);
21004
21171
  const projectRelPath = relative15(process.cwd(), componentFilePath).replace(/\\/g, "/");
21005
21172
  const cacheKey2 = encodeURIComponent(`${projectRelPath}@${className}`);
21006
21173
  const { takePendingModule: takePendingModule2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
@@ -21162,11 +21329,11 @@ var exports_simpleHTMLHMR = {};
21162
21329
  __export(exports_simpleHTMLHMR, {
21163
21330
  handleHTMLUpdate: () => handleHTMLUpdate
21164
21331
  });
21165
- import { resolve as resolve35 } from "path";
21332
+ import { resolve as resolve36 } from "path";
21166
21333
  var handleHTMLUpdate = async (htmlFilePath) => {
21167
21334
  let htmlContent;
21168
21335
  try {
21169
- const resolvedPath = resolve35(htmlFilePath);
21336
+ const resolvedPath = resolve36(htmlFilePath);
21170
21337
  const file4 = Bun.file(resolvedPath);
21171
21338
  if (!await file4.exists()) {
21172
21339
  return null;
@@ -21192,11 +21359,11 @@ var exports_simpleHTMXHMR = {};
21192
21359
  __export(exports_simpleHTMXHMR, {
21193
21360
  handleHTMXUpdate: () => handleHTMXUpdate
21194
21361
  });
21195
- import { resolve as resolve36 } from "path";
21362
+ import { resolve as resolve37 } from "path";
21196
21363
  var handleHTMXUpdate = async (htmxFilePath) => {
21197
21364
  let htmlContent;
21198
21365
  try {
21199
- const resolvedPath = resolve36(htmxFilePath);
21366
+ const resolvedPath = resolve37(htmxFilePath);
21200
21367
  const file4 = Bun.file(resolvedPath);
21201
21368
  if (!await file4.exists()) {
21202
21369
  return null;
@@ -21219,7 +21386,7 @@ var init_simpleHTMXHMR = () => {};
21219
21386
 
21220
21387
  // src/dev/rebuildTrigger.ts
21221
21388
  import { existsSync as existsSync26 } from "fs";
21222
- import { basename as basename11, dirname as dirname21, relative as relative16, resolve as resolve37, sep as sep4 } from "path";
21389
+ import { basename as basename11, dirname as dirname21, relative as relative16, resolve as resolve38, sep as sep4 } from "path";
21223
21390
  var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequentially = (items, action) => items.reduce((chain, item) => chain.then(() => action(item)), Promise.resolve()), getStyleTransformConfig = (config) => createStyleTransformConfig(config.stylePreprocessors, config.postcss), recompileTailwindForFastPath = async (state, config, files) => {
21224
21391
  if (!config.tailwind)
21225
21392
  return;
@@ -21230,7 +21397,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21230
21397
  if (!cssChanged)
21231
21398
  return;
21232
21399
  try {
21233
- const outputPath = resolve37(state.resolvedPaths.buildDir, config.tailwind.output);
21400
+ const outputPath = resolve38(state.resolvedPaths.buildDir, config.tailwind.output);
21234
21401
  const bytes = await Bun.file(outputPath).bytes();
21235
21402
  const webPath = `/${config.tailwind.output.replace(/^\/+/, "")}`;
21236
21403
  state.assetStore.set(webPath, bytes);
@@ -21317,7 +21484,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21317
21484
  state.fileHashes.delete(filePathInSet);
21318
21485
  try {
21319
21486
  const affectedFiles = getAffectedFiles(state.dependencyGraph, filePathInSet);
21320
- const deletedPathResolved = resolve37(filePathInSet);
21487
+ const deletedPathResolved = resolve38(filePathInSet);
21321
21488
  affectedFiles.forEach((affectedFile) => {
21322
21489
  if (isValidDeletedAffectedFile(affectedFile, deletedPathResolved, processedFiles)) {
21323
21490
  validFiles.push(affectedFile);
@@ -21361,7 +21528,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21361
21528
  if (storedHash !== undefined && storedHash === fileHash) {
21362
21529
  return;
21363
21530
  }
21364
- const normalizedFilePath = resolve37(filePathInSet);
21531
+ const normalizedFilePath = resolve38(filePathInSet);
21365
21532
  if (!processedFiles.has(normalizedFilePath)) {
21366
21533
  validFiles.push(normalizedFilePath);
21367
21534
  processedFiles.add(normalizedFilePath);
@@ -21494,30 +21661,43 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21494
21661
  return;
21495
21662
  }
21496
21663
  const publicDir = state.resolvedPaths.publicDir;
21497
- if (publicDir && resolve37(filePath).replace(/\\/g, "/").startsWith(publicDir + "/")) {
21664
+ const assetsDir = state.resolvedPaths.assetsDir;
21665
+ const handleStaticMirror = async (sourceDir, urlPrefix) => {
21666
+ const absSource = resolve38(filePath);
21667
+ const normalizedSource = absSource.replace(/\\/g, "/");
21668
+ const normalizedDir = sourceDir.replace(/\\/g, "/");
21669
+ if (!normalizedSource.startsWith(normalizedDir + "/"))
21670
+ return false;
21498
21671
  try {
21499
- const absSource = resolve37(filePath);
21500
- const relFromPublic = absSource.replace(/\\/g, "/").slice(publicDir.length + 1);
21672
+ const relFromDir = normalizedSource.slice(normalizedDir.length + 1);
21501
21673
  const buildDir = state.resolvedPaths.buildDir;
21502
- const destPath = resolve37(buildDir, relFromPublic);
21674
+ const destPath = resolve38(buildDir, urlPrefix ? `${urlPrefix}/${relFromDir}` : relFromDir);
21503
21675
  const { mkdir: mkdir7, copyFile, readFile: readFile6 } = await import("fs/promises");
21504
21676
  const { dirname: dirname22 } = await import("path");
21505
21677
  await mkdir7(dirname22(destPath), { recursive: true });
21506
21678
  await copyFile(absSource, destPath);
21507
21679
  const bytes = await readFile6(destPath);
21508
- state.assetStore.set(`/${relFromPublic}`, new Uint8Array(bytes));
21680
+ const webPath = urlPrefix ? `/${urlPrefix}/${relFromDir}` : `/${relFromDir}`;
21681
+ state.assetStore.set(webPath, new Uint8Array(bytes));
21509
21682
  state.fileHashes.set(absSource, currentHash);
21510
21683
  logHmrUpdate(relative16(process.cwd(), filePath));
21511
21684
  broadcastToClients(state, {
21512
- data: { framework: "public", manifest: state.manifest },
21513
- message: "Public asset updated",
21685
+ data: {
21686
+ framework: urlPrefix || "public",
21687
+ manifest: state.manifest
21688
+ },
21689
+ message: `${urlPrefix || "Public"} asset updated`,
21514
21690
  type: "style-update"
21515
21691
  });
21516
21692
  } catch {}
21693
+ return true;
21694
+ };
21695
+ if (publicDir && await handleStaticMirror(publicDir, ""))
21696
+ return;
21697
+ if (assetsDir && await handleStaticMirror(assetsDir, "assets"))
21517
21698
  return;
21518
- }
21519
21699
  if (framework === "unknown") {
21520
- invalidate(resolve37(filePath));
21700
+ invalidate(resolve38(filePath));
21521
21701
  const relPath = relative16(process.cwd(), filePath);
21522
21702
  logHmrUpdate(relPath);
21523
21703
  const angularDir = state.resolvedPaths.angularDir;
@@ -21525,10 +21705,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21525
21705
  if (angularDir && state.dependencyGraph) {
21526
21706
  try {
21527
21707
  const { addFileToGraph: addFileToGraph2 } = await Promise.resolve().then(() => (init_dependencyGraph(), exports_dependencyGraph));
21528
- addFileToGraph2(state.dependencyGraph, resolve37(filePath));
21529
- const affected = getAffectedFiles(state.dependencyGraph, resolve37(filePath));
21708
+ addFileToGraph2(state.dependencyGraph, resolve38(filePath));
21709
+ const affected = getAffectedFiles(state.dependencyGraph, resolve38(filePath));
21530
21710
  for (const dependent of affected) {
21531
- if (dependent === resolve37(filePath))
21711
+ if (dependent === resolve38(filePath))
21532
21712
  continue;
21533
21713
  const dependentFramework = detectFramework(dependent, state.resolvedPaths);
21534
21714
  if (dependentFramework !== "angular")
@@ -21551,7 +21731,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21551
21731
  const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
21552
21732
  const { invalidateModule: invalidateModuleServer } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
21553
21733
  const generatedAngularRoot = getFrameworkGeneratedDir2("angular");
21554
- const sourceAbs = resolve37(filePath).replace(/\\/g, "/");
21734
+ const sourceAbs = resolve38(filePath).replace(/\\/g, "/");
21555
21735
  const generatedTwin = `${generatedAngularRoot.replace(/\\/g, "/")}${sourceAbs.replace(/\.ts$/, ".js")}`;
21556
21736
  invalidateModuleServer(generatedTwin);
21557
21737
  } catch {}
@@ -21585,7 +21765,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21585
21765
  const userEditedFiles = new Set;
21586
21766
  state.fileChangeQueue.forEach((filePaths) => {
21587
21767
  for (const filePath2 of filePaths) {
21588
- userEditedFiles.add(resolve37(filePath2));
21768
+ userEditedFiles.add(resolve38(filePath2));
21589
21769
  }
21590
21770
  });
21591
21771
  state.lastUserEditedFiles = userEditedFiles;
@@ -21614,7 +21794,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21614
21794
  }
21615
21795
  if (!graph)
21616
21796
  return componentFile;
21617
- const dependents = graph.dependents.get(resolve37(componentFile));
21797
+ const dependents = graph.dependents.get(resolve38(componentFile));
21618
21798
  if (!dependents)
21619
21799
  return componentFile;
21620
21800
  for (const dep of dependents) {
@@ -21623,7 +21803,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21623
21803
  }
21624
21804
  return componentFile;
21625
21805
  }, resolveAngularPageEntries = (state, angularFiles, angularPagesPath) => {
21626
- const pageEntries = angularFiles.filter((file4) => file4.endsWith(".ts") && resolve37(file4).startsWith(angularPagesPath));
21806
+ const pageEntries = angularFiles.filter((file4) => file4.endsWith(".ts") && resolve38(file4).startsWith(angularPagesPath));
21627
21807
  if (pageEntries.length > 0 || !state.dependencyGraph) {
21628
21808
  return pageEntries;
21629
21809
  }
@@ -21632,7 +21812,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21632
21812
  const lookupFile = resolveComponentLookupFile(componentFile, state.dependencyGraph);
21633
21813
  const affected = getAffectedFiles(state.dependencyGraph, lookupFile);
21634
21814
  affected.forEach((file4) => {
21635
- if (file4.endsWith(".ts") && resolve37(file4).startsWith(angularPagesPath)) {
21815
+ if (file4.endsWith(".ts") && resolve38(file4).startsWith(angularPagesPath)) {
21636
21816
  resolvedPages.add(file4);
21637
21817
  }
21638
21818
  });
@@ -21754,8 +21934,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21754
21934
  if (detected !== "unknown")
21755
21935
  continue;
21756
21936
  try {
21757
- const affected = getAffectedFiles(state.dependencyGraph, resolve37(editedFile));
21758
- const hasAngularConsumer = affected.some((dep) => dep !== resolve37(editedFile) && detectFramework(dep, state.resolvedPaths) === "angular");
21937
+ const affected = getAffectedFiles(state.dependencyGraph, resolve38(editedFile));
21938
+ const hasAngularConsumer = affected.some((dep) => dep !== resolve38(editedFile) && detectFramework(dep, state.resolvedPaths) === "angular");
21759
21939
  if (hasAngularConsumer) {
21760
21940
  return {
21761
21941
  kind: "rebootstrap",
@@ -21800,9 +21980,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21800
21980
  tier: 1
21801
21981
  };
21802
21982
  }
21803
- if (owners.length === 0 && editedFile.endsWith(".ts") && !editedFile.endsWith(".d.ts")) {
21983
+ if (owners.length === 0 && (editedFile.endsWith(".ts") || editedFile.endsWith(".json")) && !editedFile.endsWith(".d.ts")) {
21804
21984
  const normalized = editedFile.replace(/\\/g, "/");
21805
- const angularDirAbs = resolve37(angularDir).replace(/\\/g, "/");
21985
+ const angularDirAbs = resolve38(angularDir).replace(/\\/g, "/");
21806
21986
  if (normalized.startsWith(angularDirAbs + "/")) {
21807
21987
  return {
21808
21988
  kind: "rebootstrap",
@@ -21946,16 +22126,16 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21946
22126
  };
21947
22127
  const fire = () => {
21948
22128
  ctx.debounceTimer = null;
21949
- const resolve38 = ctx.debouncedResolve;
22129
+ const resolve39 = ctx.debouncedResolve;
21950
22130
  ctx.debouncedResolve = null;
21951
22131
  ctx.debouncedPromise = null;
21952
22132
  if (ctx.inFlight) {
21953
22133
  ctx.pending = true;
21954
- ctx.inFlight.finally(() => resolve38?.());
22134
+ ctx.inFlight.finally(() => resolve39?.());
21955
22135
  return;
21956
22136
  }
21957
22137
  ctx.inFlight = drive();
21958
- ctx.inFlight.finally(() => resolve38?.());
22138
+ ctx.inFlight.finally(() => resolve39?.());
21959
22139
  };
21960
22140
  return ({ immediate = false } = {}) => {
21961
22141
  if (!ctx.debouncedPromise) {
@@ -21982,9 +22162,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21982
22162
  const diskRefreshPromise = (async () => {
21983
22163
  if (!angularDir || editedFiles.size === 0)
21984
22164
  return;
21985
- const angularDirAbs = resolve37(angularDir);
22165
+ const angularDirAbs = resolve38(angularDir);
21986
22166
  const filesUnderAngular = Array.from(editedFiles).filter((file4) => {
21987
- const abs = resolve37(file4);
22167
+ const abs = resolve38(file4);
21988
22168
  return abs === angularDirAbs || abs.startsWith(angularDirAbs + sep4);
21989
22169
  });
21990
22170
  if (filesUnderAngular.length === 0)
@@ -22006,7 +22186,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22006
22186
  if (!ext)
22007
22187
  continue;
22008
22188
  if (ext === ".ts" || ext === ".tsx") {
22009
- tsFilesToRefresh.add(resolve37(file4));
22189
+ tsFilesToRefresh.add(resolve38(file4));
22010
22190
  continue;
22011
22191
  }
22012
22192
  const owners = resolveOwningComponents2({
@@ -22014,7 +22194,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22014
22194
  userAngularRoot: angularDirAbs
22015
22195
  });
22016
22196
  for (const owner of owners) {
22017
- tsFilesToRefresh.add(resolve37(owner.componentFilePath));
22197
+ tsFilesToRefresh.add(resolve38(owner.componentFilePath));
22018
22198
  }
22019
22199
  }
22020
22200
  if (tsFilesToRefresh.size === 0)
@@ -22026,7 +22206,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22026
22206
  const { invalidateModule: invalidateModule2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
22027
22207
  for (const tsFile of tsFilesToRefresh) {
22028
22208
  const rel = relative16(angularDirAbs, tsFile).replace(/\\/g, "/").replace(/\.[tj]sx?$/, ".js");
22029
- const compiledFile = resolve37(compiledRoot, rel);
22209
+ const compiledFile = resolve38(compiledRoot, rel);
22030
22210
  invalidateModule2(compiledFile);
22031
22211
  }
22032
22212
  } catch {}
@@ -22077,7 +22257,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22077
22257
  serverPaths.forEach((serverPath, idx) => {
22078
22258
  const fileBase = basename11(serverPath, ".js");
22079
22259
  const ssrPath = ssrPaths[idx] ?? serverPath;
22080
- state.manifest[toPascal(fileBase)] = resolve37(ssrPath);
22260
+ state.manifest[toPascal(fileBase)] = resolve38(ssrPath);
22081
22261
  });
22082
22262
  if (clientPaths.length > 0) {
22083
22263
  await bundleAngularClient(state, clientPaths, state.resolvedPaths.buildDir, angularDir);
@@ -22086,9 +22266,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22086
22266
  const angularDir = config.angularDirectory ?? "";
22087
22267
  const angularFiles = filesToRebuild.filter((file4) => detectFramework(file4, state.resolvedPaths) === "angular");
22088
22268
  for (const file4 of angularFiles) {
22089
- state.fileHashes.set(resolve37(file4), computeFileHash(file4));
22269
+ state.fileHashes.set(resolve38(file4), computeFileHash(file4));
22090
22270
  }
22091
- const angularPagesPath = resolve37(angularDir, "pages");
22271
+ const angularPagesPath = resolve38(angularDir, "pages");
22092
22272
  const pageEntries = resolveAngularPageEntries(state, angularFiles, angularPagesPath);
22093
22273
  const tierStart = performance.now();
22094
22274
  const verdict = await decideAngularTier(state, angularDir);
@@ -22127,11 +22307,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22127
22307
  if (isComponentFile2)
22128
22308
  return primaryFile;
22129
22309
  const { findNearestComponent: findNearestComponent2 } = await Promise.resolve().then(() => (init_transformCache(), exports_transformCache));
22130
- const nearest = findNearestComponent2(resolve37(primaryFile));
22310
+ const nearest = findNearestComponent2(resolve38(primaryFile));
22131
22311
  return nearest ?? primaryFile;
22132
22312
  }, handleReactModuleServerPath = async (state, reactFiles, startTime, onRebuildComplete) => {
22133
22313
  for (const file4 of reactFiles) {
22134
- state.fileHashes.set(resolve37(file4), computeFileHash(file4));
22314
+ state.fileHashes.set(resolve38(file4), computeFileHash(file4));
22135
22315
  }
22136
22316
  markSsrCacheDirty("react");
22137
22317
  const primaryFile = reactFiles.find((file4) => !file4.replace(/\\/g, "/").includes("/pages/")) ?? reactFiles[0];
@@ -22213,7 +22393,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22213
22393
  });
22214
22394
  }, handleSvelteModuleServerPath = async (state, svelteFiles, startTime, onRebuildComplete) => {
22215
22395
  for (const file4 of svelteFiles) {
22216
- state.fileHashes.set(resolve37(file4), computeFileHash(file4));
22396
+ state.fileHashes.set(resolve38(file4), computeFileHash(file4));
22217
22397
  }
22218
22398
  markSsrCacheDirty("svelte");
22219
22399
  const serverDuration = Date.now() - startTime;
@@ -22238,8 +22418,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22238
22418
  const serverEntries = [...svelteServerPaths];
22239
22419
  const clientEntries = [...svelteIndexPaths, ...svelteClientPaths];
22240
22420
  const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
22241
- const serverRoot = resolve37(getFrameworkGeneratedDir2("svelte"), "server");
22242
- const serverOutDir = resolve37(buildDir, basename11(svelteDir));
22421
+ const serverRoot = resolve38(getFrameworkGeneratedDir2("svelte"), "server");
22422
+ const serverOutDir = resolve38(buildDir, basename11(svelteDir));
22243
22423
  const [serverResult, clientResult] = await Promise.all([
22244
22424
  serverEntries.length > 0 ? bunBuild9({
22245
22425
  entrypoints: serverEntries,
@@ -22336,7 +22516,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22336
22516
  });
22337
22517
  }, handleVueModuleServerPath = async (state, vueFiles, nonVueFiles, startTime, onRebuildComplete) => {
22338
22518
  for (const file4 of [...vueFiles, ...nonVueFiles]) {
22339
- state.fileHashes.set(resolve37(file4), computeFileHash(file4));
22519
+ state.fileHashes.set(resolve38(file4), computeFileHash(file4));
22340
22520
  }
22341
22521
  markSsrCacheDirty("vue");
22342
22522
  await invalidateNonVueModules(nonVueFiles);
@@ -22364,7 +22544,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22364
22544
  recursive: true,
22365
22545
  withFileTypes: true
22366
22546
  });
22367
- return entries.filter((entry) => entry.isFile() && EMBER_PAGE_EXTENSIONS.some((ext) => entry.name.endsWith(ext))).map((entry) => resolve37(emberPagesPath, entry.name));
22547
+ return entries.filter((entry) => entry.isFile() && EMBER_PAGE_EXTENSIONS.some((ext) => entry.name.endsWith(ext))).map((entry) => resolve38(emberPagesPath, entry.name));
22368
22548
  } catch {
22369
22549
  return [];
22370
22550
  }
@@ -22376,10 +22556,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22376
22556
  return state.manifest;
22377
22557
  }
22378
22558
  for (const file4 of emberFiles) {
22379
- state.fileHashes.set(resolve37(file4), computeFileHash(file4));
22559
+ state.fileHashes.set(resolve38(file4), computeFileHash(file4));
22380
22560
  }
22381
- const emberPagesPath = resolve37(emberDir, "pages");
22382
- const directPageEntries = emberFiles.filter((file4) => resolve37(file4).startsWith(emberPagesPath));
22561
+ const emberPagesPath = resolve38(emberDir, "pages");
22562
+ const directPageEntries = emberFiles.filter((file4) => resolve38(file4).startsWith(emberPagesPath));
22383
22563
  const allPageEntries = directPageEntries.length > 0 ? directPageEntries : await collectAllEmberPages(emberPagesPath);
22384
22564
  if (allPageEntries.length === 0) {
22385
22565
  onRebuildComplete({ hmrState: state, manifest: state.manifest });
@@ -22389,7 +22569,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22389
22569
  const { serverPaths } = await compileEmber2(allPageEntries, emberDir, process.cwd(), true);
22390
22570
  for (const serverPath of serverPaths) {
22391
22571
  const fileBase = basename11(serverPath, ".js");
22392
- state.manifest[toPascal(fileBase)] = resolve37(serverPath);
22572
+ state.manifest[toPascal(fileBase)] = resolve38(serverPath);
22393
22573
  }
22394
22574
  const { invalidateEmberSsrCache: invalidateEmberSsrCache2 } = await Promise.resolve().then(() => (init_ember(), exports_ember));
22395
22575
  invalidateEmberSsrCache2();
@@ -22481,8 +22661,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22481
22661
  if (!buildReference?.source) {
22482
22662
  return;
22483
22663
  }
22484
- const sourcePath = buildReference.source.startsWith("file://") ? new URL(buildReference.source).pathname : resolve37(dirname21(buildInfo.resolvedRegistryPath), buildReference.source);
22485
- islandFiles.add(resolve37(sourcePath));
22664
+ const sourcePath = buildReference.source.startsWith("file://") ? new URL(buildReference.source).pathname : resolve38(dirname21(buildInfo.resolvedRegistryPath), buildReference.source);
22665
+ islandFiles.add(resolve38(sourcePath));
22486
22666
  }, resolveIslandSourceFiles = async (config) => {
22487
22667
  const registryPath = config.islands?.registry;
22488
22668
  if (!registryPath) {
@@ -22490,7 +22670,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22490
22670
  }
22491
22671
  const buildInfo = await loadIslandRegistryBuildInfo(registryPath);
22492
22672
  const islandFiles = new Set([
22493
- resolve37(buildInfo.resolvedRegistryPath)
22673
+ resolve38(buildInfo.resolvedRegistryPath)
22494
22674
  ]);
22495
22675
  for (const definition of buildInfo.definitions) {
22496
22676
  resolveIslandDefinitionSource(definition, buildInfo, islandFiles);
@@ -22501,7 +22681,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22501
22681
  if (islandFiles.size === 0) {
22502
22682
  return false;
22503
22683
  }
22504
- return filesToRebuild.some((file4) => islandFiles.has(resolve37(file4)));
22684
+ return filesToRebuild.some((file4) => islandFiles.has(resolve38(file4)));
22505
22685
  }, handleIslandSourceReload = async (state, config, filesToRebuild, manifest) => {
22506
22686
  const shouldReload = await didStaticPagesNeedIslandRefresh(config, filesToRebuild);
22507
22687
  if (!shouldReload) {
@@ -22536,10 +22716,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22536
22716
  }, computeOutputPagesDir = (state, config, framework) => {
22537
22717
  const isSingle = !config.reactDirectory && !config.svelteDirectory && !config.vueDirectory && (framework === "html" ? !config.htmxDirectory : !config.htmlDirectory);
22538
22718
  if (isSingle) {
22539
- return resolve37(state.resolvedPaths.buildDir, "pages");
22719
+ return resolve38(state.resolvedPaths.buildDir, "pages");
22540
22720
  }
22541
22721
  const dirName = framework === "html" ? basename11(config.htmlDirectory ?? "html") : basename11(config.htmxDirectory ?? "htmx");
22542
- return resolve37(state.resolvedPaths.buildDir, dirName, "pages");
22722
+ return resolve38(state.resolvedPaths.buildDir, dirName, "pages");
22543
22723
  }, processHtmlPageUpdate = async (state, pageFile, builtHtmlPagePath, manifest, duration) => {
22544
22724
  try {
22545
22725
  const { handleHTMLUpdate: handleHTMLUpdate2 } = await Promise.resolve().then(() => (init_simpleHTMLHMR(), exports_simpleHTMLHMR));
@@ -22578,7 +22758,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22578
22758
  const pageFilesToUpdate = shouldRefreshAllPages ? await scanEntryPoints(outputHtmlPages, "*.html") : htmlPageFiles;
22579
22759
  await runSequentially(pageFilesToUpdate, async (pageFile) => {
22580
22760
  const htmlPageName = basename11(pageFile);
22581
- const builtHtmlPagePath = resolve37(outputHtmlPages, htmlPageName);
22761
+ const builtHtmlPagePath = resolve38(outputHtmlPages, htmlPageName);
22582
22762
  await processHtmlPageUpdate(state, pageFile, builtHtmlPagePath, manifest, duration);
22583
22763
  });
22584
22764
  }, handleVueCssOnlyUpdate = (state, vueCssFiles, manifest, duration) => {
@@ -22643,7 +22823,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22643
22823
  const cssKey = `${pascalName}CSS`;
22644
22824
  const cssUrl = manifest[cssKey] || null;
22645
22825
  const { vueHmrMetadata: vueHmrMetadata2 } = await Promise.resolve().then(() => (init_compileVue(), exports_compileVue));
22646
- const hmrMeta = vueHmrMetadata2.get(resolve37(vuePagePath));
22826
+ const hmrMeta = vueHmrMetadata2.get(resolve38(vuePagePath));
22647
22827
  const changeType = hmrMeta?.changeType ?? "full";
22648
22828
  if (changeType === "style-only") {
22649
22829
  broadcastVueStyleOnly(state, vuePagePath, baseName, cssUrl, hmrId, manifest, duration);
@@ -22828,7 +23008,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22828
23008
  const pageFilesToUpdate = shouldRefreshAllPages ? await scanEntryPoints(outputHtmxPages, "*.html") : htmxPageFiles;
22829
23009
  await runSequentially(pageFilesToUpdate, async (htmxPageFile) => {
22830
23010
  const htmxPageName = basename11(htmxPageFile);
22831
- const builtHtmxPagePath = resolve37(outputHtmxPages, htmxPageName);
23011
+ const builtHtmxPagePath = resolve38(outputHtmxPages, htmxPageName);
22832
23012
  await processHtmxPageUpdate(state, htmxPageFile, builtHtmxPagePath, manifest, duration);
22833
23013
  });
22834
23014
  }, collectUpdatedModulePaths = (allModuleUpdates) => {
@@ -22937,7 +23117,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
22937
23117
  html = html.slice(0, bodyClose.index) + hmrScript + html.slice(bodyClose.index);
22938
23118
  writeFs(destPath, html);
22939
23119
  }, processMarkupFileFastPath = async (state, sourceFile, outputDir, framework, startTime, updateAssetPaths2, handleUpdate, readFs, writeFs) => {
22940
- const destPath = resolve37(outputDir, basename11(sourceFile));
23120
+ const destPath = resolve38(outputDir, basename11(sourceFile));
22941
23121
  const hmrScript = extractHmrScript(destPath, readFs);
22942
23122
  const source = await Bun.file(sourceFile).text();
22943
23123
  await Bun.write(destPath, source);
@@ -23505,7 +23685,7 @@ __export(exports_devBuild, {
23505
23685
  });
23506
23686
  import { readdir as readdir5 } from "fs/promises";
23507
23687
  import { statSync as statSync5 } from "fs";
23508
- import { resolve as resolve38 } from "path";
23688
+ import { resolve as resolve39 } from "path";
23509
23689
  var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
23510
23690
  const configuredDirs = [
23511
23691
  config.reactDirectory,
@@ -23528,7 +23708,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
23528
23708
  return Object.keys(config).length > 0 ? config : null;
23529
23709
  }, reloadConfig = async () => {
23530
23710
  try {
23531
- const configPath2 = resolve38(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
23711
+ const configPath2 = resolve39(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
23532
23712
  const source = await Bun.file(configPath2).text();
23533
23713
  return parseDirectoryConfig(source);
23534
23714
  } catch {
@@ -23613,7 +23793,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
23613
23793
  state.fileChangeQueue.clear();
23614
23794
  }
23615
23795
  }, handleCachedReload = async () => {
23616
- const serverMtime = statSync5(resolve38(Bun.main)).mtimeMs;
23796
+ const serverMtime = statSync5(resolve39(Bun.main)).mtimeMs;
23617
23797
  const lastMtime = globalThis.__hmrServerMtime;
23618
23798
  globalThis.__hmrServerMtime = serverMtime;
23619
23799
  const cached = globalThis.__hmrDevResult;
@@ -23650,8 +23830,8 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
23650
23830
  return true;
23651
23831
  }, resolveAbsoluteVersion2 = async () => {
23652
23832
  const candidates = [
23653
- resolve38(import.meta.dir, "..", "..", "package.json"),
23654
- resolve38(import.meta.dir, "..", "package.json")
23833
+ resolve39(import.meta.dir, "..", "..", "package.json"),
23834
+ resolve39(import.meta.dir, "..", "package.json")
23655
23835
  ];
23656
23836
  const [candidate, ...remaining] = candidates;
23657
23837
  if (!candidate) {
@@ -23677,7 +23857,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
23677
23857
  const entries = await readdir5(vendorDir).catch(() => emptyStringArray);
23678
23858
  await Promise.all(entries.filter((entry) => entry.endsWith(".js")).map(async (entry) => {
23679
23859
  const webPath = `/${framework}/vendor/${entry}`;
23680
- const bytes = await Bun.file(resolve38(vendorDir, entry)).bytes();
23860
+ const bytes = await Bun.file(resolve39(vendorDir, entry)).bytes();
23681
23861
  assetStore.set(webPath, bytes);
23682
23862
  }));
23683
23863
  }, devBuild = async (config) => {
@@ -23745,11 +23925,11 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
23745
23925
  cleanStaleAssets(state.assetStore, manifest, state.resolvedPaths.buildDir);
23746
23926
  recordStep("populate asset store", stepStartedAt);
23747
23927
  stepStartedAt = performance.now();
23748
- const reactVendorDir = resolve38(state.resolvedPaths.buildDir, "react", "vendor");
23749
- const angularVendorDir = resolve38(state.resolvedPaths.buildDir, "angular", "vendor");
23750
- const svelteVendorDir = resolve38(state.resolvedPaths.buildDir, "svelte", "vendor");
23751
- const vueVendorDir = resolve38(state.resolvedPaths.buildDir, "vue", "vendor");
23752
- const depVendorDir = resolve38(state.resolvedPaths.buildDir, "vendor");
23928
+ const reactVendorDir = resolve39(state.resolvedPaths.buildDir, "react", "vendor");
23929
+ const angularVendorDir = resolve39(state.resolvedPaths.buildDir, "angular", "vendor");
23930
+ const svelteVendorDir = resolve39(state.resolvedPaths.buildDir, "svelte", "vendor");
23931
+ const vueVendorDir = resolve39(state.resolvedPaths.buildDir, "vue", "vendor");
23932
+ const depVendorDir = resolve39(state.resolvedPaths.buildDir, "vendor");
23753
23933
  const { buildDepVendor: buildDepVendor2 } = await Promise.resolve().then(() => (init_buildDepVendor(), exports_buildDepVendor));
23754
23934
  const [, angularSpecs, , , , , depPaths] = await Promise.all([
23755
23935
  config.reactDirectory ? buildReactVendor(state.resolvedPaths.buildDir) : Promise.resolve(undefined),
@@ -23827,7 +24007,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
23827
24007
  manifest
23828
24008
  };
23829
24009
  globalThis.__hmrDevResult = result;
23830
- globalThis.__hmrServerMtime = statSync5(resolve38(Bun.main)).mtimeMs;
24010
+ globalThis.__hmrServerMtime = statSync5(resolve39(Bun.main)).mtimeMs;
23831
24011
  return result;
23832
24012
  };
23833
24013
  var init_devBuild = __esm(() => {
@@ -23864,5 +24044,5 @@ export {
23864
24044
  build
23865
24045
  };
23866
24046
 
23867
- //# debugId=DFDC175610BB2AC564756E2164756E21
24047
+ //# debugId=23D5B57CAFDE1D0564756E2164756E21
23868
24048
  //# sourceMappingURL=build.js.map