@absolutejs/absolute 0.20.0-beta.129 → 0.20.0-beta.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/changelog.json +26 -0
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +612 -558
- package/dist/build.js.map +7 -7
- package/dist/cli/{buildDepVendor-rz5w5cp0.js → buildDepVendor-8akhr8n8.js} +3 -6
- package/dist/cli/{dev-m9qttkr7.js → dev-qg7fr16s.js} +26 -1
- package/dist/cli/index-4rhxthsy.js +8 -0
- package/dist/cli/index.js +1 -1
- package/dist/dev/serverBootstrap.js +44 -22
- package/dist/index.js +633 -576
- package/dist/index.js.map +10 -10
- package/dist/mobile/remoteMacAgentEntry.js +1 -1
- package/dist/src/dev/fileHashTracker.d.ts +1 -0
- package/dist/src/dev/hot/appLifecycle.d.ts +1 -0
- package/dist/src/dev/hot/plugin.d.ts +11 -1
- package/dist/src/dev/hot/reload.d.ts +3 -0
- package/dist/src/dev/hot/runtime.d.ts +5 -1
- package/dist/types/globals.d.ts +10 -0
- package/package.json +1 -1
package/dist/build.js
CHANGED
|
@@ -21890,7 +21890,7 @@ var init_compileAngular = __esm(() => {
|
|
|
21890
21890
|
|
|
21891
21891
|
// node_modules/content-tag/pkg/node/content_tag.cjs
|
|
21892
21892
|
var require_content_tag = __commonJS(function(exports, module) {
|
|
21893
|
-
var __dirname = "/tmp/claude-1000/-home-alexkahn-onspark-absolutejs-dealroom/2bfd88db-2cb9-4088-8977-3c07598f96a5/scratchpad/
|
|
21893
|
+
var __dirname = "/tmp/claude-1000/-home-alexkahn-onspark-absolutejs-dealroom/2bfd88db-2cb9-4088-8977-3c07598f96a5/scratchpad/gate130/node_modules/content-tag/pkg/node";
|
|
21894
21894
|
var imports = {};
|
|
21895
21895
|
imports["__wbindgen_placeholder__"] = exports;
|
|
21896
21896
|
var wasm;
|
|
@@ -26189,7 +26189,7 @@ var init_pageMetadata = __esm(() => {
|
|
|
26189
26189
|
});
|
|
26190
26190
|
|
|
26191
26191
|
// src/dev/fileHashTracker.ts
|
|
26192
|
-
import { readFileSync as readFileSync31 } from "fs";
|
|
26192
|
+
import { readFileSync as readFileSync31, statSync as statSync7 } from "fs";
|
|
26193
26193
|
var computeFileHash = (filePath) => {
|
|
26194
26194
|
try {
|
|
26195
26195
|
const fileContent = readFileSync31(filePath);
|
|
@@ -26204,6 +26204,14 @@ var computeFileHash = (filePath) => {
|
|
|
26204
26204
|
return true;
|
|
26205
26205
|
}
|
|
26206
26206
|
return previousHash !== currentHash;
|
|
26207
|
+
}, predatesProcess = (filePath, previousHashes, processStart = performance.timeOrigin) => {
|
|
26208
|
+
if (previousHashes.has(normalizePath(filePath)))
|
|
26209
|
+
return false;
|
|
26210
|
+
try {
|
|
26211
|
+
return statSync7(filePath).mtimeMs < processStart;
|
|
26212
|
+
} catch {
|
|
26213
|
+
return false;
|
|
26214
|
+
}
|
|
26207
26215
|
};
|
|
26208
26216
|
var init_fileHashTracker = __esm(() => {
|
|
26209
26217
|
init_constants();
|
|
@@ -26509,7 +26517,7 @@ __export(exports_resolveOwningComponents, {
|
|
|
26509
26517
|
resolveDescendantsOfParent: () => resolveDescendantsOfParent,
|
|
26510
26518
|
resolveOwningComponents: () => resolveOwningComponents
|
|
26511
26519
|
});
|
|
26512
|
-
import { readdirSync as readdirSync11, readFileSync as readFileSync32, statSync as
|
|
26520
|
+
import { readdirSync as readdirSync11, readFileSync as readFileSync32, statSync as statSync8 } from "fs";
|
|
26513
26521
|
import { dirname as dirname30, extname as extname14, join as join49, resolve as resolve42 } from "path";
|
|
26514
26522
|
import ts19 from "typescript";
|
|
26515
26523
|
var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") || file5.endsWith(".tsx"), walkAngularSourceFiles = (root) => {
|
|
@@ -26644,7 +26652,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
|
|
|
26644
26652
|
}
|
|
26645
26653
|
let rootStat;
|
|
26646
26654
|
try {
|
|
26647
|
-
rootStat =
|
|
26655
|
+
rootStat = statSync8(userAngularRoot);
|
|
26648
26656
|
} catch {
|
|
26649
26657
|
return out;
|
|
26650
26658
|
}
|
|
@@ -26702,7 +26710,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
|
|
|
26702
26710
|
const angularRootNorm = safeNormalize(angularRoot);
|
|
26703
26711
|
for (const candidate of candidates) {
|
|
26704
26712
|
try {
|
|
26705
|
-
if (
|
|
26713
|
+
if (statSync8(candidate).isFile()) {
|
|
26706
26714
|
const norm = safeNormalize(candidate);
|
|
26707
26715
|
if (!norm.startsWith(angularRootNorm))
|
|
26708
26716
|
return null;
|
|
@@ -26759,7 +26767,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file5) => file5.endsWith(".ts") ||
|
|
|
26759
26767
|
const norm = safeNormalize(params.changedFilePath);
|
|
26760
26768
|
let rootStat;
|
|
26761
26769
|
try {
|
|
26762
|
-
rootStat =
|
|
26770
|
+
rootStat = statSync8(params.userAngularRoot);
|
|
26763
26771
|
} catch {
|
|
26764
26772
|
return [];
|
|
26765
26773
|
}
|
|
@@ -33221,7 +33229,7 @@ __export(exports_moduleServer, {
|
|
|
33221
33229
|
warmPage: () => warmPage,
|
|
33222
33230
|
warnIfReactFastRefreshUnsupported: () => warnIfReactFastRefreshUnsupported
|
|
33223
33231
|
});
|
|
33224
|
-
import { existsSync as existsSync45, readFileSync as readFileSync40, realpathSync as realpathSync4, statSync as
|
|
33232
|
+
import { existsSync as existsSync45, readFileSync as readFileSync40, realpathSync as realpathSync4, statSync as statSync9 } from "fs";
|
|
33225
33233
|
import { basename as basename20, dirname as dirname35, extname as extname15, join as join60, resolve as resolve51, relative as relative23 } from "path";
|
|
33226
33234
|
var SRC_PREFIX = "/@src/", BROWSER_DEFINE, jsTranspiler2, legacyDecoratorTsconfig, tsTranspiler2, tsxTranspiler, TRANSPILABLE, ALL_EXPORTS_RE, STRING_CONTENTS_RE, preserveTypeExports = (originalSource, transpiled, valueExports) => {
|
|
33227
33235
|
const codeOnly = originalSource.replace(STRING_CONTENTS_RE, '""');
|
|
@@ -33279,7 +33287,7 @@ ${stubs}
|
|
|
33279
33287
|
if (cached !== undefined)
|
|
33280
33288
|
return `${base}?v=${buildVersion(cached, absPath)}`;
|
|
33281
33289
|
try {
|
|
33282
|
-
const mtime = Math.round(
|
|
33290
|
+
const mtime = Math.round(statSync9(absPath).mtimeMs);
|
|
33283
33291
|
mtimeCache.set(absPath, mtime);
|
|
33284
33292
|
return `${base}?v=${buildVersion(mtime, absPath)}`;
|
|
33285
33293
|
} catch {
|
|
@@ -33933,7 +33941,7 @@ export default {};
|
|
|
33933
33941
|
return transformAndCacheVue(filePath, projectRoot, rewriter, vueDir, stylePreprocessors);
|
|
33934
33942
|
if (!TRANSPILABLE.has(ext))
|
|
33935
33943
|
return;
|
|
33936
|
-
const stat4 =
|
|
33944
|
+
const stat4 = statSync9(filePath);
|
|
33937
33945
|
const resolvedVueDir = vueDir ? resolve51(vueDir) : undefined;
|
|
33938
33946
|
let content = REACT_EXTENSIONS.has(ext) ? transformReactFile(filePath, projectRoot, rewriter) : transformPlainFile(filePath, projectRoot, rewriter, resolvedVueDir);
|
|
33939
33947
|
const isAngularGeneratedJs = ext === ".js" && filePath.replace(/\\/g, "/").includes("/.absolutejs/generated/angular/");
|
|
@@ -33961,12 +33969,12 @@ export default {};
|
|
|
33961
33969
|
cachedAngularUserRoot = configuredAngularUserRoot ?? null;
|
|
33962
33970
|
return cachedAngularUserRoot;
|
|
33963
33971
|
}, configuredAngularUserRoot, transformAndCacheSvelte = async (filePath, projectRoot, rewriter, stylePreprocessors) => {
|
|
33964
|
-
const stat4 =
|
|
33972
|
+
const stat4 = statSync9(filePath);
|
|
33965
33973
|
const content = await transformSvelteFile(filePath, projectRoot, rewriter, stylePreprocessors);
|
|
33966
33974
|
setTransformed(filePath, content, stat4.mtimeMs, extractImportedFiles(content, projectRoot));
|
|
33967
33975
|
return jsResponse(content);
|
|
33968
33976
|
}, transformAndCacheVue = async (filePath, projectRoot, rewriter, vueDir, stylePreprocessors) => {
|
|
33969
|
-
const stat4 =
|
|
33977
|
+
const stat4 = statSync9(filePath);
|
|
33970
33978
|
const content = await transformVueFile(filePath, projectRoot, rewriter, vueDir, stylePreprocessors);
|
|
33971
33979
|
setTransformed(filePath, content, stat4.mtimeMs, extractImportedFiles(content, projectRoot));
|
|
33972
33980
|
return jsResponse(content);
|
|
@@ -34524,7 +34532,7 @@ var handleHTMXUpdate = async (htmxFilePath) => {
|
|
|
34524
34532
|
var init_simpleHTMXHMR = () => {};
|
|
34525
34533
|
|
|
34526
34534
|
// src/dev/backendGraph.ts
|
|
34527
|
-
import { readFileSync as readFileSync41, realpathSync as realpathSync5, statSync as
|
|
34535
|
+
import { readFileSync as readFileSync41, realpathSync as realpathSync5, statSync as statSync10 } from "fs";
|
|
34528
34536
|
import { dirname as dirname36, extname as extname16, resolve as resolve54 } from "path";
|
|
34529
34537
|
var SOURCE_FILE, VENDORED, LOADERS, fileCache, transpilers, transpilerFor = (path2) => {
|
|
34530
34538
|
const loader = LOADERS[extname16(path2)] ?? "ts";
|
|
@@ -34549,7 +34557,7 @@ var SOURCE_FILE, VENDORED, LOADERS, fileCache, transpilers, transpilerFor = (pat
|
|
|
34549
34557
|
}, readImports = (path2) => {
|
|
34550
34558
|
let mtimeMs;
|
|
34551
34559
|
try {
|
|
34552
|
-
({ mtimeMs } =
|
|
34560
|
+
({ mtimeMs } = statSync10(path2));
|
|
34553
34561
|
} catch {
|
|
34554
34562
|
fileCache.delete(path2);
|
|
34555
34563
|
return [];
|
|
@@ -35305,6 +35313,7 @@ __export(exports_runtime, {
|
|
|
35305
35313
|
setAnalysis: () => setAnalysis,
|
|
35306
35314
|
setCurrent: () => setCurrent
|
|
35307
35315
|
});
|
|
35316
|
+
import { relative as relative24 } from "path";
|
|
35308
35317
|
var records, recordFor = (path2) => {
|
|
35309
35318
|
const existing = records.get(path2);
|
|
35310
35319
|
if (existing)
|
|
@@ -35314,6 +35323,7 @@ var records, recordFor = (path2) => {
|
|
|
35314
35323
|
generation: 0,
|
|
35315
35324
|
keys: new Map,
|
|
35316
35325
|
lastChanged: new Set,
|
|
35326
|
+
lastTimings: new Map,
|
|
35317
35327
|
meta: {},
|
|
35318
35328
|
path: path2,
|
|
35319
35329
|
revisions: new Map,
|
|
@@ -35365,11 +35375,23 @@ var records, recordFor = (path2) => {
|
|
|
35365
35375
|
reran: new Set,
|
|
35366
35376
|
seen: new Set,
|
|
35367
35377
|
slots: new Map,
|
|
35378
|
+
timings: new Map,
|
|
35368
35379
|
...decideReruns(record, plan, meta)
|
|
35369
35380
|
};
|
|
35370
35381
|
record.pending = pending2;
|
|
35371
35382
|
const { generation } = pending2;
|
|
35372
|
-
const owned = (id, work) =>
|
|
35383
|
+
const owned = (id, work) => {
|
|
35384
|
+
const startedAt = performance.now();
|
|
35385
|
+
const result = runOwned(ownerOf(path2, id), generation, work);
|
|
35386
|
+
pending2.timings.set(id, performance.now() - startedAt);
|
|
35387
|
+
return result;
|
|
35388
|
+
};
|
|
35389
|
+
const ownedAsync = async (id, work) => {
|
|
35390
|
+
const startedAt = performance.now();
|
|
35391
|
+
const result = await runOwned(ownerOf(path2, id), generation, work);
|
|
35392
|
+
pending2.timings.set(id, performance.now() - startedAt);
|
|
35393
|
+
return result;
|
|
35394
|
+
};
|
|
35373
35395
|
const kept = (id) => {
|
|
35374
35396
|
pending2.seen.add(id);
|
|
35375
35397
|
const previous = record.slots.get(id);
|
|
@@ -35395,7 +35417,7 @@ var records, recordFor = (path2) => {
|
|
|
35395
35417
|
ca: async (name, id, init) => {
|
|
35396
35418
|
if (kept(id) && name in record.cells)
|
|
35397
35419
|
return;
|
|
35398
|
-
record.cells[name] = await
|
|
35420
|
+
record.cells[name] = await ownedAsync(id, init);
|
|
35399
35421
|
store(id, undefined);
|
|
35400
35422
|
},
|
|
35401
35423
|
end: () => commit(record, pending2),
|
|
@@ -35409,7 +35431,7 @@ var records, recordFor = (path2) => {
|
|
|
35409
35431
|
const previous = kept(id);
|
|
35410
35432
|
if (previous)
|
|
35411
35433
|
return previous.value;
|
|
35412
|
-
return store(id, await
|
|
35434
|
+
return store(id, await ownedAsync(id, factory));
|
|
35413
35435
|
},
|
|
35414
35436
|
r: (id, effect) => {
|
|
35415
35437
|
if (kept(id))
|
|
@@ -35420,7 +35442,7 @@ var records, recordFor = (path2) => {
|
|
|
35420
35442
|
ra: async (id, effect) => {
|
|
35421
35443
|
if (kept(id))
|
|
35422
35444
|
return;
|
|
35423
|
-
await
|
|
35445
|
+
await ownedAsync(id, effect);
|
|
35424
35446
|
store(id, undefined);
|
|
35425
35447
|
}
|
|
35426
35448
|
};
|
|
@@ -35440,7 +35462,7 @@ var records, recordFor = (path2) => {
|
|
|
35440
35462
|
}, statementOwners = (path2, ids) => new Set([...ids].map((id) => ownerOf(path2, id))), logDisposed = (path2, counts) => {
|
|
35441
35463
|
const parts = Object.entries(counts).map(([kind, count]) => `${count} ${kind}${count === 1 ? "" : "s"}`);
|
|
35442
35464
|
if (parts.length > 0)
|
|
35443
|
-
console.log(`[hmr] stopped ${parts.join(", ")} started by replaced code in ${path2}`);
|
|
35465
|
+
console.log(`[hmr] stopped ${parts.join(", ")} started by replaced code in ${relative24(process.cwd(), path2) || path2}`);
|
|
35444
35466
|
}, stopReplaced = async (record, pending2, replaced) => {
|
|
35445
35467
|
const owners = statementOwners(record.path, replaced.keys());
|
|
35446
35468
|
const counts = await disposeResources((owner, generation) => owners.has(owner) && generation < pending2.generation);
|
|
@@ -35459,6 +35481,7 @@ var records, recordFor = (path2) => {
|
|
|
35459
35481
|
record.meta = pending2.meta;
|
|
35460
35482
|
record.keys = pending2.keys;
|
|
35461
35483
|
record.lastChanged = pending2.changedExports;
|
|
35484
|
+
record.lastTimings = pending2.timings;
|
|
35462
35485
|
for (const name of pending2.changedExports)
|
|
35463
35486
|
record.revisions.set(name, (record.revisions.get(name) ?? 0) + 1);
|
|
35464
35487
|
if (replaced.size === 0)
|
|
@@ -35519,12 +35542,12 @@ var records, recordFor = (path2) => {
|
|
|
35519
35542
|
};
|
|
35520
35543
|
var init_runtime = __esm(() => {
|
|
35521
35544
|
init_hotResources();
|
|
35522
|
-
records = new Map;
|
|
35545
|
+
records = globalThis.__absoluteHotRecords ??= new Map;
|
|
35523
35546
|
});
|
|
35524
35547
|
|
|
35525
35548
|
// src/dev/hot/plugin.ts
|
|
35526
35549
|
import { mkdirSync as mkdirSync16, readFileSync as readFileSync42, realpathSync as realpathSync6, writeFileSync as writeFileSync11 } from "fs";
|
|
35527
|
-
import { extname as extname18, join as join61, relative as
|
|
35550
|
+
import { extname as extname18, join as join61, relative as relative25, resolve as resolve55, sep as sep6 } from "path";
|
|
35528
35551
|
var SOURCE, TEST_FILE, GENERATED, ABSOLUTE_ROOT, realPath3 = (path2) => {
|
|
35529
35552
|
try {
|
|
35530
35553
|
return realpathSync6(path2);
|
|
@@ -35534,7 +35557,8 @@ var SOURCE, TEST_FILE, GENERATED, ABSOLUTE_ROOT, realPath3 = (path2) => {
|
|
|
35534
35557
|
}, typescript, loadTypescript = async () => {
|
|
35535
35558
|
typescript ??= await import("typescript");
|
|
35536
35559
|
return typescript;
|
|
35537
|
-
},
|
|
35560
|
+
}, shared, analyses, isHotManaged = (path2) => {
|
|
35561
|
+
const state2 = shared.installed;
|
|
35538
35562
|
if (!state2)
|
|
35539
35563
|
return false;
|
|
35540
35564
|
const file5 = realPath3(path2);
|
|
@@ -35563,6 +35587,7 @@ var SOURCE, TEST_FILE, GENERATED, ABSOLUTE_ROOT, realPath3 = (path2) => {
|
|
|
35563
35587
|
return typeof Reflect.get(value, "reason") === "string";
|
|
35564
35588
|
return status === true && typeof Reflect.get(value, "code") === "string" && typeof Reflect.get(value, "exports") === "object" && Array.isArray(Reflect.get(value, "reexports")) && Array.isArray(Reflect.get(value, "plan"));
|
|
35565
35589
|
}, cachePath = (cacheDir2, key) => join61(cacheDir2, `${key}.json`), readCached = (key) => {
|
|
35590
|
+
const state2 = shared.installed;
|
|
35566
35591
|
if (!state2)
|
|
35567
35592
|
return;
|
|
35568
35593
|
try {
|
|
@@ -35572,6 +35597,7 @@ var SOURCE, TEST_FILE, GENERATED, ABSOLUTE_ROOT, realPath3 = (path2) => {
|
|
|
35572
35597
|
return;
|
|
35573
35598
|
}
|
|
35574
35599
|
}, writeCached = (key, analysis) => {
|
|
35600
|
+
const state2 = shared.installed;
|
|
35575
35601
|
if (!state2)
|
|
35576
35602
|
return;
|
|
35577
35603
|
try {
|
|
@@ -35600,16 +35626,21 @@ var init_plugin = __esm(() => {
|
|
|
35600
35626
|
TEST_FILE = /(?:\.(?:spec|test)\.[cm]?[jt]sx?$)|(?:[\\/]__tests__[\\/])/;
|
|
35601
35627
|
GENERATED = /(?:^|[\\/])(?:build|generated|compiled|indexes|\.absolutejs|node_modules|dist)(?:[\\/]|$)/;
|
|
35602
35628
|
ABSOLUTE_ROOT = resolve55(import.meta.dir, "..", "..", "..");
|
|
35603
|
-
|
|
35629
|
+
shared = globalThis.__absoluteHotPlugin ??= {
|
|
35630
|
+
analyses: new Map,
|
|
35631
|
+
installed: undefined
|
|
35632
|
+
};
|
|
35633
|
+
({ analyses } = shared);
|
|
35604
35634
|
});
|
|
35605
35635
|
|
|
35606
35636
|
// src/dev/hot/reload.ts
|
|
35607
35637
|
var exports_reload = {};
|
|
35608
35638
|
__export(exports_reload, {
|
|
35609
|
-
applyServerChange: () => applyServerChange
|
|
35639
|
+
applyServerChange: () => applyServerChange,
|
|
35640
|
+
reportEntryUpdate: () => reportEntryUpdate
|
|
35610
35641
|
});
|
|
35611
35642
|
import { readFileSync as readFileSync43, realpathSync as realpathSync7 } from "fs";
|
|
35612
|
-
import { relative as
|
|
35643
|
+
import { relative as relative26 } from "path";
|
|
35613
35644
|
var MAX_PROPAGATION_STEPS = 500, realPath4 = (path2) => {
|
|
35614
35645
|
try {
|
|
35615
35646
|
return realpathSync7(path2);
|
|
@@ -35647,7 +35678,21 @@ var MAX_PROPAGATION_STEPS = 500, realPath4 = (path2) => {
|
|
|
35647
35678
|
if (typeof namespace !== "object" || namespace === null)
|
|
35648
35679
|
throw new Error(`${path2} did not evaluate to a module`);
|
|
35649
35680
|
return Object.fromEntries(Object.entries(namespace));
|
|
35650
|
-
}, display = (path2) =>
|
|
35681
|
+
}, display = (path2) => relative26(process.cwd(), path2) || path2, SLOW_UPDATE_MS = 500, SLOWEST_SHOWN = 3, statementLabel = (id) => {
|
|
35682
|
+
const name = id.slice(id.indexOf(":") + 1);
|
|
35683
|
+
return /^\d+$/.test(name) ? `statement #${name}` : name;
|
|
35684
|
+
}, slowestStatements = (modules) => modules.flatMap((module) => [...moduleRecord(module)?.lastTimings ?? []].map(([id, duration]) => ({
|
|
35685
|
+
duration,
|
|
35686
|
+
label: `${display(module)} ${statementLabel(id)}`
|
|
35687
|
+
}))).sort((left, right) => right.duration - left.duration).slice(0, SLOWEST_SHOWN).map(({ label, duration }) => `${label} ${Math.round(duration)}ms`), SHOWN_STATEMENTS = 5, reportEntryUpdate = (entryPath, elapsed) => {
|
|
35688
|
+
const entry = realPath4(entryPath);
|
|
35689
|
+
const reran = [...moduleRecord(entry)?.lastTimings.keys() ?? []].map(statementLabel);
|
|
35690
|
+
const shown = reran.slice(0, SHOWN_STATEMENTS).join(", ");
|
|
35691
|
+
const more = reran.length > SHOWN_STATEMENTS ? ` and ${reran.length - SHOWN_STATEMENTS} more` : "";
|
|
35692
|
+
console.log(`[hmr] server: ${display(entry)} updated in ${Math.round(elapsed)}ms${reran.length > 0 ? ` (re-ran: ${shown}${more})` : ""}`);
|
|
35693
|
+
if (elapsed >= SLOW_UPDATE_MS)
|
|
35694
|
+
console.log(`[hmr] server: slowest statements: ${slowestStatements([entry]).join(", ")}`);
|
|
35695
|
+
}, advance = async (path2) => {
|
|
35651
35696
|
const record = moduleRecord(path2);
|
|
35652
35697
|
const before = { ...record?.meta ?? {} };
|
|
35653
35698
|
const shapeBefore = shapeOf(record?.analysis);
|
|
@@ -35704,6 +35749,11 @@ var MAX_PROPAGATION_STEPS = 500, realPath4 = (path2) => {
|
|
|
35704
35749
|
const elapsed = Math.round(performance.now() - startedAt);
|
|
35705
35750
|
const others = modules.slice(1).map(display);
|
|
35706
35751
|
console.log(`[hmr] server: ${display(path2)} updated in ${elapsed}ms${others.length > 0 || entryAffected ? ` (also re-ran: ${[...others, ...entryAffected ? [display(entry)] : []].join(", ")})` : ""}`);
|
|
35752
|
+
if (elapsed >= SLOW_UPDATE_MS)
|
|
35753
|
+
console.log(`[hmr] server: slowest statements: ${slowestStatements([
|
|
35754
|
+
...modules,
|
|
35755
|
+
...entryAffected ? [entry] : []
|
|
35756
|
+
]).join(", ")}`);
|
|
35707
35757
|
return { entry: entryAffected, modules, ms: elapsed, status: "applied" };
|
|
35708
35758
|
}, propagate = async (pending2, entry, progress) => {
|
|
35709
35759
|
const [next, ...rest] = pending2;
|
|
@@ -35741,9 +35791,10 @@ var MAX_PROPAGATION_STEPS = 500, realPath4 = (path2) => {
|
|
|
35741
35791
|
}, reportFailure = (path2, error) => {
|
|
35742
35792
|
console.error(`[hmr] server: ${display(path2)} failed to update; the previous version keeps serving.`);
|
|
35743
35793
|
console.error(error);
|
|
35744
|
-
},
|
|
35745
|
-
const
|
|
35746
|
-
|
|
35794
|
+
}, applyServerChange = (path2, entryPath) => {
|
|
35795
|
+
const previous = globalThis.__absoluteHotApplyChain ?? Promise.resolve();
|
|
35796
|
+
const result = previous.then(() => apply(path2, entryPath));
|
|
35797
|
+
globalThis.__absoluteHotApplyChain = result.catch(() => {
|
|
35747
35798
|
return;
|
|
35748
35799
|
});
|
|
35749
35800
|
return result;
|
|
@@ -35752,7 +35803,6 @@ var init_reload = __esm(() => {
|
|
|
35752
35803
|
init_backendGraph();
|
|
35753
35804
|
init_plugin();
|
|
35754
35805
|
init_runtime();
|
|
35755
|
-
chain = Promise.resolve();
|
|
35756
35806
|
});
|
|
35757
35807
|
|
|
35758
35808
|
// src/dev/rebuildTrigger.ts
|
|
@@ -35762,20 +35812,20 @@ __export(exports_rebuildTrigger, {
|
|
|
35762
35812
|
queueFileChange: () => queueFileChange,
|
|
35763
35813
|
triggerRebuild: () => triggerRebuild
|
|
35764
35814
|
});
|
|
35765
|
-
import { existsSync as existsSync46, readdirSync as readdirSync13, rmSync as rmSync4, statSync as
|
|
35815
|
+
import { existsSync as existsSync46, readdirSync as readdirSync13, rmSync as rmSync4, statSync as statSync11 } from "fs";
|
|
35766
35816
|
import {
|
|
35767
35817
|
basename as basename21,
|
|
35768
35818
|
dirname as dirname38,
|
|
35769
35819
|
isAbsolute as isAbsolute10,
|
|
35770
35820
|
join as join62,
|
|
35771
|
-
relative as
|
|
35821
|
+
relative as relative27,
|
|
35772
35822
|
resolve as resolvePath4,
|
|
35773
35823
|
sep as sep7
|
|
35774
35824
|
} from "path";
|
|
35775
35825
|
var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSsrCssCaches = () => {
|
|
35776
35826
|
clearSpaRouteCssCaches();
|
|
35777
35827
|
clearSiblingCssCache();
|
|
35778
|
-
}, runSequentially = (items, action) => items.reduce((
|
|
35828
|
+
}, runSequentially = (items, action) => items.reduce((chain, item) => chain.then(() => action(item)), Promise.resolve()), getStyleTransformConfig = (config) => createStyleTransformConfig(config.stylePreprocessors, config.postcss), recompileTailwindForFastPath = async (state2, config, files) => {
|
|
35779
35829
|
if (!config.tailwind)
|
|
35780
35830
|
return;
|
|
35781
35831
|
if (!files.some(isTailwindCandidate))
|
|
@@ -35783,20 +35833,20 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
35783
35833
|
const startedAt = performance.now();
|
|
35784
35834
|
try {
|
|
35785
35835
|
const { computeFrameworkTailwindSources: computeFrameworkTailwindSources2 } = await Promise.resolve().then(() => (init_compileTailwind(), exports_compileTailwind));
|
|
35786
|
-
const { cssChanged } = await incrementalTailwindBuild(config.tailwind,
|
|
35836
|
+
const { cssChanged } = await incrementalTailwindBuild(config.tailwind, state2.resolvedPaths.buildDir, files, getStyleTransformConfig(config), computeFrameworkTailwindSources2(config));
|
|
35787
35837
|
if (!cssChanged)
|
|
35788
35838
|
return;
|
|
35789
35839
|
try {
|
|
35790
|
-
const outputPath = resolvePath4(
|
|
35840
|
+
const outputPath = resolvePath4(state2.resolvedPaths.buildDir, config.tailwind.output);
|
|
35791
35841
|
const bytes = await Bun.file(outputPath).bytes();
|
|
35792
35842
|
const webPath = `/${config.tailwind.output.replace(/^\/+/, "")}`;
|
|
35793
|
-
|
|
35843
|
+
state2.assetStore.set(webPath, bytes);
|
|
35794
35844
|
} catch {}
|
|
35795
|
-
broadcastToClients(
|
|
35845
|
+
broadcastToClients(state2, {
|
|
35796
35846
|
data: {
|
|
35797
35847
|
cause: files.filter(isTailwindCandidate),
|
|
35798
35848
|
framework: "tailwind",
|
|
35799
|
-
manifest:
|
|
35849
|
+
manifest: state2.manifest,
|
|
35800
35850
|
serverDuration: Math.round(performance.now() - startedAt)
|
|
35801
35851
|
},
|
|
35802
35852
|
message: "Tailwind utilities recompiled",
|
|
@@ -35876,8 +35926,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
35876
35926
|
detectedFw = detected !== "ignored" ? detected : affectedFrameworks[0];
|
|
35877
35927
|
}
|
|
35878
35928
|
return { ...parsed, framework: detectedFw };
|
|
35879
|
-
}, isValidDeletedAffectedFile = (affectedFile, deletedPathResolved, processedFiles) => affectedFile !== deletedPathResolved && !processedFiles.has(affectedFile) && existsSync46(affectedFile), FRAMEWORK_DIR_KEYS_FOR_CLEANUP, removeStaleGenerated = (
|
|
35880
|
-
const { config } =
|
|
35929
|
+
}, isValidDeletedAffectedFile = (affectedFile, deletedPathResolved, processedFiles) => affectedFile !== deletedPathResolved && !processedFiles.has(affectedFile) && existsSync46(affectedFile), FRAMEWORK_DIR_KEYS_FOR_CLEANUP, removeStaleGenerated = (state2, deletedFile) => {
|
|
35930
|
+
const { config } = state2;
|
|
35881
35931
|
const cwd2 = process.cwd();
|
|
35882
35932
|
const absDeleted = resolvePath4(deletedFile).replace(/\\/g, "/");
|
|
35883
35933
|
for (const { configKey, framework } of FRAMEWORK_DIR_KEYS_FOR_CLEANUP) {
|
|
@@ -35903,11 +35953,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
35903
35953
|
}
|
|
35904
35954
|
return;
|
|
35905
35955
|
}
|
|
35906
|
-
}, collectDeletedFileAffected = (
|
|
35907
|
-
|
|
35908
|
-
removeStaleGenerated(
|
|
35956
|
+
}, collectDeletedFileAffected = (state2, filePathInSet, processedFiles, validFiles) => {
|
|
35957
|
+
state2.fileHashes.delete(filePathInSet);
|
|
35958
|
+
removeStaleGenerated(state2, filePathInSet);
|
|
35909
35959
|
try {
|
|
35910
|
-
const affectedFiles = getAffectedFiles(
|
|
35960
|
+
const affectedFiles = getAffectedFiles(state2.dependencyGraph, filePathInSet);
|
|
35911
35961
|
const deletedPathResolved = resolvePath4(filePathInSet);
|
|
35912
35962
|
affectedFiles.forEach((affectedFile) => {
|
|
35913
35963
|
if (isValidDeletedAffectedFile(affectedFile, deletedPathResolved, processedFiles)) {
|
|
@@ -35916,9 +35966,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
35916
35966
|
}
|
|
35917
35967
|
});
|
|
35918
35968
|
} catch {}
|
|
35919
|
-
}, incrementDependentVersions = (
|
|
35969
|
+
}, incrementDependentVersions = (state2, normalizedFilePath) => {
|
|
35920
35970
|
try {
|
|
35921
|
-
const dependents =
|
|
35971
|
+
const dependents = state2.dependencyGraph.dependents.get(normalizedFilePath);
|
|
35922
35972
|
if (!dependents || dependents.size === 0) {
|
|
35923
35973
|
return;
|
|
35924
35974
|
}
|
|
@@ -35926,7 +35976,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
35926
35976
|
if (dependentFiles.length === 0) {
|
|
35927
35977
|
return;
|
|
35928
35978
|
}
|
|
35929
|
-
incrementSourceFileVersions(
|
|
35979
|
+
incrementSourceFileVersions(state2, dependentFiles);
|
|
35930
35980
|
} catch {}
|
|
35931
35981
|
}, addUnprocessedFile = (normalizedFilePath, processedFiles, validFiles) => {
|
|
35932
35982
|
if (processedFiles.has(normalizedFilePath)) {
|
|
@@ -35934,9 +35984,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
35934
35984
|
}
|
|
35935
35985
|
validFiles.push(normalizedFilePath);
|
|
35936
35986
|
processedFiles.add(normalizedFilePath);
|
|
35937
|
-
}, collectChangedFileAffected = (
|
|
35987
|
+
}, collectChangedFileAffected = (state2, normalizedFilePath, processedFiles, validFiles) => {
|
|
35938
35988
|
try {
|
|
35939
|
-
const affectedFiles = getAffectedFiles(
|
|
35989
|
+
const affectedFiles = getAffectedFiles(state2.dependencyGraph, normalizedFilePath);
|
|
35940
35990
|
affectedFiles.forEach((affectedFile) => {
|
|
35941
35991
|
if (!processedFiles.has(affectedFile) && affectedFile !== normalizedFilePath && existsSync46(affectedFile)) {
|
|
35942
35992
|
validFiles.push(affectedFile);
|
|
@@ -35946,9 +35996,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
35946
35996
|
} catch {
|
|
35947
35997
|
addUnprocessedFile(normalizedFilePath, processedFiles, validFiles);
|
|
35948
35998
|
}
|
|
35949
|
-
}, processChangedFile2 = (
|
|
35999
|
+
}, processChangedFile2 = (state2, filePathInSet, processedFiles, validFiles) => {
|
|
35950
36000
|
const fileHash = computeFileHash(filePathInSet);
|
|
35951
|
-
const storedHash =
|
|
36001
|
+
const storedHash = state2.fileHashes.get(filePathInSet);
|
|
35952
36002
|
if (storedHash !== undefined && storedHash === fileHash) {
|
|
35953
36003
|
return;
|
|
35954
36004
|
}
|
|
@@ -35957,38 +36007,38 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
35957
36007
|
validFiles.push(normalizedFilePath);
|
|
35958
36008
|
processedFiles.add(normalizedFilePath);
|
|
35959
36009
|
}
|
|
35960
|
-
|
|
35961
|
-
incrementSourceFileVersions(
|
|
35962
|
-
incrementDependentVersions(
|
|
35963
|
-
collectChangedFileAffected(
|
|
35964
|
-
}, processFilePathSet = (
|
|
36010
|
+
state2.fileHashes.set(normalizedFilePath, fileHash);
|
|
36011
|
+
incrementSourceFileVersions(state2, [normalizedFilePath]);
|
|
36012
|
+
incrementDependentVersions(state2, normalizedFilePath);
|
|
36013
|
+
collectChangedFileAffected(state2, normalizedFilePath, processedFiles, validFiles);
|
|
36014
|
+
}, processFilePathSet = (state2, filePathSet, processedFiles, validFiles) => {
|
|
35965
36015
|
filePathSet.forEach((filePathInSet) => {
|
|
35966
36016
|
if (!existsSync46(filePathInSet)) {
|
|
35967
|
-
collectDeletedFileAffected(
|
|
36017
|
+
collectDeletedFileAffected(state2, filePathInSet, processedFiles, validFiles);
|
|
35968
36018
|
return;
|
|
35969
36019
|
}
|
|
35970
|
-
processChangedFile2(
|
|
36020
|
+
processChangedFile2(state2, filePathInSet, processedFiles, validFiles);
|
|
35971
36021
|
});
|
|
35972
|
-
}, detectFrameworkForValidFiles = (validFiles,
|
|
36022
|
+
}, detectFrameworkForValidFiles = (validFiles, state2) => {
|
|
35973
36023
|
const [firstFile] = validFiles;
|
|
35974
36024
|
if (!firstFile) {
|
|
35975
36025
|
return;
|
|
35976
36026
|
}
|
|
35977
|
-
return detectFramework(firstFile,
|
|
35978
|
-
}, buildFilesToProcess = (
|
|
36027
|
+
return detectFramework(firstFile, state2.resolvedPaths);
|
|
36028
|
+
}, buildFilesToProcess = (state2) => {
|
|
35979
36029
|
const filesToProcess = new Map;
|
|
35980
36030
|
const uniqueFilesByFramework = new Map;
|
|
35981
|
-
|
|
36031
|
+
state2.fileChangeQueue.forEach((filePaths, fwKey) => {
|
|
35982
36032
|
uniqueFilesByFramework.set(fwKey, new Set(filePaths));
|
|
35983
36033
|
});
|
|
35984
36034
|
uniqueFilesByFramework.forEach((filePathSet) => {
|
|
35985
36035
|
const validFiles = [];
|
|
35986
36036
|
const processedFiles = new Set;
|
|
35987
|
-
processFilePathSet(
|
|
36037
|
+
processFilePathSet(state2, filePathSet, processedFiles, validFiles);
|
|
35988
36038
|
if (validFiles.length === 0) {
|
|
35989
36039
|
return;
|
|
35990
36040
|
}
|
|
35991
|
-
const detectedFramework = detectFrameworkForValidFiles(validFiles,
|
|
36041
|
+
const detectedFramework = detectFrameworkForValidFiles(validFiles, state2);
|
|
35992
36042
|
if (detectedFramework) {
|
|
35993
36043
|
filesToProcess.set(detectedFramework, validFiles);
|
|
35994
36044
|
}
|
|
@@ -36019,36 +36069,36 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36019
36069
|
return checkFile(remaining);
|
|
36020
36070
|
};
|
|
36021
36071
|
return checkFile(allFiles);
|
|
36022
|
-
}, waitForStableWrites = async (
|
|
36072
|
+
}, waitForStableWrites = async (state2) => {
|
|
36023
36073
|
const waitRound = async (round) => {
|
|
36024
36074
|
if (round >= STABILITY_CHECK_ROUNDS) {
|
|
36025
36075
|
return;
|
|
36026
36076
|
}
|
|
36027
|
-
const stable = await areAllQueuedFilesStable(
|
|
36077
|
+
const stable = await areAllQueuedFilesStable(state2.fileChangeQueue);
|
|
36028
36078
|
if (stable) {
|
|
36029
36079
|
return;
|
|
36030
36080
|
}
|
|
36031
36081
|
await waitRound(round + 1);
|
|
36032
36082
|
};
|
|
36033
36083
|
await waitRound(0);
|
|
36034
|
-
}, enqueueImporter = (
|
|
36035
|
-
const importerFramework = detectFramework(importer,
|
|
36084
|
+
}, enqueueImporter = (state2, importer) => {
|
|
36085
|
+
const importerFramework = detectFramework(importer, state2.resolvedPaths);
|
|
36036
36086
|
if (importerFramework === "ignored")
|
|
36037
36087
|
return;
|
|
36038
|
-
if (!
|
|
36039
|
-
|
|
36088
|
+
if (!state2.fileChangeQueue.has(importerFramework)) {
|
|
36089
|
+
state2.fileChangeQueue.set(importerFramework, []);
|
|
36040
36090
|
}
|
|
36041
|
-
const importerQueue =
|
|
36091
|
+
const importerQueue = state2.fileChangeQueue.get(importerFramework);
|
|
36042
36092
|
if (importerQueue && !importerQueue.includes(importer)) {
|
|
36043
36093
|
importerQueue.push(importer);
|
|
36044
36094
|
}
|
|
36045
|
-
}, enqueueStyleImporters = (
|
|
36095
|
+
}, enqueueStyleImporters = (state2, changedStylePath) => {
|
|
36046
36096
|
for (const importer of findStyleEntriesImporting(changedStylePath)) {
|
|
36047
|
-
enqueueImporter(
|
|
36097
|
+
enqueueImporter(state2, importer);
|
|
36048
36098
|
}
|
|
36049
|
-
enqueueAngularOwningComponentForStyle(
|
|
36050
|
-
}, enqueueAngularOwningComponentForStyle = (
|
|
36051
|
-
const { angularDir } =
|
|
36099
|
+
enqueueAngularOwningComponentForStyle(state2, changedStylePath);
|
|
36100
|
+
}, enqueueAngularOwningComponentForStyle = (state2, changedStylePath) => {
|
|
36101
|
+
const { angularDir } = state2.resolvedPaths;
|
|
36052
36102
|
if (!angularDir)
|
|
36053
36103
|
return;
|
|
36054
36104
|
const visited = new Set;
|
|
@@ -36071,41 +36121,41 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36071
36121
|
userAngularRoot: angularDir
|
|
36072
36122
|
});
|
|
36073
36123
|
for (const owner of owners) {
|
|
36074
|
-
enqueueImporter(
|
|
36124
|
+
enqueueImporter(state2, owner.componentFilePath);
|
|
36075
36125
|
}
|
|
36076
36126
|
} catch {}
|
|
36077
36127
|
}
|
|
36078
|
-
}, drainQueueAndRebuild = async (
|
|
36079
|
-
await waitForStableWrites(
|
|
36080
|
-
if (
|
|
36128
|
+
}, drainQueueAndRebuild = async (state2, config, onRebuildComplete) => {
|
|
36129
|
+
await waitForStableWrites(state2);
|
|
36130
|
+
if (state2.isRebuilding) {
|
|
36081
36131
|
return;
|
|
36082
36132
|
}
|
|
36083
36133
|
const userEditedFiles = new Set;
|
|
36084
|
-
|
|
36134
|
+
state2.fileChangeQueue.forEach((filePaths) => {
|
|
36085
36135
|
for (const filePath of filePaths) {
|
|
36086
36136
|
userEditedFiles.add(resolvePath4(filePath));
|
|
36087
36137
|
}
|
|
36088
36138
|
});
|
|
36089
|
-
|
|
36090
|
-
const filesToProcess = buildFilesToProcess(
|
|
36091
|
-
|
|
36139
|
+
state2.lastUserEditedFiles = userEditedFiles;
|
|
36140
|
+
const filesToProcess = buildFilesToProcess(state2);
|
|
36141
|
+
state2.fileChangeQueue.clear();
|
|
36092
36142
|
if (filesToProcess.size === 0) {
|
|
36093
36143
|
return;
|
|
36094
36144
|
}
|
|
36095
36145
|
const affectedFrameworks = Array.from(filesToProcess.keys());
|
|
36096
36146
|
affectedFrameworks.forEach((frameworkKey) => {
|
|
36097
|
-
|
|
36147
|
+
state2.rebuildQueue.add(frameworkKey);
|
|
36098
36148
|
});
|
|
36099
36149
|
const filesToRebuild = [];
|
|
36100
36150
|
filesToProcess.forEach((filePaths) => {
|
|
36101
36151
|
filesToRebuild.push(...filePaths);
|
|
36102
36152
|
});
|
|
36103
|
-
triggerRebuild(
|
|
36104
|
-
}, queueFileChange = async (
|
|
36153
|
+
triggerRebuild(state2, config, onRebuildComplete, filesToRebuild);
|
|
36154
|
+
}, queueFileChange = async (state2, filePath, config, onRebuildComplete) => {
|
|
36105
36155
|
const serverEntry = process.env.ABSOLUTE_SERVER_ENTRY ?? Bun.main;
|
|
36106
36156
|
if (serverEntry && resolvePath4(filePath) === resolvePath4(serverEntry))
|
|
36107
36157
|
return;
|
|
36108
|
-
const framework = detectFramework(filePath,
|
|
36158
|
+
const framework = detectFramework(filePath, state2.resolvedPaths);
|
|
36109
36159
|
if (framework === "ignored") {
|
|
36110
36160
|
return;
|
|
36111
36161
|
}
|
|
@@ -36113,11 +36163,15 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36113
36163
|
return;
|
|
36114
36164
|
}
|
|
36115
36165
|
const currentHash = computeFileHash(filePath);
|
|
36116
|
-
if (
|
|
36166
|
+
if (predatesProcess(filePath, state2.fileHashes)) {
|
|
36167
|
+
state2.fileHashes.set(normalizePath(filePath), currentHash);
|
|
36168
|
+
return;
|
|
36169
|
+
}
|
|
36170
|
+
if (!hasFileChanged(filePath, currentHash, state2.fileHashes)) {
|
|
36117
36171
|
return;
|
|
36118
36172
|
}
|
|
36119
|
-
const { publicDir } =
|
|
36120
|
-
const { assetsDir } =
|
|
36173
|
+
const { publicDir } = state2.resolvedPaths;
|
|
36174
|
+
const { assetsDir } = state2.resolvedPaths;
|
|
36121
36175
|
const handleStaticMirror = async (sourceDir, urlPrefix) => {
|
|
36122
36176
|
const startedAt = performance.now();
|
|
36123
36177
|
const absSource = resolvePath4(filePath);
|
|
@@ -36127,20 +36181,20 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36127
36181
|
return false;
|
|
36128
36182
|
try {
|
|
36129
36183
|
const relFromDir = normalizedSource.slice(normalizedDir.length + 1);
|
|
36130
|
-
const { buildDir } =
|
|
36184
|
+
const { buildDir } = state2.resolvedPaths;
|
|
36131
36185
|
const destPath = resolvePath4(buildDir, urlPrefix ? `${urlPrefix}/${relFromDir}` : relFromDir);
|
|
36132
36186
|
const { mkdir: mkdir16, copyFile, readFile: readFile12 } = await import("fs/promises");
|
|
36133
36187
|
await mkdir16(dirname38(destPath), { recursive: true });
|
|
36134
36188
|
await copyFile(absSource, destPath);
|
|
36135
36189
|
const bytes = await readFile12(destPath);
|
|
36136
36190
|
const webPath = urlPrefix ? `/${urlPrefix}/${relFromDir}` : `/${relFromDir}`;
|
|
36137
|
-
|
|
36138
|
-
|
|
36139
|
-
logHmrUpdate(
|
|
36140
|
-
broadcastToClients(
|
|
36191
|
+
state2.assetStore.set(webPath, new Uint8Array(bytes));
|
|
36192
|
+
state2.fileHashes.set(absSource, currentHash);
|
|
36193
|
+
logHmrUpdate(relative27(process.cwd(), filePath));
|
|
36194
|
+
broadcastToClients(state2, {
|
|
36141
36195
|
data: {
|
|
36142
36196
|
framework: urlPrefix || "public",
|
|
36143
|
-
manifest:
|
|
36197
|
+
manifest: state2.manifest,
|
|
36144
36198
|
serverDuration: Math.round(performance.now() - startedAt),
|
|
36145
36199
|
sourceFile: absSource
|
|
36146
36200
|
},
|
|
@@ -36158,28 +36212,28 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36158
36212
|
applyBackendEdit(resolvePath4(filePath)).catch((error) => console.error("[hmr] server update for a React file failed:", error));
|
|
36159
36213
|
if (framework === "unknown") {
|
|
36160
36214
|
invalidate(resolvePath4(filePath));
|
|
36161
|
-
const relPath =
|
|
36215
|
+
const relPath = relative27(process.cwd(), filePath);
|
|
36162
36216
|
logHmrUpdate(relPath);
|
|
36163
36217
|
let hasFrontendDependent = false;
|
|
36164
36218
|
let hasAngularDependent = false;
|
|
36165
|
-
if (
|
|
36219
|
+
if (state2.dependencyGraph) {
|
|
36166
36220
|
try {
|
|
36167
36221
|
const { addFileToGraph: addFileToGraph2 } = await Promise.resolve().then(() => (init_dependencyGraph(), exports_dependencyGraph));
|
|
36168
|
-
addFileToGraph2(
|
|
36169
|
-
const affected = getAffectedFiles(
|
|
36222
|
+
addFileToGraph2(state2.dependencyGraph, resolvePath4(filePath));
|
|
36223
|
+
const affected = getAffectedFiles(state2.dependencyGraph, resolvePath4(filePath));
|
|
36170
36224
|
for (const dependent of affected) {
|
|
36171
36225
|
if (dependent === resolvePath4(filePath))
|
|
36172
36226
|
continue;
|
|
36173
|
-
const dependentFramework = detectFramework(dependent,
|
|
36227
|
+
const dependentFramework = detectFramework(dependent, state2.resolvedPaths);
|
|
36174
36228
|
if (dependentFramework === "unknown" || dependentFramework === "ignored")
|
|
36175
36229
|
continue;
|
|
36176
36230
|
hasFrontendDependent = true;
|
|
36177
36231
|
if (dependentFramework === "angular")
|
|
36178
36232
|
hasAngularDependent = true;
|
|
36179
|
-
if (!
|
|
36180
|
-
|
|
36233
|
+
if (!state2.fileChangeQueue.has(dependentFramework)) {
|
|
36234
|
+
state2.fileChangeQueue.set(dependentFramework, []);
|
|
36181
36235
|
}
|
|
36182
|
-
const frameworkQueue =
|
|
36236
|
+
const frameworkQueue = state2.fileChangeQueue.get(dependentFramework);
|
|
36183
36237
|
if (frameworkQueue && !frameworkQueue.includes(dependent)) {
|
|
36184
36238
|
frameworkQueue.push(dependent);
|
|
36185
36239
|
}
|
|
@@ -36187,11 +36241,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36187
36241
|
} catch {}
|
|
36188
36242
|
}
|
|
36189
36243
|
if (isAbsoluteConfig(resolvePath4(filePath))) {
|
|
36190
|
-
|
|
36244
|
+
state2.fileHashes.set(resolvePath4(filePath), currentHash);
|
|
36191
36245
|
return;
|
|
36192
36246
|
}
|
|
36193
36247
|
const backend = await applyBackendEdit(resolvePath4(filePath));
|
|
36194
|
-
|
|
36248
|
+
state2.fileHashes.set(resolvePath4(filePath), currentHash);
|
|
36195
36249
|
if (backend === "unmanaged" && changeNeedsRestart(resolvePath4(filePath))) {
|
|
36196
36250
|
console.log(`[abs:restart] ${resolvePath4(filePath)}`);
|
|
36197
36251
|
return;
|
|
@@ -36207,35 +36261,35 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36207
36261
|
const generatedTwin = `${generatedAngularRoot.replace(/\\/g, "/")}${sourceAbs.replace(/\.ts$/, ".js")}`;
|
|
36208
36262
|
invalidateModuleServer(generatedTwin);
|
|
36209
36263
|
} catch {}
|
|
36210
|
-
if (!
|
|
36211
|
-
|
|
36264
|
+
if (!state2.fileChangeQueue.has("unknown")) {
|
|
36265
|
+
state2.fileChangeQueue.set("unknown", []);
|
|
36212
36266
|
}
|
|
36213
|
-
const unknownQueue =
|
|
36267
|
+
const unknownQueue = state2.fileChangeQueue.get("unknown");
|
|
36214
36268
|
if (unknownQueue && !unknownQueue.includes(filePath)) {
|
|
36215
36269
|
unknownQueue.push(filePath);
|
|
36216
36270
|
}
|
|
36217
36271
|
}
|
|
36218
36272
|
}
|
|
36219
|
-
if (!
|
|
36220
|
-
|
|
36273
|
+
if (!state2.fileChangeQueue.has(framework)) {
|
|
36274
|
+
state2.fileChangeQueue.set(framework, []);
|
|
36221
36275
|
}
|
|
36222
|
-
const queue =
|
|
36276
|
+
const queue = state2.fileChangeQueue.get(framework);
|
|
36223
36277
|
if (queue && !queue.includes(filePath)) {
|
|
36224
36278
|
queue.push(filePath);
|
|
36225
36279
|
}
|
|
36226
36280
|
if (isStylePath(filePath)) {
|
|
36227
|
-
enqueueStyleImporters(
|
|
36281
|
+
enqueueStyleImporters(state2, filePath);
|
|
36228
36282
|
}
|
|
36229
|
-
if (
|
|
36283
|
+
if (state2.isRebuilding) {
|
|
36230
36284
|
return;
|
|
36231
36285
|
}
|
|
36232
|
-
if (
|
|
36233
|
-
clearTimeout(
|
|
36286
|
+
if (state2.rebuildTimeout) {
|
|
36287
|
+
clearTimeout(state2.rebuildTimeout);
|
|
36234
36288
|
}
|
|
36235
36289
|
const DEBOUNCE_MS = config.options?.hmr?.debounceMs ?? DEFAULT_DEBOUNCE_MS;
|
|
36236
|
-
|
|
36237
|
-
|
|
36238
|
-
drainQueueAndRebuild(
|
|
36290
|
+
state2.rebuildTimeout = setTimeout(() => {
|
|
36291
|
+
state2.rebuildTimeout = null;
|
|
36292
|
+
drainQueueAndRebuild(state2, config, onRebuildComplete);
|
|
36239
36293
|
}, DEBOUNCE_MS);
|
|
36240
36294
|
}, resolveComponentLookupFile = (componentFile, graph) => {
|
|
36241
36295
|
if (!componentFile.endsWith(".html")) {
|
|
@@ -36255,15 +36309,15 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36255
36309
|
return dep;
|
|
36256
36310
|
}
|
|
36257
36311
|
return componentFile;
|
|
36258
|
-
}, resolveAngularPageEntries = (
|
|
36312
|
+
}, resolveAngularPageEntries = (state2, angularFiles, angularPagesPath) => {
|
|
36259
36313
|
const pageEntries = angularFiles.filter((file5) => file5.endsWith(".ts") && resolvePath4(file5).startsWith(angularPagesPath));
|
|
36260
|
-
if (pageEntries.length > 0 || !
|
|
36314
|
+
if (pageEntries.length > 0 || !state2.dependencyGraph) {
|
|
36261
36315
|
return pageEntries;
|
|
36262
36316
|
}
|
|
36263
36317
|
const resolvedPages = new Set;
|
|
36264
36318
|
angularFiles.forEach((componentFile) => {
|
|
36265
|
-
const lookupFile = resolveComponentLookupFile(componentFile,
|
|
36266
|
-
const affected = getAffectedFiles(
|
|
36319
|
+
const lookupFile = resolveComponentLookupFile(componentFile, state2.dependencyGraph);
|
|
36320
|
+
const affected = getAffectedFiles(state2.dependencyGraph, lookupFile);
|
|
36267
36321
|
affected.forEach((file5) => {
|
|
36268
36322
|
if (file5.endsWith(".ts") && resolvePath4(file5).startsWith(angularPagesPath)) {
|
|
36269
36323
|
resolvedPages.add(file5);
|
|
@@ -36311,13 +36365,13 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36311
36365
|
serverOutDir: resolvedPaths.buildDir,
|
|
36312
36366
|
serverRoot: commonAncestor2(serverDirs.map((entry) => entry.dir), projectRoot)
|
|
36313
36367
|
};
|
|
36314
|
-
}, updateServerManifestEntry = (
|
|
36368
|
+
}, updateServerManifestEntry = (state2, artifact) => {
|
|
36315
36369
|
const fileWithHash = basename21(artifact.path);
|
|
36316
36370
|
const [baseName] = fileWithHash.split(`.${artifact.hash}.`);
|
|
36317
36371
|
if (!baseName) {
|
|
36318
36372
|
return;
|
|
36319
36373
|
}
|
|
36320
|
-
|
|
36374
|
+
state2.manifest[toPascal(baseName)] = artifact.path;
|
|
36321
36375
|
}, pruneStaleHashedSiblings = async (freshOutputs) => {
|
|
36322
36376
|
if (!freshOutputs?.length)
|
|
36323
36377
|
return;
|
|
@@ -36367,13 +36421,13 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36367
36421
|
} catch {}
|
|
36368
36422
|
}));
|
|
36369
36423
|
}));
|
|
36370
|
-
}, bundleAngularClient = async (
|
|
36424
|
+
}, bundleAngularClient = async (state2, clientPaths, buildDir, userAngularRoot) => {
|
|
36371
36425
|
const { build: bunBuild9 } = await Promise.resolve(globalThis.Bun);
|
|
36372
36426
|
const { generateManifest: generateManifest2 } = await Promise.resolve().then(() => (init_generateManifest(), exports_generateManifest));
|
|
36373
36427
|
const { getAngularVendorPaths: getAngularVendorPaths2 } = await Promise.resolve().then(() => exports_devVendorPaths);
|
|
36374
36428
|
const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
|
|
36375
36429
|
const { createAngularHmrInjectionPlugin: createAngularHmrInjectionPlugin2 } = await Promise.resolve().then(() => (init_hmrInjectionPlugin(), exports_hmrInjectionPlugin));
|
|
36376
|
-
const clientRoot = await computeClientRoot(
|
|
36430
|
+
const clientRoot = await computeClientRoot(state2.resolvedPaths);
|
|
36377
36431
|
const depVendorPaths = globalThis.__depVendorPaths ?? {};
|
|
36378
36432
|
const generatedAngularRoot = getFrameworkGeneratedDir2("angular");
|
|
36379
36433
|
let angVendorPaths = getAngularVendorPaths2();
|
|
@@ -36398,7 +36452,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36398
36452
|
naming: "[dir]/[name].[hash].[ext]",
|
|
36399
36453
|
outdir: buildDir,
|
|
36400
36454
|
plugins: [
|
|
36401
|
-
createStylePreprocessorPlugin(getStyleTransformConfig(
|
|
36455
|
+
createStylePreprocessorPlugin(getStyleTransformConfig(state2.config)),
|
|
36402
36456
|
createAngularHmrInjectionPlugin2({
|
|
36403
36457
|
generatedAngularRoot,
|
|
36404
36458
|
projectRoot: process.cwd(),
|
|
@@ -36427,8 +36481,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36427
36481
|
chainBundleInlineSourcemap2(out.path);
|
|
36428
36482
|
}
|
|
36429
36483
|
const clientManifest = generateManifest2(clientResult.outputs, buildDir);
|
|
36430
|
-
Object.assign(
|
|
36431
|
-
await populateAssetStore(
|
|
36484
|
+
Object.assign(state2.manifest, clientManifest);
|
|
36485
|
+
await populateAssetStore(state2.assetStore, clientManifest, buildDir);
|
|
36432
36486
|
await pruneStaleHashedSiblings(clientResult.outputs);
|
|
36433
36487
|
clearDevSsrCssCaches();
|
|
36434
36488
|
}, USER_FIXABLE_FAST_HMR_REASONS, isUserFixableFastHmrReason = (reason) => USER_FIXABLE_FAST_HMR_REASONS.has(reason), angularDispatcherModules = null, loadAngularDispatcherModules = async () => {
|
|
@@ -36446,8 +36500,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36446
36500
|
tryFastHmr: fastMod.tryFastHmr
|
|
36447
36501
|
};
|
|
36448
36502
|
return angularDispatcherModules;
|
|
36449
|
-
}, decideAngularTier = async (
|
|
36450
|
-
const userEdited =
|
|
36503
|
+
}, decideAngularTier = async (state2, angularDir) => {
|
|
36504
|
+
const userEdited = state2.lastUserEditedFiles ?? new Set;
|
|
36451
36505
|
if (userEdited.size === 0)
|
|
36452
36506
|
return {
|
|
36453
36507
|
breakdown: { compileMs: 0, importsMs: 0, resolveMs: 0 },
|
|
@@ -36473,12 +36527,12 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36473
36527
|
continue;
|
|
36474
36528
|
if (editedFile.endsWith(".d.ts"))
|
|
36475
36529
|
continue;
|
|
36476
|
-
const detected = detectFramework(editedFile,
|
|
36530
|
+
const detected = detectFramework(editedFile, state2.resolvedPaths);
|
|
36477
36531
|
if (detected !== "unknown")
|
|
36478
36532
|
continue;
|
|
36479
36533
|
try {
|
|
36480
|
-
const affected = getAffectedFiles(
|
|
36481
|
-
const hasAngularConsumer = affected.some((dep) => dep !== resolvePath4(editedFile) && detectFramework(dep,
|
|
36534
|
+
const affected = getAffectedFiles(state2.dependencyGraph, resolvePath4(editedFile));
|
|
36535
|
+
const hasAngularConsumer = affected.some((dep) => dep !== resolvePath4(editedFile) && detectFramework(dep, state2.resolvedPaths) === "angular");
|
|
36482
36536
|
if (hasAngularConsumer) {
|
|
36483
36537
|
return {
|
|
36484
36538
|
kind: "rebootstrap",
|
|
@@ -36594,25 +36648,25 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36594
36648
|
return { breakdown, kind: "remount", queue, tier: 1 };
|
|
36595
36649
|
}
|
|
36596
36650
|
return { breakdown, queue, tier: 0 };
|
|
36597
|
-
}, broadcastSurgical = (
|
|
36651
|
+
}, broadcastSurgical = (state2, queue) => {
|
|
36598
36652
|
const timestamp = Date.now();
|
|
36599
36653
|
for (const { id } of queue) {
|
|
36600
|
-
broadcastToClients(
|
|
36654
|
+
broadcastToClients(state2, {
|
|
36601
36655
|
data: { id, timestamp },
|
|
36602
36656
|
type: "angular:component-update"
|
|
36603
36657
|
});
|
|
36604
36658
|
}
|
|
36605
|
-
}, broadcastRemount = (
|
|
36659
|
+
}, broadcastRemount = (state2, queue) => {
|
|
36606
36660
|
const timestamp = Date.now();
|
|
36607
36661
|
for (const { id } of queue) {
|
|
36608
|
-
broadcastToClients(
|
|
36662
|
+
broadcastToClients(state2, {
|
|
36609
36663
|
data: { id, timestamp },
|
|
36610
36664
|
type: "angular:component-remount"
|
|
36611
36665
|
});
|
|
36612
36666
|
}
|
|
36613
|
-
}, broadcastAngularUserError = (
|
|
36667
|
+
}, broadcastAngularUserError = (state2, failure) => {
|
|
36614
36668
|
const message = failure.detail ? `${failure.reason}: ${failure.detail}` : failure.reason;
|
|
36615
|
-
broadcastToClients(
|
|
36669
|
+
broadcastToClients(state2, {
|
|
36616
36670
|
data: {
|
|
36617
36671
|
affectedFrameworks: ["angular"],
|
|
36618
36672
|
column: failure.column,
|
|
@@ -36625,11 +36679,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36625
36679
|
message: "Angular HMR failed",
|
|
36626
36680
|
type: "rebuild-error"
|
|
36627
36681
|
});
|
|
36628
|
-
}, broadcastRebootstrap = async (
|
|
36682
|
+
}, broadcastRebootstrap = async (state2, reason) => {
|
|
36629
36683
|
logInfo(`[ng-hmr tier-1 rebootstrap] ${reason}`);
|
|
36630
|
-
broadcastToClients(
|
|
36684
|
+
broadcastToClients(state2, {
|
|
36631
36685
|
data: {
|
|
36632
|
-
manifest:
|
|
36686
|
+
manifest: state2.manifest,
|
|
36633
36687
|
reason,
|
|
36634
36688
|
timestamp: Date.now()
|
|
36635
36689
|
},
|
|
@@ -36637,9 +36691,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36637
36691
|
});
|
|
36638
36692
|
const { invalidateFingerprintCache: invalidateFingerprintCache2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
|
|
36639
36693
|
invalidateFingerprintCache2();
|
|
36640
|
-
}, ANGULAR_BUNDLE_DEBOUNCE_MS = 2000, angularBundleState, scheduleAngularBundleRebuild = (
|
|
36641
|
-
|
|
36642
|
-
let ctx = angularBundleState.get(
|
|
36694
|
+
}, ANGULAR_BUNDLE_DEBOUNCE_MS = 2000, angularBundleState, scheduleAngularBundleRebuild = (state2, pageEntries, angularDir) => {
|
|
36695
|
+
state2.pendingBundleRebuilds.add("angular");
|
|
36696
|
+
let ctx = angularBundleState.get(state2);
|
|
36643
36697
|
if (!ctx) {
|
|
36644
36698
|
ctx = {
|
|
36645
36699
|
angularDir,
|
|
@@ -36650,7 +36704,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36650
36704
|
pageEntries,
|
|
36651
36705
|
pending: false
|
|
36652
36706
|
};
|
|
36653
|
-
angularBundleState.set(
|
|
36707
|
+
angularBundleState.set(state2, ctx);
|
|
36654
36708
|
}
|
|
36655
36709
|
ctx.pageEntries = pageEntries;
|
|
36656
36710
|
ctx.angularDir = angularDir;
|
|
@@ -36658,7 +36712,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36658
36712
|
if (ctx.pageEntries.length === 0)
|
|
36659
36713
|
return;
|
|
36660
36714
|
try {
|
|
36661
|
-
await compileAndBundleAngular(
|
|
36715
|
+
await compileAndBundleAngular(state2, ctx.pageEntries, ctx.angularDir);
|
|
36662
36716
|
} catch (error) {
|
|
36663
36717
|
console.error("[hmr] angular bundle rebuild failed \u2014 will retry on the next change:", error instanceof Error ? error.message : error);
|
|
36664
36718
|
}
|
|
@@ -36674,7 +36728,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36674
36728
|
} finally {
|
|
36675
36729
|
ctx.inFlight = null;
|
|
36676
36730
|
if (!ctx.debounceTimer && !ctx.debouncedPromise && !ctx.pending)
|
|
36677
|
-
|
|
36731
|
+
state2.pendingBundleRebuilds.delete("angular");
|
|
36678
36732
|
}
|
|
36679
36733
|
};
|
|
36680
36734
|
const fire = () => {
|
|
@@ -36711,8 +36765,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36711
36765
|
}
|
|
36712
36766
|
return scheduled;
|
|
36713
36767
|
};
|
|
36714
|
-
}, runAngularHmrIncremental = async (
|
|
36715
|
-
const editedFiles =
|
|
36768
|
+
}, runAngularHmrIncremental = async (state2, angularDir, _pageEntries) => {
|
|
36769
|
+
const editedFiles = state2.lastUserEditedFiles ?? new Set;
|
|
36716
36770
|
const refreshDisk = async () => {
|
|
36717
36771
|
if (!angularDir || editedFiles.size === 0)
|
|
36718
36772
|
return;
|
|
@@ -36755,14 +36809,14 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36755
36809
|
return;
|
|
36756
36810
|
await Promise.all(Array.from(tsFilesToRefresh).map((file5) => {
|
|
36757
36811
|
invalidateAngularJitCache2(file5);
|
|
36758
|
-
return compileAngularFileJIT2(file5, compiledRoot, angularDirAbs, getStyleTransformConfig(
|
|
36812
|
+
return compileAngularFileJIT2(file5, compiledRoot, angularDirAbs, getStyleTransformConfig(state2.config)).catch((err) => {
|
|
36759
36813
|
logWarn(`[hmr] disk-refresh JIT failed for ${file5}: ${err instanceof Error ? err.message : String(err)}`);
|
|
36760
36814
|
});
|
|
36761
36815
|
}));
|
|
36762
36816
|
try {
|
|
36763
36817
|
const { invalidateModule: invalidateModule2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
36764
36818
|
for (const tsFile of tsFilesToRefresh) {
|
|
36765
|
-
const rel =
|
|
36819
|
+
const rel = relative27(angularDirAbs, tsFile).replace(/\\/g, "/").replace(/\.[tj]sx?$/, ".js");
|
|
36766
36820
|
const compiledFile = resolvePath4(compiledRoot, rel);
|
|
36767
36821
|
invalidateModule2(compiledFile);
|
|
36768
36822
|
}
|
|
@@ -36773,7 +36827,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36773
36827
|
};
|
|
36774
36828
|
const diskRefreshPromise = refreshDisk();
|
|
36775
36829
|
await diskRefreshPromise;
|
|
36776
|
-
}, compileAndBundleAngular = async (
|
|
36830
|
+
}, compileAndBundleAngular = async (state2, pageEntries, angularDir) => {
|
|
36777
36831
|
const { compileAngular: compileAngular2, compileAngularFileJIT: compileAngularFileJIT2 } = await Promise.resolve().then(() => (init_compileAngular(), exports_compileAngular));
|
|
36778
36832
|
const { getFrameworkGeneratedDir: getFrameworkGeneratedDir2 } = await Promise.resolve().then(() => (init_generatedDir(), exports_generatedDir));
|
|
36779
36833
|
const { runAngularHandlerScan: runAngularHandlerScan2 } = await Promise.resolve().then(() => (init_runAngularHandlerScan(), exports_runAngularHandlerScan));
|
|
@@ -36801,7 +36855,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36801
36855
|
};
|
|
36802
36856
|
};
|
|
36803
36857
|
const providersInjection = createProvidersInjection();
|
|
36804
|
-
const styleTransformConfig = getStyleTransformConfig(
|
|
36858
|
+
const styleTransformConfig = getStyleTransformConfig(state2.config);
|
|
36805
36859
|
const generatedAngularRoot = getFrameworkGeneratedDir2("angular");
|
|
36806
36860
|
const { clientPaths, serverPaths } = await compileAngular2(pageEntries, angularDir, true, styleTransformConfig, providersInjection);
|
|
36807
36861
|
if (providersInjection.appProvidersSource) {
|
|
@@ -36846,24 +36900,24 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36846
36900
|
serverPaths.forEach((serverPath, idx) => {
|
|
36847
36901
|
const fileBase = basename21(serverPath, ".js");
|
|
36848
36902
|
const ssrPath = ssrPaths[idx] ?? serverPath;
|
|
36849
|
-
|
|
36903
|
+
state2.manifest[toPascal(fileBase)] = resolvePath4(ssrPath);
|
|
36850
36904
|
});
|
|
36851
36905
|
if (clientPaths.length > 0) {
|
|
36852
|
-
await bundleAngularClient(
|
|
36906
|
+
await bundleAngularClient(state2, clientPaths, state2.resolvedPaths.buildDir, angularDir);
|
|
36853
36907
|
}
|
|
36854
36908
|
await Promise.all(pageEntries.map((entry) => compileAngularFileJIT2(entry, generatedAngularRoot, resolvedAngularDir, styleTransformConfig)));
|
|
36855
36909
|
if (providersInjection.appProvidersSource) {
|
|
36856
36910
|
await compileAngularFileJIT2(providersInjection.appProvidersSource, generatedAngularRoot, resolvedAngularDir, styleTransformConfig);
|
|
36857
36911
|
}
|
|
36858
|
-
broadcastToClients(
|
|
36859
|
-
data: { manifest:
|
|
36912
|
+
broadcastToClients(state2, {
|
|
36913
|
+
data: { manifest: state2.manifest },
|
|
36860
36914
|
type: "angular-tier-zero-ssr-rebuild-complete"
|
|
36861
36915
|
});
|
|
36862
|
-
}, handleAngularFastPath = async (
|
|
36916
|
+
}, handleAngularFastPath = async (state2, config, filesToRebuild, startTime, onRebuildComplete) => {
|
|
36863
36917
|
const angularDir = config.angularDirectory ?? "";
|
|
36864
|
-
const angularFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
36918
|
+
const angularFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "angular");
|
|
36865
36919
|
const angularPagesPath = resolvePath4(angularDir, "pages");
|
|
36866
|
-
const initialPageEntries = resolveAngularPageEntries(
|
|
36920
|
+
const initialPageEntries = resolveAngularPageEntries(state2, angularFiles, angularPagesPath);
|
|
36867
36921
|
const projectRoot = process.cwd();
|
|
36868
36922
|
const { parseAngularProvidersImport: parseAngularProvidersImport2 } = await Promise.resolve().then(() => (init_parseAngularConfigImports(), exports_parseAngularConfigImports));
|
|
36869
36923
|
const providersImport = parseAngularProvidersImport2(projectRoot);
|
|
@@ -36888,42 +36942,42 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36888
36942
|
};
|
|
36889
36943
|
const pageEntries = editedProvidersChain && initialPageEntries.length === 0 ? collectAllPages() : initialPageEntries;
|
|
36890
36944
|
const tierStart = performance.now();
|
|
36891
|
-
const verdict = await decideAngularTier(
|
|
36945
|
+
const verdict = await decideAngularTier(state2, angularDir);
|
|
36892
36946
|
const tierMs = (performance.now() - tierStart).toFixed(0);
|
|
36893
|
-
const runBundle = scheduleAngularBundleRebuild(
|
|
36947
|
+
const runBundle = scheduleAngularBundleRebuild(state2, pageEntries, angularDir);
|
|
36894
36948
|
const queueDescription = (queue) => queue.map((e) => e.className).join(", ");
|
|
36895
36949
|
if (verdict.tier === 0) {
|
|
36896
|
-
await runAngularHmrIncremental(
|
|
36897
|
-
broadcastSurgical(
|
|
36950
|
+
await runAngularHmrIncremental(state2, angularDir, pageEntries);
|
|
36951
|
+
broadcastSurgical(state2, verdict.queue);
|
|
36898
36952
|
const rightValue = verdict.breakdown;
|
|
36899
36953
|
logInfo(`[ng-hmr] tier-0 ${queueDescription(verdict.queue)} (server ${tierMs}ms: imports ${rightValue.importsMs}/resolve ${rightValue.resolveMs}/compile ${rightValue.compileMs}; awaiting client apply)`);
|
|
36900
36954
|
runBundle();
|
|
36901
36955
|
} else if (verdict.tier === 1 && verdict.kind === "remount") {
|
|
36902
|
-
await runAngularHmrIncremental(
|
|
36903
|
-
broadcastRemount(
|
|
36956
|
+
await runAngularHmrIncremental(state2, angularDir, pageEntries);
|
|
36957
|
+
broadcastRemount(state2, verdict.queue);
|
|
36904
36958
|
const rightValue = verdict.breakdown;
|
|
36905
36959
|
logInfo(`[ng-hmr] tier-1a remount ${queueDescription(verdict.queue)} (server ${tierMs}ms: imports ${rightValue.importsMs}/resolve ${rightValue.resolveMs}/compile ${rightValue.compileMs}; awaiting client apply)`);
|
|
36906
36960
|
runBundle();
|
|
36907
36961
|
} else if (verdict.tier === 1 && verdict.kind === "rebootstrap") {
|
|
36908
36962
|
await runBundle({ immediate: true });
|
|
36909
|
-
await broadcastRebootstrap(
|
|
36963
|
+
await broadcastRebootstrap(state2, verdict.reason);
|
|
36910
36964
|
} else if (verdict.tier === 1 && verdict.kind === "user-error") {
|
|
36911
|
-
broadcastAngularUserError(
|
|
36965
|
+
broadcastAngularUserError(state2, verdict.failure);
|
|
36912
36966
|
logInfo(`[ng-hmr] user error in ${verdict.failure.className}: ${verdict.failure.reason}${verdict.failure.detail ? ` (${verdict.failure.detail})` : ""}`);
|
|
36913
36967
|
}
|
|
36914
|
-
const { manifest } =
|
|
36915
|
-
onRebuildComplete({ hmrState:
|
|
36968
|
+
const { manifest } = state2;
|
|
36969
|
+
onRebuildComplete({ hmrState: state2, manifest });
|
|
36916
36970
|
return manifest;
|
|
36917
36971
|
}, getModuleUrl = async (pageFile) => {
|
|
36918
36972
|
const { invalidateModule: invalidateModule2, warmCache: warmCache2, SRC_URL_PREFIX: SRC_URL_PREFIX3 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
36919
36973
|
invalidateModule2(pageFile);
|
|
36920
|
-
const rel =
|
|
36974
|
+
const rel = relative27(process.cwd(), pageFile).replace(/\\/g, "/");
|
|
36921
36975
|
const url = `${SRC_URL_PREFIX3}${rel}`;
|
|
36922
36976
|
await warmCache2(url);
|
|
36923
36977
|
return url;
|
|
36924
36978
|
}, getReactModuleUrl, isReactComponentPath = (file5) => file5.endsWith(".tsx") || file5.endsWith(".jsx"), isReactPagePath = (file5) => file5.replace(/\\/g, "/").includes("/pages/"), isImportableModule = (file5) => {
|
|
36925
36979
|
try {
|
|
36926
|
-
return
|
|
36980
|
+
return statSync11(file5).isFile();
|
|
36927
36981
|
} catch {
|
|
36928
36982
|
return false;
|
|
36929
36983
|
}
|
|
@@ -36935,9 +36989,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36935
36989
|
return nearest;
|
|
36936
36990
|
const dependents = reactFiles.filter((candidate) => !edited.has(candidate) && isReactComponentPath(candidate) && isImportableModule(candidate));
|
|
36937
36991
|
return dependents.find((candidate) => !isReactPagePath(candidate)) ?? dependents[0] ?? file5;
|
|
36938
|
-
}, resolveReactUpdateTargets = (
|
|
36992
|
+
}, resolveReactUpdateTargets = (state2, reactFiles) => {
|
|
36939
36993
|
const importable = reactFiles.filter(isImportableModule);
|
|
36940
|
-
const userEdited = importable.filter((file5) =>
|
|
36994
|
+
const userEdited = importable.filter((file5) => state2.lastUserEditedFiles?.has(resolvePath4(file5)));
|
|
36941
36995
|
const editedFiles = userEdited.length > 0 ? userEdited : importable;
|
|
36942
36996
|
const edited = new Set(editedFiles);
|
|
36943
36997
|
const ordered = [
|
|
@@ -36953,26 +37007,26 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36953
37007
|
await getReactModuleUrl(page)
|
|
36954
37008
|
]));
|
|
36955
37009
|
return Object.fromEntries(entries);
|
|
36956
|
-
}, handleReactModuleServerPath = async (
|
|
37010
|
+
}, handleReactModuleServerPath = async (state2, reactFiles, startTime, fastRefreshSupported, onRebuildComplete) => {
|
|
36957
37011
|
const { invalidateModule: invalidateModule2 } = await getModuleServer();
|
|
36958
37012
|
for (const file5 of reactFiles) {
|
|
36959
37013
|
invalidateModule2(file5);
|
|
36960
37014
|
}
|
|
36961
|
-
const { editedFiles, targets } = resolveReactUpdateTargets(
|
|
37015
|
+
const { editedFiles, targets } = resolveReactUpdateTargets(state2, reactFiles);
|
|
36962
37016
|
const [primaryTarget] = targets;
|
|
36963
37017
|
if (!primaryTarget) {
|
|
36964
37018
|
onRebuildComplete({
|
|
36965
|
-
hmrState:
|
|
36966
|
-
manifest:
|
|
37019
|
+
hmrState: state2,
|
|
37020
|
+
manifest: state2.manifest
|
|
36967
37021
|
});
|
|
36968
|
-
return
|
|
37022
|
+
return state2.manifest;
|
|
36969
37023
|
}
|
|
36970
37024
|
const moduleUrls = await Promise.all(targets.map(getReactModuleUrl));
|
|
36971
37025
|
await Promise.all(editedFiles.filter((file5) => !targets.includes(file5)).map(getReactModuleUrl));
|
|
36972
37026
|
const { getTransformError: getTransformError2 } = await getModuleServer();
|
|
36973
37027
|
const failed = [...new Set([...editedFiles, ...targets])].map((file5) => ({ error: getTransformError2(file5), file: file5 })).find((entry) => entry.error !== undefined);
|
|
36974
37028
|
if (failed?.error) {
|
|
36975
|
-
broadcastToClients(
|
|
37029
|
+
broadcastToClients(state2, {
|
|
36976
37030
|
data: {
|
|
36977
37031
|
affectedFrameworks: ["react"],
|
|
36978
37032
|
column: failed.error.column,
|
|
@@ -36985,23 +37039,23 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
36985
37039
|
message: "React module failed to compile",
|
|
36986
37040
|
type: "rebuild-error"
|
|
36987
37041
|
});
|
|
36988
|
-
onRebuildComplete({ hmrState:
|
|
36989
|
-
return
|
|
37042
|
+
onRebuildComplete({ hmrState: state2, manifest: state2.manifest });
|
|
37043
|
+
return state2.manifest;
|
|
36990
37044
|
}
|
|
36991
37045
|
const pageModuleUrls = fastRefreshSupported ? undefined : await resolveAffectedPageModules(reactFiles);
|
|
36992
37046
|
const [pageModuleUrl] = moduleUrls;
|
|
36993
37047
|
const primaryFile = reactFiles.find((file5) => isImportableModule(file5) && !isReactPagePath(file5)) ?? primaryTarget;
|
|
36994
37048
|
if (pageModuleUrl) {
|
|
36995
37049
|
const serverDuration = Date.now() - startTime;
|
|
36996
|
-
|
|
36997
|
-
|
|
36998
|
-
broadcastToClients(
|
|
37050
|
+
state2.lastHmrPath = relative27(process.cwd(), primaryFile).replace(/\\/g, "/");
|
|
37051
|
+
state2.lastHmrFramework = "react";
|
|
37052
|
+
broadcastToClients(state2, {
|
|
36999
37053
|
data: {
|
|
37000
37054
|
fastRefreshSupported,
|
|
37001
37055
|
framework: "react",
|
|
37002
37056
|
hasComponentChanges: true,
|
|
37003
37057
|
hasCSSChanges: false,
|
|
37004
|
-
manifest:
|
|
37058
|
+
manifest: state2.manifest,
|
|
37005
37059
|
moduleUrls,
|
|
37006
37060
|
pageModuleUrl,
|
|
37007
37061
|
pageModuleUrls,
|
|
@@ -37013,20 +37067,20 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37013
37067
|
});
|
|
37014
37068
|
}
|
|
37015
37069
|
onRebuildComplete({
|
|
37016
|
-
hmrState:
|
|
37017
|
-
manifest:
|
|
37070
|
+
hmrState: state2,
|
|
37071
|
+
manifest: state2.manifest
|
|
37018
37072
|
});
|
|
37019
|
-
return
|
|
37020
|
-
}, handleReactFastPath = async (
|
|
37021
|
-
const reactFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
37073
|
+
return state2.manifest;
|
|
37074
|
+
}, handleReactFastPath = async (state2, _config, filesToRebuild, startTime, onRebuildComplete) => {
|
|
37075
|
+
const reactFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "react");
|
|
37022
37076
|
if (reactFiles.length === 0) {
|
|
37023
|
-
onRebuildComplete({ hmrState:
|
|
37024
|
-
return
|
|
37077
|
+
onRebuildComplete({ hmrState: state2, manifest: state2.manifest });
|
|
37078
|
+
return state2.manifest;
|
|
37025
37079
|
}
|
|
37026
37080
|
const { isReactFastRefreshSupported: isReactFastRefreshSupported2, warnIfReactFastRefreshUnsupported: warnIfReactFastRefreshUnsupported2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
37027
37081
|
warnIfReactFastRefreshUnsupported2();
|
|
37028
37082
|
const fastRefreshSupported = isReactFastRefreshSupported2();
|
|
37029
|
-
return handleReactModuleServerPath(
|
|
37083
|
+
return handleReactModuleServerPath(state2, reactFiles, startTime, fastRefreshSupported, onRebuildComplete);
|
|
37030
37084
|
}, getClientVendorPaths = async () => {
|
|
37031
37085
|
const {
|
|
37032
37086
|
getDevVendorPaths: getDevVendorPaths2,
|
|
@@ -37076,7 +37130,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37076
37130
|
}
|
|
37077
37131
|
const match = fileBase.match(/^(.+)\.[a-z0-9]{8,}\.[^.]+$/i);
|
|
37078
37132
|
return match ? match[1] : null;
|
|
37079
|
-
}, copyVueServerSiblingCss = async (
|
|
37133
|
+
}, copyVueServerSiblingCss = async (state2, serverResult, cssResult) => {
|
|
37080
37134
|
if (!serverResult?.success || !cssResult?.success)
|
|
37081
37135
|
return;
|
|
37082
37136
|
const cssByName = new Map;
|
|
@@ -37101,7 +37155,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37101
37155
|
return;
|
|
37102
37156
|
const siblingCssPath = artifact.path.replace(/\.js$/, ".css");
|
|
37103
37157
|
await copyFile(cssBundlePath, siblingCssPath);
|
|
37104
|
-
|
|
37158
|
+
state2.manifest[`${pascalName}Css`] = siblingCssPath;
|
|
37105
37159
|
}));
|
|
37106
37160
|
}, logBundleFailure = (label, result) => {
|
|
37107
37161
|
if (!result || result.success)
|
|
@@ -37110,29 +37164,29 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37110
37164
|
`);
|
|
37111
37165
|
console.error(`[hmr] ${label} bundle rebuild failed \u2014 served bundles stay on their previous version:
|
|
37112
37166
|
${details}`);
|
|
37113
|
-
}, handleServerManifestUpdate = (
|
|
37167
|
+
}, handleServerManifestUpdate = (state2, serverResult) => {
|
|
37114
37168
|
if (!serverResult?.success) {
|
|
37115
37169
|
return;
|
|
37116
37170
|
}
|
|
37117
37171
|
serverResult.outputs.forEach((artifact) => {
|
|
37118
|
-
updateServerManifestEntry(
|
|
37172
|
+
updateServerManifestEntry(state2, artifact);
|
|
37119
37173
|
});
|
|
37120
|
-
}, handleClientManifestUpdate = async (
|
|
37174
|
+
}, handleClientManifestUpdate = async (state2, clientResult, buildDir) => {
|
|
37121
37175
|
if (!clientResult?.success) {
|
|
37122
37176
|
return;
|
|
37123
37177
|
}
|
|
37124
37178
|
const { generateManifest: generateManifest2 } = await Promise.resolve().then(() => (init_generateManifest(), exports_generateManifest));
|
|
37125
37179
|
const clientManifest = generateManifest2(clientResult.outputs, buildDir);
|
|
37126
|
-
Object.assign(
|
|
37127
|
-
await populateAssetStore(
|
|
37128
|
-
}, broadcastSvelteModuleUpdate = async (
|
|
37180
|
+
Object.assign(state2.manifest, clientManifest);
|
|
37181
|
+
await populateAssetStore(state2.assetStore, clientManifest, buildDir);
|
|
37182
|
+
}, broadcastSvelteModuleUpdate = async (state2, changedFile, svelteFiles, serverDuration) => {
|
|
37129
37183
|
const pageModuleUrl = await getModuleUrl(changedFile);
|
|
37130
|
-
|
|
37131
|
-
|
|
37132
|
-
broadcastToClients(
|
|
37184
|
+
state2.lastHmrPath = changedFile;
|
|
37185
|
+
state2.lastHmrFramework = "svelte";
|
|
37186
|
+
broadcastToClients(state2, {
|
|
37133
37187
|
data: {
|
|
37134
37188
|
framework: "svelte",
|
|
37135
|
-
manifest:
|
|
37189
|
+
manifest: state2.manifest,
|
|
37136
37190
|
pageModuleUrl,
|
|
37137
37191
|
serverDuration,
|
|
37138
37192
|
sourceFile: changedFile,
|
|
@@ -37141,22 +37195,22 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37141
37195
|
},
|
|
37142
37196
|
type: "svelte-update"
|
|
37143
37197
|
});
|
|
37144
|
-
}, handleSvelteModuleServerPath = async (
|
|
37145
|
-
const surgicallyHandled =
|
|
37198
|
+
}, handleSvelteModuleServerPath = async (state2, svelteFiles, config, startTime, onRebuildComplete) => {
|
|
37199
|
+
const surgicallyHandled = state2.svelteSurgicallyHandled ?? new Set;
|
|
37146
37200
|
for (const file5 of svelteFiles) {
|
|
37147
37201
|
surgicallyHandled.add(resolvePath4(file5));
|
|
37148
37202
|
}
|
|
37149
|
-
|
|
37203
|
+
state2.svelteSurgicallyHandled = surgicallyHandled;
|
|
37150
37204
|
const serverDuration = Date.now() - startTime;
|
|
37151
|
-
await runSequentially(svelteFiles, (changedFile) => broadcastSvelteModuleUpdate(
|
|
37152
|
-
scheduleSvelteBundleRebuild(
|
|
37205
|
+
await runSequentially(svelteFiles, (changedFile) => broadcastSvelteModuleUpdate(state2, changedFile, svelteFiles, serverDuration));
|
|
37206
|
+
scheduleSvelteBundleRebuild(state2, svelteFiles, config)();
|
|
37153
37207
|
onRebuildComplete({
|
|
37154
|
-
hmrState:
|
|
37155
|
-
manifest:
|
|
37208
|
+
hmrState: state2,
|
|
37209
|
+
manifest: state2.manifest
|
|
37156
37210
|
});
|
|
37157
|
-
return
|
|
37158
|
-
}, SVELTE_BUNDLE_DEBOUNCE_MS = 2000, svelteBundleState, vueBundleState, getOrCreateBundleCtx = (store,
|
|
37159
|
-
let ctx = store.get(
|
|
37211
|
+
return state2.manifest;
|
|
37212
|
+
}, SVELTE_BUNDLE_DEBOUNCE_MS = 2000, svelteBundleState, vueBundleState, getOrCreateBundleCtx = (store, state2) => {
|
|
37213
|
+
let ctx = store.get(state2);
|
|
37160
37214
|
if (!ctx) {
|
|
37161
37215
|
ctx = {
|
|
37162
37216
|
debouncedPromise: null,
|
|
@@ -37166,26 +37220,26 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37166
37220
|
pending: false,
|
|
37167
37221
|
pendingFiles: new Set
|
|
37168
37222
|
};
|
|
37169
|
-
store.set(
|
|
37223
|
+
store.set(state2, ctx);
|
|
37170
37224
|
}
|
|
37171
37225
|
return ctx;
|
|
37172
|
-
}, runSvelteBundleRebuild = async (
|
|
37226
|
+
}, runSvelteBundleRebuild = async (state2, svelteFiles, config) => {
|
|
37173
37227
|
const existingSvelteFiles = svelteFiles.filter((file5) => existsSync46(file5));
|
|
37174
37228
|
if (existingSvelteFiles.length === 0)
|
|
37175
37229
|
return;
|
|
37176
37230
|
const svelteDir = config.svelteDirectory ?? "";
|
|
37177
37231
|
if (!svelteDir)
|
|
37178
37232
|
return;
|
|
37179
|
-
const { buildDir } =
|
|
37233
|
+
const { buildDir } = state2.resolvedPaths;
|
|
37180
37234
|
const { compileSvelte: compileSvelte2 } = await Promise.resolve().then(() => (init_compileSvelte(), exports_compileSvelte));
|
|
37181
37235
|
const { build: bunBuild9 } = await Promise.resolve(globalThis.Bun);
|
|
37182
|
-
const clientRoot = await computeClientRoot(
|
|
37183
|
-
const { svelteServerPaths, svelteIndexPaths, svelteClientPaths } = await compileSvelte2(existingSvelteFiles, svelteDir, new Map, true, getStyleTransformConfig(
|
|
37236
|
+
const clientRoot = await computeClientRoot(state2.resolvedPaths);
|
|
37237
|
+
const { svelteServerPaths, svelteIndexPaths, svelteClientPaths } = await compileSvelte2(existingSvelteFiles, svelteDir, new Map, true, getStyleTransformConfig(state2.config));
|
|
37184
37238
|
const serverEntries = [...svelteServerPaths];
|
|
37185
37239
|
const clientEntries = [...svelteIndexPaths, ...svelteClientPaths];
|
|
37186
|
-
const { serverRoot, serverOutDir } = await computeServerOutPaths(
|
|
37240
|
+
const { serverRoot, serverOutDir } = await computeServerOutPaths(state2.resolvedPaths, "svelte");
|
|
37187
37241
|
const serverExternals = await getServerBundleExternals();
|
|
37188
|
-
const serverExternalsPlugins = await getServerBundleExternalsPlugins(
|
|
37242
|
+
const serverExternalsPlugins = await getServerBundleExternalsPlugins(state2.config);
|
|
37189
37243
|
const clientVendorPaths = await getClientVendorPaths();
|
|
37190
37244
|
const [serverResult, clientResult] = await Promise.all([
|
|
37191
37245
|
serverEntries.length > 0 ? bunBuild9({
|
|
@@ -37196,7 +37250,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37196
37250
|
outdir: serverOutDir,
|
|
37197
37251
|
plugins: [
|
|
37198
37252
|
...serverExternalsPlugins,
|
|
37199
|
-
createStylePreprocessorPlugin(getStyleTransformConfig(
|
|
37253
|
+
createStylePreprocessorPlugin(getStyleTransformConfig(state2.config))
|
|
37200
37254
|
],
|
|
37201
37255
|
root: serverRoot,
|
|
37202
37256
|
sourcemap: "inline",
|
|
@@ -37210,7 +37264,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37210
37264
|
naming: "[dir]/[name].[hash].[ext]",
|
|
37211
37265
|
outdir: buildDir,
|
|
37212
37266
|
plugins: [
|
|
37213
|
-
createStylePreprocessorPlugin(getStyleTransformConfig(
|
|
37267
|
+
createStylePreprocessorPlugin(getStyleTransformConfig(state2.config))
|
|
37214
37268
|
],
|
|
37215
37269
|
root: clientRoot,
|
|
37216
37270
|
sourcemap: "inline",
|
|
@@ -37221,8 +37275,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37221
37275
|
logBundleFailure("svelte server", serverResult);
|
|
37222
37276
|
logBundleFailure("svelte client", clientResult);
|
|
37223
37277
|
await rewriteClientVendorImports(clientResult, clientVendorPaths);
|
|
37224
|
-
handleServerManifestUpdate(
|
|
37225
|
-
await handleClientManifestUpdate(
|
|
37278
|
+
handleServerManifestUpdate(state2, serverResult);
|
|
37279
|
+
await handleClientManifestUpdate(state2, clientResult, buildDir);
|
|
37226
37280
|
await pruneStaleHashedSiblings(serverResult?.outputs);
|
|
37227
37281
|
await pruneStaleHashedSiblings(clientResult?.outputs);
|
|
37228
37282
|
clearDevSsrCssCaches();
|
|
@@ -37237,18 +37291,18 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37237
37291
|
chainBundleInlineSourcemap2(out.path);
|
|
37238
37292
|
}
|
|
37239
37293
|
}
|
|
37240
|
-
broadcastToClients(
|
|
37241
|
-
data: { manifest:
|
|
37294
|
+
broadcastToClients(state2, {
|
|
37295
|
+
data: { manifest: state2.manifest },
|
|
37242
37296
|
type: "svelte-tier-zero-ssr-rebuild-complete"
|
|
37243
37297
|
});
|
|
37244
|
-
}, scheduleSvelteBundleRebuild = (
|
|
37245
|
-
|
|
37246
|
-
const ctx = getOrCreateBundleCtx(svelteBundleState,
|
|
37298
|
+
}, scheduleSvelteBundleRebuild = (state2, svelteFiles, config) => {
|
|
37299
|
+
state2.pendingBundleRebuilds.add("svelte");
|
|
37300
|
+
const ctx = getOrCreateBundleCtx(svelteBundleState, state2);
|
|
37247
37301
|
for (const file5 of svelteFiles)
|
|
37248
37302
|
ctx.pendingFiles.add(file5);
|
|
37249
37303
|
const runBatch = async (filesSnapshot) => {
|
|
37250
37304
|
try {
|
|
37251
|
-
await runSvelteBundleRebuild(
|
|
37305
|
+
await runSvelteBundleRebuild(state2, filesSnapshot, config);
|
|
37252
37306
|
return true;
|
|
37253
37307
|
} catch (error) {
|
|
37254
37308
|
requeueFailedBundleBatch(ctx, filesSnapshot, "svelte", error);
|
|
@@ -37270,7 +37324,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37270
37324
|
} finally {
|
|
37271
37325
|
ctx.inFlight = null;
|
|
37272
37326
|
if (!ctx.debounceTimer && !ctx.debouncedPromise && !ctx.pending && ctx.pendingFiles.size === 0)
|
|
37273
|
-
|
|
37327
|
+
state2.pendingBundleRebuilds.delete("svelte");
|
|
37274
37328
|
}
|
|
37275
37329
|
};
|
|
37276
37330
|
const fire = () => {
|
|
@@ -37297,23 +37351,23 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37297
37351
|
ctx.debounceTimer = setTimeout(fire, SVELTE_BUNDLE_DEBOUNCE_MS);
|
|
37298
37352
|
return ctx.debouncedPromise;
|
|
37299
37353
|
};
|
|
37300
|
-
}, handleSvelteFastPath = async (
|
|
37354
|
+
}, handleSvelteFastPath = async (state2, config, filesToRebuild, startTime, onRebuildComplete) => {
|
|
37301
37355
|
const svelteDir = config.svelteDirectory ?? "";
|
|
37302
|
-
const svelteFiles = filesToRebuild.filter((file5) => (file5.endsWith(".svelte") || file5.includes(".svelte.")) && detectFramework(file5,
|
|
37356
|
+
const svelteFiles = filesToRebuild.filter((file5) => (file5.endsWith(".svelte") || file5.includes(".svelte.")) && detectFramework(file5, state2.resolvedPaths) === "svelte");
|
|
37303
37357
|
if (svelteFiles.length > 0) {
|
|
37304
|
-
return handleSvelteModuleServerPath(
|
|
37358
|
+
return handleSvelteModuleServerPath(state2, svelteFiles, config, startTime, onRebuildComplete);
|
|
37305
37359
|
}
|
|
37306
|
-
const { buildDir } =
|
|
37360
|
+
const { buildDir } = state2.resolvedPaths;
|
|
37307
37361
|
if (svelteFiles.length > 0) {
|
|
37308
37362
|
const { compileSvelte: compileSvelte2 } = await Promise.resolve().then(() => (init_compileSvelte(), exports_compileSvelte));
|
|
37309
37363
|
const { build: bunBuild9 } = await Promise.resolve(globalThis.Bun);
|
|
37310
|
-
const clientRoot = await computeClientRoot(
|
|
37311
|
-
const { svelteServerPaths, svelteIndexPaths, svelteClientPaths } = await compileSvelte2(svelteFiles, svelteDir, new Map, true, getStyleTransformConfig(
|
|
37364
|
+
const clientRoot = await computeClientRoot(state2.resolvedPaths);
|
|
37365
|
+
const { svelteServerPaths, svelteIndexPaths, svelteClientPaths } = await compileSvelte2(svelteFiles, svelteDir, new Map, true, getStyleTransformConfig(state2.config));
|
|
37312
37366
|
const serverEntries = [...svelteServerPaths];
|
|
37313
37367
|
const clientEntries = [...svelteIndexPaths, ...svelteClientPaths];
|
|
37314
|
-
const { serverRoot, serverOutDir } = await computeServerOutPaths(
|
|
37368
|
+
const { serverRoot, serverOutDir } = await computeServerOutPaths(state2.resolvedPaths, "svelte");
|
|
37315
37369
|
const serverExternals = await getServerBundleExternals();
|
|
37316
|
-
const serverExternalsPlugins = await getServerBundleExternalsPlugins(
|
|
37370
|
+
const serverExternalsPlugins = await getServerBundleExternalsPlugins(state2.config);
|
|
37317
37371
|
const clientVendorPaths = await getClientVendorPaths();
|
|
37318
37372
|
const [serverResult, clientResult] = await Promise.all([
|
|
37319
37373
|
serverEntries.length > 0 ? bunBuild9({
|
|
@@ -37324,7 +37378,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37324
37378
|
outdir: serverOutDir,
|
|
37325
37379
|
plugins: [
|
|
37326
37380
|
...serverExternalsPlugins,
|
|
37327
|
-
createStylePreprocessorPlugin(getStyleTransformConfig(
|
|
37381
|
+
createStylePreprocessorPlugin(getStyleTransformConfig(state2.config))
|
|
37328
37382
|
],
|
|
37329
37383
|
root: serverRoot,
|
|
37330
37384
|
target: "bun",
|
|
@@ -37337,7 +37391,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37337
37391
|
naming: "[dir]/[name].[hash].[ext]",
|
|
37338
37392
|
outdir: buildDir,
|
|
37339
37393
|
plugins: [
|
|
37340
|
-
createStylePreprocessorPlugin(getStyleTransformConfig(
|
|
37394
|
+
createStylePreprocessorPlugin(getStyleTransformConfig(state2.config))
|
|
37341
37395
|
],
|
|
37342
37396
|
root: clientRoot,
|
|
37343
37397
|
target: "browser",
|
|
@@ -37347,13 +37401,13 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37347
37401
|
logBundleFailure("svelte server", serverResult);
|
|
37348
37402
|
logBundleFailure("svelte client", clientResult);
|
|
37349
37403
|
await rewriteClientVendorImports(clientResult, clientVendorPaths);
|
|
37350
|
-
handleServerManifestUpdate(
|
|
37351
|
-
await handleClientManifestUpdate(
|
|
37404
|
+
handleServerManifestUpdate(state2, serverResult);
|
|
37405
|
+
await handleClientManifestUpdate(state2, clientResult, buildDir);
|
|
37352
37406
|
await pruneStaleHashedSiblings(serverResult?.outputs);
|
|
37353
37407
|
await pruneStaleHashedSiblings(clientResult?.outputs);
|
|
37354
37408
|
clearDevSsrCssCaches();
|
|
37355
37409
|
}
|
|
37356
|
-
const { manifest } =
|
|
37410
|
+
const { manifest } = state2;
|
|
37357
37411
|
const duration = Date.now() - startTime;
|
|
37358
37412
|
const broadcastFiles = svelteFiles.length > 0 ? svelteFiles : filesToRebuild;
|
|
37359
37413
|
broadcastFiles.forEach((sveltePagePath) => {
|
|
@@ -37363,7 +37417,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37363
37417
|
const cssKey = `${pascalName}CSS`;
|
|
37364
37418
|
const cssUrl = manifest[cssKey] || null;
|
|
37365
37419
|
logHmrUpdate(sveltePagePath, "svelte", duration);
|
|
37366
|
-
broadcastToClients(
|
|
37420
|
+
broadcastToClients(state2, {
|
|
37367
37421
|
data: {
|
|
37368
37422
|
cssBaseName: baseName,
|
|
37369
37423
|
cssUrl,
|
|
@@ -37376,11 +37430,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37376
37430
|
type: "svelte-update"
|
|
37377
37431
|
});
|
|
37378
37432
|
});
|
|
37379
|
-
onRebuildComplete({ hmrState:
|
|
37433
|
+
onRebuildComplete({ hmrState: state2, manifest });
|
|
37380
37434
|
return manifest;
|
|
37381
|
-
}, collectAffectedVueFiles = (
|
|
37435
|
+
}, collectAffectedVueFiles = (state2, nonVueFiles, vueFiles) => {
|
|
37382
37436
|
for (const tsFile of nonVueFiles) {
|
|
37383
|
-
const affected = getAffectedFiles(
|
|
37437
|
+
const affected = getAffectedFiles(state2.dependencyGraph, tsFile);
|
|
37384
37438
|
const newVueDeps = affected.filter((dep) => dep.endsWith(".vue") && !vueFiles.includes(dep));
|
|
37385
37439
|
vueFiles.push(...newVueDeps);
|
|
37386
37440
|
}
|
|
@@ -37391,17 +37445,17 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37391
37445
|
for (const file5 of nonVueFiles) {
|
|
37392
37446
|
invalidateModule2(file5);
|
|
37393
37447
|
}
|
|
37394
|
-
}, broadcastVueModuleUpdate = async (
|
|
37448
|
+
}, broadcastVueModuleUpdate = async (state2, changedFile, vueFiles, nonVueFiles, forceReload, serverDuration) => {
|
|
37395
37449
|
const pageModuleUrl = await getModuleUrl(changedFile);
|
|
37396
37450
|
const [firstNonVue] = nonVueFiles;
|
|
37397
|
-
|
|
37398
|
-
|
|
37399
|
-
broadcastToClients(
|
|
37451
|
+
state2.lastHmrPath = nonVueFiles.length > 0 && firstNonVue ? firstNonVue : changedFile;
|
|
37452
|
+
state2.lastHmrFramework = "vue";
|
|
37453
|
+
broadcastToClients(state2, {
|
|
37400
37454
|
data: {
|
|
37401
37455
|
changeType: "full",
|
|
37402
37456
|
forceReload,
|
|
37403
37457
|
framework: "vue",
|
|
37404
|
-
manifest:
|
|
37458
|
+
manifest: state2.manifest,
|
|
37405
37459
|
pageModuleUrl,
|
|
37406
37460
|
serverDuration,
|
|
37407
37461
|
sourceFile: changedFile,
|
|
@@ -37410,40 +37464,40 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37410
37464
|
},
|
|
37411
37465
|
type: "vue-update"
|
|
37412
37466
|
});
|
|
37413
|
-
}, handleVueModuleServerPath = async (
|
|
37467
|
+
}, handleVueModuleServerPath = async (state2, vueFiles, nonVueFiles, config, startTime, onRebuildComplete) => {
|
|
37414
37468
|
await invalidateNonVueModules(nonVueFiles);
|
|
37415
37469
|
const serverDuration = Date.now() - startTime;
|
|
37416
37470
|
const forceReload = nonVueFiles.length > 0;
|
|
37417
|
-
await runSequentially(vueFiles, (changedFile) => broadcastVueModuleUpdate(
|
|
37418
|
-
scheduleVueBundleRebuild(
|
|
37471
|
+
await runSequentially(vueFiles, (changedFile) => broadcastVueModuleUpdate(state2, changedFile, vueFiles, nonVueFiles, forceReload, serverDuration));
|
|
37472
|
+
scheduleVueBundleRebuild(state2, vueFiles, config)();
|
|
37419
37473
|
onRebuildComplete({
|
|
37420
|
-
hmrState:
|
|
37421
|
-
manifest:
|
|
37474
|
+
hmrState: state2,
|
|
37475
|
+
manifest: state2.manifest
|
|
37422
37476
|
});
|
|
37423
|
-
return
|
|
37424
|
-
}, VUE_BUNDLE_DEBOUNCE_MS = 2000, runVueBundleRebuild = async (
|
|
37477
|
+
return state2.manifest;
|
|
37478
|
+
}, VUE_BUNDLE_DEBOUNCE_MS = 2000, runVueBundleRebuild = async (state2, vueFiles, config) => {
|
|
37425
37479
|
if (vueFiles.length === 0)
|
|
37426
37480
|
return;
|
|
37427
37481
|
const vueDir = config.vueDirectory ?? "";
|
|
37428
37482
|
if (!vueDir)
|
|
37429
37483
|
return;
|
|
37430
|
-
const { buildDir } =
|
|
37484
|
+
const { buildDir } = state2.resolvedPaths;
|
|
37431
37485
|
const { compileVue: compileVue2 } = await Promise.resolve().then(() => (init_compileVue(), exports_compileVue));
|
|
37432
37486
|
const { build: bunBuild9 } = await Promise.resolve(globalThis.Bun);
|
|
37433
|
-
const clientRoot = await computeClientRoot(
|
|
37487
|
+
const clientRoot = await computeClientRoot(state2.resolvedPaths);
|
|
37434
37488
|
const {
|
|
37435
37489
|
vueServerPaths,
|
|
37436
37490
|
vueIndexPaths,
|
|
37437
37491
|
vueClientPaths,
|
|
37438
37492
|
vueCssPaths,
|
|
37439
37493
|
vueSpaRoutesBySource
|
|
37440
|
-
} = await compileVue2(vueFiles, vueDir, true, getStyleTransformConfig(
|
|
37494
|
+
} = await compileVue2(vueFiles, vueDir, true, getStyleTransformConfig(state2.config));
|
|
37441
37495
|
const serverEntries = [...vueServerPaths];
|
|
37442
37496
|
const clientEntries = [...vueIndexPaths, ...vueClientPaths];
|
|
37443
|
-
const cssOutDir = join62(buildDir,
|
|
37444
|
-
const { serverRoot, serverOutDir } = await computeServerOutPaths(
|
|
37497
|
+
const cssOutDir = join62(buildDir, state2.resolvedPaths.assetsDir ? basename21(state2.resolvedPaths.assetsDir) : "assets", "css");
|
|
37498
|
+
const { serverRoot, serverOutDir } = await computeServerOutPaths(state2.resolvedPaths, "vue");
|
|
37445
37499
|
const serverExternals = await getServerBundleExternals();
|
|
37446
|
-
const serverExternalsPlugins = await getServerBundleExternalsPlugins(
|
|
37500
|
+
const serverExternalsPlugins = await getServerBundleExternalsPlugins(state2.config);
|
|
37447
37501
|
const clientVendorPaths = await getClientVendorPaths();
|
|
37448
37502
|
const [serverResult, clientResult, cssResult] = await Promise.all([
|
|
37449
37503
|
serverEntries.length > 0 ? bunBuild9({
|
|
@@ -37454,7 +37508,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37454
37508
|
outdir: serverOutDir,
|
|
37455
37509
|
plugins: [
|
|
37456
37510
|
...serverExternalsPlugins,
|
|
37457
|
-
createStylePreprocessorPlugin(getStyleTransformConfig(
|
|
37511
|
+
createStylePreprocessorPlugin(getStyleTransformConfig(state2.config))
|
|
37458
37512
|
],
|
|
37459
37513
|
root: serverRoot,
|
|
37460
37514
|
sourcemap: "inline",
|
|
@@ -37468,7 +37522,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37468
37522
|
naming: "[dir]/[name].[hash].[ext]",
|
|
37469
37523
|
outdir: buildDir,
|
|
37470
37524
|
plugins: [
|
|
37471
|
-
createStylePreprocessorPlugin(getStyleTransformConfig(
|
|
37525
|
+
createStylePreprocessorPlugin(getStyleTransformConfig(state2.config))
|
|
37472
37526
|
],
|
|
37473
37527
|
root: clientRoot,
|
|
37474
37528
|
sourcemap: "inline",
|
|
@@ -37480,7 +37534,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37480
37534
|
naming: "[name].[hash].[ext]",
|
|
37481
37535
|
outdir: cssOutDir,
|
|
37482
37536
|
plugins: [
|
|
37483
|
-
createStylePreprocessorPlugin(getStyleTransformConfig(
|
|
37537
|
+
createStylePreprocessorPlugin(getStyleTransformConfig(state2.config))
|
|
37484
37538
|
],
|
|
37485
37539
|
target: "browser",
|
|
37486
37540
|
throw: false
|
|
@@ -37490,19 +37544,19 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37490
37544
|
logBundleFailure("vue client", clientResult);
|
|
37491
37545
|
logBundleFailure("vue css", cssResult);
|
|
37492
37546
|
await rewriteClientVendorImports(clientResult, clientVendorPaths);
|
|
37493
|
-
handleServerManifestUpdate(
|
|
37494
|
-
await handleClientManifestUpdate(
|
|
37495
|
-
await handleClientManifestUpdate(
|
|
37496
|
-
await copyVueServerSiblingCss(
|
|
37547
|
+
handleServerManifestUpdate(state2, serverResult);
|
|
37548
|
+
await handleClientManifestUpdate(state2, clientResult, buildDir);
|
|
37549
|
+
await handleClientManifestUpdate(state2, cssResult, buildDir);
|
|
37550
|
+
await copyVueServerSiblingCss(state2, serverResult, cssResult);
|
|
37497
37551
|
await pruneStaleHashedSiblings(serverResult?.outputs);
|
|
37498
37552
|
await pruneStaleHashedSiblings(clientResult?.outputs);
|
|
37499
37553
|
await pruneStaleHashedSiblings(cssResult?.outputs);
|
|
37500
37554
|
if (vueSpaRoutesBySource.size > 0) {
|
|
37501
37555
|
const spaManifestEntries = await writeSpaSideManifests(vueSpaRoutesBySource, (pascalName) => {
|
|
37502
|
-
const fromManifest =
|
|
37556
|
+
const fromManifest = state2.manifest[pascalName];
|
|
37503
37557
|
return typeof fromManifest === "string" && isAbsolute10(fromManifest) && fromManifest.endsWith(".js") ? fromManifest : undefined;
|
|
37504
37558
|
});
|
|
37505
|
-
Object.assign(
|
|
37559
|
+
Object.assign(state2.manifest, spaManifestEntries);
|
|
37506
37560
|
}
|
|
37507
37561
|
clearDevSsrCssCaches();
|
|
37508
37562
|
if (serverResult?.success) {
|
|
@@ -37519,18 +37573,18 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37519
37573
|
chainBundleInlineSourcemap2(out.path);
|
|
37520
37574
|
}
|
|
37521
37575
|
}
|
|
37522
|
-
broadcastToClients(
|
|
37523
|
-
data: { manifest:
|
|
37576
|
+
broadcastToClients(state2, {
|
|
37577
|
+
data: { manifest: state2.manifest },
|
|
37524
37578
|
type: "vue-tier-zero-ssr-rebuild-complete"
|
|
37525
37579
|
});
|
|
37526
|
-
}, scheduleVueBundleRebuild = (
|
|
37527
|
-
|
|
37528
|
-
const ctx = getOrCreateBundleCtx(vueBundleState,
|
|
37580
|
+
}, scheduleVueBundleRebuild = (state2, vueFiles, config) => {
|
|
37581
|
+
state2.pendingBundleRebuilds.add("vue");
|
|
37582
|
+
const ctx = getOrCreateBundleCtx(vueBundleState, state2);
|
|
37529
37583
|
for (const file5 of vueFiles)
|
|
37530
37584
|
ctx.pendingFiles.add(file5);
|
|
37531
37585
|
const runBatch = async (filesSnapshot) => {
|
|
37532
37586
|
try {
|
|
37533
|
-
await runVueBundleRebuild(
|
|
37587
|
+
await runVueBundleRebuild(state2, filesSnapshot, config);
|
|
37534
37588
|
return true;
|
|
37535
37589
|
} catch (error) {
|
|
37536
37590
|
requeueFailedBundleBatch(ctx, filesSnapshot, "vue", error);
|
|
@@ -37552,7 +37606,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37552
37606
|
} finally {
|
|
37553
37607
|
ctx.inFlight = null;
|
|
37554
37608
|
if (!ctx.debounceTimer && !ctx.debouncedPromise && !ctx.pending && ctx.pendingFiles.size === 0)
|
|
37555
|
-
|
|
37609
|
+
state2.pendingBundleRebuilds.delete("vue");
|
|
37556
37610
|
}
|
|
37557
37611
|
};
|
|
37558
37612
|
const fire = () => {
|
|
@@ -37579,15 +37633,15 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37579
37633
|
ctx.debounceTimer = setTimeout(fire, VUE_BUNDLE_DEBOUNCE_MS);
|
|
37580
37634
|
return ctx.debouncedPromise;
|
|
37581
37635
|
};
|
|
37582
|
-
}, handleVueFastPath = async (
|
|
37583
|
-
const vueFiles = filesToRebuild.filter((file5) => file5.endsWith(".vue") && detectFramework(file5,
|
|
37584
|
-
const nonVueFiles = filesToRebuild.filter((file5) => !file5.endsWith(".vue") && detectFramework(file5,
|
|
37585
|
-
collectAffectedVueFiles(
|
|
37636
|
+
}, handleVueFastPath = async (state2, config, filesToRebuild, startTime, onRebuildComplete) => {
|
|
37637
|
+
const vueFiles = filesToRebuild.filter((file5) => file5.endsWith(".vue") && detectFramework(file5, state2.resolvedPaths) === "vue");
|
|
37638
|
+
const nonVueFiles = filesToRebuild.filter((file5) => !file5.endsWith(".vue") && detectFramework(file5, state2.resolvedPaths) === "vue");
|
|
37639
|
+
collectAffectedVueFiles(state2, nonVueFiles, vueFiles);
|
|
37586
37640
|
if (vueFiles.length > 0) {
|
|
37587
|
-
return handleVueModuleServerPath(
|
|
37641
|
+
return handleVueModuleServerPath(state2, vueFiles, nonVueFiles, config, startTime, onRebuildComplete);
|
|
37588
37642
|
}
|
|
37589
|
-
onRebuildComplete({ hmrState:
|
|
37590
|
-
return
|
|
37643
|
+
onRebuildComplete({ hmrState: state2, manifest: state2.manifest });
|
|
37644
|
+
return state2.manifest;
|
|
37591
37645
|
}, EMBER_PAGE_EXTENSIONS, collectAllEmberPages = async (emberPagesPath) => {
|
|
37592
37646
|
const { readdir: readdir6 } = await import("fs/promises");
|
|
37593
37647
|
try {
|
|
@@ -37599,57 +37653,57 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37599
37653
|
} catch {
|
|
37600
37654
|
return [];
|
|
37601
37655
|
}
|
|
37602
|
-
}, handleEmberFastPath = async (
|
|
37656
|
+
}, handleEmberFastPath = async (state2, config, filesToRebuild, startTime, onRebuildComplete) => {
|
|
37603
37657
|
const emberDir = config.emberDirectory ?? "";
|
|
37604
|
-
const emberFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
37658
|
+
const emberFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "ember");
|
|
37605
37659
|
if (emberFiles.length === 0 || !emberDir) {
|
|
37606
|
-
onRebuildComplete({ hmrState:
|
|
37607
|
-
return
|
|
37660
|
+
onRebuildComplete({ hmrState: state2, manifest: state2.manifest });
|
|
37661
|
+
return state2.manifest;
|
|
37608
37662
|
}
|
|
37609
37663
|
const emberPagesPath = resolvePath4(emberDir, "pages");
|
|
37610
37664
|
const directPageEntries = emberFiles.filter((file5) => resolvePath4(file5).startsWith(emberPagesPath));
|
|
37611
37665
|
const allPageEntries = directPageEntries.length > 0 ? directPageEntries : await collectAllEmberPages(emberPagesPath);
|
|
37612
37666
|
if (allPageEntries.length === 0) {
|
|
37613
|
-
onRebuildComplete({ hmrState:
|
|
37614
|
-
return
|
|
37667
|
+
onRebuildComplete({ hmrState: state2, manifest: state2.manifest });
|
|
37668
|
+
return state2.manifest;
|
|
37615
37669
|
}
|
|
37616
37670
|
const { compileEmber: compileEmber2 } = await Promise.resolve().then(() => (init_compileEmber(), exports_compileEmber));
|
|
37617
37671
|
const { serverPaths } = await compileEmber2(allPageEntries, emberDir, process.cwd(), true);
|
|
37618
37672
|
for (const serverPath of serverPaths) {
|
|
37619
37673
|
const fileBase = basename21(serverPath, ".js");
|
|
37620
|
-
|
|
37674
|
+
state2.manifest[toPascal(fileBase)] = resolvePath4(serverPath);
|
|
37621
37675
|
}
|
|
37622
37676
|
const { invalidateEmberSsrCache: invalidateEmberSsrCache2 } = await Promise.resolve().then(() => (init_ember(), exports_ember));
|
|
37623
37677
|
invalidateEmberSsrCache2();
|
|
37624
37678
|
const duration = Date.now() - startTime;
|
|
37625
37679
|
const [primary] = emberFiles;
|
|
37626
37680
|
if (primary) {
|
|
37627
|
-
|
|
37628
|
-
|
|
37681
|
+
state2.lastHmrPath = relative27(process.cwd(), primary).replace(/\\/g, "/");
|
|
37682
|
+
state2.lastHmrFramework = "ember";
|
|
37629
37683
|
logHmrUpdate(primary, "ember", duration);
|
|
37630
37684
|
}
|
|
37631
|
-
broadcastToClients(
|
|
37685
|
+
broadcastToClients(state2, {
|
|
37632
37686
|
data: {
|
|
37633
37687
|
affectedPages: allPageEntries,
|
|
37634
37688
|
framework: "ember",
|
|
37635
|
-
manifest:
|
|
37689
|
+
manifest: state2.manifest,
|
|
37636
37690
|
serverDuration: duration,
|
|
37637
37691
|
sourceFile: primary
|
|
37638
37692
|
},
|
|
37639
37693
|
type: "full-reload"
|
|
37640
37694
|
});
|
|
37641
|
-
onRebuildComplete({ hmrState:
|
|
37642
|
-
return
|
|
37643
|
-
}, collectModuleUpdatesForFramework = (framework, filesToRebuild, manifest,
|
|
37644
|
-
const frameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
37695
|
+
onRebuildComplete({ hmrState: state2, manifest: state2.manifest });
|
|
37696
|
+
return state2.manifest;
|
|
37697
|
+
}, collectModuleUpdatesForFramework = (framework, filesToRebuild, manifest, state2) => {
|
|
37698
|
+
const frameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === framework);
|
|
37645
37699
|
if (frameworkFiles.length === 0) {
|
|
37646
37700
|
return [];
|
|
37647
37701
|
}
|
|
37648
|
-
return createModuleUpdates(frameworkFiles, framework, manifest,
|
|
37649
|
-
}, collectAllModuleUpdates = (affectedFrameworks, filesToRebuild, manifest,
|
|
37702
|
+
return createModuleUpdates(frameworkFiles, framework, manifest, state2.resolvedPaths);
|
|
37703
|
+
}, collectAllModuleUpdates = (affectedFrameworks, filesToRebuild, manifest, state2) => {
|
|
37650
37704
|
const allModuleUpdates = [];
|
|
37651
37705
|
affectedFrameworks.forEach((framework) => {
|
|
37652
|
-
const moduleUpdates = collectModuleUpdatesForFramework(framework, filesToRebuild, manifest,
|
|
37706
|
+
const moduleUpdates = collectModuleUpdatesForFramework(framework, filesToRebuild, manifest, state2);
|
|
37653
37707
|
moduleUpdates.forEach((update) => {
|
|
37654
37708
|
if (update) {
|
|
37655
37709
|
allModuleUpdates.push(update);
|
|
@@ -37657,11 +37711,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37657
37711
|
});
|
|
37658
37712
|
});
|
|
37659
37713
|
return allModuleUpdates;
|
|
37660
|
-
}, handleReactHMR = async (
|
|
37661
|
-
if (!affectedFrameworks.includes("react") || !
|
|
37714
|
+
}, handleReactHMR = async (state2, affectedFrameworks, filesToRebuild, manifest, duration) => {
|
|
37715
|
+
if (!affectedFrameworks.includes("react") || !state2.resolvedPaths.reactDir) {
|
|
37662
37716
|
return;
|
|
37663
37717
|
}
|
|
37664
|
-
const reactFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
37718
|
+
const reactFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "react");
|
|
37665
37719
|
if (reactFiles.length === 0) {
|
|
37666
37720
|
return;
|
|
37667
37721
|
}
|
|
@@ -37674,12 +37728,12 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37674
37728
|
warnIfReactFastRefreshUnsupported: warnIfReactFastRefreshUnsupported2
|
|
37675
37729
|
} = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
37676
37730
|
warnIfReactFastRefreshUnsupported2();
|
|
37677
|
-
await handleReactModuleServerPath(
|
|
37731
|
+
await handleReactModuleServerPath(state2, reactFiles, Date.now() - duration, isReactFastRefreshSupported2(), () => {
|
|
37678
37732
|
return;
|
|
37679
37733
|
});
|
|
37680
37734
|
} catch (err) {
|
|
37681
37735
|
logHmrUpdate(primarySource ?? reactFiles[0] ?? "", "react", duration);
|
|
37682
|
-
broadcastToClients(
|
|
37736
|
+
broadcastToClients(state2, {
|
|
37683
37737
|
data: {
|
|
37684
37738
|
framework: "react",
|
|
37685
37739
|
hasComponentChanges: true,
|
|
@@ -37697,7 +37751,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37697
37751
|
message: err instanceof Error ? err.message : String(err)
|
|
37698
37752
|
});
|
|
37699
37753
|
}
|
|
37700
|
-
}, handleScriptUpdate = (
|
|
37754
|
+
}, handleScriptUpdate = (state2, scriptFile, manifest, framework, duration) => {
|
|
37701
37755
|
const scriptBaseName = basename21(scriptFile).replace(/\.(ts|js|tsx|jsx)$/, "");
|
|
37702
37756
|
const pascalName = toPascal(scriptBaseName);
|
|
37703
37757
|
const scriptPath = manifest[pascalName] || null;
|
|
@@ -37706,7 +37760,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37706
37760
|
return;
|
|
37707
37761
|
}
|
|
37708
37762
|
logScriptUpdate(scriptFile, framework, duration);
|
|
37709
|
-
broadcastToClients(
|
|
37763
|
+
broadcastToClients(state2, {
|
|
37710
37764
|
data: {
|
|
37711
37765
|
framework,
|
|
37712
37766
|
manifest,
|
|
@@ -37742,7 +37796,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37742
37796
|
return false;
|
|
37743
37797
|
}
|
|
37744
37798
|
return filesToRebuild.some((file5) => islandFiles.has(resolvePath4(file5)));
|
|
37745
|
-
}, handleIslandSourceReload = async (
|
|
37799
|
+
}, handleIslandSourceReload = async (state2, config, filesToRebuild, manifest, serverDuration) => {
|
|
37746
37800
|
const shouldReload = await didStaticPagesNeedIslandRefresh(config, filesToRebuild);
|
|
37747
37801
|
if (!shouldReload) {
|
|
37748
37802
|
return false;
|
|
@@ -37752,9 +37806,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37752
37806
|
if (affectedPages.length === 0)
|
|
37753
37807
|
return true;
|
|
37754
37808
|
const affectedFrameworks = [
|
|
37755
|
-
...new Set(affectedPages.map((page) => detectFramework(page,
|
|
37809
|
+
...new Set(affectedPages.map((page) => detectFramework(page, state2.resolvedPaths)).filter((framework) => framework !== "ignored"))
|
|
37756
37810
|
];
|
|
37757
|
-
broadcastToClients(
|
|
37811
|
+
broadcastToClients(state2, {
|
|
37758
37812
|
data: {
|
|
37759
37813
|
affectedFrameworks,
|
|
37760
37814
|
affectedPages,
|
|
@@ -37766,11 +37820,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37766
37820
|
type: "full-reload"
|
|
37767
37821
|
});
|
|
37768
37822
|
return true;
|
|
37769
|
-
}, handleHTMLScriptHMR = (
|
|
37770
|
-
if (!
|
|
37823
|
+
}, handleHTMLScriptHMR = (state2, filesToRebuild, manifest, duration) => {
|
|
37824
|
+
if (!state2.resolvedPaths.htmlDir) {
|
|
37771
37825
|
return;
|
|
37772
37826
|
}
|
|
37773
|
-
const htmlFrameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
37827
|
+
const htmlFrameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "html");
|
|
37774
37828
|
if (htmlFrameworkFiles.length === 0) {
|
|
37775
37829
|
return;
|
|
37776
37830
|
}
|
|
@@ -37780,16 +37834,16 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37780
37834
|
return;
|
|
37781
37835
|
}
|
|
37782
37836
|
scriptFiles.forEach((scriptFile) => {
|
|
37783
|
-
handleScriptUpdate(
|
|
37837
|
+
handleScriptUpdate(state2, scriptFile, manifest, "html", duration);
|
|
37784
37838
|
});
|
|
37785
|
-
}, computeOutputPagesDir = (
|
|
37839
|
+
}, computeOutputPagesDir = (state2, config, framework) => {
|
|
37786
37840
|
const isSingle = !config.reactDirectory && !config.svelteDirectory && !config.vueDirectory && (framework === "html" ? !config.htmxDirectory : !config.htmlDirectory);
|
|
37787
37841
|
if (isSingle) {
|
|
37788
|
-
return resolvePath4(
|
|
37842
|
+
return resolvePath4(state2.resolvedPaths.buildDir, "pages");
|
|
37789
37843
|
}
|
|
37790
37844
|
const dirName = framework === "html" ? basename21(config.htmlDirectory ?? "html") : basename21(config.htmxDirectory ?? "htmx");
|
|
37791
|
-
return resolvePath4(
|
|
37792
|
-
}, processHtmlPageUpdate = async (
|
|
37845
|
+
return resolvePath4(state2.resolvedPaths.buildDir, dirName, "pages");
|
|
37846
|
+
}, processHtmlPageUpdate = async (state2, pageFile, builtHtmlPagePath, manifest, duration) => {
|
|
37793
37847
|
try {
|
|
37794
37848
|
const { handleHTMLUpdate: handleHTMLUpdate2 } = await Promise.resolve().then(() => (init_simpleHTMLHMR(), exports_simpleHTMLHMR));
|
|
37795
37849
|
const newHTML = await handleHTMLUpdate2(builtHtmlPagePath);
|
|
@@ -37797,7 +37851,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37797
37851
|
return;
|
|
37798
37852
|
}
|
|
37799
37853
|
logHmrUpdate(pageFile, "html", duration);
|
|
37800
|
-
broadcastToClients(
|
|
37854
|
+
broadcastToClients(state2, {
|
|
37801
37855
|
data: {
|
|
37802
37856
|
framework: "html",
|
|
37803
37857
|
html: newHTML,
|
|
@@ -37814,25 +37868,25 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37814
37868
|
message: err instanceof Error ? err.message : String(err)
|
|
37815
37869
|
});
|
|
37816
37870
|
}
|
|
37817
|
-
}, handleHTMLPageHMR = async (
|
|
37818
|
-
if (!
|
|
37871
|
+
}, handleHTMLPageHMR = async (state2, config, filesToRebuild, manifest, duration) => {
|
|
37872
|
+
if (!state2.resolvedPaths.htmlDir) {
|
|
37819
37873
|
return;
|
|
37820
37874
|
}
|
|
37821
37875
|
const shouldRefreshFromIslandChange = await didStaticPagesNeedIslandRefresh(config, filesToRebuild);
|
|
37822
|
-
const htmlFrameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
37876
|
+
const htmlFrameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "html");
|
|
37823
37877
|
if (htmlFrameworkFiles.length === 0 && !shouldRefreshFromIslandChange) {
|
|
37824
37878
|
return;
|
|
37825
37879
|
}
|
|
37826
37880
|
const htmlPageFiles = htmlFrameworkFiles.filter((file5) => file5.endsWith(".html"));
|
|
37827
|
-
const outputHtmlPages = computeOutputPagesDir(
|
|
37881
|
+
const outputHtmlPages = computeOutputPagesDir(state2, config, "html");
|
|
37828
37882
|
const shouldRefreshAllPages = htmlPageFiles.length === 0 && shouldRefreshFromIslandChange;
|
|
37829
37883
|
const pageFilesToUpdate = shouldRefreshAllPages ? await scanEntryPoints(outputHtmlPages, "*.html") : htmlPageFiles;
|
|
37830
37884
|
await runSequentially(pageFilesToUpdate, async (pageFile) => {
|
|
37831
37885
|
const htmlPageName = basename21(pageFile);
|
|
37832
37886
|
const builtHtmlPagePath = resolvePath4(outputHtmlPages, htmlPageName);
|
|
37833
|
-
await processHtmlPageUpdate(
|
|
37887
|
+
await processHtmlPageUpdate(state2, pageFile, builtHtmlPagePath, manifest, duration);
|
|
37834
37888
|
});
|
|
37835
|
-
}, handleVueCssOnlyUpdate = (
|
|
37889
|
+
}, handleVueCssOnlyUpdate = (state2, vueCssFiles, manifest, duration) => {
|
|
37836
37890
|
const [cssFile] = vueCssFiles;
|
|
37837
37891
|
if (!cssFile) {
|
|
37838
37892
|
return;
|
|
@@ -37842,7 +37896,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37842
37896
|
const cssKey = `${cssPascalName}CSS`;
|
|
37843
37897
|
const cssUrl = manifest[cssKey] || null;
|
|
37844
37898
|
logCssUpdate(cssFile, "vue", duration);
|
|
37845
|
-
broadcastToClients(
|
|
37899
|
+
broadcastToClients(state2, {
|
|
37846
37900
|
data: {
|
|
37847
37901
|
cssBaseName,
|
|
37848
37902
|
cssUrl,
|
|
@@ -37854,9 +37908,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37854
37908
|
},
|
|
37855
37909
|
type: "vue-update"
|
|
37856
37910
|
});
|
|
37857
|
-
}, broadcastVueStyleOnly = (
|
|
37911
|
+
}, broadcastVueStyleOnly = (state2, vuePagePath, baseName, cssUrl, hmrId, manifest, duration) => {
|
|
37858
37912
|
logCssUpdate(vuePagePath, "vue", duration);
|
|
37859
|
-
broadcastToClients(
|
|
37913
|
+
broadcastToClients(state2, {
|
|
37860
37914
|
data: {
|
|
37861
37915
|
changeType: "style-only",
|
|
37862
37916
|
cssBaseName: baseName,
|
|
@@ -37870,10 +37924,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37870
37924
|
},
|
|
37871
37925
|
type: "vue-update"
|
|
37872
37926
|
});
|
|
37873
|
-
}, broadcastVueFullUpdate = (
|
|
37927
|
+
}, broadcastVueFullUpdate = (state2, vuePagePath, changeType, cssUrl, hmrId, manifest, pascalName, duration) => {
|
|
37874
37928
|
const componentPath = manifest[`${pascalName}Client`] || null;
|
|
37875
37929
|
logHmrUpdate(vuePagePath, "vue", duration);
|
|
37876
|
-
broadcastToClients(
|
|
37930
|
+
broadcastToClients(state2, {
|
|
37877
37931
|
data: {
|
|
37878
37932
|
changeType,
|
|
37879
37933
|
componentPath,
|
|
@@ -37888,25 +37942,25 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37888
37942
|
},
|
|
37889
37943
|
type: "vue-update"
|
|
37890
37944
|
});
|
|
37891
|
-
}, broadcastVuePageChange = async (
|
|
37945
|
+
}, broadcastVuePageChange = async (state2, config, vuePagePath, manifest, duration) => {
|
|
37892
37946
|
const fileName = basename21(vuePagePath);
|
|
37893
37947
|
const baseName = fileName.replace(/\.vue$/, "");
|
|
37894
37948
|
const pascalName = toPascal(baseName);
|
|
37895
37949
|
const vueRoot = config.vueDirectory;
|
|
37896
|
-
const hmrId = vueRoot ?
|
|
37950
|
+
const hmrId = vueRoot ? relative27(vueRoot, vuePagePath).replace(/\\/g, "/").replace(/\.vue$/, "") : baseName;
|
|
37897
37951
|
const cssKey = `${pascalName}CSS`;
|
|
37898
37952
|
const cssUrl = manifest[cssKey] || null;
|
|
37899
37953
|
const { vueHmrMetadata: vueHmrMetadata2 } = await Promise.resolve().then(() => (init_compileVue(), exports_compileVue));
|
|
37900
37954
|
const hmrMeta = vueHmrMetadata2.get(resolvePath4(vuePagePath));
|
|
37901
37955
|
const changeType = hmrMeta?.changeType ?? "full";
|
|
37902
37956
|
if (changeType === "style-only") {
|
|
37903
|
-
broadcastVueStyleOnly(
|
|
37957
|
+
broadcastVueStyleOnly(state2, vuePagePath, baseName, cssUrl, hmrId, manifest, duration);
|
|
37904
37958
|
return;
|
|
37905
37959
|
}
|
|
37906
|
-
broadcastVueFullUpdate(
|
|
37907
|
-
}, processVuePageUpdate = async (
|
|
37960
|
+
broadcastVueFullUpdate(state2, vuePagePath, changeType, cssUrl, hmrId, manifest, pascalName, duration);
|
|
37961
|
+
}, processVuePageUpdate = async (state2, config, vuePagePath, manifest, duration) => {
|
|
37908
37962
|
try {
|
|
37909
|
-
await broadcastVuePageChange(
|
|
37963
|
+
await broadcastVuePageChange(state2, config, vuePagePath, manifest, duration);
|
|
37910
37964
|
} catch (err) {
|
|
37911
37965
|
console.error("[hmr] vue live update failed:", err instanceof Error ? err.message : err);
|
|
37912
37966
|
sendTelemetryEvent("hmr:error", {
|
|
@@ -37914,11 +37968,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37914
37968
|
message: err instanceof Error ? err.message : String(err)
|
|
37915
37969
|
});
|
|
37916
37970
|
}
|
|
37917
|
-
}, handleVueHMR = async (
|
|
37971
|
+
}, handleVueHMR = async (state2, config, filesToRebuild, manifest, duration) => {
|
|
37918
37972
|
if (!config.vueDirectory) {
|
|
37919
37973
|
return;
|
|
37920
37974
|
}
|
|
37921
|
-
const vueFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
37975
|
+
const vueFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "vue");
|
|
37922
37976
|
if (vueFiles.length === 0) {
|
|
37923
37977
|
return;
|
|
37924
37978
|
}
|
|
@@ -37928,10 +37982,10 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37928
37982
|
const vuePageFiles = vueFiles.filter((file5) => file5.replace(/\\/g, "/").includes("/pages/"));
|
|
37929
37983
|
const pagesToUpdate = vuePageFiles.length > 0 ? vuePageFiles : vueComponentFiles;
|
|
37930
37984
|
if (isCssOnlyChange && vueCssFiles.length > 0) {
|
|
37931
|
-
handleVueCssOnlyUpdate(
|
|
37985
|
+
handleVueCssOnlyUpdate(state2, vueCssFiles, manifest, duration);
|
|
37932
37986
|
}
|
|
37933
|
-
await runSequentially(pagesToUpdate, (vuePagePath) => processVuePageUpdate(
|
|
37934
|
-
}, handleSvelteCssOnlyUpdate = (
|
|
37987
|
+
await runSequentially(pagesToUpdate, (vuePagePath) => processVuePageUpdate(state2, config, vuePagePath, manifest, duration));
|
|
37988
|
+
}, handleSvelteCssOnlyUpdate = (state2, svelteCssFiles, manifest, duration) => {
|
|
37935
37989
|
const [cssFile] = svelteCssFiles;
|
|
37936
37990
|
if (!cssFile) {
|
|
37937
37991
|
return;
|
|
@@ -37941,7 +37995,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37941
37995
|
const cssKey = `${cssPascalName}CSS`;
|
|
37942
37996
|
const cssUrl = manifest[cssKey] || null;
|
|
37943
37997
|
logCssUpdate(cssFile, "svelte", duration);
|
|
37944
|
-
broadcastToClients(
|
|
37998
|
+
broadcastToClients(state2, {
|
|
37945
37999
|
data: {
|
|
37946
38000
|
cssBaseName,
|
|
37947
38001
|
cssUrl,
|
|
@@ -37953,7 +38007,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37953
38007
|
},
|
|
37954
38008
|
type: "svelte-update"
|
|
37955
38009
|
});
|
|
37956
|
-
}, broadcastSveltePageUpdate = (
|
|
38010
|
+
}, broadcastSveltePageUpdate = (state2, sveltePagePath, manifest, duration) => {
|
|
37957
38011
|
try {
|
|
37958
38012
|
const fileName = basename21(sveltePagePath);
|
|
37959
38013
|
const baseName = fileName.replace(/\.svelte$/, "");
|
|
@@ -37961,7 +38015,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37961
38015
|
const cssKey = `${pascalName}CSS`;
|
|
37962
38016
|
const cssUrl = manifest[cssKey] || null;
|
|
37963
38017
|
logHmrUpdate(sveltePagePath, "svelte", duration);
|
|
37964
|
-
broadcastToClients(
|
|
38018
|
+
broadcastToClients(state2, {
|
|
37965
38019
|
data: {
|
|
37966
38020
|
cssBaseName: baseName,
|
|
37967
38021
|
cssUrl,
|
|
@@ -37981,11 +38035,11 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37981
38035
|
message: err instanceof Error ? err.message : String(err)
|
|
37982
38036
|
});
|
|
37983
38037
|
}
|
|
37984
|
-
}, handleSvelteHMR = (
|
|
38038
|
+
}, handleSvelteHMR = (state2, config, filesToRebuild, manifest, duration) => {
|
|
37985
38039
|
if (!config.svelteDirectory) {
|
|
37986
38040
|
return;
|
|
37987
38041
|
}
|
|
37988
|
-
const svelteFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
38042
|
+
const svelteFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "svelte");
|
|
37989
38043
|
if (svelteFiles.length === 0) {
|
|
37990
38044
|
return;
|
|
37991
38045
|
}
|
|
@@ -37995,13 +38049,13 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
37995
38049
|
const sveltePageFiles = svelteFiles.filter((file5) => file5.replace(/\\/g, "/").includes("/pages/"));
|
|
37996
38050
|
const pagesToUpdate = sveltePageFiles.length > 0 ? sveltePageFiles : svelteComponentFiles;
|
|
37997
38051
|
if (isCssOnlyChange && svelteCssFiles.length > 0) {
|
|
37998
|
-
handleSvelteCssOnlyUpdate(
|
|
38052
|
+
handleSvelteCssOnlyUpdate(state2, svelteCssFiles, manifest, duration);
|
|
37999
38053
|
}
|
|
38000
|
-
const surgicallyHandled =
|
|
38054
|
+
const surgicallyHandled = state2.svelteSurgicallyHandled;
|
|
38001
38055
|
pagesToUpdate.filter((sveltePagePath) => !surgicallyHandled?.has(resolvePath4(sveltePagePath))).forEach((sveltePagePath) => {
|
|
38002
|
-
broadcastSveltePageUpdate(
|
|
38056
|
+
broadcastSveltePageUpdate(state2, sveltePagePath, manifest, duration);
|
|
38003
38057
|
});
|
|
38004
|
-
}, handleAngularCssOnlyUpdate = (
|
|
38058
|
+
}, handleAngularCssOnlyUpdate = (state2, angularCssFiles, manifest, duration) => {
|
|
38005
38059
|
const [cssFile] = angularCssFiles;
|
|
38006
38060
|
if (!cssFile) {
|
|
38007
38061
|
return;
|
|
@@ -38011,7 +38065,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38011
38065
|
const cssKey = `${cssPascalName}CSS`;
|
|
38012
38066
|
const cssUrl = manifest[cssKey] || null;
|
|
38013
38067
|
logCssUpdate(cssFile, "angular", duration);
|
|
38014
|
-
broadcastToClients(
|
|
38068
|
+
broadcastToClients(state2, {
|
|
38015
38069
|
data: {
|
|
38016
38070
|
cssBaseName,
|
|
38017
38071
|
cssUrl,
|
|
@@ -38023,22 +38077,22 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38023
38077
|
},
|
|
38024
38078
|
type: "angular-update"
|
|
38025
38079
|
});
|
|
38026
|
-
}, handleAngularHMR = (
|
|
38080
|
+
}, handleAngularHMR = (state2, config, filesToRebuild, manifest, duration) => {
|
|
38027
38081
|
if (!config.angularDirectory)
|
|
38028
38082
|
return;
|
|
38029
|
-
const angularFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
38083
|
+
const angularFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "angular");
|
|
38030
38084
|
if (angularFiles.length === 0)
|
|
38031
38085
|
return;
|
|
38032
38086
|
const angularCssFiles = angularFiles.filter(isStylePath);
|
|
38033
38087
|
const isCssOnlyChange = angularFiles.every(isStylePath) && angularCssFiles.length > 0;
|
|
38034
38088
|
if (isCssOnlyChange) {
|
|
38035
|
-
handleAngularCssOnlyUpdate(
|
|
38089
|
+
handleAngularCssOnlyUpdate(state2, angularCssFiles, manifest, duration);
|
|
38036
38090
|
}
|
|
38037
|
-
}, handleHTMXScriptHMR = (
|
|
38038
|
-
if (!
|
|
38091
|
+
}, handleHTMXScriptHMR = (state2, filesToRebuild, manifest, duration) => {
|
|
38092
|
+
if (!state2.resolvedPaths.htmxDir) {
|
|
38039
38093
|
return;
|
|
38040
38094
|
}
|
|
38041
|
-
const htmxFrameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
38095
|
+
const htmxFrameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "htmx");
|
|
38042
38096
|
if (htmxFrameworkFiles.length === 0) {
|
|
38043
38097
|
return;
|
|
38044
38098
|
}
|
|
@@ -38048,9 +38102,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38048
38102
|
return;
|
|
38049
38103
|
}
|
|
38050
38104
|
htmxScriptFiles.forEach((scriptFile) => {
|
|
38051
|
-
handleScriptUpdate(
|
|
38105
|
+
handleScriptUpdate(state2, scriptFile, manifest, "htmx", duration);
|
|
38052
38106
|
});
|
|
38053
|
-
}, processHtmxPageUpdate = async (
|
|
38107
|
+
}, processHtmxPageUpdate = async (state2, htmxPageFile, builtHtmxPagePath, manifest, duration) => {
|
|
38054
38108
|
try {
|
|
38055
38109
|
const { handleHTMXUpdate: handleHTMXUpdate2 } = await Promise.resolve().then(() => (init_simpleHTMXHMR(), exports_simpleHTMXHMR));
|
|
38056
38110
|
const newHTML = await handleHTMXUpdate2(builtHtmxPagePath);
|
|
@@ -38058,7 +38112,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38058
38112
|
return;
|
|
38059
38113
|
}
|
|
38060
38114
|
logHmrUpdate(htmxPageFile, "htmx", duration);
|
|
38061
|
-
broadcastToClients(
|
|
38115
|
+
broadcastToClients(state2, {
|
|
38062
38116
|
data: {
|
|
38063
38117
|
framework: "htmx",
|
|
38064
38118
|
html: newHTML,
|
|
@@ -38075,23 +38129,23 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38075
38129
|
message: err instanceof Error ? err.message : String(err)
|
|
38076
38130
|
});
|
|
38077
38131
|
}
|
|
38078
|
-
}, handleHTMXPageHMR = async (
|
|
38079
|
-
if (!
|
|
38132
|
+
}, handleHTMXPageHMR = async (state2, config, filesToRebuild, manifest, duration) => {
|
|
38133
|
+
if (!state2.resolvedPaths.htmxDir) {
|
|
38080
38134
|
return;
|
|
38081
38135
|
}
|
|
38082
38136
|
const shouldRefreshFromIslandChange = await didStaticPagesNeedIslandRefresh(config, filesToRebuild);
|
|
38083
|
-
const htmxFrameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5,
|
|
38137
|
+
const htmxFrameworkFiles = filesToRebuild.filter((file5) => detectFramework(file5, state2.resolvedPaths) === "htmx");
|
|
38084
38138
|
if (htmxFrameworkFiles.length === 0 && !shouldRefreshFromIslandChange) {
|
|
38085
38139
|
return;
|
|
38086
38140
|
}
|
|
38087
38141
|
const htmxPageFiles = htmxFrameworkFiles.filter((file5) => file5.endsWith(".html"));
|
|
38088
|
-
const outputHtmxPages = computeOutputPagesDir(
|
|
38142
|
+
const outputHtmxPages = computeOutputPagesDir(state2, config, "htmx");
|
|
38089
38143
|
const shouldRefreshAllPages = htmxPageFiles.length === 0 && shouldRefreshFromIslandChange;
|
|
38090
38144
|
const pageFilesToUpdate = shouldRefreshAllPages ? await scanEntryPoints(outputHtmxPages, "*.html") : htmxPageFiles;
|
|
38091
38145
|
await runSequentially(pageFilesToUpdate, async (htmxPageFile) => {
|
|
38092
38146
|
const htmxPageName = basename21(htmxPageFile);
|
|
38093
38147
|
const builtHtmxPagePath = resolvePath4(outputHtmxPages, htmxPageName);
|
|
38094
|
-
await processHtmxPageUpdate(
|
|
38148
|
+
await processHtmxPageUpdate(state2, htmxPageFile, builtHtmxPagePath, manifest, duration);
|
|
38095
38149
|
});
|
|
38096
38150
|
}, collectUpdatedModulePaths = (allModuleUpdates) => {
|
|
38097
38151
|
const paths = [];
|
|
@@ -38113,22 +38167,22 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38113
38167
|
moduleVersions[path2] = pathVersion;
|
|
38114
38168
|
}
|
|
38115
38169
|
});
|
|
38116
|
-
}, handleModuleUpdates = (
|
|
38170
|
+
}, handleModuleUpdates = (state2, allModuleUpdates, manifest) => {
|
|
38117
38171
|
const updatedModulePaths = collectUpdatedModulePaths(allModuleUpdates);
|
|
38118
38172
|
if (updatedModulePaths.length > 0) {
|
|
38119
|
-
incrementModuleVersions(
|
|
38173
|
+
incrementModuleVersions(state2.moduleVersions, updatedModulePaths);
|
|
38120
38174
|
}
|
|
38121
38175
|
if (allModuleUpdates.length === 0) {
|
|
38122
38176
|
return;
|
|
38123
38177
|
}
|
|
38124
38178
|
const updatesByFramework = groupModuleUpdatesByFramework(allModuleUpdates);
|
|
38125
|
-
const serverVersions = serializeModuleVersions(
|
|
38179
|
+
const serverVersions = serializeModuleVersions(state2.moduleVersions);
|
|
38126
38180
|
for (const [framework, updates] of updatesByFramework) {
|
|
38127
38181
|
const moduleVersions = {};
|
|
38128
38182
|
updates.forEach((update) => {
|
|
38129
|
-
buildModuleVersionsForUpdate(update,
|
|
38183
|
+
buildModuleVersionsForUpdate(update, state2.moduleVersions, moduleVersions);
|
|
38130
38184
|
});
|
|
38131
|
-
broadcastToClients(
|
|
38185
|
+
broadcastToClients(state2, {
|
|
38132
38186
|
data: {
|
|
38133
38187
|
framework,
|
|
38134
38188
|
manifest,
|
|
@@ -38137,7 +38191,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38137
38191
|
moduleKeys: update.moduleKeys,
|
|
38138
38192
|
modulePaths: update.modulePaths,
|
|
38139
38193
|
sourceFile: update.sourceFile,
|
|
38140
|
-
version:
|
|
38194
|
+
version: state2.moduleVersions.get(update.sourceFile)
|
|
38141
38195
|
})),
|
|
38142
38196
|
moduleVersions,
|
|
38143
38197
|
serverVersions
|
|
@@ -38146,42 +38200,42 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38146
38200
|
type: "module-update"
|
|
38147
38201
|
});
|
|
38148
38202
|
}
|
|
38149
|
-
}, handleFullBuildHMR = async (
|
|
38150
|
-
const allModuleUpdates = collectAllModuleUpdates(affectedFrameworks, filesToRebuild, manifest,
|
|
38151
|
-
await handleReactHMR(
|
|
38152
|
-
handleHTMLScriptHMR(
|
|
38153
|
-
await handleHTMLPageHMR(
|
|
38154
|
-
await handleVueHMR(
|
|
38155
|
-
handleSvelteHMR(
|
|
38156
|
-
handleAngularHMR(
|
|
38157
|
-
handleHTMXScriptHMR(
|
|
38158
|
-
await handleHTMXPageHMR(
|
|
38159
|
-
handleModuleUpdates(
|
|
38160
|
-
}, logStyleUpdatesForFramework = (
|
|
38203
|
+
}, handleFullBuildHMR = async (state2, config, affectedFrameworks, filesToRebuild, manifest, duration) => {
|
|
38204
|
+
const allModuleUpdates = collectAllModuleUpdates(affectedFrameworks, filesToRebuild, manifest, state2);
|
|
38205
|
+
await handleReactHMR(state2, affectedFrameworks, filesToRebuild, manifest, duration);
|
|
38206
|
+
handleHTMLScriptHMR(state2, filesToRebuild, manifest, duration);
|
|
38207
|
+
await handleHTMLPageHMR(state2, config, filesToRebuild, manifest, duration);
|
|
38208
|
+
await handleVueHMR(state2, config, filesToRebuild, manifest, duration);
|
|
38209
|
+
handleSvelteHMR(state2, config, filesToRebuild, manifest, duration);
|
|
38210
|
+
handleAngularHMR(state2, config, filesToRebuild, manifest, duration);
|
|
38211
|
+
handleHTMXScriptHMR(state2, filesToRebuild, manifest, duration);
|
|
38212
|
+
await handleHTMXPageHMR(state2, config, filesToRebuild, manifest, duration);
|
|
38213
|
+
handleModuleUpdates(state2, allModuleUpdates, manifest);
|
|
38214
|
+
}, logStyleUpdatesForFramework = (state2, framework, filesToRebuild, startTime) => {
|
|
38161
38215
|
const dur = Date.now() - startTime;
|
|
38162
38216
|
filesToRebuild.forEach((file5) => {
|
|
38163
|
-
if (detectFramework(file5,
|
|
38217
|
+
if (detectFramework(file5, state2.resolvedPaths) === framework) {
|
|
38164
38218
|
logCssUpdate(file5, framework, dur);
|
|
38165
38219
|
}
|
|
38166
38220
|
});
|
|
38167
|
-
}, broadcastSingleFrameworkUpdate = (
|
|
38221
|
+
}, broadcastSingleFrameworkUpdate = (state2, framework, filesToRebuild, manifest, startTime) => {
|
|
38168
38222
|
const type = framework === "styles" || framework === "assets" ? "style-update" : "framework-update";
|
|
38169
38223
|
if (type === "style-update" && filesToRebuild) {
|
|
38170
|
-
logStyleUpdatesForFramework(
|
|
38224
|
+
logStyleUpdatesForFramework(state2, framework, filesToRebuild, startTime);
|
|
38171
38225
|
}
|
|
38172
|
-
broadcastToClients(
|
|
38226
|
+
broadcastToClients(state2, {
|
|
38173
38227
|
data: {
|
|
38174
38228
|
framework,
|
|
38175
38229
|
manifest,
|
|
38176
38230
|
serverDuration: Date.now() - startTime,
|
|
38177
|
-
sourceFile: filesToRebuild?.find((file5) => detectFramework(file5,
|
|
38231
|
+
sourceFile: filesToRebuild?.find((file5) => detectFramework(file5, state2.resolvedPaths) === framework)
|
|
38178
38232
|
},
|
|
38179
38233
|
message: `${framework} framework updated`,
|
|
38180
38234
|
type
|
|
38181
38235
|
});
|
|
38182
|
-
}, broadcastFrameworkUpdates = (
|
|
38236
|
+
}, broadcastFrameworkUpdates = (state2, affectedFrameworks, filesToRebuild, manifest, startTime) => {
|
|
38183
38237
|
affectedFrameworks.forEach((framework) => {
|
|
38184
|
-
broadcastSingleFrameworkUpdate(
|
|
38238
|
+
broadcastSingleFrameworkUpdate(state2, framework, filesToRebuild, manifest, startTime);
|
|
38185
38239
|
});
|
|
38186
38240
|
}, HMR_SCRIPT_PATTERN, extractHmrScript = (destPath, readFs) => {
|
|
38187
38241
|
try {
|
|
@@ -38200,12 +38254,12 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38200
38254
|
return;
|
|
38201
38255
|
html = html.slice(0, bodyClose.index) + hmrScript + html.slice(bodyClose.index);
|
|
38202
38256
|
writeFs(destPath, html);
|
|
38203
|
-
}, processMarkupFileFastPath = async (
|
|
38257
|
+
}, processMarkupFileFastPath = async (state2, sourceFile, outputDir, framework, startTime, updateAssetPaths2, handleUpdate, readFs, writeFs) => {
|
|
38204
38258
|
const destPath = resolvePath4(outputDir, basename21(sourceFile));
|
|
38205
38259
|
const hmrScript = extractHmrScript(destPath, readFs);
|
|
38206
38260
|
const source = await Bun.file(sourceFile).text();
|
|
38207
38261
|
await Bun.write(destPath, source);
|
|
38208
|
-
await updateAssetPaths2(
|
|
38262
|
+
await updateAssetPaths2(state2.manifest, outputDir);
|
|
38209
38263
|
const { optimizeHtmlImages: optimizeHtmlImages2 } = await Promise.resolve().then(() => (init_optimizeHtmlImages(), exports_optimizeHtmlImages));
|
|
38210
38264
|
await optimizeHtmlImages2(outputDir);
|
|
38211
38265
|
injectHmrScript(destPath, hmrScript, readFs, writeFs);
|
|
@@ -38214,27 +38268,27 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38214
38268
|
return;
|
|
38215
38269
|
const dur = Date.now() - startTime;
|
|
38216
38270
|
logHmrUpdate(sourceFile, framework, dur);
|
|
38217
|
-
broadcastToClients(
|
|
38271
|
+
broadcastToClients(state2, {
|
|
38218
38272
|
data: {
|
|
38219
38273
|
framework,
|
|
38220
38274
|
html: newHTML,
|
|
38221
|
-
manifest:
|
|
38275
|
+
manifest: state2.manifest,
|
|
38222
38276
|
sourceFile
|
|
38223
38277
|
},
|
|
38224
38278
|
type: `${framework}-update`
|
|
38225
38279
|
});
|
|
38226
|
-
}, tryProcessMarkupFile = async (
|
|
38280
|
+
}, tryProcessMarkupFile = async (state2, sourceFile, outputDir, framework, startTime, updateAssetPaths2, handleUpdate, readFs, writeFs) => {
|
|
38227
38281
|
try {
|
|
38228
|
-
await processMarkupFileFastPath(
|
|
38282
|
+
await processMarkupFileFastPath(state2, sourceFile, outputDir, framework, startTime, updateAssetPaths2, handleUpdate, readFs, writeFs);
|
|
38229
38283
|
return true;
|
|
38230
38284
|
} catch {
|
|
38231
38285
|
return false;
|
|
38232
38286
|
}
|
|
38233
|
-
}, runMarkupFastPath = async (
|
|
38287
|
+
}, runMarkupFastPath = async (state2, config, filesToRebuild, startTime, framework) => {
|
|
38234
38288
|
const markupFiles = (filesToRebuild ?? []).filter((file5) => file5.endsWith(".html"));
|
|
38235
38289
|
if (markupFiles.length === 0)
|
|
38236
38290
|
return;
|
|
38237
|
-
const outputDir = computeOutputPagesDir(
|
|
38291
|
+
const outputDir = computeOutputPagesDir(state2, config, framework);
|
|
38238
38292
|
const { updateAssetPaths: updateAssetPaths2 } = await Promise.resolve().then(() => (init_updateAssetPaths(), exports_updateAssetPaths));
|
|
38239
38293
|
const handleUpdate = framework === "html" ? (await Promise.resolve().then(() => (init_simpleHTMLHMR(), exports_simpleHTMLHMR))).handleHTMLUpdate : (await Promise.resolve().then(() => (init_simpleHTMXHMR(), exports_simpleHTMXHMR))).handleHTMXUpdate;
|
|
38240
38294
|
const { readFileSync: readFs, writeFileSync: writeFs } = await import("fs");
|
|
@@ -38243,16 +38297,16 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38243
38297
|
if (!markupFile) {
|
|
38244
38298
|
return;
|
|
38245
38299
|
}
|
|
38246
|
-
const success = await tryProcessMarkupFile(
|
|
38300
|
+
const success = await tryProcessMarkupFile(state2, markupFile, outputDir, framework, startTime, updateAssetPaths2, handleUpdate, readFs, writeFs);
|
|
38247
38301
|
if (!success) {
|
|
38248
38302
|
return;
|
|
38249
38303
|
}
|
|
38250
38304
|
await processMarkupFiles(remaining);
|
|
38251
38305
|
};
|
|
38252
38306
|
await processMarkupFiles(markupFiles);
|
|
38253
|
-
}, runHtmlFastPath = async (
|
|
38307
|
+
}, runHtmlFastPath = async (state2, config, filesToRebuild, startTime) => runMarkupFastPath(state2, config, filesToRebuild, startTime, "html"), runHtmxFastPath = async (state2, config, filesToRebuild, startTime) => runMarkupFastPath(state2, config, filesToRebuild, startTime, "htmx"), markHandledFiles = (files, framework, resolvedPaths, handled) => {
|
|
38254
38308
|
files.filter((f2) => detectFramework(f2, resolvedPaths) === framework).forEach((f2) => handled.add(f2));
|
|
38255
|
-
}, runFrameworkFastPaths = async (
|
|
38309
|
+
}, runFrameworkFastPaths = async (state2, config, affectedFrameworks, files, startTime, onRebuildComplete) => {
|
|
38256
38310
|
const handled = new Set;
|
|
38257
38311
|
const fastPaths = [
|
|
38258
38312
|
{
|
|
@@ -38284,44 +38338,44 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38284
38338
|
await runSequentially(fastPaths, async (fastPath) => {
|
|
38285
38339
|
if (!fastPath.directory || !affectedFrameworks.includes(fastPath.framework))
|
|
38286
38340
|
return;
|
|
38287
|
-
await fastPath.handler(
|
|
38288
|
-
markHandledFiles(files, fastPath.framework,
|
|
38341
|
+
await fastPath.handler(state2, config, files, startTime, onRebuildComplete);
|
|
38342
|
+
markHandledFiles(files, fastPath.framework, state2.resolvedPaths, handled);
|
|
38289
38343
|
});
|
|
38290
38344
|
const configPath2 = resolvePath4(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts");
|
|
38291
|
-
if (affectedFrameworks.includes("angular") && files.includes(configPath2) && !
|
|
38345
|
+
if (affectedFrameworks.includes("angular") && files.includes(configPath2) && !state2.lastUserEditedFiles?.has(configPath2)) {
|
|
38292
38346
|
handled.add(configPath2);
|
|
38293
38347
|
}
|
|
38294
38348
|
return files.every((f2) => handled.has(f2));
|
|
38295
|
-
}, performFullRebuild = async (
|
|
38296
|
-
|
|
38297
|
-
const hasManifest = Object.keys(
|
|
38349
|
+
}, performFullRebuild = async (state2, config, affectedFrameworks, filesToRebuild, startTime, onRebuildComplete, options) => {
|
|
38350
|
+
state2.svelteSurgicallyHandled = undefined;
|
|
38351
|
+
const hasManifest = Object.keys(state2.manifest).length > 0;
|
|
38298
38352
|
const files = filesToRebuild ?? [];
|
|
38299
38353
|
const onDemandPage = options?.onDemandPage;
|
|
38300
38354
|
let allHandled = !onDemandPage && files.length > 0 && hasManifest;
|
|
38301
38355
|
const hasIslandSourceChanges = files.length > 0 ? await didStaticPagesNeedIslandRefresh(config, files) : false;
|
|
38302
38356
|
if (allHandled && !hasIslandSourceChanges) {
|
|
38303
|
-
allHandled = await runFrameworkFastPaths(
|
|
38357
|
+
allHandled = await runFrameworkFastPaths(state2, config, affectedFrameworks, files, startTime, onRebuildComplete);
|
|
38304
38358
|
}
|
|
38305
38359
|
if (allHandled && config.htmlDirectory && affectedFrameworks.includes("html")) {
|
|
38306
|
-
await runHtmlFastPath(
|
|
38360
|
+
await runHtmlFastPath(state2, config, filesToRebuild, startTime);
|
|
38307
38361
|
}
|
|
38308
38362
|
if (allHandled && config.htmxDirectory && affectedFrameworks.includes("htmx")) {
|
|
38309
|
-
await runHtmxFastPath(
|
|
38363
|
+
await runHtmxFastPath(state2, config, filesToRebuild, startTime);
|
|
38310
38364
|
}
|
|
38311
38365
|
if (allHandled) {
|
|
38312
|
-
await recompileTailwindForFastPath(
|
|
38366
|
+
await recompileTailwindForFastPath(state2, config, files);
|
|
38313
38367
|
onRebuildComplete({
|
|
38314
|
-
hmrState:
|
|
38315
|
-
manifest:
|
|
38368
|
+
hmrState: state2,
|
|
38369
|
+
manifest: state2.manifest
|
|
38316
38370
|
});
|
|
38317
|
-
return
|
|
38371
|
+
return state2.manifest;
|
|
38318
38372
|
}
|
|
38319
38373
|
const buildConfig = {
|
|
38320
38374
|
...config,
|
|
38321
38375
|
incrementalFiles: filesToRebuild && filesToRebuild.length > 0 ? filesToRebuild : undefined,
|
|
38322
38376
|
options: {
|
|
38323
38377
|
...config.options,
|
|
38324
|
-
baseManifest:
|
|
38378
|
+
baseManifest: state2.manifest,
|
|
38325
38379
|
injectHMR: true,
|
|
38326
38380
|
throwOnError: true
|
|
38327
38381
|
}
|
|
@@ -38331,20 +38385,20 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38331
38385
|
throw new Error("Build failed - no manifest generated");
|
|
38332
38386
|
}
|
|
38333
38387
|
const { manifest } = buildResult;
|
|
38334
|
-
if (
|
|
38335
|
-
updateLazyPageRegistry(
|
|
38388
|
+
if (state2.lazyPages && buildResult.pageEntries) {
|
|
38389
|
+
updateLazyPageRegistry(state2.lazyPages.registry, buildResult.pageEntries);
|
|
38336
38390
|
}
|
|
38337
38391
|
const duration = Date.now() - startTime;
|
|
38338
38392
|
const partialErrors = buildResult.errors ?? [];
|
|
38339
38393
|
if (partialErrors.length > 0) {
|
|
38340
|
-
|
|
38341
|
-
await populateAssetStore(
|
|
38342
|
-
cleanStaleAssets(
|
|
38394
|
+
state2.lastBuildErrors = partialErrors;
|
|
38395
|
+
await populateAssetStore(state2.assetStore, manifest, state2.resolvedPaths.buildDir);
|
|
38396
|
+
cleanStaleAssets(state2.assetStore, manifest, state2.resolvedPaths.buildDir);
|
|
38343
38397
|
const [first] = partialErrors;
|
|
38344
|
-
if (onDemandPage &&
|
|
38345
|
-
|
|
38398
|
+
if (onDemandPage && state2.lazyPages) {
|
|
38399
|
+
state2.lazyPages.lastError = first?.message ?? "Build failed";
|
|
38346
38400
|
}
|
|
38347
|
-
broadcastToClients(
|
|
38401
|
+
broadcastToClients(state2, {
|
|
38348
38402
|
data: {
|
|
38349
38403
|
affectedFrameworks,
|
|
38350
38404
|
column: first?.column,
|
|
@@ -38363,18 +38417,18 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38363
38417
|
message: "Rebuild completed with unresolved references",
|
|
38364
38418
|
type: "rebuild-error"
|
|
38365
38419
|
});
|
|
38366
|
-
onRebuildComplete({ hmrState:
|
|
38420
|
+
onRebuildComplete({ hmrState: state2, manifest });
|
|
38367
38421
|
return manifest;
|
|
38368
38422
|
}
|
|
38369
|
-
|
|
38423
|
+
state2.lastBuildErrors = undefined;
|
|
38370
38424
|
sendTelemetryEvent("hmr:rebuild-complete", {
|
|
38371
38425
|
durationMs: duration,
|
|
38372
38426
|
fileCount: filesToRebuild?.length ?? 0,
|
|
38373
38427
|
framework: affectedFrameworks[0] ?? "unknown"
|
|
38374
38428
|
});
|
|
38375
|
-
await populateAssetStore(
|
|
38376
|
-
cleanStaleAssets(
|
|
38377
|
-
broadcastToClients(
|
|
38429
|
+
await populateAssetStore(state2.assetStore, manifest, state2.resolvedPaths.buildDir);
|
|
38430
|
+
cleanStaleAssets(state2.assetStore, manifest, state2.resolvedPaths.buildDir);
|
|
38431
|
+
broadcastToClients(state2, {
|
|
38378
38432
|
data: {
|
|
38379
38433
|
affectedFrameworks,
|
|
38380
38434
|
manifest
|
|
@@ -38385,12 +38439,12 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38385
38439
|
const hasDedicatedStyleUpdate = affectedFrameworks.some((framework) => framework === "styles" || framework === "assets");
|
|
38386
38440
|
if (config.tailwind && filesToRebuild && filesToRebuild.some(isTailwindCandidate) && !hasDedicatedStyleUpdate) {
|
|
38387
38441
|
try {
|
|
38388
|
-
const outputPath = resolvePath4(
|
|
38442
|
+
const outputPath = resolvePath4(state2.resolvedPaths.buildDir, config.tailwind.output);
|
|
38389
38443
|
const bytes = await Bun.file(outputPath).bytes();
|
|
38390
38444
|
const webPath = `/${config.tailwind.output.replace(/^\/+/, "")}`;
|
|
38391
|
-
|
|
38445
|
+
state2.assetStore.set(webPath, bytes);
|
|
38392
38446
|
} catch {}
|
|
38393
|
-
broadcastToClients(
|
|
38447
|
+
broadcastToClients(state2, {
|
|
38394
38448
|
data: {
|
|
38395
38449
|
cause: filesToRebuild?.filter(isTailwindCandidate) ?? [],
|
|
38396
38450
|
framework: "tailwind",
|
|
@@ -38403,35 +38457,35 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38403
38457
|
}
|
|
38404
38458
|
if (onDemandPage) {
|
|
38405
38459
|
clearDevSsrCssCaches();
|
|
38406
|
-
onRebuildComplete({ hmrState:
|
|
38460
|
+
onRebuildComplete({ hmrState: state2, manifest });
|
|
38407
38461
|
return manifest;
|
|
38408
38462
|
}
|
|
38409
38463
|
const hasFilesToRebuild = filesToRebuild && filesToRebuild.length > 0;
|
|
38410
|
-
const didReloadForIslandChange = hasFilesToRebuild ? await handleIslandSourceReload(
|
|
38464
|
+
const didReloadForIslandChange = hasFilesToRebuild ? await handleIslandSourceReload(state2, config, filesToRebuild, manifest, duration) : false;
|
|
38411
38465
|
if (didReloadForIslandChange) {
|
|
38412
|
-
await runFrameworkFastPaths(
|
|
38413
|
-
onRebuildComplete({ hmrState:
|
|
38466
|
+
await runFrameworkFastPaths(state2, config, affectedFrameworks, filesToRebuild ?? [], startTime, onRebuildComplete);
|
|
38467
|
+
onRebuildComplete({ hmrState: state2, manifest });
|
|
38414
38468
|
return manifest;
|
|
38415
38469
|
}
|
|
38416
38470
|
if (hasFilesToRebuild) {
|
|
38417
|
-
await handleFullBuildHMR(
|
|
38471
|
+
await handleFullBuildHMR(state2, config, affectedFrameworks, filesToRebuild, manifest, duration);
|
|
38418
38472
|
}
|
|
38419
|
-
broadcastFrameworkUpdates(
|
|
38473
|
+
broadcastFrameworkUpdates(state2, affectedFrameworks, filesToRebuild, manifest, startTime);
|
|
38420
38474
|
clearDevSsrCssCaches();
|
|
38421
|
-
onRebuildComplete({ hmrState:
|
|
38475
|
+
onRebuildComplete({ hmrState: state2, manifest });
|
|
38422
38476
|
return manifest;
|
|
38423
|
-
}, drainPendingQueue = (
|
|
38424
|
-
if (
|
|
38477
|
+
}, drainPendingQueue = (state2, config, onRebuildComplete) => {
|
|
38478
|
+
if (state2.fileChangeQueue.size === 0) {
|
|
38425
38479
|
return;
|
|
38426
38480
|
}
|
|
38427
|
-
if (
|
|
38428
|
-
clearTimeout(
|
|
38429
|
-
|
|
38430
|
-
|
|
38431
|
-
drainQueueAndRebuild(
|
|
38481
|
+
if (state2.rebuildTimeout)
|
|
38482
|
+
clearTimeout(state2.rebuildTimeout);
|
|
38483
|
+
state2.rebuildTimeout = setTimeout(() => {
|
|
38484
|
+
state2.rebuildTimeout = null;
|
|
38485
|
+
drainQueueAndRebuild(state2, config, onRebuildComplete);
|
|
38432
38486
|
}, REBUILD_BATCH_DELAY_MS);
|
|
38433
|
-
}, STYLE_FILE_EXT_RE, hasAngularOwnedStyleEdit = async (
|
|
38434
|
-
const edited =
|
|
38487
|
+
}, STYLE_FILE_EXT_RE, hasAngularOwnedStyleEdit = async (state2, angularDir) => {
|
|
38488
|
+
const edited = state2.lastUserEditedFiles;
|
|
38435
38489
|
if (!edited || edited.size === 0)
|
|
38436
38490
|
return false;
|
|
38437
38491
|
const styleEdits = [];
|
|
@@ -38451,29 +38505,29 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38451
38505
|
return true;
|
|
38452
38506
|
}
|
|
38453
38507
|
return false;
|
|
38454
|
-
}, triggerRebuild = async (
|
|
38455
|
-
if (
|
|
38508
|
+
}, triggerRebuild = async (state2, config, onRebuildComplete, filesToRebuild, options) => {
|
|
38509
|
+
if (state2.isRebuilding) {
|
|
38456
38510
|
return null;
|
|
38457
38511
|
}
|
|
38458
|
-
|
|
38512
|
+
state2.isRebuilding = true;
|
|
38459
38513
|
const onDemandPage = options?.onDemandPage;
|
|
38460
|
-
const affectedFrameworks = onDemandPage ? [onDemandPage.framework] : Array.from(
|
|
38514
|
+
const affectedFrameworks = onDemandPage ? [onDemandPage.framework] : Array.from(state2.rebuildQueue);
|
|
38461
38515
|
if (!onDemandPage)
|
|
38462
|
-
|
|
38463
|
-
if (!onDemandPage && config.angularDirectory !== undefined && !affectedFrameworks.includes("angular") && await hasAngularOwnedStyleEdit(
|
|
38516
|
+
state2.rebuildQueue.clear();
|
|
38517
|
+
if (!onDemandPage && config.angularDirectory !== undefined && !affectedFrameworks.includes("angular") && await hasAngularOwnedStyleEdit(state2, config.angularDirectory)) {
|
|
38464
38518
|
affectedFrameworks.push("angular");
|
|
38465
38519
|
}
|
|
38466
38520
|
const startTime = Date.now();
|
|
38467
|
-
broadcastToClients(
|
|
38521
|
+
broadcastToClients(state2, {
|
|
38468
38522
|
data: { affectedFrameworks },
|
|
38469
38523
|
message: "Rebuild started...",
|
|
38470
38524
|
type: "rebuild-start"
|
|
38471
38525
|
});
|
|
38472
38526
|
try {
|
|
38473
|
-
return await performFullRebuild(
|
|
38527
|
+
return await performFullRebuild(state2, config, affectedFrameworks, filesToRebuild, startTime, onRebuildComplete, options);
|
|
38474
38528
|
} catch (error) {
|
|
38475
|
-
if (onDemandPage &&
|
|
38476
|
-
|
|
38529
|
+
if (onDemandPage && state2.lazyPages) {
|
|
38530
|
+
state2.lazyPages.lastError = error instanceof Error ? error.message : String(error);
|
|
38477
38531
|
}
|
|
38478
38532
|
sendTelemetryEvent("hmr:rebuild-error", {
|
|
38479
38533
|
durationMs: Date.now() - startTime,
|
|
@@ -38482,8 +38536,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38482
38536
|
frameworks: affectedFrameworks,
|
|
38483
38537
|
message: error instanceof Error ? error.message : String(error)
|
|
38484
38538
|
});
|
|
38485
|
-
const errorData = extractBuildErrorDetails(error, affectedFrameworks,
|
|
38486
|
-
broadcastToClients(
|
|
38539
|
+
const errorData = extractBuildErrorDetails(error, affectedFrameworks, state2.resolvedPaths);
|
|
38540
|
+
broadcastToClients(state2, {
|
|
38487
38541
|
data: {
|
|
38488
38542
|
affectedFrameworks,
|
|
38489
38543
|
error: error instanceof Error ? error.message : String(error),
|
|
@@ -38494,8 +38548,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
|
|
|
38494
38548
|
});
|
|
38495
38549
|
return null;
|
|
38496
38550
|
} finally {
|
|
38497
|
-
|
|
38498
|
-
drainPendingQueue(
|
|
38551
|
+
state2.isRebuilding = false;
|
|
38552
|
+
drainPendingQueue(state2, config, onRebuildComplete);
|
|
38499
38553
|
}
|
|
38500
38554
|
}, isAbsoluteConfig = (filePath) => filePath === resolvePath4(process.env.ABSOLUTE_CONFIG ?? "absolute.config.ts"), applyBackendEdit = async (filePath) => {
|
|
38501
38555
|
if (globalThis.__absoluteBackendHmr !== true)
|
|
@@ -39023,7 +39077,7 @@ __export(exports_devBuild, {
|
|
|
39023
39077
|
devBuild: () => devBuild
|
|
39024
39078
|
});
|
|
39025
39079
|
import { readdir as readdir6 } from "fs/promises";
|
|
39026
|
-
import { existsSync as existsSync48, statSync as
|
|
39080
|
+
import { existsSync as existsSync48, statSync as statSync12 } from "fs";
|
|
39027
39081
|
import { resolve as resolve57 } from "path";
|
|
39028
39082
|
var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.dir, "../dev/client"), collectDepVendorSourceDirs = (config) => {
|
|
39029
39083
|
const configuredDirs = [
|
|
@@ -39058,8 +39112,8 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39058
39112
|
const newConfig = await reloadConfig();
|
|
39059
39113
|
if (!newConfig)
|
|
39060
39114
|
return { added: [], removed: [] };
|
|
39061
|
-
const
|
|
39062
|
-
const oldConfig =
|
|
39115
|
+
const state2 = cached.hmrState;
|
|
39116
|
+
const oldConfig = state2.config;
|
|
39063
39117
|
const added = [];
|
|
39064
39118
|
const removed = [];
|
|
39065
39119
|
for (const key of FRAMEWORK_DIR_KEYS) {
|
|
@@ -39079,11 +39133,11 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39079
39133
|
if (added.length === 0 && removed.length === 0) {
|
|
39080
39134
|
return { added: [], removed: [] };
|
|
39081
39135
|
}
|
|
39082
|
-
const oldWatchPaths = new Set(getWatchPaths(oldConfig,
|
|
39136
|
+
const oldWatchPaths = new Set(getWatchPaths(oldConfig, state2.resolvedPaths));
|
|
39083
39137
|
for (const key of FRAMEWORK_DIR_KEYS) {
|
|
39084
|
-
|
|
39138
|
+
state2.config[key] = newConfig[key];
|
|
39085
39139
|
}
|
|
39086
|
-
|
|
39140
|
+
state2.resolvedPaths = resolveBuildPaths(state2.config);
|
|
39087
39141
|
if (!oldConfig.reactDirectory && Boolean(newConfig.reactDirectory)) {
|
|
39088
39142
|
setDevVendorPaths(computeVendorPaths());
|
|
39089
39143
|
}
|
|
@@ -39099,14 +39153,14 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39099
39153
|
if (!oldConfig.emberDirectory && Boolean(newConfig.emberDirectory)) {
|
|
39100
39154
|
setEmberVendorPaths(computeEmberVendorPaths());
|
|
39101
39155
|
}
|
|
39102
|
-
const newWatchPaths = getWatchPaths(
|
|
39156
|
+
const newWatchPaths = getWatchPaths(state2.config, state2.resolvedPaths);
|
|
39103
39157
|
const addedPaths = newWatchPaths.filter((path2) => !oldWatchPaths.has(path2));
|
|
39104
39158
|
if (addedPaths.length > 0) {
|
|
39105
|
-
buildInitialDependencyGraph(
|
|
39106
|
-
addFileWatchers(
|
|
39107
|
-
queueFileChange(
|
|
39159
|
+
buildInitialDependencyGraph(state2.dependencyGraph, addedPaths);
|
|
39160
|
+
addFileWatchers(state2, addedPaths, (filePath) => {
|
|
39161
|
+
queueFileChange(state2, filePath, state2.config, (newBuildResult) => {
|
|
39108
39162
|
Object.assign(cached.manifest, newBuildResult.manifest);
|
|
39109
|
-
|
|
39163
|
+
state2.manifest = cached.manifest;
|
|
39110
39164
|
});
|
|
39111
39165
|
});
|
|
39112
39166
|
}
|
|
@@ -39121,23 +39175,23 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39121
39175
|
if (!(key in source))
|
|
39122
39176
|
delete target[key];
|
|
39123
39177
|
}
|
|
39124
|
-
}, REBUILD_POLL_MS = 10, waitForRebuild = async (
|
|
39125
|
-
if (!
|
|
39178
|
+
}, REBUILD_POLL_MS = 10, waitForRebuild = async (state2) => {
|
|
39179
|
+
if (!state2.isRebuilding) {
|
|
39126
39180
|
return;
|
|
39127
39181
|
}
|
|
39128
39182
|
await Bun.sleep(REBUILD_POLL_MS);
|
|
39129
|
-
await waitForRebuild(
|
|
39183
|
+
await waitForRebuild(state2);
|
|
39130
39184
|
}, rebuildManifest = async (cached) => {
|
|
39131
|
-
const
|
|
39132
|
-
await waitForRebuild(
|
|
39133
|
-
|
|
39134
|
-
|
|
39185
|
+
const state2 = cached.hmrState;
|
|
39186
|
+
await waitForRebuild(state2);
|
|
39187
|
+
state2.isRebuilding = true;
|
|
39188
|
+
state2.fileChangeQueue.clear();
|
|
39135
39189
|
try {
|
|
39136
39190
|
const buildResult = await build({
|
|
39137
|
-
...
|
|
39191
|
+
...state2.config,
|
|
39138
39192
|
mode: "development",
|
|
39139
39193
|
options: {
|
|
39140
|
-
...
|
|
39194
|
+
...state2.config.options,
|
|
39141
39195
|
injectHMR: true,
|
|
39142
39196
|
throwOnError: true
|
|
39143
39197
|
}
|
|
@@ -39145,25 +39199,25 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39145
39199
|
if (!buildResult?.manifest)
|
|
39146
39200
|
return;
|
|
39147
39201
|
const newManifest = buildResult.manifest;
|
|
39148
|
-
if (
|
|
39149
|
-
updateLazyPageRegistry(
|
|
39202
|
+
if (state2.lazyPages && buildResult.pageEntries) {
|
|
39203
|
+
updateLazyPageRegistry(state2.lazyPages.registry, buildResult.pageEntries);
|
|
39150
39204
|
}
|
|
39151
|
-
|
|
39205
|
+
state2.lastBuildErrors = buildResult.errors && buildResult.errors.length > 0 ? buildResult.errors : undefined;
|
|
39152
39206
|
removeStaleKeys(cached.manifest, newManifest);
|
|
39153
39207
|
Object.assign(cached.manifest, newManifest);
|
|
39154
|
-
|
|
39155
|
-
await populateAssetStore(
|
|
39156
|
-
await cleanStaleAssets(
|
|
39208
|
+
state2.manifest = cached.manifest;
|
|
39209
|
+
await populateAssetStore(state2.assetStore, cached.manifest, state2.resolvedPaths.buildDir);
|
|
39210
|
+
await cleanStaleAssets(state2.assetStore, cached.manifest, state2.resolvedPaths.buildDir);
|
|
39157
39211
|
} catch {} finally {
|
|
39158
|
-
|
|
39159
|
-
|
|
39160
|
-
drainPendingQueue(
|
|
39212
|
+
state2.rebuildCount++;
|
|
39213
|
+
state2.isRebuilding = false;
|
|
39214
|
+
drainPendingQueue(state2, state2.config, (newBuildResult) => {
|
|
39161
39215
|
Object.assign(cached.manifest, newBuildResult.manifest);
|
|
39162
|
-
|
|
39216
|
+
state2.manifest = cached.manifest;
|
|
39163
39217
|
});
|
|
39164
39218
|
}
|
|
39165
39219
|
}, handleCachedReload = async () => {
|
|
39166
|
-
const serverMtime =
|
|
39220
|
+
const serverMtime = statSync12(resolve57(Bun.main)).mtimeMs;
|
|
39167
39221
|
const lastMtime = globalThis.__hmrServerMtime;
|
|
39168
39222
|
globalThis.__hmrServerMtime = serverMtime;
|
|
39169
39223
|
const cached = globalThis.__hmrDevResult;
|
|
@@ -39260,8 +39314,8 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39260
39314
|
};
|
|
39261
39315
|
}
|
|
39262
39316
|
let stepStartedAt = performance.now();
|
|
39263
|
-
const
|
|
39264
|
-
process.env.ABSOLUTE_BUILD_DIR ??=
|
|
39317
|
+
const state2 = createHMRState(config);
|
|
39318
|
+
process.env.ABSOLUTE_BUILD_DIR ??= state2.resolvedPaths.buildDir;
|
|
39265
39319
|
recordStep("create HMR state", stepStartedAt);
|
|
39266
39320
|
setBootPhase("scan source tree");
|
|
39267
39321
|
const prescanPromise = readDevPrescan();
|
|
@@ -39290,11 +39344,11 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39290
39344
|
const prescan = await prescanPromise;
|
|
39291
39345
|
recordStep("adopt CLI pre-scan", stepStartedAt);
|
|
39292
39346
|
stepStartedAt = performance.now();
|
|
39293
|
-
const watchPaths = getWatchPaths(config,
|
|
39347
|
+
const watchPaths = getWatchPaths(config, state2.resolvedPaths);
|
|
39294
39348
|
if (prescan?.dependencies) {
|
|
39295
|
-
adoptDependencyGraph(
|
|
39349
|
+
adoptDependencyGraph(state2.dependencyGraph, prescan.dependencies);
|
|
39296
39350
|
} else {
|
|
39297
|
-
buildInitialDependencyGraph(
|
|
39351
|
+
buildInitialDependencyGraph(state2.dependencyGraph, watchPaths);
|
|
39298
39352
|
}
|
|
39299
39353
|
recordStep("initialize dependency graph", stepStartedAt);
|
|
39300
39354
|
stepStartedAt = performance.now();
|
|
@@ -39314,19 +39368,19 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39314
39368
|
stepStartedAt = performance.now();
|
|
39315
39369
|
const onWatcherRebuildComplete = (newBuildResult) => {
|
|
39316
39370
|
Object.assign(manifest, newBuildResult.manifest);
|
|
39317
|
-
|
|
39371
|
+
state2.manifest = manifest;
|
|
39318
39372
|
};
|
|
39319
39373
|
const settleRecoveryQueue = () => {
|
|
39320
|
-
if (
|
|
39321
|
-
|
|
39374
|
+
if (state2.initialBuildFailed) {
|
|
39375
|
+
state2.fileChangeQueue.clear();
|
|
39322
39376
|
return;
|
|
39323
39377
|
}
|
|
39324
|
-
drainPendingQueue(
|
|
39378
|
+
drainPendingQueue(state2, config, onWatcherRebuildComplete);
|
|
39325
39379
|
};
|
|
39326
39380
|
const recoverFromColdStartFailure = async () => {
|
|
39327
|
-
await waitForRebuild(
|
|
39328
|
-
|
|
39329
|
-
|
|
39381
|
+
await waitForRebuild(state2);
|
|
39382
|
+
state2.isRebuilding = true;
|
|
39383
|
+
state2.fileChangeQueue.clear();
|
|
39330
39384
|
try {
|
|
39331
39385
|
const recoveryResult = await build({
|
|
39332
39386
|
...config,
|
|
@@ -39339,27 +39393,27 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39339
39393
|
});
|
|
39340
39394
|
if (recoveryResult?.manifest) {
|
|
39341
39395
|
Object.assign(manifest, recoveryResult.manifest);
|
|
39342
|
-
|
|
39343
|
-
if (
|
|
39344
|
-
updateLazyPageRegistry(
|
|
39396
|
+
state2.manifest = manifest;
|
|
39397
|
+
if (state2.lazyPages && recoveryResult.pageEntries) {
|
|
39398
|
+
updateLazyPageRegistry(state2.lazyPages.registry, recoveryResult.pageEntries);
|
|
39345
39399
|
}
|
|
39346
|
-
await populateAssetStore(
|
|
39347
|
-
|
|
39400
|
+
await populateAssetStore(state2.assetStore, manifest, state2.resolvedPaths.buildDir);
|
|
39401
|
+
state2.initialBuildFailed = false;
|
|
39348
39402
|
console.log("[hmr] cold-start recovery rebuild succeeded \u2014 manifest populated.");
|
|
39349
39403
|
}
|
|
39350
39404
|
} catch {} finally {
|
|
39351
|
-
|
|
39352
|
-
|
|
39405
|
+
state2.rebuildCount++;
|
|
39406
|
+
state2.isRebuilding = false;
|
|
39353
39407
|
settleRecoveryQueue();
|
|
39354
39408
|
}
|
|
39355
39409
|
};
|
|
39356
|
-
|
|
39357
|
-
startFileWatching(
|
|
39358
|
-
if (
|
|
39410
|
+
state2.isRebuilding = true;
|
|
39411
|
+
startFileWatching(state2, config, (filePath) => {
|
|
39412
|
+
if (state2.initialBuildFailed) {
|
|
39359
39413
|
recoverFromColdStartFailure();
|
|
39360
39414
|
return;
|
|
39361
39415
|
}
|
|
39362
|
-
queueFileChange(
|
|
39416
|
+
queueFileChange(state2, filePath, config, onWatcherRebuildComplete);
|
|
39363
39417
|
});
|
|
39364
39418
|
console.log("[hmr] watching for file changes \u2014 edits saved during the boot build are queued.");
|
|
39365
39419
|
recordStep("start file watching", stepStartedAt);
|
|
@@ -39382,12 +39436,12 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39382
39436
|
if (err instanceof Error && err.stack) {
|
|
39383
39437
|
console.error(err.stack);
|
|
39384
39438
|
}
|
|
39385
|
-
|
|
39439
|
+
state2.initialBuildFailed = true;
|
|
39386
39440
|
}
|
|
39387
39441
|
Object.assign(manifest, buildResult?.manifest ?? {});
|
|
39388
39442
|
const conventions = buildResult?.conventions ?? {};
|
|
39389
39443
|
if (buildResult?.errors && buildResult.errors.length > 0) {
|
|
39390
|
-
|
|
39444
|
+
state2.lastBuildErrors = buildResult.errors;
|
|
39391
39445
|
console.error(`[hmr] initial build completed with ${buildResult.errors.length} unresolved ` + `reference(s) \u2014 affected routes are degraded, the rest are serving. ` + `Fix and save to recover:`);
|
|
39392
39446
|
for (const passError of buildResult.errors) {
|
|
39393
39447
|
console.error(` \u2022 ${passError.label}: ${passError.message}`);
|
|
@@ -39399,13 +39453,13 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39399
39453
|
}
|
|
39400
39454
|
stepStartedAt = performance.now();
|
|
39401
39455
|
setBootPhase("populate asset store");
|
|
39402
|
-
await populateAssetStore(
|
|
39403
|
-
cleanStaleAssets(
|
|
39456
|
+
await populateAssetStore(state2.assetStore, manifest, state2.resolvedPaths.buildDir);
|
|
39457
|
+
cleanStaleAssets(state2.assetStore, manifest, state2.resolvedPaths.buildDir);
|
|
39404
39458
|
recordStep("populate asset store", stepStartedAt);
|
|
39405
39459
|
if (lazyPages) {
|
|
39406
39460
|
const pageEntries = buildResult?.pageEntries ?? [];
|
|
39407
39461
|
const { createDevPageWarmer: createDevPageWarmer2, runOnDemandPageBuild: runOnDemandPageBuild2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
|
|
39408
|
-
|
|
39462
|
+
state2.lazyPages = {
|
|
39409
39463
|
buildCount: 0,
|
|
39410
39464
|
builder: createOnDemandPageBuilder(runOnDemandPageBuild2),
|
|
39411
39465
|
onRebuildComplete: onWatcherRebuildComplete,
|
|
@@ -39417,11 +39471,11 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39417
39471
|
}
|
|
39418
39472
|
stepStartedAt = performance.now();
|
|
39419
39473
|
setBootPhase("build vendor bundles");
|
|
39420
|
-
const reactVendorDir = resolve57(
|
|
39421
|
-
const angularVendorDir = resolve57(
|
|
39422
|
-
const svelteVendorDir = resolve57(
|
|
39423
|
-
const vueVendorDir = resolve57(
|
|
39424
|
-
const depVendorDir = resolve57(
|
|
39474
|
+
const reactVendorDir = resolve57(state2.resolvedPaths.buildDir, "react", "vendor");
|
|
39475
|
+
const angularVendorDir = resolve57(state2.resolvedPaths.buildDir, "angular", "vendor");
|
|
39476
|
+
const svelteVendorDir = resolve57(state2.resolvedPaths.buildDir, "svelte", "vendor");
|
|
39477
|
+
const vueVendorDir = resolve57(state2.resolvedPaths.buildDir, "vue", "vendor");
|
|
39478
|
+
const depVendorDir = resolve57(state2.resolvedPaths.buildDir, "vendor");
|
|
39425
39479
|
const { buildDepVendor: buildDepVendor2 } = await Promise.resolve().then(() => (init_buildDepVendor(), exports_buildDepVendor));
|
|
39426
39480
|
const activeVendorDirs = [
|
|
39427
39481
|
config.reactDirectory ? reactVendorDir : null,
|
|
@@ -39463,13 +39517,13 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39463
39517
|
}
|
|
39464
39518
|
}
|
|
39465
39519
|
const buildAllVendors = () => Promise.all([
|
|
39466
|
-
config.reactDirectory ? buildReactVendor(
|
|
39467
|
-
config.angularDirectory ? buildAngularVendor(
|
|
39520
|
+
config.reactDirectory ? buildReactVendor(state2.resolvedPaths.buildDir) : Promise.resolve(undefined),
|
|
39521
|
+
config.angularDirectory ? buildAngularVendor(state2.resolvedPaths.buildDir, sourceDirs, true, Object.keys(globalThis.__depVendorPaths ?? {})) : Promise.resolve(undefined),
|
|
39468
39522
|
Promise.resolve(undefined),
|
|
39469
|
-
config.svelteDirectory ? buildSvelteVendor(
|
|
39470
|
-
config.vueDirectory ? buildVueVendor(
|
|
39471
|
-
config.emberDirectory ? buildEmberVendor(
|
|
39472
|
-
buildDepVendor2(
|
|
39523
|
+
config.svelteDirectory ? buildSvelteVendor(state2.resolvedPaths.buildDir) : Promise.resolve(undefined),
|
|
39524
|
+
config.vueDirectory ? buildVueVendor(state2.resolvedPaths.buildDir) : Promise.resolve(undefined),
|
|
39525
|
+
config.emberDirectory ? buildEmberVendor(state2.resolvedPaths.buildDir) : Promise.resolve(undefined),
|
|
39526
|
+
buildDepVendor2(state2.resolvedPaths.buildDir, sourceDirs, sourceFiles)
|
|
39473
39527
|
]);
|
|
39474
39528
|
const builtVendors = restoredVendor ? [] : await buildAllVendors();
|
|
39475
39529
|
const [, angularSpecs, , , , , builtDepPaths] = builtVendors;
|
|
@@ -39503,11 +39557,11 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39503
39557
|
}
|
|
39504
39558
|
stepStartedAt = performance.now();
|
|
39505
39559
|
await Promise.all([
|
|
39506
|
-
config.reactDirectory ? loadVendorFiles(
|
|
39507
|
-
config.angularDirectory ? loadVendorFiles(
|
|
39508
|
-
config.svelteDirectory ? loadVendorFiles(
|
|
39509
|
-
config.vueDirectory ? loadVendorFiles(
|
|
39510
|
-
loadVendorFiles(
|
|
39560
|
+
config.reactDirectory ? loadVendorFiles(state2.assetStore, reactVendorDir, "react") : Promise.resolve(),
|
|
39561
|
+
config.angularDirectory ? loadVendorFiles(state2.assetStore, angularVendorDir, "angular") : Promise.resolve(),
|
|
39562
|
+
config.svelteDirectory ? loadVendorFiles(state2.assetStore, svelteVendorDir, "svelte") : Promise.resolve(),
|
|
39563
|
+
config.vueDirectory ? loadVendorFiles(state2.assetStore, vueVendorDir, "vue") : Promise.resolve(),
|
|
39564
|
+
loadVendorFiles(state2.assetStore, depVendorDir, "vendor")
|
|
39511
39565
|
]);
|
|
39512
39566
|
recordStep("load vendor files", stepStartedAt);
|
|
39513
39567
|
stepStartedAt = performance.now();
|
|
@@ -39527,24 +39581,24 @@ var FRAMEWORK_DIR_KEYS, devClientVendorSourceDir = () => resolve57(import.meta.d
|
|
|
39527
39581
|
await warmTailwindCompiler2(config.tailwind, computeFrameworkTailwindSources2(config));
|
|
39528
39582
|
recordStep("warm tailwind compiler", stepStartedAt);
|
|
39529
39583
|
}
|
|
39530
|
-
|
|
39531
|
-
|
|
39532
|
-
if (
|
|
39533
|
-
|
|
39584
|
+
state2.manifest = manifest;
|
|
39585
|
+
state2.isRebuilding = false;
|
|
39586
|
+
if (state2.fileChangeQueue.size > 0 && state2.initialBuildFailed) {
|
|
39587
|
+
state2.fileChangeQueue.clear();
|
|
39534
39588
|
recoverFromColdStartFailure();
|
|
39535
|
-
} else if (
|
|
39589
|
+
} else if (state2.fileChangeQueue.size > 0) {
|
|
39536
39590
|
console.log("[hmr] edits landed during the boot build \u2014 rebuilding to pick them up.");
|
|
39537
|
-
drainPendingQueue(
|
|
39591
|
+
drainPendingQueue(state2, config, onWatcherRebuildComplete);
|
|
39538
39592
|
}
|
|
39539
39593
|
globalThis.__hmrBuildDuration = performance.now() - buildStart;
|
|
39540
39594
|
logStartupTimingBlock("AbsoluteJS devBuild timing", startupSteps);
|
|
39541
39595
|
const result = {
|
|
39542
39596
|
conventions,
|
|
39543
|
-
hmrState:
|
|
39597
|
+
hmrState: state2,
|
|
39544
39598
|
manifest
|
|
39545
39599
|
};
|
|
39546
39600
|
globalThis.__hmrDevResult = result;
|
|
39547
|
-
globalThis.__hmrServerMtime =
|
|
39601
|
+
globalThis.__hmrServerMtime = statSync12(resolve57(Bun.main)).mtimeMs;
|
|
39548
39602
|
return result;
|
|
39549
39603
|
};
|
|
39550
39604
|
var init_devBuild = __esm(() => {
|
|
@@ -39585,5 +39639,5 @@ export {
|
|
|
39585
39639
|
devBuild
|
|
39586
39640
|
};
|
|
39587
39641
|
|
|
39588
|
-
//# debugId=
|
|
39642
|
+
//# debugId=9CE5B86675EBC3BB64756E2164756E21
|
|
39589
39643
|
//# sourceMappingURL=build.js.map
|