@absolutejs/absolute 0.19.0-beta.946 → 0.19.0-beta.948
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 +304 -104
- package/dist/build.js.map +8 -7
- package/dist/index.js +224 -130
- package/dist/index.js.map +8 -8
- 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";
|
|
@@ -14829,7 +14840,18 @@ var fail = (reason, detail, location) => ({
|
|
|
14829
14840
|
if (!initializerShapeIsStructural(init))
|
|
14830
14841
|
continue;
|
|
14831
14842
|
const name = member.name.getText();
|
|
14832
|
-
|
|
14843
|
+
let bodyText;
|
|
14844
|
+
try {
|
|
14845
|
+
const printer = ts6.createPrinter({
|
|
14846
|
+
newLine: ts6.NewLineKind.LineFeed,
|
|
14847
|
+
omitTrailingSemicolon: true,
|
|
14848
|
+
removeComments: true
|
|
14849
|
+
});
|
|
14850
|
+
bodyText = printer.printNode(ts6.EmitHint.Unspecified, init, cls.getSourceFile());
|
|
14851
|
+
} catch {
|
|
14852
|
+
bodyText = init.getText();
|
|
14853
|
+
}
|
|
14854
|
+
const bodyHash = djb2Hash(bodyText);
|
|
14833
14855
|
entries.push(`${name}:${bodyHash}`);
|
|
14834
14856
|
}
|
|
14835
14857
|
return entries.sort();
|
|
@@ -15038,15 +15060,21 @@ var fail = (reason, detail, location) => ({
|
|
|
15038
15060
|
const providerImportSig = extractProviderImportSig(decoratorMeta.importsExpr, sourceFile, componentDir);
|
|
15039
15061
|
const topLevelImports = extractTopLevelImports(sourceFile);
|
|
15040
15062
|
const propertyFieldNames = extractPropertyFieldNames(cls);
|
|
15041
|
-
const
|
|
15042
|
-
|
|
15043
|
-
|
|
15044
|
-
|
|
15045
|
-
|
|
15046
|
-
const
|
|
15047
|
-
const
|
|
15048
|
-
const
|
|
15049
|
-
const
|
|
15063
|
+
const printer = ts6.createPrinter({
|
|
15064
|
+
newLine: ts6.NewLineKind.LineFeed,
|
|
15065
|
+
omitTrailingSemicolon: true,
|
|
15066
|
+
removeComments: true
|
|
15067
|
+
});
|
|
15068
|
+
const canonicalText = (node) => printer.printNode(ts6.EmitHint.Unspecified, node, sourceFile);
|
|
15069
|
+
const importsArraySig = decoratorMeta.importsExpr ? djb2Hash(canonicalText(decoratorMeta.importsExpr)) : "";
|
|
15070
|
+
const hostDirectivesSig = decoratorMeta.hostDirectivesExpr ? djb2Hash(canonicalText(decoratorMeta.hostDirectivesExpr)) : "";
|
|
15071
|
+
const animationsArraySig = decoratorMeta.animationsExpr ? djb2Hash(canonicalText(decoratorMeta.animationsExpr)) : "";
|
|
15072
|
+
const providersArraySig = decoratorMeta.providersExpr ? djb2Hash(canonicalText(decoratorMeta.providersExpr)) : "";
|
|
15073
|
+
const viewProvidersArraySig = decoratorMeta.viewProvidersExpr ? djb2Hash(canonicalText(decoratorMeta.viewProvidersExpr)) : "";
|
|
15074
|
+
const decoratorInputsArraySig = decoratorMeta.inputsArrayExpr ? djb2Hash(canonicalText(decoratorMeta.inputsArrayExpr)) : "";
|
|
15075
|
+
const decoratorOutputsArraySig = decoratorMeta.outputsArrayExpr ? djb2Hash(canonicalText(decoratorMeta.outputsArrayExpr)) : "";
|
|
15076
|
+
const hostBindingsSig = decoratorMeta.hostExpr ? djb2Hash(canonicalText(decoratorMeta.hostExpr)) : "";
|
|
15077
|
+
const schemasSig = decoratorMeta.schemasExpr ? djb2Hash(canonicalText(decoratorMeta.schemasExpr)) : "";
|
|
15050
15078
|
const PAGE_EXPORT_NAMES = new Set(["providers", "routes"]);
|
|
15051
15079
|
const pageExportEntries = [];
|
|
15052
15080
|
for (const stmt of sourceFile.statements) {
|
|
@@ -15062,7 +15090,7 @@ var fail = (reason, detail, location) => ({
|
|
|
15062
15090
|
continue;
|
|
15063
15091
|
if (!decl.initializer)
|
|
15064
15092
|
continue;
|
|
15065
|
-
pageExportEntries.push(`${decl.name.text}=${djb2Hash(decl.initializer
|
|
15093
|
+
pageExportEntries.push(`${decl.name.text}=${djb2Hash(canonicalText(decl.initializer))}`);
|
|
15066
15094
|
}
|
|
15067
15095
|
}
|
|
15068
15096
|
pageExportEntries.sort();
|
|
@@ -20122,6 +20150,114 @@ var init_ssrCache = __esm(() => {
|
|
|
20122
20150
|
dirtyFrameworks = new Set;
|
|
20123
20151
|
});
|
|
20124
20152
|
|
|
20153
|
+
// src/utils/loadConfig.ts
|
|
20154
|
+
var exports_loadConfig = {};
|
|
20155
|
+
__export(exports_loadConfig, {
|
|
20156
|
+
loadRawConfig: () => loadRawConfig,
|
|
20157
|
+
loadConfig: () => loadConfig,
|
|
20158
|
+
isWorkspaceConfig: () => isWorkspaceConfig,
|
|
20159
|
+
getWorkspaceServices: () => getWorkspaceServices
|
|
20160
|
+
});
|
|
20161
|
+
import { resolve as resolve33 } from "path";
|
|
20162
|
+
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) => {
|
|
20163
|
+
if (!isObject2(config)) {
|
|
20164
|
+
return false;
|
|
20165
|
+
}
|
|
20166
|
+
const entries = Object.entries(config);
|
|
20167
|
+
if (entries.length === 0) {
|
|
20168
|
+
return false;
|
|
20169
|
+
}
|
|
20170
|
+
if (entries.some(([key]) => RESERVED_TOP_LEVEL_KEYS.has(key))) {
|
|
20171
|
+
return false;
|
|
20172
|
+
}
|
|
20173
|
+
return entries.every(([, value]) => isServiceCandidate(value));
|
|
20174
|
+
}, isConfigInput = (value) => isObject2(value), getWorkspaceServices = (config) => {
|
|
20175
|
+
if (!isWorkspaceConfig(config)) {
|
|
20176
|
+
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`.");
|
|
20177
|
+
}
|
|
20178
|
+
return config;
|
|
20179
|
+
}, projectServiceConfig = (config, serviceName) => {
|
|
20180
|
+
const services = getWorkspaceServices(config);
|
|
20181
|
+
const service = services[serviceName];
|
|
20182
|
+
if (!service) {
|
|
20183
|
+
throw new Error(`Config file does not define service "${serviceName}".`);
|
|
20184
|
+
}
|
|
20185
|
+
if (isCommandService(service)) {
|
|
20186
|
+
throw new Error(`Service "${serviceName}" is a command service and cannot be loaded as an AbsoluteJS app config.`);
|
|
20187
|
+
}
|
|
20188
|
+
const {
|
|
20189
|
+
command: _command,
|
|
20190
|
+
config: _config,
|
|
20191
|
+
cwd: _cwd,
|
|
20192
|
+
dependsOn: _dependsOn,
|
|
20193
|
+
env: _env,
|
|
20194
|
+
kind: _kind,
|
|
20195
|
+
port: _port,
|
|
20196
|
+
ready: _ready,
|
|
20197
|
+
visibility: _visibility,
|
|
20198
|
+
...serviceConfig
|
|
20199
|
+
} = service;
|
|
20200
|
+
return serviceConfig;
|
|
20201
|
+
}, loadConfig = async (configPath2) => {
|
|
20202
|
+
const config = await loadRawConfig(configPath2);
|
|
20203
|
+
const serviceName = process.env.ABSOLUTE_WORKSPACE_SERVICE_NAME;
|
|
20204
|
+
if (typeof serviceName === "string" && serviceName.length > 0) {
|
|
20205
|
+
return projectServiceConfig(config, serviceName);
|
|
20206
|
+
}
|
|
20207
|
+
if (isWorkspaceConfig(config)) {
|
|
20208
|
+
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.");
|
|
20209
|
+
}
|
|
20210
|
+
return config;
|
|
20211
|
+
}, loadRawConfig = async (configPath2) => {
|
|
20212
|
+
const resolved = resolve33(configPath2 ?? process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
|
|
20213
|
+
const mod = await import(resolved);
|
|
20214
|
+
const config = mod.default ?? mod.config;
|
|
20215
|
+
if (!config) {
|
|
20216
|
+
throw new Error(`Config file "${resolved}" does not export a valid configuration.
|
|
20217
|
+
Expected: export default defineConfig({ ... })`);
|
|
20218
|
+
}
|
|
20219
|
+
if (!isConfigInput(config)) {
|
|
20220
|
+
throw new Error(`Config file "${resolved}" must export an object configuration.`);
|
|
20221
|
+
}
|
|
20222
|
+
return config;
|
|
20223
|
+
};
|
|
20224
|
+
var init_loadConfig = __esm(() => {
|
|
20225
|
+
RESERVED_TOP_LEVEL_KEYS = new Set([
|
|
20226
|
+
"assetsDirectory",
|
|
20227
|
+
"astroDirectory",
|
|
20228
|
+
"buildDirectory",
|
|
20229
|
+
"bunBuild",
|
|
20230
|
+
"command",
|
|
20231
|
+
"config",
|
|
20232
|
+
"cwd",
|
|
20233
|
+
"dependsOn",
|
|
20234
|
+
"dev",
|
|
20235
|
+
"emberDirectory",
|
|
20236
|
+
"entry",
|
|
20237
|
+
"env",
|
|
20238
|
+
"htmlDirectory",
|
|
20239
|
+
"htmxDirectory",
|
|
20240
|
+
"images",
|
|
20241
|
+
"incrementalFiles",
|
|
20242
|
+
"islands",
|
|
20243
|
+
"kind",
|
|
20244
|
+
"mode",
|
|
20245
|
+
"options",
|
|
20246
|
+
"port",
|
|
20247
|
+
"postcss",
|
|
20248
|
+
"publicDirectory",
|
|
20249
|
+
"reactDirectory",
|
|
20250
|
+
"sitemap",
|
|
20251
|
+
"static",
|
|
20252
|
+
"stylesConfig",
|
|
20253
|
+
"svelteDirectory",
|
|
20254
|
+
"tailwind",
|
|
20255
|
+
"ready",
|
|
20256
|
+
"visibility",
|
|
20257
|
+
"vueDirectory"
|
|
20258
|
+
]);
|
|
20259
|
+
});
|
|
20260
|
+
|
|
20125
20261
|
// src/dev/moduleServer.ts
|
|
20126
20262
|
var exports_moduleServer = {};
|
|
20127
20263
|
__export(exports_moduleServer, {
|
|
@@ -20134,7 +20270,7 @@ __export(exports_moduleServer, {
|
|
|
20134
20270
|
SRC_URL_PREFIX: () => SRC_URL_PREFIX
|
|
20135
20271
|
});
|
|
20136
20272
|
import { existsSync as existsSync25, readFileSync as readFileSync19, statSync as statSync4 } from "fs";
|
|
20137
|
-
import { basename as basename10, dirname as dirname19, extname as extname10, join as join29, resolve as
|
|
20273
|
+
import { basename as basename10, dirname as dirname19, extname as extname10, join as join29, resolve as resolve34, relative as relative14 } from "path";
|
|
20138
20274
|
var SRC_PREFIX = "/@src/", jsTranspiler2, tsTranspiler2, tsxTranspiler, TRANSPILABLE, ALL_EXPORTS_RE, STRING_CONTENTS_RE, preserveTypeExports = (originalSource, transpiled, valueExports) => {
|
|
20139
20275
|
const codeOnly = originalSource.replace(STRING_CONTENTS_RE, '""');
|
|
20140
20276
|
const allExports = [];
|
|
@@ -20154,7 +20290,7 @@ var SRC_PREFIX = "/@src/", jsTranspiler2, tsTranspiler2, tsxTranspiler, TRANSPIL
|
|
|
20154
20290
|
${stubs}
|
|
20155
20291
|
`;
|
|
20156
20292
|
}, resolveRelativeExtension = (srcPath, projectRoot, extensions) => {
|
|
20157
|
-
const found = extensions.find((ext) => existsSync25(
|
|
20293
|
+
const found = extensions.find((ext) => existsSync25(resolve34(projectRoot, srcPath + ext)));
|
|
20158
20294
|
return found ? srcPath + found : srcPath;
|
|
20159
20295
|
}, IMPORT_EXTENSIONS, SIDE_EFFECT_EXTENSIONS, MODULE_EXTENSIONS, RESOLVED_MODULE_EXTENSIONS, REACT_EXTENSIONS, escapeRegex3 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), buildImportRewriter = (vendorPaths) => {
|
|
20160
20296
|
const entries = Object.entries(vendorPaths).sort(([a], [b2]) => b2.length - a.length);
|
|
@@ -20169,7 +20305,7 @@ ${stubs}
|
|
|
20169
20305
|
return invalidationVersion > 0 ? `${mtime}.${invalidationVersion}` : `${mtime}`;
|
|
20170
20306
|
}, srcUrl = (relPath, projectRoot) => {
|
|
20171
20307
|
const base = `${SRC_PREFIX}${relPath.replace(/\\/g, "/")}`;
|
|
20172
|
-
const absPath =
|
|
20308
|
+
const absPath = resolve34(projectRoot, relPath);
|
|
20173
20309
|
const cached = mtimeCache.get(absPath);
|
|
20174
20310
|
if (cached !== undefined)
|
|
20175
20311
|
return `${base}?v=${buildVersion(cached, absPath)}`;
|
|
@@ -20181,12 +20317,12 @@ ${stubs}
|
|
|
20181
20317
|
return base;
|
|
20182
20318
|
}
|
|
20183
20319
|
}, resolveRelativeImport = (relPath, fileDir, projectRoot, extensions) => {
|
|
20184
|
-
const absPath =
|
|
20320
|
+
const absPath = resolve34(fileDir, relPath);
|
|
20185
20321
|
const rel = relative14(projectRoot, absPath);
|
|
20186
20322
|
const extension = extname10(rel);
|
|
20187
20323
|
let srcPath = RESOLVED_MODULE_EXTENSIONS.has(extension) ? rel : resolveRelativeExtension(rel, projectRoot, extensions);
|
|
20188
20324
|
if (extname10(srcPath) === ".svelte") {
|
|
20189
|
-
srcPath = relative14(projectRoot, resolveSvelteModulePath(
|
|
20325
|
+
srcPath = relative14(projectRoot, resolveSvelteModulePath(resolve34(projectRoot, srcPath)));
|
|
20190
20326
|
}
|
|
20191
20327
|
return srcUrl(srcPath, projectRoot);
|
|
20192
20328
|
}, NODE_BUILTIN_RE, resolveAbsoluteSpecifier = (specifier, projectRoot) => {
|
|
@@ -20205,13 +20341,13 @@ ${stubs}
|
|
|
20205
20341
|
const packageName = isScoped ? `${parts[0]}/${parts[1]}` : parts[0];
|
|
20206
20342
|
const subpath = isScoped ? parts.slice(2).join("/") : parts.slice(1).join("/");
|
|
20207
20343
|
if (!subpath) {
|
|
20208
|
-
const pkgDir =
|
|
20344
|
+
const pkgDir = resolve34(projectRoot, "node_modules", packageName ?? "");
|
|
20209
20345
|
const pkgJsonPath = join29(pkgDir, "package.json");
|
|
20210
20346
|
if (existsSync25(pkgJsonPath)) {
|
|
20211
20347
|
const pkg = JSON.parse(readFileSync19(pkgJsonPath, "utf-8"));
|
|
20212
20348
|
const esmEntry = typeof pkg.module === "string" && pkg.module || typeof pkg.browser === "string" && pkg.browser;
|
|
20213
20349
|
if (esmEntry) {
|
|
20214
|
-
const resolved =
|
|
20350
|
+
const resolved = resolve34(pkgDir, esmEntry);
|
|
20215
20351
|
if (existsSync25(resolved))
|
|
20216
20352
|
return relative14(projectRoot, resolved);
|
|
20217
20353
|
}
|
|
@@ -20258,12 +20394,12 @@ ${stubs}
|
|
|
20258
20394
|
result = result.replace(/((?:from|import)\s*["'])(\/[^"']+\.(tsx?|jsx?|ts))(["'])/g, rewriteAbsoluteToSrc);
|
|
20259
20395
|
result = result.replace(/(import\s*\(\s*["'])(\/[^"']+\.(tsx?|jsx?|ts))(["']\s*\))/g, rewriteAbsoluteToSrc);
|
|
20260
20396
|
result = result.replace(/new\s+URL\(\s*["'](\.\.?\/[^"']+)["']\s*,\s*import\.meta\.url\s*\)/g, (_match, relPath) => {
|
|
20261
|
-
const absPath =
|
|
20397
|
+
const absPath = resolve34(fileDir, relPath);
|
|
20262
20398
|
const rel = relative14(projectRoot, absPath);
|
|
20263
20399
|
return `new URL('${srcUrl(rel, projectRoot)}', import.meta.url)`;
|
|
20264
20400
|
});
|
|
20265
20401
|
result = result.replace(/import\.meta\.resolve\(\s*["'](\.\.?\/[^"']+)["']\s*\)/g, (_match, relPath) => {
|
|
20266
|
-
const absPath =
|
|
20402
|
+
const absPath = resolve34(fileDir, relPath);
|
|
20267
20403
|
const rel = relative14(projectRoot, absPath);
|
|
20268
20404
|
return `'${srcUrl(rel, projectRoot)}'`;
|
|
20269
20405
|
});
|
|
@@ -20576,7 +20712,7 @@ ${code}`;
|
|
|
20576
20712
|
code = injectVueHmr(code, filePath, projectRoot, vueDir);
|
|
20577
20713
|
return rewriteImports(code, filePath, projectRoot, rewriter);
|
|
20578
20714
|
}, injectVueHmr = (code, filePath, projectRoot, vueDir) => {
|
|
20579
|
-
const hmrBase = vueDir ?
|
|
20715
|
+
const hmrBase = vueDir ? resolve34(vueDir) : projectRoot;
|
|
20580
20716
|
const hmrId = relative14(hmrBase, filePath).replace(/\\/g, "/").replace(/\.vue$/, "");
|
|
20581
20717
|
let result = code.replace(/export\s+default\s+/, "var __hmr_comp__ = ");
|
|
20582
20718
|
result += [
|
|
@@ -20740,7 +20876,7 @@ export default {};
|
|
|
20740
20876
|
const escaped = virtualCss.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
|
|
20741
20877
|
return jsResponse(`var s=document.createElement('style');s.textContent=\`${escaped}\`;s.dataset.svelteHmr=${JSON.stringify(cssCheckPath)};var p=document.querySelector('style[data-svelte-hmr="${cssCheckPath}"]');if(p)p.remove();document.head.appendChild(s);`);
|
|
20742
20878
|
}, resolveSourcePath = (relPath, projectRoot) => {
|
|
20743
|
-
const filePath =
|
|
20879
|
+
const filePath = resolve34(projectRoot, relPath);
|
|
20744
20880
|
const ext = extname10(filePath);
|
|
20745
20881
|
if (ext === ".svelte")
|
|
20746
20882
|
return { ext, filePath: resolveSvelteModulePath(filePath) };
|
|
@@ -20756,6 +20892,54 @@ export default {};
|
|
|
20756
20892
|
}, transformAndCache = async (filePath, ext, projectRoot, rewriter, vueDir, stylePreprocessors) => {
|
|
20757
20893
|
if (ext === ".css")
|
|
20758
20894
|
return jsResponse(handleCssRequest(filePath));
|
|
20895
|
+
if (ext === ".json") {
|
|
20896
|
+
try {
|
|
20897
|
+
const { readFile: readFile6, stat: stat4 } = await import("fs/promises");
|
|
20898
|
+
const fileExists = async (p2) => {
|
|
20899
|
+
try {
|
|
20900
|
+
await stat4(p2);
|
|
20901
|
+
return true;
|
|
20902
|
+
} catch {
|
|
20903
|
+
return false;
|
|
20904
|
+
}
|
|
20905
|
+
};
|
|
20906
|
+
let sourcePath = filePath;
|
|
20907
|
+
if (!await fileExists(sourcePath)) {
|
|
20908
|
+
const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
|
|
20909
|
+
const generatedAngularRoot = getFrameworkGeneratedDir2("angular").replace(/\\/g, "/");
|
|
20910
|
+
const normalized = filePath.replace(/\\/g, "/");
|
|
20911
|
+
if (normalized.startsWith(generatedAngularRoot + "/") || normalized.startsWith(generatedAngularRoot)) {
|
|
20912
|
+
const tail = normalized.slice(generatedAngularRoot.length + 1);
|
|
20913
|
+
const absoluteCandidate = "/" + tail.replace(/^\/+/, "");
|
|
20914
|
+
const candidates = [
|
|
20915
|
+
absoluteCandidate,
|
|
20916
|
+
resolve34(projectRoot, tail)
|
|
20917
|
+
];
|
|
20918
|
+
try {
|
|
20919
|
+
const { loadConfig: loadConfig2 } = await Promise.resolve().then(() => (init_loadConfig(), exports_loadConfig));
|
|
20920
|
+
const cfg = await loadConfig2();
|
|
20921
|
+
const angularDir = cfg.angularDirectory && resolve34(projectRoot, cfg.angularDirectory);
|
|
20922
|
+
if (angularDir)
|
|
20923
|
+
candidates.push(resolve34(angularDir, tail));
|
|
20924
|
+
} catch {}
|
|
20925
|
+
for (const candidate of candidates) {
|
|
20926
|
+
if (await fileExists(candidate)) {
|
|
20927
|
+
sourcePath = candidate;
|
|
20928
|
+
break;
|
|
20929
|
+
}
|
|
20930
|
+
}
|
|
20931
|
+
}
|
|
20932
|
+
}
|
|
20933
|
+
const text = await readFile6(sourcePath, "utf-8");
|
|
20934
|
+
JSON.parse(text);
|
|
20935
|
+
return jsResponse(`export default ${text};`);
|
|
20936
|
+
} catch (err) {
|
|
20937
|
+
return new Response(`console.error('[ModuleServer] JSON load error in ${filePath}:', ${JSON.stringify(String(err))});`, {
|
|
20938
|
+
headers: { "Content-Type": "application/javascript" },
|
|
20939
|
+
status: 500
|
|
20940
|
+
});
|
|
20941
|
+
}
|
|
20942
|
+
}
|
|
20759
20943
|
const isSvelte = ext === ".svelte" || filePath.endsWith(".svelte.ts") || filePath.endsWith(".svelte.js");
|
|
20760
20944
|
const cached = getTransformed(filePath);
|
|
20761
20945
|
if (cached)
|
|
@@ -20767,7 +20951,7 @@ export default {};
|
|
|
20767
20951
|
if (!TRANSPILABLE.has(ext))
|
|
20768
20952
|
return;
|
|
20769
20953
|
const stat3 = statSync4(filePath);
|
|
20770
|
-
const resolvedVueDir = vueDir ?
|
|
20954
|
+
const resolvedVueDir = vueDir ? resolve34(vueDir) : undefined;
|
|
20771
20955
|
let content = REACT_EXTENSIONS.has(ext) ? transformReactFile(filePath, projectRoot, rewriter) : transformPlainFile(filePath, projectRoot, rewriter, resolvedVueDir);
|
|
20772
20956
|
const isAngularGeneratedJs = ext === ".js" && filePath.replace(/\\/g, "/").includes("/.absolutejs/generated/angular/");
|
|
20773
20957
|
if (isAngularGeneratedJs) {
|
|
@@ -20826,7 +21010,7 @@ export default {};
|
|
|
20826
21010
|
const relPath = pathname.slice(SRC_PREFIX.length);
|
|
20827
21011
|
if (relPath === "bun:wrap" || relPath.startsWith("bun:wrap?"))
|
|
20828
21012
|
return handleBunWrapRequest();
|
|
20829
|
-
const virtualCssResponse = handleVirtualSvelteCss(
|
|
21013
|
+
const virtualCssResponse = handleVirtualSvelteCss(resolve34(projectRoot, relPath));
|
|
20830
21014
|
if (virtualCssResponse)
|
|
20831
21015
|
return virtualCssResponse;
|
|
20832
21016
|
const { filePath, ext } = resolveSourcePath(relPath, projectRoot);
|
|
@@ -20842,11 +21026,11 @@ export default {};
|
|
|
20842
21026
|
SRC_IMPORT_RE.lastIndex = 0;
|
|
20843
21027
|
while ((match = SRC_IMPORT_RE.exec(content)) !== null) {
|
|
20844
21028
|
if (match[1])
|
|
20845
|
-
files.push(
|
|
21029
|
+
files.push(resolve34(projectRoot, match[1]));
|
|
20846
21030
|
}
|
|
20847
21031
|
return files;
|
|
20848
21032
|
}, invalidateModule = (filePath) => {
|
|
20849
|
-
const resolved =
|
|
21033
|
+
const resolved = resolve34(filePath);
|
|
20850
21034
|
invalidate(filePath);
|
|
20851
21035
|
if (resolved !== filePath)
|
|
20852
21036
|
invalidate(resolved);
|
|
@@ -20991,7 +21175,7 @@ __export(exports_hmrCompiler, {
|
|
|
20991
21175
|
getApplyMetadataModule: () => getApplyMetadataModule,
|
|
20992
21176
|
encodeHmrComponentId: () => encodeHmrComponentId
|
|
20993
21177
|
});
|
|
20994
|
-
import { dirname as dirname20, relative as relative15, resolve as
|
|
21178
|
+
import { dirname as dirname20, relative as relative15, resolve as resolve35 } from "path";
|
|
20995
21179
|
import { performance as performance2 } from "perf_hooks";
|
|
20996
21180
|
var getApplyMetadataModule = async (encodedId) => {
|
|
20997
21181
|
const decoded = decodeURIComponent(encodedId);
|
|
@@ -21000,7 +21184,7 @@ var getApplyMetadataModule = async (encodedId) => {
|
|
|
21000
21184
|
return null;
|
|
21001
21185
|
const filePathRel = decoded.slice(0, at2);
|
|
21002
21186
|
const className = decoded.slice(at2 + 1);
|
|
21003
|
-
const componentFilePath =
|
|
21187
|
+
const componentFilePath = resolve35(process.cwd(), filePathRel);
|
|
21004
21188
|
const projectRelPath = relative15(process.cwd(), componentFilePath).replace(/\\/g, "/");
|
|
21005
21189
|
const cacheKey2 = encodeURIComponent(`${projectRelPath}@${className}`);
|
|
21006
21190
|
const { takePendingModule: takePendingModule2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
|
|
@@ -21162,11 +21346,11 @@ var exports_simpleHTMLHMR = {};
|
|
|
21162
21346
|
__export(exports_simpleHTMLHMR, {
|
|
21163
21347
|
handleHTMLUpdate: () => handleHTMLUpdate
|
|
21164
21348
|
});
|
|
21165
|
-
import { resolve as
|
|
21349
|
+
import { resolve as resolve36 } from "path";
|
|
21166
21350
|
var handleHTMLUpdate = async (htmlFilePath) => {
|
|
21167
21351
|
let htmlContent;
|
|
21168
21352
|
try {
|
|
21169
|
-
const resolvedPath =
|
|
21353
|
+
const resolvedPath = resolve36(htmlFilePath);
|
|
21170
21354
|
const file4 = Bun.file(resolvedPath);
|
|
21171
21355
|
if (!await file4.exists()) {
|
|
21172
21356
|
return null;
|
|
@@ -21192,11 +21376,11 @@ var exports_simpleHTMXHMR = {};
|
|
|
21192
21376
|
__export(exports_simpleHTMXHMR, {
|
|
21193
21377
|
handleHTMXUpdate: () => handleHTMXUpdate
|
|
21194
21378
|
});
|
|
21195
|
-
import { resolve as
|
|
21379
|
+
import { resolve as resolve37 } from "path";
|
|
21196
21380
|
var handleHTMXUpdate = async (htmxFilePath) => {
|
|
21197
21381
|
let htmlContent;
|
|
21198
21382
|
try {
|
|
21199
|
-
const resolvedPath =
|
|
21383
|
+
const resolvedPath = resolve37(htmxFilePath);
|
|
21200
21384
|
const file4 = Bun.file(resolvedPath);
|
|
21201
21385
|
if (!await file4.exists()) {
|
|
21202
21386
|
return null;
|
|
@@ -21219,7 +21403,7 @@ var init_simpleHTMXHMR = () => {};
|
|
|
21219
21403
|
|
|
21220
21404
|
// src/dev/rebuildTrigger.ts
|
|
21221
21405
|
import { existsSync as existsSync26 } from "fs";
|
|
21222
|
-
import { basename as basename11, dirname as dirname21, relative as relative16, resolve as
|
|
21406
|
+
import { basename as basename11, dirname as dirname21, relative as relative16, resolve as resolve38, sep as sep4 } from "path";
|
|
21223
21407
|
var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequentially = (items, action) => items.reduce((chain, item) => chain.then(() => action(item)), Promise.resolve()), getStyleTransformConfig = (config) => createStyleTransformConfig(config.stylePreprocessors, config.postcss), recompileTailwindForFastPath = async (state, config, files) => {
|
|
21224
21408
|
if (!config.tailwind)
|
|
21225
21409
|
return;
|
|
@@ -21230,7 +21414,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21230
21414
|
if (!cssChanged)
|
|
21231
21415
|
return;
|
|
21232
21416
|
try {
|
|
21233
|
-
const outputPath =
|
|
21417
|
+
const outputPath = resolve38(state.resolvedPaths.buildDir, config.tailwind.output);
|
|
21234
21418
|
const bytes = await Bun.file(outputPath).bytes();
|
|
21235
21419
|
const webPath = `/${config.tailwind.output.replace(/^\/+/, "")}`;
|
|
21236
21420
|
state.assetStore.set(webPath, bytes);
|
|
@@ -21317,7 +21501,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21317
21501
|
state.fileHashes.delete(filePathInSet);
|
|
21318
21502
|
try {
|
|
21319
21503
|
const affectedFiles = getAffectedFiles(state.dependencyGraph, filePathInSet);
|
|
21320
|
-
const deletedPathResolved =
|
|
21504
|
+
const deletedPathResolved = resolve38(filePathInSet);
|
|
21321
21505
|
affectedFiles.forEach((affectedFile) => {
|
|
21322
21506
|
if (isValidDeletedAffectedFile(affectedFile, deletedPathResolved, processedFiles)) {
|
|
21323
21507
|
validFiles.push(affectedFile);
|
|
@@ -21361,7 +21545,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21361
21545
|
if (storedHash !== undefined && storedHash === fileHash) {
|
|
21362
21546
|
return;
|
|
21363
21547
|
}
|
|
21364
|
-
const normalizedFilePath =
|
|
21548
|
+
const normalizedFilePath = resolve38(filePathInSet);
|
|
21365
21549
|
if (!processedFiles.has(normalizedFilePath)) {
|
|
21366
21550
|
validFiles.push(normalizedFilePath);
|
|
21367
21551
|
processedFiles.add(normalizedFilePath);
|
|
@@ -21489,35 +21673,51 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21489
21673
|
if (framework === "ignored") {
|
|
21490
21674
|
return;
|
|
21491
21675
|
}
|
|
21676
|
+
if (/\.(spec|test)\.(?:m?[tj]sx?)$/i.test(filePath) || /[\\/]__tests__[\\/]/.test(filePath)) {
|
|
21677
|
+
return;
|
|
21678
|
+
}
|
|
21492
21679
|
const currentHash = computeFileHash(filePath);
|
|
21493
21680
|
if (!hasFileChanged(filePath, currentHash, state.fileHashes)) {
|
|
21494
21681
|
return;
|
|
21495
21682
|
}
|
|
21496
21683
|
const publicDir = state.resolvedPaths.publicDir;
|
|
21497
|
-
|
|
21684
|
+
const assetsDir = state.resolvedPaths.assetsDir;
|
|
21685
|
+
const handleStaticMirror = async (sourceDir, urlPrefix) => {
|
|
21686
|
+
const absSource = resolve38(filePath);
|
|
21687
|
+
const normalizedSource = absSource.replace(/\\/g, "/");
|
|
21688
|
+
const normalizedDir = sourceDir.replace(/\\/g, "/");
|
|
21689
|
+
if (!normalizedSource.startsWith(normalizedDir + "/"))
|
|
21690
|
+
return false;
|
|
21498
21691
|
try {
|
|
21499
|
-
const
|
|
21500
|
-
const relFromPublic = absSource.replace(/\\/g, "/").slice(publicDir.length + 1);
|
|
21692
|
+
const relFromDir = normalizedSource.slice(normalizedDir.length + 1);
|
|
21501
21693
|
const buildDir = state.resolvedPaths.buildDir;
|
|
21502
|
-
const destPath =
|
|
21694
|
+
const destPath = resolve38(buildDir, urlPrefix ? `${urlPrefix}/${relFromDir}` : relFromDir);
|
|
21503
21695
|
const { mkdir: mkdir7, copyFile, readFile: readFile6 } = await import("fs/promises");
|
|
21504
21696
|
const { dirname: dirname22 } = await import("path");
|
|
21505
21697
|
await mkdir7(dirname22(destPath), { recursive: true });
|
|
21506
21698
|
await copyFile(absSource, destPath);
|
|
21507
21699
|
const bytes = await readFile6(destPath);
|
|
21508
|
-
|
|
21700
|
+
const webPath = urlPrefix ? `/${urlPrefix}/${relFromDir}` : `/${relFromDir}`;
|
|
21701
|
+
state.assetStore.set(webPath, new Uint8Array(bytes));
|
|
21509
21702
|
state.fileHashes.set(absSource, currentHash);
|
|
21510
21703
|
logHmrUpdate(relative16(process.cwd(), filePath));
|
|
21511
21704
|
broadcastToClients(state, {
|
|
21512
|
-
data: {
|
|
21513
|
-
|
|
21705
|
+
data: {
|
|
21706
|
+
framework: urlPrefix || "public",
|
|
21707
|
+
manifest: state.manifest
|
|
21708
|
+
},
|
|
21709
|
+
message: `${urlPrefix || "Public"} asset updated`,
|
|
21514
21710
|
type: "style-update"
|
|
21515
21711
|
});
|
|
21516
21712
|
} catch {}
|
|
21713
|
+
return true;
|
|
21714
|
+
};
|
|
21715
|
+
if (publicDir && await handleStaticMirror(publicDir, ""))
|
|
21716
|
+
return;
|
|
21717
|
+
if (assetsDir && await handleStaticMirror(assetsDir, "assets"))
|
|
21517
21718
|
return;
|
|
21518
|
-
}
|
|
21519
21719
|
if (framework === "unknown") {
|
|
21520
|
-
invalidate(
|
|
21720
|
+
invalidate(resolve38(filePath));
|
|
21521
21721
|
const relPath = relative16(process.cwd(), filePath);
|
|
21522
21722
|
logHmrUpdate(relPath);
|
|
21523
21723
|
const angularDir = state.resolvedPaths.angularDir;
|
|
@@ -21525,10 +21725,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21525
21725
|
if (angularDir && state.dependencyGraph) {
|
|
21526
21726
|
try {
|
|
21527
21727
|
const { addFileToGraph: addFileToGraph2 } = await Promise.resolve().then(() => (init_dependencyGraph(), exports_dependencyGraph));
|
|
21528
|
-
addFileToGraph2(state.dependencyGraph,
|
|
21529
|
-
const affected = getAffectedFiles(state.dependencyGraph,
|
|
21728
|
+
addFileToGraph2(state.dependencyGraph, resolve38(filePath));
|
|
21729
|
+
const affected = getAffectedFiles(state.dependencyGraph, resolve38(filePath));
|
|
21530
21730
|
for (const dependent of affected) {
|
|
21531
|
-
if (dependent ===
|
|
21731
|
+
if (dependent === resolve38(filePath))
|
|
21532
21732
|
continue;
|
|
21533
21733
|
const dependentFramework = detectFramework(dependent, state.resolvedPaths);
|
|
21534
21734
|
if (dependentFramework !== "angular")
|
|
@@ -21551,7 +21751,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21551
21751
|
const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
|
|
21552
21752
|
const { invalidateModule: invalidateModuleServer } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
21553
21753
|
const generatedAngularRoot = getFrameworkGeneratedDir2("angular");
|
|
21554
|
-
const sourceAbs =
|
|
21754
|
+
const sourceAbs = resolve38(filePath).replace(/\\/g, "/");
|
|
21555
21755
|
const generatedTwin = `${generatedAngularRoot.replace(/\\/g, "/")}${sourceAbs.replace(/\.ts$/, ".js")}`;
|
|
21556
21756
|
invalidateModuleServer(generatedTwin);
|
|
21557
21757
|
} catch {}
|
|
@@ -21585,7 +21785,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21585
21785
|
const userEditedFiles = new Set;
|
|
21586
21786
|
state.fileChangeQueue.forEach((filePaths) => {
|
|
21587
21787
|
for (const filePath2 of filePaths) {
|
|
21588
|
-
userEditedFiles.add(
|
|
21788
|
+
userEditedFiles.add(resolve38(filePath2));
|
|
21589
21789
|
}
|
|
21590
21790
|
});
|
|
21591
21791
|
state.lastUserEditedFiles = userEditedFiles;
|
|
@@ -21614,7 +21814,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21614
21814
|
}
|
|
21615
21815
|
if (!graph)
|
|
21616
21816
|
return componentFile;
|
|
21617
|
-
const dependents = graph.dependents.get(
|
|
21817
|
+
const dependents = graph.dependents.get(resolve38(componentFile));
|
|
21618
21818
|
if (!dependents)
|
|
21619
21819
|
return componentFile;
|
|
21620
21820
|
for (const dep of dependents) {
|
|
@@ -21623,7 +21823,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21623
21823
|
}
|
|
21624
21824
|
return componentFile;
|
|
21625
21825
|
}, resolveAngularPageEntries = (state, angularFiles, angularPagesPath) => {
|
|
21626
|
-
const pageEntries = angularFiles.filter((file4) => file4.endsWith(".ts") &&
|
|
21826
|
+
const pageEntries = angularFiles.filter((file4) => file4.endsWith(".ts") && resolve38(file4).startsWith(angularPagesPath));
|
|
21627
21827
|
if (pageEntries.length > 0 || !state.dependencyGraph) {
|
|
21628
21828
|
return pageEntries;
|
|
21629
21829
|
}
|
|
@@ -21632,7 +21832,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21632
21832
|
const lookupFile = resolveComponentLookupFile(componentFile, state.dependencyGraph);
|
|
21633
21833
|
const affected = getAffectedFiles(state.dependencyGraph, lookupFile);
|
|
21634
21834
|
affected.forEach((file4) => {
|
|
21635
|
-
if (file4.endsWith(".ts") &&
|
|
21835
|
+
if (file4.endsWith(".ts") && resolve38(file4).startsWith(angularPagesPath)) {
|
|
21636
21836
|
resolvedPages.add(file4);
|
|
21637
21837
|
}
|
|
21638
21838
|
});
|
|
@@ -21754,8 +21954,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21754
21954
|
if (detected !== "unknown")
|
|
21755
21955
|
continue;
|
|
21756
21956
|
try {
|
|
21757
|
-
const affected = getAffectedFiles(state.dependencyGraph,
|
|
21758
|
-
const hasAngularConsumer = affected.some((dep) => dep !==
|
|
21957
|
+
const affected = getAffectedFiles(state.dependencyGraph, resolve38(editedFile));
|
|
21958
|
+
const hasAngularConsumer = affected.some((dep) => dep !== resolve38(editedFile) && detectFramework(dep, state.resolvedPaths) === "angular");
|
|
21759
21959
|
if (hasAngularConsumer) {
|
|
21760
21960
|
return {
|
|
21761
21961
|
kind: "rebootstrap",
|
|
@@ -21800,9 +22000,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21800
22000
|
tier: 1
|
|
21801
22001
|
};
|
|
21802
22002
|
}
|
|
21803
|
-
if (owners.length === 0 && editedFile.endsWith(".ts") && !editedFile.endsWith(".d.ts")) {
|
|
22003
|
+
if (owners.length === 0 && (editedFile.endsWith(".ts") || editedFile.endsWith(".json")) && !editedFile.endsWith(".d.ts")) {
|
|
21804
22004
|
const normalized = editedFile.replace(/\\/g, "/");
|
|
21805
|
-
const angularDirAbs =
|
|
22005
|
+
const angularDirAbs = resolve38(angularDir).replace(/\\/g, "/");
|
|
21806
22006
|
if (normalized.startsWith(angularDirAbs + "/")) {
|
|
21807
22007
|
return {
|
|
21808
22008
|
kind: "rebootstrap",
|
|
@@ -21946,16 +22146,16 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21946
22146
|
};
|
|
21947
22147
|
const fire = () => {
|
|
21948
22148
|
ctx.debounceTimer = null;
|
|
21949
|
-
const
|
|
22149
|
+
const resolve39 = ctx.debouncedResolve;
|
|
21950
22150
|
ctx.debouncedResolve = null;
|
|
21951
22151
|
ctx.debouncedPromise = null;
|
|
21952
22152
|
if (ctx.inFlight) {
|
|
21953
22153
|
ctx.pending = true;
|
|
21954
|
-
ctx.inFlight.finally(() =>
|
|
22154
|
+
ctx.inFlight.finally(() => resolve39?.());
|
|
21955
22155
|
return;
|
|
21956
22156
|
}
|
|
21957
22157
|
ctx.inFlight = drive();
|
|
21958
|
-
ctx.inFlight.finally(() =>
|
|
22158
|
+
ctx.inFlight.finally(() => resolve39?.());
|
|
21959
22159
|
};
|
|
21960
22160
|
return ({ immediate = false } = {}) => {
|
|
21961
22161
|
if (!ctx.debouncedPromise) {
|
|
@@ -21982,9 +22182,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
21982
22182
|
const diskRefreshPromise = (async () => {
|
|
21983
22183
|
if (!angularDir || editedFiles.size === 0)
|
|
21984
22184
|
return;
|
|
21985
|
-
const angularDirAbs =
|
|
22185
|
+
const angularDirAbs = resolve38(angularDir);
|
|
21986
22186
|
const filesUnderAngular = Array.from(editedFiles).filter((file4) => {
|
|
21987
|
-
const abs =
|
|
22187
|
+
const abs = resolve38(file4);
|
|
21988
22188
|
return abs === angularDirAbs || abs.startsWith(angularDirAbs + sep4);
|
|
21989
22189
|
});
|
|
21990
22190
|
if (filesUnderAngular.length === 0)
|
|
@@ -22006,7 +22206,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22006
22206
|
if (!ext)
|
|
22007
22207
|
continue;
|
|
22008
22208
|
if (ext === ".ts" || ext === ".tsx") {
|
|
22009
|
-
tsFilesToRefresh.add(
|
|
22209
|
+
tsFilesToRefresh.add(resolve38(file4));
|
|
22010
22210
|
continue;
|
|
22011
22211
|
}
|
|
22012
22212
|
const owners = resolveOwningComponents2({
|
|
@@ -22014,7 +22214,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22014
22214
|
userAngularRoot: angularDirAbs
|
|
22015
22215
|
});
|
|
22016
22216
|
for (const owner of owners) {
|
|
22017
|
-
tsFilesToRefresh.add(
|
|
22217
|
+
tsFilesToRefresh.add(resolve38(owner.componentFilePath));
|
|
22018
22218
|
}
|
|
22019
22219
|
}
|
|
22020
22220
|
if (tsFilesToRefresh.size === 0)
|
|
@@ -22026,7 +22226,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22026
22226
|
const { invalidateModule: invalidateModule2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
22027
22227
|
for (const tsFile of tsFilesToRefresh) {
|
|
22028
22228
|
const rel = relative16(angularDirAbs, tsFile).replace(/\\/g, "/").replace(/\.[tj]sx?$/, ".js");
|
|
22029
|
-
const compiledFile =
|
|
22229
|
+
const compiledFile = resolve38(compiledRoot, rel);
|
|
22030
22230
|
invalidateModule2(compiledFile);
|
|
22031
22231
|
}
|
|
22032
22232
|
} catch {}
|
|
@@ -22077,7 +22277,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22077
22277
|
serverPaths.forEach((serverPath, idx) => {
|
|
22078
22278
|
const fileBase = basename11(serverPath, ".js");
|
|
22079
22279
|
const ssrPath = ssrPaths[idx] ?? serverPath;
|
|
22080
|
-
state.manifest[toPascal(fileBase)] =
|
|
22280
|
+
state.manifest[toPascal(fileBase)] = resolve38(ssrPath);
|
|
22081
22281
|
});
|
|
22082
22282
|
if (clientPaths.length > 0) {
|
|
22083
22283
|
await bundleAngularClient(state, clientPaths, state.resolvedPaths.buildDir, angularDir);
|
|
@@ -22086,9 +22286,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22086
22286
|
const angularDir = config.angularDirectory ?? "";
|
|
22087
22287
|
const angularFiles = filesToRebuild.filter((file4) => detectFramework(file4, state.resolvedPaths) === "angular");
|
|
22088
22288
|
for (const file4 of angularFiles) {
|
|
22089
|
-
state.fileHashes.set(
|
|
22289
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22090
22290
|
}
|
|
22091
|
-
const angularPagesPath =
|
|
22291
|
+
const angularPagesPath = resolve38(angularDir, "pages");
|
|
22092
22292
|
const pageEntries = resolveAngularPageEntries(state, angularFiles, angularPagesPath);
|
|
22093
22293
|
const tierStart = performance.now();
|
|
22094
22294
|
const verdict = await decideAngularTier(state, angularDir);
|
|
@@ -22127,11 +22327,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22127
22327
|
if (isComponentFile2)
|
|
22128
22328
|
return primaryFile;
|
|
22129
22329
|
const { findNearestComponent: findNearestComponent2 } = await Promise.resolve().then(() => (init_transformCache(), exports_transformCache));
|
|
22130
|
-
const nearest = findNearestComponent2(
|
|
22330
|
+
const nearest = findNearestComponent2(resolve38(primaryFile));
|
|
22131
22331
|
return nearest ?? primaryFile;
|
|
22132
22332
|
}, handleReactModuleServerPath = async (state, reactFiles, startTime, onRebuildComplete) => {
|
|
22133
22333
|
for (const file4 of reactFiles) {
|
|
22134
|
-
state.fileHashes.set(
|
|
22334
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22135
22335
|
}
|
|
22136
22336
|
markSsrCacheDirty("react");
|
|
22137
22337
|
const primaryFile = reactFiles.find((file4) => !file4.replace(/\\/g, "/").includes("/pages/")) ?? reactFiles[0];
|
|
@@ -22213,7 +22413,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22213
22413
|
});
|
|
22214
22414
|
}, handleSvelteModuleServerPath = async (state, svelteFiles, startTime, onRebuildComplete) => {
|
|
22215
22415
|
for (const file4 of svelteFiles) {
|
|
22216
|
-
state.fileHashes.set(
|
|
22416
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22217
22417
|
}
|
|
22218
22418
|
markSsrCacheDirty("svelte");
|
|
22219
22419
|
const serverDuration = Date.now() - startTime;
|
|
@@ -22238,8 +22438,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22238
22438
|
const serverEntries = [...svelteServerPaths];
|
|
22239
22439
|
const clientEntries = [...svelteIndexPaths, ...svelteClientPaths];
|
|
22240
22440
|
const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
|
|
22241
|
-
const serverRoot =
|
|
22242
|
-
const serverOutDir =
|
|
22441
|
+
const serverRoot = resolve38(getFrameworkGeneratedDir2("svelte"), "server");
|
|
22442
|
+
const serverOutDir = resolve38(buildDir, basename11(svelteDir));
|
|
22243
22443
|
const [serverResult, clientResult] = await Promise.all([
|
|
22244
22444
|
serverEntries.length > 0 ? bunBuild9({
|
|
22245
22445
|
entrypoints: serverEntries,
|
|
@@ -22336,7 +22536,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22336
22536
|
});
|
|
22337
22537
|
}, handleVueModuleServerPath = async (state, vueFiles, nonVueFiles, startTime, onRebuildComplete) => {
|
|
22338
22538
|
for (const file4 of [...vueFiles, ...nonVueFiles]) {
|
|
22339
|
-
state.fileHashes.set(
|
|
22539
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22340
22540
|
}
|
|
22341
22541
|
markSsrCacheDirty("vue");
|
|
22342
22542
|
await invalidateNonVueModules(nonVueFiles);
|
|
@@ -22364,7 +22564,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22364
22564
|
recursive: true,
|
|
22365
22565
|
withFileTypes: true
|
|
22366
22566
|
});
|
|
22367
|
-
return entries.filter((entry) => entry.isFile() && EMBER_PAGE_EXTENSIONS.some((ext) => entry.name.endsWith(ext))).map((entry) =>
|
|
22567
|
+
return entries.filter((entry) => entry.isFile() && EMBER_PAGE_EXTENSIONS.some((ext) => entry.name.endsWith(ext))).map((entry) => resolve38(emberPagesPath, entry.name));
|
|
22368
22568
|
} catch {
|
|
22369
22569
|
return [];
|
|
22370
22570
|
}
|
|
@@ -22376,10 +22576,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22376
22576
|
return state.manifest;
|
|
22377
22577
|
}
|
|
22378
22578
|
for (const file4 of emberFiles) {
|
|
22379
|
-
state.fileHashes.set(
|
|
22579
|
+
state.fileHashes.set(resolve38(file4), computeFileHash(file4));
|
|
22380
22580
|
}
|
|
22381
|
-
const emberPagesPath =
|
|
22382
|
-
const directPageEntries = emberFiles.filter((file4) =>
|
|
22581
|
+
const emberPagesPath = resolve38(emberDir, "pages");
|
|
22582
|
+
const directPageEntries = emberFiles.filter((file4) => resolve38(file4).startsWith(emberPagesPath));
|
|
22383
22583
|
const allPageEntries = directPageEntries.length > 0 ? directPageEntries : await collectAllEmberPages(emberPagesPath);
|
|
22384
22584
|
if (allPageEntries.length === 0) {
|
|
22385
22585
|
onRebuildComplete({ hmrState: state, manifest: state.manifest });
|
|
@@ -22389,7 +22589,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22389
22589
|
const { serverPaths } = await compileEmber2(allPageEntries, emberDir, process.cwd(), true);
|
|
22390
22590
|
for (const serverPath of serverPaths) {
|
|
22391
22591
|
const fileBase = basename11(serverPath, ".js");
|
|
22392
|
-
state.manifest[toPascal(fileBase)] =
|
|
22592
|
+
state.manifest[toPascal(fileBase)] = resolve38(serverPath);
|
|
22393
22593
|
}
|
|
22394
22594
|
const { invalidateEmberSsrCache: invalidateEmberSsrCache2 } = await Promise.resolve().then(() => (init_ember(), exports_ember));
|
|
22395
22595
|
invalidateEmberSsrCache2();
|
|
@@ -22481,8 +22681,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22481
22681
|
if (!buildReference?.source) {
|
|
22482
22682
|
return;
|
|
22483
22683
|
}
|
|
22484
|
-
const sourcePath = buildReference.source.startsWith("file://") ? new URL(buildReference.source).pathname :
|
|
22485
|
-
islandFiles.add(
|
|
22684
|
+
const sourcePath = buildReference.source.startsWith("file://") ? new URL(buildReference.source).pathname : resolve38(dirname21(buildInfo.resolvedRegistryPath), buildReference.source);
|
|
22685
|
+
islandFiles.add(resolve38(sourcePath));
|
|
22486
22686
|
}, resolveIslandSourceFiles = async (config) => {
|
|
22487
22687
|
const registryPath = config.islands?.registry;
|
|
22488
22688
|
if (!registryPath) {
|
|
@@ -22490,7 +22690,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22490
22690
|
}
|
|
22491
22691
|
const buildInfo = await loadIslandRegistryBuildInfo(registryPath);
|
|
22492
22692
|
const islandFiles = new Set([
|
|
22493
|
-
|
|
22693
|
+
resolve38(buildInfo.resolvedRegistryPath)
|
|
22494
22694
|
]);
|
|
22495
22695
|
for (const definition of buildInfo.definitions) {
|
|
22496
22696
|
resolveIslandDefinitionSource(definition, buildInfo, islandFiles);
|
|
@@ -22501,7 +22701,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22501
22701
|
if (islandFiles.size === 0) {
|
|
22502
22702
|
return false;
|
|
22503
22703
|
}
|
|
22504
|
-
return filesToRebuild.some((file4) => islandFiles.has(
|
|
22704
|
+
return filesToRebuild.some((file4) => islandFiles.has(resolve38(file4)));
|
|
22505
22705
|
}, handleIslandSourceReload = async (state, config, filesToRebuild, manifest) => {
|
|
22506
22706
|
const shouldReload = await didStaticPagesNeedIslandRefresh(config, filesToRebuild);
|
|
22507
22707
|
if (!shouldReload) {
|
|
@@ -22536,10 +22736,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22536
22736
|
}, computeOutputPagesDir = (state, config, framework) => {
|
|
22537
22737
|
const isSingle = !config.reactDirectory && !config.svelteDirectory && !config.vueDirectory && (framework === "html" ? !config.htmxDirectory : !config.htmlDirectory);
|
|
22538
22738
|
if (isSingle) {
|
|
22539
|
-
return
|
|
22739
|
+
return resolve38(state.resolvedPaths.buildDir, "pages");
|
|
22540
22740
|
}
|
|
22541
22741
|
const dirName = framework === "html" ? basename11(config.htmlDirectory ?? "html") : basename11(config.htmxDirectory ?? "htmx");
|
|
22542
|
-
return
|
|
22742
|
+
return resolve38(state.resolvedPaths.buildDir, dirName, "pages");
|
|
22543
22743
|
}, processHtmlPageUpdate = async (state, pageFile, builtHtmlPagePath, manifest, duration) => {
|
|
22544
22744
|
try {
|
|
22545
22745
|
const { handleHTMLUpdate: handleHTMLUpdate2 } = await Promise.resolve().then(() => (init_simpleHTMLHMR(), exports_simpleHTMLHMR));
|
|
@@ -22578,7 +22778,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22578
22778
|
const pageFilesToUpdate = shouldRefreshAllPages ? await scanEntryPoints(outputHtmlPages, "*.html") : htmlPageFiles;
|
|
22579
22779
|
await runSequentially(pageFilesToUpdate, async (pageFile) => {
|
|
22580
22780
|
const htmlPageName = basename11(pageFile);
|
|
22581
|
-
const builtHtmlPagePath =
|
|
22781
|
+
const builtHtmlPagePath = resolve38(outputHtmlPages, htmlPageName);
|
|
22582
22782
|
await processHtmlPageUpdate(state, pageFile, builtHtmlPagePath, manifest, duration);
|
|
22583
22783
|
});
|
|
22584
22784
|
}, handleVueCssOnlyUpdate = (state, vueCssFiles, manifest, duration) => {
|
|
@@ -22643,7 +22843,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22643
22843
|
const cssKey = `${pascalName}CSS`;
|
|
22644
22844
|
const cssUrl = manifest[cssKey] || null;
|
|
22645
22845
|
const { vueHmrMetadata: vueHmrMetadata2 } = await Promise.resolve().then(() => (init_compileVue(), exports_compileVue));
|
|
22646
|
-
const hmrMeta = vueHmrMetadata2.get(
|
|
22846
|
+
const hmrMeta = vueHmrMetadata2.get(resolve38(vuePagePath));
|
|
22647
22847
|
const changeType = hmrMeta?.changeType ?? "full";
|
|
22648
22848
|
if (changeType === "style-only") {
|
|
22649
22849
|
broadcastVueStyleOnly(state, vuePagePath, baseName, cssUrl, hmrId, manifest, duration);
|
|
@@ -22828,7 +23028,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22828
23028
|
const pageFilesToUpdate = shouldRefreshAllPages ? await scanEntryPoints(outputHtmxPages, "*.html") : htmxPageFiles;
|
|
22829
23029
|
await runSequentially(pageFilesToUpdate, async (htmxPageFile) => {
|
|
22830
23030
|
const htmxPageName = basename11(htmxPageFile);
|
|
22831
|
-
const builtHtmxPagePath =
|
|
23031
|
+
const builtHtmxPagePath = resolve38(outputHtmxPages, htmxPageName);
|
|
22832
23032
|
await processHtmxPageUpdate(state, htmxPageFile, builtHtmxPagePath, manifest, duration);
|
|
22833
23033
|
});
|
|
22834
23034
|
}, collectUpdatedModulePaths = (allModuleUpdates) => {
|
|
@@ -22937,7 +23137,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
22937
23137
|
html = html.slice(0, bodyClose.index) + hmrScript + html.slice(bodyClose.index);
|
|
22938
23138
|
writeFs(destPath, html);
|
|
22939
23139
|
}, processMarkupFileFastPath = async (state, sourceFile, outputDir, framework, startTime, updateAssetPaths2, handleUpdate, readFs, writeFs) => {
|
|
22940
|
-
const destPath =
|
|
23140
|
+
const destPath = resolve38(outputDir, basename11(sourceFile));
|
|
22941
23141
|
const hmrScript = extractHmrScript(destPath, readFs);
|
|
22942
23142
|
const source = await Bun.file(sourceFile).text();
|
|
22943
23143
|
await Bun.write(destPath, source);
|
|
@@ -23505,7 +23705,7 @@ __export(exports_devBuild, {
|
|
|
23505
23705
|
});
|
|
23506
23706
|
import { readdir as readdir5 } from "fs/promises";
|
|
23507
23707
|
import { statSync as statSync5 } from "fs";
|
|
23508
|
-
import { resolve as
|
|
23708
|
+
import { resolve as resolve39 } from "path";
|
|
23509
23709
|
var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
23510
23710
|
const configuredDirs = [
|
|
23511
23711
|
config.reactDirectory,
|
|
@@ -23528,7 +23728,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23528
23728
|
return Object.keys(config).length > 0 ? config : null;
|
|
23529
23729
|
}, reloadConfig = async () => {
|
|
23530
23730
|
try {
|
|
23531
|
-
const configPath2 =
|
|
23731
|
+
const configPath2 = resolve39(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
|
|
23532
23732
|
const source = await Bun.file(configPath2).text();
|
|
23533
23733
|
return parseDirectoryConfig(source);
|
|
23534
23734
|
} catch {
|
|
@@ -23613,7 +23813,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23613
23813
|
state.fileChangeQueue.clear();
|
|
23614
23814
|
}
|
|
23615
23815
|
}, handleCachedReload = async () => {
|
|
23616
|
-
const serverMtime = statSync5(
|
|
23816
|
+
const serverMtime = statSync5(resolve39(Bun.main)).mtimeMs;
|
|
23617
23817
|
const lastMtime = globalThis.__hmrServerMtime;
|
|
23618
23818
|
globalThis.__hmrServerMtime = serverMtime;
|
|
23619
23819
|
const cached = globalThis.__hmrDevResult;
|
|
@@ -23650,8 +23850,8 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23650
23850
|
return true;
|
|
23651
23851
|
}, resolveAbsoluteVersion2 = async () => {
|
|
23652
23852
|
const candidates = [
|
|
23653
|
-
|
|
23654
|
-
|
|
23853
|
+
resolve39(import.meta.dir, "..", "..", "package.json"),
|
|
23854
|
+
resolve39(import.meta.dir, "..", "package.json")
|
|
23655
23855
|
];
|
|
23656
23856
|
const [candidate, ...remaining] = candidates;
|
|
23657
23857
|
if (!candidate) {
|
|
@@ -23677,7 +23877,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23677
23877
|
const entries = await readdir5(vendorDir).catch(() => emptyStringArray);
|
|
23678
23878
|
await Promise.all(entries.filter((entry) => entry.endsWith(".js")).map(async (entry) => {
|
|
23679
23879
|
const webPath = `/${framework}/vendor/${entry}`;
|
|
23680
|
-
const bytes = await Bun.file(
|
|
23880
|
+
const bytes = await Bun.file(resolve39(vendorDir, entry)).bytes();
|
|
23681
23881
|
assetStore.set(webPath, bytes);
|
|
23682
23882
|
}));
|
|
23683
23883
|
}, devBuild = async (config) => {
|
|
@@ -23745,11 +23945,11 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23745
23945
|
cleanStaleAssets(state.assetStore, manifest, state.resolvedPaths.buildDir);
|
|
23746
23946
|
recordStep("populate asset store", stepStartedAt);
|
|
23747
23947
|
stepStartedAt = performance.now();
|
|
23748
|
-
const reactVendorDir =
|
|
23749
|
-
const angularVendorDir =
|
|
23750
|
-
const svelteVendorDir =
|
|
23751
|
-
const vueVendorDir =
|
|
23752
|
-
const depVendorDir =
|
|
23948
|
+
const reactVendorDir = resolve39(state.resolvedPaths.buildDir, "react", "vendor");
|
|
23949
|
+
const angularVendorDir = resolve39(state.resolvedPaths.buildDir, "angular", "vendor");
|
|
23950
|
+
const svelteVendorDir = resolve39(state.resolvedPaths.buildDir, "svelte", "vendor");
|
|
23951
|
+
const vueVendorDir = resolve39(state.resolvedPaths.buildDir, "vue", "vendor");
|
|
23952
|
+
const depVendorDir = resolve39(state.resolvedPaths.buildDir, "vendor");
|
|
23753
23953
|
const { buildDepVendor: buildDepVendor2 } = await Promise.resolve().then(() => (init_buildDepVendor(), exports_buildDepVendor));
|
|
23754
23954
|
const [, angularSpecs, , , , , depPaths] = await Promise.all([
|
|
23755
23955
|
config.reactDirectory ? buildReactVendor(state.resolvedPaths.buildDir) : Promise.resolve(undefined),
|
|
@@ -23827,7 +24027,7 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
23827
24027
|
manifest
|
|
23828
24028
|
};
|
|
23829
24029
|
globalThis.__hmrDevResult = result;
|
|
23830
|
-
globalThis.__hmrServerMtime = statSync5(
|
|
24030
|
+
globalThis.__hmrServerMtime = statSync5(resolve39(Bun.main)).mtimeMs;
|
|
23831
24031
|
return result;
|
|
23832
24032
|
};
|
|
23833
24033
|
var init_devBuild = __esm(() => {
|
|
@@ -23864,5 +24064,5 @@ export {
|
|
|
23864
24064
|
build
|
|
23865
24065
|
};
|
|
23866
24066
|
|
|
23867
|
-
//# debugId=
|
|
24067
|
+
//# debugId=3C052D33821FDEB764756E2164756E21
|
|
23868
24068
|
//# sourceMappingURL=build.js.map
|