@absolutejs/absolute 0.19.0-beta.987 → 0.19.0-beta.989
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js.map +3 -3
- package/dist/angular/server.js.map +3 -3
- package/dist/build.js +847 -663
- package/dist/build.js.map +9 -8
- package/dist/index.js +880 -696
- package/dist/index.js.map +9 -8
- package/dist/src/build/compileVue.d.ts +1 -1
- package/dist/src/build/scanVueSsrOnlyPages.d.ts +6 -0
- package/dist/src/vue/pageHandler.d.ts +20 -10
- package/dist/vue/index.js +242 -102
- package/dist/vue/index.js.map +7 -4
- package/dist/vue/server.js +145 -5
- package/dist/vue/server.js.map +7 -4
- package/package.json +1 -1
package/dist/build.js
CHANGED
|
@@ -10757,6 +10757,10 @@ var init_updateAssetPaths = __esm(() => {
|
|
|
10757
10757
|
});
|
|
10758
10758
|
|
|
10759
10759
|
// src/dev/buildHMRClient.ts
|
|
10760
|
+
var exports_buildHMRClient = {};
|
|
10761
|
+
__export(exports_buildHMRClient, {
|
|
10762
|
+
buildHMRClient: () => buildHMRClient
|
|
10763
|
+
});
|
|
10760
10764
|
import { existsSync as existsSync16 } from "fs";
|
|
10761
10765
|
import { resolve as resolve12 } from "path";
|
|
10762
10766
|
var {build: bunBuild } = globalThis.Bun;
|
|
@@ -11556,11 +11560,15 @@ var validateSafePath = (targetPath, baseDirectory) => {
|
|
|
11556
11560
|
};
|
|
11557
11561
|
var init_validateSafePath = () => {};
|
|
11558
11562
|
|
|
11559
|
-
// src/build/
|
|
11563
|
+
// src/build/scanVueSsrOnlyPages.ts
|
|
11564
|
+
var exports_scanVueSsrOnlyPages = {};
|
|
11565
|
+
__export(exports_scanVueSsrOnlyPages, {
|
|
11566
|
+
scanVueSsrOnlyPages: () => scanVueSsrOnlyPages
|
|
11567
|
+
});
|
|
11560
11568
|
import { readdirSync as readdirSync2, readFileSync as readFileSync12 } from "fs";
|
|
11561
11569
|
import { join as join22 } from "path";
|
|
11562
11570
|
import ts6 from "typescript";
|
|
11563
|
-
var
|
|
11571
|
+
var SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (filePath) => {
|
|
11564
11572
|
if (filePath.endsWith(".tsx"))
|
|
11565
11573
|
return ts6.ScriptKind.TSX;
|
|
11566
11574
|
return ts6.ScriptKind.TS;
|
|
@@ -11598,26 +11606,173 @@ var ELYSIA_ROUTE_METHODS2, SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (fil
|
|
|
11598
11606
|
}
|
|
11599
11607
|
}
|
|
11600
11608
|
return out;
|
|
11609
|
+
}, fileMayContainVueHandler = (source) => source.includes("handleVuePageRequest"), isHandleVuePageRequestCallee = (expression) => {
|
|
11610
|
+
if (ts6.isIdentifier(expression)) {
|
|
11611
|
+
return expression.text === "handleVuePageRequest";
|
|
11612
|
+
}
|
|
11613
|
+
if (ts6.isPropertyAccessExpression(expression) && ts6.isIdentifier(expression.name)) {
|
|
11614
|
+
return expression.name.text === "handleVuePageRequest";
|
|
11615
|
+
}
|
|
11616
|
+
return false;
|
|
11617
|
+
}, getPropertyName = (name) => {
|
|
11618
|
+
if (ts6.isIdentifier(name) || ts6.isStringLiteral(name)) {
|
|
11619
|
+
return name.text;
|
|
11620
|
+
}
|
|
11621
|
+
return null;
|
|
11622
|
+
}, readStringLiteralValue = (node) => {
|
|
11623
|
+
if (ts6.isStringLiteral(node) || ts6.isNoSubstitutionTemplateLiteral(node)) {
|
|
11624
|
+
return node.text;
|
|
11625
|
+
}
|
|
11626
|
+
return null;
|
|
11627
|
+
}, isAssetCall = (node) => {
|
|
11628
|
+
if (!ts6.isCallExpression(node))
|
|
11629
|
+
return false;
|
|
11630
|
+
if (!ts6.isIdentifier(node.expression))
|
|
11631
|
+
return false;
|
|
11632
|
+
return node.expression.text === "asset";
|
|
11633
|
+
}, extractAssetLiteralKey = (call) => {
|
|
11634
|
+
if (call.arguments.length < 2)
|
|
11635
|
+
return null;
|
|
11636
|
+
const keyArg = call.arguments[1];
|
|
11637
|
+
if (!keyArg)
|
|
11638
|
+
return null;
|
|
11639
|
+
return readStringLiteralValue(keyArg);
|
|
11640
|
+
}, extractPagePathAssetKey = (initializer) => {
|
|
11641
|
+
if (!isAssetCall(initializer))
|
|
11642
|
+
return null;
|
|
11643
|
+
if (!ts6.isCallExpression(initializer))
|
|
11644
|
+
return null;
|
|
11645
|
+
return extractAssetLiteralKey(initializer);
|
|
11646
|
+
}, extractSsrOnlyPageName = (objectLiteral) => {
|
|
11647
|
+
let hasClientNone = false;
|
|
11648
|
+
let pageAssetKey = null;
|
|
11649
|
+
for (const property of objectLiteral.properties) {
|
|
11650
|
+
if (!ts6.isPropertyAssignment(property))
|
|
11651
|
+
continue;
|
|
11652
|
+
const name = getPropertyName(property.name);
|
|
11653
|
+
if (!name)
|
|
11654
|
+
continue;
|
|
11655
|
+
if (name === "client") {
|
|
11656
|
+
const value = readStringLiteralValue(property.initializer);
|
|
11657
|
+
if (value === "none")
|
|
11658
|
+
hasClientNone = true;
|
|
11659
|
+
continue;
|
|
11660
|
+
}
|
|
11661
|
+
if (name === "pagePath") {
|
|
11662
|
+
pageAssetKey = extractPagePathAssetKey(property.initializer);
|
|
11663
|
+
}
|
|
11664
|
+
}
|
|
11665
|
+
if (!hasClientNone)
|
|
11666
|
+
return null;
|
|
11667
|
+
return pageAssetKey;
|
|
11668
|
+
}, extractFromFile = (filePath, out) => {
|
|
11669
|
+
let source;
|
|
11670
|
+
try {
|
|
11671
|
+
source = readFileSync12(filePath, "utf-8");
|
|
11672
|
+
} catch {
|
|
11673
|
+
return;
|
|
11674
|
+
}
|
|
11675
|
+
if (!fileMayContainVueHandler(source))
|
|
11676
|
+
return;
|
|
11677
|
+
const sourceFile = ts6.createSourceFile(filePath, source, ts6.ScriptTarget.Latest, true, getScriptKind2(filePath));
|
|
11678
|
+
const visit = (node) => {
|
|
11679
|
+
if (ts6.isCallExpression(node) && isHandleVuePageRequestCallee(node.expression)) {
|
|
11680
|
+
const firstArg = node.arguments[0];
|
|
11681
|
+
if (firstArg && ts6.isObjectLiteralExpression(firstArg)) {
|
|
11682
|
+
const pageName = extractSsrOnlyPageName(firstArg);
|
|
11683
|
+
if (pageName)
|
|
11684
|
+
out.add(pageName);
|
|
11685
|
+
}
|
|
11686
|
+
}
|
|
11687
|
+
ts6.forEachChild(node, visit);
|
|
11688
|
+
};
|
|
11689
|
+
ts6.forEachChild(sourceFile, visit);
|
|
11690
|
+
}, scanVueSsrOnlyPages = (projectRoot) => {
|
|
11691
|
+
const files = collectSourceFiles2(projectRoot);
|
|
11692
|
+
const ssrOnlyPageNames = new Set;
|
|
11693
|
+
for (const file of files) {
|
|
11694
|
+
extractFromFile(file, ssrOnlyPageNames);
|
|
11695
|
+
}
|
|
11696
|
+
return ssrOnlyPageNames;
|
|
11697
|
+
};
|
|
11698
|
+
var init_scanVueSsrOnlyPages = __esm(() => {
|
|
11699
|
+
SKIP_DIRS2 = new Set([
|
|
11700
|
+
".absolutejs",
|
|
11701
|
+
".generated",
|
|
11702
|
+
".git",
|
|
11703
|
+
".next",
|
|
11704
|
+
".svelte-kit",
|
|
11705
|
+
".vercel",
|
|
11706
|
+
"build",
|
|
11707
|
+
"compiled",
|
|
11708
|
+
"dist",
|
|
11709
|
+
"node_modules"
|
|
11710
|
+
]);
|
|
11711
|
+
SOURCE_EXTENSIONS2 = new Set([".ts", ".tsx", ".mts", ".cts"]);
|
|
11712
|
+
});
|
|
11713
|
+
|
|
11714
|
+
// src/build/scanAngularHandlerCalls.ts
|
|
11715
|
+
import { readdirSync as readdirSync3, readFileSync as readFileSync13 } from "fs";
|
|
11716
|
+
import { join as join23 } from "path";
|
|
11717
|
+
import ts7 from "typescript";
|
|
11718
|
+
var ELYSIA_ROUTE_METHODS2, SKIP_DIRS3, SOURCE_EXTENSIONS3, getScriptKind3 = (filePath) => {
|
|
11719
|
+
if (filePath.endsWith(".tsx"))
|
|
11720
|
+
return ts7.ScriptKind.TSX;
|
|
11721
|
+
return ts7.ScriptKind.TS;
|
|
11722
|
+
}, hasSourceExtension3 = (filePath) => {
|
|
11723
|
+
const idx = filePath.lastIndexOf(".");
|
|
11724
|
+
if (idx === -1)
|
|
11725
|
+
return false;
|
|
11726
|
+
return SOURCE_EXTENSIONS3.has(filePath.slice(idx));
|
|
11727
|
+
}, collectSourceFiles3 = (root) => {
|
|
11728
|
+
const out = [];
|
|
11729
|
+
const stack = [root];
|
|
11730
|
+
while (stack.length > 0) {
|
|
11731
|
+
const dir = stack.pop();
|
|
11732
|
+
if (!dir)
|
|
11733
|
+
continue;
|
|
11734
|
+
let entries;
|
|
11735
|
+
try {
|
|
11736
|
+
entries = readdirSync3(dir, {
|
|
11737
|
+
encoding: "utf-8",
|
|
11738
|
+
withFileTypes: true
|
|
11739
|
+
});
|
|
11740
|
+
} catch {
|
|
11741
|
+
continue;
|
|
11742
|
+
}
|
|
11743
|
+
for (const entry of entries) {
|
|
11744
|
+
if (entry.isDirectory()) {
|
|
11745
|
+
if (SKIP_DIRS3.has(entry.name))
|
|
11746
|
+
continue;
|
|
11747
|
+
if (entry.name.startsWith("."))
|
|
11748
|
+
continue;
|
|
11749
|
+
stack.push(join23(dir, entry.name));
|
|
11750
|
+
} else if (entry.isFile() && hasSourceExtension3(entry.name)) {
|
|
11751
|
+
out.push(join23(dir, entry.name));
|
|
11752
|
+
}
|
|
11753
|
+
}
|
|
11754
|
+
}
|
|
11755
|
+
return out;
|
|
11601
11756
|
}, fileMayContainAngularHandler = (source) => source.includes("handleAngularPageRequest"), extractManifestKey = (pagePathValue) => {
|
|
11602
|
-
if (!
|
|
11757
|
+
if (!ts7.isCallExpression(pagePathValue))
|
|
11603
11758
|
return null;
|
|
11604
11759
|
const callee = pagePathValue.expression;
|
|
11605
|
-
if (!
|
|
11760
|
+
if (!ts7.isIdentifier(callee) || callee.text !== "asset")
|
|
11606
11761
|
return null;
|
|
11607
11762
|
const [, second] = pagePathValue.arguments;
|
|
11608
11763
|
if (!second)
|
|
11609
11764
|
return null;
|
|
11610
|
-
if (!
|
|
11765
|
+
if (!ts7.isStringLiteral(second))
|
|
11611
11766
|
return null;
|
|
11612
11767
|
return second.text;
|
|
11613
11768
|
}, findEnclosingMountPath = (node) => {
|
|
11614
11769
|
let cursor = node.parent;
|
|
11615
11770
|
while (cursor) {
|
|
11616
|
-
if (
|
|
11771
|
+
if (ts7.isCallExpression(cursor)) {
|
|
11617
11772
|
const callee = cursor.expression;
|
|
11618
|
-
if (
|
|
11773
|
+
if (ts7.isPropertyAccessExpression(callee) && ts7.isIdentifier(callee.name) && ELYSIA_ROUTE_METHODS2.has(callee.name.text)) {
|
|
11619
11774
|
const firstArg = cursor.arguments[0];
|
|
11620
|
-
if (firstArg &&
|
|
11775
|
+
if (firstArg && ts7.isStringLiteral(firstArg) && firstArg.text.startsWith("/")) {
|
|
11621
11776
|
return firstArg.text;
|
|
11622
11777
|
}
|
|
11623
11778
|
}
|
|
@@ -11628,33 +11783,33 @@ var ELYSIA_ROUTE_METHODS2, SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (fil
|
|
|
11628
11783
|
}, extractCallsFromFile = (filePath, out) => {
|
|
11629
11784
|
let source;
|
|
11630
11785
|
try {
|
|
11631
|
-
source =
|
|
11786
|
+
source = readFileSync13(filePath, "utf-8");
|
|
11632
11787
|
} catch {
|
|
11633
11788
|
return;
|
|
11634
11789
|
}
|
|
11635
11790
|
if (!fileMayContainAngularHandler(source))
|
|
11636
11791
|
return;
|
|
11637
|
-
const sf =
|
|
11792
|
+
const sf = ts7.createSourceFile(filePath, source, ts7.ScriptTarget.Latest, true, getScriptKind3(filePath));
|
|
11638
11793
|
const visit = (node) => {
|
|
11639
|
-
if (
|
|
11794
|
+
if (ts7.isCallExpression(node) && ts7.isIdentifier(node.expression) && node.expression.text === "handleAngularPageRequest") {
|
|
11640
11795
|
const [arg] = node.arguments;
|
|
11641
|
-
if (arg &&
|
|
11796
|
+
if (arg && ts7.isObjectLiteralExpression(arg)) {
|
|
11642
11797
|
let manifestKey = null;
|
|
11643
11798
|
for (const prop of arg.properties) {
|
|
11644
|
-
if (
|
|
11799
|
+
if (ts7.isPropertyAssignment(prop)) {
|
|
11645
11800
|
if (!prop.name)
|
|
11646
11801
|
continue;
|
|
11647
|
-
const name =
|
|
11802
|
+
const name = ts7.isIdentifier(prop.name) ? prop.name.text : ts7.isStringLiteral(prop.name) ? prop.name.text : null;
|
|
11648
11803
|
if (name === "pagePath") {
|
|
11649
11804
|
manifestKey = extractManifestKey(prop.initializer);
|
|
11650
11805
|
}
|
|
11651
|
-
} else if (
|
|
11806
|
+
} else if (ts7.isSpreadAssignment(prop)) {
|
|
11652
11807
|
if (manifestKey)
|
|
11653
11808
|
continue;
|
|
11654
11809
|
const spreadExpr = prop.expression;
|
|
11655
|
-
if (
|
|
11810
|
+
if (ts7.isCallExpression(spreadExpr) && spreadExpr.arguments.length > 0) {
|
|
11656
11811
|
const [firstArg] = spreadExpr.arguments;
|
|
11657
|
-
if (firstArg &&
|
|
11812
|
+
if (firstArg && ts7.isStringLiteral(firstArg)) {
|
|
11658
11813
|
manifestKey = firstArg.text;
|
|
11659
11814
|
}
|
|
11660
11815
|
}
|
|
@@ -11669,11 +11824,11 @@ var ELYSIA_ROUTE_METHODS2, SKIP_DIRS2, SOURCE_EXTENSIONS2, getScriptKind2 = (fil
|
|
|
11669
11824
|
}
|
|
11670
11825
|
}
|
|
11671
11826
|
}
|
|
11672
|
-
|
|
11827
|
+
ts7.forEachChild(node, visit);
|
|
11673
11828
|
};
|
|
11674
|
-
|
|
11829
|
+
ts7.forEachChild(sf, visit);
|
|
11675
11830
|
}, scanAngularHandlerCalls = (projectRoot) => {
|
|
11676
|
-
const files =
|
|
11831
|
+
const files = collectSourceFiles3(projectRoot);
|
|
11677
11832
|
const collected = [];
|
|
11678
11833
|
for (const file of files) {
|
|
11679
11834
|
extractCallsFromFile(file, collected);
|
|
@@ -11691,7 +11846,7 @@ var init_scanAngularHandlerCalls = __esm(() => {
|
|
|
11691
11846
|
"post",
|
|
11692
11847
|
"put"
|
|
11693
11848
|
]);
|
|
11694
|
-
|
|
11849
|
+
SKIP_DIRS3 = new Set([
|
|
11695
11850
|
".absolutejs",
|
|
11696
11851
|
".generated",
|
|
11697
11852
|
".git",
|
|
@@ -11703,20 +11858,20 @@ var init_scanAngularHandlerCalls = __esm(() => {
|
|
|
11703
11858
|
"dist",
|
|
11704
11859
|
"node_modules"
|
|
11705
11860
|
]);
|
|
11706
|
-
|
|
11861
|
+
SOURCE_EXTENSIONS3 = new Set([".ts", ".tsx", ".mts", ".cts"]);
|
|
11707
11862
|
});
|
|
11708
11863
|
|
|
11709
11864
|
// src/build/scanAngularPageRoutes.ts
|
|
11710
|
-
import { readdirSync as
|
|
11711
|
-
import { basename as basename5, join as
|
|
11712
|
-
import
|
|
11713
|
-
var
|
|
11865
|
+
import { readdirSync as readdirSync4, readFileSync as readFileSync14 } from "fs";
|
|
11866
|
+
import { basename as basename5, join as join24 } from "path";
|
|
11867
|
+
import ts8 from "typescript";
|
|
11868
|
+
var SOURCE_EXTENSIONS4, SKIP_DIRS4, hasSourceExtension4 = (filePath) => {
|
|
11714
11869
|
const idx = filePath.lastIndexOf(".");
|
|
11715
11870
|
if (idx === -1)
|
|
11716
11871
|
return false;
|
|
11717
|
-
return
|
|
11872
|
+
return SOURCE_EXTENSIONS4.has(filePath.slice(idx));
|
|
11718
11873
|
}, isPageFile = (filePath) => {
|
|
11719
|
-
if (!
|
|
11874
|
+
if (!hasSourceExtension4(filePath))
|
|
11720
11875
|
return false;
|
|
11721
11876
|
const base = basename5(filePath);
|
|
11722
11877
|
if (base.endsWith(".d.ts"))
|
|
@@ -11735,7 +11890,7 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
|
|
|
11735
11890
|
continue;
|
|
11736
11891
|
let entries;
|
|
11737
11892
|
try {
|
|
11738
|
-
entries =
|
|
11893
|
+
entries = readdirSync4(dir, {
|
|
11739
11894
|
encoding: "utf-8",
|
|
11740
11895
|
withFileTypes: true
|
|
11741
11896
|
});
|
|
@@ -11744,13 +11899,13 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
|
|
|
11744
11899
|
}
|
|
11745
11900
|
for (const entry of entries) {
|
|
11746
11901
|
if (entry.isDirectory()) {
|
|
11747
|
-
if (
|
|
11902
|
+
if (SKIP_DIRS4.has(entry.name))
|
|
11748
11903
|
continue;
|
|
11749
11904
|
if (entry.name.startsWith("."))
|
|
11750
11905
|
continue;
|
|
11751
|
-
stack.push(
|
|
11906
|
+
stack.push(join24(dir, entry.name));
|
|
11752
11907
|
} else if (entry.isFile() && isPageFile(entry.name)) {
|
|
11753
|
-
out.push(
|
|
11908
|
+
out.push(join24(dir, entry.name));
|
|
11754
11909
|
}
|
|
11755
11910
|
}
|
|
11756
11911
|
}
|
|
@@ -11758,15 +11913,15 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
|
|
|
11758
11913
|
}, hasTopLevelRoutesExport = (source, filePath) => {
|
|
11759
11914
|
if (!source.includes("routes"))
|
|
11760
11915
|
return false;
|
|
11761
|
-
const sf =
|
|
11916
|
+
const sf = ts8.createSourceFile(filePath, source, ts8.ScriptTarget.Latest, true, ts8.ScriptKind.TS);
|
|
11762
11917
|
for (const statement of sf.statements) {
|
|
11763
|
-
if (!
|
|
11918
|
+
if (!ts8.isVariableStatement(statement))
|
|
11764
11919
|
continue;
|
|
11765
|
-
const isExported = statement.modifiers?.some((modifier) => modifier.kind ===
|
|
11920
|
+
const isExported = statement.modifiers?.some((modifier) => modifier.kind === ts8.SyntaxKind.ExportKeyword);
|
|
11766
11921
|
if (!isExported)
|
|
11767
11922
|
continue;
|
|
11768
11923
|
for (const declaration of statement.declarationList.declarations) {
|
|
11769
|
-
if (!
|
|
11924
|
+
if (!ts8.isIdentifier(declaration.name))
|
|
11770
11925
|
continue;
|
|
11771
11926
|
if (declaration.name.text === "routes")
|
|
11772
11927
|
return true;
|
|
@@ -11779,7 +11934,7 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
|
|
|
11779
11934
|
for (const file of files) {
|
|
11780
11935
|
let source;
|
|
11781
11936
|
try {
|
|
11782
|
-
source =
|
|
11937
|
+
source = readFileSync14(file, "utf-8");
|
|
11783
11938
|
} catch {
|
|
11784
11939
|
continue;
|
|
11785
11940
|
}
|
|
@@ -11795,8 +11950,8 @@ var SOURCE_EXTENSIONS3, SKIP_DIRS3, hasSourceExtension3 = (filePath) => {
|
|
|
11795
11950
|
return out;
|
|
11796
11951
|
};
|
|
11797
11952
|
var init_scanAngularPageRoutes = __esm(() => {
|
|
11798
|
-
|
|
11799
|
-
|
|
11953
|
+
SOURCE_EXTENSIONS4 = new Set([".ts", ".tsx", ".mts", ".cts"]);
|
|
11954
|
+
SKIP_DIRS4 = new Set([
|
|
11800
11955
|
".absolutejs",
|
|
11801
11956
|
".generated",
|
|
11802
11957
|
".git",
|
|
@@ -11826,46 +11981,46 @@ var exports_parseAngularConfigImports = {};
|
|
|
11826
11981
|
__export(exports_parseAngularConfigImports, {
|
|
11827
11982
|
parseAngularProvidersImport: () => parseAngularProvidersImport
|
|
11828
11983
|
});
|
|
11829
|
-
import { existsSync as existsSync19, readFileSync as
|
|
11830
|
-
import { dirname as dirname11, isAbsolute as isAbsolute3, join as
|
|
11831
|
-
import
|
|
11984
|
+
import { existsSync as existsSync19, readFileSync as readFileSync15 } from "fs";
|
|
11985
|
+
import { dirname as dirname11, isAbsolute as isAbsolute3, join as join25 } from "path";
|
|
11986
|
+
import ts9 from "typescript";
|
|
11832
11987
|
var findDefineConfigCall = (sf) => {
|
|
11833
11988
|
let result = null;
|
|
11834
11989
|
const visit = (node) => {
|
|
11835
11990
|
if (result)
|
|
11836
11991
|
return;
|
|
11837
|
-
if (
|
|
11992
|
+
if (ts9.isCallExpression(node) && ts9.isIdentifier(node.expression) && node.expression.text === "defineConfig") {
|
|
11838
11993
|
const [arg] = node.arguments;
|
|
11839
|
-
if (arg &&
|
|
11994
|
+
if (arg && ts9.isObjectLiteralExpression(arg)) {
|
|
11840
11995
|
result = arg;
|
|
11841
11996
|
return;
|
|
11842
11997
|
}
|
|
11843
11998
|
}
|
|
11844
|
-
|
|
11999
|
+
ts9.forEachChild(node, visit);
|
|
11845
12000
|
};
|
|
11846
|
-
|
|
12001
|
+
ts9.forEachChild(sf, visit);
|
|
11847
12002
|
return result;
|
|
11848
12003
|
}, findPropertyInitializer = (object, name) => {
|
|
11849
12004
|
for (const prop of object.properties) {
|
|
11850
|
-
if (!
|
|
12005
|
+
if (!ts9.isPropertyAssignment(prop))
|
|
11851
12006
|
continue;
|
|
11852
12007
|
if (!prop.name)
|
|
11853
12008
|
continue;
|
|
11854
|
-
const key =
|
|
12009
|
+
const key = ts9.isIdentifier(prop.name) ? prop.name.text : ts9.isStringLiteral(prop.name) ? prop.name.text : null;
|
|
11855
12010
|
if (key === name)
|
|
11856
12011
|
return prop.initializer;
|
|
11857
12012
|
}
|
|
11858
12013
|
return null;
|
|
11859
12014
|
}, findImportForBinding = (sf, binding) => {
|
|
11860
12015
|
for (const statement of sf.statements) {
|
|
11861
|
-
if (!
|
|
12016
|
+
if (!ts9.isImportDeclaration(statement))
|
|
11862
12017
|
continue;
|
|
11863
|
-
if (!
|
|
12018
|
+
if (!ts9.isStringLiteral(statement.moduleSpecifier))
|
|
11864
12019
|
continue;
|
|
11865
12020
|
if (statement.importClause?.isTypeOnly)
|
|
11866
12021
|
continue;
|
|
11867
12022
|
const named = statement.importClause?.namedBindings;
|
|
11868
|
-
if (!named || !
|
|
12023
|
+
if (!named || !ts9.isNamedImports(named))
|
|
11869
12024
|
continue;
|
|
11870
12025
|
for (const element of named.elements) {
|
|
11871
12026
|
if (element.isTypeOnly)
|
|
@@ -11882,15 +12037,15 @@ var findDefineConfigCall = (sf) => {
|
|
|
11882
12037
|
}, resolveConfigPath = (projectRoot) => {
|
|
11883
12038
|
const envOverride = process.env.ABSOLUTE_CONFIG;
|
|
11884
12039
|
if (envOverride) {
|
|
11885
|
-
const resolved = isAbsolute3(envOverride) ? envOverride :
|
|
12040
|
+
const resolved = isAbsolute3(envOverride) ? envOverride : join25(projectRoot, envOverride);
|
|
11886
12041
|
if (existsSync19(resolved))
|
|
11887
12042
|
return resolved;
|
|
11888
12043
|
}
|
|
11889
12044
|
const candidates = [
|
|
11890
|
-
|
|
11891
|
-
|
|
11892
|
-
|
|
11893
|
-
|
|
12045
|
+
join25(projectRoot, "absolute.config.ts"),
|
|
12046
|
+
join25(projectRoot, "absolute.config.mts"),
|
|
12047
|
+
join25(projectRoot, "absolute.config.js"),
|
|
12048
|
+
join25(projectRoot, "absolute.config.mjs")
|
|
11894
12049
|
];
|
|
11895
12050
|
for (const candidate of candidates) {
|
|
11896
12051
|
if (existsSync19(candidate))
|
|
@@ -11901,29 +12056,29 @@ var findDefineConfigCall = (sf) => {
|
|
|
11901
12056
|
const configPath2 = resolveConfigPath(projectRoot);
|
|
11902
12057
|
if (!configPath2)
|
|
11903
12058
|
return null;
|
|
11904
|
-
const source =
|
|
12059
|
+
const source = readFileSync15(configPath2, "utf-8");
|
|
11905
12060
|
if (!source.includes("angular"))
|
|
11906
12061
|
return null;
|
|
11907
12062
|
if (!source.includes("providers"))
|
|
11908
12063
|
return null;
|
|
11909
|
-
const sf =
|
|
12064
|
+
const sf = ts9.createSourceFile(configPath2, source, ts9.ScriptTarget.Latest, true, ts9.ScriptKind.TS);
|
|
11910
12065
|
const configObject = findDefineConfigCall(sf);
|
|
11911
12066
|
if (!configObject)
|
|
11912
12067
|
return null;
|
|
11913
12068
|
const angularField = findPropertyInitializer(configObject, "angular");
|
|
11914
|
-
if (!angularField || !
|
|
12069
|
+
if (!angularField || !ts9.isObjectLiteralExpression(angularField))
|
|
11915
12070
|
return null;
|
|
11916
12071
|
const providersField = findPropertyInitializer(angularField, "providers");
|
|
11917
12072
|
if (!providersField)
|
|
11918
12073
|
return null;
|
|
11919
|
-
if (!
|
|
12074
|
+
if (!ts9.isIdentifier(providersField))
|
|
11920
12075
|
return null;
|
|
11921
12076
|
const binding = providersField.text;
|
|
11922
12077
|
const importInfo = findImportForBinding(sf, binding);
|
|
11923
12078
|
if (!importInfo)
|
|
11924
12079
|
return null;
|
|
11925
12080
|
const configDir2 = dirname11(configPath2);
|
|
11926
|
-
const absolutePath = importInfo.source.startsWith(".") ?
|
|
12081
|
+
const absolutePath = importInfo.source.startsWith(".") ? join25(configDir2, importInfo.source).replace(/\.[cm]?[tj]sx?$/, "") : isAbsolute3(importInfo.source) ? importInfo.source.replace(/\.[cm]?[tj]sx?$/, "") : importInfo.source;
|
|
11927
12082
|
return {
|
|
11928
12083
|
absolutePath,
|
|
11929
12084
|
bindingName: binding,
|
|
@@ -12075,7 +12230,7 @@ import { existsSync as existsSync20 } from "fs";
|
|
|
12075
12230
|
import { mkdir as mkdir4, stat as stat2 } from "fs/promises";
|
|
12076
12231
|
import {
|
|
12077
12232
|
dirname as dirname12,
|
|
12078
|
-
join as
|
|
12233
|
+
join as join26,
|
|
12079
12234
|
basename as basename6,
|
|
12080
12235
|
extname as extname5,
|
|
12081
12236
|
resolve as resolve19,
|
|
@@ -12134,14 +12289,14 @@ var resolveDevClientDir2 = () => {
|
|
|
12134
12289
|
`${basePath}.svelte`,
|
|
12135
12290
|
`${basePath}.svelte.ts`,
|
|
12136
12291
|
`${basePath}.svelte.js`,
|
|
12137
|
-
|
|
12138
|
-
|
|
12139
|
-
|
|
12140
|
-
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
|
|
12144
|
-
|
|
12292
|
+
join26(basePath, "index.ts"),
|
|
12293
|
+
join26(basePath, "index.js"),
|
|
12294
|
+
join26(basePath, "index.mjs"),
|
|
12295
|
+
join26(basePath, "index.cjs"),
|
|
12296
|
+
join26(basePath, "index.json"),
|
|
12297
|
+
join26(basePath, "index.svelte"),
|
|
12298
|
+
join26(basePath, "index.svelte.ts"),
|
|
12299
|
+
join26(basePath, "index.svelte.js")
|
|
12145
12300
|
];
|
|
12146
12301
|
const checks = await Promise.all(candidates.map(exists));
|
|
12147
12302
|
return candidates.find((_2, index) => checks[index]) ?? null;
|
|
@@ -12180,9 +12335,9 @@ var resolveDevClientDir2 = () => {
|
|
|
12180
12335
|
}, compileSvelte = async (entryPoints, svelteRoot, cache = new Map, isDev = false, stylePreprocessors) => {
|
|
12181
12336
|
const { compile, compileModule, preprocess } = await import("svelte/compiler");
|
|
12182
12337
|
const generatedDir = getFrameworkGeneratedDir("svelte");
|
|
12183
|
-
const clientDir =
|
|
12184
|
-
const indexDir =
|
|
12185
|
-
const serverDir =
|
|
12338
|
+
const clientDir = join26(generatedDir, "client");
|
|
12339
|
+
const indexDir = join26(generatedDir, "indexes");
|
|
12340
|
+
const serverDir = join26(generatedDir, "server");
|
|
12186
12341
|
await Promise.all([clientDir, indexDir, serverDir].map((dir) => mkdir4(dir, { recursive: true })));
|
|
12187
12342
|
const dev = env.NODE_ENV !== "production";
|
|
12188
12343
|
const build = async (src) => {
|
|
@@ -12220,8 +12375,8 @@ var resolveDevClientDir2 = () => {
|
|
|
12220
12375
|
const childBuilt = await Promise.all(childSources.map((child) => build(child)));
|
|
12221
12376
|
const hasAwaitSlotFromChildren = childBuilt.some((child) => child.hasAwaitSlot);
|
|
12222
12377
|
const externalRewrites = new Map;
|
|
12223
|
-
const ssrOutputDir = dirname12(
|
|
12224
|
-
const clientOutputDir = dirname12(
|
|
12378
|
+
const ssrOutputDir = dirname12(join26(serverDir, relDir, `${baseName}.js`));
|
|
12379
|
+
const clientOutputDir = dirname12(join26(clientDir, relDir, `${baseName}.js`));
|
|
12225
12380
|
for (let idx = 0;idx < importPaths.length; idx++) {
|
|
12226
12381
|
const rawSpec = importPaths[idx];
|
|
12227
12382
|
if (!rawSpec)
|
|
@@ -12286,8 +12441,8 @@ var resolveDevClientDir2 = () => {
|
|
|
12286
12441
|
code += islandMetadataExports;
|
|
12287
12442
|
return { code, map: compiledJs.map };
|
|
12288
12443
|
};
|
|
12289
|
-
const ssrPath =
|
|
12290
|
-
const clientPath =
|
|
12444
|
+
const ssrPath = join26(serverDir, relDir, `${baseName}.js`);
|
|
12445
|
+
const clientPath = join26(clientDir, relDir, `${baseName}.js`);
|
|
12291
12446
|
await Promise.all([
|
|
12292
12447
|
mkdir4(dirname12(ssrPath), { recursive: true }),
|
|
12293
12448
|
mkdir4(dirname12(clientPath), { recursive: true })
|
|
@@ -12325,7 +12480,7 @@ var resolveDevClientDir2 = () => {
|
|
|
12325
12480
|
await Promise.all(roots.map(async ({ client, hasAwaitSlot }) => {
|
|
12326
12481
|
const relClientDir = dirname12(relative9(clientDir, client));
|
|
12327
12482
|
const name = basename6(client, extname5(client));
|
|
12328
|
-
const indexPath =
|
|
12483
|
+
const indexPath = join26(indexDir, relClientDir, `${name}.js`);
|
|
12329
12484
|
const importRaw = relative9(dirname12(indexPath), client).split(sep2).join("/");
|
|
12330
12485
|
const importPath = importRaw.startsWith(".") || importRaw.startsWith("/") ? importRaw : `./${importRaw}`;
|
|
12331
12486
|
const hmrImports = isDev ? `window.__HMR_FRAMEWORK__ = "svelte";
|
|
@@ -12404,7 +12559,7 @@ if (typeof window !== "undefined") {
|
|
|
12404
12559
|
svelteClientPaths: roots.map(({ client }) => client),
|
|
12405
12560
|
svelteIndexPaths: roots.map(({ client }) => {
|
|
12406
12561
|
const rel = dirname12(relative9(clientDir, client));
|
|
12407
|
-
return
|
|
12562
|
+
return join26(indexDir, rel, basename6(client));
|
|
12408
12563
|
}),
|
|
12409
12564
|
svelteServerPaths: roots.map(({ ssr }) => ssr)
|
|
12410
12565
|
};
|
|
@@ -12419,7 +12574,7 @@ var init_compileSvelte = __esm(() => {
|
|
|
12419
12574
|
init_lowerAwaitSlotSyntax();
|
|
12420
12575
|
init_renderToReadableStream();
|
|
12421
12576
|
devClientDir2 = resolveDevClientDir2();
|
|
12422
|
-
hmrClientPath3 =
|
|
12577
|
+
hmrClientPath3 = join26(devClientDir2, "hmrClient.ts").replace(/\\/g, "/");
|
|
12423
12578
|
persistentCache = new Map;
|
|
12424
12579
|
sourceHashCache = new Map;
|
|
12425
12580
|
transpiler3 = new Transpiler2({ loader: "ts", target: "browser" });
|
|
@@ -12434,7 +12589,7 @@ __export(exports_chainInlineSourcemaps, {
|
|
|
12434
12589
|
chainBundleInlineSourcemap: () => chainBundleInlineSourcemap,
|
|
12435
12590
|
buildLineRemap: () => buildLineRemap
|
|
12436
12591
|
});
|
|
12437
|
-
import { readFileSync as
|
|
12592
|
+
import { readFileSync as readFileSync16, writeFileSync as writeFileSync7 } from "fs";
|
|
12438
12593
|
var BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", BASE64_TO_INT, decodeVlq = (str, startPos) => {
|
|
12439
12594
|
let result = 0;
|
|
12440
12595
|
let shift = 0;
|
|
@@ -12725,7 +12880,7 @@ var BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567
|
|
|
12725
12880
|
version: 3
|
|
12726
12881
|
};
|
|
12727
12882
|
}, chainBundleInlineSourcemap = (bundleFilePath) => {
|
|
12728
|
-
const text =
|
|
12883
|
+
const text = readFileSync16(bundleFilePath, "utf-8");
|
|
12729
12884
|
const outerMap = extractInlineMap(text);
|
|
12730
12885
|
if (!outerMap)
|
|
12731
12886
|
return;
|
|
@@ -12811,13 +12966,13 @@ __export(exports_compileVue, {
|
|
|
12811
12966
|
compileVue: () => compileVue,
|
|
12812
12967
|
clearVueHmrCaches: () => clearVueHmrCaches
|
|
12813
12968
|
});
|
|
12814
|
-
import { existsSync as existsSync21 } from "fs";
|
|
12969
|
+
import { existsSync as existsSync21, readFileSync as readFileSync17, realpathSync } from "fs";
|
|
12815
12970
|
import { mkdir as mkdir5 } from "fs/promises";
|
|
12816
12971
|
import {
|
|
12817
12972
|
basename as basename7,
|
|
12818
12973
|
dirname as dirname13,
|
|
12819
12974
|
isAbsolute as isAbsolute4,
|
|
12820
|
-
join as
|
|
12975
|
+
join as join27,
|
|
12821
12976
|
relative as relative10,
|
|
12822
12977
|
resolve as resolve20
|
|
12823
12978
|
} from "path";
|
|
@@ -12951,6 +13106,11 @@ var resolveDevClientDir3 = () => {
|
|
|
12951
13106
|
]);
|
|
12952
13107
|
const hasScript = descriptor.script || descriptor.scriptSetup;
|
|
12953
13108
|
const compiledScript = hasScript ? compiler.compileScript(descriptor, {
|
|
13109
|
+
fs: {
|
|
13110
|
+
fileExists: existsSync21,
|
|
13111
|
+
readFile: (file3) => existsSync21(file3) ? readFileSync17(file3, "utf-8") : undefined,
|
|
13112
|
+
realpath: realpathSync
|
|
13113
|
+
},
|
|
12954
13114
|
id: componentId,
|
|
12955
13115
|
inlineTemplate: false,
|
|
12956
13116
|
sourceMap: true
|
|
@@ -12995,7 +13155,7 @@ var resolveDevClientDir3 = () => {
|
|
|
12995
13155
|
];
|
|
12996
13156
|
let cssOutputPaths = [];
|
|
12997
13157
|
if (isEntryPoint && allCss.length) {
|
|
12998
|
-
const cssOutputFile =
|
|
13158
|
+
const cssOutputFile = join27(outputDirs.css, `${toKebab(fileBaseName)}-compiled.css`);
|
|
12999
13159
|
await mkdir5(dirname13(cssOutputFile), { recursive: true });
|
|
13000
13160
|
await write3(cssOutputFile, allCss.join(`
|
|
13001
13161
|
`));
|
|
@@ -13026,8 +13186,8 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
|
|
|
13026
13186
|
};
|
|
13027
13187
|
const clientCode = assembleModule(generateRenderFunction(false), "render", true) + islandMetadataExports;
|
|
13028
13188
|
const serverCode = assembleModule(generateRenderFunction(true), "ssrRender", false) + islandMetadataExports;
|
|
13029
|
-
const clientOutputPath =
|
|
13030
|
-
const serverOutputPath =
|
|
13189
|
+
const clientOutputPath = join27(outputDirs.client, `${relativeWithoutExtension}.js`);
|
|
13190
|
+
const serverOutputPath = join27(outputDirs.server, `${relativeWithoutExtension}.js`);
|
|
13031
13191
|
const relDir = dirname13(relativeFilePath);
|
|
13032
13192
|
const relDepth = relDir === "." ? 0 : relDir.split("/").length;
|
|
13033
13193
|
const adjustImports = (code) => code.replace(/(from\s+['"])(\.\.\/(?:\.\.\/)*)/g, (_2, prefix, dots) => {
|
|
@@ -13077,13 +13237,13 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
|
|
|
13077
13237
|
cacheMap.set(sourceFilePath, result);
|
|
13078
13238
|
persistentBuildCache.set(sourceFilePath, result);
|
|
13079
13239
|
return result;
|
|
13080
|
-
}, compileVue = async (entryPoints, vueRootDir, isDev = false, stylePreprocessors) => {
|
|
13240
|
+
}, compileVue = async (entryPoints, vueRootDir, isDev = false, stylePreprocessors, ssrOnlyEntries) => {
|
|
13081
13241
|
const compiler = await import("@vue/compiler-sfc");
|
|
13082
13242
|
const generatedDir = getFrameworkGeneratedDir("vue");
|
|
13083
|
-
const clientOutputDir =
|
|
13084
|
-
const indexOutputDir =
|
|
13085
|
-
const serverOutputDir =
|
|
13086
|
-
const cssOutputDir =
|
|
13243
|
+
const clientOutputDir = join27(generatedDir, "client");
|
|
13244
|
+
const indexOutputDir = join27(generatedDir, "indexes");
|
|
13245
|
+
const serverOutputDir = join27(generatedDir, "server");
|
|
13246
|
+
const cssOutputDir = join27(generatedDir, "compiled");
|
|
13087
13247
|
await Promise.all([
|
|
13088
13248
|
mkdir5(clientOutputDir, { recursive: true }),
|
|
13089
13249
|
mkdir5(indexOutputDir, { recursive: true }),
|
|
@@ -13093,15 +13253,24 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
|
|
|
13093
13253
|
const buildCache = new Map;
|
|
13094
13254
|
const allTsHelperPaths = new Set;
|
|
13095
13255
|
const compiledPages = await Promise.all(entryPoints.map(async (entryPath) => {
|
|
13096
|
-
const
|
|
13256
|
+
const resolvedEntryPath = resolve20(entryPath);
|
|
13257
|
+
const result = await compileVueFile(resolvedEntryPath, {
|
|
13097
13258
|
client: clientOutputDir,
|
|
13098
13259
|
css: cssOutputDir,
|
|
13099
13260
|
server: serverOutputDir
|
|
13100
13261
|
}, buildCache, true, vueRootDir, compiler, stylePreprocessors);
|
|
13101
13262
|
result.tsHelperPaths.forEach((path) => allTsHelperPaths.add(path));
|
|
13263
|
+
if (ssrOnlyEntries?.has(resolvedEntryPath)) {
|
|
13264
|
+
return {
|
|
13265
|
+
clientPath: null,
|
|
13266
|
+
cssPaths: result.cssPaths,
|
|
13267
|
+
indexPath: null,
|
|
13268
|
+
serverPath: result.serverPath
|
|
13269
|
+
};
|
|
13270
|
+
}
|
|
13102
13271
|
const entryBaseName = basename7(entryPath, ".vue");
|
|
13103
|
-
const indexOutputFile =
|
|
13104
|
-
const clientOutputFile =
|
|
13272
|
+
const indexOutputFile = join27(indexOutputDir, `${entryBaseName}.js`);
|
|
13273
|
+
const clientOutputFile = join27(clientOutputDir, relative10(vueRootDir, entryPath).replace(/\\/g, "/").replace(/\.vue$/, ".js"));
|
|
13105
13274
|
await mkdir5(dirname13(indexOutputFile), { recursive: true });
|
|
13106
13275
|
const vueHmrImports = isDev ? [
|
|
13107
13276
|
`window.__HMR_FRAMEWORK__ = "vue";`,
|
|
@@ -13254,18 +13423,19 @@ if (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {
|
|
|
13254
13423
|
const sourceCode = await file2(tsPath).text();
|
|
13255
13424
|
const transpiledCode = transpiler4.transformSync(sourceCode);
|
|
13256
13425
|
const relativeJsPath = relative10(vueRootDir, tsPath).replace(/\.ts$/, ".js");
|
|
13257
|
-
const outClientPath =
|
|
13258
|
-
const outServerPath =
|
|
13426
|
+
const outClientPath = join27(clientOutputDir, relativeJsPath);
|
|
13427
|
+
const outServerPath = join27(serverOutputDir, relativeJsPath);
|
|
13259
13428
|
await mkdir5(dirname13(outClientPath), { recursive: true });
|
|
13260
13429
|
await mkdir5(dirname13(outServerPath), { recursive: true });
|
|
13261
13430
|
await write3(outClientPath, transpiledCode);
|
|
13262
13431
|
await write3(outServerPath, transpiledCode);
|
|
13263
13432
|
}));
|
|
13433
|
+
const isString = (value) => value !== null;
|
|
13264
13434
|
return {
|
|
13265
13435
|
hmrMetadata: new Map(vueHmrMetadata),
|
|
13266
|
-
vueClientPaths: compiledPages.map((
|
|
13436
|
+
vueClientPaths: compiledPages.map((p2) => p2.clientPath).filter(isString),
|
|
13267
13437
|
vueCssPaths: compiledPages.flatMap((result) => result.cssPaths),
|
|
13268
|
-
vueIndexPaths: compiledPages.map((
|
|
13438
|
+
vueIndexPaths: compiledPages.map((p2) => p2.indexPath).filter(isString),
|
|
13269
13439
|
vueServerPaths: compiledPages.map((result) => result.serverPath)
|
|
13270
13440
|
};
|
|
13271
13441
|
};
|
|
@@ -13278,7 +13448,7 @@ var init_compileVue = __esm(() => {
|
|
|
13278
13448
|
init_vueAutoRouterTransform();
|
|
13279
13449
|
init_stylePreprocessor();
|
|
13280
13450
|
devClientDir3 = resolveDevClientDir3();
|
|
13281
|
-
hmrClientPath4 =
|
|
13451
|
+
hmrClientPath4 = join27(devClientDir3, "hmrClient.ts").replace(/\\/g, "/");
|
|
13282
13452
|
transpiler4 = new Transpiler3({ loader: "ts", target: "browser" });
|
|
13283
13453
|
scriptCache = new Map;
|
|
13284
13454
|
scriptSetupCache = new Map;
|
|
@@ -13759,17 +13929,17 @@ __export(exports_compileAngular, {
|
|
|
13759
13929
|
compileAngularFile: () => compileAngularFile,
|
|
13760
13930
|
compileAngular: () => compileAngular
|
|
13761
13931
|
});
|
|
13762
|
-
import { existsSync as existsSync22, readFileSync as
|
|
13763
|
-
import { join as
|
|
13932
|
+
import { existsSync as existsSync22, readFileSync as readFileSync18, promises as fs5 } from "fs";
|
|
13933
|
+
import { join as join28, basename as basename8, sep as sep3, dirname as dirname14, resolve as resolve21, relative as relative11 } from "path";
|
|
13764
13934
|
var {Glob: Glob6 } = globalThis.Bun;
|
|
13765
|
-
import
|
|
13935
|
+
import ts10 from "typescript";
|
|
13766
13936
|
var traceAngularPhase = async (name, fn2, metadata) => {
|
|
13767
13937
|
const tracePhase = globalThis.__absoluteBuildTracePhase;
|
|
13768
13938
|
return tracePhase ? tracePhase(`compile/angular/${name}`, fn2, metadata) : await fn2();
|
|
13769
13939
|
}, readTsconfigPathAliases = () => {
|
|
13770
13940
|
try {
|
|
13771
13941
|
const configPath2 = resolve21(process.cwd(), "tsconfig.json");
|
|
13772
|
-
const config =
|
|
13942
|
+
const config = ts10.readConfigFile(configPath2, ts10.sys.readFile).config;
|
|
13773
13943
|
const compilerOptions = config?.compilerOptions ?? {};
|
|
13774
13944
|
const baseUrl = resolve21(process.cwd(), compilerOptions.baseUrl ?? ".");
|
|
13775
13945
|
const aliases = Object.entries(compilerOptions.paths ?? {}).map(([pattern, replacements]) => ({ pattern, replacements }));
|
|
@@ -13803,10 +13973,10 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
13803
13973
|
`${candidate}.tsx`,
|
|
13804
13974
|
`${candidate}.js`,
|
|
13805
13975
|
`${candidate}.jsx`,
|
|
13806
|
-
|
|
13807
|
-
|
|
13808
|
-
|
|
13809
|
-
|
|
13976
|
+
join28(candidate, "index.ts"),
|
|
13977
|
+
join28(candidate, "index.tsx"),
|
|
13978
|
+
join28(candidate, "index.js"),
|
|
13979
|
+
join28(candidate, "index.jsx")
|
|
13810
13980
|
];
|
|
13811
13981
|
return candidates.find((file3) => existsSync22(file3));
|
|
13812
13982
|
}, createLegacyAngularAnimationUsageResolver = (rootDir) => {
|
|
@@ -13898,7 +14068,7 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
13898
14068
|
return resolve21(import.meta.dir, "./dev/client");
|
|
13899
14069
|
}, devClientDir4, hmrClientPath5, formatDiagnosticMessage = (diagnostic) => {
|
|
13900
14070
|
try {
|
|
13901
|
-
return
|
|
14071
|
+
return ts10.flattenDiagnosticMessageText(diagnostic.messageText, `
|
|
13902
14072
|
`);
|
|
13903
14073
|
} catch {
|
|
13904
14074
|
return String(diagnostic.messageText || "Unknown error");
|
|
@@ -13906,7 +14076,7 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
13906
14076
|
}, throwOnCompilationErrors = (diagnostics) => {
|
|
13907
14077
|
if (!diagnostics?.length)
|
|
13908
14078
|
return;
|
|
13909
|
-
const errors = diagnostics.filter((diag) => diag.category ===
|
|
14079
|
+
const errors = diagnostics.filter((diag) => diag.category === ts10.DiagnosticCategory.Error);
|
|
13910
14080
|
if (!errors.length)
|
|
13911
14081
|
return;
|
|
13912
14082
|
const fullMessage = errors.map(formatDiagnosticMessage).join(`
|
|
@@ -13948,22 +14118,22 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
13948
14118
|
}
|
|
13949
14119
|
return `${path}.js${query}`;
|
|
13950
14120
|
}, isRelativeModuleSpecifier = (specifier) => specifier.startsWith("./") || specifier.startsWith("../"), extractLocalImportSpecifiers = (source, fileName) => {
|
|
13951
|
-
const sourceFile =
|
|
14121
|
+
const sourceFile = ts10.createSourceFile(fileName, source, ts10.ScriptTarget.Latest, true, ts10.ScriptKind.TS);
|
|
13952
14122
|
const specifiers = [];
|
|
13953
14123
|
const addSpecifier = (node) => {
|
|
13954
|
-
if (!node || !
|
|
14124
|
+
if (!node || !ts10.isStringLiteralLike(node))
|
|
13955
14125
|
return;
|
|
13956
14126
|
const specifier = node.text;
|
|
13957
14127
|
if (isRelativeModuleSpecifier(specifier))
|
|
13958
14128
|
specifiers.push(specifier);
|
|
13959
14129
|
};
|
|
13960
14130
|
const visit = (node) => {
|
|
13961
|
-
if (
|
|
14131
|
+
if (ts10.isImportDeclaration(node) || ts10.isExportDeclaration(node)) {
|
|
13962
14132
|
addSpecifier(node.moduleSpecifier);
|
|
13963
|
-
} else if (
|
|
14133
|
+
} else if (ts10.isCallExpression(node) && node.expression.kind === ts10.SyntaxKind.ImportKeyword) {
|
|
13964
14134
|
addSpecifier(node.arguments[0]);
|
|
13965
14135
|
}
|
|
13966
|
-
|
|
14136
|
+
ts10.forEachChild(node, visit);
|
|
13967
14137
|
};
|
|
13968
14138
|
visit(sourceFile);
|
|
13969
14139
|
return specifiers;
|
|
@@ -13976,10 +14146,10 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
13976
14146
|
`${basePath}.tsx`,
|
|
13977
14147
|
`${basePath}.mts`,
|
|
13978
14148
|
`${basePath}.cts`,
|
|
13979
|
-
|
|
13980
|
-
|
|
13981
|
-
|
|
13982
|
-
|
|
14149
|
+
join28(basePath, "index.ts"),
|
|
14150
|
+
join28(basePath, "index.tsx"),
|
|
14151
|
+
join28(basePath, "index.mts"),
|
|
14152
|
+
join28(basePath, "index.cts")
|
|
13983
14153
|
];
|
|
13984
14154
|
return candidates.map((candidate) => resolve21(candidate)).find((candidate) => existsSync22(candidate) && !candidate.endsWith(".d.ts")) ?? null;
|
|
13985
14155
|
}, readFileForAotTransform = async (fileName, readFile6) => {
|
|
@@ -14005,15 +14175,15 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
14005
14175
|
const paths = [];
|
|
14006
14176
|
const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
|
|
14007
14177
|
if (templateUrlMatch?.[1])
|
|
14008
|
-
paths.push(
|
|
14178
|
+
paths.push(join28(fileDir, templateUrlMatch[1]));
|
|
14009
14179
|
const styleUrlMatch = findUncommentedMatch(source, /styleUrl\s*:\s*['"]([^'"]+)['"]/);
|
|
14010
14180
|
if (styleUrlMatch?.[1])
|
|
14011
|
-
paths.push(
|
|
14181
|
+
paths.push(join28(fileDir, styleUrlMatch[1]));
|
|
14012
14182
|
const styleUrlsMatch = findUncommentedMatch(source, /styleUrls\s*:\s*\[([^\]]+)\]/);
|
|
14013
14183
|
const urlMatches = styleUrlsMatch?.[1]?.match(/['"]([^'"]+)['"]/g);
|
|
14014
14184
|
if (urlMatches) {
|
|
14015
14185
|
for (const urlMatch of urlMatches) {
|
|
14016
|
-
paths.push(
|
|
14186
|
+
paths.push(join28(fileDir, urlMatch.replace(/['"]/g, "")));
|
|
14017
14187
|
}
|
|
14018
14188
|
}
|
|
14019
14189
|
return paths.map((path) => resolve21(path));
|
|
@@ -14047,7 +14217,7 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
14047
14217
|
safeStableStringify(stylePreprocessors ?? null)
|
|
14048
14218
|
].join("\x00");
|
|
14049
14219
|
const cacheKey2 = Bun.hash(cacheInput).toString(BASE_36_RADIX);
|
|
14050
|
-
return
|
|
14220
|
+
return join28(process.cwd(), ".absolutejs", "cache", "angular-resources", `${cacheKey2}.json`);
|
|
14051
14221
|
}, precomputeAotResourceTransforms = async (inputPaths, readFile6, stylePreprocessors) => {
|
|
14052
14222
|
const transformedSources = new Map;
|
|
14053
14223
|
const visited = new Set;
|
|
@@ -14093,10 +14263,10 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
14093
14263
|
return { stats, transformedSources };
|
|
14094
14264
|
}, compileAngularFiles = async (inputPaths, outDir, stylePreprocessors) => {
|
|
14095
14265
|
const islandMetadataByOutputPath = await traceAngularPhase("aot/island-metadata", () => new Map(inputPaths.map((inputPath) => {
|
|
14096
|
-
const outputPath = resolve21(
|
|
14266
|
+
const outputPath = resolve21(join28(outDir, relative11(process.cwd(), resolve21(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
|
|
14097
14267
|
return [
|
|
14098
14268
|
outputPath,
|
|
14099
|
-
buildIslandMetadataExports(
|
|
14269
|
+
buildIslandMetadataExports(readFileSync18(inputPath, "utf-8"))
|
|
14100
14270
|
];
|
|
14101
14271
|
})), { entries: inputPaths.length });
|
|
14102
14272
|
await traceAngularPhase("aot/preload-compiler", () => import("@angular/compiler"));
|
|
@@ -14111,25 +14281,25 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
14111
14281
|
emitDecoratorMetadata: true,
|
|
14112
14282
|
esModuleInterop: true,
|
|
14113
14283
|
experimentalDecorators: true,
|
|
14114
|
-
module:
|
|
14115
|
-
moduleResolution:
|
|
14116
|
-
newLine:
|
|
14284
|
+
module: ts10.ModuleKind.ESNext,
|
|
14285
|
+
moduleResolution: ts10.ModuleResolutionKind.Bundler,
|
|
14286
|
+
newLine: ts10.NewLineKind.LineFeed,
|
|
14117
14287
|
noLib: false,
|
|
14118
14288
|
outDir,
|
|
14119
14289
|
skipLibCheck: true,
|
|
14120
|
-
target:
|
|
14290
|
+
target: ts10.ScriptTarget.ES2022,
|
|
14121
14291
|
...config.options
|
|
14122
14292
|
};
|
|
14123
|
-
options.target =
|
|
14293
|
+
options.target = ts10.ScriptTarget.ES2022;
|
|
14124
14294
|
options.experimentalDecorators = true;
|
|
14125
14295
|
options.emitDecoratorMetadata = true;
|
|
14126
|
-
options.newLine =
|
|
14296
|
+
options.newLine = ts10.NewLineKind.LineFeed;
|
|
14127
14297
|
options.outDir = outDir;
|
|
14128
14298
|
options.noEmit = false;
|
|
14129
14299
|
options.incremental = false;
|
|
14130
14300
|
options.tsBuildInfoFile = undefined;
|
|
14131
14301
|
options.rootDir = process.cwd();
|
|
14132
|
-
const host = await traceAngularPhase("aot/create-compiler-host", () =>
|
|
14302
|
+
const host = await traceAngularPhase("aot/create-compiler-host", () => ts10.createCompilerHost(options));
|
|
14133
14303
|
const originalGetDefaultLibLocation = host.getDefaultLibLocation;
|
|
14134
14304
|
host.getDefaultLibLocation = () => tsLibDir || (originalGetDefaultLibLocation ? originalGetDefaultLibLocation() : "");
|
|
14135
14305
|
const originalGetDefaultLibFileName = host.getDefaultLibFileName;
|
|
@@ -14140,7 +14310,7 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
14140
14310
|
const originalGetSourceFile = host.getSourceFile;
|
|
14141
14311
|
host.getSourceFile = (fileName, languageVersion, onError) => {
|
|
14142
14312
|
if (fileName.startsWith("lib.") && fileName.endsWith(".d.ts") && tsLibDir) {
|
|
14143
|
-
const resolvedPath =
|
|
14313
|
+
const resolvedPath = join28(tsLibDir, fileName);
|
|
14144
14314
|
return originalGetSourceFile?.call(host, resolvedPath, languageVersion, onError);
|
|
14145
14315
|
}
|
|
14146
14316
|
return originalGetSourceFile?.call(host, fileName, languageVersion, onError);
|
|
@@ -14175,7 +14345,7 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
14175
14345
|
host.getSourceFile = (fileName, languageVersion, onError) => {
|
|
14176
14346
|
const source = transformedSources.get(resolve21(fileName));
|
|
14177
14347
|
if (source) {
|
|
14178
|
-
return
|
|
14348
|
+
return ts10.createSourceFile(fileName, source, languageVersion, true);
|
|
14179
14349
|
}
|
|
14180
14350
|
return originalGetSourceFileForCompile?.call(host, fileName, languageVersion, onError);
|
|
14181
14351
|
};
|
|
@@ -14195,7 +14365,7 @@ var traceAngularPhase = async (name, fn2, metadata) => {
|
|
|
14195
14365
|
const entries = await traceAngularPhase("aot/postprocess-emitted-js", () => {
|
|
14196
14366
|
const rawEntries = Object.entries(emitted).filter(([fileName]) => fileName.endsWith(".js")).map(([fileName, content]) => ({
|
|
14197
14367
|
content,
|
|
14198
|
-
target:
|
|
14368
|
+
target: join28(outDir, fileName)
|
|
14199
14369
|
}));
|
|
14200
14370
|
const outputFiles = new Set(rawEntries.map(({ target }) => resolve21(target)));
|
|
14201
14371
|
return rawEntries.map(({ content, target }) => {
|
|
@@ -14372,7 +14542,7 @@ ${fields}
|
|
|
14372
14542
|
}, inlineTemplateAndLowerDefer = async (source, fileDir) => {
|
|
14373
14543
|
const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
|
|
14374
14544
|
if (templateUrlMatch?.[1]) {
|
|
14375
|
-
const templatePath =
|
|
14545
|
+
const templatePath = join28(fileDir, templateUrlMatch[1]);
|
|
14376
14546
|
if (!existsSync22(templatePath)) {
|
|
14377
14547
|
throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
|
|
14378
14548
|
}
|
|
@@ -14403,11 +14573,11 @@ ${fields}
|
|
|
14403
14573
|
}, inlineTemplateAndLowerDeferSync = (source, fileDir) => {
|
|
14404
14574
|
const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
|
|
14405
14575
|
if (templateUrlMatch?.[1]) {
|
|
14406
|
-
const templatePath =
|
|
14576
|
+
const templatePath = join28(fileDir, templateUrlMatch[1]);
|
|
14407
14577
|
if (!existsSync22(templatePath)) {
|
|
14408
14578
|
throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
|
|
14409
14579
|
}
|
|
14410
|
-
const templateRaw2 =
|
|
14580
|
+
const templateRaw2 = readFileSync18(templatePath, "utf-8");
|
|
14411
14581
|
const lowered2 = lowerAngularDeferSyntax(templateRaw2);
|
|
14412
14582
|
const escaped2 = escapeTemplateContent(lowered2.template);
|
|
14413
14583
|
const replacedSource2 = source.slice(0, templateUrlMatch.index) + `template: \`${escaped2}\`` + source.slice(templateUrlMatch.index + templateUrlMatch[0].length);
|
|
@@ -14440,7 +14610,7 @@ ${fields}
|
|
|
14440
14610
|
return source;
|
|
14441
14611
|
const stylePromises = urlMatches.map((urlMatch) => {
|
|
14442
14612
|
const styleUrl = urlMatch.replace(/['"]/g, "");
|
|
14443
|
-
return readAndEscapeFile(
|
|
14613
|
+
return readAndEscapeFile(join28(fileDir, styleUrl), stylePreprocessors);
|
|
14444
14614
|
});
|
|
14445
14615
|
const results = await Promise.all(stylePromises);
|
|
14446
14616
|
const inlinedStyles = results.filter(Boolean).map((escaped) => `\`${escaped}\``);
|
|
@@ -14451,7 +14621,7 @@ ${fields}
|
|
|
14451
14621
|
const styleUrlMatch = findUncommentedMatch(source, /styleUrl\s*:\s*['"]([^'"]+)['"]/);
|
|
14452
14622
|
if (!styleUrlMatch?.[1])
|
|
14453
14623
|
return source;
|
|
14454
|
-
const escaped = await readAndEscapeFile(
|
|
14624
|
+
const escaped = await readAndEscapeFile(join28(fileDir, styleUrlMatch[1]), stylePreprocessors);
|
|
14455
14625
|
if (!escaped)
|
|
14456
14626
|
return source;
|
|
14457
14627
|
return source.slice(0, styleUrlMatch.index) + `styles: [\`${escaped}\`]` + source.slice(styleUrlMatch.index + styleUrlMatch[0].length);
|
|
@@ -14487,10 +14657,10 @@ ${fields}
|
|
|
14487
14657
|
`${candidate}.js`,
|
|
14488
14658
|
`${candidate}.jsx`,
|
|
14489
14659
|
`${candidate}.json`,
|
|
14490
|
-
|
|
14491
|
-
|
|
14492
|
-
|
|
14493
|
-
|
|
14660
|
+
join28(candidate, "index.ts"),
|
|
14661
|
+
join28(candidate, "index.tsx"),
|
|
14662
|
+
join28(candidate, "index.js"),
|
|
14663
|
+
join28(candidate, "index.jsx")
|
|
14494
14664
|
];
|
|
14495
14665
|
return candidates.find((file3) => existsSync22(file3));
|
|
14496
14666
|
};
|
|
@@ -14517,10 +14687,10 @@ ${fields}
|
|
|
14517
14687
|
const inputDir = dirname14(sourcePath);
|
|
14518
14688
|
const fileBase = basename8(sourcePath).replace(/\.[cm]?[tj]sx?$/, ".js");
|
|
14519
14689
|
if (inputDir === outDir || inputDir.startsWith(`${outDir}${sep3}`)) {
|
|
14520
|
-
return
|
|
14690
|
+
return join28(inputDir, fileBase);
|
|
14521
14691
|
}
|
|
14522
14692
|
const relativeDir = inputDir.startsWith(baseDir) ? inputDir.substring(baseDir.length + 1) : inputDir;
|
|
14523
|
-
return
|
|
14693
|
+
return join28(outDir, relativeDir, fileBase);
|
|
14524
14694
|
};
|
|
14525
14695
|
const withCacheBuster = (specifier) => {
|
|
14526
14696
|
if (!cacheBuster)
|
|
@@ -14570,8 +14740,8 @@ ${fields}
|
|
|
14570
14740
|
if (resolved.endsWith(".json") && existsSync22(resolved)) {
|
|
14571
14741
|
const inputDir2 = dirname14(resolved);
|
|
14572
14742
|
const relativeDir2 = inputDir2.startsWith(baseDir) ? inputDir2.substring(baseDir.length + 1) : inputDir2;
|
|
14573
|
-
const targetDir2 =
|
|
14574
|
-
const targetPath2 =
|
|
14743
|
+
const targetDir2 = join28(outDir, relativeDir2);
|
|
14744
|
+
const targetPath2 = join28(targetDir2, basename8(resolved));
|
|
14575
14745
|
await fs5.mkdir(targetDir2, { recursive: true });
|
|
14576
14746
|
await fs5.copyFile(resolved, targetPath2);
|
|
14577
14747
|
allOutputs.push(targetPath2);
|
|
@@ -14649,7 +14819,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
|
|
|
14649
14819
|
return { clientPaths: [...emptyPaths], serverPaths: [...emptyPaths] };
|
|
14650
14820
|
}
|
|
14651
14821
|
const compiledRoot = compiledParent;
|
|
14652
|
-
const indexesDir =
|
|
14822
|
+
const indexesDir = join28(compiledParent, "indexes");
|
|
14653
14823
|
await traceAngularPhase("setup/create-indexes-dir", () => fs5.mkdir(indexesDir, { recursive: true }));
|
|
14654
14824
|
const aotOutputs = hmr ? [] : await traceAngularPhase("aot/compile-files", () => compileAngularFiles(entryPoints.map((entry) => resolve21(entry)), compiledRoot, stylePreprocessors), { entries: entryPoints.length });
|
|
14655
14825
|
if (!hmr) {
|
|
@@ -14663,9 +14833,9 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
|
|
|
14663
14833
|
absolute: false,
|
|
14664
14834
|
cwd: angularSrcDir
|
|
14665
14835
|
})) {
|
|
14666
|
-
const sourcePath =
|
|
14836
|
+
const sourcePath = join28(angularSrcDir, rel);
|
|
14667
14837
|
const cwdRel = relative11(cwd, sourcePath);
|
|
14668
|
-
const targetPath =
|
|
14838
|
+
const targetPath = join28(compiledRoot, cwdRel);
|
|
14669
14839
|
await fs5.mkdir(dirname14(targetPath), { recursive: true });
|
|
14670
14840
|
await fs5.copyFile(sourcePath, targetPath);
|
|
14671
14841
|
}
|
|
@@ -14682,9 +14852,9 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
|
|
|
14682
14852
|
const fileBase = basename8(resolvedEntry).replace(/\.[tj]s$/, "");
|
|
14683
14853
|
const jsName = `${fileBase}.js`;
|
|
14684
14854
|
const compiledFallbackPaths = [
|
|
14685
|
-
|
|
14686
|
-
|
|
14687
|
-
|
|
14855
|
+
join28(compiledRoot, relativeEntry),
|
|
14856
|
+
join28(compiledRoot, "pages", jsName),
|
|
14857
|
+
join28(compiledRoot, jsName)
|
|
14688
14858
|
].map((file3) => resolve21(file3));
|
|
14689
14859
|
const resolveRawServerFile = (candidatePaths) => {
|
|
14690
14860
|
const normalizedCandidates = [
|
|
@@ -14734,7 +14904,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
|
|
|
14734
14904
|
const providersHashInput = providersInjection ? (() => {
|
|
14735
14905
|
let providersSourceContent = "";
|
|
14736
14906
|
try {
|
|
14737
|
-
providersSourceContent =
|
|
14907
|
+
providersSourceContent = readFileSync18(providersInjection.appProvidersSource, "utf-8");
|
|
14738
14908
|
} catch {}
|
|
14739
14909
|
return JSON.stringify({
|
|
14740
14910
|
basePath: pageInjectionForHash?.basePath ?? null,
|
|
@@ -14744,7 +14914,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
|
|
|
14744
14914
|
})() : "no-providers";
|
|
14745
14915
|
const serverContentHash = `${Bun.hash(original).toString(BASE_36_RADIX)}.${Bun.hash(providersHashInput).toString(BASE_36_RADIX)}`;
|
|
14746
14916
|
const cachedWrapper = wrapperOutputCache.get(resolvedEntry);
|
|
14747
|
-
const clientFile =
|
|
14917
|
+
const clientFile = join28(indexesDir, jsName);
|
|
14748
14918
|
if (hmr && cachedWrapper && cachedWrapper.serverHash === serverContentHash && existsSync22(clientFile) && (usesLegacyAnimations || !original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__")) && (!usesLegacyAnimations || original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__"))) {
|
|
14749
14919
|
return {
|
|
14750
14920
|
clientPath: clientFile,
|
|
@@ -14776,7 +14946,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
|
|
|
14776
14946
|
const angularDirAbs = resolve21(outRoot);
|
|
14777
14947
|
const appSourceAbs = resolve21(providersInjection.appProvidersSource);
|
|
14778
14948
|
const rel = relative11(angularDirAbs, appSourceAbs).replace(/\\/g, "/");
|
|
14779
|
-
return
|
|
14949
|
+
return join28(compiledParent, rel).replace(/\.[cm]?[tj]sx?$/, ".js");
|
|
14780
14950
|
})();
|
|
14781
14951
|
const appProvidersSpec = (() => {
|
|
14782
14952
|
const rel = relative11(dirname14(rawServerFile), compiledAppProvidersPath).replace(/\\/g, "/");
|
|
@@ -14999,24 +15169,24 @@ var init_compileAngular = __esm(() => {
|
|
|
14999
15169
|
init_stylePreprocessor();
|
|
15000
15170
|
init_generatedDir();
|
|
15001
15171
|
devClientDir4 = resolveDevClientDir4();
|
|
15002
|
-
hmrClientPath5 =
|
|
15172
|
+
hmrClientPath5 = join28(devClientDir4, "hmrClient.ts").replace(/\\/g, "/");
|
|
15003
15173
|
jitContentCache = new Map;
|
|
15004
15174
|
wrapperOutputCache = new Map;
|
|
15005
15175
|
});
|
|
15006
15176
|
|
|
15007
15177
|
// src/dev/angular/hmrImportGenerator.ts
|
|
15008
|
-
import
|
|
15178
|
+
import ts11 from "typescript";
|
|
15009
15179
|
var createHmrImportGenerator = (namespaceMap) => ({
|
|
15010
15180
|
addImport(request) {
|
|
15011
15181
|
const ns = namespaceMap.get(request.exportModuleSpecifier);
|
|
15012
15182
|
if (!ns) {
|
|
15013
15183
|
throw new Error(`HMR import generator has no namespace mapping for ${request.exportModuleSpecifier}. ` + `Add it to namespaceDependencies before calling compileHmrUpdateCallback.`);
|
|
15014
15184
|
}
|
|
15015
|
-
const namespaceId =
|
|
15185
|
+
const namespaceId = ts11.factory.createIdentifier(ns);
|
|
15016
15186
|
if (request.exportSymbolName === null) {
|
|
15017
15187
|
return namespaceId;
|
|
15018
15188
|
}
|
|
15019
|
-
return
|
|
15189
|
+
return ts11.factory.createPropertyAccessExpression(namespaceId, ts11.factory.createIdentifier(request.exportSymbolName));
|
|
15020
15190
|
}
|
|
15021
15191
|
});
|
|
15022
15192
|
var init_hmrImportGenerator = () => {};
|
|
@@ -15389,13 +15559,13 @@ var init_translator = __esm(() => {
|
|
|
15389
15559
|
});
|
|
15390
15560
|
|
|
15391
15561
|
// src/dev/angular/vendor/translator/ts_util.ts
|
|
15392
|
-
import
|
|
15562
|
+
import ts12 from "typescript";
|
|
15393
15563
|
function tsNumericExpression(value) {
|
|
15394
15564
|
if (value < 0) {
|
|
15395
|
-
const operand =
|
|
15396
|
-
return
|
|
15565
|
+
const operand = ts12.factory.createNumericLiteral(Math.abs(value));
|
|
15566
|
+
return ts12.factory.createPrefixUnaryExpression(ts12.SyntaxKind.MinusToken, operand);
|
|
15397
15567
|
}
|
|
15398
|
-
return
|
|
15568
|
+
return ts12.factory.createNumericLiteral(value);
|
|
15399
15569
|
}
|
|
15400
15570
|
var init_ts_util = __esm(() => {
|
|
15401
15571
|
/*!
|
|
@@ -15408,142 +15578,142 @@ var init_ts_util = __esm(() => {
|
|
|
15408
15578
|
});
|
|
15409
15579
|
|
|
15410
15580
|
// src/dev/angular/vendor/translator/typescript_ast_factory.ts
|
|
15411
|
-
import
|
|
15581
|
+
import ts13 from "typescript";
|
|
15412
15582
|
|
|
15413
15583
|
class TypeScriptAstFactory {
|
|
15414
15584
|
annotateForClosureCompiler;
|
|
15415
15585
|
externalSourceFiles = new Map;
|
|
15416
15586
|
UNARY_OPERATORS = /* @__PURE__ */ (() => ({
|
|
15417
|
-
"+":
|
|
15418
|
-
"-":
|
|
15419
|
-
"!":
|
|
15587
|
+
"+": ts13.SyntaxKind.PlusToken,
|
|
15588
|
+
"-": ts13.SyntaxKind.MinusToken,
|
|
15589
|
+
"!": ts13.SyntaxKind.ExclamationToken
|
|
15420
15590
|
}))();
|
|
15421
15591
|
BINARY_OPERATORS = /* @__PURE__ */ (() => ({
|
|
15422
|
-
"&&":
|
|
15423
|
-
">":
|
|
15424
|
-
">=":
|
|
15425
|
-
"&":
|
|
15426
|
-
"|":
|
|
15427
|
-
"/":
|
|
15428
|
-
"==":
|
|
15429
|
-
"===":
|
|
15430
|
-
"<":
|
|
15431
|
-
"<=":
|
|
15432
|
-
"-":
|
|
15433
|
-
"%":
|
|
15434
|
-
"*":
|
|
15435
|
-
"**":
|
|
15436
|
-
"!=":
|
|
15437
|
-
"!==":
|
|
15438
|
-
"||":
|
|
15439
|
-
"+":
|
|
15440
|
-
"??":
|
|
15441
|
-
"=":
|
|
15442
|
-
"+=":
|
|
15443
|
-
"-=":
|
|
15444
|
-
"*=":
|
|
15445
|
-
"/=":
|
|
15446
|
-
"%=":
|
|
15447
|
-
"**=":
|
|
15448
|
-
"&&=":
|
|
15449
|
-
"||=":
|
|
15450
|
-
"??=":
|
|
15451
|
-
in:
|
|
15452
|
-
instanceof:
|
|
15592
|
+
"&&": ts13.SyntaxKind.AmpersandAmpersandToken,
|
|
15593
|
+
">": ts13.SyntaxKind.GreaterThanToken,
|
|
15594
|
+
">=": ts13.SyntaxKind.GreaterThanEqualsToken,
|
|
15595
|
+
"&": ts13.SyntaxKind.AmpersandToken,
|
|
15596
|
+
"|": ts13.SyntaxKind.BarToken,
|
|
15597
|
+
"/": ts13.SyntaxKind.SlashToken,
|
|
15598
|
+
"==": ts13.SyntaxKind.EqualsEqualsToken,
|
|
15599
|
+
"===": ts13.SyntaxKind.EqualsEqualsEqualsToken,
|
|
15600
|
+
"<": ts13.SyntaxKind.LessThanToken,
|
|
15601
|
+
"<=": ts13.SyntaxKind.LessThanEqualsToken,
|
|
15602
|
+
"-": ts13.SyntaxKind.MinusToken,
|
|
15603
|
+
"%": ts13.SyntaxKind.PercentToken,
|
|
15604
|
+
"*": ts13.SyntaxKind.AsteriskToken,
|
|
15605
|
+
"**": ts13.SyntaxKind.AsteriskAsteriskToken,
|
|
15606
|
+
"!=": ts13.SyntaxKind.ExclamationEqualsToken,
|
|
15607
|
+
"!==": ts13.SyntaxKind.ExclamationEqualsEqualsToken,
|
|
15608
|
+
"||": ts13.SyntaxKind.BarBarToken,
|
|
15609
|
+
"+": ts13.SyntaxKind.PlusToken,
|
|
15610
|
+
"??": ts13.SyntaxKind.QuestionQuestionToken,
|
|
15611
|
+
"=": ts13.SyntaxKind.EqualsToken,
|
|
15612
|
+
"+=": ts13.SyntaxKind.PlusEqualsToken,
|
|
15613
|
+
"-=": ts13.SyntaxKind.MinusEqualsToken,
|
|
15614
|
+
"*=": ts13.SyntaxKind.AsteriskEqualsToken,
|
|
15615
|
+
"/=": ts13.SyntaxKind.SlashEqualsToken,
|
|
15616
|
+
"%=": ts13.SyntaxKind.PercentEqualsToken,
|
|
15617
|
+
"**=": ts13.SyntaxKind.AsteriskAsteriskEqualsToken,
|
|
15618
|
+
"&&=": ts13.SyntaxKind.AmpersandAmpersandEqualsToken,
|
|
15619
|
+
"||=": ts13.SyntaxKind.BarBarEqualsToken,
|
|
15620
|
+
"??=": ts13.SyntaxKind.QuestionQuestionEqualsToken,
|
|
15621
|
+
in: ts13.SyntaxKind.InKeyword,
|
|
15622
|
+
instanceof: ts13.SyntaxKind.InstanceOfKeyword
|
|
15453
15623
|
}))();
|
|
15454
15624
|
VAR_TYPES = /* @__PURE__ */ (() => ({
|
|
15455
|
-
const:
|
|
15456
|
-
let:
|
|
15457
|
-
var:
|
|
15625
|
+
const: ts13.NodeFlags.Const,
|
|
15626
|
+
let: ts13.NodeFlags.Let,
|
|
15627
|
+
var: ts13.NodeFlags.None
|
|
15458
15628
|
}))();
|
|
15459
15629
|
constructor(annotateForClosureCompiler) {
|
|
15460
15630
|
this.annotateForClosureCompiler = annotateForClosureCompiler;
|
|
15461
15631
|
}
|
|
15462
15632
|
attachComments = attachComments;
|
|
15463
|
-
createArrayLiteral =
|
|
15633
|
+
createArrayLiteral = ts13.factory.createArrayLiteralExpression;
|
|
15464
15634
|
createAssignment(target, operator, value) {
|
|
15465
|
-
return
|
|
15635
|
+
return ts13.factory.createBinaryExpression(target, this.BINARY_OPERATORS[operator], value);
|
|
15466
15636
|
}
|
|
15467
15637
|
createBinaryExpression(leftOperand, operator, rightOperand) {
|
|
15468
|
-
return
|
|
15638
|
+
return ts13.factory.createBinaryExpression(leftOperand, this.BINARY_OPERATORS[operator], rightOperand);
|
|
15469
15639
|
}
|
|
15470
15640
|
createBlock(body) {
|
|
15471
|
-
return
|
|
15641
|
+
return ts13.factory.createBlock(body);
|
|
15472
15642
|
}
|
|
15473
15643
|
createCallExpression(callee, args, pure) {
|
|
15474
|
-
const call =
|
|
15644
|
+
const call = ts13.factory.createCallExpression(callee, undefined, args);
|
|
15475
15645
|
if (pure) {
|
|
15476
|
-
|
|
15646
|
+
ts13.addSyntheticLeadingComment(call, ts13.SyntaxKind.MultiLineCommentTrivia, this.annotateForClosureCompiler ? "* @pureOrBreakMyCode " /* CLOSURE */ : "@__PURE__" /* TERSER */, false);
|
|
15477
15647
|
}
|
|
15478
15648
|
return call;
|
|
15479
15649
|
}
|
|
15480
15650
|
createConditional(condition, whenTrue, whenFalse) {
|
|
15481
|
-
return
|
|
15651
|
+
return ts13.factory.createConditionalExpression(condition, undefined, whenTrue, undefined, whenFalse);
|
|
15482
15652
|
}
|
|
15483
|
-
createElementAccess =
|
|
15484
|
-
createExpressionStatement =
|
|
15653
|
+
createElementAccess = ts13.factory.createElementAccessExpression;
|
|
15654
|
+
createExpressionStatement = ts13.factory.createExpressionStatement;
|
|
15485
15655
|
createDynamicImport(url) {
|
|
15486
|
-
return
|
|
15487
|
-
typeof url === "string" ?
|
|
15656
|
+
return ts13.factory.createCallExpression(ts13.factory.createToken(ts13.SyntaxKind.ImportKeyword), undefined, [
|
|
15657
|
+
typeof url === "string" ? ts13.factory.createStringLiteral(url) : url
|
|
15488
15658
|
]);
|
|
15489
15659
|
}
|
|
15490
15660
|
createFunctionDeclaration(functionName, parameters, body) {
|
|
15491
|
-
if (!
|
|
15492
|
-
throw new Error(`Invalid syntax, expected a block, but got ${
|
|
15661
|
+
if (!ts13.isBlock(body)) {
|
|
15662
|
+
throw new Error(`Invalid syntax, expected a block, but got ${ts13.SyntaxKind[body.kind]}.`);
|
|
15493
15663
|
}
|
|
15494
|
-
return
|
|
15664
|
+
return ts13.factory.createFunctionDeclaration(undefined, undefined, functionName, undefined, parameters.map((param) => this.createParameter(param)), undefined, body);
|
|
15495
15665
|
}
|
|
15496
15666
|
createFunctionExpression(functionName, parameters, body) {
|
|
15497
|
-
if (!
|
|
15498
|
-
throw new Error(`Invalid syntax, expected a block, but got ${
|
|
15667
|
+
if (!ts13.isBlock(body)) {
|
|
15668
|
+
throw new Error(`Invalid syntax, expected a block, but got ${ts13.SyntaxKind[body.kind]}.`);
|
|
15499
15669
|
}
|
|
15500
|
-
return
|
|
15670
|
+
return ts13.factory.createFunctionExpression(undefined, undefined, functionName ?? undefined, undefined, parameters.map((param) => this.createParameter(param)), undefined, body);
|
|
15501
15671
|
}
|
|
15502
15672
|
createArrowFunctionExpression(parameters, body) {
|
|
15503
|
-
if (
|
|
15504
|
-
throw new Error(`Invalid syntax, expected a block, but got ${
|
|
15673
|
+
if (ts13.isStatement(body) && !ts13.isBlock(body)) {
|
|
15674
|
+
throw new Error(`Invalid syntax, expected a block, but got ${ts13.SyntaxKind[body.kind]}.`);
|
|
15505
15675
|
}
|
|
15506
|
-
return
|
|
15676
|
+
return ts13.factory.createArrowFunction(undefined, undefined, parameters.map((param) => this.createParameter(param)), undefined, undefined, body);
|
|
15507
15677
|
}
|
|
15508
15678
|
createParameter(param) {
|
|
15509
|
-
return
|
|
15679
|
+
return ts13.factory.createParameterDeclaration(undefined, undefined, param.name, undefined, param.type ?? undefined);
|
|
15510
15680
|
}
|
|
15511
|
-
createIdentifier =
|
|
15681
|
+
createIdentifier = ts13.factory.createIdentifier;
|
|
15512
15682
|
createIfStatement(condition, thenStatement, elseStatement) {
|
|
15513
|
-
return
|
|
15683
|
+
return ts13.factory.createIfStatement(condition, thenStatement, elseStatement ?? undefined);
|
|
15514
15684
|
}
|
|
15515
15685
|
createLiteral(value) {
|
|
15516
15686
|
if (value === undefined) {
|
|
15517
|
-
return
|
|
15687
|
+
return ts13.factory.createIdentifier("undefined");
|
|
15518
15688
|
} else if (value === null) {
|
|
15519
|
-
return
|
|
15689
|
+
return ts13.factory.createNull();
|
|
15520
15690
|
} else if (typeof value === "boolean") {
|
|
15521
|
-
return value ?
|
|
15691
|
+
return value ? ts13.factory.createTrue() : ts13.factory.createFalse();
|
|
15522
15692
|
} else if (typeof value === "number") {
|
|
15523
15693
|
return tsNumericExpression(value);
|
|
15524
15694
|
} else {
|
|
15525
|
-
return
|
|
15695
|
+
return ts13.factory.createStringLiteral(value);
|
|
15526
15696
|
}
|
|
15527
15697
|
}
|
|
15528
15698
|
createNewExpression(expression, args) {
|
|
15529
|
-
return
|
|
15699
|
+
return ts13.factory.createNewExpression(expression, undefined, args);
|
|
15530
15700
|
}
|
|
15531
15701
|
createObjectLiteral(properties) {
|
|
15532
|
-
return
|
|
15702
|
+
return ts13.factory.createObjectLiteralExpression(properties.map((prop) => {
|
|
15533
15703
|
if (prop.kind === "spread") {
|
|
15534
|
-
return
|
|
15704
|
+
return ts13.factory.createSpreadAssignment(prop.expression);
|
|
15535
15705
|
}
|
|
15536
|
-
return
|
|
15706
|
+
return ts13.factory.createPropertyAssignment(prop.quoted ? ts13.factory.createStringLiteral(prop.propertyName) : ts13.factory.createIdentifier(prop.propertyName), prop.value);
|
|
15537
15707
|
}));
|
|
15538
15708
|
}
|
|
15539
|
-
createParenthesizedExpression =
|
|
15540
|
-
createPropertyAccess =
|
|
15541
|
-
createSpreadElement =
|
|
15709
|
+
createParenthesizedExpression = ts13.factory.createParenthesizedExpression;
|
|
15710
|
+
createPropertyAccess = ts13.factory.createPropertyAccessExpression;
|
|
15711
|
+
createSpreadElement = ts13.factory.createSpreadElement;
|
|
15542
15712
|
createReturnStatement(expression) {
|
|
15543
|
-
return
|
|
15713
|
+
return ts13.factory.createReturnStatement(expression ?? undefined);
|
|
15544
15714
|
}
|
|
15545
15715
|
createTaggedTemplate(tag, template) {
|
|
15546
|
-
return
|
|
15716
|
+
return ts13.factory.createTaggedTemplateExpression(tag, undefined, this.createTemplateLiteral(template));
|
|
15547
15717
|
}
|
|
15548
15718
|
createTemplateLiteral(template) {
|
|
15549
15719
|
let templateLiteral;
|
|
@@ -15553,7 +15723,7 @@ class TypeScriptAstFactory {
|
|
|
15553
15723
|
throw new Error("createTemplateLiteral: template has no elements");
|
|
15554
15724
|
}
|
|
15555
15725
|
if (length === 1) {
|
|
15556
|
-
templateLiteral =
|
|
15726
|
+
templateLiteral = ts13.factory.createNoSubstitutionTemplateLiteral(head.cooked, head.raw);
|
|
15557
15727
|
} else {
|
|
15558
15728
|
const spans = [];
|
|
15559
15729
|
for (let i = 1;i < length - 1; i++) {
|
|
@@ -15567,7 +15737,7 @@ class TypeScriptAstFactory {
|
|
|
15567
15737
|
if (range !== null) {
|
|
15568
15738
|
this.setSourceMapRange(middle, range);
|
|
15569
15739
|
}
|
|
15570
|
-
spans.push(
|
|
15740
|
+
spans.push(ts13.factory.createTemplateSpan(expression, middle));
|
|
15571
15741
|
}
|
|
15572
15742
|
const resolvedExpression = template.expressions[length - 2];
|
|
15573
15743
|
const templatePart = template.elements[length - 1];
|
|
@@ -15578,27 +15748,27 @@ class TypeScriptAstFactory {
|
|
|
15578
15748
|
if (templatePart.range !== null) {
|
|
15579
15749
|
this.setSourceMapRange(templateTail, templatePart.range);
|
|
15580
15750
|
}
|
|
15581
|
-
spans.push(
|
|
15582
|
-
templateLiteral =
|
|
15751
|
+
spans.push(ts13.factory.createTemplateSpan(resolvedExpression, templateTail));
|
|
15752
|
+
templateLiteral = ts13.factory.createTemplateExpression(ts13.factory.createTemplateHead(head.cooked, head.raw), spans);
|
|
15583
15753
|
}
|
|
15584
15754
|
if (head.range !== null) {
|
|
15585
15755
|
this.setSourceMapRange(templateLiteral, head.range);
|
|
15586
15756
|
}
|
|
15587
15757
|
return templateLiteral;
|
|
15588
15758
|
}
|
|
15589
|
-
createThrowStatement =
|
|
15590
|
-
createTypeOfExpression =
|
|
15591
|
-
createVoidExpression =
|
|
15759
|
+
createThrowStatement = ts13.factory.createThrowStatement;
|
|
15760
|
+
createTypeOfExpression = ts13.factory.createTypeOfExpression;
|
|
15761
|
+
createVoidExpression = ts13.factory.createVoidExpression;
|
|
15592
15762
|
createUnaryExpression(operator, operand) {
|
|
15593
|
-
return
|
|
15763
|
+
return ts13.factory.createPrefixUnaryExpression(this.UNARY_OPERATORS[operator], operand);
|
|
15594
15764
|
}
|
|
15595
15765
|
createVariableDeclaration(variableName, initializer, variableType, type) {
|
|
15596
|
-
return
|
|
15597
|
-
|
|
15766
|
+
return ts13.factory.createVariableStatement(undefined, ts13.factory.createVariableDeclarationList([
|
|
15767
|
+
ts13.factory.createVariableDeclaration(variableName, undefined, type ?? undefined, initializer ?? undefined)
|
|
15598
15768
|
], this.VAR_TYPES[variableType]));
|
|
15599
15769
|
}
|
|
15600
15770
|
createRegularExpressionLiteral(body, flags) {
|
|
15601
|
-
return
|
|
15771
|
+
return ts13.factory.createRegularExpressionLiteral(`/${body}/${flags ?? ""}`);
|
|
15602
15772
|
}
|
|
15603
15773
|
setSourceMapRange(node, sourceMapRange) {
|
|
15604
15774
|
if (sourceMapRange === null) {
|
|
@@ -15606,10 +15776,10 @@ class TypeScriptAstFactory {
|
|
|
15606
15776
|
}
|
|
15607
15777
|
const url = sourceMapRange.url;
|
|
15608
15778
|
if (!this.externalSourceFiles.has(url)) {
|
|
15609
|
-
this.externalSourceFiles.set(url,
|
|
15779
|
+
this.externalSourceFiles.set(url, ts13.createSourceMapSource(url, sourceMapRange.content, (pos) => pos));
|
|
15610
15780
|
}
|
|
15611
15781
|
const source = this.externalSourceFiles.get(url);
|
|
15612
|
-
|
|
15782
|
+
ts13.setSourceMapRange(node, {
|
|
15613
15783
|
pos: sourceMapRange.start.offset,
|
|
15614
15784
|
end: sourceMapRange.end.offset,
|
|
15615
15785
|
source
|
|
@@ -15619,77 +15789,77 @@ class TypeScriptAstFactory {
|
|
|
15619
15789
|
createBuiltInType(type) {
|
|
15620
15790
|
switch (type) {
|
|
15621
15791
|
case "any":
|
|
15622
|
-
return
|
|
15792
|
+
return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.AnyKeyword);
|
|
15623
15793
|
case "boolean":
|
|
15624
|
-
return
|
|
15794
|
+
return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.BooleanKeyword);
|
|
15625
15795
|
case "number":
|
|
15626
|
-
return
|
|
15796
|
+
return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.NumberKeyword);
|
|
15627
15797
|
case "string":
|
|
15628
|
-
return
|
|
15798
|
+
return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.StringKeyword);
|
|
15629
15799
|
case "function":
|
|
15630
|
-
return
|
|
15800
|
+
return ts13.factory.createTypeReferenceNode(ts13.factory.createIdentifier("Function"));
|
|
15631
15801
|
case "never":
|
|
15632
|
-
return
|
|
15802
|
+
return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.NeverKeyword);
|
|
15633
15803
|
case "unknown":
|
|
15634
|
-
return
|
|
15804
|
+
return ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.UnknownKeyword);
|
|
15635
15805
|
}
|
|
15636
15806
|
}
|
|
15637
15807
|
createExpressionType(expression, typeParams) {
|
|
15638
15808
|
const typeName = getEntityTypeFromExpression(expression);
|
|
15639
|
-
return
|
|
15809
|
+
return ts13.factory.createTypeReferenceNode(typeName, typeParams ?? undefined);
|
|
15640
15810
|
}
|
|
15641
15811
|
createArrayType(elementType) {
|
|
15642
|
-
return
|
|
15812
|
+
return ts13.factory.createArrayTypeNode(elementType);
|
|
15643
15813
|
}
|
|
15644
15814
|
createMapType(valueType) {
|
|
15645
|
-
return
|
|
15646
|
-
|
|
15647
|
-
|
|
15815
|
+
return ts13.factory.createTypeLiteralNode([
|
|
15816
|
+
ts13.factory.createIndexSignature(undefined, [
|
|
15817
|
+
ts13.factory.createParameterDeclaration(undefined, undefined, "key", undefined, ts13.factory.createKeywordTypeNode(ts13.SyntaxKind.StringKeyword))
|
|
15648
15818
|
], valueType)
|
|
15649
15819
|
]);
|
|
15650
15820
|
}
|
|
15651
15821
|
transplantType(type) {
|
|
15652
|
-
if (typeof type.kind === "number" && typeof type.getSourceFile === "function" &&
|
|
15822
|
+
if (typeof type.kind === "number" && typeof type.getSourceFile === "function" && ts13.isTypeNode(type)) {
|
|
15653
15823
|
return type;
|
|
15654
15824
|
}
|
|
15655
15825
|
throw new Error("Attempting to transplant a type node from a non-TypeScript AST: " + type);
|
|
15656
15826
|
}
|
|
15657
15827
|
}
|
|
15658
15828
|
function createTemplateMiddle(cooked, raw) {
|
|
15659
|
-
const node =
|
|
15660
|
-
node.kind =
|
|
15829
|
+
const node = ts13.factory.createTemplateHead(cooked, raw);
|
|
15830
|
+
node.kind = ts13.SyntaxKind.TemplateMiddle;
|
|
15661
15831
|
return node;
|
|
15662
15832
|
}
|
|
15663
15833
|
function createTemplateTail(cooked, raw) {
|
|
15664
|
-
const node =
|
|
15665
|
-
node.kind =
|
|
15834
|
+
const node = ts13.factory.createTemplateHead(cooked, raw);
|
|
15835
|
+
node.kind = ts13.SyntaxKind.TemplateTail;
|
|
15666
15836
|
return node;
|
|
15667
15837
|
}
|
|
15668
15838
|
function attachComments(statement, leadingComments) {
|
|
15669
15839
|
for (const comment of leadingComments) {
|
|
15670
|
-
const commentKind = comment.multiline ?
|
|
15840
|
+
const commentKind = comment.multiline ? ts13.SyntaxKind.MultiLineCommentTrivia : ts13.SyntaxKind.SingleLineCommentTrivia;
|
|
15671
15841
|
if (comment.multiline) {
|
|
15672
|
-
|
|
15842
|
+
ts13.addSyntheticLeadingComment(statement, commentKind, comment.toString(), comment.trailingNewline);
|
|
15673
15843
|
} else {
|
|
15674
15844
|
for (const line of comment.toString().split(`
|
|
15675
15845
|
`)) {
|
|
15676
|
-
|
|
15846
|
+
ts13.addSyntheticLeadingComment(statement, commentKind, line, comment.trailingNewline);
|
|
15677
15847
|
}
|
|
15678
15848
|
}
|
|
15679
15849
|
}
|
|
15680
15850
|
}
|
|
15681
15851
|
function getEntityTypeFromExpression(expression) {
|
|
15682
|
-
if (
|
|
15852
|
+
if (ts13.isIdentifier(expression)) {
|
|
15683
15853
|
return expression;
|
|
15684
15854
|
}
|
|
15685
|
-
if (
|
|
15855
|
+
if (ts13.isPropertyAccessExpression(expression)) {
|
|
15686
15856
|
const left = getEntityTypeFromExpression(expression.expression);
|
|
15687
|
-
if (!
|
|
15857
|
+
if (!ts13.isIdentifier(expression.name)) {
|
|
15688
15858
|
throw new Error(`Unsupported property access for type reference: ${expression.name.text}`);
|
|
15689
15859
|
}
|
|
15690
|
-
return
|
|
15860
|
+
return ts13.factory.createQualifiedName(left, expression.name);
|
|
15691
15861
|
}
|
|
15692
|
-
throw new Error(`Unsupported expression for type reference: ${
|
|
15862
|
+
throw new Error(`Unsupported expression for type reference: ${ts13.SyntaxKind[expression.kind]}`);
|
|
15693
15863
|
}
|
|
15694
15864
|
var init_typescript_ast_factory = __esm(() => {
|
|
15695
15865
|
init_ts_util();
|
|
@@ -15722,9 +15892,9 @@ __export(exports_fastHmrCompiler, {
|
|
|
15722
15892
|
primeComponentFingerprint: () => primeComponentFingerprint,
|
|
15723
15893
|
invalidateFingerprintCache: () => invalidateFingerprintCache
|
|
15724
15894
|
});
|
|
15725
|
-
import { existsSync as existsSync23, readFileSync as
|
|
15895
|
+
import { existsSync as existsSync23, readFileSync as readFileSync19, statSync as statSync2 } from "fs";
|
|
15726
15896
|
import { dirname as dirname15, extname as extname6, relative as relative12, resolve as resolve22 } from "path";
|
|
15727
|
-
import
|
|
15897
|
+
import ts14 from "typescript";
|
|
15728
15898
|
var fail = (reason, detail, location) => ({
|
|
15729
15899
|
ok: false,
|
|
15730
15900
|
reason,
|
|
@@ -15808,23 +15978,23 @@ var fail = (reason, detail, location) => ({
|
|
|
15808
15978
|
}
|
|
15809
15979
|
let sourceFile;
|
|
15810
15980
|
try {
|
|
15811
|
-
sourceFile =
|
|
15981
|
+
sourceFile = ts14.createSourceFile(componentFilePath, source, ts14.ScriptTarget.Latest, true, ts14.ScriptKind.TS);
|
|
15812
15982
|
} catch {
|
|
15813
15983
|
return;
|
|
15814
15984
|
}
|
|
15815
15985
|
for (const stmt of sourceFile.statements) {
|
|
15816
|
-
if (!
|
|
15986
|
+
if (!ts14.isClassDeclaration(stmt))
|
|
15817
15987
|
continue;
|
|
15818
15988
|
const className = stmt.name?.text;
|
|
15819
15989
|
if (!className)
|
|
15820
15990
|
continue;
|
|
15821
|
-
const decorators =
|
|
15991
|
+
const decorators = ts14.getDecorators(stmt) ?? [];
|
|
15822
15992
|
const decoratorName = (() => {
|
|
15823
15993
|
for (const d2 of decorators) {
|
|
15824
|
-
if (!
|
|
15994
|
+
if (!ts14.isCallExpression(d2.expression))
|
|
15825
15995
|
continue;
|
|
15826
15996
|
const expr = d2.expression.expression;
|
|
15827
|
-
if (!
|
|
15997
|
+
if (!ts14.isIdentifier(expr))
|
|
15828
15998
|
continue;
|
|
15829
15999
|
if (expr.text === "Component" || expr.text === "Directive" || expr.text === "Pipe" || expr.text === "Injectable") {
|
|
15830
16000
|
return expr.text;
|
|
@@ -15838,16 +16008,16 @@ var fail = (reason, detail, location) => ({
|
|
|
15838
16008
|
const id = encodeURIComponent(`${projectRel}@${className}`);
|
|
15839
16009
|
if (decoratorName === "Component") {
|
|
15840
16010
|
const componentDecorator = decorators.find((d2) => {
|
|
15841
|
-
if (!
|
|
16011
|
+
if (!ts14.isCallExpression(d2.expression))
|
|
15842
16012
|
return false;
|
|
15843
16013
|
const expr = d2.expression.expression;
|
|
15844
|
-
return
|
|
16014
|
+
return ts14.isIdentifier(expr) && expr.text === "Component";
|
|
15845
16015
|
});
|
|
15846
16016
|
if (!componentDecorator)
|
|
15847
16017
|
continue;
|
|
15848
16018
|
const decoratorCall = componentDecorator.expression;
|
|
15849
16019
|
const args = decoratorCall.arguments[0];
|
|
15850
|
-
if (!args || !
|
|
16020
|
+
if (!args || !ts14.isObjectLiteralExpression(args))
|
|
15851
16021
|
continue;
|
|
15852
16022
|
const decoratorMeta = readDecoratorMeta(args);
|
|
15853
16023
|
const { inputs, outputs } = extractInputsAndOutputs(stmt, null);
|
|
@@ -15881,11 +16051,11 @@ var fail = (reason, detail, location) => ({
|
|
|
15881
16051
|
return false;
|
|
15882
16052
|
return true;
|
|
15883
16053
|
}, ENTITY_DECORATOR_NAMES, findEntityDecorator = (cls) => {
|
|
15884
|
-
for (const dec of
|
|
16054
|
+
for (const dec of ts14.getDecorators(cls) ?? []) {
|
|
15885
16055
|
const expr = dec.expression;
|
|
15886
|
-
if (!
|
|
16056
|
+
if (!ts14.isCallExpression(expr))
|
|
15887
16057
|
continue;
|
|
15888
|
-
if (!
|
|
16058
|
+
if (!ts14.isIdentifier(expr.expression))
|
|
15889
16059
|
continue;
|
|
15890
16060
|
if (ENTITY_DECORATOR_NAMES.has(expr.expression.text))
|
|
15891
16061
|
return dec;
|
|
@@ -15903,18 +16073,18 @@ var fail = (reason, detail, location) => ({
|
|
|
15903
16073
|
}
|
|
15904
16074
|
const ctorParamTypes = [];
|
|
15905
16075
|
for (const member of cls.members) {
|
|
15906
|
-
if (!
|
|
16076
|
+
if (!ts14.isConstructorDeclaration(member))
|
|
15907
16077
|
continue;
|
|
15908
16078
|
for (const param of member.parameters) {
|
|
15909
16079
|
const typeText = param.type ? param.type.getText() : "";
|
|
15910
|
-
const decorators =
|
|
16080
|
+
const decorators = ts14.getDecorators(param) ?? [];
|
|
15911
16081
|
const decoratorSig = decorators.length === 0 ? "" : decorators.map((d2) => {
|
|
15912
16082
|
const e = d2.expression;
|
|
15913
|
-
if (
|
|
16083
|
+
if (ts14.isCallExpression(e) && ts14.isIdentifier(e.expression)) {
|
|
15914
16084
|
const args = e.arguments.map((a) => a.getText()).join(",");
|
|
15915
16085
|
return `@${e.expression.text}(${args})`;
|
|
15916
16086
|
}
|
|
15917
|
-
if (
|
|
16087
|
+
if (ts14.isIdentifier(e))
|
|
15918
16088
|
return `@${e.text}`;
|
|
15919
16089
|
return "@<unknown>";
|
|
15920
16090
|
}).join("");
|
|
@@ -15936,23 +16106,23 @@ var fail = (reason, detail, location) => ({
|
|
|
15936
16106
|
const walk = (node) => {
|
|
15937
16107
|
if (found)
|
|
15938
16108
|
return;
|
|
15939
|
-
if (
|
|
16109
|
+
if (ts14.isClassDeclaration(node) && node.name?.text === className) {
|
|
15940
16110
|
found = node;
|
|
15941
16111
|
return;
|
|
15942
16112
|
}
|
|
15943
|
-
|
|
16113
|
+
ts14.forEachChild(node, walk);
|
|
15944
16114
|
};
|
|
15945
16115
|
walk(sourceFile);
|
|
15946
16116
|
return found;
|
|
15947
16117
|
}, getClassDecorators = (cls) => {
|
|
15948
|
-
const modifiers =
|
|
16118
|
+
const modifiers = ts14.getDecorators(cls) ?? [];
|
|
15949
16119
|
return [...modifiers];
|
|
15950
16120
|
}, findComponentDecorator = (cls) => {
|
|
15951
16121
|
for (const decorator of getClassDecorators(cls)) {
|
|
15952
16122
|
const expr = decorator.expression;
|
|
15953
|
-
if (
|
|
16123
|
+
if (ts14.isCallExpression(expr)) {
|
|
15954
16124
|
const fn2 = expr.expression;
|
|
15955
|
-
if (
|
|
16125
|
+
if (ts14.isIdentifier(fn2) && fn2.text === "Component") {
|
|
15956
16126
|
return decorator;
|
|
15957
16127
|
}
|
|
15958
16128
|
}
|
|
@@ -15960,15 +16130,15 @@ var fail = (reason, detail, location) => ({
|
|
|
15960
16130
|
return null;
|
|
15961
16131
|
}, getDecoratorArgsObject = (decorator) => {
|
|
15962
16132
|
const call = decorator.expression;
|
|
15963
|
-
if (!
|
|
16133
|
+
if (!ts14.isCallExpression(call))
|
|
15964
16134
|
return null;
|
|
15965
16135
|
const arg = call.arguments[0];
|
|
15966
|
-
if (!arg || !
|
|
16136
|
+
if (!arg || !ts14.isObjectLiteralExpression(arg))
|
|
15967
16137
|
return null;
|
|
15968
16138
|
return arg;
|
|
15969
16139
|
}, getProperty = (obj, name) => {
|
|
15970
16140
|
for (const prop of obj.properties) {
|
|
15971
|
-
if (
|
|
16141
|
+
if (ts14.isPropertyAssignment(prop) && (ts14.isIdentifier(prop.name) && prop.name.text === name || ts14.isStringLiteral(prop.name) && prop.name.text === name)) {
|
|
15972
16142
|
return prop.initializer;
|
|
15973
16143
|
}
|
|
15974
16144
|
}
|
|
@@ -15977,7 +16147,7 @@ var fail = (reason, detail, location) => ({
|
|
|
15977
16147
|
const expr = getProperty(obj, name);
|
|
15978
16148
|
if (!expr)
|
|
15979
16149
|
return null;
|
|
15980
|
-
if (
|
|
16150
|
+
if (ts14.isStringLiteral(expr) || ts14.isNoSubstitutionTemplateLiteral(expr)) {
|
|
15981
16151
|
return expr.text;
|
|
15982
16152
|
}
|
|
15983
16153
|
return null;
|
|
@@ -15985,22 +16155,22 @@ var fail = (reason, detail, location) => ({
|
|
|
15985
16155
|
const expr = getProperty(obj, name);
|
|
15986
16156
|
if (!expr)
|
|
15987
16157
|
return null;
|
|
15988
|
-
if (expr.kind ===
|
|
16158
|
+
if (expr.kind === ts14.SyntaxKind.TrueKeyword)
|
|
15989
16159
|
return true;
|
|
15990
|
-
if (expr.kind ===
|
|
16160
|
+
if (expr.kind === ts14.SyntaxKind.FalseKeyword)
|
|
15991
16161
|
return false;
|
|
15992
16162
|
return null;
|
|
15993
16163
|
}, isAngularDecoratorIdentifier = (name) => name === "Component" || name === "Directive" || name === "Pipe" || name === "Injectable", classHasAngularDecorator = (cls) => {
|
|
15994
|
-
for (const dec of
|
|
16164
|
+
for (const dec of ts14.getDecorators(cls) ?? []) {
|
|
15995
16165
|
const expr = dec.expression;
|
|
15996
|
-
if (
|
|
16166
|
+
if (ts14.isCallExpression(expr) && ts14.isIdentifier(expr.expression) && isAngularDecoratorIdentifier(expr.expression.text)) {
|
|
15997
16167
|
return true;
|
|
15998
16168
|
}
|
|
15999
16169
|
}
|
|
16000
16170
|
return false;
|
|
16001
16171
|
}, findClassInSourceFile = (sf, className) => {
|
|
16002
16172
|
for (const stmt of sf.statements) {
|
|
16003
|
-
if (
|
|
16173
|
+
if (ts14.isClassDeclaration(stmt) && stmt.name?.text === className) {
|
|
16004
16174
|
return stmt;
|
|
16005
16175
|
}
|
|
16006
16176
|
}
|
|
@@ -16010,15 +16180,15 @@ var fail = (reason, detail, location) => ({
|
|
|
16010
16180
|
if (sameFile)
|
|
16011
16181
|
return classHasAngularDecorator(sameFile);
|
|
16012
16182
|
for (const stmt of sourceFile.statements) {
|
|
16013
|
-
if (!
|
|
16183
|
+
if (!ts14.isImportDeclaration(stmt))
|
|
16014
16184
|
continue;
|
|
16015
|
-
if (!
|
|
16185
|
+
if (!ts14.isStringLiteral(stmt.moduleSpecifier))
|
|
16016
16186
|
continue;
|
|
16017
16187
|
const clause = stmt.importClause;
|
|
16018
16188
|
if (!clause || clause.isTypeOnly)
|
|
16019
16189
|
continue;
|
|
16020
16190
|
const named = clause.namedBindings;
|
|
16021
|
-
if (!named || !
|
|
16191
|
+
if (!named || !ts14.isNamedImports(named))
|
|
16022
16192
|
continue;
|
|
16023
16193
|
const found = named.elements.find((el) => el.name.text === parentClassName);
|
|
16024
16194
|
if (!found)
|
|
@@ -16039,11 +16209,11 @@ var fail = (reason, detail, location) => ({
|
|
|
16039
16209
|
continue;
|
|
16040
16210
|
let content;
|
|
16041
16211
|
try {
|
|
16042
|
-
content =
|
|
16212
|
+
content = readFileSync19(candidate, "utf-8");
|
|
16043
16213
|
} catch {
|
|
16044
16214
|
continue;
|
|
16045
16215
|
}
|
|
16046
|
-
const parentSf =
|
|
16216
|
+
const parentSf = ts14.createSourceFile(candidate, content, ts14.ScriptTarget.Latest, true);
|
|
16047
16217
|
const parentCls = findClassInSourceFile(parentSf, parentClassName);
|
|
16048
16218
|
if (!parentCls)
|
|
16049
16219
|
continue;
|
|
@@ -16055,11 +16225,11 @@ var fail = (reason, detail, location) => ({
|
|
|
16055
16225
|
}, inheritsDecoratedClass = (cls, sourceFile, componentDir, projectRoot) => {
|
|
16056
16226
|
const heritage = cls.heritageClauses ?? [];
|
|
16057
16227
|
for (const clause of heritage) {
|
|
16058
|
-
if (clause.token !==
|
|
16228
|
+
if (clause.token !== ts14.SyntaxKind.ExtendsKeyword)
|
|
16059
16229
|
continue;
|
|
16060
16230
|
for (const typeNode of clause.types) {
|
|
16061
16231
|
const expr = typeNode.expression;
|
|
16062
|
-
if (!
|
|
16232
|
+
if (!ts14.isIdentifier(expr)) {
|
|
16063
16233
|
return true;
|
|
16064
16234
|
}
|
|
16065
16235
|
if (parentHasAngularDecoratorAcrossFiles(expr.text, sourceFile, componentDir, projectRoot)) {
|
|
@@ -16070,18 +16240,18 @@ var fail = (reason, detail, location) => ({
|
|
|
16070
16240
|
return false;
|
|
16071
16241
|
}, CONTROL_CREATE_METHOD_NAME = "\u0275ngControlCreate", extractControlCreate = (cls) => {
|
|
16072
16242
|
for (const member of cls.members) {
|
|
16073
|
-
if (!
|
|
16243
|
+
if (!ts14.isMethodDeclaration(member))
|
|
16074
16244
|
continue;
|
|
16075
|
-
if (member.modifiers?.some((m) => m.kind ===
|
|
16245
|
+
if (member.modifiers?.some((m) => m.kind === ts14.SyntaxKind.StaticKeyword))
|
|
16076
16246
|
continue;
|
|
16077
16247
|
const name = member.name;
|
|
16078
16248
|
if (name === undefined)
|
|
16079
16249
|
continue;
|
|
16080
|
-
const nameText =
|
|
16250
|
+
const nameText = ts14.isIdentifier(name) ? name.text : name.getText();
|
|
16081
16251
|
if (nameText !== CONTROL_CREATE_METHOD_NAME)
|
|
16082
16252
|
continue;
|
|
16083
16253
|
const firstParam = member.parameters[0];
|
|
16084
|
-
if (firstParam === undefined || firstParam.type === undefined || !
|
|
16254
|
+
if (firstParam === undefined || firstParam.type === undefined || !ts14.isTypeReferenceNode(firstParam.type)) {
|
|
16085
16255
|
return { passThroughInput: null };
|
|
16086
16256
|
}
|
|
16087
16257
|
const typeArgs = firstParam.type.typeArguments;
|
|
@@ -16089,16 +16259,16 @@ var fail = (reason, detail, location) => ({
|
|
|
16089
16259
|
return { passThroughInput: null };
|
|
16090
16260
|
}
|
|
16091
16261
|
const arg = typeArgs[0];
|
|
16092
|
-
if (arg === undefined || !
|
|
16262
|
+
if (arg === undefined || !ts14.isLiteralTypeNode(arg) || !ts14.isStringLiteral(arg.literal)) {
|
|
16093
16263
|
return { passThroughInput: null };
|
|
16094
16264
|
}
|
|
16095
16265
|
return { passThroughInput: arg.literal.text };
|
|
16096
16266
|
}
|
|
16097
16267
|
return null;
|
|
16098
16268
|
}, resolveEnumPropertyAccess = (expr, enumName, values) => {
|
|
16099
|
-
if (!
|
|
16269
|
+
if (!ts14.isPropertyAccessExpression(expr))
|
|
16100
16270
|
return null;
|
|
16101
|
-
if (!
|
|
16271
|
+
if (!ts14.isIdentifier(expr.expression))
|
|
16102
16272
|
return null;
|
|
16103
16273
|
if (expr.expression.text !== enumName)
|
|
16104
16274
|
return null;
|
|
@@ -16117,21 +16287,21 @@ var fail = (reason, detail, location) => ({
|
|
|
16117
16287
|
const hostExpr = getProperty(args, "host");
|
|
16118
16288
|
const schemasExpr = getProperty(args, "schemas");
|
|
16119
16289
|
const styleUrls = [];
|
|
16120
|
-
if (styleUrlsExpr &&
|
|
16290
|
+
if (styleUrlsExpr && ts14.isArrayLiteralExpression(styleUrlsExpr)) {
|
|
16121
16291
|
for (const el of styleUrlsExpr.elements) {
|
|
16122
|
-
if (
|
|
16292
|
+
if (ts14.isStringLiteral(el))
|
|
16123
16293
|
styleUrls.push(el.text);
|
|
16124
16294
|
}
|
|
16125
16295
|
}
|
|
16126
16296
|
const styles = [];
|
|
16127
16297
|
if (stylesExpr) {
|
|
16128
|
-
if (
|
|
16298
|
+
if (ts14.isArrayLiteralExpression(stylesExpr)) {
|
|
16129
16299
|
for (const el of stylesExpr.elements) {
|
|
16130
|
-
if (
|
|
16300
|
+
if (ts14.isStringLiteral(el) || ts14.isNoSubstitutionTemplateLiteral(el)) {
|
|
16131
16301
|
styles.push(el.text);
|
|
16132
16302
|
}
|
|
16133
16303
|
}
|
|
16134
|
-
} else if (
|
|
16304
|
+
} else if (ts14.isStringLiteral(stylesExpr) || ts14.isNoSubstitutionTemplateLiteral(stylesExpr)) {
|
|
16135
16305
|
styles.push(stylesExpr.text);
|
|
16136
16306
|
}
|
|
16137
16307
|
}
|
|
@@ -16144,15 +16314,15 @@ var fail = (reason, detail, location) => ({
|
|
|
16144
16314
|
encapsulation,
|
|
16145
16315
|
hasProviders: getProperty(args, "providers") !== null,
|
|
16146
16316
|
hasViewProviders: getProperty(args, "viewProviders") !== null,
|
|
16147
|
-
importsExpr: importsExpr &&
|
|
16148
|
-
hostDirectivesExpr: hostDirectivesExpr &&
|
|
16149
|
-
animationsExpr: animationsExpr &&
|
|
16150
|
-
providersExpr: providersExpr &&
|
|
16151
|
-
viewProvidersExpr: viewProvidersExpr &&
|
|
16152
|
-
inputsArrayExpr: inputsArrayExpr &&
|
|
16153
|
-
outputsArrayExpr: outputsArrayExpr &&
|
|
16154
|
-
hostExpr: hostExpr &&
|
|
16155
|
-
schemasExpr: schemasExpr &&
|
|
16317
|
+
importsExpr: importsExpr && ts14.isArrayLiteralExpression(importsExpr) ? importsExpr : null,
|
|
16318
|
+
hostDirectivesExpr: hostDirectivesExpr && ts14.isArrayLiteralExpression(hostDirectivesExpr) ? hostDirectivesExpr : null,
|
|
16319
|
+
animationsExpr: animationsExpr && ts14.isArrayLiteralExpression(animationsExpr) ? animationsExpr : null,
|
|
16320
|
+
providersExpr: providersExpr && ts14.isArrayLiteralExpression(providersExpr) ? providersExpr : null,
|
|
16321
|
+
viewProvidersExpr: viewProvidersExpr && ts14.isArrayLiteralExpression(viewProvidersExpr) ? viewProvidersExpr : null,
|
|
16322
|
+
inputsArrayExpr: inputsArrayExpr && ts14.isArrayLiteralExpression(inputsArrayExpr) ? inputsArrayExpr : null,
|
|
16323
|
+
outputsArrayExpr: outputsArrayExpr && ts14.isArrayLiteralExpression(outputsArrayExpr) ? outputsArrayExpr : null,
|
|
16324
|
+
hostExpr: hostExpr && ts14.isObjectLiteralExpression(hostExpr) ? hostExpr : null,
|
|
16325
|
+
schemasExpr: schemasExpr && ts14.isArrayLiteralExpression(schemasExpr) ? schemasExpr : null,
|
|
16156
16326
|
preserveWhitespaces: getBooleanProperty(args, "preserveWhitespaces") ?? projectDefaults.preserveWhitespaces ?? false,
|
|
16157
16327
|
selector: getStringProperty(args, "selector"),
|
|
16158
16328
|
standalone: getBooleanProperty(args, "standalone") ?? true,
|
|
@@ -16163,13 +16333,13 @@ var fail = (reason, detail, location) => ({
|
|
|
16163
16333
|
templateUrl: getStringProperty(args, "templateUrl")
|
|
16164
16334
|
};
|
|
16165
16335
|
}, extractDecoratorInput = (prop, compiler) => {
|
|
16166
|
-
const decorators =
|
|
16336
|
+
const decorators = ts14.getDecorators(prop) ?? [];
|
|
16167
16337
|
for (const decorator of decorators) {
|
|
16168
16338
|
const expr = decorator.expression;
|
|
16169
|
-
if (!
|
|
16339
|
+
if (!ts14.isCallExpression(expr))
|
|
16170
16340
|
continue;
|
|
16171
16341
|
const fn2 = expr.expression;
|
|
16172
|
-
if (!
|
|
16342
|
+
if (!ts14.isIdentifier(fn2) || fn2.text !== "Input")
|
|
16173
16343
|
continue;
|
|
16174
16344
|
const classPropertyName = prop.name.getText();
|
|
16175
16345
|
let bindingPropertyName = classPropertyName;
|
|
@@ -16177,9 +16347,9 @@ var fail = (reason, detail, location) => ({
|
|
|
16177
16347
|
let transformFunction = null;
|
|
16178
16348
|
const arg = expr.arguments[0];
|
|
16179
16349
|
if (arg) {
|
|
16180
|
-
if (
|
|
16350
|
+
if (ts14.isStringLiteral(arg)) {
|
|
16181
16351
|
bindingPropertyName = arg.text;
|
|
16182
|
-
} else if (
|
|
16352
|
+
} else if (ts14.isObjectLiteralExpression(arg)) {
|
|
16183
16353
|
const aliasNode = getStringProperty(arg, "alias");
|
|
16184
16354
|
if (aliasNode !== null)
|
|
16185
16355
|
bindingPropertyName = aliasNode;
|
|
@@ -16203,11 +16373,11 @@ var fail = (reason, detail, location) => ({
|
|
|
16203
16373
|
}
|
|
16204
16374
|
return null;
|
|
16205
16375
|
}, isInputSignalCall = (init) => {
|
|
16206
|
-
if (
|
|
16376
|
+
if (ts14.isCallExpression(init)) {
|
|
16207
16377
|
const fn2 = init.expression;
|
|
16208
|
-
if (
|
|
16378
|
+
if (ts14.isIdentifier(fn2) && fn2.text === "input")
|
|
16209
16379
|
return true;
|
|
16210
|
-
if (
|
|
16380
|
+
if (ts14.isPropertyAccessExpression(fn2) && ts14.isIdentifier(fn2.expression) && fn2.expression.text === "input") {
|
|
16211
16381
|
return true;
|
|
16212
16382
|
}
|
|
16213
16383
|
}
|
|
@@ -16218,13 +16388,13 @@ var fail = (reason, detail, location) => ({
|
|
|
16218
16388
|
const classPropertyName = prop.name.getText();
|
|
16219
16389
|
const call = prop.initializer;
|
|
16220
16390
|
let required = false;
|
|
16221
|
-
if (
|
|
16391
|
+
if (ts14.isPropertyAccessExpression(call.expression) && ts14.isIdentifier(call.expression.name) && call.expression.name.text === "required") {
|
|
16222
16392
|
required = true;
|
|
16223
16393
|
}
|
|
16224
16394
|
let bindingPropertyName = classPropertyName;
|
|
16225
16395
|
let transformFunction = null;
|
|
16226
16396
|
const optsArg = call.arguments[required ? 0 : 1];
|
|
16227
|
-
if (optsArg &&
|
|
16397
|
+
if (optsArg && ts14.isObjectLiteralExpression(optsArg)) {
|
|
16228
16398
|
const aliasNode = getStringProperty(optsArg, "alias");
|
|
16229
16399
|
if (aliasNode !== null)
|
|
16230
16400
|
bindingPropertyName = aliasNode;
|
|
@@ -16244,28 +16414,28 @@ var fail = (reason, detail, location) => ({
|
|
|
16244
16414
|
}
|
|
16245
16415
|
};
|
|
16246
16416
|
}, extractDecoratorOutput = (prop) => {
|
|
16247
|
-
const decorators =
|
|
16417
|
+
const decorators = ts14.getDecorators(prop) ?? [];
|
|
16248
16418
|
for (const decorator of decorators) {
|
|
16249
16419
|
const expr = decorator.expression;
|
|
16250
|
-
if (!
|
|
16420
|
+
if (!ts14.isCallExpression(expr))
|
|
16251
16421
|
continue;
|
|
16252
16422
|
const fn2 = expr.expression;
|
|
16253
|
-
if (!
|
|
16423
|
+
if (!ts14.isIdentifier(fn2) || fn2.text !== "Output")
|
|
16254
16424
|
continue;
|
|
16255
16425
|
const classPropertyName = prop.name.getText();
|
|
16256
16426
|
let bindingName = classPropertyName;
|
|
16257
16427
|
const arg = expr.arguments[0];
|
|
16258
|
-
if (arg &&
|
|
16428
|
+
if (arg && ts14.isStringLiteral(arg))
|
|
16259
16429
|
bindingName = arg.text;
|
|
16260
16430
|
return { classPropertyName, bindingName };
|
|
16261
16431
|
}
|
|
16262
16432
|
return null;
|
|
16263
16433
|
}, isOutputSignalCall = (init) => {
|
|
16264
|
-
if (
|
|
16434
|
+
if (ts14.isCallExpression(init)) {
|
|
16265
16435
|
const fn2 = init.expression;
|
|
16266
|
-
if (
|
|
16436
|
+
if (ts14.isIdentifier(fn2) && fn2.text === "output")
|
|
16267
16437
|
return true;
|
|
16268
|
-
if (
|
|
16438
|
+
if (ts14.isPropertyAccessExpression(fn2) && ts14.isIdentifier(fn2.expression) && fn2.expression.text === "output") {
|
|
16269
16439
|
return true;
|
|
16270
16440
|
}
|
|
16271
16441
|
}
|
|
@@ -16277,7 +16447,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16277
16447
|
const call = prop.initializer;
|
|
16278
16448
|
let bindingName = classPropertyName;
|
|
16279
16449
|
const optsArg = call.arguments[0];
|
|
16280
|
-
if (optsArg &&
|
|
16450
|
+
if (optsArg && ts14.isObjectLiteralExpression(optsArg)) {
|
|
16281
16451
|
const aliasNode = getStringProperty(optsArg, "alias");
|
|
16282
16452
|
if (aliasNode !== null)
|
|
16283
16453
|
bindingName = aliasNode;
|
|
@@ -16289,7 +16459,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16289
16459
|
let hasDecoratorIO = false;
|
|
16290
16460
|
let hasSignalIO = false;
|
|
16291
16461
|
for (const member of cls.members) {
|
|
16292
|
-
if (!
|
|
16462
|
+
if (!ts14.isPropertyDeclaration(member))
|
|
16293
16463
|
continue;
|
|
16294
16464
|
const decoratorIn = extractDecoratorInput(member, compiler);
|
|
16295
16465
|
if (decoratorIn) {
|
|
@@ -16323,21 +16493,21 @@ var fail = (reason, detail, location) => ({
|
|
|
16323
16493
|
specialAttributes: {}
|
|
16324
16494
|
}), parseHostObjectInto = (host, args, hostExprNode, compiler) => {
|
|
16325
16495
|
const hostNode = getProperty(args, "host");
|
|
16326
|
-
if (!hostNode || !
|
|
16496
|
+
if (!hostNode || !ts14.isObjectLiteralExpression(hostNode)) {
|
|
16327
16497
|
if (!hostExprNode)
|
|
16328
16498
|
return;
|
|
16329
16499
|
}
|
|
16330
|
-
const obj = hostNode &&
|
|
16500
|
+
const obj = hostNode && ts14.isObjectLiteralExpression(hostNode) ? hostNode : hostExprNode;
|
|
16331
16501
|
if (!obj)
|
|
16332
16502
|
return;
|
|
16333
16503
|
for (const prop of obj.properties) {
|
|
16334
|
-
if (!
|
|
16504
|
+
if (!ts14.isPropertyAssignment(prop))
|
|
16335
16505
|
continue;
|
|
16336
16506
|
const keyNode = prop.name;
|
|
16337
16507
|
let key;
|
|
16338
|
-
if (
|
|
16508
|
+
if (ts14.isStringLiteral(keyNode) || ts14.isNoSubstitutionTemplateLiteral(keyNode)) {
|
|
16339
16509
|
key = keyNode.text;
|
|
16340
|
-
} else if (
|
|
16510
|
+
} else if (ts14.isIdentifier(keyNode)) {
|
|
16341
16511
|
key = keyNode.text;
|
|
16342
16512
|
} else {
|
|
16343
16513
|
continue;
|
|
@@ -16354,36 +16524,36 @@ var fail = (reason, detail, location) => ({
|
|
|
16354
16524
|
}
|
|
16355
16525
|
}, mergeMemberHostDecorators = (host, cls) => {
|
|
16356
16526
|
for (const member of cls.members) {
|
|
16357
|
-
if (!
|
|
16527
|
+
if (!ts14.canHaveDecorators(member))
|
|
16358
16528
|
continue;
|
|
16359
|
-
const decorators =
|
|
16529
|
+
const decorators = ts14.getDecorators(member) ?? [];
|
|
16360
16530
|
for (const dec of decorators) {
|
|
16361
16531
|
const expr = dec.expression;
|
|
16362
|
-
if (!
|
|
16532
|
+
if (!ts14.isCallExpression(expr))
|
|
16363
16533
|
continue;
|
|
16364
16534
|
const fn2 = expr.expression;
|
|
16365
|
-
if (!
|
|
16535
|
+
if (!ts14.isIdentifier(fn2))
|
|
16366
16536
|
continue;
|
|
16367
16537
|
if (fn2.text === "HostBinding") {
|
|
16368
|
-
if (!
|
|
16538
|
+
if (!ts14.isPropertyDeclaration(member) && !ts14.isGetAccessor(member))
|
|
16369
16539
|
continue;
|
|
16370
16540
|
const propertyName = member.name.text;
|
|
16371
16541
|
const target = expr.arguments[0];
|
|
16372
|
-
const key = target &&
|
|
16542
|
+
const key = target && ts14.isStringLiteral(target) ? target.text : propertyName;
|
|
16373
16543
|
host.properties[key] = propertyName;
|
|
16374
16544
|
} else if (fn2.text === "HostListener") {
|
|
16375
|
-
if (!
|
|
16545
|
+
if (!ts14.isMethodDeclaration(member))
|
|
16376
16546
|
continue;
|
|
16377
16547
|
const methodName = member.name.text;
|
|
16378
16548
|
const eventArg = expr.arguments[0];
|
|
16379
|
-
if (!eventArg || !
|
|
16549
|
+
if (!eventArg || !ts14.isStringLiteral(eventArg))
|
|
16380
16550
|
continue;
|
|
16381
16551
|
const event = eventArg.text;
|
|
16382
16552
|
const argsArg = expr.arguments[1];
|
|
16383
16553
|
let argsList = [];
|
|
16384
|
-
if (argsArg &&
|
|
16554
|
+
if (argsArg && ts14.isArrayLiteralExpression(argsArg)) {
|
|
16385
16555
|
for (const el of argsArg.elements) {
|
|
16386
|
-
if (
|
|
16556
|
+
if (ts14.isStringLiteral(el))
|
|
16387
16557
|
argsList.push(el.text);
|
|
16388
16558
|
}
|
|
16389
16559
|
}
|
|
@@ -16396,14 +16566,14 @@ var fail = (reason, detail, location) => ({
|
|
|
16396
16566
|
let descendants = true;
|
|
16397
16567
|
let emitDistinctChangesOnly = true;
|
|
16398
16568
|
const opts = args[1];
|
|
16399
|
-
if (opts &&
|
|
16569
|
+
if (opts && ts14.isObjectLiteralExpression(opts)) {
|
|
16400
16570
|
static_ = getBooleanProperty(opts, "static") ?? false;
|
|
16401
16571
|
descendants = getBooleanProperty(opts, "descendants") ?? true;
|
|
16402
16572
|
emitDistinctChangesOnly = getBooleanProperty(opts, "emitDistinctChangesOnly") ?? true;
|
|
16403
16573
|
}
|
|
16404
16574
|
return { static_, descendants, emitDistinctChangesOnly };
|
|
16405
16575
|
}, queryPredicateFromArg = (arg, compiler) => {
|
|
16406
|
-
if (
|
|
16576
|
+
if (ts14.isStringLiteral(arg)) {
|
|
16407
16577
|
return arg.text.split(",").map((s2) => s2.trim()).filter(Boolean);
|
|
16408
16578
|
}
|
|
16409
16579
|
return {
|
|
@@ -16414,15 +16584,15 @@ var fail = (reason, detail, location) => ({
|
|
|
16414
16584
|
const contentQueries = [];
|
|
16415
16585
|
const viewQueries = [];
|
|
16416
16586
|
for (const member of cls.members) {
|
|
16417
|
-
if (!
|
|
16587
|
+
if (!ts14.isPropertyDeclaration(member))
|
|
16418
16588
|
continue;
|
|
16419
|
-
const decorators =
|
|
16589
|
+
const decorators = ts14.getDecorators(member) ?? [];
|
|
16420
16590
|
for (const dec of decorators) {
|
|
16421
16591
|
const expr = dec.expression;
|
|
16422
|
-
if (!
|
|
16592
|
+
if (!ts14.isCallExpression(expr))
|
|
16423
16593
|
continue;
|
|
16424
16594
|
const fn2 = expr.expression;
|
|
16425
|
-
if (!
|
|
16595
|
+
if (!ts14.isIdentifier(fn2) || !QUERY_DECORATORS.has(fn2.text))
|
|
16426
16596
|
continue;
|
|
16427
16597
|
const propertyName = member.name.text;
|
|
16428
16598
|
const tokenArg = expr.arguments[0];
|
|
@@ -16434,7 +16604,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16434
16604
|
const { static_, descendants, emitDistinctChangesOnly } = parseQueryDecoratorOptions(expr.arguments);
|
|
16435
16605
|
const opts = expr.arguments[1];
|
|
16436
16606
|
let read = null;
|
|
16437
|
-
if (opts &&
|
|
16607
|
+
if (opts && ts14.isObjectLiteralExpression(opts)) {
|
|
16438
16608
|
const readNode = getProperty(opts, "read");
|
|
16439
16609
|
if (readNode) {
|
|
16440
16610
|
read = new compiler.WrappedNodeExpr(readNode);
|
|
@@ -16462,15 +16632,15 @@ var fail = (reason, detail, location) => ({
|
|
|
16462
16632
|
const contentQueries = [];
|
|
16463
16633
|
const viewQueries = [];
|
|
16464
16634
|
for (const member of cls.members) {
|
|
16465
|
-
if (!
|
|
16635
|
+
if (!ts14.isPropertyDeclaration(member) || !member.initializer)
|
|
16466
16636
|
continue;
|
|
16467
16637
|
let init = member.initializer;
|
|
16468
|
-
if (!
|
|
16638
|
+
if (!ts14.isCallExpression(init))
|
|
16469
16639
|
continue;
|
|
16470
16640
|
let queryName;
|
|
16471
|
-
if (
|
|
16641
|
+
if (ts14.isIdentifier(init.expression)) {
|
|
16472
16642
|
queryName = init.expression.text;
|
|
16473
|
-
} else if (
|
|
16643
|
+
} else if (ts14.isPropertyAccessExpression(init.expression) && ts14.isIdentifier(init.expression.expression) && init.expression.name.text === "required") {
|
|
16474
16644
|
queryName = init.expression.expression.text;
|
|
16475
16645
|
} else {
|
|
16476
16646
|
continue;
|
|
@@ -16488,7 +16658,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16488
16658
|
let descendants = true;
|
|
16489
16659
|
let read = null;
|
|
16490
16660
|
const opts = init.arguments[1];
|
|
16491
|
-
if (opts &&
|
|
16661
|
+
if (opts && ts14.isObjectLiteralExpression(opts)) {
|
|
16492
16662
|
descendants = getBooleanProperty(opts, "descendants") ?? true;
|
|
16493
16663
|
const readNode = getProperty(opts, "read");
|
|
16494
16664
|
if (readNode)
|
|
@@ -16514,13 +16684,13 @@ var fail = (reason, detail, location) => ({
|
|
|
16514
16684
|
const node = getProperty(args, "exportAs");
|
|
16515
16685
|
if (!node)
|
|
16516
16686
|
return null;
|
|
16517
|
-
if (
|
|
16687
|
+
if (ts14.isStringLiteral(node)) {
|
|
16518
16688
|
return node.text.split(",").map((s2) => s2.trim()).filter(Boolean);
|
|
16519
16689
|
}
|
|
16520
|
-
if (
|
|
16690
|
+
if (ts14.isArrayLiteralExpression(node)) {
|
|
16521
16691
|
const out = [];
|
|
16522
16692
|
for (const el of node.elements) {
|
|
16523
|
-
if (
|
|
16693
|
+
if (ts14.isStringLiteral(el))
|
|
16524
16694
|
out.push(el.text);
|
|
16525
16695
|
}
|
|
16526
16696
|
return out.length > 0 ? out : null;
|
|
@@ -16528,11 +16698,11 @@ var fail = (reason, detail, location) => ({
|
|
|
16528
16698
|
return null;
|
|
16529
16699
|
}, extractHostDirectives = (args, compiler) => {
|
|
16530
16700
|
const node = getProperty(args, "hostDirectives");
|
|
16531
|
-
if (!node || !
|
|
16701
|
+
if (!node || !ts14.isArrayLiteralExpression(node))
|
|
16532
16702
|
return null;
|
|
16533
16703
|
const out = [];
|
|
16534
16704
|
for (const el of node.elements) {
|
|
16535
|
-
if (
|
|
16705
|
+
if (ts14.isIdentifier(el)) {
|
|
16536
16706
|
out.push({
|
|
16537
16707
|
directive: {
|
|
16538
16708
|
value: new compiler.WrappedNodeExpr(el),
|
|
@@ -16544,7 +16714,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16544
16714
|
});
|
|
16545
16715
|
continue;
|
|
16546
16716
|
}
|
|
16547
|
-
if (!
|
|
16717
|
+
if (!ts14.isObjectLiteralExpression(el))
|
|
16548
16718
|
continue;
|
|
16549
16719
|
const directiveNode = getProperty(el, "directive");
|
|
16550
16720
|
if (!directiveNode)
|
|
@@ -16552,11 +16722,11 @@ var fail = (reason, detail, location) => ({
|
|
|
16552
16722
|
const inputsNode = getProperty(el, "inputs");
|
|
16553
16723
|
const outputsNode = getProperty(el, "outputs");
|
|
16554
16724
|
const collectMap = (n) => {
|
|
16555
|
-
if (!n || !
|
|
16725
|
+
if (!n || !ts14.isArrayLiteralExpression(n))
|
|
16556
16726
|
return null;
|
|
16557
16727
|
const map = {};
|
|
16558
16728
|
for (const item of n.elements) {
|
|
16559
|
-
if (!
|
|
16729
|
+
if (!ts14.isStringLiteral(item))
|
|
16560
16730
|
continue;
|
|
16561
16731
|
const [name, alias] = item.text.split(":").map((s2) => s2.trim());
|
|
16562
16732
|
if (name)
|
|
@@ -16618,7 +16788,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16618
16788
|
return cached.info;
|
|
16619
16789
|
let source;
|
|
16620
16790
|
try {
|
|
16621
|
-
source =
|
|
16791
|
+
source = readFileSync19(filePath, "utf-8");
|
|
16622
16792
|
} catch {
|
|
16623
16793
|
childComponentInfoCache.set(cacheKey2, {
|
|
16624
16794
|
info: null,
|
|
@@ -16626,10 +16796,10 @@ var fail = (reason, detail, location) => ({
|
|
|
16626
16796
|
});
|
|
16627
16797
|
return null;
|
|
16628
16798
|
}
|
|
16629
|
-
const sf =
|
|
16799
|
+
const sf = ts14.createSourceFile(filePath, source, ts14.ScriptTarget.Latest, true);
|
|
16630
16800
|
let info = null;
|
|
16631
16801
|
for (const stmt of sf.statements) {
|
|
16632
|
-
if (!
|
|
16802
|
+
if (!ts14.isClassDeclaration(stmt))
|
|
16633
16803
|
continue;
|
|
16634
16804
|
if (!stmt.name || stmt.name.text !== className)
|
|
16635
16805
|
continue;
|
|
@@ -16672,7 +16842,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16672
16842
|
return cached.info;
|
|
16673
16843
|
let content;
|
|
16674
16844
|
try {
|
|
16675
|
-
content =
|
|
16845
|
+
content = readFileSync19(dtsPath, "utf-8");
|
|
16676
16846
|
} catch {
|
|
16677
16847
|
childComponentInfoCache.set(cacheKey2, {
|
|
16678
16848
|
info: null,
|
|
@@ -16764,9 +16934,9 @@ var fail = (reason, detail, location) => ({
|
|
|
16764
16934
|
}, buildClassToSpecMap = (sourceFile) => {
|
|
16765
16935
|
const result = new Map;
|
|
16766
16936
|
for (const stmt of sourceFile.statements) {
|
|
16767
|
-
if (!
|
|
16937
|
+
if (!ts14.isImportDeclaration(stmt))
|
|
16768
16938
|
continue;
|
|
16769
|
-
if (!
|
|
16939
|
+
if (!ts14.isStringLiteral(stmt.moduleSpecifier))
|
|
16770
16940
|
continue;
|
|
16771
16941
|
const spec = stmt.moduleSpecifier.text;
|
|
16772
16942
|
const clause = stmt.importClause;
|
|
@@ -16775,7 +16945,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16775
16945
|
if (clause.name)
|
|
16776
16946
|
result.set(clause.name.text, spec);
|
|
16777
16947
|
const named = clause.namedBindings;
|
|
16778
|
-
if (named &&
|
|
16948
|
+
if (named && ts14.isNamedImports(named)) {
|
|
16779
16949
|
for (const el of named.elements) {
|
|
16780
16950
|
if (el.isTypeOnly)
|
|
16781
16951
|
continue;
|
|
@@ -16792,7 +16962,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16792
16962
|
return null;
|
|
16793
16963
|
let content;
|
|
16794
16964
|
try {
|
|
16795
|
-
content =
|
|
16965
|
+
content = readFileSync19(startDtsPath, "utf-8");
|
|
16796
16966
|
} catch {
|
|
16797
16967
|
return null;
|
|
16798
16968
|
}
|
|
@@ -16888,7 +17058,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16888
17058
|
return result;
|
|
16889
17059
|
const classToSpec = buildClassToSpecMap(sourceFile);
|
|
16890
17060
|
for (const el of importsExpr.elements) {
|
|
16891
|
-
if (!
|
|
17061
|
+
if (!ts14.isIdentifier(el))
|
|
16892
17062
|
continue;
|
|
16893
17063
|
const className = el.text;
|
|
16894
17064
|
const spec = classToSpec.get(className);
|
|
@@ -16907,35 +17077,35 @@ var fail = (reason, detail, location) => ({
|
|
|
16907
17077
|
}
|
|
16908
17078
|
return (h2 >>> 0).toString(36);
|
|
16909
17079
|
}, initializerShapeIsStructural = (node) => {
|
|
16910
|
-
if (
|
|
17080
|
+
if (ts14.isArrowFunction(node) || ts14.isFunctionExpression(node) || ts14.isCallExpression(node) || ts14.isNewExpression(node)) {
|
|
16911
17081
|
return true;
|
|
16912
17082
|
}
|
|
16913
|
-
if (
|
|
17083
|
+
if (ts14.isConditionalExpression(node)) {
|
|
16914
17084
|
return initializerShapeIsStructural(node.whenTrue) || initializerShapeIsStructural(node.whenFalse);
|
|
16915
17085
|
}
|
|
16916
|
-
if (
|
|
17086
|
+
if (ts14.isParenthesizedExpression(node)) {
|
|
16917
17087
|
return initializerShapeIsStructural(node.expression);
|
|
16918
17088
|
}
|
|
16919
|
-
if (
|
|
17089
|
+
if (ts14.isAsExpression(node) || ts14.isTypeAssertionExpression(node)) {
|
|
16920
17090
|
return initializerShapeIsStructural(node.expression);
|
|
16921
17091
|
}
|
|
16922
|
-
if (
|
|
17092
|
+
if (ts14.isNonNullExpression(node)) {
|
|
16923
17093
|
return initializerShapeIsStructural(node.expression);
|
|
16924
17094
|
}
|
|
16925
|
-
if (
|
|
17095
|
+
if (ts14.isObjectLiteralExpression(node)) {
|
|
16926
17096
|
for (const prop of node.properties) {
|
|
16927
|
-
if (
|
|
17097
|
+
if (ts14.isPropertyAssignment(prop) && initializerShapeIsStructural(prop.initializer)) {
|
|
16928
17098
|
return true;
|
|
16929
17099
|
}
|
|
16930
|
-
if (
|
|
17100
|
+
if (ts14.isShorthandPropertyAssignment(prop))
|
|
16931
17101
|
continue;
|
|
16932
|
-
if (
|
|
17102
|
+
if (ts14.isSpreadAssignment(prop) && initializerShapeIsStructural(prop.expression)) {
|
|
16933
17103
|
return true;
|
|
16934
17104
|
}
|
|
16935
17105
|
}
|
|
16936
17106
|
return false;
|
|
16937
17107
|
}
|
|
16938
|
-
if (
|
|
17108
|
+
if (ts14.isArrayLiteralExpression(node)) {
|
|
16939
17109
|
for (const el of node.elements) {
|
|
16940
17110
|
if (initializerShapeIsStructural(el))
|
|
16941
17111
|
return true;
|
|
@@ -16946,7 +17116,7 @@ var fail = (reason, detail, location) => ({
|
|
|
16946
17116
|
}, extractArrowFieldSig = (cls) => {
|
|
16947
17117
|
const entries = [];
|
|
16948
17118
|
for (const member of cls.members) {
|
|
16949
|
-
if (!
|
|
17119
|
+
if (!ts14.isPropertyDeclaration(member))
|
|
16950
17120
|
continue;
|
|
16951
17121
|
const init = member.initializer;
|
|
16952
17122
|
if (!init)
|
|
@@ -16956,12 +17126,12 @@ var fail = (reason, detail, location) => ({
|
|
|
16956
17126
|
const name = member.name.getText();
|
|
16957
17127
|
let bodyText;
|
|
16958
17128
|
try {
|
|
16959
|
-
const printer =
|
|
16960
|
-
newLine:
|
|
17129
|
+
const printer = ts14.createPrinter({
|
|
17130
|
+
newLine: ts14.NewLineKind.LineFeed,
|
|
16961
17131
|
omitTrailingSemicolon: true,
|
|
16962
17132
|
removeComments: true
|
|
16963
17133
|
});
|
|
16964
|
-
bodyText = printer.printNode(
|
|
17134
|
+
bodyText = printer.printNode(ts14.EmitHint.Unspecified, init, cls.getSourceFile());
|
|
16965
17135
|
} catch {
|
|
16966
17136
|
bodyText = init.getText();
|
|
16967
17137
|
}
|
|
@@ -16972,9 +17142,9 @@ var fail = (reason, detail, location) => ({
|
|
|
16972
17142
|
}, INPUT_OUTPUT_DECORATORS, extractMemberDecoratorSig = (cls) => {
|
|
16973
17143
|
const entries = [];
|
|
16974
17144
|
for (const member of cls.members) {
|
|
16975
|
-
if (!
|
|
17145
|
+
if (!ts14.canHaveDecorators(member))
|
|
16976
17146
|
continue;
|
|
16977
|
-
const decorators =
|
|
17147
|
+
const decorators = ts14.getDecorators(member) ?? [];
|
|
16978
17148
|
if (decorators.length === 0)
|
|
16979
17149
|
continue;
|
|
16980
17150
|
const memberName = member.name?.getText() ?? "<anon>";
|
|
@@ -16982,14 +17152,14 @@ var fail = (reason, detail, location) => ({
|
|
|
16982
17152
|
const expr = decorator.expression;
|
|
16983
17153
|
let decName = "<unknown>";
|
|
16984
17154
|
let argText = "";
|
|
16985
|
-
if (
|
|
16986
|
-
if (
|
|
17155
|
+
if (ts14.isCallExpression(expr)) {
|
|
17156
|
+
if (ts14.isIdentifier(expr.expression)) {
|
|
16987
17157
|
decName = expr.expression.text;
|
|
16988
17158
|
}
|
|
16989
17159
|
if (expr.arguments.length > 0) {
|
|
16990
17160
|
argText = expr.arguments.map((a) => a.getText()).join(",");
|
|
16991
17161
|
}
|
|
16992
|
-
} else if (
|
|
17162
|
+
} else if (ts14.isIdentifier(expr)) {
|
|
16993
17163
|
decName = expr.text;
|
|
16994
17164
|
}
|
|
16995
17165
|
if (INPUT_OUTPUT_DECORATORS.has(decName))
|
|
@@ -17010,22 +17180,22 @@ var fail = (reason, detail, location) => ({
|
|
|
17010
17180
|
return cached.hasProviders;
|
|
17011
17181
|
let source;
|
|
17012
17182
|
try {
|
|
17013
|
-
source =
|
|
17183
|
+
source = readFileSync19(filePath, "utf8");
|
|
17014
17184
|
} catch {
|
|
17015
17185
|
return true;
|
|
17016
17186
|
}
|
|
17017
|
-
const sf =
|
|
17187
|
+
const sf = ts14.createSourceFile(filePath, source, ts14.ScriptTarget.ES2022, true, ts14.ScriptKind.TS);
|
|
17018
17188
|
let hasProviders = false;
|
|
17019
17189
|
const visit = (node) => {
|
|
17020
17190
|
if (hasProviders)
|
|
17021
17191
|
return;
|
|
17022
|
-
if (
|
|
17023
|
-
for (const decorator of
|
|
17192
|
+
if (ts14.isClassDeclaration(node)) {
|
|
17193
|
+
for (const decorator of ts14.getDecorators(node) ?? []) {
|
|
17024
17194
|
const expr = decorator.expression;
|
|
17025
|
-
if (!
|
|
17195
|
+
if (!ts14.isCallExpression(expr))
|
|
17026
17196
|
continue;
|
|
17027
17197
|
const arg = expr.arguments[0];
|
|
17028
|
-
if (!arg || !
|
|
17198
|
+
if (!arg || !ts14.isObjectLiteralExpression(arg))
|
|
17029
17199
|
continue;
|
|
17030
17200
|
if (getProperty(arg, "providers") !== null) {
|
|
17031
17201
|
hasProviders = true;
|
|
@@ -17033,7 +17203,7 @@ var fail = (reason, detail, location) => ({
|
|
|
17033
17203
|
}
|
|
17034
17204
|
}
|
|
17035
17205
|
}
|
|
17036
|
-
|
|
17206
|
+
ts14.forEachChild(node, visit);
|
|
17037
17207
|
};
|
|
17038
17208
|
visit(sf);
|
|
17039
17209
|
providerProbeCache.set(filePath, {
|
|
@@ -17043,10 +17213,10 @@ var fail = (reason, detail, location) => ({
|
|
|
17043
17213
|
return hasProviders;
|
|
17044
17214
|
}, TS_EXTENSIONS, resolveImportSource = (identifierName, sourceFile, componentDir) => {
|
|
17045
17215
|
for (const stmt of sourceFile.statements) {
|
|
17046
|
-
if (!
|
|
17216
|
+
if (!ts14.isImportDeclaration(stmt))
|
|
17047
17217
|
continue;
|
|
17048
17218
|
const moduleSpec = stmt.moduleSpecifier;
|
|
17049
|
-
if (!
|
|
17219
|
+
if (!ts14.isStringLiteral(moduleSpec))
|
|
17050
17220
|
continue;
|
|
17051
17221
|
const spec = moduleSpec.text;
|
|
17052
17222
|
if (!spec.startsWith(".") && !spec.startsWith("/"))
|
|
@@ -17060,7 +17230,7 @@ var fail = (reason, detail, location) => ({
|
|
|
17060
17230
|
}
|
|
17061
17231
|
if (importClause.namedBindings) {
|
|
17062
17232
|
const nb = importClause.namedBindings;
|
|
17063
|
-
if (
|
|
17233
|
+
if (ts14.isNamespaceImport(nb)) {
|
|
17064
17234
|
if (nb.name.text === identifierName)
|
|
17065
17235
|
matches = true;
|
|
17066
17236
|
} else {
|
|
@@ -17090,7 +17260,7 @@ var fail = (reason, detail, location) => ({
|
|
|
17090
17260
|
return [];
|
|
17091
17261
|
const sig = [];
|
|
17092
17262
|
for (const entry of importsExpr.elements) {
|
|
17093
|
-
if (
|
|
17263
|
+
if (ts14.isIdentifier(entry)) {
|
|
17094
17264
|
const importPath = resolveImportSource(entry.text, sourceFile, componentDir);
|
|
17095
17265
|
if (importPath) {
|
|
17096
17266
|
if (fileHasModuleProviders(importPath)) {
|
|
@@ -17109,13 +17279,13 @@ var fail = (reason, detail, location) => ({
|
|
|
17109
17279
|
}, extractPropertyFieldNames = (cls) => {
|
|
17110
17280
|
const names = [];
|
|
17111
17281
|
for (const member of cls.members) {
|
|
17112
|
-
if (!
|
|
17282
|
+
if (!ts14.isPropertyDeclaration(member) && !ts14.isMethodDeclaration(member) && !ts14.isGetAccessorDeclaration(member) && !ts14.isSetAccessorDeclaration(member)) {
|
|
17113
17283
|
continue;
|
|
17114
17284
|
}
|
|
17115
17285
|
const name = member.name;
|
|
17116
17286
|
if (name === undefined)
|
|
17117
17287
|
continue;
|
|
17118
|
-
const text =
|
|
17288
|
+
const text = ts14.isIdentifier(name) ? name.text : ts14.isStringLiteral(name) || ts14.isNoSubstitutionTemplateLiteral(name) ? name.text : name.getText();
|
|
17119
17289
|
if (text.length > 0)
|
|
17120
17290
|
names.push(text);
|
|
17121
17291
|
}
|
|
@@ -17123,7 +17293,7 @@ var fail = (reason, detail, location) => ({
|
|
|
17123
17293
|
}, extractTopLevelImports = (sourceFile) => {
|
|
17124
17294
|
const names = new Set;
|
|
17125
17295
|
for (const stmt of sourceFile.statements) {
|
|
17126
|
-
if (!
|
|
17296
|
+
if (!ts14.isImportDeclaration(stmt))
|
|
17127
17297
|
continue;
|
|
17128
17298
|
const clause = stmt.importClause;
|
|
17129
17299
|
if (!clause)
|
|
@@ -17135,9 +17305,9 @@ var fail = (reason, detail, location) => ({
|
|
|
17135
17305
|
const bindings = clause.namedBindings;
|
|
17136
17306
|
if (!bindings)
|
|
17137
17307
|
continue;
|
|
17138
|
-
if (
|
|
17308
|
+
if (ts14.isNamespaceImport(bindings)) {
|
|
17139
17309
|
names.add(bindings.name.text);
|
|
17140
|
-
} else if (
|
|
17310
|
+
} else if (ts14.isNamedImports(bindings)) {
|
|
17141
17311
|
for (const el of bindings.elements) {
|
|
17142
17312
|
if (el.isTypeOnly)
|
|
17143
17313
|
continue;
|
|
@@ -17149,18 +17319,18 @@ var fail = (reason, detail, location) => ({
|
|
|
17149
17319
|
}, extractFingerprint = (cls, className, decoratorMeta, inputs, outputs, sourceFile, componentDir) => {
|
|
17150
17320
|
const ctorParamTypes = [];
|
|
17151
17321
|
for (const member of cls.members) {
|
|
17152
|
-
if (!
|
|
17322
|
+
if (!ts14.isConstructorDeclaration(member))
|
|
17153
17323
|
continue;
|
|
17154
17324
|
for (const param of member.parameters) {
|
|
17155
17325
|
const typeText = param.type ? param.type.getText() : "";
|
|
17156
|
-
const decorators =
|
|
17326
|
+
const decorators = ts14.getDecorators(param) ?? [];
|
|
17157
17327
|
const decoratorSig = decorators.length === 0 ? "" : decorators.map((d2) => {
|
|
17158
17328
|
const expr = d2.expression;
|
|
17159
|
-
if (
|
|
17329
|
+
if (ts14.isCallExpression(expr) && ts14.isIdentifier(expr.expression)) {
|
|
17160
17330
|
const args = expr.arguments.map((a) => a.getText()).join(",");
|
|
17161
17331
|
return `@${expr.expression.text}(${args})`;
|
|
17162
17332
|
}
|
|
17163
|
-
if (
|
|
17333
|
+
if (ts14.isIdentifier(expr)) {
|
|
17164
17334
|
return `@${expr.text}`;
|
|
17165
17335
|
}
|
|
17166
17336
|
return "@<unknown>";
|
|
@@ -17176,12 +17346,12 @@ var fail = (reason, detail, location) => ({
|
|
|
17176
17346
|
const providerImportSig = extractProviderImportSig(decoratorMeta.importsExpr, sourceFile, componentDir);
|
|
17177
17347
|
const topLevelImports = extractTopLevelImports(sourceFile);
|
|
17178
17348
|
const propertyFieldNames = extractPropertyFieldNames(cls);
|
|
17179
|
-
const printer =
|
|
17180
|
-
newLine:
|
|
17349
|
+
const printer = ts14.createPrinter({
|
|
17350
|
+
newLine: ts14.NewLineKind.LineFeed,
|
|
17181
17351
|
omitTrailingSemicolon: true,
|
|
17182
17352
|
removeComments: true
|
|
17183
17353
|
});
|
|
17184
|
-
const canonicalText = (node) => printer.printNode(
|
|
17354
|
+
const canonicalText = (node) => printer.printNode(ts14.EmitHint.Unspecified, node, sourceFile);
|
|
17185
17355
|
const importsArraySig = decoratorMeta.importsExpr ? djb2Hash(canonicalText(decoratorMeta.importsExpr)) : "";
|
|
17186
17356
|
const hostDirectivesSig = decoratorMeta.hostDirectivesExpr ? djb2Hash(canonicalText(decoratorMeta.hostDirectivesExpr)) : "";
|
|
17187
17357
|
const animationsArraySig = decoratorMeta.animationsExpr ? djb2Hash(canonicalText(decoratorMeta.animationsExpr)) : "";
|
|
@@ -17194,13 +17364,13 @@ var fail = (reason, detail, location) => ({
|
|
|
17194
17364
|
const PAGE_EXPORT_NAMES = new Set(["providers", "routes"]);
|
|
17195
17365
|
const pageExportEntries = [];
|
|
17196
17366
|
for (const stmt of sourceFile.statements) {
|
|
17197
|
-
if (!
|
|
17367
|
+
if (!ts14.isVariableStatement(stmt))
|
|
17198
17368
|
continue;
|
|
17199
|
-
const isExported = stmt.modifiers?.some((m) => m.kind ===
|
|
17369
|
+
const isExported = stmt.modifiers?.some((m) => m.kind === ts14.SyntaxKind.ExportKeyword);
|
|
17200
17370
|
if (!isExported)
|
|
17201
17371
|
continue;
|
|
17202
17372
|
for (const decl of stmt.declarationList.declarations) {
|
|
17203
|
-
if (!
|
|
17373
|
+
if (!ts14.isIdentifier(decl.name))
|
|
17204
17374
|
continue;
|
|
17205
17375
|
if (!PAGE_EXPORT_NAMES.has(decl.name.text))
|
|
17206
17376
|
continue;
|
|
@@ -17241,35 +17411,35 @@ var fail = (reason, detail, location) => ({
|
|
|
17241
17411
|
}, buildFreshClassMethodsBlock = (classNode, className) => {
|
|
17242
17412
|
const memberSources = [];
|
|
17243
17413
|
let hasStatic = false;
|
|
17244
|
-
const printer =
|
|
17414
|
+
const printer = ts14.createPrinter({ removeComments: true });
|
|
17245
17415
|
for (const member of classNode.members) {
|
|
17246
|
-
if (
|
|
17247
|
-
const modifiers = (
|
|
17248
|
-
const cleaned =
|
|
17249
|
-
memberSources.push(printer.printNode(
|
|
17416
|
+
if (ts14.isPropertyDeclaration(member)) {
|
|
17417
|
+
const modifiers = (ts14.getModifiers(member) ?? []).filter((m) => m.kind !== ts14.SyntaxKind.PrivateKeyword && m.kind !== ts14.SyntaxKind.PublicKeyword && m.kind !== ts14.SyntaxKind.ProtectedKeyword && m.kind !== ts14.SyntaxKind.ReadonlyKeyword && m.kind !== ts14.SyntaxKind.OverrideKeyword);
|
|
17418
|
+
const cleaned = ts14.factory.createPropertyDeclaration(modifiers, member.name, undefined, undefined, member.initializer);
|
|
17419
|
+
memberSources.push(printer.printNode(ts14.EmitHint.Unspecified, cleaned, classNode.getSourceFile()));
|
|
17250
17420
|
continue;
|
|
17251
17421
|
}
|
|
17252
|
-
if (
|
|
17253
|
-
const cleanedParams = member.parameters.map((param) =>
|
|
17254
|
-
const cleaned =
|
|
17255
|
-
memberSources.push(printer.printNode(
|
|
17422
|
+
if (ts14.isConstructorDeclaration(member)) {
|
|
17423
|
+
const cleanedParams = member.parameters.map((param) => ts14.factory.updateParameterDeclaration(param, (ts14.getModifiers(param) ?? []).filter((m) => m.kind !== ts14.SyntaxKind.PrivateKeyword && m.kind !== ts14.SyntaxKind.PublicKeyword && m.kind !== ts14.SyntaxKind.ProtectedKeyword && m.kind !== ts14.SyntaxKind.ReadonlyKeyword && m.kind !== ts14.SyntaxKind.OverrideKeyword), param.dotDotDotToken, param.name, param.questionToken, param.type, param.initializer));
|
|
17424
|
+
const cleaned = ts14.factory.createConstructorDeclaration([], cleanedParams, member.body);
|
|
17425
|
+
memberSources.push(printer.printNode(ts14.EmitHint.Unspecified, cleaned, classNode.getSourceFile()));
|
|
17256
17426
|
continue;
|
|
17257
17427
|
}
|
|
17258
|
-
if (
|
|
17259
|
-
const modifiers =
|
|
17260
|
-
const isStatic = modifiers.some((m) => m.kind ===
|
|
17428
|
+
if (ts14.isMethodDeclaration(member) || ts14.isGetAccessorDeclaration(member) || ts14.isSetAccessorDeclaration(member)) {
|
|
17429
|
+
const modifiers = ts14.getModifiers(member) ?? [];
|
|
17430
|
+
const isStatic = modifiers.some((m) => m.kind === ts14.SyntaxKind.StaticKeyword);
|
|
17261
17431
|
if (isStatic)
|
|
17262
17432
|
hasStatic = true;
|
|
17263
|
-
const cleanedParams = member.parameters.map((param) =>
|
|
17433
|
+
const cleanedParams = member.parameters.map((param) => ts14.factory.updateParameterDeclaration(param, ts14.getModifiers(param) ?? [], param.dotDotDotToken, param.name, param.questionToken, param.type, param.initializer));
|
|
17264
17434
|
let cleaned;
|
|
17265
|
-
if (
|
|
17266
|
-
cleaned =
|
|
17267
|
-
} else if (
|
|
17268
|
-
cleaned =
|
|
17435
|
+
if (ts14.isMethodDeclaration(member)) {
|
|
17436
|
+
cleaned = ts14.factory.createMethodDeclaration(modifiers, member.asteriskToken, member.name, member.questionToken, member.typeParameters, cleanedParams, member.type, member.body);
|
|
17437
|
+
} else if (ts14.isGetAccessorDeclaration(member)) {
|
|
17438
|
+
cleaned = ts14.factory.createGetAccessorDeclaration(modifiers, member.name, cleanedParams, member.type, member.body);
|
|
17269
17439
|
} else {
|
|
17270
|
-
cleaned =
|
|
17440
|
+
cleaned = ts14.factory.createSetAccessorDeclaration(modifiers, member.name, cleanedParams, member.body);
|
|
17271
17441
|
}
|
|
17272
|
-
const printed = printer.printNode(
|
|
17442
|
+
const printed = printer.printNode(ts14.EmitHint.Unspecified, cleaned, classNode.getSourceFile());
|
|
17273
17443
|
memberSources.push(printed);
|
|
17274
17444
|
}
|
|
17275
17445
|
}
|
|
@@ -17281,10 +17451,10 @@ ${memberSources.join(`
|
|
|
17281
17451
|
}`;
|
|
17282
17452
|
let transpiled;
|
|
17283
17453
|
try {
|
|
17284
|
-
transpiled =
|
|
17454
|
+
transpiled = ts14.transpileModule(wrappedSource, {
|
|
17285
17455
|
compilerOptions: {
|
|
17286
|
-
module:
|
|
17287
|
-
target:
|
|
17456
|
+
module: ts14.ModuleKind.ES2022,
|
|
17457
|
+
target: ts14.ScriptTarget.ES2022
|
|
17288
17458
|
},
|
|
17289
17459
|
reportDiagnostics: false
|
|
17290
17460
|
}).outputText;
|
|
@@ -17318,7 +17488,7 @@ ${transpiled}
|
|
|
17318
17488
|
return null;
|
|
17319
17489
|
const ext = extname6(abs).toLowerCase();
|
|
17320
17490
|
if (!STYLE_PREPROCESSED_EXT.has(ext) || ext === ".css") {
|
|
17321
|
-
return
|
|
17491
|
+
return readFileSync19(abs, "utf8");
|
|
17322
17492
|
}
|
|
17323
17493
|
try {
|
|
17324
17494
|
const { compileStyleFileIfNeededSync: compileStyleFileIfNeededSync2 } = (init_stylePreprocessor(), __toCommonJS(exports_stylePreprocessor));
|
|
@@ -17357,8 +17527,8 @@ ${block}
|
|
|
17357
17527
|
const opts = {};
|
|
17358
17528
|
if (existsSync23(tsconfigPath)) {
|
|
17359
17529
|
try {
|
|
17360
|
-
const text =
|
|
17361
|
-
const parsed =
|
|
17530
|
+
const text = readFileSync19(tsconfigPath, "utf8");
|
|
17531
|
+
const parsed = ts14.parseConfigFileTextToJson(tsconfigPath, text);
|
|
17362
17532
|
if (!parsed.error && parsed.config) {
|
|
17363
17533
|
const cfg = parsed.config;
|
|
17364
17534
|
const ang = cfg.angularCompilerOptions ?? {};
|
|
@@ -17391,8 +17561,8 @@ ${block}
|
|
|
17391
17561
|
} catch (err) {
|
|
17392
17562
|
return fail("unexpected-error", `import @angular/compiler: ${err}`);
|
|
17393
17563
|
}
|
|
17394
|
-
const tsSource =
|
|
17395
|
-
const sourceFile =
|
|
17564
|
+
const tsSource = readFileSync19(componentFilePath, "utf8");
|
|
17565
|
+
const sourceFile = ts14.createSourceFile(componentFilePath, tsSource, ts14.ScriptTarget.ES2022, true, ts14.ScriptKind.TS);
|
|
17396
17566
|
const classNode = findClassDeclaration(sourceFile, className);
|
|
17397
17567
|
if (!classNode) {
|
|
17398
17568
|
return fail("class-not-found", `${className} in ${componentFilePath}`);
|
|
@@ -17441,7 +17611,7 @@ ${block}
|
|
|
17441
17611
|
if (!existsSync23(tplAbs)) {
|
|
17442
17612
|
return fail("template-resource-not-found", `Template file not found: ${tplAbs}`, { file: componentFilePath });
|
|
17443
17613
|
}
|
|
17444
|
-
templateText =
|
|
17614
|
+
templateText = readFileSync19(tplAbs, "utf8");
|
|
17445
17615
|
templatePath = tplAbs;
|
|
17446
17616
|
} else {
|
|
17447
17617
|
return fail("unsupported-decorator-args", "missing template/templateUrl");
|
|
@@ -17512,7 +17682,7 @@ ${block}
|
|
|
17512
17682
|
viewQueries: advancedMetadata.viewQueries,
|
|
17513
17683
|
host: advancedMetadata.host,
|
|
17514
17684
|
lifecycle: {
|
|
17515
|
-
usesOnChanges: classNode.members.some((m) =>
|
|
17685
|
+
usesOnChanges: classNode.members.some((m) => ts14.isMethodDeclaration(m) && m.name !== undefined && ts14.isIdentifier(m.name) && m.name.text === "ngOnChanges")
|
|
17516
17686
|
},
|
|
17517
17687
|
inputs,
|
|
17518
17688
|
outputs,
|
|
@@ -17568,15 +17738,15 @@ ${block}
|
|
|
17568
17738
|
}
|
|
17569
17739
|
const importGenerator = createHmrImportGenerator(namespaceMap);
|
|
17570
17740
|
const tsFunctionDecl = translateStatement(sourceFile, callback, importGenerator);
|
|
17571
|
-
const exportedDecl =
|
|
17572
|
-
|
|
17573
|
-
|
|
17741
|
+
const exportedDecl = ts14.factory.updateFunctionDeclaration(tsFunctionDecl, [
|
|
17742
|
+
ts14.factory.createToken(ts14.SyntaxKind.ExportKeyword),
|
|
17743
|
+
ts14.factory.createToken(ts14.SyntaxKind.DefaultKeyword)
|
|
17574
17744
|
], tsFunctionDecl.asteriskToken, tsFunctionDecl.name, tsFunctionDecl.typeParameters, tsFunctionDecl.parameters, tsFunctionDecl.type, tsFunctionDecl.body);
|
|
17575
|
-
const printer =
|
|
17576
|
-
newLine:
|
|
17745
|
+
const printer = ts14.createPrinter({
|
|
17746
|
+
newLine: ts14.NewLineKind.LineFeed,
|
|
17577
17747
|
removeComments: false
|
|
17578
17748
|
});
|
|
17579
|
-
const fnText = printer.printNode(
|
|
17749
|
+
const fnText = printer.printNode(ts14.EmitHint.Unspecified, exportedDecl, sourceFile);
|
|
17580
17750
|
const provisionalMethodsBlock = buildFreshClassMethodsBlock(classNode, className) ?? "";
|
|
17581
17751
|
const referencedNames = new Set;
|
|
17582
17752
|
const identRe = /[A-Za-z_$][A-Za-z0-9_$]*/g;
|
|
@@ -17586,33 +17756,33 @@ ${block}
|
|
|
17586
17756
|
}
|
|
17587
17757
|
const sourceScopeNames = new Set;
|
|
17588
17758
|
for (const stmt of sourceFile.statements) {
|
|
17589
|
-
if (
|
|
17590
|
-
if (!
|
|
17759
|
+
if (ts14.isImportDeclaration(stmt)) {
|
|
17760
|
+
if (!ts14.isStringLiteral(stmt.moduleSpecifier))
|
|
17591
17761
|
continue;
|
|
17592
17762
|
const clause = stmt.importClause;
|
|
17593
17763
|
if (clause?.name)
|
|
17594
17764
|
sourceScopeNames.add(clause.name.text);
|
|
17595
|
-
if (clause?.namedBindings &&
|
|
17765
|
+
if (clause?.namedBindings && ts14.isNamedImports(clause.namedBindings)) {
|
|
17596
17766
|
for (const el of clause.namedBindings.elements) {
|
|
17597
17767
|
if (el.isTypeOnly)
|
|
17598
17768
|
continue;
|
|
17599
17769
|
sourceScopeNames.add(el.name.text);
|
|
17600
17770
|
}
|
|
17601
|
-
} else if (clause?.namedBindings &&
|
|
17771
|
+
} else if (clause?.namedBindings && ts14.isNamespaceImport(clause.namedBindings)) {
|
|
17602
17772
|
sourceScopeNames.add(clause.namedBindings.name.text);
|
|
17603
17773
|
}
|
|
17604
17774
|
continue;
|
|
17605
17775
|
}
|
|
17606
|
-
if (
|
|
17776
|
+
if (ts14.isVariableStatement(stmt) || stmt.kind === ts14.SyntaxKind.VariableStatement) {
|
|
17607
17777
|
const varStmt = stmt;
|
|
17608
17778
|
for (const decl of varStmt.declarationList.declarations) {
|
|
17609
|
-
if (
|
|
17779
|
+
if (ts14.isIdentifier(decl.name)) {
|
|
17610
17780
|
sourceScopeNames.add(decl.name.text);
|
|
17611
17781
|
}
|
|
17612
17782
|
}
|
|
17613
17783
|
continue;
|
|
17614
17784
|
}
|
|
17615
|
-
if (
|
|
17785
|
+
if (ts14.isFunctionDeclaration(stmt) || ts14.isClassDeclaration(stmt)) {
|
|
17616
17786
|
if (stmt.name)
|
|
17617
17787
|
sourceScopeNames.add(stmt.name.text);
|
|
17618
17788
|
}
|
|
@@ -17623,7 +17793,7 @@ ${block}
|
|
|
17623
17793
|
}
|
|
17624
17794
|
const allImportedNames = new Set;
|
|
17625
17795
|
for (const stmt of sourceFile.statements) {
|
|
17626
|
-
if (!
|
|
17796
|
+
if (!ts14.isImportDeclaration(stmt))
|
|
17627
17797
|
continue;
|
|
17628
17798
|
const clause = stmt.importClause;
|
|
17629
17799
|
if (!clause || clause.isTypeOnly)
|
|
@@ -17633,7 +17803,7 @@ ${block}
|
|
|
17633
17803
|
const bindings = clause.namedBindings;
|
|
17634
17804
|
if (!bindings)
|
|
17635
17805
|
continue;
|
|
17636
|
-
if (
|
|
17806
|
+
if (ts14.isNamespaceImport(bindings)) {
|
|
17637
17807
|
allImportedNames.add(bindings.name.text);
|
|
17638
17808
|
} else {
|
|
17639
17809
|
for (const el of bindings.elements) {
|
|
@@ -17645,10 +17815,10 @@ ${block}
|
|
|
17645
17815
|
}
|
|
17646
17816
|
const depsToDestructure = [...sourceScopeNames].filter((n) => referencedNames.has(n) || allImportedNames.has(n));
|
|
17647
17817
|
const tsSourceText = fnText;
|
|
17648
|
-
const transpiled =
|
|
17818
|
+
const transpiled = ts14.transpileModule(tsSourceText, {
|
|
17649
17819
|
compilerOptions: {
|
|
17650
|
-
module:
|
|
17651
|
-
target:
|
|
17820
|
+
module: ts14.ModuleKind.ES2022,
|
|
17821
|
+
target: ts14.ScriptTarget.ES2022
|
|
17652
17822
|
},
|
|
17653
17823
|
fileName: componentFilePath,
|
|
17654
17824
|
reportDiagnostics: false
|
|
@@ -18200,7 +18370,7 @@ __export(exports_compileEmber, {
|
|
|
18200
18370
|
});
|
|
18201
18371
|
import { existsSync as existsSync24 } from "fs";
|
|
18202
18372
|
import { mkdir as mkdir6, rm as rm4 } from "fs/promises";
|
|
18203
|
-
import { basename as basename9, dirname as dirname16, extname as extname7, join as
|
|
18373
|
+
import { basename as basename9, dirname as dirname16, extname as extname7, join as join29, resolve as resolve23 } from "path";
|
|
18204
18374
|
var {build: bunBuild2, Transpiler: Transpiler4, write: write4, file: file3 } = globalThis.Bun;
|
|
18205
18375
|
var cachedPreprocessor = null, getPreprocessor = async () => {
|
|
18206
18376
|
if (cachedPreprocessor)
|
|
@@ -18319,7 +18489,7 @@ export const importSync = (specifier) => {
|
|
|
18319
18489
|
build.onResolve({ filter: /^@(?:ember|glimmer|simple-dom)\// }, (args) => {
|
|
18320
18490
|
if (standalonePackages.has(args.path))
|
|
18321
18491
|
return;
|
|
18322
|
-
const internal =
|
|
18492
|
+
const internal = join29(cwd, "node_modules/ember-source/dist/packages", args.path, "index.js");
|
|
18323
18493
|
if (existsSync24(internal))
|
|
18324
18494
|
return { path: internal };
|
|
18325
18495
|
return;
|
|
@@ -18367,16 +18537,16 @@ export default PageComponent;
|
|
|
18367
18537
|
}
|
|
18368
18538
|
const transpiled = transpiler5.transformSync(preprocessed);
|
|
18369
18539
|
const baseName = basename9(resolvedEntry).replace(/\.(gjs|gts|ts|js)$/, "");
|
|
18370
|
-
const tmpDir =
|
|
18371
|
-
const serverDir =
|
|
18372
|
-
const clientDir =
|
|
18540
|
+
const tmpDir = join29(compiledRoot, "_tmp");
|
|
18541
|
+
const serverDir = join29(compiledRoot, "server");
|
|
18542
|
+
const clientDir = join29(compiledRoot, "client");
|
|
18373
18543
|
await Promise.all([
|
|
18374
18544
|
mkdir6(tmpDir, { recursive: true }),
|
|
18375
18545
|
mkdir6(serverDir, { recursive: true }),
|
|
18376
18546
|
mkdir6(clientDir, { recursive: true })
|
|
18377
18547
|
]);
|
|
18378
|
-
const tmpPagePath = resolve23(
|
|
18379
|
-
const tmpHarnessPath = resolve23(
|
|
18548
|
+
const tmpPagePath = resolve23(join29(tmpDir, `${baseName}.module.js`));
|
|
18549
|
+
const tmpHarnessPath = resolve23(join29(tmpDir, `${baseName}.harness.js`));
|
|
18380
18550
|
await Promise.all([
|
|
18381
18551
|
write4(tmpPagePath, transpiled),
|
|
18382
18552
|
write4(tmpHarnessPath, generateServerHarness(tmpPagePath))
|
|
@@ -18384,7 +18554,7 @@ export default PageComponent;
|
|
|
18384
18554
|
const stagedSourceMap = new Map([
|
|
18385
18555
|
[tmpPagePath, resolvedEntry]
|
|
18386
18556
|
]);
|
|
18387
|
-
const serverPath =
|
|
18557
|
+
const serverPath = join29(serverDir, `${baseName}.js`);
|
|
18388
18558
|
const buildResult = await bunBuild2({
|
|
18389
18559
|
entrypoints: [tmpHarnessPath],
|
|
18390
18560
|
format: "esm",
|
|
@@ -18401,7 +18571,7 @@ export default PageComponent;
|
|
|
18401
18571
|
console.warn(`\u26A0\uFE0F Ember server build for ${baseName} had errors:`, buildResult.logs);
|
|
18402
18572
|
}
|
|
18403
18573
|
await rm4(tmpDir, { force: true, recursive: true });
|
|
18404
|
-
const clientPath =
|
|
18574
|
+
const clientPath = join29(clientDir, `${baseName}.js`);
|
|
18405
18575
|
await write4(clientPath, transpiled);
|
|
18406
18576
|
return { clientPath, serverPath };
|
|
18407
18577
|
}, compileEmber = async (entries, emberDir, cwd = process.cwd(), _hmr = false) => {
|
|
@@ -18429,7 +18599,7 @@ export default PageComponent;
|
|
|
18429
18599
|
preprocessed = rewriteTemplateEvalToScope(result.code);
|
|
18430
18600
|
}
|
|
18431
18601
|
return transpiler5.transformSync(preprocessed);
|
|
18432
|
-
}, clearEmberCompilerCache = () => {}, getEmberCompiledRoot = (_emberDir) => getFrameworkGeneratedDir("ember"), getEmberServerCompiledDir = (emberDir) =>
|
|
18602
|
+
}, clearEmberCompilerCache = () => {}, getEmberCompiledRoot = (_emberDir) => getFrameworkGeneratedDir("ember"), getEmberServerCompiledDir = (emberDir) => join29(getEmberCompiledRoot(emberDir), "server"), getEmberClientCompiledDir = (emberDir) => join29(getEmberCompiledRoot(emberDir), "client");
|
|
18433
18603
|
var init_compileEmber = __esm(() => {
|
|
18434
18604
|
init_generatedDir();
|
|
18435
18605
|
transpiler5 = new Transpiler4({
|
|
@@ -18451,7 +18621,7 @@ __export(exports_buildReactVendor, {
|
|
|
18451
18621
|
buildReactVendor: () => buildReactVendor
|
|
18452
18622
|
});
|
|
18453
18623
|
import { existsSync as existsSync25, mkdirSync as mkdirSync8 } from "fs";
|
|
18454
|
-
import { join as
|
|
18624
|
+
import { join as join30, resolve as resolve24 } from "path";
|
|
18455
18625
|
import { rm as rm5 } from "fs/promises";
|
|
18456
18626
|
var {build: bunBuild3 } = globalThis.Bun;
|
|
18457
18627
|
var resolveJsxDevRuntimeCompatPath = () => {
|
|
@@ -18505,14 +18675,14 @@ var resolveJsxDevRuntimeCompatPath = () => {
|
|
|
18505
18675
|
`)}
|
|
18506
18676
|
`;
|
|
18507
18677
|
}, buildReactVendor = async (buildDir) => {
|
|
18508
|
-
const vendorDir =
|
|
18678
|
+
const vendorDir = join30(buildDir, "react", "vendor");
|
|
18509
18679
|
mkdirSync8(vendorDir, { recursive: true });
|
|
18510
|
-
const tmpDir =
|
|
18680
|
+
const tmpDir = join30(buildDir, "_vendor_tmp");
|
|
18511
18681
|
mkdirSync8(tmpDir, { recursive: true });
|
|
18512
18682
|
const specifiers = resolveVendorSpecifiers();
|
|
18513
18683
|
const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
|
|
18514
18684
|
const safeName = toSafeFileName(specifier);
|
|
18515
|
-
const entryPath =
|
|
18685
|
+
const entryPath = join30(tmpDir, `${safeName}.ts`);
|
|
18516
18686
|
const source = await generateEntrySource(specifier);
|
|
18517
18687
|
await Bun.write(entryPath, source);
|
|
18518
18688
|
return entryPath;
|
|
@@ -18577,7 +18747,7 @@ __export(exports_buildAngularVendor, {
|
|
|
18577
18747
|
buildAngularServerVendor: () => buildAngularServerVendor
|
|
18578
18748
|
});
|
|
18579
18749
|
import { mkdirSync as mkdirSync9 } from "fs";
|
|
18580
|
-
import { join as
|
|
18750
|
+
import { join as join31 } from "path";
|
|
18581
18751
|
import { rm as rm6 } from "fs/promises";
|
|
18582
18752
|
var {build: bunBuild4, Glob: Glob7 } = globalThis.Bun;
|
|
18583
18753
|
var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => jitMode ? [...REQUIRED_ANGULAR_SPECIFIERS_BASE, "@angular/compiler"] : REQUIRED_ANGULAR_SPECIFIERS_BASE, SERVER_ONLY_ANGULAR_SPECIFIERS, BUILD_ONLY_ANGULAR_SPECIFIER_PREFIXES, isBuildOnlyAngularSpecifier = (spec) => BUILD_ONLY_ANGULAR_SPECIFIER_PREFIXES.some((prefix) => spec === prefix || spec.startsWith(`${prefix}/`)), SCAN_SKIP_DIRS, isResolvable2 = (specifier) => {
|
|
@@ -18614,7 +18784,7 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
|
|
|
18614
18784
|
}
|
|
18615
18785
|
return { angular, transitiveRoots };
|
|
18616
18786
|
}, PARTIAL_DECL_MARKERS, containsPartialDeclarations = (source) => PARTIAL_DECL_MARKERS.some((marker) => source.includes(marker)), collectTransitiveAngularSpecs = async (roots, angularFound) => {
|
|
18617
|
-
const { readFileSync:
|
|
18787
|
+
const { readFileSync: readFileSync20 } = await import("fs");
|
|
18618
18788
|
const transpiler6 = new Bun.Transpiler({ loader: "js" });
|
|
18619
18789
|
const visited = new Set;
|
|
18620
18790
|
const frontier = [];
|
|
@@ -18635,7 +18805,7 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
|
|
|
18635
18805
|
}
|
|
18636
18806
|
let content;
|
|
18637
18807
|
try {
|
|
18638
|
-
content =
|
|
18808
|
+
content = readFileSync20(resolved, "utf-8");
|
|
18639
18809
|
} catch {
|
|
18640
18810
|
continue;
|
|
18641
18811
|
}
|
|
@@ -18674,14 +18844,14 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
|
|
|
18674
18844
|
await collectTransitiveAngularSpecs([...angular, ...transitiveRoots], angular);
|
|
18675
18845
|
return Array.from(angular).filter(isResolvable2);
|
|
18676
18846
|
}, buildAngularVendor = async (buildDir, directories = [], linkerJitMode = false, depVendorSpecifiers = []) => {
|
|
18677
|
-
const vendorDir =
|
|
18847
|
+
const vendorDir = join31(buildDir, "angular", "vendor");
|
|
18678
18848
|
mkdirSync9(vendorDir, { recursive: true });
|
|
18679
|
-
const tmpDir =
|
|
18849
|
+
const tmpDir = join31(buildDir, "_angular_vendor_tmp");
|
|
18680
18850
|
mkdirSync9(tmpDir, { recursive: true });
|
|
18681
18851
|
const specifiers = await resolveAngularSpecifiers(directories, linkerJitMode);
|
|
18682
18852
|
const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
|
|
18683
18853
|
const safeName = toSafeFileName2(specifier);
|
|
18684
|
-
const entryPath =
|
|
18854
|
+
const entryPath = join31(tmpDir, `${safeName}.ts`);
|
|
18685
18855
|
await Bun.write(entryPath, await generateVendorEntrySource(specifier));
|
|
18686
18856
|
return entryPath;
|
|
18687
18857
|
}));
|
|
@@ -18712,9 +18882,9 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
|
|
|
18712
18882
|
const specifiers = await resolveAngularSpecifiers(directories, linkerJitMode);
|
|
18713
18883
|
return computeAngularVendorPaths(specifiers);
|
|
18714
18884
|
}, buildAngularServerVendor = async (buildDir, directories = [], linkerJitMode = false) => {
|
|
18715
|
-
const vendorDir =
|
|
18885
|
+
const vendorDir = join31(buildDir, "angular", "vendor", "server");
|
|
18716
18886
|
mkdirSync9(vendorDir, { recursive: true });
|
|
18717
|
-
const tmpDir =
|
|
18887
|
+
const tmpDir = join31(buildDir, "_angular_server_vendor_tmp");
|
|
18718
18888
|
mkdirSync9(tmpDir, { recursive: true });
|
|
18719
18889
|
const browserSpecs = await resolveAngularSpecifiers(directories, linkerJitMode);
|
|
18720
18890
|
const allSpecs = new Set(browserSpecs);
|
|
@@ -18725,7 +18895,7 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
|
|
|
18725
18895
|
const specifiers = Array.from(allSpecs);
|
|
18726
18896
|
const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
|
|
18727
18897
|
const safeName = toSafeFileName2(specifier);
|
|
18728
|
-
const entryPath =
|
|
18898
|
+
const entryPath = join31(tmpDir, `${safeName}.ts`);
|
|
18729
18899
|
await Bun.write(entryPath, await generateVendorEntrySource(specifier));
|
|
18730
18900
|
return entryPath;
|
|
18731
18901
|
}));
|
|
@@ -18747,9 +18917,9 @@ var REQUIRED_ANGULAR_SPECIFIERS_BASE, requiredAngularSpecifiers = (jitMode) => j
|
|
|
18747
18917
|
return specifiers;
|
|
18748
18918
|
}, computeAngularServerVendorPaths = (buildDir, specifiers) => {
|
|
18749
18919
|
const paths = {};
|
|
18750
|
-
const vendorDir =
|
|
18920
|
+
const vendorDir = join31(buildDir, "angular", "vendor", "server");
|
|
18751
18921
|
for (const specifier of specifiers) {
|
|
18752
|
-
paths[specifier] =
|
|
18922
|
+
paths[specifier] = join31(vendorDir, `${toSafeFileName2(specifier)}.js`);
|
|
18753
18923
|
}
|
|
18754
18924
|
return paths;
|
|
18755
18925
|
}, computeAngularServerVendorPathsAsync = async (buildDir, directories = [], linkerJitMode = true) => {
|
|
@@ -18805,17 +18975,17 @@ __export(exports_buildVueVendor, {
|
|
|
18805
18975
|
buildVueVendor: () => buildVueVendor
|
|
18806
18976
|
});
|
|
18807
18977
|
import { mkdirSync as mkdirSync10 } from "fs";
|
|
18808
|
-
import { join as
|
|
18978
|
+
import { join as join32 } from "path";
|
|
18809
18979
|
import { rm as rm7 } from "fs/promises";
|
|
18810
18980
|
var {build: bunBuild5 } = globalThis.Bun;
|
|
18811
18981
|
var vueSpecifiers, toSafeFileName3 = (specifier) => specifier.replace(/\//g, "_"), buildVueVendor = async (buildDir) => {
|
|
18812
|
-
const vendorDir =
|
|
18982
|
+
const vendorDir = join32(buildDir, "vue", "vendor");
|
|
18813
18983
|
mkdirSync10(vendorDir, { recursive: true });
|
|
18814
|
-
const tmpDir =
|
|
18984
|
+
const tmpDir = join32(buildDir, "_vue_vendor_tmp");
|
|
18815
18985
|
mkdirSync10(tmpDir, { recursive: true });
|
|
18816
18986
|
const entrypoints = await Promise.all(vueSpecifiers.map(async (specifier) => {
|
|
18817
18987
|
const safeName = toSafeFileName3(specifier);
|
|
18818
|
-
const entryPath =
|
|
18988
|
+
const entryPath = join32(tmpDir, `${safeName}.ts`);
|
|
18819
18989
|
await Bun.write(entryPath, `export * from '${specifier}';
|
|
18820
18990
|
`);
|
|
18821
18991
|
return entryPath;
|
|
@@ -18840,11 +19010,11 @@ var vueSpecifiers, toSafeFileName3 = (specifier) => specifier.replace(/\//g, "_"
|
|
|
18840
19010
|
console.warn("\u26A0\uFE0F Vue vendor build had errors:", result.logs);
|
|
18841
19011
|
return;
|
|
18842
19012
|
}
|
|
18843
|
-
const { readFileSync:
|
|
18844
|
-
const files =
|
|
19013
|
+
const { readFileSync: readFileSync20, writeFileSync: writeFileSync8, readdirSync: readdirSync5 } = await import("fs");
|
|
19014
|
+
const files = readdirSync5(vendorDir).filter((f2) => f2.endsWith(".js"));
|
|
18845
19015
|
for (const file4 of files) {
|
|
18846
|
-
const filePath =
|
|
18847
|
-
const content =
|
|
19016
|
+
const filePath = join32(vendorDir, file4);
|
|
19017
|
+
const content = readFileSync20(filePath, "utf-8");
|
|
18848
19018
|
if (!content.includes("__VUE_HMR_RUNTIME__"))
|
|
18849
19019
|
continue;
|
|
18850
19020
|
const patched = content.replace(/getGlobalThis\(\)\.__VUE_HMR_RUNTIME__\s*=\s*\{/, "getGlobalThis().__VUE_HMR_RUNTIME__ = getGlobalThis().__VUE_HMR_RUNTIME__ || {");
|
|
@@ -18870,7 +19040,7 @@ __export(exports_buildSvelteVendor, {
|
|
|
18870
19040
|
buildSvelteVendor: () => buildSvelteVendor
|
|
18871
19041
|
});
|
|
18872
19042
|
import { mkdirSync as mkdirSync11 } from "fs";
|
|
18873
|
-
import { join as
|
|
19043
|
+
import { join as join33 } from "path";
|
|
18874
19044
|
import { rm as rm8 } from "fs/promises";
|
|
18875
19045
|
var {build: bunBuild6 } = globalThis.Bun;
|
|
18876
19046
|
var svelteSpecifiers, isResolvable3 = (specifier) => {
|
|
@@ -18884,13 +19054,13 @@ var svelteSpecifiers, isResolvable3 = (specifier) => {
|
|
|
18884
19054
|
const specifiers = resolveVendorSpecifiers2();
|
|
18885
19055
|
if (specifiers.length === 0)
|
|
18886
19056
|
return;
|
|
18887
|
-
const vendorDir =
|
|
19057
|
+
const vendorDir = join33(buildDir, "svelte", "vendor");
|
|
18888
19058
|
mkdirSync11(vendorDir, { recursive: true });
|
|
18889
|
-
const tmpDir =
|
|
19059
|
+
const tmpDir = join33(buildDir, "_svelte_vendor_tmp");
|
|
18890
19060
|
mkdirSync11(tmpDir, { recursive: true });
|
|
18891
19061
|
const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
|
|
18892
19062
|
const safeName = toSafeFileName4(specifier);
|
|
18893
|
-
const entryPath =
|
|
19063
|
+
const entryPath = join33(tmpDir, `${safeName}.ts`);
|
|
18894
19064
|
await Bun.write(entryPath, `export * from '${specifier}';
|
|
18895
19065
|
`);
|
|
18896
19066
|
return entryPath;
|
|
@@ -18940,7 +19110,7 @@ __export(exports_rewriteImportsPlugin, {
|
|
|
18940
19110
|
buildWithImportRewrite: () => buildWithImportRewrite
|
|
18941
19111
|
});
|
|
18942
19112
|
import { readdir as readdir3 } from "fs/promises";
|
|
18943
|
-
import { join as
|
|
19113
|
+
import { join as join34 } from "path";
|
|
18944
19114
|
var escapeRegex2 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), jsRewriteImports = (content, replacements) => {
|
|
18945
19115
|
let result = content;
|
|
18946
19116
|
for (const [specifier, webPath] of replacements) {
|
|
@@ -19069,7 +19239,7 @@ ${content}`;
|
|
|
19069
19239
|
const entries = await readdir3(dir);
|
|
19070
19240
|
for (const entry of entries) {
|
|
19071
19241
|
if (entry.endsWith(".js"))
|
|
19072
|
-
allFiles.push(
|
|
19242
|
+
allFiles.push(join34(dir, entry));
|
|
19073
19243
|
}
|
|
19074
19244
|
} catch {}
|
|
19075
19245
|
}
|
|
@@ -19113,12 +19283,12 @@ import {
|
|
|
19113
19283
|
cpSync,
|
|
19114
19284
|
existsSync as existsSync26,
|
|
19115
19285
|
mkdirSync as mkdirSync12,
|
|
19116
|
-
readFileSync as
|
|
19286
|
+
readFileSync as readFileSync20,
|
|
19117
19287
|
rmSync as rmSync2,
|
|
19118
19288
|
statSync as statSync3,
|
|
19119
19289
|
writeFileSync as writeFileSync8
|
|
19120
19290
|
} from "fs";
|
|
19121
|
-
import { basename as basename10, dirname as dirname17, extname as extname8, join as
|
|
19291
|
+
import { basename as basename10, dirname as dirname17, extname as extname8, join as join35, relative as relative13, resolve as resolve25 } from "path";
|
|
19122
19292
|
import { cwd, env as env2, exit } from "process";
|
|
19123
19293
|
var {build: bunBuild7, Glob: Glob8 } = globalThis.Bun;
|
|
19124
19294
|
var isDev, isBuildTraceEnabled = () => {
|
|
@@ -19196,8 +19366,8 @@ var isDev, isBuildTraceEnabled = () => {
|
|
|
19196
19366
|
mkdirSync12(htmxDestDir, { recursive: true });
|
|
19197
19367
|
const glob = new Glob8("htmx*.min.js");
|
|
19198
19368
|
for (const relPath of glob.scanSync({ cwd: htmxDir })) {
|
|
19199
|
-
const src =
|
|
19200
|
-
const dest =
|
|
19369
|
+
const src = join35(htmxDir, relPath);
|
|
19370
|
+
const dest = join35(htmxDestDir, "htmx.min.js");
|
|
19201
19371
|
copyFileSync2(src, dest);
|
|
19202
19372
|
return;
|
|
19203
19373
|
}
|
|
@@ -19225,7 +19395,7 @@ var isDev, isBuildTraceEnabled = () => {
|
|
|
19225
19395
|
globalThis.__absoluteVersion = pkg.version;
|
|
19226
19396
|
};
|
|
19227
19397
|
await resolveCandidate(candidates);
|
|
19228
|
-
},
|
|
19398
|
+
}, SKIP_DIRS5, addWorkerPathIfExists = (file4, relPath, workerPaths) => {
|
|
19229
19399
|
const absPath = resolve25(file4, "..", relPath);
|
|
19230
19400
|
try {
|
|
19231
19401
|
statSync3(absPath);
|
|
@@ -19241,7 +19411,7 @@ var isDev, isBuildTraceEnabled = () => {
|
|
|
19241
19411
|
addWorkerPathIfExists(file4, relPath, workerPaths);
|
|
19242
19412
|
}
|
|
19243
19413
|
}, collectWorkerPathsFromFile = (file4, patterns, workerPaths) => {
|
|
19244
|
-
const content =
|
|
19414
|
+
const content = readFileSync20(file4, "utf-8");
|
|
19245
19415
|
for (const pattern of patterns) {
|
|
19246
19416
|
collectWorkerPathsFromContent(content, pattern, file4, workerPaths);
|
|
19247
19417
|
}
|
|
@@ -19250,7 +19420,7 @@ var isDev, isBuildTraceEnabled = () => {
|
|
|
19250
19420
|
for await (const file4 of glob.scan({ absolute: true, cwd: dir })) {
|
|
19251
19421
|
const relToDir = file4.slice(dir.length + 1);
|
|
19252
19422
|
const [firstSegment] = relToDir.split("/");
|
|
19253
|
-
if (firstSegment &&
|
|
19423
|
+
if (firstSegment && SKIP_DIRS5.has(firstSegment))
|
|
19254
19424
|
continue;
|
|
19255
19425
|
collectWorkerPathsFromFile(file4, patterns, workerPaths);
|
|
19256
19426
|
}
|
|
@@ -19272,7 +19442,7 @@ var isDev, isBuildTraceEnabled = () => {
|
|
|
19272
19442
|
vuePagesPath
|
|
19273
19443
|
}) => {
|
|
19274
19444
|
const { readdirSync: readDir } = await import("fs");
|
|
19275
|
-
const devIndexDir =
|
|
19445
|
+
const devIndexDir = join35(buildPath, "_src_indexes");
|
|
19276
19446
|
mkdirSync12(devIndexDir, { recursive: true });
|
|
19277
19447
|
if (reactIndexesPath && reactPagesPath) {
|
|
19278
19448
|
copyReactDevIndexes(reactIndexesPath, reactPagesPath, devIndexDir, readDir);
|
|
@@ -19290,35 +19460,35 @@ var isDev, isBuildTraceEnabled = () => {
|
|
|
19290
19460
|
const indexFiles = readDir(reactIndexesPath).filter((file4) => file4.endsWith(".tsx"));
|
|
19291
19461
|
const pagesRel = relative13(process.cwd(), resolve25(reactPagesPath)).replace(/\\/g, "/");
|
|
19292
19462
|
for (const file4 of indexFiles) {
|
|
19293
|
-
let content =
|
|
19463
|
+
let content = readFileSync20(join35(reactIndexesPath, file4), "utf-8");
|
|
19294
19464
|
content = content.replace(/from\s*['"]([^'"]*\/pages\/([^'"]+))['"]/g, (_match, _fullPath, componentName) => `from '/@src/${pagesRel}/${componentName}'`);
|
|
19295
|
-
writeFileSync8(
|
|
19465
|
+
writeFileSync8(join35(devIndexDir, file4), content);
|
|
19296
19466
|
}
|
|
19297
19467
|
}, copySvelteDevIndexes = (svelteDir, sveltePagesPath, svelteEntries, devIndexDir) => {
|
|
19298
|
-
const svelteIndexDir =
|
|
19468
|
+
const svelteIndexDir = join35(getFrameworkGeneratedDir("svelte"), "indexes");
|
|
19299
19469
|
const sveltePageEntries = svelteEntries.filter((file4) => resolve25(file4).startsWith(resolve25(sveltePagesPath)));
|
|
19300
19470
|
for (const entry of sveltePageEntries) {
|
|
19301
19471
|
const name = basename10(entry).replace(/\.svelte(\.(ts|js))?$/, "");
|
|
19302
|
-
const indexFile =
|
|
19472
|
+
const indexFile = join35(svelteIndexDir, "pages", `${name}.js`);
|
|
19303
19473
|
if (!existsSync26(indexFile))
|
|
19304
19474
|
continue;
|
|
19305
|
-
let content =
|
|
19475
|
+
let content = readFileSync20(indexFile, "utf-8");
|
|
19306
19476
|
const srcRel = relative13(process.cwd(), resolve25(entry)).replace(/\\/g, "/");
|
|
19307
19477
|
content = content.replace(/import\s+Component\s+from\s+['"]([^'"]+)['"]/, `import Component from "/@src/${srcRel}"`);
|
|
19308
|
-
writeFileSync8(
|
|
19478
|
+
writeFileSync8(join35(devIndexDir, `${name}.svelte.js`), content);
|
|
19309
19479
|
}
|
|
19310
19480
|
}, copyVueDevIndexes = (vueDir, vuePagesPath, vueEntries, devIndexDir) => {
|
|
19311
|
-
const vueIndexDir =
|
|
19481
|
+
const vueIndexDir = join35(getFrameworkGeneratedDir("vue"), "indexes");
|
|
19312
19482
|
const vuePageEntries = vueEntries.filter((file4) => resolve25(file4).startsWith(resolve25(vuePagesPath)));
|
|
19313
19483
|
for (const entry of vuePageEntries) {
|
|
19314
19484
|
const name = basename10(entry, ".vue");
|
|
19315
|
-
const indexFile =
|
|
19485
|
+
const indexFile = join35(vueIndexDir, `${name}.js`);
|
|
19316
19486
|
if (!existsSync26(indexFile))
|
|
19317
19487
|
continue;
|
|
19318
|
-
let content =
|
|
19488
|
+
let content = readFileSync20(indexFile, "utf-8");
|
|
19319
19489
|
const srcRel = relative13(process.cwd(), resolve25(entry)).replace(/\\/g, "/");
|
|
19320
19490
|
content = content.replace(/import\s+Comp(?:\s*,\s*\*\s+as\s+\w+)?\s+from\s+['"]([^'"]+)['"]/, (match) => match.replace(/from\s+['"][^'"]+['"]/, `from "/@src/${srcRel}"`));
|
|
19321
|
-
writeFileSync8(
|
|
19491
|
+
writeFileSync8(join35(devIndexDir, `${name}.vue.js`), content);
|
|
19322
19492
|
}
|
|
19323
19493
|
}, resolveVueRuntimeId = (content, firstUseName, outputPath, projectRoot) => {
|
|
19324
19494
|
const varIdx = content.indexOf(`var ${firstUseName} =`);
|
|
@@ -19366,7 +19536,7 @@ var isDev, isBuildTraceEnabled = () => {
|
|
|
19366
19536
|
}
|
|
19367
19537
|
return result;
|
|
19368
19538
|
}, VUE_HMR_RUNTIME, injectVueComposableTracking = (outputPath, projectRoot) => {
|
|
19369
|
-
let content =
|
|
19539
|
+
let content = readFileSync20(outputPath, "utf-8");
|
|
19370
19540
|
const usePattern = /^var\s+(use[A-Z]\w*)\s*=/gm;
|
|
19371
19541
|
const useNames = [];
|
|
19372
19542
|
let match;
|
|
@@ -19416,7 +19586,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19416
19586
|
}, rewriteUrlReferences = (outputPaths, urlFileMap) => {
|
|
19417
19587
|
const urlPattern = /new\s+URL\(\s*["'](\.\.?\/[^"']+)["']\s*,\s*import\.meta\.url\s*\)/g;
|
|
19418
19588
|
for (const outputPath of outputPaths) {
|
|
19419
|
-
let content =
|
|
19589
|
+
let content = readFileSync20(outputPath, "utf-8");
|
|
19420
19590
|
let changed = false;
|
|
19421
19591
|
content = content.replace(urlPattern, (_match, relPath) => {
|
|
19422
19592
|
const targetName = basename10(relPath);
|
|
@@ -19541,10 +19711,10 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19541
19711
|
restoreTracePhase();
|
|
19542
19712
|
return;
|
|
19543
19713
|
}
|
|
19544
|
-
const traceDir =
|
|
19714
|
+
const traceDir = join35(buildPath2, ".absolute-trace");
|
|
19545
19715
|
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
19546
19716
|
mkdirSync12(traceDir, { recursive: true });
|
|
19547
|
-
writeFileSync8(
|
|
19717
|
+
writeFileSync8(join35(traceDir, `build-trace-${timestamp}.json`), JSON.stringify({
|
|
19548
19718
|
events: traceEvents,
|
|
19549
19719
|
frameworks: traceFrameworkNames,
|
|
19550
19720
|
generatedAt: new Date().toISOString(),
|
|
@@ -19575,15 +19745,15 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19575
19745
|
const stylesPath = typeof stylesConfig === "string" ? stylesConfig : stylesConfig?.path;
|
|
19576
19746
|
const stylesIgnore = typeof stylesConfig === "object" ? stylesConfig.ignore : undefined;
|
|
19577
19747
|
const stylesDir = stylesPath && validateSafePath(stylesPath, projectRoot);
|
|
19578
|
-
const reactIndexesPath = reactDir &&
|
|
19579
|
-
const reactPagesPath = reactDir &&
|
|
19580
|
-
const htmlPagesPath = htmlDir &&
|
|
19581
|
-
const htmlScriptsPath = htmlDir &&
|
|
19582
|
-
const sveltePagesPath = svelteDir &&
|
|
19583
|
-
const vuePagesPath = vueDir &&
|
|
19584
|
-
const htmxPagesPath = htmxDir &&
|
|
19585
|
-
const angularPagesPath = angularDir &&
|
|
19586
|
-
const emberPagesPath = emberDir &&
|
|
19748
|
+
const reactIndexesPath = reactDir && join35(getFrameworkGeneratedDir("react"), "indexes");
|
|
19749
|
+
const reactPagesPath = reactDir && join35(reactDir, "pages");
|
|
19750
|
+
const htmlPagesPath = htmlDir && join35(htmlDir, "pages");
|
|
19751
|
+
const htmlScriptsPath = htmlDir && join35(htmlDir, "scripts");
|
|
19752
|
+
const sveltePagesPath = svelteDir && join35(svelteDir, "pages");
|
|
19753
|
+
const vuePagesPath = vueDir && join35(vueDir, "pages");
|
|
19754
|
+
const htmxPagesPath = htmxDir && join35(htmxDir, "pages");
|
|
19755
|
+
const angularPagesPath = angularDir && join35(angularDir, "pages");
|
|
19756
|
+
const emberPagesPath = emberDir && join35(emberDir, "pages");
|
|
19587
19757
|
const frontends = [
|
|
19588
19758
|
reactDir,
|
|
19589
19759
|
htmlDir,
|
|
@@ -19642,8 +19812,8 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19642
19812
|
const [firstEntry] = serverDirMap;
|
|
19643
19813
|
if (!firstEntry)
|
|
19644
19814
|
throw new Error("Expected at least one server directory entry");
|
|
19645
|
-
serverRoot =
|
|
19646
|
-
serverOutDir =
|
|
19815
|
+
serverRoot = join35(firstEntry.dir, firstEntry.subdir);
|
|
19816
|
+
serverOutDir = join35(buildPath, basename10(firstEntry.dir));
|
|
19647
19817
|
} else if (serverDirMap.length > 1) {
|
|
19648
19818
|
serverRoot = commonAncestor(serverDirMap.map((entry) => entry.dir), projectRoot);
|
|
19649
19819
|
serverOutDir = buildPath;
|
|
@@ -19671,7 +19841,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19671
19841
|
await tracePhase("react/index-generation", () => generateReactIndexFiles(reactPagesPath, reactIndexesPath, hmr));
|
|
19672
19842
|
}
|
|
19673
19843
|
if (assetsPath && (!isIncremental || normalizedIncrementalFiles?.some((f2) => f2.includes("/assets/")))) {
|
|
19674
|
-
await tracePhase("assets/copy", () => cpSync(assetsPath,
|
|
19844
|
+
await tracePhase("assets/copy", () => cpSync(assetsPath, join35(buildPath, "assets"), {
|
|
19675
19845
|
force: true,
|
|
19676
19846
|
recursive: true
|
|
19677
19847
|
}));
|
|
@@ -19781,11 +19951,11 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19781
19951
|
}
|
|
19782
19952
|
}
|
|
19783
19953
|
if (htmlDefaults.error || htmlDefaults.notFound || htmlDefaults.loading || Object.keys(htmlPages).length > 0) {
|
|
19784
|
-
const htmlConventionsOutDir =
|
|
19954
|
+
const htmlConventionsOutDir = join35(buildPath, "conventions", "html");
|
|
19785
19955
|
mkdirSync12(htmlConventionsOutDir, { recursive: true });
|
|
19786
19956
|
const htmlPathRemap = new Map;
|
|
19787
19957
|
for (const sourcePath of htmlConventionSources) {
|
|
19788
|
-
const dest =
|
|
19958
|
+
const dest = join35(htmlConventionsOutDir, basename10(sourcePath));
|
|
19789
19959
|
cpSync(sourcePath, dest, { force: true });
|
|
19790
19960
|
htmlPathRemap.set(sourcePath, dest);
|
|
19791
19961
|
}
|
|
@@ -19828,7 +19998,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19828
19998
|
const reactEntries = isIncremental && reactIndexesPath && reactPagesPath ? filterToIncrementalEntries(allReactEntries, (entry) => {
|
|
19829
19999
|
if (entry.startsWith(resolve25(reactIndexesPath))) {
|
|
19830
20000
|
const pageName = basename10(entry, ".tsx");
|
|
19831
|
-
return
|
|
20001
|
+
return join35(reactPagesPath, `${pageName}.tsx`);
|
|
19832
20002
|
}
|
|
19833
20003
|
return null;
|
|
19834
20004
|
}) : allReactEntries;
|
|
@@ -19851,6 +20021,20 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19851
20021
|
const shouldCompileSvelte = svelteDir && svelteEntries.length > 0;
|
|
19852
20022
|
const shouldCompileVue = vueDir && vueEntries.length > 0;
|
|
19853
20023
|
const shouldCompileAngular = angularDir && angularEntries.length > 0;
|
|
20024
|
+
const ssrOnlyVueEntries = shouldCompileVue ? await tracePhase("scan/vue-ssr-only", async () => {
|
|
20025
|
+
const { scanVueSsrOnlyPages: scanVueSsrOnlyPages2 } = await Promise.resolve().then(() => (init_scanVueSsrOnlyPages(), exports_scanVueSsrOnlyPages));
|
|
20026
|
+
const ssrOnlyPageNames = scanVueSsrOnlyPages2(projectRoot);
|
|
20027
|
+
if (ssrOnlyPageNames.size === 0)
|
|
20028
|
+
return new Set;
|
|
20029
|
+
const resolved = new Set;
|
|
20030
|
+
for (const entry of vueEntries) {
|
|
20031
|
+
const name = basename10(entry, ".vue");
|
|
20032
|
+
if (ssrOnlyPageNames.has(name)) {
|
|
20033
|
+
resolved.add(resolve25(entry));
|
|
20034
|
+
}
|
|
20035
|
+
}
|
|
20036
|
+
return resolved;
|
|
20037
|
+
}) : new Set;
|
|
19854
20038
|
const shouldCompileEmber = emberDir && emberEntries.length > 0;
|
|
19855
20039
|
const emptyStringArray = [];
|
|
19856
20040
|
const islandBuildInfo = islandRegistryPath ? await tracePhase("islands/registry", () => loadIslandRegistryBuildInfo(islandRegistryPath)) : null;
|
|
@@ -19913,7 +20097,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19913
20097
|
svelteIndexPaths: [...emptyStringArray],
|
|
19914
20098
|
svelteServerPaths: [...emptyStringArray]
|
|
19915
20099
|
},
|
|
19916
|
-
shouldCompileVue ? tracePhase("compile/vue", () => Promise.resolve().then(() => (init_compileVue(), exports_compileVue)).then((mod) => mod.compileVue(vueEntries, vueDir, hmr, styleTransformConfig))) : {
|
|
20100
|
+
shouldCompileVue ? tracePhase("compile/vue", () => Promise.resolve().then(() => (init_compileVue(), exports_compileVue)).then((mod) => mod.compileVue(vueEntries, vueDir, hmr, styleTransformConfig, ssrOnlyVueEntries))) : {
|
|
19917
20101
|
vueClientPaths: [...emptyStringArray],
|
|
19918
20102
|
vueCssPaths: [...emptyStringArray],
|
|
19919
20103
|
vueIndexPaths: [...emptyStringArray],
|
|
@@ -19931,14 +20115,14 @@ ${content.slice(firstUseIdx)}`;
|
|
|
19931
20115
|
try {
|
|
19932
20116
|
const { primeComponentFingerprint: primeComponentFingerprint2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
|
|
19933
20117
|
const { readdir: readdir4 } = await import("fs/promises");
|
|
19934
|
-
const { join:
|
|
20118
|
+
const { join: join36 } = await import("path");
|
|
19935
20119
|
const walk = async (dir) => {
|
|
19936
20120
|
const entries = await readdir4(dir, {
|
|
19937
20121
|
withFileTypes: true
|
|
19938
20122
|
});
|
|
19939
20123
|
const out = [];
|
|
19940
20124
|
for (const entry of entries) {
|
|
19941
|
-
const full =
|
|
20125
|
+
const full = join36(dir, entry.name);
|
|
19942
20126
|
if (entry.isDirectory()) {
|
|
19943
20127
|
out.push(...await walk(full));
|
|
19944
20128
|
} else if (entry.isFile() && entry.name.endsWith(".ts") && !entry.name.endsWith(".d.ts")) {
|
|
@@ -20003,7 +20187,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20003
20187
|
const compileReactConventions = async () => {
|
|
20004
20188
|
if (reactConventionSources.length === 0)
|
|
20005
20189
|
return emptyStringArray;
|
|
20006
|
-
const destDir =
|
|
20190
|
+
const destDir = join35(buildPath, "conventions", "react");
|
|
20007
20191
|
rmSync2(destDir, { force: true, recursive: true });
|
|
20008
20192
|
mkdirSync12(destDir, { recursive: true });
|
|
20009
20193
|
const destPaths = [];
|
|
@@ -20047,7 +20231,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20047
20231
|
angularConventionSources.length > 0 && angularDir ? tracePhase("compile/convention-angular", () => Promise.resolve().then(() => (init_compileAngular(), exports_compileAngular)).then((mod) => mod.compileAngular(angularConventionSources, angularDir, hmr, styleTransformConfig))) : { serverPaths: emptyStringArray }
|
|
20048
20232
|
]);
|
|
20049
20233
|
const bundleConventionFiles = async (framework, compiledPaths) => {
|
|
20050
|
-
const destDir =
|
|
20234
|
+
const destDir = join35(buildPath, "conventions", framework);
|
|
20051
20235
|
rmSync2(destDir, { force: true, recursive: true });
|
|
20052
20236
|
mkdirSync12(destDir, { recursive: true });
|
|
20053
20237
|
const destPaths = [];
|
|
@@ -20121,7 +20305,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20121
20305
|
}
|
|
20122
20306
|
})) : {
|
|
20123
20307
|
entries: [],
|
|
20124
|
-
generatedRoot:
|
|
20308
|
+
generatedRoot: join35(buildPath, "_island_entries")
|
|
20125
20309
|
};
|
|
20126
20310
|
const islandClientEntryPoints = islandEntryResult.entries.map((entry) => entry.entryPath);
|
|
20127
20311
|
if (serverEntryPoints.length === 0 && reactClientEntryPoints.length === 0 && nonReactClientEntryPoints.length === 0 && islandClientEntryPoints.length === 0 && htmxDir === undefined && htmlDir === undefined) {
|
|
@@ -20157,7 +20341,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20157
20341
|
return {};
|
|
20158
20342
|
}
|
|
20159
20343
|
if (hmr && reactIndexesPath && reactClientEntryPoints.length > 0) {
|
|
20160
|
-
const refreshEntry =
|
|
20344
|
+
const refreshEntry = join35(reactIndexesPath, "_refresh.tsx");
|
|
20161
20345
|
if (!reactClientEntryPoints.includes(refreshEntry))
|
|
20162
20346
|
reactClientEntryPoints.push(refreshEntry);
|
|
20163
20347
|
}
|
|
@@ -20259,19 +20443,19 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20259
20443
|
throw: false
|
|
20260
20444
|
}, resolveBunBuildOverride(bunBuildConfig, "reactClient")) : undefined;
|
|
20261
20445
|
if (reactDir && reactClientEntryPoints.length > 0) {
|
|
20262
|
-
rmSync2(
|
|
20446
|
+
rmSync2(join35(buildPath, "react", "generated", "indexes"), {
|
|
20263
20447
|
force: true,
|
|
20264
20448
|
recursive: true
|
|
20265
20449
|
});
|
|
20266
20450
|
}
|
|
20267
20451
|
if (angularDir && angularClientPaths.length > 0) {
|
|
20268
|
-
rmSync2(
|
|
20452
|
+
rmSync2(join35(buildPath, "angular", "indexes"), {
|
|
20269
20453
|
force: true,
|
|
20270
20454
|
recursive: true
|
|
20271
20455
|
});
|
|
20272
20456
|
}
|
|
20273
20457
|
if (islandClientEntryPoints.length > 0) {
|
|
20274
|
-
rmSync2(
|
|
20458
|
+
rmSync2(join35(buildPath, "islands"), {
|
|
20275
20459
|
force: true,
|
|
20276
20460
|
recursive: true
|
|
20277
20461
|
});
|
|
@@ -20360,7 +20544,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20360
20544
|
globalCssEntries.length > 0 ? tracePhase("bun/global-css", () => bunBuild7(mergeBunBuildConfig({
|
|
20361
20545
|
entrypoints: globalCssEntries,
|
|
20362
20546
|
naming: `[dir]/[name].[hash].[ext]`,
|
|
20363
|
-
outdir: stylesDir ?
|
|
20547
|
+
outdir: stylesDir ? join35(buildPath, basename10(stylesDir)) : buildPath,
|
|
20364
20548
|
plugins: [stylePreprocessorPlugin2],
|
|
20365
20549
|
root: stylesDir || clientRoot,
|
|
20366
20550
|
target: "browser",
|
|
@@ -20369,7 +20553,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20369
20553
|
vueCssPaths.length > 0 ? tracePhase("bun/vue-css", () => bunBuild7(mergeBunBuildConfig({
|
|
20370
20554
|
entrypoints: vueCssPaths,
|
|
20371
20555
|
naming: `[name].[hash].[ext]`,
|
|
20372
|
-
outdir:
|
|
20556
|
+
outdir: join35(buildPath, assetsPath ? basename10(assetsPath) : "assets", "css"),
|
|
20373
20557
|
target: "browser",
|
|
20374
20558
|
throw: false
|
|
20375
20559
|
}, resolveBunBuildOverride(bunBuildConfig, "vueCss")))) : undefined
|
|
@@ -20529,7 +20713,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20529
20713
|
const injectHMRIntoHTMLFile = (filePath, framework) => {
|
|
20530
20714
|
if (!hmrClientBundle)
|
|
20531
20715
|
return;
|
|
20532
|
-
let html =
|
|
20716
|
+
let html = readFileSync20(filePath, "utf-8");
|
|
20533
20717
|
if (html.includes("data-hmr-client"))
|
|
20534
20718
|
return;
|
|
20535
20719
|
const tag = `<script>window.__HMR_FRAMEWORK__="${framework}";</script><script data-hmr-client>${hmrClientBundle}</script>`;
|
|
@@ -20540,7 +20724,7 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20540
20724
|
const processHtmlPages = async () => {
|
|
20541
20725
|
if (!(htmlDir && htmlPagesPath))
|
|
20542
20726
|
return;
|
|
20543
|
-
const outputHtmlPages = isSingle ?
|
|
20727
|
+
const outputHtmlPages = isSingle ? join35(buildPath, "pages") : join35(buildPath, basename10(htmlDir), "pages");
|
|
20544
20728
|
mkdirSync12(outputHtmlPages, { recursive: true });
|
|
20545
20729
|
cpSync(htmlPagesPath, outputHtmlPages, {
|
|
20546
20730
|
force: true,
|
|
@@ -20565,14 +20749,14 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20565
20749
|
const processHtmxPages = async () => {
|
|
20566
20750
|
if (!(htmxDir && htmxPagesPath))
|
|
20567
20751
|
return;
|
|
20568
|
-
const outputHtmxPages = isSingle ?
|
|
20752
|
+
const outputHtmxPages = isSingle ? join35(buildPath, "pages") : join35(buildPath, basename10(htmxDir), "pages");
|
|
20569
20753
|
mkdirSync12(outputHtmxPages, { recursive: true });
|
|
20570
20754
|
cpSync(htmxPagesPath, outputHtmxPages, {
|
|
20571
20755
|
force: true,
|
|
20572
20756
|
recursive: true
|
|
20573
20757
|
});
|
|
20574
20758
|
if (shouldCopyHtmx) {
|
|
20575
|
-
const htmxDestDir = isSingle ? buildPath :
|
|
20759
|
+
const htmxDestDir = isSingle ? buildPath : join35(buildPath, basename10(htmxDir));
|
|
20576
20760
|
copyHtmxVendor(htmxDir, htmxDestDir);
|
|
20577
20761
|
}
|
|
20578
20762
|
if (shouldUpdateHtmxAssetPaths) {
|
|
@@ -20637,9 +20821,9 @@ ${content.slice(firstUseIdx)}`;
|
|
|
20637
20821
|
writeBuildTrace(buildPath);
|
|
20638
20822
|
return { conventions: conventionsMap, manifest };
|
|
20639
20823
|
}
|
|
20640
|
-
writeFileSync8(
|
|
20824
|
+
writeFileSync8(join35(buildPath, "manifest.json"), JSON.stringify(manifest, null, "\t"));
|
|
20641
20825
|
if (Object.keys(conventionsMap).length > 0) {
|
|
20642
|
-
writeFileSync8(
|
|
20826
|
+
writeFileSync8(join35(buildPath, "conventions.json"), JSON.stringify(conventionsMap, null, "\t"));
|
|
20643
20827
|
}
|
|
20644
20828
|
writeBuildTrace(buildPath);
|
|
20645
20829
|
if (mode === "production") {
|
|
@@ -20702,7 +20886,7 @@ var init_build = __esm(() => {
|
|
|
20702
20886
|
init_logger();
|
|
20703
20887
|
init_validateSafePath();
|
|
20704
20888
|
isDev = env2.NODE_ENV === "development";
|
|
20705
|
-
|
|
20889
|
+
SKIP_DIRS5 = new Set([
|
|
20706
20890
|
"build",
|
|
20707
20891
|
"node_modules",
|
|
20708
20892
|
".absolutejs",
|
|
@@ -20761,7 +20945,7 @@ var init_build = __esm(() => {
|
|
|
20761
20945
|
|
|
20762
20946
|
// src/build/buildEmberVendor.ts
|
|
20763
20947
|
import { mkdirSync as mkdirSync13, existsSync as existsSync27 } from "fs";
|
|
20764
|
-
import { join as
|
|
20948
|
+
import { join as join36 } from "path";
|
|
20765
20949
|
import { rm as rm9 } from "fs/promises";
|
|
20766
20950
|
var {build: bunBuild8 } = globalThis.Bun;
|
|
20767
20951
|
var toSafeFileName5 = (specifier) => specifier.replace(/^@/, "").replace(/\//g, "_"), generateMacrosShim = () => `// Generated shim for @embroider/macros \u2014 provides minimal runtime
|
|
@@ -20813,7 +20997,7 @@ export const importSync = (specifier) => {
|
|
|
20813
20997
|
if (standaloneSpecifiers.has(specifier)) {
|
|
20814
20998
|
return { resolveTo: specifier, specifier };
|
|
20815
20999
|
}
|
|
20816
|
-
const emberInternalPath =
|
|
21000
|
+
const emberInternalPath = join36(cwd2, "node_modules/ember-source/dist/packages", specifier, "index.js");
|
|
20817
21001
|
if (!existsSync27(emberInternalPath)) {
|
|
20818
21002
|
throw new Error(`Ember vendor build: cannot find ${specifier} at ${emberInternalPath}. ` + `Is ember-source installed and at least 6.12?`);
|
|
20819
21003
|
}
|
|
@@ -20845,7 +21029,7 @@ export const importSync = (specifier) => {
|
|
|
20845
21029
|
if (standalonePackages.has(args.path)) {
|
|
20846
21030
|
return;
|
|
20847
21031
|
}
|
|
20848
|
-
const internal =
|
|
21032
|
+
const internal = join36(cwd2, "node_modules/ember-source/dist/packages", args.path, "index.js");
|
|
20849
21033
|
if (existsSync27(internal)) {
|
|
20850
21034
|
return { path: internal };
|
|
20851
21035
|
}
|
|
@@ -20853,16 +21037,16 @@ export const importSync = (specifier) => {
|
|
|
20853
21037
|
});
|
|
20854
21038
|
}
|
|
20855
21039
|
}), buildEmberVendor = async (buildDir, cwd2 = process.cwd()) => {
|
|
20856
|
-
const vendorDir =
|
|
21040
|
+
const vendorDir = join36(buildDir, "ember", "vendor");
|
|
20857
21041
|
mkdirSync13(vendorDir, { recursive: true });
|
|
20858
|
-
const tmpDir =
|
|
21042
|
+
const tmpDir = join36(buildDir, "_ember_vendor_tmp");
|
|
20859
21043
|
mkdirSync13(tmpDir, { recursive: true });
|
|
20860
|
-
const macrosShimPath =
|
|
21044
|
+
const macrosShimPath = join36(tmpDir, "embroider_macros_shim.js");
|
|
20861
21045
|
await Bun.write(macrosShimPath, generateMacrosShim());
|
|
20862
21046
|
const resolutions = REQUIRED_EMBER_SPECIFIERS.map((specifier) => resolveEmberSpecifier(specifier, cwd2));
|
|
20863
21047
|
const entrypoints = await Promise.all(resolutions.map(async (resolution) => {
|
|
20864
21048
|
const safeName = toSafeFileName5(resolution.specifier);
|
|
20865
|
-
const entryPath =
|
|
21049
|
+
const entryPath = join36(tmpDir, `${safeName}.js`);
|
|
20866
21050
|
const source = resolution.specifier === "@embroider/macros" ? `export * from ${JSON.stringify(macrosShimPath)};
|
|
20867
21051
|
` : generateVendorEntrySource2(resolution);
|
|
20868
21052
|
await Bun.write(entryPath, source);
|
|
@@ -20915,7 +21099,7 @@ __export(exports_dependencyGraph, {
|
|
|
20915
21099
|
buildInitialDependencyGraph: () => buildInitialDependencyGraph,
|
|
20916
21100
|
addFileToGraph: () => addFileToGraph
|
|
20917
21101
|
});
|
|
20918
|
-
import { existsSync as existsSync28, readFileSync as
|
|
21102
|
+
import { existsSync as existsSync28, readFileSync as readFileSync21 } from "fs";
|
|
20919
21103
|
var {Glob: Glob9 } = globalThis.Bun;
|
|
20920
21104
|
import { resolve as resolve26 } from "path";
|
|
20921
21105
|
var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath) => {
|
|
@@ -21086,15 +21270,15 @@ var emptyDependencyGraph, tsTranspiler, jsTranspiler, loaderForFile = (filePath)
|
|
|
21086
21270
|
const lowerPath = filePath.toLowerCase();
|
|
21087
21271
|
const isSvelteOrVue = lowerPath.endsWith(".svelte") || lowerPath.endsWith(".vue");
|
|
21088
21272
|
if (loader === "html") {
|
|
21089
|
-
const content =
|
|
21273
|
+
const content = readFileSync21(filePath, "utf-8");
|
|
21090
21274
|
return extractHtmlDependencies(filePath, content);
|
|
21091
21275
|
}
|
|
21092
21276
|
if (loader === "tsx" || loader === "js") {
|
|
21093
|
-
const content =
|
|
21277
|
+
const content = readFileSync21(filePath, "utf-8");
|
|
21094
21278
|
return extractJsDependencies(filePath, content, loader);
|
|
21095
21279
|
}
|
|
21096
21280
|
if (isSvelteOrVue) {
|
|
21097
|
-
const content =
|
|
21281
|
+
const content = readFileSync21(filePath, "utf-8");
|
|
21098
21282
|
return extractSvelteVueDependencies(filePath, content);
|
|
21099
21283
|
}
|
|
21100
21284
|
return [];
|
|
@@ -21237,7 +21421,7 @@ var init_clientManager = __esm(() => {
|
|
|
21237
21421
|
});
|
|
21238
21422
|
|
|
21239
21423
|
// src/dev/pathUtils.ts
|
|
21240
|
-
import { existsSync as existsSync29, readdirSync as
|
|
21424
|
+
import { existsSync as existsSync29, readdirSync as readdirSync5, readFileSync as readFileSync22 } from "fs";
|
|
21241
21425
|
import { dirname as dirname18, resolve as resolve28 } from "path";
|
|
21242
21426
|
var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
|
|
21243
21427
|
if (shouldIgnorePath(filePath, resolved)) {
|
|
@@ -21319,7 +21503,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
|
|
|
21319
21503
|
const walk = (dir) => {
|
|
21320
21504
|
let entries;
|
|
21321
21505
|
try {
|
|
21322
|
-
entries =
|
|
21506
|
+
entries = readdirSync5(dir, { withFileTypes: true });
|
|
21323
21507
|
} catch {
|
|
21324
21508
|
return;
|
|
21325
21509
|
}
|
|
@@ -21337,7 +21521,7 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
|
|
|
21337
21521
|
}
|
|
21338
21522
|
let source;
|
|
21339
21523
|
try {
|
|
21340
|
-
source =
|
|
21524
|
+
source = readFileSync22(full, "utf8");
|
|
21341
21525
|
} catch {
|
|
21342
21526
|
continue;
|
|
21343
21527
|
}
|
|
@@ -21415,8 +21599,8 @@ var STYLE_EXTENSION_PATTERN2, detectFramework = (filePath, resolved) => {
|
|
|
21415
21599
|
roots.push(abs);
|
|
21416
21600
|
}
|
|
21417
21601
|
try {
|
|
21418
|
-
const { readdirSync:
|
|
21419
|
-
const entries =
|
|
21602
|
+
const { readdirSync: readdirSync6 } = __require("fs");
|
|
21603
|
+
const entries = readdirSync6(cwd2, { withFileTypes: true });
|
|
21420
21604
|
for (const entry of entries) {
|
|
21421
21605
|
if (!entry.isDirectory())
|
|
21422
21606
|
continue;
|
|
@@ -21496,8 +21680,8 @@ var init_pathUtils = __esm(() => {
|
|
|
21496
21680
|
|
|
21497
21681
|
// src/dev/fileWatcher.ts
|
|
21498
21682
|
import { watch } from "fs";
|
|
21499
|
-
import { existsSync as existsSync30, readdirSync as
|
|
21500
|
-
import { dirname as dirname19, join as
|
|
21683
|
+
import { existsSync as existsSync30, readdirSync as readdirSync6, statSync as statSync4 } from "fs";
|
|
21684
|
+
import { dirname as dirname19, join as join37, resolve as resolve29 } from "path";
|
|
21501
21685
|
var safeRemoveFromGraph = (graph, fullPath) => {
|
|
21502
21686
|
try {
|
|
21503
21687
|
removeFileFromGraph(graph, fullPath);
|
|
@@ -21522,7 +21706,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
|
|
|
21522
21706
|
const atomicRecoveryScan = (eventDir) => {
|
|
21523
21707
|
let entries;
|
|
21524
21708
|
try {
|
|
21525
|
-
entries =
|
|
21709
|
+
entries = readdirSync6(eventDir);
|
|
21526
21710
|
} catch {
|
|
21527
21711
|
return;
|
|
21528
21712
|
}
|
|
@@ -21530,7 +21714,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
|
|
|
21530
21714
|
for (const name of entries) {
|
|
21531
21715
|
if (shouldSkipFilename(name, isStylesDir))
|
|
21532
21716
|
continue;
|
|
21533
|
-
const child =
|
|
21717
|
+
const child = join37(eventDir, name).replace(/\\/g, "/");
|
|
21534
21718
|
let st2;
|
|
21535
21719
|
try {
|
|
21536
21720
|
st2 = statSync4(child);
|
|
@@ -21555,12 +21739,12 @@ var safeRemoveFromGraph = (graph, fullPath) => {
|
|
|
21555
21739
|
return;
|
|
21556
21740
|
if (shouldSkipFilename(filename, isStylesDir)) {
|
|
21557
21741
|
if (event === "rename") {
|
|
21558
|
-
const eventDir = dirname19(
|
|
21742
|
+
const eventDir = dirname19(join37(absolutePath, filename)).replace(/\\/g, "/");
|
|
21559
21743
|
atomicRecoveryScan(eventDir);
|
|
21560
21744
|
}
|
|
21561
21745
|
return;
|
|
21562
21746
|
}
|
|
21563
|
-
const fullPath =
|
|
21747
|
+
const fullPath = join37(absolutePath, filename).replace(/\\/g, "/");
|
|
21564
21748
|
if (shouldIgnorePath(fullPath, state.resolvedPaths)) {
|
|
21565
21749
|
return;
|
|
21566
21750
|
}
|
|
@@ -21712,7 +21896,7 @@ var init_assetStore = __esm(() => {
|
|
|
21712
21896
|
});
|
|
21713
21897
|
|
|
21714
21898
|
// src/islands/pageMetadata.ts
|
|
21715
|
-
import { readFileSync as
|
|
21899
|
+
import { readFileSync as readFileSync23 } from "fs";
|
|
21716
21900
|
import { dirname as dirname20, resolve as resolve31 } from "path";
|
|
21717
21901
|
var pagePatterns, getPageDirs = (config) => [
|
|
21718
21902
|
{ dir: config.angularDirectory, framework: "angular" },
|
|
@@ -21755,7 +21939,7 @@ var pagePatterns, getPageDirs = (config) => [
|
|
|
21755
21939
|
return;
|
|
21756
21940
|
const files = await scanEntryPoints(resolve31(entry.dir), pattern);
|
|
21757
21941
|
for (const filePath of files) {
|
|
21758
|
-
const source =
|
|
21942
|
+
const source = readFileSync23(filePath, "utf-8");
|
|
21759
21943
|
const islands = extractIslandUsagesFromSource(source);
|
|
21760
21944
|
pageMetadata.set(resolve31(filePath), {
|
|
21761
21945
|
islands: resolveIslandUsages(islands, islandSourceLookup),
|
|
@@ -21786,10 +21970,10 @@ var init_pageMetadata = __esm(() => {
|
|
|
21786
21970
|
});
|
|
21787
21971
|
|
|
21788
21972
|
// src/dev/fileHashTracker.ts
|
|
21789
|
-
import { readFileSync as
|
|
21973
|
+
import { readFileSync as readFileSync24 } from "fs";
|
|
21790
21974
|
var computeFileHash = (filePath) => {
|
|
21791
21975
|
try {
|
|
21792
|
-
const fileContent =
|
|
21976
|
+
const fileContent = readFileSync24(filePath);
|
|
21793
21977
|
return Number(Bun.hash(fileContent));
|
|
21794
21978
|
} catch {
|
|
21795
21979
|
return UNFOUND_INDEX;
|
|
@@ -22003,15 +22187,15 @@ __export(exports_resolveOwningComponents, {
|
|
|
22003
22187
|
resolveDescendantsOfParent: () => resolveDescendantsOfParent,
|
|
22004
22188
|
invalidateResourceIndex: () => invalidateResourceIndex
|
|
22005
22189
|
});
|
|
22006
|
-
import { readdirSync as
|
|
22007
|
-
import { dirname as dirname21, extname as extname9, join as
|
|
22008
|
-
import
|
|
22190
|
+
import { readdirSync as readdirSync7, readFileSync as readFileSync25, statSync as statSync5 } from "fs";
|
|
22191
|
+
import { dirname as dirname21, extname as extname9, join as join38, resolve as resolve34 } from "path";
|
|
22192
|
+
import ts15 from "typescript";
|
|
22009
22193
|
var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") || file4.endsWith(".tsx"), walkAngularSourceFiles = (root) => {
|
|
22010
22194
|
const out = [];
|
|
22011
22195
|
const visit = (dir) => {
|
|
22012
22196
|
let entries;
|
|
22013
22197
|
try {
|
|
22014
|
-
entries =
|
|
22198
|
+
entries = readdirSync7(dir, { withFileTypes: true });
|
|
22015
22199
|
} catch {
|
|
22016
22200
|
return;
|
|
22017
22201
|
}
|
|
@@ -22019,7 +22203,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") ||
|
|
|
22019
22203
|
if (entry.name.startsWith(".") || entry.name === "node_modules") {
|
|
22020
22204
|
continue;
|
|
22021
22205
|
}
|
|
22022
|
-
const full =
|
|
22206
|
+
const full = join38(dir, entry.name);
|
|
22023
22207
|
if (entry.isDirectory()) {
|
|
22024
22208
|
visit(full);
|
|
22025
22209
|
} else if (entry.isFile() && isAngularSourceFile(entry.name)) {
|
|
@@ -22031,13 +22215,13 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") ||
|
|
|
22031
22215
|
return out;
|
|
22032
22216
|
}, getStringPropertyValue = (obj, name) => {
|
|
22033
22217
|
for (const prop of obj.properties) {
|
|
22034
|
-
if (!
|
|
22218
|
+
if (!ts15.isPropertyAssignment(prop))
|
|
22035
22219
|
continue;
|
|
22036
|
-
const propName =
|
|
22220
|
+
const propName = ts15.isIdentifier(prop.name) ? prop.name.text : ts15.isStringLiteral(prop.name) ? prop.name.text : null;
|
|
22037
22221
|
if (propName !== name)
|
|
22038
22222
|
continue;
|
|
22039
22223
|
const init = prop.initializer;
|
|
22040
|
-
if (
|
|
22224
|
+
if (ts15.isStringLiteral(init) || ts15.isNoSubstitutionTemplateLiteral(init)) {
|
|
22041
22225
|
return init.text;
|
|
22042
22226
|
}
|
|
22043
22227
|
}
|
|
@@ -22045,16 +22229,16 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") ||
|
|
|
22045
22229
|
}, getStringArrayProperty = (obj, name) => {
|
|
22046
22230
|
const out = [];
|
|
22047
22231
|
for (const prop of obj.properties) {
|
|
22048
|
-
if (!
|
|
22232
|
+
if (!ts15.isPropertyAssignment(prop))
|
|
22049
22233
|
continue;
|
|
22050
|
-
const propName =
|
|
22234
|
+
const propName = ts15.isIdentifier(prop.name) ? prop.name.text : ts15.isStringLiteral(prop.name) ? prop.name.text : null;
|
|
22051
22235
|
if (propName !== name)
|
|
22052
22236
|
continue;
|
|
22053
22237
|
const init = prop.initializer;
|
|
22054
|
-
if (!
|
|
22238
|
+
if (!ts15.isArrayLiteralExpression(init))
|
|
22055
22239
|
continue;
|
|
22056
22240
|
for (const element of init.elements) {
|
|
22057
|
-
if (
|
|
22241
|
+
if (ts15.isStringLiteral(element) || ts15.isNoSubstitutionTemplateLiteral(element)) {
|
|
22058
22242
|
out.push(element.text);
|
|
22059
22243
|
}
|
|
22060
22244
|
}
|
|
@@ -22063,31 +22247,31 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") ||
|
|
|
22063
22247
|
}, parseDecoratedClasses = (filePath) => {
|
|
22064
22248
|
let source;
|
|
22065
22249
|
try {
|
|
22066
|
-
source =
|
|
22250
|
+
source = readFileSync25(filePath, "utf8");
|
|
22067
22251
|
} catch {
|
|
22068
22252
|
return [];
|
|
22069
22253
|
}
|
|
22070
|
-
const sourceFile =
|
|
22254
|
+
const sourceFile = ts15.createSourceFile(filePath, source, ts15.ScriptTarget.ES2022, true, ts15.ScriptKind.TS);
|
|
22071
22255
|
const out = [];
|
|
22072
22256
|
const visit = (node) => {
|
|
22073
|
-
if (
|
|
22074
|
-
for (const decorator of
|
|
22257
|
+
if (ts15.isClassDeclaration(node) && node.name) {
|
|
22258
|
+
for (const decorator of ts15.getDecorators(node) ?? []) {
|
|
22075
22259
|
const expr = decorator.expression;
|
|
22076
|
-
if (!
|
|
22260
|
+
if (!ts15.isCallExpression(expr))
|
|
22077
22261
|
continue;
|
|
22078
22262
|
const fn2 = expr.expression;
|
|
22079
|
-
if (!
|
|
22263
|
+
if (!ts15.isIdentifier(fn2))
|
|
22080
22264
|
continue;
|
|
22081
22265
|
const kind = ENTITY_DECORATORS[fn2.text];
|
|
22082
22266
|
if (!kind)
|
|
22083
22267
|
continue;
|
|
22084
22268
|
let extendsName = null;
|
|
22085
22269
|
for (const heritage of node.heritageClauses ?? []) {
|
|
22086
|
-
if (heritage.token !==
|
|
22270
|
+
if (heritage.token !== ts15.SyntaxKind.ExtendsKeyword) {
|
|
22087
22271
|
continue;
|
|
22088
22272
|
}
|
|
22089
22273
|
const first = heritage.types[0];
|
|
22090
|
-
if (first &&
|
|
22274
|
+
if (first && ts15.isIdentifier(first.expression)) {
|
|
22091
22275
|
extendsName = first.expression.text;
|
|
22092
22276
|
}
|
|
22093
22277
|
break;
|
|
@@ -22100,7 +22284,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") ||
|
|
|
22100
22284
|
extendsName
|
|
22101
22285
|
};
|
|
22102
22286
|
const arg = expr.arguments[0];
|
|
22103
|
-
if (arg &&
|
|
22287
|
+
if (arg && ts15.isObjectLiteralExpression(arg) && kind === "component") {
|
|
22104
22288
|
const tplUrl = getStringPropertyValue(arg, "templateUrl");
|
|
22105
22289
|
if (tplUrl)
|
|
22106
22290
|
entry.templateUrls.push(tplUrl);
|
|
@@ -22113,7 +22297,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") ||
|
|
|
22113
22297
|
break;
|
|
22114
22298
|
}
|
|
22115
22299
|
}
|
|
22116
|
-
|
|
22300
|
+
ts15.forEachChild(node, visit);
|
|
22117
22301
|
};
|
|
22118
22302
|
visit(sourceFile);
|
|
22119
22303
|
return out;
|
|
@@ -22153,16 +22337,16 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") ||
|
|
|
22153
22337
|
}, indexByRoot, resolveParentClassFile = (parentName, childFilePath, angularRoot) => {
|
|
22154
22338
|
let source;
|
|
22155
22339
|
try {
|
|
22156
|
-
source =
|
|
22340
|
+
source = readFileSync25(childFilePath, "utf8");
|
|
22157
22341
|
} catch {
|
|
22158
22342
|
return null;
|
|
22159
22343
|
}
|
|
22160
|
-
const sf =
|
|
22344
|
+
const sf = ts15.createSourceFile(childFilePath, source, ts15.ScriptTarget.ES2022, true, ts15.ScriptKind.TS);
|
|
22161
22345
|
const childDir = dirname21(childFilePath);
|
|
22162
22346
|
for (const stmt of sf.statements) {
|
|
22163
|
-
if (!
|
|
22347
|
+
if (!ts15.isImportDeclaration(stmt))
|
|
22164
22348
|
continue;
|
|
22165
|
-
if (!
|
|
22349
|
+
if (!ts15.isStringLiteral(stmt.moduleSpecifier))
|
|
22166
22350
|
continue;
|
|
22167
22351
|
const clause = stmt.importClause;
|
|
22168
22352
|
if (!clause || clause.isTypeOnly)
|
|
@@ -22170,7 +22354,7 @@ var ENTITY_DECORATORS, isAngularSourceFile = (file4) => file4.endsWith(".ts") ||
|
|
|
22170
22354
|
let matchesName = false;
|
|
22171
22355
|
if (clause.name && clause.name.text === parentName)
|
|
22172
22356
|
matchesName = true;
|
|
22173
|
-
if (!matchesName && clause.namedBindings &&
|
|
22357
|
+
if (!matchesName && clause.namedBindings && ts15.isNamedImports(clause.namedBindings)) {
|
|
22174
22358
|
for (const el of clause.namedBindings.elements) {
|
|
22175
22359
|
if (el.isTypeOnly)
|
|
22176
22360
|
continue;
|
|
@@ -22520,8 +22704,8 @@ __export(exports_moduleServer, {
|
|
|
22520
22704
|
createModuleServer: () => createModuleServer,
|
|
22521
22705
|
SRC_URL_PREFIX: () => SRC_URL_PREFIX
|
|
22522
22706
|
});
|
|
22523
|
-
import { existsSync as existsSync31, readFileSync as
|
|
22524
|
-
import { basename as basename12, dirname as dirname22, extname as extname10, join as
|
|
22707
|
+
import { existsSync as existsSync31, readFileSync as readFileSync26, statSync as statSync6 } from "fs";
|
|
22708
|
+
import { basename as basename12, dirname as dirname22, extname as extname10, join as join39, resolve as resolve36, relative as relative14 } from "path";
|
|
22525
22709
|
var SRC_PREFIX = "/@src/", jsTranspiler2, tsTranspiler2, tsxTranspiler, TRANSPILABLE, ALL_EXPORTS_RE, STRING_CONTENTS_RE, preserveTypeExports = (originalSource, transpiled, valueExports) => {
|
|
22526
22710
|
const codeOnly = originalSource.replace(STRING_CONTENTS_RE, '""');
|
|
22527
22711
|
const allExports = [];
|
|
@@ -22593,9 +22777,9 @@ ${stubs}
|
|
|
22593
22777
|
const subpath = isScoped ? parts.slice(2).join("/") : parts.slice(1).join("/");
|
|
22594
22778
|
if (!subpath) {
|
|
22595
22779
|
const pkgDir = resolve36(projectRoot, "node_modules", packageName ?? "");
|
|
22596
|
-
const pkgJsonPath =
|
|
22780
|
+
const pkgJsonPath = join39(pkgDir, "package.json");
|
|
22597
22781
|
if (existsSync31(pkgJsonPath)) {
|
|
22598
|
-
const pkg = JSON.parse(
|
|
22782
|
+
const pkg = JSON.parse(readFileSync26(pkgJsonPath, "utf-8"));
|
|
22599
22783
|
const esmEntry = typeof pkg.module === "string" && pkg.module || typeof pkg.browser === "string" && pkg.browser;
|
|
22600
22784
|
if (esmEntry) {
|
|
22601
22785
|
const resolved = resolve36(pkgDir, esmEntry);
|
|
@@ -22696,7 +22880,7 @@ ${code}`;
|
|
|
22696
22880
|
reactFastRefreshWarningEmitted = true;
|
|
22697
22881
|
logWarn("React HMR is blocked: this Bun build ignores " + "`reactFastRefresh` on Bun.Transpiler, so component state " + "cannot be preserved across edits. Tracking " + "https://github.com/oven-sh/bun/pull/28312 \u2014 if it still has " + "not merged, leave a \uD83D\uDC4D on the PR so the Bun team knows it " + "is blocking you. Until then, React edits trigger a full " + "reload instead of a fast refresh.");
|
|
22698
22882
|
}, transformReactFile = (filePath, projectRoot, rewriter) => {
|
|
22699
|
-
const raw =
|
|
22883
|
+
const raw = readFileSync26(filePath, "utf-8");
|
|
22700
22884
|
const valueExports = tsxTranspiler.scan(raw).exports;
|
|
22701
22885
|
let transpiled = reactTranspiler.transformSync(raw);
|
|
22702
22886
|
transpiled = preserveTypeExports(raw, transpiled, valueExports);
|
|
@@ -22712,7 +22896,7 @@ ${transpiled}`;
|
|
|
22712
22896
|
transpiled += buildIslandMetadataExports(raw);
|
|
22713
22897
|
return rewriteImports(transpiled, filePath, projectRoot, rewriter);
|
|
22714
22898
|
}, transformPlainFile = (filePath, projectRoot, rewriter, vueDir) => {
|
|
22715
|
-
const raw =
|
|
22899
|
+
const raw = readFileSync26(filePath, "utf-8");
|
|
22716
22900
|
const ext = extname10(filePath);
|
|
22717
22901
|
const isTS = ext === ".ts" || ext === ".tsx";
|
|
22718
22902
|
const isTSX = ext === ".tsx" || ext === ".jsx";
|
|
@@ -22878,7 +23062,7 @@ ${code}`;
|
|
|
22878
23062
|
` + ` var __hmr_accept = function(cb) { window.__SVELTE_HMR_ACCEPT__[${JSON.stringify(moduleUrl)}] = cb; };`);
|
|
22879
23063
|
return code.replace(/import\.meta\.hot\.accept\(/g, "__hmr_accept(");
|
|
22880
23064
|
}, transformSvelteFile = async (filePath, projectRoot, rewriter, stylePreprocessors) => {
|
|
22881
|
-
const raw =
|
|
23065
|
+
const raw = readFileSync26(filePath, "utf-8");
|
|
22882
23066
|
if (!svelteCompiler) {
|
|
22883
23067
|
svelteCompiler = await import("svelte/compiler");
|
|
22884
23068
|
}
|
|
@@ -22940,7 +23124,7 @@ export default __script__;`;
|
|
|
22940
23124
|
return `${cssInjection}
|
|
22941
23125
|
${code}`;
|
|
22942
23126
|
}, transformVueFile = async (filePath, projectRoot, rewriter, vueDir, stylePreprocessors) => {
|
|
22943
|
-
const rawSource =
|
|
23127
|
+
const rawSource = readFileSync26(filePath, "utf-8");
|
|
22944
23128
|
const raw = addAutoRouterSetupApp(rawSource);
|
|
22945
23129
|
if (!vueCompiler) {
|
|
22946
23130
|
vueCompiler = await import("@vue/compiler-sfc");
|
|
@@ -22995,7 +23179,7 @@ ${code}`;
|
|
|
22995
23179
|
}
|
|
22996
23180
|
});
|
|
22997
23181
|
}, handleCssRequest = (filePath) => {
|
|
22998
|
-
const raw =
|
|
23182
|
+
const raw = readFileSync26(filePath, "utf-8");
|
|
22999
23183
|
const escaped = raw.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
|
|
23000
23184
|
return [
|
|
23001
23185
|
`const style = document.createElement('style');`,
|
|
@@ -23654,7 +23838,7 @@ var init_simpleHTMXHMR = () => {};
|
|
|
23654
23838
|
|
|
23655
23839
|
// src/dev/rebuildTrigger.ts
|
|
23656
23840
|
import { existsSync as existsSync32, rmSync as rmSync3 } from "fs";
|
|
23657
|
-
import { basename as basename13, dirname as dirname24, join as
|
|
23841
|
+
import { basename as basename13, dirname as dirname24, join as join40, relative as relative16, resolve as resolve40, sep as sep4 } from "path";
|
|
23658
23842
|
var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequentially = (items, action) => items.reduce((chain, item) => chain.then(() => action(item)), Promise.resolve()), getStyleTransformConfig = (config) => createStyleTransformConfig(config.stylePreprocessors, config.postcss), recompileTailwindForFastPath = async (state, config, files) => {
|
|
23659
23843
|
if (!config.tailwind)
|
|
23660
23844
|
return;
|
|
@@ -23771,8 +23955,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
23771
23955
|
const relJs = `${rel.slice(0, -ext[0].length)}.js`;
|
|
23772
23956
|
const generatedDir = getFrameworkGeneratedDir(framework, cwd2);
|
|
23773
23957
|
for (const candidate of [
|
|
23774
|
-
|
|
23775
|
-
`${
|
|
23958
|
+
join40(generatedDir, relJs),
|
|
23959
|
+
`${join40(generatedDir, relJs)}.map`
|
|
23776
23960
|
]) {
|
|
23777
23961
|
try {
|
|
23778
23962
|
rmSync3(candidate, { force: true });
|
|
@@ -24634,12 +24818,12 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
24634
24818
|
try {
|
|
24635
24819
|
const { primeComponentFingerprint: primeComponentFingerprint2 } = await Promise.resolve().then(() => (init_fastHmrCompiler(), exports_fastHmrCompiler));
|
|
24636
24820
|
const { readdir: readdir5 } = await import("fs/promises");
|
|
24637
|
-
const { join:
|
|
24821
|
+
const { join: join41 } = await import("path");
|
|
24638
24822
|
const walk = async (dir) => {
|
|
24639
24823
|
const entries = await readdir5(dir, { withFileTypes: true });
|
|
24640
24824
|
const files = [];
|
|
24641
24825
|
for (const entry of entries) {
|
|
24642
|
-
const full =
|
|
24826
|
+
const full = join41(dir, entry.name);
|
|
24643
24827
|
if (entry.isDirectory()) {
|
|
24644
24828
|
files.push(...await walk(full));
|
|
24645
24829
|
} else if (entry.isFile() && entry.name.endsWith(".ts") && !entry.name.endsWith(".d.ts")) {
|
|
@@ -24692,9 +24876,9 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
24692
24876
|
const editedProvidersChain = providersImport && angularFiles.some((file4) => resolve40(file4) === resolve40(providersImport.absolutePath) || resolve40(file4).startsWith(`${resolve40(angularDir)}/`));
|
|
24693
24877
|
const pageEntries = editedProvidersChain && initialPageEntries.length === 0 ? (() => {
|
|
24694
24878
|
const allPages = [];
|
|
24695
|
-
const { readdirSync:
|
|
24879
|
+
const { readdirSync: readdirSync8 } = __require("fs");
|
|
24696
24880
|
const walk = (dir) => {
|
|
24697
|
-
for (const entry of
|
|
24881
|
+
for (const entry of readdirSync8(dir, {
|
|
24698
24882
|
withFileTypes: true
|
|
24699
24883
|
})) {
|
|
24700
24884
|
const full = resolve40(dir, entry.name);
|
|
@@ -25105,7 +25289,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
|
|
|
25105
25289
|
const { vueServerPaths, vueIndexPaths, vueClientPaths, vueCssPaths } = await compileVue2(vueFiles, vueDir, true, getStyleTransformConfig(state.config));
|
|
25106
25290
|
const serverEntries = [...vueServerPaths];
|
|
25107
25291
|
const clientEntries = [...vueIndexPaths, ...vueClientPaths];
|
|
25108
|
-
const cssOutDir =
|
|
25292
|
+
const cssOutDir = join40(buildDir, state.resolvedPaths.assetsDir ? basename13(state.resolvedPaths.assetsDir) : "assets", "css");
|
|
25109
25293
|
const { serverRoot, serverOutDir } = await computeServerOutPaths(state.resolvedPaths, "vue");
|
|
25110
25294
|
const [serverResult, clientResult, cssResult] = await Promise.all([
|
|
25111
25295
|
serverEntries.length > 0 ? bunBuild9({
|
|
@@ -26120,7 +26304,7 @@ __export(exports_buildDepVendor, {
|
|
|
26120
26304
|
buildDepVendor: () => buildDepVendor
|
|
26121
26305
|
});
|
|
26122
26306
|
import { mkdirSync as mkdirSync14 } from "fs";
|
|
26123
|
-
import { join as
|
|
26307
|
+
import { join as join41 } from "path";
|
|
26124
26308
|
import { rm as rm10 } from "fs/promises";
|
|
26125
26309
|
var {build: bunBuild9, Glob: Glob10 } = globalThis.Bun;
|
|
26126
26310
|
var toSafeFileName6 = (specifier) => {
|
|
@@ -26174,7 +26358,7 @@ var toSafeFileName6 = (specifier) => {
|
|
|
26174
26358
|
framework: Array.from(framework).filter(isResolvable4)
|
|
26175
26359
|
};
|
|
26176
26360
|
}, collectTransitiveImports = async (specs, alreadyVendored, alreadyScanned) => {
|
|
26177
|
-
const { readFileSync:
|
|
26361
|
+
const { readFileSync: readFileSync27 } = await import("fs");
|
|
26178
26362
|
const transpiler6 = new Bun.Transpiler({ loader: "js" });
|
|
26179
26363
|
const newSpecs = new Set;
|
|
26180
26364
|
for (const spec of specs) {
|
|
@@ -26189,7 +26373,7 @@ var toSafeFileName6 = (specifier) => {
|
|
|
26189
26373
|
}
|
|
26190
26374
|
let content;
|
|
26191
26375
|
try {
|
|
26192
|
-
content =
|
|
26376
|
+
content = readFileSync27(resolved, "utf-8");
|
|
26193
26377
|
} catch {
|
|
26194
26378
|
continue;
|
|
26195
26379
|
}
|
|
@@ -26231,7 +26415,7 @@ var toSafeFileName6 = (specifier) => {
|
|
|
26231
26415
|
}), buildDepVendorPass = async (specifiers, vendorDir, tmpDir) => {
|
|
26232
26416
|
const entries = await Promise.all(specifiers.map(async (specifier) => {
|
|
26233
26417
|
const safeName = toSafeFileName6(specifier);
|
|
26234
|
-
const entryPath =
|
|
26418
|
+
const entryPath = join41(tmpDir, `${safeName}.ts`);
|
|
26235
26419
|
await Bun.write(entryPath, await generateVendorEntrySource(specifier));
|
|
26236
26420
|
return { entryPath, specifier };
|
|
26237
26421
|
}));
|
|
@@ -26292,9 +26476,9 @@ var toSafeFileName6 = (specifier) => {
|
|
|
26292
26476
|
const { dep: initialSpecs, framework: frameworkRoots } = await scanBareImports(directories);
|
|
26293
26477
|
if (initialSpecs.length === 0 && frameworkRoots.length === 0)
|
|
26294
26478
|
return {};
|
|
26295
|
-
const vendorDir =
|
|
26479
|
+
const vendorDir = join41(buildDir, "vendor");
|
|
26296
26480
|
mkdirSync14(vendorDir, { recursive: true });
|
|
26297
|
-
const tmpDir =
|
|
26481
|
+
const tmpDir = join41(buildDir, "_dep_vendor_tmp");
|
|
26298
26482
|
mkdirSync14(tmpDir, { recursive: true });
|
|
26299
26483
|
const allSpecs = new Set(initialSpecs);
|
|
26300
26484
|
const alreadyScanned = new Set;
|
|
@@ -26806,5 +26990,5 @@ export {
|
|
|
26806
26990
|
build
|
|
26807
26991
|
};
|
|
26808
26992
|
|
|
26809
|
-
//# debugId=
|
|
26993
|
+
//# debugId=D5F157E27B971C2F64756E2164756E21
|
|
26810
26994
|
//# sourceMappingURL=build.js.map
|