@absolutejs/absolute 0.19.0-beta.945 → 0.19.0-beta.947
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +14 -3
- package/dist/angular/index.js.map +3 -3
- package/dist/angular/server.js +14 -3
- package/dist/angular/server.js.map +3 -3
- package/dist/build.js +289 -85
- package/dist/build.js.map +8 -7
- package/dist/cli/index.js +47 -0
- package/dist/index.js +209 -111
- package/dist/index.js.map +8 -8
- package/dist/src/dev/configResolver.d.ts +1 -0
- package/package.json +1 -1
package/dist/build.js
CHANGED
|
@@ -11884,7 +11884,7 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
11884
11884
|
if (fileName.startsWith(outDir))
|
|
11885
11885
|
return fileName.substring(outDir.length + 1);
|
|
11886
11886
|
return fileName;
|
|
11887
|
-
}, hasJsLikeExtension = (path) => /\.(js|ts|mjs|cjs)$/.test(path), splitSpecifierAndQuery = (specifier) => {
|
|
11887
|
+
}, hasJsLikeExtension = (path) => /\.(js|ts|mjs|cjs|json)$/.test(path), splitSpecifierAndQuery = (specifier) => {
|
|
11888
11888
|
const separator = specifier.indexOf("?");
|
|
11889
11889
|
if (separator === -1) {
|
|
11890
11890
|
return {
|
|
@@ -12444,11 +12444,12 @@ ${fields}
|
|
|
12444
12444
|
});
|
|
12445
12445
|
const tsconfigAliases = readTsconfigPathAliases();
|
|
12446
12446
|
const resolveSourceFile2 = (candidate) => {
|
|
12447
|
-
const candidates = candidate.match(/\.[cm]?[tj]sx
|
|
12447
|
+
const candidates = candidate.match(/\.(?:[cm]?[tj]sx?|json)$/) ? [candidate] : [
|
|
12448
12448
|
`${candidate}.ts`,
|
|
12449
12449
|
`${candidate}.tsx`,
|
|
12450
12450
|
`${candidate}.js`,
|
|
12451
12451
|
`${candidate}.jsx`,
|
|
12452
|
+
`${candidate}.json`,
|
|
12452
12453
|
join18(candidate, "index.ts"),
|
|
12453
12454
|
join18(candidate, "index.tsx"),
|
|
12454
12455
|
join18(candidate, "index.js"),
|
|
@@ -12526,6 +12527,16 @@ ${fields}
|
|
|
12526
12527
|
if (visited.has(resolved))
|
|
12527
12528
|
return;
|
|
12528
12529
|
visited.add(resolved);
|
|
12530
|
+
if (resolved.endsWith(".json") && existsSync16(resolved)) {
|
|
12531
|
+
const inputDir2 = dirname12(resolved);
|
|
12532
|
+
const relativeDir2 = inputDir2.startsWith(baseDir) ? inputDir2.substring(baseDir.length + 1) : inputDir2;
|
|
12533
|
+
const targetDir2 = join18(outDir, relativeDir2);
|
|
12534
|
+
const targetPath2 = join18(targetDir2, basename6(resolved));
|
|
12535
|
+
await fs.mkdir(targetDir2, { recursive: true });
|
|
12536
|
+
await fs.copyFile(resolved, targetPath2);
|
|
12537
|
+
allOutputs.push(targetPath2);
|
|
12538
|
+
return;
|
|
12539
|
+
}
|
|
12529
12540
|
let actualPath = resolved;
|
|
12530
12541
|
if (!actualPath.endsWith(".ts"))
|
|
12531
12542
|
actualPath += ".ts";
|
|
@@ -18952,6 +18963,7 @@ var resolveBuildPaths = (config) => {
|
|
|
18952
18963
|
emberDir: optional(config.emberDirectory),
|
|
18953
18964
|
htmlDir: optional(config.htmlDirectory),
|
|
18954
18965
|
htmxDir: optional(config.htmxDirectory),
|
|
18966
|
+
publicDir: optional(config.publicDirectory),
|
|
18955
18967
|
reactDir: optional(config.reactDirectory),
|
|
18956
18968
|
stylesDir: optional(typeof config.stylesConfig === "string" ? config.stylesConfig : config.stylesConfig?.path),
|
|
18957
18969
|
svelteDir: optional(config.svelteDirectory),
|
|
@@ -20121,6 +20133,114 @@ var init_ssrCache = __esm(() => {
|
|
|
20121
20133
|
dirtyFrameworks = new Set;
|
|
20122
20134
|
});
|
|
20123
20135
|
|
|
20136
|
+
// src/utils/loadConfig.ts
|
|
20137
|
+
var exports_loadConfig = {};
|
|
20138
|
+
__export(exports_loadConfig, {
|
|
20139
|
+
loadRawConfig: () => loadRawConfig,
|
|
20140
|
+
loadConfig: () => loadConfig,
|
|
20141
|
+
isWorkspaceConfig: () => isWorkspaceConfig,
|
|
20142
|
+
getWorkspaceServices: () => getWorkspaceServices
|
|
20143
|
+
});
|
|
20144
|
+
import { resolve as resolve33 } from "path";
|
|
20145
|
+
var RESERVED_TOP_LEVEL_KEYS, isObject2 = (value) => typeof value === "object" && value !== null, isCommandService = (service) => service.kind === "command" || Array.isArray(service.command), isServiceCandidate = (value) => isObject2(value) && (typeof value.entry === "string" || Array.isArray(value.command)), isWorkspaceConfig = (config) => {
|
|
20146
|
+
if (!isObject2(config)) {
|
|
20147
|
+
return false;
|
|
20148
|
+
}
|
|
20149
|
+
const entries = Object.entries(config);
|
|
20150
|
+
if (entries.length === 0) {
|
|
20151
|
+
return false;
|
|
20152
|
+
}
|
|
20153
|
+
if (entries.some(([key]) => RESERVED_TOP_LEVEL_KEYS.has(key))) {
|
|
20154
|
+
return false;
|
|
20155
|
+
}
|
|
20156
|
+
return entries.every(([, value]) => isServiceCandidate(value));
|
|
20157
|
+
}, isConfigInput = (value) => isObject2(value), getWorkspaceServices = (config) => {
|
|
20158
|
+
if (!isWorkspaceConfig(config)) {
|
|
20159
|
+
throw new Error("absolute.config.ts is not a multi-service config. Define top-level named services with `entry` or `command` before using `absolute workspace dev`.");
|
|
20160
|
+
}
|
|
20161
|
+
return config;
|
|
20162
|
+
}, projectServiceConfig = (config, serviceName) => {
|
|
20163
|
+
const services = getWorkspaceServices(config);
|
|
20164
|
+
const service = services[serviceName];
|
|
20165
|
+
if (!service) {
|
|
20166
|
+
throw new Error(`Config file does not define service "${serviceName}".`);
|
|
20167
|
+
}
|
|
20168
|
+
if (isCommandService(service)) {
|
|
20169
|
+
throw new Error(`Service "${serviceName}" is a command service and cannot be loaded as an AbsoluteJS app config.`);
|
|
20170
|
+
}
|
|
20171
|
+
const {
|
|
20172
|
+
command: _command,
|
|
20173
|
+
config: _config,
|
|
20174
|
+
cwd: _cwd,
|
|
20175
|
+
dependsOn: _dependsOn,
|
|
20176
|
+
env: _env,
|
|
20177
|
+
kind: _kind,
|
|
20178
|
+
port: _port,
|
|
20179
|
+
ready: _ready,
|
|
20180
|
+
visibility: _visibility,
|
|
20181
|
+
...serviceConfig
|
|
20182
|
+
} = service;
|
|
20183
|
+
return serviceConfig;
|
|
20184
|
+
}, loadConfig = async (configPath2) => {
|
|
20185
|
+
const config = await loadRawConfig(configPath2);
|
|
20186
|
+
const serviceName = process.env.ABSOLUTE_WORKSPACE_SERVICE_NAME;
|
|
20187
|
+
if (typeof serviceName === "string" && serviceName.length > 0) {
|
|
20188
|
+
return projectServiceConfig(config, serviceName);
|
|
20189
|
+
}
|
|
20190
|
+
if (isWorkspaceConfig(config)) {
|
|
20191
|
+
throw new Error("absolute.config.ts defines multiple services. Use `absolute workspace dev` or set ABSOLUTE_WORKSPACE_SERVICE_NAME before loading a specific service config.");
|
|
20192
|
+
}
|
|
20193
|
+
return config;
|
|
20194
|
+
}, loadRawConfig = async (configPath2) => {
|
|
20195
|
+
const resolved = resolve33(configPath2 ?? process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
|
|
20196
|
+
const mod = await import(resolved);
|
|
20197
|
+
const config = mod.default ?? mod.config;
|
|
20198
|
+
if (!config) {
|
|
20199
|
+
throw new Error(`Config file "${resolved}" does not export a valid configuration.
|
|
20200
|
+
Expected: export default defineConfig({ ... })`);
|
|
20201
|
+
}
|
|
20202
|
+
if (!isConfigInput(config)) {
|
|
20203
|
+
throw new Error(`Config file "${resolved}" must export an object configuration.`);
|
|
20204
|
+
}
|
|
20205
|
+
return config;
|
|
20206
|
+
};
|
|
20207
|
+
var init_loadConfig = __esm(() => {
|
|
20208
|
+
RESERVED_TOP_LEVEL_KEYS = new Set([
|
|
20209
|
+
"assetsDirectory",
|
|
20210
|
+
"astroDirectory",
|
|
20211
|
+
"buildDirectory",
|
|
20212
|
+
"bunBuild",
|
|
20213
|
+
"command",
|
|
20214
|
+
"config",
|
|
20215
|
+
"cwd",
|
|
20216
|
+
"dependsOn",
|
|
20217
|
+
"dev",
|
|
20218
|
+
"emberDirectory",
|
|
20219
|
+
"entry",
|
|
20220
|
+
"env",
|
|
20221
|
+
"htmlDirectory",
|
|
20222
|
+
"htmxDirectory",
|
|
20223
|
+
"images",
|
|
20224
|
+
"incrementalFiles",
|
|
20225
|
+
"islands",
|
|
20226
|
+
"kind",
|
|
20227
|
+
"mode",
|
|
20228
|
+
"options",
|
|
20229
|
+
"port",
|
|
20230
|
+
"postcss",
|
|
20231
|
+
"publicDirectory",
|
|
20232
|
+
"reactDirectory",
|
|
20233
|
+
"sitemap",
|
|
20234
|
+
"static",
|
|
20235
|
+
"stylesConfig",
|
|
20236
|
+
"svelteDirectory",
|
|
20237
|
+
"tailwind",
|
|
20238
|
+
"ready",
|
|
20239
|
+
"visibility",
|
|
20240
|
+
"vueDirectory"
|
|
20241
|
+
]);
|
|
20242
|
+
});
|
|
20243
|
+
|
|
20124
20244
|
// src/dev/moduleServer.ts
|
|
20125
20245
|
var exports_moduleServer = {};
|
|
20126
20246
|
__export(exports_moduleServer, {
|
|
@@ -20133,7 +20253,7 @@ __export(exports_moduleServer, {
|
|
|
20133
20253
|
SRC_URL_PREFIX: () => SRC_URL_PREFIX
|
|
20134
20254
|
});
|
|
20135
20255
|
import { existsSync as existsSync25, readFileSync as readFileSync19, statSync as statSync4 } from "fs";
|
|
20136
|
-
import { basename as basename10, dirname as dirname19, extname as extname10, join as join29, resolve as
|
|
20256
|
+
import { basename as basename10, dirname as dirname19, extname as extname10, join as join29, resolve as resolve34, relative as relative14 } from "path";
|
|
20137
20257
|
var SRC_PREFIX = "/@src/", jsTranspiler2, tsTranspiler2, tsxTranspiler, TRANSPILABLE, ALL_EXPORTS_RE, STRING_CONTENTS_RE, preserveTypeExports = (originalSource, transpiled, valueExports) => {
|
|
20138
20258
|
const codeOnly = originalSource.replace(STRING_CONTENTS_RE, '""');
|
|
20139
20259
|
const allExports = [];
|
|
@@ -20153,7 +20273,7 @@ var SRC_PREFIX = "/@src/", jsTranspiler2, tsTranspiler2, tsxTranspiler, TRANSPIL
|
|
|
20153
20273
|
${stubs}
|
|
20154
20274
|
`;
|
|
20155
20275
|
}, resolveRelativeExtension = (srcPath, projectRoot, extensions) => {
|
|
20156
|
-
const found = extensions.find((ext) => existsSync25(
|
|
20276
|
+
const found = extensions.find((ext) => existsSync25(resolve34(projectRoot, srcPath + ext)));
|
|
20157
20277
|
return found ? srcPath + found : srcPath;
|
|
20158
20278
|
}, IMPORT_EXTENSIONS, SIDE_EFFECT_EXTENSIONS, MODULE_EXTENSIONS, RESOLVED_MODULE_EXTENSIONS, REACT_EXTENSIONS, escapeRegex3 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), buildImportRewriter = (vendorPaths) => {
|
|
20159
20279
|
const entries = Object.entries(vendorPaths).sort(([a], [b2]) => b2.length - a.length);
|
|
@@ -20168,7 +20288,7 @@ ${stubs}
|
|
|
20168
20288
|
return invalidationVersion > 0 ? `${mtime}.${invalidationVersion}` : `${mtime}`;
|
|
20169
20289
|
}, srcUrl = (relPath, projectRoot) => {
|
|
20170
20290
|
const base = `${SRC_PREFIX}${relPath.replace(/\\/g, "/")}`;
|
|
20171
|
-
const absPath =
|
|
20291
|
+
const absPath = resolve34(projectRoot, relPath);
|
|
20172
20292
|
const cached = mtimeCache.get(absPath);
|
|
20173
20293
|
if (cached !== undefined)
|
|
20174
20294
|
return `${base}?v=${buildVersion(cached, absPath)}`;
|
|
@@ -20180,12 +20300,12 @@ ${stubs}
|
|
|
20180
20300
|
return base;
|
|
20181
20301
|
}
|
|
20182
20302
|
}, resolveRelativeImport = (relPath, fileDir, projectRoot, extensions) => {
|
|
20183
|
-
const absPath =
|
|
20303
|
+
const absPath = resolve34(fileDir, relPath);
|
|
20184
20304
|
const rel = relative14(projectRoot, absPath);
|
|
20185
20305
|
const extension = extname10(rel);
|
|
20186
20306
|
let srcPath = RESOLVED_MODULE_EXTENSIONS.has(extension) ? rel : resolveRelativeExtension(rel, projectRoot, extensions);
|
|
20187
20307
|
if (extname10(srcPath) === ".svelte") {
|
|
20188
|
-
srcPath = relative14(projectRoot, resolveSvelteModulePath(
|
|
20308
|
+
srcPath = relative14(projectRoot, resolveSvelteModulePath(resolve34(projectRoot, srcPath)));
|
|
20189
20309
|
}
|
|
20190
20310
|
return srcUrl(srcPath, projectRoot);
|
|
20191
20311
|
}, NODE_BUILTIN_RE, resolveAbsoluteSpecifier = (specifier, projectRoot) => {
|
|
@@ -20204,13 +20324,13 @@ ${stubs}
|
|
|
20204
20324
|
const packageName = isScoped ? `${parts[0]}/${parts[1]}` : parts[0];
|
|
20205
20325
|
const subpath = isScoped ? parts.slice(2).join("/") : parts.slice(1).join("/");
|
|
20206
20326
|
if (!subpath) {
|
|
20207
|
-
const pkgDir =
|
|
20327
|
+
const pkgDir = resolve34(projectRoot, "node_modules", packageName ?? "");
|
|
20208
20328
|
const pkgJsonPath = join29(pkgDir, "package.json");
|
|
20209
20329
|
if (existsSync25(pkgJsonPath)) {
|
|
20210
20330
|
const pkg = JSON.parse(readFileSync19(pkgJsonPath, "utf-8"));
|
|
20211
20331
|
const esmEntry = typeof pkg.module === "string" && pkg.module || typeof pkg.browser === "string" && pkg.browser;
|
|
20212
20332
|
if (esmEntry) {
|
|
20213
|
-
const resolved =
|
|
20333
|
+
const resolved = resolve34(pkgDir, esmEntry);
|
|
20214
20334
|
if (existsSync25(resolved))
|
|
20215
20335
|
return relative14(projectRoot, resolved);
|
|
20216
20336
|
}
|
|
@@ -20257,12 +20377,12 @@ ${stubs}
|
|
|
20257
20377
|
result = result.replace(/((?:from|import)\s*["'])(\/[^"']+\.(tsx?|jsx?|ts))(["'])/g, rewriteAbsoluteToSrc);
|
|
20258
20378
|
result = result.replace(/(import\s*\(\s*["'])(\/[^"']+\.(tsx?|jsx?|ts))(["']\s*\))/g, rewriteAbsoluteToSrc);
|
|
20259
20379
|
result = result.replace(/new\s+URL\(\s*["'](\.\.?\/[^"']+)["']\s*,\s*import\.meta\.url\s*\)/g, (_match, relPath) => {
|
|
20260
|
-
const absPath =
|
|
20380
|
+
const absPath = resolve34(fileDir, relPath);
|
|
20261
20381
|
const rel = relative14(projectRoot, absPath);
|
|
20262
20382
|
return `new URL('${srcUrl(rel, projectRoot)}', import.meta.url)`;
|
|
20263
20383
|
});
|
|
20264
20384
|
result = result.replace(/import\.meta\.resolve\(\s*["'](\.\.?\/[^"']+)["']\s*\)/g, (_match, relPath) => {
|
|
20265
|
-
const absPath =
|
|
20385
|
+
const absPath = resolve34(fileDir, relPath);
|
|
20266
20386
|
const rel = relative14(projectRoot, absPath);
|
|
20267
20387
|
return `'${srcUrl(rel, projectRoot)}'`;
|
|
20268
20388
|
});
|
|
@@ -20575,7 +20695,7 @@ ${code}`;
|
|
|
20575
20695
|
code = injectVueHmr(code, filePath, projectRoot, vueDir);
|
|
20576
20696
|
return rewriteImports(code, filePath, projectRoot, rewriter);
|
|
20577
20697
|
}, injectVueHmr = (code, filePath, projectRoot, vueDir) => {
|
|
20578
|
-
const hmrBase = vueDir ?
|
|
20698
|
+
const hmrBase = vueDir ? resolve34(vueDir) : projectRoot;
|
|
20579
20699
|
const hmrId = relative14(hmrBase, filePath).replace(/\\/g, "/").replace(/\.vue$/, "");
|
|
20580
20700
|
let result = code.replace(/export\s+default\s+/, "var __hmr_comp__ = ");
|
|
20581
20701
|
result += [
|
|
@@ -20739,7 +20859,7 @@ export default {};
|
|
|
20739
20859
|
const escaped = virtualCss.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
|
|
20740
20860
|
return jsResponse(`var s=document.createElement('style');s.textContent=\`${escaped}\`;s.dataset.svelteHmr=${JSON.stringify(cssCheckPath)};var p=document.querySelector('style[data-svelte-hmr="${cssCheckPath}"]');if(p)p.remove();document.head.appendChild(s);`);
|
|
20741
20861
|
}, resolveSourcePath = (relPath, projectRoot) => {
|
|
20742
|
-
const filePath =
|
|
20862
|
+
const filePath = resolve34(projectRoot, relPath);
|
|
20743
20863
|
const ext = extname10(filePath);
|
|
20744
20864
|
if (ext === ".svelte")
|
|
20745
20865
|
return { ext, filePath: resolveSvelteModulePath(filePath) };
|
|
@@ -20755,6 +20875,54 @@ export default {};
|
|
|
20755
20875
|
}, transformAndCache = async (filePath, ext, projectRoot, rewriter, vueDir, stylePreprocessors) => {
|
|
20756
20876
|
if (ext === ".css")
|
|
20757
20877
|
return jsResponse(handleCssRequest(filePath));
|
|
20878
|
+
if (ext === ".json") {
|
|
20879
|
+
try {
|
|
20880
|
+
const { readFile: readFile6, stat: stat4 } = await import("fs/promises");
|
|
20881
|
+
const fileExists = async (p2) => {
|
|
20882
|
+
try {
|
|
20883
|
+
await stat4(p2);
|
|
20884
|
+
return true;
|
|
20885
|
+
} catch {
|
|
20886
|
+
return false;
|
|
20887
|
+
}
|
|
20888
|
+
};
|
|
20889
|
+
let sourcePath = filePath;
|
|
20890
|
+
if (!await fileExists(sourcePath)) {
|
|
20891
|
+
const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
|
|
20892
|
+
const generatedAngularRoot = getFrameworkGeneratedDir2("angular").replace(/\\/g, "/");
|
|
20893
|
+
const normalized = filePath.replace(/\\/g, "/");
|
|
20894
|
+
if (normalized.startsWith(generatedAngularRoot + "/") || normalized.startsWith(generatedAngularRoot)) {
|
|
20895
|
+
const tail = normalized.slice(generatedAngularRoot.length + 1);
|
|
20896
|
+
const absoluteCandidate = "/" + tail.replace(/^\/+/, "");
|
|
20897
|
+
const candidates = [
|
|
20898
|
+
absoluteCandidate,
|
|
20899
|
+
resolve34(projectRoot, tail)
|
|
20900
|
+
];
|
|
20901
|
+
try {
|
|
20902
|
+
const { loadConfig: loadConfig2 } = await Promise.resolve().then(() => (init_loadConfig(), exports_loadConfig));
|
|
20903
|
+
const cfg = await loadConfig2();
|
|
20904
|
+
const angularDir = cfg.angularDirectory && resolve34(projectRoot, cfg.angularDirectory);
|
|
20905
|
+
if (angularDir)
|
|
20906
|
+
candidates.push(resolve34(angularDir, tail));
|
|
20907
|
+
} catch {}
|
|
20908
|
+
for (const candidate of candidates) {
|
|
20909
|
+
if (await fileExists(candidate)) {
|
|
20910
|
+
sourcePath = candidate;
|
|
20911
|
+
break;
|
|
20912
|
+
}
|
|
20913
|
+
}
|
|
20914
|
+
}
|
|
20915
|
+
}
|
|
20916
|
+
const text = await readFile6(sourcePath, "utf-8");
|
|
20917
|
+
JSON.parse(text);
|
|
20918
|
+
return jsResponse(`export default ${text};`);
|
|
20919
|
+
} catch (err) {
|
|
20920
|
+
return new Response(`console.error('[ModuleServer] JSON load error in ${filePath}:', ${JSON.stringify(String(err))});`, {
|
|
20921
|
+
headers: { "Content-Type": "application/javascript" },
|
|
20922
|
+
status: 500
|
|
20923
|
+
});
|
|
20924
|
+
}
|
|
20925
|
+
}
|
|
20758
20926
|
const isSvelte = ext === ".svelte" || filePath.endsWith(".svelte.ts") || filePath.endsWith(".svelte.js");
|
|
20759
20927
|
const cached = getTransformed(filePath);
|
|
20760
20928
|
if (cached)
|
|
@@ -20766,7 +20934,7 @@ export default {};
|
|
|
20766
20934
|
if (!TRANSPILABLE.has(ext))
|
|
20767
20935
|
return;
|
|
20768
20936
|
const stat3 = statSync4(filePath);
|
|
20769
|
-
const resolvedVueDir = vueDir ?
|
|
20937
|
+
const resolvedVueDir = vueDir ? resolve34(vueDir) : undefined;
|
|
20770
20938
|
let content = REACT_EXTENSIONS.has(ext) ? transformReactFile(filePath, projectRoot, rewriter) : transformPlainFile(filePath, projectRoot, rewriter, resolvedVueDir);
|
|
20771
20939
|
const isAngularGeneratedJs = ext === ".js" && filePath.replace(/\\/g, "/").includes("/.absolutejs/generated/angular/");
|
|
20772
20940
|
if (isAngularGeneratedJs) {
|
|
@@ -20825,7 +20993,7 @@ export default {};
|
|
|
20825
20993
|
const relPath = pathname.slice(SRC_PREFIX.length);
|
|
20826
20994
|
if (relPath === "bun:wrap" || relPath.startsWith("bun:wrap?"))
|
|
20827
20995
|
return handleBunWrapRequest();
|
|
20828
|
-
const virtualCssResponse = handleVirtualSvelteCss(
|
|
20996
|
+
const virtualCssResponse = handleVirtualSvelteCss(resolve34(projectRoot, relPath));
|
|
20829
20997
|
if (virtualCssResponse)
|
|
20830
20998
|
return virtualCssResponse;
|
|
20831
20999
|
const { filePath, ext } = resolveSourcePath(relPath, projectRoot);
|
|
@@ -20841,11 +21009,11 @@ export default {};
|
|
|
20841
21009
|
SRC_IMPORT_RE.lastIndex = 0;
|
|
20842
21010
|
while ((match = SRC_IMPORT_RE.exec(content)) !== null) {
|
|
20843
21011
|
if (match[1])
|
|
20844
|
-
files.push(
|
|
21012
|
+
files.push(resolve34(projectRoot, match[1]));
|
|
20845
21013
|
}
|
|
20846
21014
|
return files;
|
|
20847
21015
|
}, invalidateModule = (filePath) => {
|
|
20848
|
-
const resolved =
|
|
21016
|
+
const resolved = resolve34(filePath);
|
|
20849
21017
|
invalidate(filePath);
|
|
20850
21018
|
if (resolved !== filePath)
|
|
20851
21019
|
invalidate(resolved);
|
|
@@ -20990,7 +21158,7 @@ __export(exports_hmrCompiler, {
|
|
|
20990
21158
|
getApplyMetadataModule: () => getApplyMetadataModule,
|
|
20991
21159
|
encodeHmrComponentId: () => encodeHmrComponentId
|
|
20992
21160
|
});
|
|
20993
|
-
import { dirname as dirname20, relative as relative15, resolve as
|
|
21161
|
+
import { dirname as dirname20, relative as relative15, resolve as resolve35 } from "path";
|
|
20994
21162
|
import { performance as performance2 } from "perf_hooks";
|
|
20995
21163
|
var getApplyMetadataModule = async (encodedId) => {
|
|
20996
21164
|
const decoded = decodeURIComponent(encodedId);
|
|
@@ -20999,7 +21167,7 @@ var getApplyMetadataModule = async (encodedId) => {
|
|
|
20999
21167
|
return null;
|
|
21000
21168
|
const filePathRel = decoded.slice(0, at2);
|
|
21001
21169
|
const className = decoded.slice(at2 + 1);
|
|
21002
|
-
const componentFilePath =
|
|
21170
|
+
const componentFilePath = resolve35(process.cwd(), filePathRel);
|
|
21003
21171
|
const projectRelPath = relative15(process.cwd(), componentFilePath).replace(/\\/g, "/");
|
|
21004
21172
|
const cacheKey2 = encodeURIComponent(`${projectRelPath}@${className}`);
|
|
21005
21173
|
const { takePendingModule: takePendingModule2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
|
|
@@ -21161,11 +21329,11 @@ var exports_simpleHTMLHMR = {};
|
|
|
21161
21329
|
__export(exports_simpleHTMLHMR, {
|
|
21162
21330
|
handleHTMLUpdate: () => handleHTMLUpdate
|
|
21163
21331
|
});
|
|
21164
|
-
import { resolve as
|
|
21332
|
+
import { resolve as resolve36 } from "path";
|
|
21165
21333
|
var handleHTMLUpdate = async (htmlFilePath) => {
|
|
21166
21334
|
let htmlContent;
|
|
21167
21335
|
try {
|
|
21168
|
-
const resolvedPath =
|
|
21336
|
+
const resolvedPath = resolve36(htmlFilePath);
|
|
21169
21337
|
const file4 = Bun.file(resolvedPath);
|
|
21170
21338
|
if (!await file4.exists()) {
|
|
21171
21339
|
return null;
|
|
@@ -21191,11 +21359,11 @@ var exports_simpleHTMXHMR = {};
|
|
|
21191
21359
|
__export(exports_simpleHTMXHMR, {
|
|
21192
21360
|
handleHTMXUpdate: () => handleHTMXUpdate
|
|
21193
21361
|
});
|
|
21194
|
-
import { resolve as
|
|
21362
|
+
import { resolve as resolve37 } from "path";
|
|
21195
21363
|
var handleHTMXUpdate = async (htmxFilePath) => {
|
|
21196
21364
|
let htmlContent;
|
|
21197
21365
|
try {
|
|
21198
|
-
const resolvedPath =
|
|
21366
|
+
const resolvedPath = resolve37(htmxFilePath);
|
|
21199
21367
|
const file4 = Bun.file(resolvedPath);
|
|
21200
21368
|
if (!await file4.exists()) {
|
|
21201
21369
|
return null;
|
|
@@ -21218,7 +21386,7 @@ var init_simpleHTMXHMR = () => {};
|
|
|
21218
21386
|
|
|
21219
21387
|
// src/dev/rebuildTrigger.ts
|
|
21220
21388
|
import { existsSync as existsSync26 } from "fs";
|
|
21221
|
-
import { basename as basename11, dirname as dirname21, relative as relative16, resolve as
|
|
21389
|
+
import { basename as basename11, dirname as dirname21, relative as relative16, resolve as resolve38, sep as sep4 } from "path";
|
|
21222
21390
|
var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequentially = (items, action) => items.reduce((chain, item) => chain.then(() => action(item)), Promise.resolve()), getStyleTransformConfig = (config) => createStyleTransformConfig(config.stylePreprocessors, config.postcss), recompileTailwindForFastPath = async (state, config, files) => {
|
|
21223
21391
|
if (!config.tailwind)
|
|
21224
21392
|
return;
|
|
@@ -21229,7 +21397,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21229
21397
|
if (!cssChanged)
|
|
21230
21398
|
return;
|
|
21231
21399
|
try {
|
|
21232
|
-
const outputPath =
|
|
21400
|
+
const outputPath = resolve38(state.resolvedPaths.buildDir, config.tailwind.output);
|
|
21233
21401
|
const bytes = await Bun.file(outputPath).bytes();
|
|
21234
21402
|
const webPath = `/${config.tailwind.output.replace(/^\/+/, "")}`;
|
|
21235
21403
|
state.assetStore.set(webPath, bytes);
|
|
@@ -21316,7 +21484,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21316
21484
|
state.fileHashes.delete(filePathInSet);
|
|
21317
21485
|
try {
|
|
21318
21486
|
const affectedFiles = getAffectedFiles(state.dependencyGraph, filePathInSet);
|
|
21319
|
-
const deletedPathResolved =
|
|
21487
|
+
const deletedPathResolved = resolve38(filePathInSet);
|
|
21320
21488
|
affectedFiles.forEach((affectedFile) => {
|
|
21321
21489
|
if (isValidDeletedAffectedFile(affectedFile, deletedPathResolved, processedFiles)) {
|
|
21322
21490
|
validFiles.push(affectedFile);
|
|
@@ -21360,7 +21528,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21360
21528
|
if (storedHash !== undefined && storedHash === fileHash) {
|
|
21361
21529
|
return;
|
|
21362
21530
|
}
|
|
21363
|
-
const normalizedFilePath =
|
|
21531
|
+
const normalizedFilePath = resolve38(filePathInSet);
|
|
21364
21532
|
if (!processedFiles.has(normalizedFilePath)) {
|
|
21365
21533
|
validFiles.push(normalizedFilePath);
|
|
21366
21534
|
processedFiles.add(normalizedFilePath);
|
|
@@ -21492,8 +21660,44 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21492
21660
|
if (!hasFileChanged(filePath, currentHash, state.fileHashes)) {
|
|
21493
21661
|
return;
|
|
21494
21662
|
}
|
|
21663
|
+
const publicDir = state.resolvedPaths.publicDir;
|
|
21664
|
+
const assetsDir = state.resolvedPaths.assetsDir;
|
|
21665
|
+
const handleStaticMirror = async (sourceDir, urlPrefix) => {
|
|
21666
|
+
const absSource = resolve38(filePath);
|
|
21667
|
+
const normalizedSource = absSource.replace(/\\/g, "/");
|
|
21668
|
+
const normalizedDir = sourceDir.replace(/\\/g, "/");
|
|
21669
|
+
if (!normalizedSource.startsWith(normalizedDir + "/"))
|
|
21670
|
+
return false;
|
|
21671
|
+
try {
|
|
21672
|
+
const relFromDir = normalizedSource.slice(normalizedDir.length + 1);
|
|
21673
|
+
const buildDir = state.resolvedPaths.buildDir;
|
|
21674
|
+
const destPath = resolve38(buildDir, urlPrefix ? `${urlPrefix}/${relFromDir}` : relFromDir);
|
|
21675
|
+
const { mkdir: mkdir7, copyFile, readFile: readFile6 } = await import("fs/promises");
|
|
21676
|
+
const { dirname: dirname22 } = await import("path");
|
|
21677
|
+
await mkdir7(dirname22(destPath), { recursive: true });
|
|
21678
|
+
await copyFile(absSource, destPath);
|
|
21679
|
+
const bytes = await readFile6(destPath);
|
|
21680
|
+
const webPath = urlPrefix ? `/${urlPrefix}/${relFromDir}` : `/${relFromDir}`;
|
|
21681
|
+
state.assetStore.set(webPath, new Uint8Array(bytes));
|
|
21682
|
+
state.fileHashes.set(absSource, currentHash);
|
|
21683
|
+
logHmrUpdate(relative16(process.cwd(), filePath));
|
|
21684
|
+
broadcastToClients(state, {
|
|
21685
|
+
data: {
|
|
21686
|
+
framework: urlPrefix || "public",
|
|
21687
|
+
manifest: state.manifest
|
|
21688
|
+
},
|
|
21689
|
+
message: `${urlPrefix || "Public"} asset updated`,
|
|
21690
|
+
type: "style-update"
|
|
21691
|
+
});
|
|
21692
|
+
} catch {}
|
|
21693
|
+
return true;
|
|
21694
|
+
};
|
|
21695
|
+
if (publicDir && await handleStaticMirror(publicDir, ""))
|
|
21696
|
+
return;
|
|
21697
|
+
if (assetsDir && await handleStaticMirror(assetsDir, "assets"))
|
|
21698
|
+
return;
|
|
21495
21699
|
if (framework === "unknown") {
|
|
21496
|
-
invalidate(
|
|
21700
|
+
invalidate(resolve38(filePath));
|
|
21497
21701
|
const relPath = relative16(process.cwd(), filePath);
|
|
21498
21702
|
logHmrUpdate(relPath);
|
|
21499
21703
|
const angularDir = state.resolvedPaths.angularDir;
|
|
@@ -21501,10 +21705,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21501
21705
|
if (angularDir && state.dependencyGraph) {
|
|
21502
21706
|
try {
|
|
21503
21707
|
const { addFileToGraph: addFileToGraph2 } = await Promise.resolve().then(() => (init_dependencyGraph(), exports_dependencyGraph));
|
|
21504
|
-
addFileToGraph2(state.dependencyGraph,
|
|
21505
|
-
const affected = getAffectedFiles(state.dependencyGraph,
|
|
21708
|
+
addFileToGraph2(state.dependencyGraph, resolve38(filePath));
|
|
21709
|
+
const affected = getAffectedFiles(state.dependencyGraph, resolve38(filePath));
|
|
21506
21710
|
for (const dependent of affected) {
|
|
21507
|
-
if (dependent ===
|
|
21711
|
+
if (dependent === resolve38(filePath))
|
|
21508
21712
|
continue;
|
|
21509
21713
|
const dependentFramework = detectFramework(dependent, state.resolvedPaths);
|
|
21510
21714
|
if (dependentFramework !== "angular")
|
|
@@ -21527,7 +21731,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21527
21731
|
const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
|
|
21528
21732
|
const { invalidateModule: invalidateModuleServer } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
21529
21733
|
const generatedAngularRoot = getFrameworkGeneratedDir2("angular");
|
|
21530
|
-
const sourceAbs =
|
|
21734
|
+
const sourceAbs = resolve38(filePath).replace(/\\/g, "/");
|
|
21531
21735
|
const generatedTwin = `${generatedAngularRoot.replace(/\\/g, "/")}${sourceAbs.replace(/\.ts$/, ".js")}`;
|
|
21532
21736
|
invalidateModuleServer(generatedTwin);
|
|
21533
21737
|
} catch {}
|
|
@@ -21561,7 +21765,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21561
21765
|
const userEditedFiles = new Set;
|
|
21562
21766
|
state.fileChangeQueue.forEach((filePaths) => {
|
|
21563
21767
|
for (const filePath2 of filePaths) {
|
|
21564
|
-
userEditedFiles.add(
|
|
21768
|
+
userEditedFiles.add(resolve38(filePath2));
|
|
21565
21769
|
}
|
|
21566
21770
|
});
|
|
21567
21771
|
state.lastUserEditedFiles = userEditedFiles;
|
|
@@ -21590,7 +21794,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21590
21794
|
}
|
|
21591
21795
|
if (!graph)
|
|
21592
21796
|
return componentFile;
|
|
21593
|
-
const dependents = graph.dependents.get(
|
|
21797
|
+
const dependents = graph.dependents.get(resolve38(componentFile));
|
|
21594
21798
|
if (!dependents)
|
|
21595
21799
|
return componentFile;
|
|
21596
21800
|
for (const dep of dependents) {
|
|
@@ -21599,7 +21803,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21599
21803
|
}
|
|
21600
21804
|
return componentFile;
|
|
21601
21805
|
}, resolveAngularPageEntries = (state, angularFiles, angularPagesPath) => {
|
|
21602
|
-
const pageEntries = angularFiles.filter((file4) => file4.endsWith(".ts") &&
|
|
21806
|
+
const pageEntries = angularFiles.filter((file4) => file4.endsWith(".ts") && resolve38(file4).startsWith(angularPagesPath));
|
|
21603
21807
|
if (pageEntries.length > 0 || !state.dependencyGraph) {
|
|
21604
21808
|
return pageEntries;
|
|
21605
21809
|
}
|
|
@@ -21608,7 +21812,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21608
21812
|
const lookupFile = resolveComponentLookupFile(componentFile, state.dependencyGraph);
|
|
21609
21813
|
const affected = getAffectedFiles(state.dependencyGraph, lookupFile);
|
|
21610
21814
|
affected.forEach((file4) => {
|
|
21611
|
-
if (file4.endsWith(".ts") &&
|
|
21815
|
+
if (file4.endsWith(".ts") && resolve38(file4).startsWith(angularPagesPath)) {
|
|
21612
21816
|
resolvedPages.add(file4);
|
|
21613
21817
|
}
|
|
21614
21818
|
});
|
|
@@ -21730,8 +21934,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21730
21934
|
if (detected !== "unknown")
|
|
21731
21935
|
continue;
|
|
21732
21936
|
try {
|
|
21733
|
-
const affected = getAffectedFiles(state.dependencyGraph,
|
|
21734
|
-
const hasAngularConsumer = affected.some((dep) => dep !==
|
|
21937
|
+
const affected = getAffectedFiles(state.dependencyGraph, resolve38(editedFile));
|
|
21938
|
+
const hasAngularConsumer = affected.some((dep) => dep !== resolve38(editedFile) && detectFramework(dep, state.resolvedPaths) === "angular");
|
|
21735
21939
|
if (hasAngularConsumer) {
|
|
21736
21940
|
return {
|
|
21737
21941
|
kind: "rebootstrap",
|
|
@@ -21776,9 +21980,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21776
21980
|
tier: 1
|
|
21777
21981
|
};
|
|
21778
21982
|
}
|
|
21779
|
-
if (owners.length === 0 && editedFile.endsWith(".ts") && !editedFile.endsWith(".d.ts")) {
|
|
21983
|
+
if (owners.length === 0 && (editedFile.endsWith(".ts") || editedFile.endsWith(".json")) && !editedFile.endsWith(".d.ts")) {
|
|
21780
21984
|
const normalized = editedFile.replace(/\\/g, "/");
|
|
21781
|
-
const angularDirAbs =
|
|
21985
|
+
const angularDirAbs = resolve38(angularDir).replace(/\\/g, "/");
|
|
21782
21986
|
if (normalized.startsWith(angularDirAbs + "/")) {
|
|
21783
21987
|
return {
|
|
21784
21988
|
kind: "rebootstrap",
|
|
@@ -21922,16 +22126,16 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21922
22126
|
};
|
|
21923
22127
|
const fire = () => {
|
|
21924
22128
|
ctx.debounceTimer = null;
|
|
21925
|
-
const
|
|
22129
|
+
const resolve39 = ctx.debouncedResolve;
|
|
21926
22130
|
ctx.debouncedResolve = null;
|
|
21927
22131
|
ctx.debouncedPromise = null;
|
|
21928
22132
|
if (ctx.inFlight) {
|
|
21929
22133
|
ctx.pending = true;
|
|
21930
|
-
ctx.inFlight.finally(() =>
|
|
22134
|
+
ctx.inFlight.finally(() => resolve39?.());
|
|
21931
22135
|
return;
|
|
21932
22136
|
}
|
|
21933
22137
|
ctx.inFlight = drive();
|
|
21934
|
-
ctx.inFlight.finally(() =>
|
|
22138
|
+
ctx.inFlight.finally(() => resolve39?.());
|
|
21935
22139
|
};
|
|
21936
22140
|
return ({ immediate = false } = {}) => {
|
|
21937
22141
|
if (!ctx.debouncedPromise) {
|
|
@@ -21958,9 +22162,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21958
22162
|
const diskRefreshPromise = (async () => {
|
|
21959
22163
|
if (!angularDir || editedFiles.size === 0)
|
|
21960
22164
|
return;
|
|
21961
|
-
const angularDirAbs =
|
|
22165
|
+
const angularDirAbs = resolve38(angularDir);
|
|
21962
22166
|
const filesUnderAngular = Array.from(editedFiles).filter((file4) => {
|
|
21963
|
-
const abs =
|
|
22167
|
+
const abs = resolve38(file4);
|
|
21964
22168
|
return abs === angularDirAbs || abs.startsWith(angularDirAbs + sep4);
|
|
21965
22169
|
});
|
|
21966
22170
|
if (filesUnderAngular.length === 0)
|
|
@@ -21982,7 +22186,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21982
22186
|
if (!ext)
|
|
21983
22187
|
continue;
|
|
21984
22188
|
if (ext === ".ts" || ext === ".tsx") {
|
|
21985
|
-
tsFilesToRefresh.add(
|
|
22189
|
+
tsFilesToRefresh.add(resolve38(file4));
|
|
21986
22190
|
continue;
|
|
21987
22191
|
}
|
|
21988
22192
|
const owners = resolveOwningComponents2({
|
|
@@ -21990,7 +22194,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21990
22194
|
userAngularRoot: angularDirAbs
|
|
21991
22195
|
});
|
|
21992
22196
|
for (const owner of owners) {
|
|
21993
|
-
tsFilesToRefresh.add(
|
|
22197
|
+
tsFilesToRefresh.add(resolve38(owner.componentFilePath));
|
|
21994
22198
|
}
|
|
21995
22199
|
}
|
|
21996
22200
|
if (tsFilesToRefresh.size === 0)
|
|
@@ -22002,7 +22206,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22002
22206
|
const { invalidateModule: invalidateModule2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
22003
22207
|
for (const tsFile of tsFilesToRefresh) {
|
|
22004
22208
|
const rel = relative16(angularDirAbs, tsFile).replace(/\\/g, "/").replace(/\.[tj]sx?$/, ".js");
|
|
22005
|
-
const compiledFile =
|
|
22209
|
+
const compiledFile = resolve38(compiledRoot, rel);
|
|
22006
22210
|
invalidateModule2(compiledFile);
|
|
22007
22211
|
}
|
|
22008
22212
|
} catch {}
|
|
@@ -22053,7 +22257,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22053
22257
|
serverPaths.forEach((serverPath, idx) => {
|
|
22054
22258
|
const fileBase = basename11(serverPath, ".js");
|
|
22055
22259
|
const ssrPath = ssrPaths[idx] ?? serverPath;
|
|
22056
|
-
state.manifest[toPascal(fileBase)] =
|
|
22260
|
+
state.manifest[toPascal(fileBase)] = resolve38(ssrPath);
|
|
22057
22261
|
});
|
|
22058
22262
|
if (clientPaths.length > 0) {
|
|
22059
22263
|
await bundleAngularClient(state, clientPaths, state.resolvedPaths.buildDir, angularDir);
|
|
@@ -22062,9 +22266,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22062
22266
|
const angularDir = config.angularDirectory ?? "";
|
|
22063
22267
|
const angularFiles = filesToRebuild.filter((file4) => detectFramework(file4, state.resolvedPaths) === "angular");
|
|
22064
22268
|
for (const file4 of angularFiles) {
|
|
22065
|
-
state.fileHashes.set(
|
|
22269
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22066
22270
|
}
|
|
22067
|
-
const angularPagesPath =
|
|
22271
|
+
const angularPagesPath = resolve38(angularDir, "pages");
|
|
22068
22272
|
const pageEntries = resolveAngularPageEntries(state, angularFiles, angularPagesPath);
|
|
22069
22273
|
const tierStart = performance.now();
|
|
22070
22274
|
const verdict = await decideAngularTier(state, angularDir);
|
|
@@ -22103,11 +22307,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22103
22307
|
if (isComponentFile2)
|
|
22104
22308
|
return primaryFile;
|
|
22105
22309
|
const { findNearestComponent: findNearestComponent2 } = await Promise.resolve().then(() => (init_transformCache(), exports_transformCache));
|
|
22106
|
-
const nearest = findNearestComponent2(
|
|
22310
|
+
const nearest = findNearestComponent2(resolve38(primaryFile));
|
|
22107
22311
|
return nearest ?? primaryFile;
|
|
22108
22312
|
}, handleReactModuleServerPath = async (state, reactFiles, startTime, onRebuildComplete) => {
|
|
22109
22313
|
for (const file4 of reactFiles) {
|
|
22110
|
-
state.fileHashes.set(
|
|
22314
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22111
22315
|
}
|
|
22112
22316
|
markSsrCacheDirty("react");
|
|
22113
22317
|
const primaryFile = reactFiles.find((file4) => !file4.replace(/\\/g, "/").includes("/pages/")) ?? reactFiles[0];
|
|
@@ -22189,7 +22393,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22189
22393
|
});
|
|
22190
22394
|
}, handleSvelteModuleServerPath = async (state, svelteFiles, startTime, onRebuildComplete) => {
|
|
22191
22395
|
for (const file4 of svelteFiles) {
|
|
22192
|
-
state.fileHashes.set(
|
|
22396
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22193
22397
|
}
|
|
22194
22398
|
markSsrCacheDirty("svelte");
|
|
22195
22399
|
const serverDuration = Date.now() - startTime;
|
|
@@ -22214,8 +22418,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22214
22418
|
const serverEntries = [...svelteServerPaths];
|
|
22215
22419
|
const clientEntries = [...svelteIndexPaths, ...svelteClientPaths];
|
|
22216
22420
|
const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
|
|
22217
|
-
const serverRoot =
|
|
22218
|
-
const serverOutDir =
|
|
22421
|
+
const serverRoot = resolve38(getFrameworkGeneratedDir2("svelte"), "server");
|
|
22422
|
+
const serverOutDir = resolve38(buildDir, basename11(svelteDir));
|
|
22219
22423
|
const [serverResult, clientResult] = await Promise.all([
|
|
22220
22424
|
serverEntries.length > 0 ? bunBuild9({
|
|
22221
22425
|
entrypoints: serverEntries,
|
|
@@ -22312,7 +22516,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22312
22516
|
});
|
|
22313
22517
|
}, handleVueModuleServerPath = async (state, vueFiles, nonVueFiles, startTime, onRebuildComplete) => {
|
|
22314
22518
|
for (const file4 of [...vueFiles, ...nonVueFiles]) {
|
|
22315
|
-
state.fileHashes.set(
|
|
22519
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22316
22520
|
}
|
|
22317
22521
|
markSsrCacheDirty("vue");
|
|
22318
22522
|
await invalidateNonVueModules(nonVueFiles);
|
|
@@ -22340,7 +22544,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22340
22544
|
recursive: true,
|
|
22341
22545
|
withFileTypes: true
|
|
22342
22546
|
});
|
|
22343
|
-
return entries.filter((entry) => entry.isFile() && EMBER_PAGE_EXTENSIONS.some((ext) => entry.name.endsWith(ext))).map((entry) =>
|
|
22547
|
+
return entries.filter((entry) => entry.isFile() && EMBER_PAGE_EXTENSIONS.some((ext) => entry.name.endsWith(ext))).map((entry) => resolve38(emberPagesPath, entry.name));
|
|
22344
22548
|
} catch {
|
|
22345
22549
|
return [];
|
|
22346
22550
|
}
|
|
@@ -22352,10 +22556,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22352
22556
|
return state.manifest;
|
|
22353
22557
|
}
|
|
22354
22558
|
for (const file4 of emberFiles) {
|
|
22355
|
-
state.fileHashes.set(
|
|
22559
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22356
22560
|
}
|
|
22357
|
-
const emberPagesPath =
|
|
22358
|
-
const directPageEntries = emberFiles.filter((file4) =>
|
|
22561
|
+
const emberPagesPath = resolve38(emberDir, "pages");
|
|
22562
|
+
const directPageEntries = emberFiles.filter((file4) => resolve38(file4).startsWith(emberPagesPath));
|
|
22359
22563
|
const allPageEntries = directPageEntries.length > 0 ? directPageEntries : await collectAllEmberPages(emberPagesPath);
|
|
22360
22564
|
if (allPageEntries.length === 0) {
|
|
22361
22565
|
onRebuildComplete({ hmrState: state, manifest: state.manifest });
|
|
@@ -22365,7 +22569,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22365
22569
|
const { serverPaths } = await compileEmber2(allPageEntries, emberDir, process.cwd(), true);
|
|
22366
22570
|
for (const serverPath of serverPaths) {
|
|
22367
22571
|
const fileBase = basename11(serverPath, ".js");
|
|
22368
|
-
state.manifest[toPascal(fileBase)] =
|
|
22572
|
+
state.manifest[toPascal(fileBase)] = resolve38(serverPath);
|
|
22369
22573
|
}
|
|
22370
22574
|
const { invalidateEmberSsrCache: invalidateEmberSsrCache2 } = await Promise.resolve().then(() => (init_ember(), exports_ember));
|
|
22371
22575
|
invalidateEmberSsrCache2();
|
|
@@ -22457,8 +22661,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22457
22661
|
if (!buildReference?.source) {
|
|
22458
22662
|
return;
|
|
22459
22663
|
}
|
|
22460
|
-
const sourcePath = buildReference.source.startsWith("file://") ? new URL(buildReference.source).pathname :
|
|
22461
|
-
islandFiles.add(
|
|
22664
|
+
const sourcePath = buildReference.source.startsWith("file://") ? new URL(buildReference.source).pathname : resolve38(dirname21(buildInfo.resolvedRegistryPath), buildReference.source);
|
|
22665
|
+
islandFiles.add(resolve38(sourcePath));
|
|
22462
22666
|
}, resolveIslandSourceFiles = async (config) => {
|
|
22463
22667
|
const registryPath = config.islands?.registry;
|
|
22464
22668
|
if (!registryPath) {
|
|
@@ -22466,7 +22670,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22466
22670
|
}
|
|
22467
22671
|
const buildInfo = await loadIslandRegistryBuildInfo(registryPath);
|
|
22468
22672
|
const islandFiles = new Set([
|
|
22469
|
-
|
|
22673
|
+
resolve38(buildInfo.resolvedRegistryPath)
|
|
22470
22674
|
]);
|
|
22471
22675
|
for (const definition of buildInfo.definitions) {
|
|
22472
22676
|
resolveIslandDefinitionSource(definition, buildInfo, islandFiles);
|
|
@@ -22477,7 +22681,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22477
22681
|
if (islandFiles.size === 0) {
|
|
22478
22682
|
return false;
|
|
22479
22683
|
}
|
|
22480
|
-
return filesToRebuild.some((file4) => islandFiles.has(
|
|
22684
|
+
return filesToRebuild.some((file4) => islandFiles.has(resolve38(file4)));
|
|
22481
22685
|
}, handleIslandSourceReload = async (state, config, filesToRebuild, manifest) => {
|
|
22482
22686
|
const shouldReload = await didStaticPagesNeedIslandRefresh(config, filesToRebuild);
|
|
22483
22687
|
if (!shouldReload) {
|
|
@@ -22512,10 +22716,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22512
22716
|
}, computeOutputPagesDir = (state, config, framework) => {
|
|
22513
22717
|
const isSingle = !config.reactDirectory && !config.svelteDirectory && !config.vueDirectory && (framework === "html" ? !config.htmxDirectory : !config.htmlDirectory);
|
|
22514
22718
|
if (isSingle) {
|
|
22515
|
-
return
|
|
22719
|
+
return resolve38(state.resolvedPaths.buildDir, "pages");
|
|
22516
22720
|
}
|
|
22517
22721
|
const dirName = framework === "html" ? basename11(config.htmlDirectory ?? "html") : basename11(config.htmxDirectory ?? "htmx");
|
|
22518
|
-
return
|
|
22722
|
+
return resolve38(state.resolvedPaths.buildDir, dirName, "pages");
|
|
22519
22723
|
}, processHtmlPageUpdate = async (state, pageFile, builtHtmlPagePath, manifest, duration) => {
|
|
22520
22724
|
try {
|
|
22521
22725
|
const { handleHTMLUpdate: handleHTMLUpdate2 } = await Promise.resolve().then(() => (init_simpleHTMLHMR(), exports_simpleHTMLHMR));
|
|
@@ -22554,7 +22758,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22554
22758
|
const pageFilesToUpdate = shouldRefreshAllPages ? await scanEntryPoints(outputHtmlPages, "*.html") : htmlPageFiles;
|
|
22555
22759
|
await runSequentially(pageFilesToUpdate, async (pageFile) => {
|
|
22556
22760
|
const htmlPageName = basename11(pageFile);
|
|
22557
|
-
const builtHtmlPagePath =
|
|
22761
|
+
const builtHtmlPagePath = resolve38(outputHtmlPages, htmlPageName);
|
|
22558
22762
|
await processHtmlPageUpdate(state, pageFile, builtHtmlPagePath, manifest, duration);
|
|
22559
22763
|
});
|
|
22560
22764
|
}, handleVueCssOnlyUpdate = (state, vueCssFiles, manifest, duration) => {
|
|
@@ -22619,7 +22823,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22619
22823
|
const cssKey = `${pascalName}CSS`;
|
|
22620
22824
|
const cssUrl = manifest[cssKey] || null;
|
|
22621
22825
|
const { vueHmrMetadata: vueHmrMetadata2 } = await Promise.resolve().then(() => (init_compileVue(), exports_compileVue));
|
|
22622
|
-
const hmrMeta = vueHmrMetadata2.get(
|
|
22826
|
+
const hmrMeta = vueHmrMetadata2.get(resolve38(vuePagePath));
|
|
22623
22827
|
const changeType = hmrMeta?.changeType ?? "full";
|
|
22624
22828
|
if (changeType === "style-only") {
|
|
22625
22829
|
broadcastVueStyleOnly(state, vuePagePath, baseName, cssUrl, hmrId, manifest, duration);
|
|
@@ -22804,7 +23008,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22804
23008
|
const pageFilesToUpdate = shouldRefreshAllPages ? await scanEntryPoints(outputHtmxPages, "*.html") : htmxPageFiles;
|
|
22805
23009
|
await runSequentially(pageFilesToUpdate, async (htmxPageFile) => {
|
|
22806
23010
|
const htmxPageName = basename11(htmxPageFile);
|
|
22807
|
-
const builtHtmxPagePath =
|
|
23011
|
+
const builtHtmxPagePath = resolve38(outputHtmxPages, htmxPageName);
|
|
22808
23012
|
await processHtmxPageUpdate(state, htmxPageFile, builtHtmxPagePath, manifest, duration);
|
|
22809
23013
|
});
|
|
22810
23014
|
}, collectUpdatedModulePaths = (allModuleUpdates) => {
|
|
@@ -22913,7 +23117,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22913
23117
|
html = html.slice(0, bodyClose.index) + hmrScript + html.slice(bodyClose.index);
|
|
22914
23118
|
writeFs(destPath, html);
|
|
22915
23119
|
}, processMarkupFileFastPath = async (state, sourceFile, outputDir, framework, startTime, updateAssetPaths2, handleUpdate, readFs, writeFs) => {
|
|
22916
|
-
const destPath =
|
|
23120
|
+
const destPath = resolve38(outputDir, basename11(sourceFile));
|
|
22917
23121
|
const hmrScript = extractHmrScript(destPath, readFs);
|
|
22918
23122
|
const source = await Bun.file(sourceFile).text();
|
|
22919
23123
|
await Bun.write(destPath, source);
|
|
@@ -23481,7 +23685,7 @@ __export(exports_devBuild, {
|
|
|
23481
23685
|
});
|
|
23482
23686
|
import { readdir as readdir5 } from "fs/promises";
|
|
23483
23687
|
import { statSync as statSync5 } from "fs";
|
|
23484
|
-
import { resolve as
|
|
23688
|
+
import { resolve as resolve39 } from "path";
|
|
23485
23689
|
var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
23486
23690
|
const configuredDirs = [
|
|
23487
23691
|
config.reactDirectory,
|
|
@@ -23504,7 +23708,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23504
23708
|
return Object.keys(config).length > 0 ? config : null;
|
|
23505
23709
|
}, reloadConfig = async () => {
|
|
23506
23710
|
try {
|
|
23507
|
-
const configPath2 =
|
|
23711
|
+
const configPath2 = resolve39(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
|
|
23508
23712
|
const source = await Bun.file(configPath2).text();
|
|
23509
23713
|
return parseDirectoryConfig(source);
|
|
23510
23714
|
} catch {
|
|
@@ -23589,7 +23793,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23589
23793
|
state.fileChangeQueue.clear();
|
|
23590
23794
|
}
|
|
23591
23795
|
}, handleCachedReload = async () => {
|
|
23592
|
-
const serverMtime = statSync5(
|
|
23796
|
+
const serverMtime = statSync5(resolve39(Bun.main)).mtimeMs;
|
|
23593
23797
|
const lastMtime = globalThis.__hmrServerMtime;
|
|
23594
23798
|
globalThis.__hmrServerMtime = serverMtime;
|
|
23595
23799
|
const cached = globalThis.__hmrDevResult;
|
|
@@ -23626,8 +23830,8 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23626
23830
|
return true;
|
|
23627
23831
|
}, resolveAbsoluteVersion2 = async () => {
|
|
23628
23832
|
const candidates = [
|
|
23629
|
-
|
|
23630
|
-
|
|
23833
|
+
resolve39(import.meta.dir, "..", "..", "package.json"),
|
|
23834
|
+
resolve39(import.meta.dir, "..", "package.json")
|
|
23631
23835
|
];
|
|
23632
23836
|
const [candidate, ...remaining] = candidates;
|
|
23633
23837
|
if (!candidate) {
|
|
@@ -23653,7 +23857,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23653
23857
|
const entries = await readdir5(vendorDir).catch(() => emptyStringArray);
|
|
23654
23858
|
await Promise.all(entries.filter((entry) => entry.endsWith(".js")).map(async (entry) => {
|
|
23655
23859
|
const webPath = `/${framework}/vendor/${entry}`;
|
|
23656
|
-
const bytes = await Bun.file(
|
|
23860
|
+
const bytes = await Bun.file(resolve39(vendorDir, entry)).bytes();
|
|
23657
23861
|
assetStore.set(webPath, bytes);
|
|
23658
23862
|
}));
|
|
23659
23863
|
}, devBuild = async (config) => {
|
|
@@ -23721,11 +23925,11 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23721
23925
|
cleanStaleAssets(state.assetStore, manifest, state.resolvedPaths.buildDir);
|
|
23722
23926
|
recordStep("populate asset store", stepStartedAt);
|
|
23723
23927
|
stepStartedAt = performance.now();
|
|
23724
|
-
const reactVendorDir =
|
|
23725
|
-
const angularVendorDir =
|
|
23726
|
-
const svelteVendorDir =
|
|
23727
|
-
const vueVendorDir =
|
|
23728
|
-
const depVendorDir =
|
|
23928
|
+
const reactVendorDir = resolve39(state.resolvedPaths.buildDir, "react", "vendor");
|
|
23929
|
+
const angularVendorDir = resolve39(state.resolvedPaths.buildDir, "angular", "vendor");
|
|
23930
|
+
const svelteVendorDir = resolve39(state.resolvedPaths.buildDir, "svelte", "vendor");
|
|
23931
|
+
const vueVendorDir = resolve39(state.resolvedPaths.buildDir, "vue", "vendor");
|
|
23932
|
+
const depVendorDir = resolve39(state.resolvedPaths.buildDir, "vendor");
|
|
23729
23933
|
const { buildDepVendor: buildDepVendor2 } = await Promise.resolve().then(() => (init_buildDepVendor(), exports_buildDepVendor));
|
|
23730
23934
|
const [, angularSpecs, , , , , depPaths] = await Promise.all([
|
|
23731
23935
|
config.reactDirectory ? buildReactVendor(state.resolvedPaths.buildDir) : Promise.resolve(undefined),
|
|
@@ -23803,7 +24007,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23803
24007
|
manifest
|
|
23804
24008
|
};
|
|
23805
24009
|
globalThis.__hmrDevResult = result;
|
|
23806
|
-
globalThis.__hmrServerMtime = statSync5(
|
|
24010
|
+
globalThis.__hmrServerMtime = statSync5(resolve39(Bun.main)).mtimeMs;
|
|
23807
24011
|
return result;
|
|
23808
24012
|
};
|
|
23809
24013
|
var init_devBuild = __esm(() => {
|
|
@@ -23840,5 +24044,5 @@ export {
|
|
|
23840
24044
|
build
|
|
23841
24045
|
};
|
|
23842
24046
|
|
|
23843
|
-
//# debugId=
|
|
24047
|
+
//# debugId=23D5B57CAFDE1D0564756E2164756E21
|
|
23844
24048
|
//# sourceMappingURL=build.js.map
|