@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/CHANGELOG.md +6 -0
- package/changelog.json +10 -0
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build/buildWorker.js +23 -14
- package/dist/build.js +356 -346
- package/dist/build.js.map +6 -5
- package/dist/index.js +338 -328
- package/dist/index.js.map +6 -5
- package/dist/src/build/inlineCssImports.d.ts +1 -0
- package/package.json +1 -1
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/
|
|
21726
|
-
import {
|
|
21727
|
-
import { dirname as dirname23,
|
|
21728
|
-
var
|
|
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
|
-
}
|
|
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
|
|
21757
|
+
return resolve36(sourceDir, filePath);
|
|
21750
21758
|
}
|
|
21751
21759
|
return filePath;
|
|
21752
21760
|
}
|
|
21753
21761
|
if (sourceDir && (filePath.startsWith("./") || filePath.startsWith("../"))) {
|
|
21754
|
-
const directTs =
|
|
21762
|
+
const directTs = resolve36(sourceDir, `${filePath}.ts`);
|
|
21755
21763
|
if (existsSync32(directTs))
|
|
21756
21764
|
return `${filePath}.js`;
|
|
21757
|
-
const indexedTs =
|
|
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:
|
|
21833
|
+
realpath: realpathSync3,
|
|
21826
21834
|
readFile: (file) => {
|
|
21827
21835
|
if (!isFile(file))
|
|
21828
21836
|
return;
|
|
21829
|
-
const content =
|
|
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(
|
|
21850
|
+
typeDepHashes[dep] = hashContent(readFileSync31(dep, "utf-8"));
|
|
21843
21851
|
}
|
|
21844
21852
|
const strippedScript = stripExports2(compiledScript.content);
|
|
21845
|
-
const sourceDir =
|
|
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(
|
|
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
|
|
22006
|
+
import { existsSync as existsSync33, readFileSync as readFileSync32 } from "fs";
|
|
21998
22007
|
import { availableParallelism, freemem } from "os";
|
|
21999
|
-
import { dirname as
|
|
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(
|
|
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 =
|
|
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
|
|
22335
|
+
dirname as dirname26,
|
|
22327
22336
|
isAbsolute as isAbsolute8,
|
|
22328
22337
|
join as join45,
|
|
22329
22338
|
relative as relative19,
|
|
22330
|
-
resolve as
|
|
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 =
|
|
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 =
|
|
22348
|
+
const fromNodeModules = resolve37(projectRoot, "node_modules/@absolutejs/absolute/dist/dev/client");
|
|
22340
22349
|
if (existsSync34(fromNodeModules))
|
|
22341
22350
|
return fromNodeModules;
|
|
22342
|
-
return
|
|
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
|
|
22384
|
-
const direct =
|
|
22392
|
+
return resolve37(sourceDir, helper);
|
|
22393
|
+
const direct = resolve37(sourceDir, `${helper}.ts`);
|
|
22385
22394
|
if (existsSync34(direct))
|
|
22386
22395
|
return direct;
|
|
22387
|
-
const indexed =
|
|
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:
|
|
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(
|
|
22477
|
-
mkdir11(
|
|
22478
|
-
...css ? [mkdir11(
|
|
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 :
|
|
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(
|
|
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(
|
|
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) =>
|
|
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 =
|
|
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 =
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
23456
|
-
import { join as join46, basename as basename15, sep as sep6, dirname as
|
|
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 =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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,
|
|
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 =
|
|
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 =
|
|
23605
|
+
const fromNodeModules = resolve38(projectRoot, "node_modules/@absolutejs/absolute/dist/dev/client");
|
|
23597
23606
|
if (existsSync35(fromNodeModules))
|
|
23598
23607
|
return fromNodeModules;
|
|
23599
|
-
return
|
|
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 =
|
|
23642
|
-
const fileCandidate =
|
|
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 =
|
|
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 =
|
|
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) =>
|
|
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) =>
|
|
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(
|
|
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,
|
|
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 =
|
|
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,
|
|
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 =
|
|
23806
|
+
const outputPath = resolve38(join46(outDir, relative20(process.cwd(), resolve38(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
|
|
23798
23807
|
return [
|
|
23799
23808
|
outputPath,
|
|
23800
|
-
buildIslandMetadataExports(
|
|
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 =
|
|
23808
|
-
return tsRootDir.endsWith("lib") ? tsRootDir :
|
|
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 =
|
|
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 =
|
|
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(
|
|
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 }) =>
|
|
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(
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
24238
|
+
const entryPath = resolve38(inputPath);
|
|
24230
24239
|
const allOutputs = [];
|
|
24231
24240
|
const visited = new Set;
|
|
24232
|
-
const baseDir =
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 (
|
|
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 =
|
|
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 =
|
|
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,
|
|
24348
|
-
sourceCode = inlineTemplateAndLowerDeferSync(inlined.source,
|
|
24349
|
-
const inputDir =
|
|
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 =
|
|
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 =
|
|
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) =>
|
|
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 =
|
|
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(
|
|
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 =
|
|
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) =>
|
|
24459
|
+
].map((file) => resolve38(file));
|
|
24451
24460
|
const resolveRawServerFile = (candidatePaths) => {
|
|
24452
24461
|
const normalizedCandidates = [
|
|
24453
|
-
...candidatePaths.map((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 =
|
|
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 =
|
|
24544
|
-
const appSourceAbs =
|
|
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(
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
25426
|
-
const tmpHarnessPath =
|
|
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
|
|
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
|
-
|
|
25497
|
-
|
|
25498
|
-
|
|
25499
|
-
|
|
25500
|
-
|
|
25501
|
-
|
|
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] ??
|
|
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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
26112
|
-
|
|
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 =
|
|
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 =
|
|
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(),
|
|
26232
|
+
const pagesRel = relative21(process.cwd(), resolve41(reactPagesPath)).replace(/\\/g, "/");
|
|
26224
26233
|
for (const file of indexFiles) {
|
|
26225
|
-
let content =
|
|
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) =>
|
|
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 =
|
|
26238
|
-
const srcRel = relative21(process.cwd(),
|
|
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) =>
|
|
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 =
|
|
26251
|
-
const srcRel = relative21(process.cwd(),
|
|
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 &&
|
|
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) =>
|
|
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(
|
|
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(
|
|
26729
|
+
return source !== null && deferPageEntries.except.has(resolve41(source));
|
|
26721
26730
|
});
|
|
26722
26731
|
};
|
|
26723
26732
|
const mapReactIndexToPage = (entry) => {
|
|
26724
|
-
if (reactIndexesPath && reactPagesPath && entry.startsWith(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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 ?
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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
|
|
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 =
|
|
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(
|
|
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 =
|
|
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
|
|
28126
|
+
import { existsSync as existsSync40, readFileSync as readFileSync36, realpathSync as realpathSync5 } from "fs";
|
|
28118
28127
|
var {Glob: Glob9 } = globalThis.Bun;
|
|
28119
|
-
import { resolve as
|
|
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 =
|
|
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
|
|
28144
|
+
return realpathSync5(Bun.resolveSync(importPath, fromDir));
|
|
28136
28145
|
} catch {
|
|
28137
28146
|
return null;
|
|
28138
28147
|
}
|
|
28139
28148
|
}
|
|
28140
|
-
const normalized =
|
|
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 =
|
|
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) =>
|
|
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 =
|
|
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 =
|
|
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 =
|
|
28307
|
+
const content = readFileSync36(filePath, "utf-8");
|
|
28299
28308
|
return extractJsDependencies(filePath, content, loader);
|
|
28300
28309
|
}
|
|
28301
28310
|
if (isSvelteOrVue) {
|
|
28302
|
-
const content =
|
|
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 =
|
|
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 =
|
|
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
|
|
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(
|
|
28393
|
-
const optional = (value) => value ? normalize(
|
|
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
|
|
28453
|
-
import { dirname as
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
28590
|
+
const componentDir = dirname30(full);
|
|
28582
28591
|
for (const ref of refs) {
|
|
28583
|
-
const refAbs = normalizePath2(
|
|
28584
|
-
const refDir = normalizePath2(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
28938
|
+
const diskPath = resolve46(buildDir, webPath.slice(1));
|
|
28930
28939
|
liveByIdentity.set(stripHash(diskPath), diskPath);
|
|
28931
28940
|
}
|
|
28932
|
-
const absBuildDir =
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
29044
|
+
import { realpathSync as realpathSync6 } from "fs";
|
|
29036
29045
|
var MODULE_FILE, DOCUMENT_FILE, realPath = (path) => {
|
|
29037
29046
|
try {
|
|
29038
|
-
return
|
|
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
|
|
29064
|
+
import { readFileSync as readFileSync38, statSync as statSync7 } from "fs";
|
|
29056
29065
|
var computeFileHash = (filePath) => {
|
|
29057
29066
|
try {
|
|
29058
|
-
const fileContent =
|
|
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
|
|
29155
|
+
import { resolve as resolve47 } from "path";
|
|
29147
29156
|
var classifyComponent = (filePath) => {
|
|
29148
|
-
const normalizedPath =
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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 :
|
|
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
|
|
29384
|
-
import { dirname as
|
|
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 =
|
|
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) =>
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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
|
|
29867
|
-
import { basename as basename19, dirname as
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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:
|
|
30330
|
-
readFile: (file) => isFile(file) ?
|
|
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 ?
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 &&
|
|
30557
|
+
const angularDir = cfg.angularDirectory && resolve51(projectRoot, cfg.angularDirectory);
|
|
30549
30558
|
if (angularDir)
|
|
30550
|
-
candidates.push(
|
|
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 ?
|
|
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(
|
|
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(
|
|
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(
|
|
30675
|
+
transformErrors.delete(resolve51(filePath));
|
|
30667
30676
|
return response;
|
|
30668
30677
|
} catch (err) {
|
|
30669
|
-
transformErrors.set(
|
|
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(
|
|
30688
|
+
files.push(resolve51(projectRoot, decodeSrcPath(match[1])));
|
|
30680
30689
|
}
|
|
30681
30690
|
return files;
|
|
30682
30691
|
}, SRC_URL_PREFIX2, invalidateModule = (filePath) => {
|
|
30683
|
-
const resolved =
|
|
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,
|
|
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
|
|
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 =
|
|
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:
|
|
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
|
|
31022
|
+
import { resolve as resolve53 } from "path";
|
|
31013
31023
|
var handleHTMLUpdate = async (htmlFilePath) => {
|
|
31014
31024
|
let htmlContent;
|
|
31015
31025
|
try {
|
|
31016
|
-
const resolvedPath =
|
|
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
|
|
31052
|
+
import { resolve as resolve54 } from "path";
|
|
31043
31053
|
var handleHTMXUpdate = async (htmxFilePath) => {
|
|
31044
31054
|
let htmlContent;
|
|
31045
31055
|
try {
|
|
31046
|
-
const resolvedPath =
|
|
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
|
|
31069
|
-
import { dirname as
|
|
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
|
|
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) &&
|
|
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,
|
|
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 =
|
|
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(
|
|
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(
|
|
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
|
|
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,
|
|
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
|
|
31902
|
-
import { extname as extname19, join as join59, relative as relative24, resolve as
|
|
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
|
|
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(
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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(
|
|
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 =
|
|
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(
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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) =>
|
|
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
|
|
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 =
|
|
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(
|
|
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
|
-
|
|
35592
|
-
|
|
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(
|
|
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 =
|
|
35805
|
-
const angularVendorDir =
|
|
35806
|
-
const svelteVendorDir =
|
|
35807
|
-
const vueVendorDir =
|
|
35808
|
-
const depVendorDir =
|
|
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(
|
|
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
|
|
36177
|
-
import { dirname as
|
|
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) =>
|
|
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 =
|
|
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(
|
|
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 =
|
|
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
|
|
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,
|
|
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
|
|
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(
|
|
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
|
|
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 =
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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(
|
|
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 =
|
|
37893
|
-
const entryDir =
|
|
37902
|
+
const entryPath = resolve61(originalEntry);
|
|
37903
|
+
const entryDir = dirname41(entryPath);
|
|
37894
37904
|
const entryBase = entryPath.slice(entryDir.length + 1);
|
|
37895
|
-
const configPath =
|
|
37896
|
-
const configDir =
|
|
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
|
|
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 =
|
|
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:
|
|
38651
|
-
key:
|
|
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
|
|
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(
|
|
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
|
|
39217
|
-
import { resolve as
|
|
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 =
|
|
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 =
|
|
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 =
|
|
43764
|
+
const gitignorePath = resolve62(cwd, ".gitignore");
|
|
43755
43765
|
if (existsSync53(gitignorePath)) {
|
|
43756
|
-
const gitignore =
|
|
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
|
|
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(
|
|
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(
|
|
43817
|
+
if (packageRoot === null && existsSync54(resolve63(directory, "package.json"))) {
|
|
43808
43818
|
packageRoot = directory;
|
|
43809
43819
|
}
|
|
43810
|
-
const parent =
|
|
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=
|
|
44087
|
+
//# debugId=FCB0A64F35B3AA2D64756E2164756E21
|
|
44078
44088
|
//# sourceMappingURL=index.js.map
|