@absolutejs/absolute 0.20.0-beta.148 → 0.20.0-beta.149

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/index.js CHANGED
@@ -21722,11 +21722,10 @@ var init_emitTsHelpers = __esm(() => {
21722
21722
  transpiler4 = new Transpiler3({ loader: "ts", target: "browser" });
21723
21723
  });
21724
21724
 
21725
- // src/build/compileVueSfc.ts
21726
- import { existsSync as existsSync32, readFileSync as readFileSync30, realpathSync as realpathSync2 } from "fs";
21727
- import { dirname as dirname23, relative as relative18, resolve as resolve35 } from "path";
21728
- var {Transpiler: Transpiler4 } = globalThis.Bun;
21729
- var transpiler5, inlineCssImports = (cssContent, cssFilePath, visited = new Set) => {
21725
+ // src/build/inlineCssImports.ts
21726
+ import { readFileSync as readFileSync30, realpathSync as realpathSync2 } from "fs";
21727
+ import { dirname as dirname23, resolve as resolve35 } from "path";
21728
+ var inlineCssImports = (cssContent, cssFilePath, visited = new Set) => {
21730
21729
  const resolved = realpathSync2(cssFilePath);
21731
21730
  if (visited.has(resolved))
21732
21731
  return "";
@@ -21739,22 +21738,31 @@ var transpiler5, inlineCssImports = (cssContent, cssFilePath, visited = new Set)
21739
21738
  const importedContent = readFileSync30(importedPath, "utf-8");
21740
21739
  return inlineCssImports(importedContent, importedPath, visited);
21741
21740
  });
21742
- }, toJs = (filePath, sourceDir) => {
21741
+ };
21742
+ var init_inlineCssImports = __esm(() => {
21743
+ init_isFile();
21744
+ });
21745
+
21746
+ // src/build/compileVueSfc.ts
21747
+ import { existsSync as existsSync32, readFileSync as readFileSync31, realpathSync as realpathSync3 } from "fs";
21748
+ import { dirname as dirname24, relative as relative18, resolve as resolve36 } from "path";
21749
+ var {Transpiler: Transpiler4 } = globalThis.Bun;
21750
+ var transpiler5, toJs = (filePath, sourceDir) => {
21743
21751
  if (filePath.endsWith(".vue"))
21744
21752
  return filePath.replace(/\.vue$/, ".js");
21745
21753
  if (filePath.endsWith(".ts"))
21746
21754
  return filePath.replace(/\.ts$/, ".js");
21747
21755
  if (isStylePath(filePath)) {
21748
21756
  if (sourceDir && (filePath.startsWith("./") || filePath.startsWith("../"))) {
21749
- return resolve35(sourceDir, filePath);
21757
+ return resolve36(sourceDir, filePath);
21750
21758
  }
21751
21759
  return filePath;
21752
21760
  }
21753
21761
  if (sourceDir && (filePath.startsWith("./") || filePath.startsWith("../"))) {
21754
- const directTs = resolve35(sourceDir, `${filePath}.ts`);
21762
+ const directTs = resolve36(sourceDir, `${filePath}.ts`);
21755
21763
  if (existsSync32(directTs))
21756
21764
  return `${filePath}.js`;
21757
- const indexedTs = resolve35(sourceDir, filePath, "index.ts");
21765
+ const indexedTs = resolve36(sourceDir, filePath, "index.ts");
21758
21766
  if (existsSync32(indexedTs))
21759
21767
  return `${filePath}/index.js`;
21760
21768
  }
@@ -21822,11 +21830,11 @@ const ${localName} = (source) => ${importedName}(
21822
21830
  const compiledScript = hasScript ? compiler.compileScript(descriptor, {
21823
21831
  fs: {
21824
21832
  fileExists: isFile,
21825
- realpath: realpathSync2,
21833
+ realpath: realpathSync3,
21826
21834
  readFile: (file) => {
21827
21835
  if (!isFile(file))
21828
21836
  return;
21829
- const content = readFileSync30(file, "utf-8");
21837
+ const content = readFileSync31(file, "utf-8");
21830
21838
  typeDepHashes[file] = hashContent(content);
21831
21839
  return content;
21832
21840
  }
@@ -21839,10 +21847,10 @@ const ${localName} = (source) => ${importedName}(
21839
21847
  for (const dep of typeDependencies) {
21840
21848
  if (dep in typeDepHashes || !existsSync32(dep))
21841
21849
  continue;
21842
- typeDepHashes[dep] = hashContent(readFileSync30(dep, "utf-8"));
21850
+ typeDepHashes[dep] = hashContent(readFileSync31(dep, "utf-8"));
21843
21851
  }
21844
21852
  const strippedScript = stripExports2(compiledScript.content);
21845
- const sourceDir = dirname23(sourceFilePath);
21853
+ const sourceDir = dirname24(sourceFilePath);
21846
21854
  const transpiledScript = rewriteRelativeImports(transpiler5.transformSync(strippedScript), sourceDir);
21847
21855
  const generateRenderFunction = (ssr) => {
21848
21856
  const rendered = compiler.compileTemplate({
@@ -21897,7 +21905,7 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
21897
21905
  let result = code;
21898
21906
  for (const [bareImport, paths] of packageImportRewrites) {
21899
21907
  const targetPath = mode === "server" ? paths.server : paths.client;
21900
- let rel = relative18(dirname23(outputPath), targetPath).replace(/\\/g, "/");
21908
+ let rel = relative18(dirname24(outputPath), targetPath).replace(/\\/g, "/");
21901
21909
  if (!rel.startsWith("."))
21902
21910
  rel = `./${rel}`;
21903
21911
  result = result.replaceAll(bareImport, rel);
@@ -21932,6 +21940,7 @@ var init_compileVueSfc = __esm(() => {
21932
21940
  init_isFile();
21933
21941
  init_chainInlineSourcemaps();
21934
21942
  init_stylePreprocessor();
21943
+ init_inlineCssImports();
21935
21944
  init_vueCompileCache();
21936
21945
  transpiler5 = new Transpiler4({ loader: "ts", target: "browser" });
21937
21946
  });
@@ -21994,9 +22003,9 @@ var init_workerJobs = __esm(() => {
21994
22003
  });
21995
22004
 
21996
22005
  // src/build/workerPool.ts
21997
- import { existsSync as existsSync33, readFileSync as readFileSync31 } from "fs";
22006
+ import { existsSync as existsSync33, readFileSync as readFileSync32 } from "fs";
21998
22007
  import { availableParallelism, freemem } from "os";
21999
- import { dirname as dirname24, join as join44 } from "path";
22008
+ import { dirname as dirname25, join as join44 } from "path";
22000
22009
  import { pathToFileURL as pathToFileURL3 } from "url";
22001
22010
  var MIN_WORKERS = 2, MAX_DEFAULT_WORKERS = 8, MAX_OVERRIDE_WORKERS = 64, WORKER_MEMORY_BUDGET_BYTES, DEFAULT_IDLE_TIMEOUT_MS = 2000, DEFAULT_MIN_BATCH = 4, PACKAGE_WALK_DEPTH = 6, PERCENT = 100, OWN_PACKAGE_NAME = "@absolutejs/absolute", parseWorkerOverride = (raw) => {
22002
22011
  if (raw === undefined || raw.trim() === "")
@@ -22017,7 +22026,7 @@ var MIN_WORKERS = 2, MAX_DEFAULT_WORKERS = 8, MAX_OVERRIDE_WORKERS = 64, WORKER_
22017
22026
  if (!existsSync33(packageFile))
22018
22027
  return false;
22019
22028
  try {
22020
- const pkg = JSON.parse(readFileSync31(packageFile, "utf-8"));
22029
+ const pkg = JSON.parse(readFileSync32(packageFile, "utf-8"));
22021
22030
  return typeof pkg === "object" && pkg !== null && "name" in pkg && pkg.name === OWN_PACKAGE_NAME;
22022
22031
  } catch {
22023
22032
  return false;
@@ -22027,7 +22036,7 @@ var MIN_WORKERS = 2, MAX_DEFAULT_WORKERS = 8, MAX_OVERRIDE_WORKERS = 64, WORKER_
22027
22036
  for (let depth = 0;depth < PACKAGE_WALK_DEPTH; depth++) {
22028
22037
  if (isOwnPackageRoot(dir))
22029
22038
  return dir;
22030
- const parent = dirname24(dir);
22039
+ const parent = dirname25(dir);
22031
22040
  if (parent === dir)
22032
22041
  break;
22033
22042
  dir = parent;
@@ -22323,23 +22332,23 @@ import { existsSync as existsSync34 } from "fs";
22323
22332
  import { mkdir as mkdir11 } from "fs/promises";
22324
22333
  import {
22325
22334
  basename as basename14,
22326
- dirname as dirname25,
22335
+ dirname as dirname26,
22327
22336
  isAbsolute as isAbsolute8,
22328
22337
  join as join45,
22329
22338
  relative as relative19,
22330
- resolve as resolve36
22339
+ resolve as resolve37
22331
22340
  } from "path";
22332
22341
  var {file: file4, write: write4 } = globalThis.Bun;
22333
22342
  var resolveDevClientDir3 = () => {
22334
22343
  const projectRoot = process.cwd();
22335
- const fromSource = resolve36(import.meta.dir, "../dev/client");
22344
+ const fromSource = resolve37(import.meta.dir, "../dev/client");
22336
22345
  if (existsSync34(fromSource) && fromSource.startsWith(projectRoot)) {
22337
22346
  return fromSource;
22338
22347
  }
22339
- const fromNodeModules = resolve36(projectRoot, "node_modules/@absolutejs/absolute/dist/dev/client");
22348
+ const fromNodeModules = resolve37(projectRoot, "node_modules/@absolutejs/absolute/dist/dev/client");
22340
22349
  if (existsSync34(fromNodeModules))
22341
22350
  return fromNodeModules;
22342
- return resolve36(import.meta.dir, "./dev/client");
22351
+ return resolve37(import.meta.dir, "./dev/client");
22343
22352
  }, devClientDir3, hmrClientPath4, scriptCache, scriptSetupCache, templateCache, styleCache, persistentBuildCache, vueSourceHashCache, vueHmrMetadata, detectVueChangeType = (filePath, descriptor) => {
22344
22353
  const prevScript = scriptCache.get(filePath);
22345
22354
  const prevScriptSetup = scriptSetupCache.get(filePath);
@@ -22380,11 +22389,11 @@ var resolveDevClientDir3 = () => {
22380
22389
  return Array.from(new Set(found));
22381
22390
  }, resolveHelperTsPath = (sourceDir, helper) => {
22382
22391
  if (helper.endsWith(".ts"))
22383
- return resolve36(sourceDir, helper);
22384
- const direct = resolve36(sourceDir, `${helper}.ts`);
22392
+ return resolve37(sourceDir, helper);
22393
+ const direct = resolve37(sourceDir, `${helper}.ts`);
22385
22394
  if (existsSync34(direct))
22386
22395
  return direct;
22387
- const indexed = resolve36(sourceDir, helper, "index.ts");
22396
+ const indexed = resolve37(sourceDir, helper, "index.ts");
22388
22397
  if (existsSync34(indexed))
22389
22398
  return indexed;
22390
22399
  return direct;
@@ -22411,7 +22420,7 @@ var resolveDevClientDir3 = () => {
22411
22420
  if (!inline)
22412
22421
  pool.warm("vue-sfc");
22413
22422
  const runSfc = (input) => pool.run("vue-sfc", input, {
22414
- affinity: dirname25(input.sourceFilePath),
22423
+ affinity: dirname26(input.sourceFilePath),
22415
22424
  inline
22416
22425
  });
22417
22426
  return runSfc;
@@ -22473,9 +22482,9 @@ var resolveDevClientDir3 = () => {
22473
22482
  serverPath
22474
22483
  }) => {
22475
22484
  await Promise.all([
22476
- mkdir11(dirname25(clientPath), { recursive: true }),
22477
- mkdir11(dirname25(serverPath), { recursive: true }),
22478
- ...css ? [mkdir11(dirname25(css.path), { recursive: true })] : []
22485
+ mkdir11(dirname26(clientPath), { recursive: true }),
22486
+ mkdir11(dirname26(serverPath), { recursive: true }),
22487
+ ...css ? [mkdir11(dirname26(css.path), { recursive: true })] : []
22479
22488
  ]);
22480
22489
  await Promise.all([
22481
22490
  write4(clientPath, clientCode),
@@ -22544,12 +22553,12 @@ var resolveDevClientDir3 = () => {
22544
22553
  const childComponentPaths = importPaths.filter((path) => path.startsWith(".") && path.endsWith(".vue"));
22545
22554
  const packageComponentPaths = Array.from(resolvedPackageVueImports.entries());
22546
22555
  const helperModulePaths = importPaths.filter((path) => path.startsWith(".") && !path.endsWith(".vue") && !isStylePath(path));
22547
- const stylePathsImported = importPaths.filter((path) => (path.startsWith(".") || isAbsolute8(path)) && isStylePath(path)).map((path) => isAbsolute8(path) ? path : resolve36(dirname25(sourceFilePath), path));
22556
+ const stylePathsImported = importPaths.filter((path) => (path.startsWith(".") || isAbsolute8(path)) && isStylePath(path)).map((path) => isAbsolute8(path) ? path : resolve37(dirname26(sourceFilePath), path));
22548
22557
  for (const stylePath of stylePathsImported) {
22549
22558
  addStyleImporter(sourceFilePath, stylePath);
22550
22559
  }
22551
22560
  const childBuildResults = await Promise.all([
22552
- ...childComponentPaths.map((relativeChildPath) => compileVueFile(resolve36(dirname25(sourceFilePath), relativeChildPath), outputDirs, cacheMap, false, vueRootDir, compiler, runSfc, stylePreprocessors)),
22561
+ ...childComponentPaths.map((relativeChildPath) => compileVueFile(resolve37(dirname26(sourceFilePath), relativeChildPath), outputDirs, cacheMap, false, vueRootDir, compiler, runSfc, stylePreprocessors)),
22553
22562
  ...packageComponentPaths.map(([, absolutePath]) => compileVueFile(absolutePath, outputDirs, cacheMap, false, vueRootDir, compiler, runSfc, stylePreprocessors))
22554
22563
  ]);
22555
22564
  const cacheKeyStartedAt = performance.now();
@@ -22618,7 +22627,7 @@ var resolveDevClientDir3 = () => {
22618
22627
  serverPath: serverOutputPath,
22619
22628
  spaRoutes: spaRoutes.length > 0 ? spaRoutes : undefined,
22620
22629
  tsHelperPaths: [
22621
- ...helperModulePaths.map((helper) => resolveHelperTsPath(dirname25(sourceFilePath), helper)),
22630
+ ...helperModulePaths.map((helper) => resolveHelperTsPath(dirname26(sourceFilePath), helper)),
22622
22631
  ...childBuildResults.flatMap((child) => child.tsHelperPaths)
22623
22632
  ]
22624
22633
  };
@@ -22657,7 +22666,7 @@ var resolveDevClientDir3 = () => {
22657
22666
  const buildCache = new Map;
22658
22667
  const allTsHelperPaths = new Set;
22659
22668
  const expandSpaRouteChildren = async (entries) => {
22660
- const expanded = new Set(entries.map((entry) => resolve36(entry)));
22669
+ const expanded = new Set(entries.map((entry) => resolve37(entry)));
22661
22670
  const queue = [...expanded];
22662
22671
  while (queue.length > 0) {
22663
22672
  const entryPath = queue.pop();
@@ -22674,7 +22683,7 @@ var resolveDevClientDir3 = () => {
22674
22683
  });
22675
22684
  const routes = parseVueSpaRoutes(descriptor.script?.content ?? "");
22676
22685
  for (const { importPath } of routes) {
22677
- const childPath = resolve36(dirname25(entryPath), importPath);
22686
+ const childPath = resolve37(dirname26(entryPath), importPath);
22678
22687
  if (expanded.has(childPath) || !existsSync34(childPath)) {
22679
22688
  continue;
22680
22689
  }
@@ -22689,7 +22698,7 @@ var resolveDevClientDir3 = () => {
22689
22698
  vueCompileProfile.stageExpandMs = performance.now() - stageStartedAt;
22690
22699
  stageStartedAt = performance.now();
22691
22700
  const compiledPages = await Promise.all(expandedEntryPoints.map(async (entryPath) => {
22692
- const resolvedEntryPath = resolve36(entryPath);
22701
+ const resolvedEntryPath = resolve37(entryPath);
22693
22702
  const result = await compileVueFile(resolvedEntryPath, {
22694
22703
  client: clientOutputDir,
22695
22704
  css: cssOutputDir,
@@ -22709,14 +22718,14 @@ var resolveDevClientDir3 = () => {
22709
22718
  const entryBaseName = basename14(entryPath, ".vue");
22710
22719
  const indexOutputFile = join45(indexOutputDir, `${entryBaseName}.js`);
22711
22720
  const clientOutputFile = result.clientPath;
22712
- await mkdir11(dirname25(indexOutputFile), { recursive: true });
22721
+ await mkdir11(dirname26(indexOutputFile), { recursive: true });
22713
22722
  const vueHmrImports = isDev ? [
22714
22723
  `window.__HMR_FRAMEWORK__ = "vue";`,
22715
22724
  `import "${hmrClientPath4}";`
22716
22725
  ] : [];
22717
22726
  await write4(indexOutputFile, [
22718
22727
  ...vueHmrImports,
22719
- `import Comp, * as PageModule from "${relative19(dirname25(indexOutputFile), clientOutputFile).replace(/\\/g, "/")}";`,
22728
+ `import Comp, * as PageModule from "${relative19(dirname26(indexOutputFile), clientOutputFile).replace(/\\/g, "/")}";`,
22720
22729
  'import { createSSRApp, createApp } from "vue";',
22721
22730
  'import { prepareBrowserTranslationHydration } from "@absolutejs/absolute/vue";',
22722
22731
  "",
@@ -22882,7 +22891,7 @@ var resolveDevClientDir3 = () => {
22882
22891
  }));
22883
22892
  vueCompileProfile.stagePagesMs = performance.now() - stageStartedAt;
22884
22893
  stageStartedAt = performance.now();
22885
- const helperDependencies = (tsPath, sourceCode) => extractImports(sourceCode).filter((dep) => dep.startsWith(".") && !isStylePath(dep) && !dep.endsWith(".vue")).map((dep) => resolveHelperTsPath(dirname25(tsPath), dep)).filter((resolved) => existsSync34(resolved) && !allTsHelperPaths.has(resolved));
22894
+ const helperDependencies = (tsPath, sourceCode) => extractImports(sourceCode).filter((dep) => dep.startsWith(".") && !isStylePath(dep) && !dep.endsWith(".vue")).map((dep) => resolveHelperTsPath(dirname26(tsPath), dep)).filter((resolved) => existsSync34(resolved) && !allTsHelperPaths.has(resolved));
22886
22895
  const readHelperWave = (paths) => Promise.all(paths.map((tsPath) => file4(tsPath).text().then((sourceCode) => helperDependencies(tsPath, sourceCode)).catch(() => [])));
22887
22896
  const expandHelpers = async (frontier) => {
22888
22897
  if (frontier.length === 0)
@@ -23452,8 +23461,8 @@ __export(exports_compileAngular, {
23452
23461
  compileAngularFileJIT: () => compileAngularFileJIT,
23453
23462
  invalidateAngularJitCache: () => invalidateAngularJitCache
23454
23463
  });
23455
- import { existsSync as existsSync35, readFileSync as readFileSync32, promises as fs5 } from "fs";
23456
- import { join as join46, basename as basename15, sep as sep6, dirname as dirname26, resolve as resolve37, relative as relative20 } from "path";
23464
+ import { existsSync as existsSync35, readFileSync as readFileSync33, promises as fs5 } from "fs";
23465
+ import { join as join46, basename as basename15, sep as sep6, dirname as dirname27, resolve as resolve38, relative as relative20 } from "path";
23457
23466
  var {Glob: Glob6 } = globalThis.Bun;
23458
23467
  import ts18 from "typescript";
23459
23468
  var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) => {
@@ -23469,10 +23478,10 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23469
23478
  return tracePhase ? tracePhase(`compile/angular/${name}`, fn, metadata) : await fn();
23470
23479
  }, readTsconfigPathAliases = () => {
23471
23480
  try {
23472
- const configPath = resolve37(process.cwd(), "tsconfig.json");
23481
+ const configPath = resolve38(process.cwd(), "tsconfig.json");
23473
23482
  const config = ts18.readConfigFile(configPath, ts18.sys.readFile).config;
23474
23483
  const compilerOptions = config?.compilerOptions ?? {};
23475
- const baseUrl = resolve37(process.cwd(), compilerOptions.baseUrl ?? ".");
23484
+ const baseUrl = resolve38(process.cwd(), compilerOptions.baseUrl ?? ".");
23476
23485
  const aliases = Object.entries(compilerOptions.paths ?? {}).map(([pattern, replacements]) => ({ pattern, replacements }));
23477
23486
  return { aliases, baseUrl };
23478
23487
  } catch {
@@ -23492,7 +23501,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23492
23501
  const wildcardValue = exactMatch ? "" : specifier.slice(prefix.length, specifier.length - suffix.length);
23493
23502
  for (const replacement of alias.replacements) {
23494
23503
  const candidate = replacement.replace("*", wildcardValue);
23495
- const resolved = resolveSourceFile(resolve37(baseUrl, candidate));
23504
+ const resolved = resolveSourceFile(resolve38(baseUrl, candidate));
23496
23505
  if (resolved)
23497
23506
  return resolved;
23498
23507
  }
@@ -23511,13 +23520,13 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23511
23520
  ];
23512
23521
  return candidates.find((file) => existsSync35(file));
23513
23522
  }, createLegacyAngularAnimationUsageResolver = (rootDir) => {
23514
- const baseDir = resolve37(rootDir);
23523
+ const baseDir = resolve38(rootDir);
23515
23524
  const tsconfigAliases = readTsconfigPathAliases();
23516
23525
  const transpiler = new Bun.Transpiler({ loader: "tsx" });
23517
23526
  const scanCache = new Map;
23518
23527
  const resolveLocalImport = (specifier, fromDir) => {
23519
23528
  if (specifier.startsWith(".") || specifier.startsWith("/")) {
23520
- return resolveSourceFile(resolve37(fromDir, specifier));
23529
+ return resolveSourceFile(resolve38(fromDir, specifier));
23521
23530
  }
23522
23531
  const aliased = matchTsconfigAlias(specifier, tsconfigAliases.aliases, tsconfigAliases.baseUrl, resolveSourceFile);
23523
23532
  if (aliased)
@@ -23526,7 +23535,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23526
23535
  const resolved = Bun.resolveSync(specifier, fromDir);
23527
23536
  if (resolved.includes("/node_modules/"))
23528
23537
  return;
23529
- const absolute = resolve37(resolved);
23538
+ const absolute = resolve38(resolved);
23530
23539
  if (!absolute.startsWith(baseDir))
23531
23540
  return;
23532
23541
  return resolveSourceFile(absolute);
@@ -23542,7 +23551,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23542
23551
  usesLegacyAnimations: false
23543
23552
  });
23544
23553
  }
23545
- const resolved = resolve37(actualPath);
23554
+ const resolved = resolve38(actualPath);
23546
23555
  const cached = scanCache.get(resolved);
23547
23556
  if (cached)
23548
23557
  return cached;
@@ -23571,7 +23580,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23571
23580
  const actualPath = resolveSourceFile(filePath);
23572
23581
  if (!actualPath)
23573
23582
  return false;
23574
- const resolved = resolve37(actualPath);
23583
+ const resolved = resolve38(actualPath);
23575
23584
  if (visited.has(resolved))
23576
23585
  return false;
23577
23586
  visited.add(resolved);
@@ -23579,7 +23588,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23579
23588
  if (scan.usesLegacyAnimations)
23580
23589
  return true;
23581
23590
  for (const specifier of scan.imports) {
23582
- const importedPath = resolveLocalImport(specifier, dirname26(resolved));
23591
+ const importedPath = resolveLocalImport(specifier, dirname27(resolved));
23583
23592
  if (importedPath && await visit(importedPath, visited)) {
23584
23593
  return true;
23585
23594
  }
@@ -23589,14 +23598,14 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23589
23598
  return (entryPath) => visit(entryPath);
23590
23599
  }, resolveDevClientDir4 = () => {
23591
23600
  const projectRoot = process.cwd();
23592
- const fromSource = resolve37(import.meta.dir, "../dev/client");
23601
+ const fromSource = resolve38(import.meta.dir, "../dev/client");
23593
23602
  if (existsSync35(fromSource) && fromSource.startsWith(projectRoot)) {
23594
23603
  return fromSource;
23595
23604
  }
23596
- const fromNodeModules = resolve37(projectRoot, "node_modules/@absolutejs/absolute/dist/dev/client");
23605
+ const fromNodeModules = resolve38(projectRoot, "node_modules/@absolutejs/absolute/dist/dev/client");
23597
23606
  if (existsSync35(fromNodeModules))
23598
23607
  return fromNodeModules;
23599
- return resolve37(import.meta.dir, "./dev/client");
23608
+ return resolve38(import.meta.dir, "./dev/client");
23600
23609
  }, devClientDir4, hmrClientPath5, formatDiagnosticMessage = (diagnostic) => {
23601
23610
  try {
23602
23611
  return ts18.flattenDiagnosticMessageText(diagnostic.messageText, `
@@ -23638,12 +23647,12 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23638
23647
  return `${path.replace(/\.ts$/, ".js")}${query}`;
23639
23648
  if (hasJsLikeExtension(path))
23640
23649
  return `${path}${query}`;
23641
- const importerDir = dirname26(importerOutputPath);
23642
- const fileCandidate = resolve37(importerDir, `${path}.js`);
23650
+ const importerDir = dirname27(importerOutputPath);
23651
+ const fileCandidate = resolve38(importerDir, `${path}.js`);
23643
23652
  if (outputFiles?.has(fileCandidate) || existsSync35(fileCandidate)) {
23644
23653
  return `${path}.js${query}`;
23645
23654
  }
23646
- const indexCandidate = resolve37(importerDir, path, "index.js");
23655
+ const indexCandidate = resolve38(importerDir, path, "index.js");
23647
23656
  if (outputFiles?.has(indexCandidate) || existsSync35(indexCandidate)) {
23648
23657
  return `${path}/index.js${query}`;
23649
23658
  }
@@ -23671,7 +23680,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23671
23680
  }, resolveLocalTsImport = (fromFile, specifier) => {
23672
23681
  if (!isRelativeModuleSpecifier(specifier))
23673
23682
  return null;
23674
- const basePath = resolve37(dirname26(fromFile), specifier);
23683
+ const basePath = resolve38(dirname27(fromFile), specifier);
23675
23684
  const candidates = /\.[cm]?[tj]sx?$/.test(basePath) ? [basePath] : [
23676
23685
  `${basePath}.ts`,
23677
23686
  `${basePath}.tsx`,
@@ -23682,7 +23691,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23682
23691
  join46(basePath, "index.mts"),
23683
23692
  join46(basePath, "index.cts")
23684
23693
  ];
23685
- return candidates.map((candidate) => resolve37(candidate)).find((candidate) => existsSync35(candidate) && !candidate.endsWith(".d.ts")) ?? null;
23694
+ return candidates.map((candidate) => resolve38(candidate)).find((candidate) => existsSync35(candidate) && !candidate.endsWith(".d.ts")) ?? null;
23686
23695
  }, readFileForAotTransform = async (fileName, readFile) => {
23687
23696
  const hostSource = readFile?.(fileName);
23688
23697
  if (typeof hostSource === "string")
@@ -23717,7 +23726,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23717
23726
  paths.push(join46(fileDir, urlMatch.replace(/['"]/g, "")));
23718
23727
  }
23719
23728
  }
23720
- return paths.map((path) => resolve37(path));
23729
+ return paths.map((path) => resolve38(path));
23721
23730
  }, readResourceCacheFile = async (cachePath) => {
23722
23731
  try {
23723
23732
  const entry = JSON.parse(await fs5.readFile(cachePath, "utf-8"));
@@ -23729,13 +23738,13 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23729
23738
  return null;
23730
23739
  }
23731
23740
  }, writeResourceCacheFile = async (cachePath, source) => {
23732
- await fs5.mkdir(dirname26(cachePath), { recursive: true });
23741
+ await fs5.mkdir(dirname27(cachePath), { recursive: true });
23733
23742
  await writeTextFileAtomically(cachePath, JSON.stringify({
23734
23743
  source,
23735
23744
  version: 1
23736
23745
  }));
23737
23746
  }, resolveResourceTransformCachePath = async (filePath, source, stylePreprocessors) => {
23738
- const resourcePaths = collectAngularResourcePaths(source, dirname26(filePath));
23747
+ const resourcePaths = collectAngularResourcePaths(source, dirname27(filePath));
23739
23748
  const resourceContents = await Promise.all(resourcePaths.map(async (resourcePath) => {
23740
23749
  const content = await fs5.readFile(resourcePath, "utf-8");
23741
23750
  return `${resourcePath}\x00${content}`;
@@ -23759,7 +23768,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23759
23768
  transformedFiles: 0
23760
23769
  };
23761
23770
  const transformFile = async (filePath) => {
23762
- const resolvedPath = resolve37(filePath);
23771
+ const resolvedPath = resolve38(filePath);
23763
23772
  if (visited.has(resolvedPath))
23764
23773
  return;
23765
23774
  visited.add(resolvedPath);
@@ -23775,7 +23784,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23775
23784
  transformedSource = cached.source;
23776
23785
  } else {
23777
23786
  stats.cacheMisses += 1;
23778
- const transformed = await inlineResources(source, dirname26(resolvedPath), stylePreprocessors);
23787
+ const transformed = await inlineResources(source, dirname27(resolvedPath), stylePreprocessors);
23779
23788
  transformedSource = transformed.source;
23780
23789
  await writeResourceCacheFile(cachePath, transformedSource);
23781
23790
  }
@@ -23794,18 +23803,18 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23794
23803
  return { stats, transformedSources };
23795
23804
  }, compileAngularFiles = async (inputPaths, outDir, stylePreprocessors) => {
23796
23805
  const islandMetadataByOutputPath = await traceAngularPhase("aot/island-metadata", () => new Map(inputPaths.map((inputPath) => {
23797
- const outputPath = resolve37(join46(outDir, relative20(process.cwd(), resolve37(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
23806
+ const outputPath = resolve38(join46(outDir, relative20(process.cwd(), resolve38(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
23798
23807
  return [
23799
23808
  outputPath,
23800
- buildIslandMetadataExports(readFileSync32(inputPath, "utf-8"))
23809
+ buildIslandMetadataExports(readFileSync33(inputPath, "utf-8"))
23801
23810
  ];
23802
23811
  })), { entries: inputPaths.length });
23803
23812
  await traceAngularPhase("aot/preload-compiler", () => import("@angular/compiler"));
23804
23813
  const { readConfiguration, performCompilation, EmitFlags } = await traceAngularPhase("aot/import-compiler-cli", () => import("@angular/compiler-cli"));
23805
23814
  const tsLibDir = await traceAngularPhase("aot/resolve-typescript-lib", () => {
23806
23815
  const tsPath = __require.resolve("typescript");
23807
- const tsRootDir = dirname26(tsPath);
23808
- return tsRootDir.endsWith("lib") ? tsRootDir : resolve37(tsRootDir, "lib");
23816
+ const tsRootDir = dirname27(tsPath);
23817
+ return tsRootDir.endsWith("lib") ? tsRootDir : resolve38(tsRootDir, "lib");
23809
23818
  });
23810
23819
  const config = await traceAngularPhase("aot/read-configuration", () => readConfiguration("./tsconfig.json"));
23811
23820
  const options = {
@@ -23847,7 +23856,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23847
23856
  return originalGetSourceFile?.call(host, fileName, languageVersion, onError);
23848
23857
  };
23849
23858
  const emitted = {};
23850
- const resolvedOutDir = resolve37(outDir);
23859
+ const resolvedOutDir = resolve38(outDir);
23851
23860
  host.writeFile = (fileName, text) => {
23852
23861
  const relativePath = resolveRelativePath(fileName, resolvedOutDir, outDir);
23853
23862
  emitted[relativePath] = text;
@@ -23869,12 +23878,12 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23869
23878
  if (!fileName.endsWith(".ts") || fileName.endsWith(".d.ts")) {
23870
23879
  return source;
23871
23880
  }
23872
- const resolvedPath = resolve37(fileName);
23881
+ const resolvedPath = resolve38(fileName);
23873
23882
  return transformedSources.get(resolvedPath) ?? source;
23874
23883
  };
23875
23884
  const originalGetSourceFileForCompile = host.getSourceFile;
23876
23885
  host.getSourceFile = (fileName, languageVersion, onError) => {
23877
- const source = transformedSources.get(resolve37(fileName));
23886
+ const source = transformedSources.get(resolve38(fileName));
23878
23887
  if (source) {
23879
23888
  return ts18.createSourceFile(fileName, source, languageVersion, true);
23880
23889
  }
@@ -23898,7 +23907,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23898
23907
  content,
23899
23908
  target: join46(outDir, fileName)
23900
23909
  }));
23901
- const outputFiles = new Set(rawEntries.map(({ target }) => resolve37(target)));
23910
+ const outputFiles = new Set(rawEntries.map(({ target }) => resolve38(target)));
23902
23911
  return rawEntries.map(({ content, target }) => {
23903
23912
  let processedContent = content.replace(/from\s+(['"])(\.\.?\/[^'"]+)(\1)/g, (match, quote, path) => {
23904
23913
  const rewritten = rewriteRelativeJsSpecifier(target, path, outputFiles);
@@ -23913,17 +23922,17 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23913
23922
  return cleaned ? `import { ${cleaned}, InternalInjectFlags } from '@angular/core'` : `import { InternalInjectFlags } from '@angular/core'`;
23914
23923
  });
23915
23924
  processedContent = processedContent.replace(/\b(?<!Internal)InjectFlags\b/g, "InternalInjectFlags");
23916
- processedContent += islandMetadataByOutputPath.get(resolve37(target)) ?? "";
23925
+ processedContent += islandMetadataByOutputPath.get(resolve38(target)) ?? "";
23917
23926
  return { content: processedContent, target };
23918
23927
  });
23919
23928
  });
23920
23929
  await traceAngularPhase("aot/write-output", () => Promise.all(entries.map(async ({ target, content }) => {
23921
- await fs5.mkdir(dirname26(target), { recursive: true });
23930
+ await fs5.mkdir(dirname27(target), { recursive: true });
23922
23931
  await writeTextFileAtomically(target, content);
23923
23932
  })), { outputs: entries.length });
23924
23933
  return await traceAngularPhase("aot/collect-output-paths", () => entries.map(({ target }) => target), { outputs: entries.length });
23925
23934
  }, jitContentCache, invalidateAngularJitCache = (filePath) => {
23926
- jitContentCache.delete(resolve37(filePath));
23935
+ jitContentCache.delete(resolve38(filePath));
23927
23936
  }, wrapperOutputCache, escapeTemplateContent = (content) => content.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${"), findUncommentedMatch = (source, pattern) => {
23928
23937
  const re = new RegExp(pattern.source, pattern.flags.includes("g") ? pattern.flags : pattern.flags + "g");
23929
23938
  let match;
@@ -23936,7 +23945,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
23936
23945
  }
23937
23946
  return null;
23938
23947
  }, resolveAngularDeferImportSpecifier = () => {
23939
- const sourceEntry = resolve37(import.meta.dir, "../angular/components/index.ts");
23948
+ const sourceEntry = resolve38(import.meta.dir, "../angular/components/index.ts");
23940
23949
  if (existsSync35(sourceEntry)) {
23941
23950
  return sourceEntry.replace(/\\/g, "/");
23942
23951
  }
@@ -24108,7 +24117,7 @@ ${fields}
24108
24117
  if (!existsSync35(templatePath)) {
24109
24118
  throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
24110
24119
  }
24111
- const templateRaw = readFileSync32(templatePath, "utf-8");
24120
+ const templateRaw = readFileSync33(templatePath, "utf-8");
24112
24121
  const lowered = lowerAngularDeferSyntax(templateRaw);
24113
24122
  const escaped = escapeTemplateContent(lowered.template);
24114
24123
  const replacedSource = source.slice(0, templateUrlMatch.index) + `template: \`${escaped}\`` + source.slice(templateUrlMatch.index + templateUrlMatch[0].length);
@@ -24226,10 +24235,10 @@ ${fields}
24226
24235
  return "";
24227
24236
  }
24228
24237
  }, compileAngularFileJIT = async (inputPath, outDir, rootDir, stylePreprocessors, cacheBuster) => {
24229
- const entryPath = resolve37(inputPath);
24238
+ const entryPath = resolve38(inputPath);
24230
24239
  const allOutputs = [];
24231
24240
  const visited = new Set;
24232
- const baseDir = resolve37(rootDir ?? process.cwd());
24241
+ const baseDir = resolve38(rootDir ?? process.cwd());
24233
24242
  let usesLegacyAnimations = false;
24234
24243
  const angularTranspiler = new Bun.Transpiler({
24235
24244
  loader: "ts",
@@ -24257,7 +24266,7 @@ ${fields}
24257
24266
  };
24258
24267
  const resolveLocalImport = (specifier, fromDir) => {
24259
24268
  if (specifier.startsWith(".") || specifier.startsWith("/")) {
24260
- return resolveSourceFile(resolve37(fromDir, specifier));
24269
+ return resolveSourceFile(resolve38(fromDir, specifier));
24261
24270
  }
24262
24271
  const aliased = matchTsconfigAlias(specifier, tsconfigAliases.aliases, tsconfigAliases.baseUrl, resolveSourceFile);
24263
24272
  if (aliased)
@@ -24266,7 +24275,7 @@ ${fields}
24266
24275
  const resolved = Bun.resolveSync(specifier, fromDir);
24267
24276
  if (resolved.includes("/node_modules/"))
24268
24277
  return;
24269
- const absolute = resolve37(resolved);
24278
+ const absolute = resolve38(resolved);
24270
24279
  if (!absolute.startsWith(baseDir))
24271
24280
  return;
24272
24281
  return resolveSourceFile(absolute);
@@ -24275,7 +24284,7 @@ ${fields}
24275
24284
  }
24276
24285
  };
24277
24286
  const toOutputPath = (sourcePath) => {
24278
- const inputDir = dirname26(sourcePath);
24287
+ const inputDir = dirname27(sourcePath);
24279
24288
  const fileBase = basename15(sourcePath).replace(/\.[cm]?[tj]sx?$/, ".js");
24280
24289
  if (inputDir === outDir || inputDir.startsWith(`${outDir}${sep6}`)) {
24281
24290
  return join46(inputDir, fileBase);
@@ -24318,18 +24327,18 @@ ${fields}
24318
24327
  return `${prefix}${dots}`;
24319
24328
  return `${prefix}../${dots}`;
24320
24329
  });
24321
- if (resolve37(actualPath) === entryPath) {
24330
+ if (resolve38(actualPath) === entryPath) {
24322
24331
  processedContent += buildIslandMetadataExports(sourceCode);
24323
24332
  }
24324
24333
  return processedContent;
24325
24334
  };
24326
24335
  const transpileFile = async (filePath) => {
24327
- const resolved = resolve37(filePath);
24336
+ const resolved = resolve38(filePath);
24328
24337
  if (visited.has(resolved))
24329
24338
  return;
24330
24339
  visited.add(resolved);
24331
24340
  if (resolved.endsWith(".json") && existsSync35(resolved)) {
24332
- const inputDir = dirname26(resolved);
24341
+ const inputDir = dirname27(resolved);
24333
24342
  const relativeDir = inputDir.startsWith(baseDir) ? inputDir.substring(baseDir.length + 1) : inputDir;
24334
24343
  const targetDir = join46(outDir, relativeDir);
24335
24344
  const targetPath = join46(targetDir, basename15(resolved));
@@ -24344,12 +24353,12 @@ ${fields}
24344
24353
  if (!existsSync35(actualPath))
24345
24354
  return;
24346
24355
  let sourceCode = await fs5.readFile(actualPath, "utf-8");
24347
- const inlined = await inlineResources(sourceCode, dirname26(actualPath), stylePreprocessors);
24348
- sourceCode = inlineTemplateAndLowerDeferSync(inlined.source, dirname26(actualPath)).source;
24349
- const inputDir = dirname26(actualPath);
24356
+ const inlined = await inlineResources(sourceCode, dirname27(actualPath), stylePreprocessors);
24357
+ sourceCode = inlineTemplateAndLowerDeferSync(inlined.source, dirname27(actualPath)).source;
24358
+ const inputDir = dirname27(actualPath);
24350
24359
  const fileBase = basename15(actualPath).replace(/\.[cm]?[tj]sx?$/, ".js");
24351
24360
  const targetPath = toOutputPath(actualPath);
24352
- const targetDir = dirname26(targetPath);
24361
+ const targetDir = dirname27(targetPath);
24353
24362
  const relativeDir = relative20(outDir, targetDir).replace(/\\/g, "/");
24354
24363
  const localImports = [];
24355
24364
  const importRewrites = new Map;
@@ -24376,7 +24385,7 @@ ${fields}
24376
24385
  importRewrites.set(specifier, relativeRewrite);
24377
24386
  return resolved;
24378
24387
  }).filter((path) => Boolean(path));
24379
- const isEntry = resolve37(actualPath) === resolve37(entryPath);
24388
+ const isEntry = resolve38(actualPath) === resolve38(entryPath);
24380
24389
  const contentHash = Bun.hash(sourceCode).toString(BASE_36_RADIX);
24381
24390
  const cacheKey = actualPath;
24382
24391
  const shouldWriteFile = cacheBuster && isEntry ? true : jitContentCache.get(cacheKey) !== contentHash || !existsSync35(targetPath);
@@ -24413,11 +24422,11 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
24413
24422
  const compiledRoot = compiledParent;
24414
24423
  const indexesDir = join46(compiledParent, "indexes");
24415
24424
  await traceAngularPhase("setup/create-indexes-dir", () => fs5.mkdir(indexesDir, { recursive: true }));
24416
- const aotOutputs = hmr ? [] : await traceAngularPhase("aot/compile-files", () => compileAngularFiles(entryPoints.map((entry) => resolve37(entry)), compiledRoot, stylePreprocessors), { entries: entryPoints.length });
24425
+ const aotOutputs = hmr ? [] : await traceAngularPhase("aot/compile-files", () => compileAngularFiles(entryPoints.map((entry) => resolve38(entry)), compiledRoot, stylePreprocessors), { entries: entryPoints.length });
24417
24426
  if (!hmr) {
24418
24427
  await traceAngularPhase("aot/copy-json-resources", async () => {
24419
24428
  const cwd = process.cwd();
24420
- const angularSrcDir = resolve37(outRoot);
24429
+ const angularSrcDir = resolve38(outRoot);
24421
24430
  if (!existsSync35(angularSrcDir))
24422
24431
  return;
24423
24432
  const jsonGlob = new Glob6("**/*.json");
@@ -24428,14 +24437,14 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
24428
24437
  const sourcePath = join46(angularSrcDir, rel);
24429
24438
  const cwdRel = relative20(cwd, sourcePath);
24430
24439
  const targetPath = join46(compiledRoot, cwdRel);
24431
- await fs5.mkdir(dirname26(targetPath), { recursive: true });
24440
+ await fs5.mkdir(dirname27(targetPath), { recursive: true });
24432
24441
  await fs5.copyFile(sourcePath, targetPath);
24433
24442
  }
24434
24443
  });
24435
24444
  }
24436
24445
  const usesLegacyAngularAnimations = await traceAngularPhase("setup/legacy-animation-resolver", () => createLegacyAngularAnimationUsageResolver(outRoot));
24437
24446
  const compileTasks = entryPoints.map(async (entry) => {
24438
- const resolvedEntry = resolve37(entry);
24447
+ const resolvedEntry = resolve38(entry);
24439
24448
  const relativeEntry = relative20(outRoot, resolvedEntry).replace(/\.[tj]s$/, ".js");
24440
24449
  const compileEntry = () => compileAngularFileJIT(resolvedEntry, compiledRoot, outRoot, stylePreprocessors);
24441
24450
  let outputs = hmr ? await traceAngularPhase("jit/compile-entry", compileEntry, {
@@ -24447,10 +24456,10 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
24447
24456
  join46(compiledRoot, relativeEntry),
24448
24457
  join46(compiledRoot, "pages", jsName),
24449
24458
  join46(compiledRoot, jsName)
24450
- ].map((file) => resolve37(file));
24459
+ ].map((file) => resolve38(file));
24451
24460
  const resolveRawServerFile = (candidatePaths) => {
24452
24461
  const normalizedCandidates = [
24453
- ...candidatePaths.map((file) => resolve37(file)),
24462
+ ...candidatePaths.map((file) => resolve38(file)),
24454
24463
  ...compiledFallbackPaths
24455
24464
  ];
24456
24465
  let candidate = normalizedCandidates.find((file) => existsSync35(file) && file.endsWith(`${sep6}${relativeEntry}`));
@@ -24497,7 +24506,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
24497
24506
  let providersSourceContent = "";
24498
24507
  if (providersInjection.appProvidersSource) {
24499
24508
  try {
24500
- providersSourceContent = readFileSync32(providersInjection.appProvidersSource, "utf-8");
24509
+ providersSourceContent = readFileSync33(providersInjection.appProvidersSource, "utf-8");
24501
24510
  } catch {}
24502
24511
  }
24503
24512
  return JSON.stringify({
@@ -24540,13 +24549,13 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
24540
24549
  const fragments = [];
24541
24550
  if (providersInjection.appProvidersSource) {
24542
24551
  const compiledAppProvidersPath = (() => {
24543
- const angularDirAbs = resolve37(outRoot);
24544
- const appSourceAbs = resolve37(providersInjection.appProvidersSource);
24552
+ const angularDirAbs = resolve38(outRoot);
24553
+ const appSourceAbs = resolve38(providersInjection.appProvidersSource);
24545
24554
  const rel = relative20(angularDirAbs, appSourceAbs).replace(/\\/g, "/");
24546
24555
  return join46(compiledParent, rel).replace(/\.[cm]?[tj]sx?$/, ".js");
24547
24556
  })();
24548
24557
  const appProvidersSpec = (() => {
24549
- const rel = relative20(dirname26(rawServerFile), compiledAppProvidersPath).replace(/\\/g, "/");
24558
+ const rel = relative20(dirname27(rawServerFile), compiledAppProvidersPath).replace(/\\/g, "/");
24550
24559
  return rel.startsWith(".") ? rel : `./${rel}`;
24551
24560
  })();
24552
24561
  importLines.push(`import { appProviders as __abs_globalProviders } from "${appProvidersSpec}";`);
@@ -25247,7 +25256,7 @@ var require_node = __commonJS(function(exports, module) {
25247
25256
  // src/build/compileEmber.ts
25248
25257
  import { existsSync as existsSync36 } from "fs";
25249
25258
  import { mkdir as mkdir12, rm as rm7 } from "fs/promises";
25250
- import { basename as basename16, dirname as dirname27, extname as extname13, join as join47, resolve as resolve38 } from "path";
25259
+ import { basename as basename16, dirname as dirname28, extname as extname13, join as join47, resolve as resolve39 } from "path";
25251
25260
  var {build: bunBuild2, Transpiler: Transpiler5, write: write5, file: file5 } = globalThis.Bun;
25252
25261
  var cachedPreprocessor = null, getPreprocessor = async () => {
25253
25262
  if (cachedPreprocessor)
@@ -25343,7 +25352,7 @@ export const importSync = (specifier) => {
25343
25352
  const originalImporter = stagedSourceMap.get(args.importer);
25344
25353
  if (!originalImporter)
25345
25354
  return;
25346
- const candidateBase = resolve38(dirname27(originalImporter), args.path);
25355
+ const candidateBase = resolve39(dirname28(originalImporter), args.path);
25347
25356
  const extensionsToTry = ["", ".gts", ".gjs", ".ts", ".js"];
25348
25357
  for (const ext of extensionsToTry) {
25349
25358
  const candidate = candidateBase + ext;
@@ -25402,7 +25411,7 @@ export const renderToHTML = (props = {}) => {
25402
25411
  export { PageComponent };
25403
25412
  export default PageComponent;
25404
25413
  `, compileEmberFile = async (entry, compiledRoot, cwd = process.cwd()) => {
25405
- const resolvedEntry = resolve38(entry);
25414
+ const resolvedEntry = resolve39(entry);
25406
25415
  const source = await file5(resolvedEntry).text();
25407
25416
  let preprocessed = source;
25408
25417
  if (isTemplateTagFile(resolvedEntry)) {
@@ -25422,8 +25431,8 @@ export default PageComponent;
25422
25431
  mkdir12(serverDir, { recursive: true }),
25423
25432
  mkdir12(clientDir, { recursive: true })
25424
25433
  ]);
25425
- const tmpPagePath = resolve38(join47(tmpDir, `${baseName}.module.js`));
25426
- const tmpHarnessPath = resolve38(join47(tmpDir, `${baseName}.harness.js`));
25434
+ const tmpPagePath = resolve39(join47(tmpDir, `${baseName}.module.js`));
25435
+ const tmpHarnessPath = resolve39(join47(tmpDir, `${baseName}.harness.js`));
25427
25436
  await Promise.all([
25428
25437
  write5(tmpPagePath, transpiled),
25429
25438
  write5(tmpHarnessPath, generateServerHarness(tmpPagePath))
@@ -25488,24 +25497,24 @@ var importFromProject = (specifier, projectRoot = process.cwd()) => {
25488
25497
 
25489
25498
  // src/build/buildReactVendor.ts
25490
25499
  import { existsSync as existsSync37, mkdirSync as mkdirSync8 } from "fs";
25491
- import { join as join48, resolve as resolve39 } from "path";
25500
+ import { join as join48, resolve as resolve40 } from "path";
25492
25501
  import { rm as rm8 } from "fs/promises";
25493
25502
  var {build: bunBuild3 } = globalThis.Bun;
25494
25503
  var resolveJsxDevRuntimeCompatPath = () => {
25495
25504
  const candidates = [
25496
- resolve39(import.meta.dir, "react", "jsxDevRuntimeCompat.js"),
25497
- resolve39(import.meta.dir, "src", "react", "jsxDevRuntimeCompat.ts"),
25498
- resolve39(import.meta.dir, "..", "react", "jsxDevRuntimeCompat.js"),
25499
- resolve39(import.meta.dir, "..", "src", "react", "jsxDevRuntimeCompat.ts"),
25500
- resolve39(import.meta.dir, "..", "..", "dist", "react", "jsxDevRuntimeCompat.js"),
25501
- resolve39(import.meta.dir, "..", "..", "src", "react", "jsxDevRuntimeCompat.ts")
25505
+ resolve40(import.meta.dir, "react", "jsxDevRuntimeCompat.js"),
25506
+ resolve40(import.meta.dir, "src", "react", "jsxDevRuntimeCompat.ts"),
25507
+ resolve40(import.meta.dir, "..", "react", "jsxDevRuntimeCompat.js"),
25508
+ resolve40(import.meta.dir, "..", "src", "react", "jsxDevRuntimeCompat.ts"),
25509
+ resolve40(import.meta.dir, "..", "..", "dist", "react", "jsxDevRuntimeCompat.js"),
25510
+ resolve40(import.meta.dir, "..", "..", "src", "react", "jsxDevRuntimeCompat.ts")
25502
25511
  ];
25503
25512
  for (const candidate of candidates) {
25504
25513
  if (existsSync37(candidate)) {
25505
25514
  return candidate.replace(/\\/g, "/");
25506
25515
  }
25507
25516
  }
25508
- return (candidates[0] ?? resolve39(import.meta.dir, "react", "jsxDevRuntimeCompat.js")).replace(/\\/g, "/");
25517
+ return (candidates[0] ?? resolve40(import.meta.dir, "react", "jsxDevRuntimeCompat.js")).replace(/\\/g, "/");
25509
25518
  }, jsxDevRuntimeCompatPath, jsxRuntimeCompatPath, reactSpecifiers, toSafeFileName = (specifier) => specifier.replace(/\//g, "_"), computeVendorPaths = () => {
25510
25519
  const paths = {};
25511
25520
  for (const specifier of reactSpecifiers) {
@@ -25953,13 +25962,13 @@ import {
25953
25962
  existsSync as existsSync38,
25954
25963
  mkdirSync as mkdirSync12,
25955
25964
  readdirSync as readdirSync7,
25956
- readFileSync as readFileSync33,
25965
+ readFileSync as readFileSync34,
25957
25966
  renameSync,
25958
25967
  rmSync as rmSync2,
25959
25968
  statSync as statSync5,
25960
25969
  writeFileSync as writeFileSync10
25961
25970
  } from "fs";
25962
- import { basename as basename17, dirname as dirname28, extname as extname14, join as join52, relative as relative21, resolve as resolve40 } from "path";
25971
+ import { basename as basename17, dirname as dirname29, extname as extname14, join as join52, relative as relative21, resolve as resolve41 } from "path";
25963
25972
  import { cwd, env as env3, exit } from "process";
25964
25973
  var {build: bunBuild7, Glob: Glob8 } = globalThis.Bun;
25965
25974
  var isBuildTraceEnabled = () => {
@@ -26042,7 +26051,7 @@ var isBuildTraceEnabled = () => {
26042
26051
  }, REACT_VENDOR_SPECIFIERS, findBareReactImports = (path, importRegex) => {
26043
26052
  let content;
26044
26053
  try {
26045
- content = readFileSync33(path, "utf-8");
26054
+ content = readFileSync34(path, "utf-8");
26046
26055
  } catch {
26047
26056
  return [];
26048
26057
  }
@@ -26108,8 +26117,8 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26108
26117
  if (globalThis.__absoluteVersion)
26109
26118
  return;
26110
26119
  const candidates = [
26111
- resolve40(import.meta.dir, "..", "..", "package.json"),
26112
- resolve40(import.meta.dir, "..", "package.json")
26120
+ resolve41(import.meta.dir, "..", "..", "package.json"),
26121
+ resolve41(import.meta.dir, "..", "package.json")
26113
26122
  ];
26114
26123
  const resolveCandidate = async (remaining) => {
26115
26124
  const [candidate, ...rest] = remaining;
@@ -26125,13 +26134,13 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26125
26134
  };
26126
26135
  await resolveCandidate(candidates);
26127
26136
  }, SKIP_DIRS5, addWorkerPathIfExists = (file, relPath, workerPaths) => {
26128
- const absPath = resolve40(file, "..", relPath);
26137
+ const absPath = resolve41(file, "..", relPath);
26129
26138
  try {
26130
26139
  statSync5(absPath);
26131
26140
  workerPaths.add(absPath);
26132
26141
  } catch {}
26133
26142
  }, extractWorkerSpecifiers = (file, patterns) => {
26134
- const content = readFileSync33(file, "utf-8");
26143
+ const content = readFileSync34(file, "utf-8");
26135
26144
  const specifiers = [];
26136
26145
  for (const pattern of patterns) {
26137
26146
  pattern.lastIndex = 0;
@@ -26220,35 +26229,35 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26220
26229
  return;
26221
26230
  }
26222
26231
  const indexFiles = readDir(reactIndexesPath).filter((file) => file.endsWith(".tsx"));
26223
- const pagesRel = relative21(process.cwd(), resolve40(reactPagesPath)).replace(/\\/g, "/");
26232
+ const pagesRel = relative21(process.cwd(), resolve41(reactPagesPath)).replace(/\\/g, "/");
26224
26233
  for (const file of indexFiles) {
26225
- let content = readFileSync33(join52(reactIndexesPath, file), "utf-8");
26234
+ let content = readFileSync34(join52(reactIndexesPath, file), "utf-8");
26226
26235
  content = content.replace(/from\s*['"]([^'"]*\/pages\/([^'"]+))['"]/g, (_match, _fullPath, componentName) => `from '/@src/${pagesRel}/${componentName}'`);
26227
26236
  writeFileSync10(join52(devIndexDir, file), content);
26228
26237
  }
26229
26238
  }, copySvelteDevIndexes = (svelteDir, sveltePagesPath, svelteEntries, devIndexDir) => {
26230
26239
  const svelteIndexDir = join52(getFrameworkGeneratedDir("svelte"), "indexes");
26231
- const sveltePageEntries = svelteEntries.filter((file) => resolve40(file).startsWith(resolve40(sveltePagesPath)));
26240
+ const sveltePageEntries = svelteEntries.filter((file) => resolve41(file).startsWith(resolve41(sveltePagesPath)));
26232
26241
  for (const entry of sveltePageEntries) {
26233
26242
  const name = basename17(entry).replace(/\.svelte(\.(ts|js))?$/, "");
26234
26243
  const indexFile = join52(svelteIndexDir, "pages", `${name}.js`);
26235
26244
  if (!existsSync38(indexFile))
26236
26245
  continue;
26237
- let content = readFileSync33(indexFile, "utf-8");
26238
- const srcRel = relative21(process.cwd(), resolve40(entry)).replace(/\\/g, "/");
26246
+ let content = readFileSync34(indexFile, "utf-8");
26247
+ const srcRel = relative21(process.cwd(), resolve41(entry)).replace(/\\/g, "/");
26239
26248
  content = content.replace(/import\s+Component\s+from\s+['"]([^'"]+)['"]/, `import Component from "/@src/${srcRel}"`);
26240
26249
  writeFileSync10(join52(devIndexDir, `${name}.svelte.js`), content);
26241
26250
  }
26242
26251
  }, copyVueDevIndexes = (vueDir, vuePagesPath, vueEntries, devIndexDir) => {
26243
26252
  const vueIndexDir = join52(getFrameworkGeneratedDir("vue"), "indexes");
26244
- const vuePageEntries = vueEntries.filter((file) => resolve40(file).startsWith(resolve40(vuePagesPath)));
26253
+ const vuePageEntries = vueEntries.filter((file) => resolve41(file).startsWith(resolve41(vuePagesPath)));
26245
26254
  for (const entry of vuePageEntries) {
26246
26255
  const name = basename17(entry, ".vue");
26247
26256
  const indexFile = join52(vueIndexDir, `${name}.js`);
26248
26257
  if (!existsSync38(indexFile))
26249
26258
  continue;
26250
- let content = readFileSync33(indexFile, "utf-8");
26251
- const srcRel = relative21(process.cwd(), resolve40(entry)).replace(/\\/g, "/");
26259
+ let content = readFileSync34(indexFile, "utf-8");
26260
+ const srcRel = relative21(process.cwd(), resolve41(entry)).replace(/\\/g, "/");
26252
26261
  content = content.replace(/import\s+Comp(?:\s*,\s*\*\s+as\s+\w+)?\s+from\s+['"]([^'"]+)['"]/, (match) => match.replace(/from\s+['"][^'"]+['"]/, `from "/@src/${srcRel}"`));
26253
26262
  writeFileSync10(join52(devIndexDir, `${name}.vue.js`), content);
26254
26263
  }
@@ -26487,7 +26496,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26487
26496
  const sourceClientRoots = [
26488
26497
  htmlDir,
26489
26498
  htmxDir,
26490
- islandBootstrapPath && dirname28(islandBootstrapPath)
26499
+ islandBootstrapPath && dirname29(islandBootstrapPath)
26491
26500
  ].filter((dir) => Boolean(dir));
26492
26501
  const usesGenerated = Boolean(reactDir) || Boolean(svelteDir) || Boolean(vueDir) || Boolean(angularDir);
26493
26502
  if (usesGenerated)
@@ -26535,13 +26544,13 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26535
26544
  const filterToIncrementalEntries = (entryPoints, mapToSource) => {
26536
26545
  if (!isIncremental || !incrementalFiles)
26537
26546
  return entryPoints;
26538
- const normalizedIncremental = new Set(incrementalFiles.map((f) => resolve40(f)));
26547
+ const normalizedIncremental = new Set(incrementalFiles.map((f) => resolve41(f)));
26539
26548
  const matchingEntries = [];
26540
26549
  for (const entry of entryPoints) {
26541
26550
  const sourceFile = mapToSource(entry);
26542
26551
  if (!sourceFile)
26543
26552
  continue;
26544
- if (!normalizedIncremental.has(resolve40(sourceFile)))
26553
+ if (!normalizedIncremental.has(resolve41(sourceFile)))
26545
26554
  continue;
26546
26555
  matchingEntries.push(entry);
26547
26556
  }
@@ -26717,11 +26726,11 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26717
26726
  return scoped;
26718
26727
  return scoped.filter((entry) => {
26719
26728
  const source = mapToSource(entry);
26720
- return source !== null && deferPageEntries.except.has(resolve40(source));
26729
+ return source !== null && deferPageEntries.except.has(resolve41(source));
26721
26730
  });
26722
26731
  };
26723
26732
  const mapReactIndexToPage = (entry) => {
26724
- if (reactIndexesPath && reactPagesPath && entry.startsWith(resolve40(reactIndexesPath))) {
26733
+ if (reactIndexesPath && reactPagesPath && entry.startsWith(resolve41(reactIndexesPath))) {
26725
26734
  const pageName = basename17(entry, ".tsx");
26726
26735
  return join52(reactPagesPath, `${pageName}.tsx`);
26727
26736
  }
@@ -26763,7 +26772,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26763
26772
  for (const entry of vueEntries) {
26764
26773
  const name = basename17(entry, ".vue");
26765
26774
  if (ssrOnlyPageNames.has(name)) {
26766
- resolved.add(resolve40(entry));
26775
+ resolved.add(resolve41(entry));
26767
26776
  }
26768
26777
  }
26769
26778
  return resolved;
@@ -26876,7 +26885,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26876
26885
  const clientPath = islandSvelteClientPaths[idx];
26877
26886
  if (!sourcePath || !clientPath)
26878
26887
  continue;
26879
- islandSvelteClientPathMap.set(resolve40(sourcePath), clientPath);
26888
+ islandSvelteClientPathMap.set(resolve41(sourcePath), clientPath);
26880
26889
  }
26881
26890
  const islandVueClientPathMap = new Map;
26882
26891
  for (let idx = 0;idx < islandVueSources.length; idx++) {
@@ -26884,7 +26893,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26884
26893
  const clientPath = islandVueClientPaths[idx];
26885
26894
  if (!sourcePath || !clientPath)
26886
26895
  continue;
26887
- islandVueClientPathMap.set(resolve40(sourcePath), clientPath);
26896
+ islandVueClientPathMap.set(resolve41(sourcePath), clientPath);
26888
26897
  }
26889
26898
  const islandAngularClientPathMap = new Map;
26890
26899
  for (let idx = 0;idx < islandAngularSources.length; idx++) {
@@ -26892,7 +26901,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26892
26901
  const clientPath = islandAngularClientPaths[idx];
26893
26902
  if (!sourcePath || !clientPath)
26894
26903
  continue;
26895
- islandAngularClientPathMap.set(resolve40(sourcePath), clientPath);
26904
+ islandAngularClientPathMap.set(resolve41(sourcePath), clientPath);
26896
26905
  }
26897
26906
  const reactConventionSources = collectConventionSourceFiles(conventionsMap.react);
26898
26907
  const svelteConventionSources = collectConventionSourceFiles(conventionsMap.svelte);
@@ -26919,7 +26928,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
26919
26928
  stylePreprocessorPlugin,
26920
26929
  createBunStringRawUnicodePlugin()
26921
26930
  ],
26922
- root: dirname28(source),
26931
+ root: dirname29(source),
26923
26932
  target: "bun",
26924
26933
  throw: false,
26925
26934
  ...projectTsconfig()
@@ -27011,7 +27020,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
27011
27020
  ...islandBootstrapPath ? [islandBootstrapPath] : []
27012
27021
  ];
27013
27022
  const [onlyWorkerClientEntry] = urlReferencedFiles;
27014
- const workerClientRoot = urlReferencedFiles.length === 1 && onlyWorkerClientEntry ? dirname28(onlyWorkerClientEntry) : commonAncestor(urlReferencedFiles.map((file) => dirname28(file)), projectRoot);
27023
+ const workerClientRoot = urlReferencedFiles.length === 1 && onlyWorkerClientEntry ? dirname29(onlyWorkerClientEntry) : commonAncestor(urlReferencedFiles.map((file) => dirname29(file)), projectRoot);
27015
27024
  const islandEntryResult = islandBuildInfo ? await tracePhase("islands/client-entry-generation", () => generateIslandEntryPoints({
27016
27025
  buildInfo: islandBuildInfo,
27017
27026
  buildPath,
@@ -27339,7 +27348,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
27339
27348
  renameSync(mapPath, join52(sourcemapDir, basename17(mapPath)));
27340
27349
  const jsPath = mapPath.slice(0, -4);
27341
27350
  try {
27342
- const javascript = readFileSync33(jsPath, "utf-8").replace(/\n?\/\/# sourceMappingURL=[^\n]*\s*$/, `
27351
+ const javascript = readFileSync34(jsPath, "utf-8").replace(/\n?\/\/# sourceMappingURL=[^\n]*\s*$/, `
27343
27352
  `);
27344
27353
  writeFileSync10(jsPath, javascript);
27345
27354
  } catch {}
@@ -27418,7 +27427,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
27418
27427
  if (serverOutputs.length > 0 && angularServerVendorPaths && Object.keys(angularServerVendorPaths).length > 0) {
27419
27428
  await Promise.resolve().then(() => init_rewriteImportsPlugin());
27420
27429
  await tracePhase("postprocess/server-angular-vendor-imports", () => rewriteBuildOutputsWith(serverOutputs, (artifact) => {
27421
- const fileDir = dirname28(artifact.path);
27430
+ const fileDir = dirname29(artifact.path);
27422
27431
  const relativePaths = {};
27423
27432
  for (const [specifier, absolute] of Object.entries(angularServerVendorPaths)) {
27424
27433
  const rel = relative21(fileDir, absolute);
@@ -27546,7 +27555,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
27546
27555
  const injectHMRIntoHTMLFile = (filePath, framework) => {
27547
27556
  if (!hmrClientBundle)
27548
27557
  return;
27549
- let html = readFileSync33(filePath, "utf-8");
27558
+ let html = readFileSync34(filePath, "utf-8");
27550
27559
  if (html.includes("data-hmr-client"))
27551
27560
  return;
27552
27561
  const tag = `<script>window.__HMR_FRAMEWORK__="${framework}";</script><script data-hmr-client>${hmrClientBundle}</script>`;
@@ -27571,7 +27580,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
27571
27580
  if (hmr)
27572
27581
  injectHMRIntoHTMLFile(htmlFile, "html");
27573
27582
  if (pwaArtifacts) {
27574
- const source = readFileSync33(htmlFile, "utf8");
27583
+ const source = readFileSync34(htmlFile, "utf8");
27575
27584
  writeFileSync10(htmlFile, injectPwaBootstrapHtml(source));
27576
27585
  }
27577
27586
  const fileName = basename17(htmlFile, ".html");
@@ -27602,7 +27611,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
27602
27611
  if (hmr)
27603
27612
  injectHMRIntoHTMLFile(htmxFile, "htmx");
27604
27613
  if (pwaArtifacts) {
27605
- const source = readFileSync33(htmxFile, "utf8");
27614
+ const source = readFileSync34(htmxFile, "utf8");
27606
27615
  writeFileSync10(htmxFile, injectPwaBootstrapHtml(source));
27607
27616
  }
27608
27617
  const fileName = basename17(htmxFile, ".html");
@@ -27727,7 +27736,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
27727
27736
  pageEntries,
27728
27737
  tailwindChanged: tailwindResult?.cssChanged ?? false
27729
27738
  };
27730
- }, projectTsconfig = () => existsSync38(resolve40("tsconfig.json")) ? { tsconfig: "./tsconfig.json" } : {}, build2 = async (config) => {
27739
+ }, projectTsconfig = () => existsSync38(resolve41("tsconfig.json")) ? { tsconfig: "./tsconfig.json" } : {}, build2 = async (config) => {
27731
27740
  const projectRoot = cwd();
27732
27741
  const buildPath = validateSafePath(config.buildDirectory ?? "build", projectRoot);
27733
27742
  return withBuildDirectoryLock(buildPath, () => buildUnlocked(config));
@@ -27964,7 +27973,7 @@ var init_buildEmberVendor = __esm(() => {
27964
27973
  });
27965
27974
 
27966
27975
  // src/build/workspacePackages.ts
27967
- import { readFileSync as readFileSync34, realpathSync as realpathSync3 } from "fs";
27976
+ import { readFileSync as readFileSync35, realpathSync as realpathSync4 } from "fs";
27968
27977
  import { join as join54, sep as sep7 } from "path";
27969
27978
  var NODE_MODULES_SEGMENT, verdicts, isWorkspacePackageSpecifier = (specifier, projectRoot = process.cwd()) => {
27970
27979
  const key = `${projectRoot}\x00${specifier}`;
@@ -27973,7 +27982,7 @@ var NODE_MODULES_SEGMENT, verdicts, isWorkspacePackageSpecifier = (specifier, pr
27973
27982
  return known;
27974
27983
  let verdict = false;
27975
27984
  try {
27976
- const resolved = realpathSync3(Bun.resolveSync(specifier, projectRoot));
27985
+ const resolved = realpathSync4(Bun.resolveSync(specifier, projectRoot));
27977
27986
  verdict = !resolved.includes(NODE_MODULES_SEGMENT);
27978
27987
  } catch {
27979
27988
  verdict = false;
@@ -27983,7 +27992,7 @@ var NODE_MODULES_SEGMENT, verdicts, isWorkspacePackageSpecifier = (specifier, pr
27983
27992
  }, workspacePackageDirs = (projectRoot = process.cwd()) => {
27984
27993
  let manifest;
27985
27994
  try {
27986
- manifest = JSON.parse(readFileSync34(join54(projectRoot, "package.json"), "utf-8"));
27995
+ manifest = JSON.parse(readFileSync35(join54(projectRoot, "package.json"), "utf-8"));
27987
27996
  } catch {
27988
27997
  return [];
27989
27998
  }
@@ -27998,7 +28007,7 @@ var NODE_MODULES_SEGMENT, verdicts, isWorkspacePackageSpecifier = (specifier, pr
27998
28007
  const dirs = new Set;
27999
28008
  for (const name of names) {
28000
28009
  try {
28001
- const linked = realpathSync3(join54(projectRoot, "node_modules", name));
28010
+ const linked = realpathSync4(join54(projectRoot, "node_modules", name));
28002
28011
  if (!`${linked}${sep7}`.includes(NODE_MODULES_SEGMENT))
28003
28012
  dirs.add(linked);
28004
28013
  } catch {}
@@ -28114,9 +28123,9 @@ var stripStringsAndComments = (source) => {
28114
28123
  };
28115
28124
 
28116
28125
  // src/dev/dependencyGraph.ts
28117
- import { existsSync as existsSync40, readFileSync as readFileSync35, realpathSync as realpathSync4 } from "fs";
28126
+ import { existsSync as existsSync40, readFileSync as readFileSync36, realpathSync as realpathSync5 } from "fs";
28118
28127
  var {Glob: Glob9 } = globalThis.Bun;
28119
- import { resolve as resolve41 } from "path";
28128
+ import { resolve as resolve42 } from "path";
28120
28129
  var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath) => {
28121
28130
  const lower = filePath.toLowerCase();
28122
28131
  if (lower.endsWith(".ts") || lower.endsWith(".tsx") || lower.endsWith(".jsx"))
@@ -28127,17 +28136,17 @@ var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath)
28127
28136
  return "html";
28128
28137
  return null;
28129
28138
  }, resolveImportPath2 = (importPath, fromFile) => {
28130
- const fromDir = resolve41(fromFile, "..");
28139
+ const fromDir = resolve42(fromFile, "..");
28131
28140
  if (!importPath.startsWith(".") && !importPath.startsWith("/")) {
28132
28141
  if (!isWorkspacePackageSpecifier(importPath, fromDir))
28133
28142
  return null;
28134
28143
  try {
28135
- return realpathSync4(Bun.resolveSync(importPath, fromDir));
28144
+ return realpathSync5(Bun.resolveSync(importPath, fromDir));
28136
28145
  } catch {
28137
28146
  return null;
28138
28147
  }
28139
28148
  }
28140
- const normalized = resolve41(fromDir, importPath);
28149
+ const normalized = resolve42(fromDir, importPath);
28141
28150
  const extensions = [
28142
28151
  ".ts",
28143
28152
  ".tsx",
@@ -28167,7 +28176,7 @@ var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath)
28167
28176
  dependents.delete(normalizedPath);
28168
28177
  }
28169
28178
  }, addFileToGraph = (graph, filePath) => {
28170
- const normalizedPath = resolve41(filePath);
28179
+ const normalizedPath = resolve42(filePath);
28171
28180
  if (!existsSync40(normalizedPath))
28172
28181
  return;
28173
28182
  const dependencies = extractDependencies(normalizedPath);
@@ -28194,10 +28203,10 @@ var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath)
28194
28203
  }, IGNORED_SEGMENTS, buildInitialDependencyGraph = (graph, directories) => {
28195
28204
  const processedFiles = new Set;
28196
28205
  const glob = new Glob9("**/*.{ts,tsx,js,jsx,vue,svelte,html,htm}");
28197
- const resolvedDirs = directories.map((dir) => resolve41(dir)).filter((dir) => existsSync40(dir));
28206
+ const resolvedDirs = directories.map((dir) => resolve42(dir)).filter((dir) => existsSync40(dir));
28198
28207
  const allFiles = resolvedDirs.flatMap((dir) => Array.from(glob.scanSync({ absolute: true, cwd: dir })));
28199
28208
  for (const file of allFiles) {
28200
- const fullPath = resolve41(file);
28209
+ const fullPath = resolve42(file);
28201
28210
  if (IGNORED_SEGMENTS.some((seg) => fullPath.includes(seg)))
28202
28211
  continue;
28203
28212
  if (processedFiles.has(fullPath))
@@ -28291,15 +28300,15 @@ var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath)
28291
28300
  const lowerPath = filePath.toLowerCase();
28292
28301
  const isSvelteOrVue = lowerPath.endsWith(".svelte") || lowerPath.endsWith(".vue");
28293
28302
  if (loader === "html") {
28294
- const content = readFileSync35(filePath, "utf-8");
28303
+ const content = readFileSync36(filePath, "utf-8");
28295
28304
  return extractHtmlDependencies(filePath, content);
28296
28305
  }
28297
28306
  if (loader === "tsx" || loader === "js") {
28298
- const content = readFileSync35(filePath, "utf-8");
28307
+ const content = readFileSync36(filePath, "utf-8");
28299
28308
  return extractJsDependencies(filePath, content, loader);
28300
28309
  }
28301
28310
  if (isSvelteOrVue) {
28302
- const content = readFileSync35(filePath, "utf-8");
28311
+ const content = readFileSync36(filePath, "utf-8");
28303
28312
  return extractSvelteVueDependencies(filePath, content);
28304
28313
  }
28305
28314
  return [];
@@ -28310,7 +28319,7 @@ var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath)
28310
28319
  return [];
28311
28320
  }
28312
28321
  }, getAffectedFiles = (graph, changedFile) => {
28313
- const normalizedPath = resolve41(changedFile);
28322
+ const normalizedPath = resolve42(changedFile);
28314
28323
  const affected = new Set;
28315
28324
  const toProcess = [normalizedPath];
28316
28325
  const processNode = (current) => {
@@ -28341,7 +28350,7 @@ var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath)
28341
28350
  }, removeDependentsForFile = (graph, normalizedPath) => {
28342
28351
  graph.dependents.delete(normalizedPath);
28343
28352
  }, removeFileFromGraph = (graph, filePath) => {
28344
- const normalizedPath = resolve41(filePath);
28353
+ const normalizedPath = resolve42(filePath);
28345
28354
  removeDepsForFile(graph, normalizedPath);
28346
28355
  removeDependentsForFile(graph, normalizedPath);
28347
28356
  };
@@ -28385,12 +28394,12 @@ var globalVersionCounter = 0, createModuleVersionTracker = () => new Map, getNex
28385
28394
  };
28386
28395
 
28387
28396
  // src/dev/configResolver.ts
28388
- import { resolve as resolve42 } from "path";
28397
+ import { resolve as resolve43 } from "path";
28389
28398
  var resolveBuildPaths = (config) => {
28390
28399
  const cwd = process.cwd();
28391
28400
  const normalize = (path) => path.replace(/\\/g, "/");
28392
- const withDefault = (value, fallback) => normalize(resolve42(cwd, value ?? fallback));
28393
- const optional = (value) => value ? normalize(resolve42(cwd, value)) : undefined;
28401
+ const withDefault = (value, fallback) => normalize(resolve43(cwd, value ?? fallback));
28402
+ const optional = (value) => value ? normalize(resolve43(cwd, value)) : undefined;
28394
28403
  return {
28395
28404
  angularDir: optional(config.angularDirectory),
28396
28405
  assetsDir: optional(config.assetsDirectory),
@@ -28449,8 +28458,8 @@ var init_clientManager = __esm(() => {
28449
28458
  });
28450
28459
 
28451
28460
  // src/dev/pathUtils.ts
28452
- import { existsSync as existsSync41, readdirSync as readdirSync8, readFileSync as readFileSync36 } from "fs";
28453
- import { dirname as dirname29, resolve as resolve43 } from "path";
28461
+ import { existsSync as existsSync41, readdirSync as readdirSync8, readFileSync as readFileSync37 } from "fs";
28462
+ import { dirname as dirname30, resolve as resolve44 } from "path";
28454
28463
  var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
28455
28464
  if (shouldIgnorePath(filePath, resolved)) {
28456
28465
  return "ignored";
@@ -28526,7 +28535,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
28526
28535
  return "unknown";
28527
28536
  }, collectAngularResourceDirs = (angularDir) => {
28528
28537
  const out = new Set;
28529
- const angularRoot = resolve43(angularDir);
28538
+ const angularRoot = resolve44(angularDir);
28530
28539
  const angularRootNormalized = normalizePath2(angularRoot);
28531
28540
  const walk = (dir) => {
28532
28541
  let entries;
@@ -28539,7 +28548,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
28539
28548
  if (entry.name.startsWith(".") || entry.name === "node_modules") {
28540
28549
  continue;
28541
28550
  }
28542
- const full = resolve43(dir, entry.name);
28551
+ const full = resolve44(dir, entry.name);
28543
28552
  if (entry.isDirectory()) {
28544
28553
  walk(full);
28545
28554
  continue;
@@ -28549,7 +28558,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
28549
28558
  }
28550
28559
  let source;
28551
28560
  try {
28552
- source = readFileSync36(full, "utf8");
28561
+ source = readFileSync37(full, "utf8");
28553
28562
  } catch {
28554
28563
  continue;
28555
28564
  }
@@ -28578,10 +28587,10 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
28578
28587
  refs.push(strMatch[1]);
28579
28588
  }
28580
28589
  }
28581
- const componentDir = dirname29(full);
28590
+ const componentDir = dirname30(full);
28582
28591
  for (const ref of refs) {
28583
- const refAbs = normalizePath2(resolve43(componentDir, ref));
28584
- const refDir = normalizePath2(dirname29(refAbs));
28592
+ const refAbs = normalizePath2(resolve44(componentDir, ref));
28593
+ const refDir = normalizePath2(dirname30(refAbs));
28585
28594
  if (refDir === angularRootNormalized || refDir.startsWith(`${angularRootNormalized}/`)) {
28586
28595
  continue;
28587
28596
  }
@@ -28597,7 +28606,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
28597
28606
  const push = (path) => {
28598
28607
  if (!path)
28599
28608
  return;
28600
- const abs = normalizePath2(resolve43(cwd, path));
28609
+ const abs = normalizePath2(resolve44(cwd, path));
28601
28610
  if (!roots.includes(abs))
28602
28611
  roots.push(abs);
28603
28612
  };
@@ -28622,7 +28631,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
28622
28631
  push(cfg.assetsDir);
28623
28632
  push(cfg.stylesDir);
28624
28633
  for (const candidate of ["src", "db", "assets", "styles"]) {
28625
- const abs = normalizePath2(resolve43(cwd, candidate));
28634
+ const abs = normalizePath2(resolve44(cwd, candidate));
28626
28635
  if (existsSync41(abs) && !roots.includes(abs))
28627
28636
  roots.push(abs);
28628
28637
  }
@@ -28633,7 +28642,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
28633
28642
  continue;
28634
28643
  if (entry.name.startsWith("."))
28635
28644
  continue;
28636
- const abs = normalizePath2(resolve43(cwd, entry.name));
28645
+ const abs = normalizePath2(resolve44(cwd, entry.name));
28637
28646
  if (roots.includes(abs))
28638
28647
  continue;
28639
28648
  if (shouldIgnorePath(abs, resolved))
@@ -28791,7 +28800,7 @@ var init_serverEntryCopies = () => {};
28791
28800
  // src/dev/fileWatcher.ts
28792
28801
  import { watch } from "fs";
28793
28802
  import { existsSync as existsSync43, readdirSync as readdirSync10, statSync as statSync6 } from "fs";
28794
- import { dirname as dirname30, join as join56, resolve as resolve44 } from "path";
28803
+ import { dirname as dirname31, join as join56, resolve as resolve45 } from "path";
28795
28804
  var safeRemoveFromGraph = (graph, fullPath) => {
28796
28805
  try {
28797
28806
  removeFileFromGraph(graph, fullPath);
@@ -28846,7 +28855,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
28846
28855
  return;
28847
28856
  if (shouldSkipFilename(filename, isStylesDir)) {
28848
28857
  if (event === "rename") {
28849
- const eventDir = dirname30(join56(absolutePath, filename)).replace(/\\/g, "/");
28858
+ const eventDir = dirname31(join56(absolutePath, filename)).replace(/\\/g, "/");
28850
28859
  atomicRecoveryScan(eventDir);
28851
28860
  for (const delay of [25, 100]) {
28852
28861
  const timer = setTimeout(() => atomicRecoveryScan(eventDir), delay);
@@ -28873,7 +28882,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
28873
28882
  }, addFileWatchers = (state, paths, onFileChange) => {
28874
28883
  const stylesDir = state.resolvedPaths?.stylesDir;
28875
28884
  paths.forEach((path) => {
28876
- const absolutePath = resolve44(path).replace(/\\/g, "/");
28885
+ const absolutePath = resolve45(path).replace(/\\/g, "/");
28877
28886
  if (!existsSync43(absolutePath)) {
28878
28887
  return;
28879
28888
  }
@@ -28884,7 +28893,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
28884
28893
  const watchPaths = getWatchPaths(config, state.resolvedPaths);
28885
28894
  const stylesDir = state.resolvedPaths?.stylesDir;
28886
28895
  watchPaths.forEach((path) => {
28887
- const absolutePath = resolve44(path).replace(/\\/g, "/");
28896
+ const absolutePath = resolve45(path).replace(/\\/g, "/");
28888
28897
  if (!existsSync43(absolutePath)) {
28889
28898
  return;
28890
28899
  }
@@ -28904,13 +28913,13 @@ var init_fileWatcher = __esm(() => {
28904
28913
  });
28905
28914
 
28906
28915
  // src/dev/assetStore.ts
28907
- import { resolve as resolve45 } from "path";
28916
+ import { resolve as resolve46 } from "path";
28908
28917
  import { readdir as readdir5, unlink } from "fs/promises";
28909
28918
  var mimeTypes, getMimeType = (filePath) => {
28910
28919
  const ext = filePath.slice(filePath.lastIndexOf("."));
28911
28920
  return mimeTypes[ext] ?? "application/octet-stream";
28912
28921
  }, HASHED_FILE_RE, stripHash = (webPath) => webPath.replace(/\.[a-z0-9]{8}(\.(js|css|mjs))$/, "$1"), processWalkEntry = (entry, dir, liveByIdentity, walkAndClean) => {
28913
- const fullPath = resolve45(dir, entry.name);
28922
+ const fullPath = resolve46(dir, entry.name);
28914
28923
  if (entry.isDirectory()) {
28915
28924
  return walkAndClean(fullPath);
28916
28925
  }
@@ -28926,10 +28935,10 @@ var mimeTypes, getMimeType = (filePath) => {
28926
28935
  }, cleanStaleAssets = async (store, manifest, buildDir) => {
28927
28936
  const liveByIdentity = new Map;
28928
28937
  for (const webPath of store.keys()) {
28929
- const diskPath = resolve45(buildDir, webPath.slice(1));
28938
+ const diskPath = resolve46(buildDir, webPath.slice(1));
28930
28939
  liveByIdentity.set(stripHash(diskPath), diskPath);
28931
28940
  }
28932
- const absBuildDir = resolve45(buildDir);
28941
+ const absBuildDir = resolve46(buildDir);
28933
28942
  Object.values(manifest).forEach((val) => {
28934
28943
  if (!HASHED_FILE_RE.test(val))
28935
28944
  return;
@@ -28949,13 +28958,13 @@ var mimeTypes, getMimeType = (filePath) => {
28949
28958
  }, evictMissingChunks = async (store, buildDir) => {
28950
28959
  const chunkKeys = [...store.keys()].filter((webPath) => webPath.includes("/chunk-"));
28951
28960
  await Promise.all(chunkKeys.map(async (webPath) => {
28952
- const onDisk = await Bun.file(resolve45(buildDir, webPath.slice(1))).exists().catch(() => false);
28961
+ const onDisk = await Bun.file(resolve46(buildDir, webPath.slice(1))).exists().catch(() => false);
28953
28962
  if (!onDisk)
28954
28963
  store.delete(webPath);
28955
28964
  }));
28956
28965
  }, lookupAsset = (store, path) => store.get(path), processScanEntry = (entry, dir, prefix, store, scanDir) => {
28957
28966
  if (entry.isDirectory()) {
28958
- return scanDir(resolve45(dir, entry.name), `${prefix}${entry.name}/`);
28967
+ return scanDir(resolve46(dir, entry.name), `${prefix}${entry.name}/`);
28959
28968
  }
28960
28969
  if (!entry.name.startsWith("chunk-")) {
28961
28970
  return null;
@@ -28964,7 +28973,7 @@ var mimeTypes, getMimeType = (filePath) => {
28964
28973
  if (store.has(webPath)) {
28965
28974
  return null;
28966
28975
  }
28967
- return Bun.file(resolve45(dir, entry.name)).bytes().then((bytes) => {
28976
+ return Bun.file(resolve46(dir, entry.name)).bytes().then((bytes) => {
28968
28977
  store.set(webPath, bytes);
28969
28978
  return;
28970
28979
  }).catch(() => {});
@@ -28986,7 +28995,7 @@ var mimeTypes, getMimeType = (filePath) => {
28986
28995
  for (const webPath of newIdentities.values()) {
28987
28996
  if (store.has(webPath))
28988
28997
  continue;
28989
- loadPromises.push(Bun.file(resolve45(buildDir, webPath.slice(1))).bytes().then((bytes) => {
28998
+ loadPromises.push(Bun.file(resolve46(buildDir, webPath.slice(1))).bytes().then((bytes) => {
28990
28999
  store.set(webPath, bytes);
28991
29000
  return;
28992
29001
  }).catch(() => {}));
@@ -29032,10 +29041,10 @@ var init_assetStore = __esm(() => {
29032
29041
  });
29033
29042
 
29034
29043
  // src/dev/restartScope.ts
29035
- import { realpathSync as realpathSync5 } from "fs";
29044
+ import { realpathSync as realpathSync6 } from "fs";
29036
29045
  var MODULE_FILE, DOCUMENT_FILE, realPath = (path) => {
29037
29046
  try {
29038
- return realpathSync5(path);
29047
+ return realpathSync6(path);
29039
29048
  } catch {
29040
29049
  return path;
29041
29050
  }
@@ -29052,10 +29061,10 @@ var init_restartScope = __esm(() => {
29052
29061
  });
29053
29062
 
29054
29063
  // src/dev/fileHashTracker.ts
29055
- import { readFileSync as readFileSync37, statSync as statSync7 } from "fs";
29064
+ import { readFileSync as readFileSync38, statSync as statSync7 } from "fs";
29056
29065
  var computeFileHash = (filePath) => {
29057
29066
  try {
29058
- const fileContent = readFileSync37(filePath);
29067
+ const fileContent = readFileSync38(filePath);
29059
29068
  return Number(Bun.hash(fileContent));
29060
29069
  } catch {
29061
29070
  return UNFOUND_INDEX;
@@ -29143,9 +29152,9 @@ var init_transformCache = __esm(() => {
29143
29152
  });
29144
29153
 
29145
29154
  // src/dev/reactComponentClassifier.ts
29146
- import { resolve as resolve46 } from "path";
29155
+ import { resolve as resolve47 } from "path";
29147
29156
  var classifyComponent = (filePath) => {
29148
- const normalizedPath = resolve46(filePath);
29157
+ const normalizedPath = resolve47(filePath);
29149
29158
  if (normalizedPath.includes("/react/pages/")) {
29150
29159
  return "server";
29151
29160
  }
@@ -29157,7 +29166,7 @@ var classifyComponent = (filePath) => {
29157
29166
  var init_reactComponentClassifier = () => {};
29158
29167
 
29159
29168
  // src/dev/moduleMapper.ts
29160
- import { basename as basename18, resolve as resolve47 } from "path";
29169
+ import { basename as basename18, resolve as resolve48 } from "path";
29161
29170
  var buildModulePaths = (moduleKeys, manifest) => {
29162
29171
  const modulePaths = {};
29163
29172
  moduleKeys.forEach((key) => {
@@ -29167,7 +29176,7 @@ var buildModulePaths = (moduleKeys, manifest) => {
29167
29176
  });
29168
29177
  return modulePaths;
29169
29178
  }, processChangedFile = (sourceFile, framework, manifest, resolvedPaths, processedFiles) => {
29170
- const normalizedFile = resolve47(sourceFile);
29179
+ const normalizedFile = resolve48(sourceFile);
29171
29180
  const normalizedPath = normalizedFile.replace(/\\/g, "/");
29172
29181
  if (processedFiles.has(normalizedFile)) {
29173
29182
  return null;
@@ -29203,7 +29212,7 @@ var buildModulePaths = (moduleKeys, manifest) => {
29203
29212
  });
29204
29213
  return grouped;
29205
29214
  }, mapSourceFileToManifestKeys = (sourceFile, framework, resolvedPaths) => {
29206
- const normalizedFile = resolve47(sourceFile);
29215
+ const normalizedFile = resolve48(sourceFile);
29207
29216
  const fileName = basename18(normalizedFile);
29208
29217
  const baseName = fileName.replace(/\.(tsx?|jsx?|vue|svelte|css|html)$/, "");
29209
29218
  const pascalName = toPascal(baseName);
@@ -29259,7 +29268,7 @@ var init_moduleMapper = __esm(() => {
29259
29268
 
29260
29269
  // src/utils/spaRouteCss.ts
29261
29270
  import { readFile as readFile9 } from "fs/promises";
29262
- import { dirname as dirname31, isAbsolute as isAbsolute9, resolve as resolve48 } from "path";
29271
+ import { dirname as dirname32, isAbsolute as isAbsolute9, resolve as resolve49 } from "path";
29263
29272
  var sideManifestCache, readSideManifest = async (sideManifestPath) => {
29264
29273
  const cached = sideManifestCache.get(sideManifestPath);
29265
29274
  if (cached !== undefined)
@@ -29297,7 +29306,7 @@ var sideManifestCache, readSideManifest = async (sideManifestPath) => {
29297
29306
  }, readChildCss = async (cssPath, sideManifestPath) => {
29298
29307
  if (!cssPath)
29299
29308
  return "";
29300
- const resolvedCssPath = isAbsolute9(cssPath) ? cssPath : resolve48(dirname31(sideManifestPath), cssPath);
29309
+ const resolvedCssPath = isAbsolute9(cssPath) ? cssPath : resolve49(dirname32(sideManifestPath), cssPath);
29301
29310
  const cached = childCssCache.get(resolvedCssPath);
29302
29311
  if (cached !== undefined)
29303
29312
  return cached;
@@ -29380,8 +29389,8 @@ __export(exports_resolveOwningComponents, {
29380
29389
  resolveDescendantsOfParent: () => resolveDescendantsOfParent,
29381
29390
  resolveOwningComponents: () => resolveOwningComponents
29382
29391
  });
29383
- import { readdirSync as readdirSync11, readFileSync as readFileSync38, statSync as statSync8 } from "fs";
29384
- import { dirname as dirname32, extname as extname15, join as join57, resolve as resolve49 } from "path";
29392
+ import { readdirSync as readdirSync11, readFileSync as readFileSync39, statSync as statSync8 } from "fs";
29393
+ import { dirname as dirname33, extname as extname15, join as join57, resolve as resolve50 } from "path";
29385
29394
  import ts19 from "typescript";
29386
29395
  var ENTITY_DECORATORS, isAngularSourceFile = (file) => file.endsWith(".ts") || file.endsWith(".tsx"), walkAngularSourceFiles = (root) => {
29387
29396
  const out = [];
@@ -29440,7 +29449,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file) => file.endsWith(".ts") || f
29440
29449
  }, parseDecoratedClasses = (filePath) => {
29441
29450
  let source;
29442
29451
  try {
29443
- source = readFileSync38(filePath, "utf8");
29452
+ source = readFileSync39(filePath, "utf8");
29444
29453
  } catch {
29445
29454
  return [];
29446
29455
  }
@@ -29494,7 +29503,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file) => file.endsWith(".ts") || f
29494
29503
  };
29495
29504
  visit(sourceFile);
29496
29505
  return out;
29497
- }, safeNormalize = (path) => resolve49(path).replace(/\\/g, "/"), resolveOwningComponents = (params) => {
29506
+ }, safeNormalize = (path) => resolve50(path).replace(/\\/g, "/"), resolveOwningComponents = (params) => {
29498
29507
  const { changedFilePath, userAngularRoot } = params;
29499
29508
  const changedAbs = safeNormalize(changedFilePath);
29500
29509
  const out = [];
@@ -29530,12 +29539,12 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file) => file.endsWith(".ts") || f
29530
29539
  }, indexByRoot, resolveParentClassFile = (parentName, childFilePath, angularRoot) => {
29531
29540
  let source;
29532
29541
  try {
29533
- source = readFileSync38(childFilePath, "utf8");
29542
+ source = readFileSync39(childFilePath, "utf8");
29534
29543
  } catch {
29535
29544
  return null;
29536
29545
  }
29537
29546
  const sourceFile = ts19.createSourceFile(childFilePath, source, ts19.ScriptTarget.ES2022, true, ts19.ScriptKind.TS);
29538
- const childDir = dirname32(childFilePath);
29547
+ const childDir = dirname33(childFilePath);
29539
29548
  for (const stmt of sourceFile.statements) {
29540
29549
  if (!ts19.isImportDeclaration(stmt))
29541
29550
  continue;
@@ -29563,7 +29572,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file) => file.endsWith(".ts") || f
29563
29572
  if (!spec.startsWith(".") && !spec.startsWith("/")) {
29564
29573
  return null;
29565
29574
  }
29566
- const base = resolve49(childDir, spec);
29575
+ const base = resolve50(childDir, spec);
29567
29576
  const candidates = [
29568
29577
  `${base}.ts`,
29569
29578
  `${base}.tsx`,
@@ -29592,7 +29601,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file) => file.endsWith(".ts") || f
29592
29601
  const parentFile = new Map;
29593
29602
  for (const tsPath of walkAngularSourceFiles(userAngularRoot)) {
29594
29603
  const classes = parseDecoratedClasses(tsPath);
29595
- const componentDir = dirname32(tsPath);
29604
+ const componentDir = dirname33(tsPath);
29596
29605
  for (const cls of classes) {
29597
29606
  const entity = {
29598
29607
  className: cls.className,
@@ -29601,7 +29610,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file) => file.endsWith(".ts") || f
29601
29610
  };
29602
29611
  if (cls.kind === "component") {
29603
29612
  for (const url of [...cls.templateUrls, ...cls.styleUrls]) {
29604
- const abs = safeNormalize(resolve49(componentDir, url));
29613
+ const abs = safeNormalize(resolve50(componentDir, url));
29605
29614
  const existing = resource.get(abs);
29606
29615
  if (existing)
29607
29616
  existing.push(entity);
@@ -29863,8 +29872,8 @@ __export(exports_moduleServer, {
29863
29872
  warmPage: () => warmPage,
29864
29873
  warnIfReactFastRefreshUnsupported: () => warnIfReactFastRefreshUnsupported
29865
29874
  });
29866
- import { existsSync as existsSync44, readFileSync as readFileSync39, realpathSync as realpathSync6, statSync as statSync9 } from "fs";
29867
- import { basename as basename19, dirname as dirname33, extname as extname16, join as join58, resolve as resolve50, relative as relative22 } from "path";
29875
+ import { existsSync as existsSync44, readFileSync as readFileSync40, realpathSync as realpathSync7, statSync as statSync9 } from "fs";
29876
+ import { basename as basename19, dirname as dirname34, extname as extname16, join as join58, resolve as resolve51, relative as relative22 } from "path";
29868
29877
  var SRC_PREFIX = "/@src/", BROWSER_DEFINE, jsTranspiler2, legacyDecoratorTsconfig, tsTranspiler2, tsxTranspiler, TRANSPILABLE, ALL_EXPORTS_RE, STRING_CONTENTS_RE, preserveTypeExports = (originalSource, transpiled, valueExports) => {
29869
29878
  const codeOnly = originalSource.replace(STRING_CONTENTS_RE, '""');
29870
29879
  const allExports = [];
@@ -29884,10 +29893,10 @@ var SRC_PREFIX = "/@src/", BROWSER_DEFINE, jsTranspiler2, legacyDecoratorTsconfi
29884
29893
  ${stubs}
29885
29894
  `;
29886
29895
  }, resolveRelativeExtension = (srcPath, projectRoot, extensions) => {
29887
- const directHit = extensions.find((ext) => existsSync44(resolve50(projectRoot, srcPath + ext)));
29896
+ const directHit = extensions.find((ext) => existsSync44(resolve51(projectRoot, srcPath + ext)));
29888
29897
  if (directHit)
29889
29898
  return srcPath + directHit;
29890
- const indexHit = extensions.find((ext) => existsSync44(resolve50(projectRoot, srcPath, `index${ext}`)));
29899
+ const indexHit = extensions.find((ext) => existsSync44(resolve51(projectRoot, srcPath, `index${ext}`)));
29891
29900
  if (indexHit)
29892
29901
  return `${srcPath}/index${indexHit}`;
29893
29902
  return srcPath;
@@ -29916,7 +29925,7 @@ ${stubs}
29916
29925
  return invalidationVersion > 0 ? `${mtime}.${invalidationVersion}` : `${mtime}`;
29917
29926
  }, srcUrl = (relPath, projectRoot) => {
29918
29927
  const base = `${SRC_PREFIX}${encodeSrcPath(relPath)}`;
29919
- const absPath = resolve50(projectRoot, relPath);
29928
+ const absPath = resolve51(projectRoot, relPath);
29920
29929
  const cached = mtimeCache.get(absPath);
29921
29930
  if (cached !== undefined)
29922
29931
  return `${base}?v=${buildVersion(cached, absPath)}`;
@@ -29928,12 +29937,12 @@ ${stubs}
29928
29937
  return base;
29929
29938
  }
29930
29939
  }, resolveRelativeImport = (relPath, fileDir, projectRoot, extensions) => {
29931
- const absPath = resolve50(fileDir, relPath);
29940
+ const absPath = resolve51(fileDir, relPath);
29932
29941
  const rel = relative22(projectRoot, absPath);
29933
29942
  const extension = extname16(rel);
29934
29943
  let srcPath = RESOLVED_MODULE_EXTENSIONS.has(extension) ? rel : resolveRelativeExtension(rel, projectRoot, extensions);
29935
29944
  if (extname16(srcPath) === ".svelte") {
29936
- srcPath = relative22(projectRoot, resolveSvelteModulePath(resolve50(projectRoot, srcPath)));
29945
+ srcPath = relative22(projectRoot, resolveSvelteModulePath(resolve51(projectRoot, srcPath)));
29937
29946
  }
29938
29947
  return srcUrl(srcPath, projectRoot);
29939
29948
  }, NODE_BUILTIN_RE, resolveAbsoluteSpecifier = (specifier, projectRoot) => {
@@ -29952,13 +29961,13 @@ ${stubs}
29952
29961
  const packageName = isScoped ? `${parts[0]}/${parts[1]}` : parts[0];
29953
29962
  const subpath = isScoped ? parts.slice(2).join("/") : parts.slice(1).join("/");
29954
29963
  if (!subpath) {
29955
- const pkgDir = resolve50(projectRoot, "node_modules", packageName ?? "");
29964
+ const pkgDir = resolve51(projectRoot, "node_modules", packageName ?? "");
29956
29965
  const pkgJsonPath = join58(pkgDir, "package.json");
29957
29966
  if (existsSync44(pkgJsonPath)) {
29958
- const pkg = JSON.parse(readFileSync39(pkgJsonPath, "utf-8"));
29967
+ const pkg = JSON.parse(readFileSync40(pkgJsonPath, "utf-8"));
29959
29968
  const esmEntry = typeof pkg.module === "string" && pkg.module || typeof pkg.browser === "string" && pkg.browser;
29960
29969
  if (esmEntry) {
29961
- const resolved = resolve50(pkgDir, esmEntry);
29970
+ const resolved = resolve51(pkgDir, esmEntry);
29962
29971
  if (existsSync44(resolved))
29963
29972
  return relative22(projectRoot, resolved);
29964
29973
  }
@@ -29998,7 +30007,7 @@ ${stubs}
29998
30007
  };
29999
30008
  result = result.replace(/^((?:import\s+[^"'`;]+?\s+from|export\s+[^"'`;]+?\s+from|import)\s*["'])([^"'./][^"']*)(["'])/gm, stubReplace);
30000
30009
  result = result.replace(/(import\s*\(\s*["'])([^"'./][^"']*)(["']\s*\))/g, stubReplace);
30001
- const fileDir = dirname33(filePath);
30010
+ const fileDir = dirname34(filePath);
30002
30011
  result = result.replace(/(from\s*["'])(\.\.?\/[^"']+)(["'])/g, (_match, prefix, relPath, suffix) => isRealImport(relPath) ? `${prefix}${resolveRelativeImport(relPath, fileDir, projectRoot, IMPORT_EXTENSIONS)}${suffix}` : _match);
30003
30012
  result = result.replace(/(import\s*\(\s*["'])(\.\.?\/[^"']+)(["']\s*\))/g, (_match, prefix, relPath, suffix) => isRealImport(relPath) ? `${prefix}${resolveRelativeImport(relPath, fileDir, projectRoot, IMPORT_EXTENSIONS)}${suffix}` : _match);
30004
30013
  result = result.replace(/(import\s*["'])(\.\.?\/[^"']+)(["']\s*;?)/g, (_match, prefix, relPath, suffix) => isRealImport(relPath) ? `${prefix}${resolveRelativeImport(relPath, fileDir, projectRoot, SIDE_EFFECT_EXTENSIONS)}${suffix}` : _match);
@@ -30015,12 +30024,12 @@ ${stubs}
30015
30024
  result = result.replace(/((?:from|import)\s*["'])(\/[^"']+\.(tsx?|jsx?|ts))(["'])/g, rewriteAbsoluteToSrc);
30016
30025
  result = result.replace(/(import\s*\(\s*["'])(\/[^"']+\.(tsx?|jsx?|ts))(["']\s*\))/g, rewriteAbsoluteToSrc);
30017
30026
  result = result.replace(/new\s+URL\(\s*["'](\.\.?\/[^"']+)["']\s*,\s*import\.meta\.url\s*\)/g, (_match, relPath) => {
30018
- const absPath = resolve50(fileDir, relPath);
30027
+ const absPath = resolve51(fileDir, relPath);
30019
30028
  const rel = relative22(projectRoot, absPath);
30020
30029
  return `new URL('${srcUrl(rel, projectRoot)}', import.meta.url)`;
30021
30030
  });
30022
30031
  result = result.replace(/import\.meta\.resolve\(\s*["'](\.\.?\/[^"']+)["']\s*\)/g, (_match, relPath) => {
30023
- const absPath = resolve50(fileDir, relPath);
30032
+ const absPath = resolve51(fileDir, relPath);
30024
30033
  const rel = relative22(projectRoot, absPath);
30025
30034
  return `'${srcUrl(rel, projectRoot)}'`;
30026
30035
  });
@@ -30066,7 +30075,7 @@ ${code}`;
30066
30075
  reactFastRefreshWarningEmitted = true;
30067
30076
  logWarn("React edits remount the page instead of keeping component state: " + "this Bun ignores `reactFastRefresh` on Bun.Transpiler " + "(https://github.com/oven-sh/bun/issues/32919). Run " + "`absolute bun-patch install` to use AbsoluteJS's patched Bun, " + "which has the fix; `absolute dev` then uses it automatically.");
30068
30077
  }, transformReactFile = (filePath, projectRoot, rewriter) => {
30069
- const raw = readFileSync39(filePath, "utf-8");
30078
+ const raw = readFileSync40(filePath, "utf-8");
30070
30079
  const valueExports = tsxTranspiler.scan(raw).exports;
30071
30080
  let transpiled = reactTranspiler.transformSync(raw);
30072
30081
  transpiled = preserveTypeExports(raw, transpiled, valueExports);
@@ -30082,7 +30091,7 @@ ${transpiled}`;
30082
30091
  transpiled += buildIslandMetadataExports(raw);
30083
30092
  return rewriteImports(transpiled, filePath, projectRoot, rewriter);
30084
30093
  }, transformPlainFile = (filePath, projectRoot, rewriter, vueDir) => {
30085
- const raw = readFileSync39(filePath, "utf-8");
30094
+ const raw = readFileSync40(filePath, "utf-8");
30086
30095
  const ext = extname16(filePath);
30087
30096
  const isTS = ext === ".ts" || ext === ".tsx";
30088
30097
  const isTSX = ext === ".tsx" || ext === ".jsx";
@@ -30248,7 +30257,7 @@ ${code}`;
30248
30257
  ` + ` var __hmr_accept = function(cb) { window.__SVELTE_HMR_ACCEPT__[${JSON.stringify(moduleUrl)}] = cb; };`);
30249
30258
  return code.replace(/import\.meta\.hot\.accept\(/g, "__hmr_accept(");
30250
30259
  }, transformSvelteFile = async (filePath, projectRoot, rewriter, stylePreprocessors) => {
30251
- const raw = readFileSync39(filePath, "utf-8");
30260
+ const raw = readFileSync40(filePath, "utf-8");
30252
30261
  if (!svelteCompiler) {
30253
30262
  svelteCompiler = await import("svelte/compiler");
30254
30263
  }
@@ -30297,7 +30306,7 @@ export default __script__;`;
30297
30306
  filename: filePath,
30298
30307
  id: `data-v-${componentId}`,
30299
30308
  scoped: Boolean(style.scoped),
30300
- source: style.lang ? await compileStyleSource(filePath, style.content, style.lang, stylePreprocessors) : style.content,
30309
+ source: inlineCssImports(style.lang ? await compileStyleSource(filePath, style.content, style.lang, stylePreprocessors) : style.content, filePath),
30301
30310
  trim: true
30302
30311
  }).code))).join(`
30303
30312
  `);
@@ -30314,7 +30323,7 @@ export default __script__;`;
30314
30323
  return `${cssInjection}
30315
30324
  ${code}`;
30316
30325
  }, transformVueFile = async (filePath, projectRoot, rewriter, vueDir, stylePreprocessors) => {
30317
- const rawSource = readFileSync39(filePath, "utf-8");
30326
+ const rawSource = readFileSync40(filePath, "utf-8");
30318
30327
  const raw = addAutoRouterSetupApp(rawSource);
30319
30328
  if (!vueCompiler) {
30320
30329
  vueCompiler = await loadVueCompiler();
@@ -30326,8 +30335,8 @@ ${code}`;
30326
30335
  const compiledScript = hasScript ? vueCompiler.compileScript(descriptor, {
30327
30336
  fs: {
30328
30337
  fileExists: isFile,
30329
- realpath: realpathSync6,
30330
- readFile: (file) => isFile(file) ? readFileSync39(file, "utf-8") : undefined
30338
+ realpath: realpathSync7,
30339
+ readFile: (file) => isFile(file) ? readFileSync40(file, "utf-8") : undefined
30331
30340
  },
30332
30341
  id: componentId,
30333
30342
  inlineTemplate: false
@@ -30342,7 +30351,7 @@ ${code}`;
30342
30351
  code = injectVueHmr(code, filePath, projectRoot, vueDir);
30343
30352
  return rewriteImports(code, filePath, projectRoot, rewriter);
30344
30353
  }, injectVueHmr = (code, filePath, projectRoot, vueDir) => {
30345
- const hmrBase = vueDir ? resolve50(vueDir) : projectRoot;
30354
+ const hmrBase = vueDir ? resolve51(vueDir) : projectRoot;
30346
30355
  const hmrId = relative22(hmrBase, filePath).replace(/\\/g, "/").replace(/\.vue$/, "");
30347
30356
  let result = code.replace(/export\s+default\s+/, "var __hmr_comp__ = ");
30348
30357
  result += [
@@ -30374,7 +30383,7 @@ ${code}`;
30374
30383
  }
30375
30384
  });
30376
30385
  }, handleCssRequest = (filePath) => {
30377
- const raw = readFileSync39(filePath, "utf-8");
30386
+ const raw = readFileSync40(filePath, "utf-8");
30378
30387
  const escaped = raw.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
30379
30388
  return [
30380
30389
  `const style = document.createElement('style');`,
@@ -30503,7 +30512,7 @@ export default {};
30503
30512
  const escaped = virtualCss.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
30504
30513
  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);`);
30505
30514
  }, resolveSourcePath2 = (relPath, projectRoot) => {
30506
- const filePath = resolve50(projectRoot, decodeSrcPath(relPath));
30515
+ const filePath = resolve51(projectRoot, decodeSrcPath(relPath));
30507
30516
  const ext = extname16(filePath);
30508
30517
  if (ext === ".svelte")
30509
30518
  return { ext, filePath: resolveSvelteModulePath(filePath) };
@@ -30540,14 +30549,14 @@ export default {};
30540
30549
  const absoluteCandidate = `/${tail.replace(/^\/+/, "")}`;
30541
30550
  const candidates = [
30542
30551
  absoluteCandidate,
30543
- resolve50(projectRoot, tail)
30552
+ resolve51(projectRoot, tail)
30544
30553
  ];
30545
30554
  try {
30546
30555
  await Promise.resolve().then(() => init_loadConfig());
30547
30556
  const cfg = await loadConfig();
30548
- const angularDir = cfg.angularDirectory && resolve50(projectRoot, cfg.angularDirectory);
30557
+ const angularDir = cfg.angularDirectory && resolve51(projectRoot, cfg.angularDirectory);
30549
30558
  if (angularDir)
30550
- candidates.push(resolve50(angularDir, tail));
30559
+ candidates.push(resolve51(angularDir, tail));
30551
30560
  } catch {}
30552
30561
  for (const candidate of candidates) {
30553
30562
  if (await fileExists(candidate)) {
@@ -30578,7 +30587,7 @@ export default {};
30578
30587
  if (!TRANSPILABLE.has(ext))
30579
30588
  return;
30580
30589
  const stat = statSync9(filePath);
30581
- const resolvedVueDir = vueDir ? resolve50(vueDir) : undefined;
30590
+ const resolvedVueDir = vueDir ? resolve51(vueDir) : undefined;
30582
30591
  let content = REACT_EXTENSIONS.has(ext) ? transformReactFile(filePath, projectRoot, rewriter) : transformPlainFile(filePath, projectRoot, rewriter, resolvedVueDir);
30583
30592
  const isAngularGeneratedJs = ext === ".js" && filePath.replace(/\\/g, "/").includes("/.absolutejs/generated/angular/");
30584
30593
  if (isAngularGeneratedJs) {
@@ -30634,7 +30643,7 @@ export default {};
30634
30643
  const ownMessage = source && typeof source === "object" ? Reflect.get(source, "message") : undefined;
30635
30644
  const message = typeof ownMessage === "string" ? ownMessage : String(source);
30636
30645
  return { message, ...readPosition(first) };
30637
- }, getTransformError = (filePath) => transformErrors.get(resolve50(filePath)), transformErrorResponse = (err) => {
30646
+ }, getTransformError = (filePath) => transformErrors.get(resolve51(filePath)), transformErrorResponse = (err) => {
30638
30647
  const errMsg = err instanceof Error ? err.message : String(err);
30639
30648
  return new Response(`console.error('[ModuleServer] Transform error:', ${JSON.stringify(errMsg)});`, {
30640
30649
  headers: { "Content-Type": "application/javascript" },
@@ -30657,16 +30666,16 @@ export default {};
30657
30666
  const relPath = pathname.slice(SRC_PREFIX.length);
30658
30667
  if (relPath === "bun:wrap" || relPath.startsWith("bun:wrap?"))
30659
30668
  return handleBunWrapRequest();
30660
- const virtualCssResponse = handleVirtualSvelteCss(resolve50(projectRoot, decodeSrcPath(relPath)));
30669
+ const virtualCssResponse = handleVirtualSvelteCss(resolve51(projectRoot, decodeSrcPath(relPath)));
30661
30670
  if (virtualCssResponse)
30662
30671
  return virtualCssResponse;
30663
30672
  const { filePath, ext } = resolveSourcePath2(relPath, projectRoot);
30664
30673
  try {
30665
30674
  const response = await transformAndCache(filePath, ext, projectRoot, rewriter, frameworkDirs?.vue, stylePreprocessors);
30666
- transformErrors.delete(resolve50(filePath));
30675
+ transformErrors.delete(resolve51(filePath));
30667
30676
  return response;
30668
30677
  } catch (err) {
30669
- transformErrors.set(resolve50(filePath), describeTransformError(err));
30678
+ transformErrors.set(resolve51(filePath), describeTransformError(err));
30670
30679
  return transformErrorResponse(err);
30671
30680
  }
30672
30681
  };
@@ -30676,11 +30685,11 @@ export default {};
30676
30685
  SRC_IMPORT_RE.lastIndex = 0;
30677
30686
  while ((match = SRC_IMPORT_RE.exec(content)) !== null) {
30678
30687
  if (match[1])
30679
- files.push(resolve50(projectRoot, decodeSrcPath(match[1])));
30688
+ files.push(resolve51(projectRoot, decodeSrcPath(match[1])));
30680
30689
  }
30681
30690
  return files;
30682
30691
  }, SRC_URL_PREFIX2, invalidateModule = (filePath) => {
30683
- const resolved = resolve50(filePath);
30692
+ const resolved = resolve51(filePath);
30684
30693
  transformErrors.delete(resolved);
30685
30694
  invalidate(filePath);
30686
30695
  if (resolved !== filePath)
@@ -30746,7 +30755,7 @@ export default {};
30746
30755
  return false;
30747
30756
  }
30748
30757
  await Promise.resolve().then(() => init_prepare());
30749
- patchManifestIndexes(cached.manifest, resolve50(state.resolvedPaths.buildDir, "_src_indexes"), SRC_PREFIX);
30758
+ patchManifestIndexes(cached.manifest, resolve51(state.resolvedPaths.buildDir, "_src_indexes"), SRC_PREFIX);
30750
30759
  logPageBuild(entry.source, entry.framework, Math.round(durationMs));
30751
30760
  logStartupTimingBlock("AbsoluteJS on-demand page build", [
30752
30761
  { durationMs, label: entry.name }
@@ -30769,6 +30778,7 @@ export default {};
30769
30778
  };
30770
30779
  var init_moduleServer = __esm(() => {
30771
30780
  init_constants();
30781
+ init_inlineCssImports();
30772
30782
  init_resolvePackageImport();
30773
30783
  init_vueAutoRouterTransform();
30774
30784
  init_sourceMetadata();
@@ -30909,7 +30919,7 @@ var init_rewriteImports = __esm(() => {
30909
30919
  });
30910
30920
 
30911
30921
  // src/dev/angular/hmrCompiler.ts
30912
- import { dirname as dirname34, relative as relative23, resolve as resolve51 } from "path";
30922
+ import { dirname as dirname35, relative as relative23, resolve as resolve52 } from "path";
30913
30923
  import { performance as performance2 } from "perf_hooks";
30914
30924
  var encodeHmrComponentId = (absoluteFilePath, className) => {
30915
30925
  const projectRel = relative23(process.cwd(), absoluteFilePath).replace(/\\/g, "/");
@@ -30921,7 +30931,7 @@ var encodeHmrComponentId = (absoluteFilePath, className) => {
30921
30931
  return null;
30922
30932
  const filePathRel = decoded.slice(0, separatorIndex);
30923
30933
  const className = decoded.slice(separatorIndex + 1);
30924
- const componentFilePath = resolve51(process.cwd(), filePathRel);
30934
+ const componentFilePath = resolve52(process.cwd(), filePathRel);
30925
30935
  const projectRelPath = relative23(process.cwd(), componentFilePath).replace(/\\/g, "/");
30926
30936
  const cacheKey = encodeURIComponent(`${projectRelPath}@${className}`);
30927
30937
  await Promise.resolve().then(() => init_fastHmrCompiler());
@@ -30932,7 +30942,7 @@ var encodeHmrComponentId = (absoluteFilePath, className) => {
30932
30942
  await Promise.resolve().then(() => init_resolveOwningComponents());
30933
30943
  const owners = resolveOwningComponents({
30934
30944
  changedFilePath: componentFilePath,
30935
- userAngularRoot: dirname34(componentFilePath)
30945
+ userAngularRoot: dirname35(componentFilePath)
30936
30946
  });
30937
30947
  const owner = owners.find((o) => o.className === className);
30938
30948
  const kind = owner?.kind ?? "component";
@@ -31009,11 +31019,11 @@ var exports_simpleHTMLHMR = {};
31009
31019
  __export(exports_simpleHTMLHMR, {
31010
31020
  handleHTMLUpdate: () => handleHTMLUpdate
31011
31021
  });
31012
- import { resolve as resolve52 } from "path";
31022
+ import { resolve as resolve53 } from "path";
31013
31023
  var handleHTMLUpdate = async (htmlFilePath) => {
31014
31024
  let htmlContent;
31015
31025
  try {
31016
- const resolvedPath = resolve52(htmlFilePath);
31026
+ const resolvedPath = resolve53(htmlFilePath);
31017
31027
  const file = Bun.file(resolvedPath);
31018
31028
  if (!await file.exists()) {
31019
31029
  return null;
@@ -31039,11 +31049,11 @@ var exports_simpleHTMXHMR = {};
31039
31049
  __export(exports_simpleHTMXHMR, {
31040
31050
  handleHTMXUpdate: () => handleHTMXUpdate
31041
31051
  });
31042
- import { resolve as resolve53 } from "path";
31052
+ import { resolve as resolve54 } from "path";
31043
31053
  var handleHTMXUpdate = async (htmxFilePath) => {
31044
31054
  let htmlContent;
31045
31055
  try {
31046
- const resolvedPath = resolve53(htmxFilePath);
31056
+ const resolvedPath = resolve54(htmxFilePath);
31047
31057
  const file = Bun.file(resolvedPath);
31048
31058
  if (!await file.exists()) {
31049
31059
  return null;
@@ -31065,8 +31075,8 @@ var handleHTMXUpdate = async (htmxFilePath) => {
31065
31075
  var init_simpleHTMXHMR = () => {};
31066
31076
 
31067
31077
  // src/dev/backendGraph.ts
31068
- import { readFileSync as readFileSync40, realpathSync as realpathSync7, statSync as statSync10 } from "fs";
31069
- import { dirname as dirname35, extname as extname17, resolve as resolve54 } from "path";
31078
+ import { readFileSync as readFileSync41, realpathSync as realpathSync8, statSync as statSync10 } from "fs";
31079
+ import { dirname as dirname36, extname as extname17, resolve as resolve55 } from "path";
31070
31080
  var SOURCE_FILE, VENDORED, LOADERS, fileCache, transpilers, transpilerFor = (path) => {
31071
31081
  const loader = LOADERS[extname17(path)] ?? "ts";
31072
31082
  const existing = transpilers.get(loader);
@@ -31077,13 +31087,13 @@ var SOURCE_FILE, VENDORED, LOADERS, fileCache, transpilers, transpilerFor = (pat
31077
31087
  return created;
31078
31088
  }, realPath2 = (path) => {
31079
31089
  try {
31080
- return realpathSync7(path);
31090
+ return realpathSync8(path);
31081
31091
  } catch {
31082
31092
  return path;
31083
31093
  }
31084
- }, isProjectModule = (path, root = process.cwd()) => SOURCE_FILE.test(path) && !VENDORED.test(path) && resolve54(path).startsWith(resolve54(root)), resolveImport = (specifier, fromFile) => {
31094
+ }, isProjectModule = (path, root = process.cwd()) => SOURCE_FILE.test(path) && !VENDORED.test(path) && resolve55(path).startsWith(resolve55(root)), resolveImport = (specifier, fromFile) => {
31085
31095
  try {
31086
- return realPath2(Bun.resolveSync(specifier, dirname35(fromFile)));
31096
+ return realPath2(Bun.resolveSync(specifier, dirname36(fromFile)));
31087
31097
  } catch {
31088
31098
  return;
31089
31099
  }
@@ -31100,20 +31110,20 @@ var SOURCE_FILE, VENDORED, LOADERS, fileCache, transpilers, transpilerFor = (pat
31100
31110
  return cached.imports;
31101
31111
  let imports = [];
31102
31112
  try {
31103
- const source = readFileSync40(path, "utf-8");
31113
+ const source = readFileSync41(path, "utf-8");
31104
31114
  imports = transpilerFor(path).scanImports(source).map((entry) => resolveImport(entry.path, path)).filter((target) => target !== undefined);
31105
31115
  } catch {}
31106
31116
  fileCache.set(path, { imports, mtimeMs });
31107
31117
  return imports;
31108
31118
  }, importersOf = (target, entry, loaded = loadedProjectModules(entry)) => {
31109
- const goal = realPath2(resolve54(target));
31119
+ const goal = realPath2(resolve55(target));
31110
31120
  const importers = [];
31111
31121
  for (const file of loaded)
31112
31122
  if (readImports(file).includes(goal))
31113
31123
  importers.push(file);
31114
31124
  return importers;
31115
31125
  }, loadedProjectModules = (entry, loaded = Object.keys(__require.cache), root = process.cwd()) => {
31116
- const entryPath = realPath2(resolve54(entry));
31126
+ const entryPath = realPath2(resolve55(entry));
31117
31127
  const modules = new Set([entryPath]);
31118
31128
  for (const path of loaded) {
31119
31129
  if (isAbsoluteServerEntryCopyPath(path))
@@ -31142,7 +31152,7 @@ var init_backendGraph = __esm(() => {
31142
31152
  });
31143
31153
 
31144
31154
  // src/dev/hot/analyze.ts
31145
- import { dirname as dirname36, extname as extname18 } from "path";
31155
+ import { dirname as dirname37, extname as extname18 } from "path";
31146
31156
  var ANALYZER_VERSION = 1, hashText = (text) => Bun.hash(text).toString(36), scriptKindFor = (tsc, path) => {
31147
31157
  switch (extname18(path)) {
31148
31158
  case ".tsx":
@@ -31824,7 +31834,7 @@ var ANALYZER_VERSION = 1, hashText = (text) => Bun.hash(text).toString(36), scri
31824
31834
  return analysis;
31825
31835
  }, resolveFrom = (fromFile, isManaged) => (specifier) => {
31826
31836
  try {
31827
- const resolved = Bun.resolveSync(specifier, dirname36(fromFile));
31837
+ const resolved = Bun.resolveSync(specifier, dirname37(fromFile));
31828
31838
  return isManaged(resolved) ? resolved : undefined;
31829
31839
  } catch {
31830
31840
  return;
@@ -31898,11 +31908,11 @@ var init_runtime = __esm(() => {
31898
31908
  });
31899
31909
 
31900
31910
  // src/dev/hot/plugin.ts
31901
- import { mkdirSync as mkdirSync14, readFileSync as readFileSync41, realpathSync as realpathSync8, writeFileSync as writeFileSync11 } from "fs";
31902
- import { extname as extname19, join as join59, relative as relative24, resolve as resolve55, sep as sep8 } from "path";
31911
+ import { mkdirSync as mkdirSync14, readFileSync as readFileSync42, realpathSync as realpathSync9, writeFileSync as writeFileSync11 } from "fs";
31912
+ import { extname as extname19, join as join59, relative as relative24, resolve as resolve56, sep as sep8 } from "path";
31903
31913
  var SOURCE, TEST_FILE, GENERATED, ABSOLUTE_ROOT, realPath3 = (path) => {
31904
31914
  try {
31905
- return realpathSync8(path);
31915
+ return realpathSync9(path);
31906
31916
  } catch {
31907
31917
  return path;
31908
31918
  }
@@ -31944,7 +31954,7 @@ var SOURCE, TEST_FILE, GENERATED, ABSOLUTE_ROOT, realPath3 = (path) => {
31944
31954
  if (!state)
31945
31955
  return;
31946
31956
  try {
31947
- const cached = JSON.parse(readFileSync41(cachePath(state.cacheDir, key), "utf-8"));
31957
+ const cached = JSON.parse(readFileSync42(cachePath(state.cacheDir, key), "utf-8"));
31948
31958
  return isAnalysis(cached) ? cached : undefined;
31949
31959
  } catch {
31950
31960
  return;
@@ -31978,7 +31988,7 @@ var init_plugin = __esm(() => {
31978
31988
  SOURCE = /\.(?:[cm]?[jt]sx?)$/;
31979
31989
  TEST_FILE = /(?:\.(?:spec|test)\.[cm]?[jt]sx?$)|(?:[\\/]__tests__[\\/])/;
31980
31990
  GENERATED = /(?:^|[\\/])(?:build|generated|compiled|indexes|\.absolutejs|node_modules|dist)(?:[\\/]|$)/;
31981
- ABSOLUTE_ROOT = resolve55(import.meta.dir, "..", "..", "..");
31991
+ ABSOLUTE_ROOT = resolve56(import.meta.dir, "..", "..", "..");
31982
31992
  shared = globalThis.__absoluteHotPlugin ??= {
31983
31993
  analyses: new Map,
31984
31994
  installed: undefined
@@ -31987,11 +31997,11 @@ var init_plugin = __esm(() => {
31987
31997
  });
31988
31998
 
31989
31999
  // src/dev/hot/reload.ts
31990
- import { readFileSync as readFileSync42, realpathSync as realpathSync9 } from "fs";
32000
+ import { readFileSync as readFileSync43, realpathSync as realpathSync10 } from "fs";
31991
32001
  import { relative as relative25 } from "path";
31992
32002
  var MAX_PROPAGATION_STEPS = 500, realPath4 = (path) => {
31993
32003
  try {
31994
- return realpathSync9(path);
32004
+ return realpathSync10(path);
31995
32005
  } catch {
31996
32006
  return path;
31997
32007
  }
@@ -32065,7 +32075,7 @@ var MAX_PROPAGATION_STEPS = 500, realPath4 = (path) => {
32065
32075
  return { status: "entry" };
32066
32076
  if (!moduleRecord(path) || !isHotManaged(path))
32067
32077
  return { status: "unmanaged" };
32068
- const source = readFileSync42(path, "utf-8");
32078
+ const source = readFileSync43(path, "utf-8");
32069
32079
  if (moduleRecord(path)?.source === source)
32070
32080
  return { status: "unchanged" };
32071
32081
  const analysis = await analyzeSource(path, source);
@@ -32157,7 +32167,7 @@ var init_reload = __esm(() => {
32157
32167
  import { existsSync as existsSync45, readdirSync as readdirSync12, rmSync as rmSync4, statSync as statSync11 } from "fs";
32158
32168
  import {
32159
32169
  basename as basename20,
32160
- dirname as dirname37,
32170
+ dirname as dirname38,
32161
32171
  isAbsolute as isAbsolute10,
32162
32172
  join as join60,
32163
32173
  relative as relative26,
@@ -32526,7 +32536,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
32526
32536
  const { buildDir } = state.resolvedPaths;
32527
32537
  const destPath = resolvePath(buildDir, urlPrefix ? `${urlPrefix}/${relFromDir}` : relFromDir);
32528
32538
  const { mkdir, copyFile, readFile } = await import("fs/promises");
32529
- await mkdir(dirname37(destPath), { recursive: true });
32539
+ await mkdir(dirname38(destPath), { recursive: true });
32530
32540
  await copyFile(absSource, destPath);
32531
32541
  const bytes = await readFile(destPath);
32532
32542
  const webPath = urlPrefix ? `/${urlPrefix}/${relFromDir}` : `/${relFromDir}`;
@@ -32722,7 +32732,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
32722
32732
  const keepStemsByDir = new Map;
32723
32733
  const prefixByDir = new Map;
32724
32734
  for (const artifact of freshOutputs) {
32725
- const dir = dirname37(artifact.path);
32735
+ const dir = dirname38(artifact.path);
32726
32736
  const name = basename20(artifact.path);
32727
32737
  const [prefix] = name.split(".");
32728
32738
  if (!prefix)
@@ -34124,7 +34134,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
34124
34134
  if (!buildReference?.source) {
34125
34135
  return;
34126
34136
  }
34127
- const sourcePath = buildReference.source.startsWith("file://") ? new URL(buildReference.source).pathname : resolvePath(dirname37(buildInfo.resolvedRegistryPath), buildReference.source);
34137
+ const sourcePath = buildReference.source.startsWith("file://") ? new URL(buildReference.source).pathname : resolvePath(dirname38(buildInfo.resolvedRegistryPath), buildReference.source);
34128
34138
  islandFiles.add(resolvePath(sourcePath));
34129
34139
  }, resolveIslandSourceFiles = async (config) => {
34130
34140
  const registryPath = config.islands?.registry;
@@ -35300,10 +35310,10 @@ import {
35300
35310
  existsSync as existsSync46,
35301
35311
  mkdirSync as mkdirSync16,
35302
35312
  readdirSync as readdirSync13,
35303
- readFileSync as readFileSync43
35313
+ readFileSync as readFileSync44
35304
35314
  } from "fs";
35305
35315
  import { mkdir as mkdir14, readFile as readFile10, rename as rename5, rm as rm14, writeFile as writeFile12 } from "fs/promises";
35306
- import { basename as basename21, join as join62, resolve as resolve56 } from "path";
35316
+ import { basename as basename21, join as join62, resolve as resolve57 } from "path";
35307
35317
  var CACHE_ROOT2, CACHE_FORMAT_VERSION3 = 1, KEY_LENGTH = 32, LOCKFILES, computeVendorCacheKey = (inputs) => {
35308
35318
  const hash = createHash7("sha256");
35309
35319
  hash.update(String(CACHE_FORMAT_VERSION3));
@@ -35323,7 +35333,7 @@ var CACHE_ROOT2, CACHE_FORMAT_VERSION3 = 1, KEY_LENGTH = 32, LOCKFILES, computeV
35323
35333
  }
35324
35334
  for (const dir of inputs.vendorDirs) {
35325
35335
  hash.update("\x00v");
35326
- hash.update(basename21(resolve56(dir, "..")));
35336
+ hash.update(basename21(resolve57(dir, "..")));
35327
35337
  }
35328
35338
  return hash.digest("hex").slice(0, KEY_LENGTH);
35329
35339
  }, readLockfileHash = (projectRoot = process.cwd()) => {
@@ -35335,7 +35345,7 @@ var CACHE_ROOT2, CACHE_FORMAT_VERSION3 = 1, KEY_LENGTH = 32, LOCKFILES, computeV
35335
35345
  continue;
35336
35346
  found = true;
35337
35347
  hash.update(name);
35338
- hash.update(readFileSync43(path));
35348
+ hash.update(readFileSync44(path));
35339
35349
  }
35340
35350
  return found ? hash.digest("hex") : null;
35341
35351
  }, vendorCacheEnabled = () => process.env.ABSOLUTE_DEV_VENDOR_CACHE !== "0", copyTree = (fromDir, toDir) => {
@@ -35362,7 +35372,7 @@ var CACHE_ROOT2, CACHE_FORMAT_VERSION3 = 1, KEY_LENGTH = 32, LOCKFILES, computeV
35362
35372
  continue;
35363
35373
  copyTree(dir, join62(stagingDir, slotName(index, dir)));
35364
35374
  }
35365
- }, isVendorCachePayload = (value) => typeof value === "object" && value !== null && typeof Reflect.get(value, "depPaths") === "object", cacheDirFor = (key, projectRoot) => resolve56(projectRoot, CACHE_ROOT2, key), slotName = (index, dir) => `${index}-${basename21(resolve56(dir, ".."))}`, restoreVendorCache = async (key, vendorDirs, projectRoot = process.cwd()) => {
35375
+ }, isVendorCachePayload = (value) => typeof value === "object" && value !== null && typeof Reflect.get(value, "depPaths") === "object", cacheDirFor = (key, projectRoot) => resolve57(projectRoot, CACHE_ROOT2, key), slotName = (index, dir) => `${index}-${basename21(resolve57(dir, ".."))}`, restoreVendorCache = async (key, vendorDirs, projectRoot = process.cwd()) => {
35366
35376
  const cacheDir = cacheDirFor(key, projectRoot);
35367
35377
  const payloadPath = join62(cacheDir, "payload.json");
35368
35378
  if (!existsSync46(payloadPath))
@@ -35408,7 +35418,7 @@ var init_vendorCache = __esm(() => {
35408
35418
  // src/core/devBuild.ts
35409
35419
  import { readdir as readdir6 } from "fs/promises";
35410
35420
  import { existsSync as existsSync47, statSync as statSync12 } from "fs";
35411
- import { resolve as resolve57 } from "path";
35421
+ import { resolve as resolve58 } from "path";
35412
35422
  var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir, collectDepVendorSourceDirs = (config) => {
35413
35423
  const configuredDirs = [
35414
35424
  ...collectConfigVendorSourceDirs(config),
@@ -35432,7 +35442,7 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir, collectDepVendorSourceDirs = (
35432
35442
  return Object.keys(config).length > 0 ? config : null;
35433
35443
  }, reloadConfig = async () => {
35434
35444
  try {
35435
- const configPath = resolve57(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
35445
+ const configPath = resolve58(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
35436
35446
  const source = await Bun.file(configPath).text();
35437
35447
  return parseDirectoryConfig(source);
35438
35448
  } catch {
@@ -35547,7 +35557,7 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir, collectDepVendorSourceDirs = (
35547
35557
  });
35548
35558
  }
35549
35559
  }, handleCachedReload = async () => {
35550
- const serverMtime = statSync12(resolve57(Bun.main)).mtimeMs;
35560
+ const serverMtime = statSync12(resolve58(Bun.main)).mtimeMs;
35551
35561
  const lastMtime = globalThis.__hmrServerMtime;
35552
35562
  globalThis.__hmrServerMtime = serverMtime;
35553
35563
  const cached = globalThis.__hmrDevResult;
@@ -35588,8 +35598,8 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir, collectDepVendorSourceDirs = (
35588
35598
  return true;
35589
35599
  }, resolveAbsoluteVersion2 = async () => {
35590
35600
  const candidates = [
35591
- resolve57(import.meta.dir, "..", "..", "package.json"),
35592
- resolve57(import.meta.dir, "..", "package.json")
35601
+ resolve58(import.meta.dir, "..", "..", "package.json"),
35602
+ resolve58(import.meta.dir, "..", "package.json")
35593
35603
  ];
35594
35604
  const [candidate, ...remaining] = candidates;
35595
35605
  if (!candidate) {
@@ -35615,7 +35625,7 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir, collectDepVendorSourceDirs = (
35615
35625
  const entries = await readdir6(vendorDir).catch(() => emptyStringArray);
35616
35626
  await Promise.all(entries.filter((entry) => entry.endsWith(".js")).map(async (entry) => {
35617
35627
  const webPath = `/${framework}/vendor/${entry}`;
35618
- const bytes = await Bun.file(resolve57(vendorDir, entry)).bytes();
35628
+ const bytes = await Bun.file(resolve58(vendorDir, entry)).bytes();
35619
35629
  assetStore.set(webPath, bytes);
35620
35630
  }));
35621
35631
  }, devBuild = async (config) => {
@@ -35801,11 +35811,11 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir, collectDepVendorSourceDirs = (
35801
35811
  }
35802
35812
  stepStartedAt = performance.now();
35803
35813
  setBootPhase("build vendor bundles");
35804
- const reactVendorDir = resolve57(state.resolvedPaths.buildDir, "react", "vendor");
35805
- const angularVendorDir = resolve57(state.resolvedPaths.buildDir, "angular", "vendor");
35806
- const svelteVendorDir = resolve57(state.resolvedPaths.buildDir, "svelte", "vendor");
35807
- const vueVendorDir = resolve57(state.resolvedPaths.buildDir, "vue", "vendor");
35808
- const depVendorDir = resolve57(state.resolvedPaths.buildDir, "vendor");
35814
+ const reactVendorDir = resolve58(state.resolvedPaths.buildDir, "react", "vendor");
35815
+ const angularVendorDir = resolve58(state.resolvedPaths.buildDir, "angular", "vendor");
35816
+ const svelteVendorDir = resolve58(state.resolvedPaths.buildDir, "svelte", "vendor");
35817
+ const vueVendorDir = resolve58(state.resolvedPaths.buildDir, "vue", "vendor");
35818
+ const depVendorDir = resolve58(state.resolvedPaths.buildDir, "vendor");
35809
35819
  await Promise.resolve().then(() => init_buildDepVendor());
35810
35820
  const activeVendorDirs = [
35811
35821
  config.reactDirectory ? reactVendorDir : null,
@@ -35922,7 +35932,7 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir, collectDepVendorSourceDirs = (
35922
35932
  manifest
35923
35933
  };
35924
35934
  globalThis.__hmrDevResult = result;
35925
- globalThis.__hmrServerMtime = statSync12(resolve57(Bun.main)).mtimeMs;
35935
+ globalThis.__hmrServerMtime = statSync12(resolve58(Bun.main)).mtimeMs;
35926
35936
  return result;
35927
35937
  };
35928
35938
  var init_devBuild = __esm(() => {
@@ -36173,17 +36183,17 @@ var init_hmr = __esm(() => {
36173
36183
  });
36174
36184
 
36175
36185
  // src/plugins/devtoolsJson.ts
36176
- import { existsSync as existsSync48, mkdirSync as mkdirSync17, readFileSync as readFileSync44, writeFileSync as writeFileSync12 } from "fs";
36177
- import { dirname as dirname38, join as join63, resolve as resolve58 } from "path";
36186
+ import { existsSync as existsSync48, mkdirSync as mkdirSync17, readFileSync as readFileSync45, writeFileSync as writeFileSync12 } from "fs";
36187
+ import { dirname as dirname39, join as join63, resolve as resolve59 } from "path";
36178
36188
  import { Elysia as Elysia8 } from "elysia";
36179
36189
  var ENDPOINT = "/.well-known/appspecific/com.chrome.devtools.json", UUID_CACHE_KEY = "__absoluteDevtoolsWorkspaceUuid", getGlobalUuid = () => Reflect.get(globalThis, UUID_CACHE_KEY), setGlobalUuid = (uuid) => {
36180
36190
  Reflect.set(globalThis, UUID_CACHE_KEY, uuid);
36181
36191
  return uuid;
36182
- }, isUuidV4 = (value) => /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value), resolveDevtoolsUuidCachePath = (buildDir, uuidCachePath) => resolve58(uuidCachePath ?? join63(buildDir, ".absolute", "chrome-devtools-workspace-uuid")), readCachedUuid = (cachePath) => {
36192
+ }, isUuidV4 = (value) => /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value), resolveDevtoolsUuidCachePath = (buildDir, uuidCachePath) => resolve59(uuidCachePath ?? join63(buildDir, ".absolute", "chrome-devtools-workspace-uuid")), readCachedUuid = (cachePath) => {
36183
36193
  if (!existsSync48(cachePath))
36184
36194
  return null;
36185
36195
  try {
36186
- const value = readFileSync44(cachePath, "utf-8").trim();
36196
+ const value = readFileSync45(cachePath, "utf-8").trim();
36187
36197
  return isUuidV4(value) ? value : null;
36188
36198
  } catch {
36189
36199
  return null;
@@ -36201,11 +36211,11 @@ var ENDPOINT = "/.well-known/appspecific/com.chrome.devtools.json", UUID_CACHE_K
36201
36211
  if (cachedUuid)
36202
36212
  return setGlobalUuid(cachedUuid);
36203
36213
  const uuid = crypto.randomUUID();
36204
- mkdirSync17(dirname38(cachePath), { recursive: true });
36214
+ mkdirSync17(dirname39(cachePath), { recursive: true });
36205
36215
  writeFileSync12(cachePath, uuid, "utf-8");
36206
36216
  return setGlobalUuid(uuid);
36207
36217
  }, devtoolsJson = (buildDir, options = {}) => {
36208
- const rootPath = resolve58(options.projectRoot ?? process.cwd());
36218
+ const rootPath = resolve59(options.projectRoot ?? process.cwd());
36209
36219
  const root = options.normalizeForWindowsContainer === false ? rootPath : normalizeDevtoolsWorkspaceRoot(rootPath);
36210
36220
  const uuid = getOrCreateUuid(buildDir, options);
36211
36221
  return new Elysia8({ name: "absolute-devtools-json" }).get(ENDPOINT, () => ({
@@ -36230,7 +36240,7 @@ var init_devtoolsJson = () => {};
36230
36240
 
36231
36241
  // src/plugins/imageOptimizer.ts
36232
36242
  import { existsSync as existsSync49 } from "fs";
36233
- import { resolve as resolve59 } from "path";
36243
+ import { resolve as resolve60 } from "path";
36234
36244
  import { Elysia as Elysia9 } from "elysia";
36235
36245
  var DEFAULT_CACHE_TTL_SECONDS = 60, MS_PER_SECOND = 1000, MAX_QUALITY = 100, avifInProgress, safeResolve = (path, baseDir) => {
36236
36246
  try {
@@ -36243,7 +36253,7 @@ var DEFAULT_CACHE_TTL_SECONDS = 60, MS_PER_SECOND = 1000, MAX_QUALITY = 100, avi
36243
36253
  }
36244
36254
  }, resolveLocalImage = (url, buildDir) => {
36245
36255
  const cleanPath = url.startsWith("/") ? url.slice(1) : url;
36246
- return safeResolve(cleanPath, buildDir) ?? safeResolve(cleanPath, resolve59(process.cwd()));
36256
+ return safeResolve(cleanPath, buildDir) ?? safeResolve(cleanPath, resolve60(process.cwd()));
36247
36257
  }, parseQueryParams = (query, allowedSizes, defaultQuality) => {
36248
36258
  const url = typeof query["url"] === "string" ? query["url"] : undefined;
36249
36259
  const wParam = typeof query["w"] === "string" ? query["w"] : undefined;
@@ -36970,7 +36980,7 @@ import {
36970
36980
  rm as rm16,
36971
36981
  writeFile as writeFile14
36972
36982
  } from "fs/promises";
36973
- import { dirname as dirname39, join as join65, resolve as resolvePath3 } from "path";
36983
+ import { dirname as dirname40, join as join65, resolve as resolvePath3 } from "path";
36974
36984
  import { pathToFileURL as pathToFileURL5 } from "url";
36975
36985
  var ABSOLUTE_MOBILE_MATERIALIZED_BUNDLE_FORMAT = 1, CURRENT_BUNDLE_FILE = "current.json", BUNDLES_DIRECTORY = "bundles", ARTIFACT_FILE2 = "artifact.json", BUNDLE_ID_PATTERN, isRecord10 = (value) => typeof value === "object" && value !== null && !Array.isArray(value), errorHasCode2 = (error, code) => typeof error === "object" && error !== null && Reflect.get(error, "code") === code, bundleIdFor = (currentReleaseId, releases) => {
36976
36986
  const identity = JSON.stringify({
@@ -37003,7 +37013,7 @@ var ABSOLUTE_MOBILE_MATERIALIZED_BUNDLE_FORMAT = 1, CURRENT_BUNDLE_FILE = "curre
37003
37013
  }, writeRelease = async (root, release) => {
37004
37014
  const directory = join65(root, release.artifact.releaseId);
37005
37015
  const producerPath = join65(directory, release.artifact.producer.module);
37006
- await mkdir16(dirname39(producerPath), { recursive: true });
37016
+ await mkdir16(dirname40(producerPath), { recursive: true });
37007
37017
  await Promise.all([
37008
37018
  writeFile14(join65(directory, ARTIFACT_FILE2), `${JSON.stringify(release.artifact, null, "\t")}
37009
37019
  `),
@@ -37292,7 +37302,7 @@ var init_compatibilityDispatcher = __esm(() => {
37292
37302
  });
37293
37303
 
37294
37304
  // src/core/prerender.ts
37295
- import { mkdirSync as mkdirSync18, readFileSync as readFileSync45 } from "fs";
37305
+ import { mkdirSync as mkdirSync18, readFileSync as readFileSync46 } from "fs";
37296
37306
  import { join as join66 } from "path";
37297
37307
  var DEFAULT_FETCH_TIMEOUT_MS = 1e4, PRERENDER_BYPASS_HEADER = "X-Absolute-Prerender-Bypass", routeToFilename = (route) => route === "/" ? "index.html" : `${route.slice(1).replace(/\//g, "-")}.html`, writeTimestamp = async (htmlPath) => {
37298
37308
  const metaPath = htmlPath.replace(/\.html$/, ".meta");
@@ -37300,7 +37310,7 @@ var DEFAULT_FETCH_TIMEOUT_MS = 1e4, PRERENDER_BYPASS_HEADER = "X-Absolute-Preren
37300
37310
  }, readTimestamp = (htmlPath) => {
37301
37311
  const metaPath = htmlPath.replace(/\.html$/, ".meta");
37302
37312
  try {
37303
- const content = readFileSync45(metaPath, "utf-8");
37313
+ const content = readFileSync46(metaPath, "utf-8");
37304
37314
  return Number(content) || 0;
37305
37315
  } catch {
37306
37316
  return 0;
@@ -37336,7 +37346,7 @@ var init_prerender = () => {};
37336
37346
 
37337
37347
  // src/core/prepare.ts
37338
37348
  import { createHash as createHash11 } from "crypto";
37339
- import { existsSync as existsSync50, readdirSync as readdirSync14, readFileSync as readFileSync46 } from "fs";
37349
+ import { existsSync as existsSync50, readdirSync as readdirSync14, readFileSync as readFileSync47 } from "fs";
37340
37350
  import { basename as basename22, join as join67, relative as relative28, resolve as resolvePath4 } from "path";
37341
37351
  import { Elysia as Elysia12, NotFound } from "elysia";
37342
37352
  var MS_PER_SECOND2 = 1000, DEFAULT_PORT2 = 3000, MAX_STATIC_ROUTE_COUNT, STATIC_PLUGIN_RETRY_DELAY_MS = 50, waitForStaticPluginRetry = () => new Promise((resolve) => {
@@ -37481,7 +37491,7 @@ var MS_PER_SECOND2 = 1000, DEFAULT_PORT2 = 3000, MAX_STATIC_ROUTE_COUNT, STATIC_
37481
37491
  const filePath = join67(buildDir, path);
37482
37492
  let versioned = href;
37483
37493
  if (existsSync50(filePath)) {
37484
- const hash = createHash11("sha256").update(readFileSync46(filePath)).digest("hex").slice(0, ICON_HASH_LENGTH);
37494
+ const hash = createHash11("sha256").update(readFileSync47(filePath)).digest("hex").slice(0, ICON_HASH_LENGTH);
37485
37495
  versioned = href.includes("?") ? `${href}&v=${hash}` : `${href}?v=${hash}`;
37486
37496
  }
37487
37497
  cache.set(href, versioned);
@@ -37676,7 +37686,7 @@ var MS_PER_SECOND2 = 1000, DEFAULT_PORT2 = 3000, MAX_STATIC_ROUTE_COUNT, STATIC_
37676
37686
  return result;
37677
37687
  }
37678
37688
  stepStartedAt = performance.now();
37679
- const manifest = JSON.parse(readFileSync46(`${buildDir}/manifest.json`, "utf-8"));
37689
+ const manifest = JSON.parse(readFileSync47(`${buildDir}/manifest.json`, "utf-8"));
37680
37690
  setCurrentIslandManifest(manifest);
37681
37691
  if (config.islands?.registry) {
37682
37692
  setCurrentIslandRegistry(await loadIslandRegistry(config.islands.registry));
@@ -37686,12 +37696,12 @@ var MS_PER_SECOND2 = 1000, DEFAULT_PORT2 = 3000, MAX_STATIC_ROUTE_COUNT, STATIC_
37686
37696
  stepStartedAt = performance.now();
37687
37697
  const conventionsPath = join67(buildDir, "conventions.json");
37688
37698
  if (existsSync50(conventionsPath)) {
37689
- const conventions = JSON.parse(readFileSync46(conventionsPath, "utf-8"));
37699
+ const conventions = JSON.parse(readFileSync47(conventionsPath, "utf-8"));
37690
37700
  setConventions(conventions);
37691
37701
  }
37692
37702
  const spaRoutesPath = join67(buildDir, "spa-routes.json");
37693
37703
  if (existsSync50(spaRoutesPath)) {
37694
- setSpaRouteManifest(JSON.parse(readFileSync46(spaRoutesPath, "utf-8")));
37704
+ setSpaRouteManifest(JSON.parse(readFileSync47(spaRoutesPath, "utf-8")));
37695
37705
  }
37696
37706
  recordStep("load production conventions", stepStartedAt);
37697
37707
  stepStartedAt = performance.now();
@@ -37856,15 +37866,15 @@ import {
37856
37866
  copyFileSync as copyFileSync6,
37857
37867
  existsSync as existsSync52,
37858
37868
  readdirSync as readdirSync16,
37859
- readFileSync as readFileSync49,
37869
+ readFileSync as readFileSync50,
37860
37870
  statSync as statSync13,
37861
37871
  watch as watch2
37862
37872
  } from "fs";
37863
37873
  import { createHash as createHash12 } from "crypto";
37864
- import { dirname as dirname40, join as join70, resolve as resolve60 } from "path";
37874
+ import { dirname as dirname41, join as join70, resolve as resolve61 } from "path";
37865
37875
  var ATOMIC_RECOVERY_WINDOW_MS = 1000, RELOAD_DEBOUNCE_MS = 80, ENTRY_IMPORT_RETRY_DELAY_MS = 250, MAX_ENTRY_IMPORT_ATTEMPTS = 3, WATCH_FALLBACK_INTERVAL_MS = 250, ATOMIC_WRITE_TEMP_PATTERNS2, isAtomicWriteTemp = (filename) => filename.endsWith(".tmp") || filename.includes(".tmp.") || filename.endsWith("~") || filename.startsWith(".#") || isAbsoluteServerEntryCopyPath(filename) || ATOMIC_WRITE_TEMP_PATTERNS2.some((pattern) => pattern.test(filename)), fileHash = (path) => {
37866
37876
  try {
37867
- return createHash12("sha256").update(readFileSync49(path)).digest("hex");
37877
+ return createHash12("sha256").update(readFileSync50(path)).digest("hex");
37868
37878
  } catch {
37869
37879
  return null;
37870
37880
  }
@@ -37889,11 +37899,11 @@ var ATOMIC_RECOVERY_WINDOW_MS = 1000, RELOAD_DEBOUNCE_MS = 80, ENTRY_IMPORT_RETR
37889
37899
  return;
37890
37900
  globalThis.__absoluteEntryWatcherStarted = true;
37891
37901
  globalThis.__absoluteEntryWatcherReady = false;
37892
- const entryPath = resolve60(originalEntry);
37893
- const entryDir = dirname40(entryPath);
37902
+ const entryPath = resolve61(originalEntry);
37903
+ const entryDir = dirname41(entryPath);
37894
37904
  const entryBase = entryPath.slice(entryDir.length + 1);
37895
- const configPath = resolve60(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
37896
- const configDir = dirname40(configPath);
37905
+ const configPath = resolve61(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
37906
+ const configDir = dirname41(configPath);
37897
37907
  const configBase = configPath.slice(configDir.length + 1);
37898
37908
  const recentlyHandled = new Map;
37899
37909
  let entryReloadTimer = null;
@@ -38525,7 +38535,7 @@ import {
38525
38535
  copyFileSync as copyFileSync5,
38526
38536
  existsSync as existsSync51,
38527
38537
  mkdirSync as mkdirSync19,
38528
- readFileSync as readFileSync47,
38538
+ readFileSync as readFileSync48,
38529
38539
  rmSync as rmSync5
38530
38540
  } from "fs";
38531
38541
  import { X509Certificate as X509Certificate4 } from "crypto";
@@ -38555,7 +38565,7 @@ var normalizeDevCertificateHosts = (hosts = []) => {
38555
38565
  };
38556
38566
  var certificateIsUsable = (hosts) => {
38557
38567
  try {
38558
- const certPem = readFileSync47(CERT_PATH, "utf-8");
38568
+ const certPem = readFileSync48(CERT_PATH, "utf-8");
38559
38569
  const certificate = new X509Certificate4(certPem);
38560
38570
  if (new Date(certificate.validTo).getTime() <= Date.now())
38561
38571
  return false;
@@ -38647,8 +38657,8 @@ var loadDevCert = (hosts = []) => {
38647
38657
  return null;
38648
38658
  try {
38649
38659
  return {
38650
- cert: readFileSync47(paths.cert, "utf-8"),
38651
- key: readFileSync47(paths.key, "utf-8")
38660
+ cert: readFileSync48(paths.cert, "utf-8"),
38661
+ key: readFileSync48(paths.key, "utf-8")
38652
38662
  };
38653
38663
  } catch {
38654
38664
  return null;
@@ -38687,7 +38697,7 @@ var signalParentPortHandoff = (port) => {
38687
38697
  // src/utils/instanceRegistry.ts
38688
38698
  import {
38689
38699
  mkdirSync as mkdirSync20,
38690
- readFileSync as readFileSync48,
38700
+ readFileSync as readFileSync49,
38691
38701
  readdirSync as readdirSync15,
38692
38702
  unlinkSync as unlinkSync2,
38693
38703
  writeFileSync as writeFileSync13
@@ -38720,7 +38730,7 @@ var registerExitHandlerOnce = () => {
38720
38730
  };
38721
38731
  var readJsonFile = (path) => {
38722
38732
  try {
38723
- return JSON.parse(readFileSync48(path, "utf-8"));
38733
+ return JSON.parse(readFileSync49(path, "utf-8"));
38724
38734
  } catch {
38725
38735
  return null;
38726
38736
  }
@@ -39213,8 +39223,8 @@ var serializeSpeculationRules = (rules) => {
39213
39223
  };
39214
39224
  // src/utils/defineEnv.ts
39215
39225
  var {env: bunEnv } = globalThis.Bun;
39216
- import { existsSync as existsSync53, readFileSync as readFileSync50 } from "fs";
39217
- import { resolve as resolve61 } from "path";
39226
+ import { existsSync as existsSync53, readFileSync as readFileSync51 } from "fs";
39227
+ import { resolve as resolve62 } from "path";
39218
39228
 
39219
39229
  // node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs
39220
39230
  function IsAsyncIterator(value) {
@@ -43741,19 +43751,19 @@ ${lines.join(`
43741
43751
  };
43742
43752
  var checkEnvFileSecurity = (properties) => {
43743
43753
  const cwd = process.cwd();
43744
- const envPath = resolve61(cwd, ".env");
43754
+ const envPath = resolve62(cwd, ".env");
43745
43755
  if (!existsSync53(envPath))
43746
43756
  return;
43747
43757
  const sensitiveKeys = Object.keys(properties).filter(isSensitive);
43748
43758
  if (sensitiveKeys.length === 0)
43749
43759
  return;
43750
- const envContent = readFileSync50(envPath, "utf-8");
43760
+ const envContent = readFileSync51(envPath, "utf-8");
43751
43761
  const presentKeys = sensitiveKeys.filter((key) => envContent.includes(`${key}=`));
43752
43762
  if (presentKeys.length === 0)
43753
43763
  return;
43754
- const gitignorePath = resolve61(cwd, ".gitignore");
43764
+ const gitignorePath = resolve62(cwd, ".gitignore");
43755
43765
  if (existsSync53(gitignorePath)) {
43756
- const gitignore = readFileSync50(gitignorePath, "utf-8");
43766
+ const gitignore = readFileSync51(gitignorePath, "utf-8");
43757
43767
  if (gitignore.split(`
43758
43768
  `).some((line) => line.trim() === ".env"))
43759
43769
  return;
@@ -43786,7 +43796,7 @@ var getEnv = (key) => {
43786
43796
  };
43787
43797
  // src/utils/projectRoot.ts
43788
43798
  import { existsSync as existsSync54 } from "fs";
43789
- import { dirname as dirname41, resolve as resolve62 } from "path";
43799
+ import { dirname as dirname42, resolve as resolve63 } from "path";
43790
43800
  var CONFIG_CANDIDATES = [
43791
43801
  "absolute.config.ts",
43792
43802
  "absolute.config.js",
@@ -43795,7 +43805,7 @@ var CONFIG_CANDIDATES = [
43795
43805
  "absolute.config.mts",
43796
43806
  "absolute.config.cts"
43797
43807
  ];
43798
- var hasAbsoluteConfig = (directory) => CONFIG_CANDIDATES.some((name) => existsSync54(resolve62(directory, name)));
43808
+ var hasAbsoluteConfig = (directory) => CONFIG_CANDIDATES.some((name) => existsSync54(resolve63(directory, name)));
43799
43809
  var findProjectRoot = () => {
43800
43810
  const start = process.cwd();
43801
43811
  let packageRoot = null;
@@ -43804,10 +43814,10 @@ var findProjectRoot = () => {
43804
43814
  if (hasAbsoluteConfig(directory)) {
43805
43815
  return directory;
43806
43816
  }
43807
- if (packageRoot === null && existsSync54(resolve62(directory, "package.json"))) {
43817
+ if (packageRoot === null && existsSync54(resolve63(directory, "package.json"))) {
43808
43818
  packageRoot = directory;
43809
43819
  }
43810
- const parent = dirname41(directory);
43820
+ const parent = dirname42(directory);
43811
43821
  if (parent === directory) {
43812
43822
  return packageRoot ?? start;
43813
43823
  }
@@ -44074,5 +44084,5 @@ export {
44074
44084
  wrapPageHandlerWithStreamingSlots
44075
44085
  };
44076
44086
 
44077
- //# debugId=25C9324BCB7CBD2464756E2164756E21
44087
+ //# debugId=FCB0A64F35B3AA2D64756E2164756E21
44078
44088
  //# sourceMappingURL=index.js.map