@absolutejs/absolute 0.20.0-beta.180 → 0.20.0-beta.182

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.
Files changed (129) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/changelog.json +70 -0
  3. package/dist/angular/browser.js +2 -2
  4. package/dist/angular/browser.js.map +4 -4
  5. package/dist/angular/components/constants.js +4 -0
  6. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  7. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  8. package/dist/angular/index.js +349 -48
  9. package/dist/angular/index.js.map +11 -11
  10. package/dist/angular/server.js +349 -48
  11. package/dist/angular/server.js.map +11 -11
  12. package/dist/build.js +605 -114
  13. package/dist/build.js.map +20 -20
  14. package/dist/cli/{add-8gw9mk2b.js → add-jft96bp4.js} +9 -9
  15. package/dist/cli/{analyze-e57zz9x8.js → analyze-5w46d1f0.js} +3 -3
  16. package/dist/cli/{androidEmulatorController-vqc5m2rp.js → androidEmulatorController-gbf9r660.js} +6 -6
  17. package/dist/cli/{androidNativeWatcher-s03aczxv.js → androidNativeWatcher-3astrxxz.js} +6 -6
  18. package/dist/cli/{api-8ppxw487.js → api-zmvnvdsf.js} +8 -8
  19. package/dist/cli/{build-fz7qbdn3.js → build-mskrk9zb.js} +3 -3
  20. package/dist/cli/{build-fntmf42w.js → build-p3qra1nj.js} +65 -7
  21. package/dist/cli/{buildDepVendor-qnwfct22.js → buildDepVendor-36d1aa7c.js} +2 -2
  22. package/dist/cli/{buildReactServerComponents-fq6mw10d.js → buildReactServerComponents-vc9hh2rd.js} +5 -5
  23. package/dist/cli/{compile-54rb8szn.js → compile-7mjd739p.js} +10 -6
  24. package/dist/cli/config/server.js +18 -17
  25. package/dist/cli/{db-qbzjw3en.js → db-mpmj37jq.js} +2 -2
  26. package/dist/cli/{dev-6s6g5tnk.js → dev-9d6d7757.js} +14 -14
  27. package/dist/cli/{doctor-m36tmx4d.js → doctor-nng9szw6.js} +3 -3
  28. package/dist/cli/{emulatorDoctor-s1z5tkp7.js → emulatorDoctor-3eszsqs8.js} +5 -5
  29. package/dist/cli/{emulatorInstaller-pgkdswvq.js → emulatorInstaller-1r6cawm0.js} +6 -6
  30. package/dist/cli/{env-5nz1qm8e.js → env-bfa7vs35.js} +3 -3
  31. package/dist/cli/{expoDevController-018anvbm.js → expoDevController-s0msdwbm.js} +6 -6
  32. package/dist/cli/{generate-5vyz1s44.js → generate-xk3a7qnc.js} +8 -8
  33. package/dist/cli/{heapDiff-kncvdtn8.js → heapDiff-3ba8p8wf.js} +3 -3
  34. package/dist/cli/{htmx-26hs6jdm.js → htmx-an2x3gpx.js} +6 -6
  35. package/dist/cli/{index-7854xf0m.js → index-1bszxtdj.js} +1 -1
  36. package/dist/cli/{index-kx2d067c.js → index-3066eqr3.js} +8 -5
  37. package/dist/cli/{index-8khbn8qr.js → index-3a9h87v5.js} +3 -3
  38. package/dist/cli/{index-9djrap79.js → index-3pz5sjaz.js} +1 -1
  39. package/dist/cli/{index-50ag35xg.js → index-3ys9tz53.js} +2 -2
  40. package/dist/cli/{index-6f448d7m.js → index-4ynx0cq6.js} +26 -12
  41. package/dist/cli/{index-btp4fyf1.js → index-785hpa2r.js} +2 -2
  42. package/dist/cli/{index-w79snsxv.js → index-7zwzyymv.js} +2 -2
  43. package/dist/cli/{index-kes8he5s.js → index-9sqqzeq4.js} +1 -1
  44. package/dist/cli/{index-pr1skxen.js → index-akseq9ps.js} +1 -1
  45. package/dist/cli/{index-23hvdyxf.js → index-c6j2727a.js} +1 -1
  46. package/dist/cli/{index-pkw3jktb.js → index-eh786rj4.js} +2 -2
  47. package/dist/cli/{index-aemhvvwb.js → index-eydgkr7w.js} +1 -1
  48. package/dist/cli/{index-rz56x932.js → index-fbmfpqk8.js} +1 -1
  49. package/dist/cli/{index-xf9sfr8a.js → index-fgqh48qr.js} +63 -1
  50. package/dist/cli/{index-c8rcfe5a.js → index-fy4th3n0.js} +1 -1
  51. package/dist/cli/{index-prza6tkp.js → index-gx6pjzzk.js} +3 -3
  52. package/dist/cli/{index-125cfzvn.js → index-hker5fs4.js} +2 -2
  53. package/dist/cli/{index-cgmp9d02.js → index-hqkcxa2p.js} +1 -1
  54. package/dist/cli/{index-x1vvn549.js → index-mmm6d3k5.js} +3 -3
  55. package/dist/cli/{index-enbw9484.js → index-wpgsermq.js} +1 -1
  56. package/dist/cli/{index-0z5fgb80.js → index-wqpg377f.js} +1 -1
  57. package/dist/cli/{index-3sfcmb49.js → index-x7h6w6td.js} +1 -1
  58. package/dist/cli/{index-a6xx0p9e.js → index-ydaxsftq.js} +1 -1
  59. package/dist/cli/{index-3ewt17wm.js → index-yhkg5by0.js} +1 -1
  60. package/dist/cli/{index-aqe25w4h.js → index-zeeep92g.js} +1 -1
  61. package/dist/cli/index.js +32 -32
  62. package/dist/cli/{info-k124sh7g.js → info-5rwsbhe2.js} +4 -4
  63. package/dist/cli/{inspect-n6pcfvfw.js → inspect-nmwb0q5k.js} +5 -5
  64. package/dist/cli/{iosNativeWatcher-wdq2fvj1.js → iosNativeWatcher-7r9gnk87.js} +7 -7
  65. package/dist/cli/{iosSimulatorController-n97dpa8p.js → iosSimulatorController-w963vv9r.js} +7 -7
  66. package/dist/cli/{islands-17tfx8jf.js → islands-w9xrehpk.js} +3 -3
  67. package/dist/cli/{logs-shg23fbt.js → logs-m793x8a7.js} +3 -3
  68. package/dist/cli/{ls-0wr74w0b.js → ls-k31npd5b.js} +3 -3
  69. package/dist/cli/{mem-16sy1707.js → mem-jm6kw6gr.js} +5 -5
  70. package/dist/cli/{migrate-k91k050s.js → migrate-95bjkqkr.js} +2 -2
  71. package/dist/cli/{mobile-hpqpy61f.js → mobile-cpp8vfn7.js} +13 -13
  72. package/dist/cli/prerender-26pzynh4.js +13 -0
  73. package/dist/cli/{prettier-dh5fh786.js → prettier-0ws9pbc1.js} +1 -1
  74. package/dist/cli/{ps-pk7ncjac.js → ps-fx8mz3e3.js} +6 -6
  75. package/dist/cli/{psTui-50wf0b72.js → psTui-0e9c7an6.js} +7 -7
  76. package/dist/cli/{remoteMacProtocol-g10s408w.js → remoteMacProtocol-y7h79gr8.js} +7 -7
  77. package/dist/cli/{remove-x987pvd3.js → remove-xhvph8bz.js} +8 -8
  78. package/dist/cli/{routes-mc3ymp8t.js → routes-hq9yje5z.js} +3 -3
  79. package/dist/cli/{start-mbn2zgs2.js → start-5mjh9hh2.js} +5 -5
  80. package/dist/cli/{staticAnalyzeSpaRoutes-2nev05m1.js → staticAnalyzeSpaRoutes-rcc1d3az.js} +3 -1
  81. package/dist/cli/{typecheck-488txsfc.js → typecheck-yjme4fv1.js} +71 -35
  82. package/dist/cli/{workspace-7sbyyc59.js → workspace-xeb6abxj.js} +5 -5
  83. package/dist/index.js +620 -126
  84. package/dist/index.js.map +22 -22
  85. package/dist/islands/index.js +312 -23
  86. package/dist/islands/index.js.map +5 -5
  87. package/dist/mobile/index.js +2 -2
  88. package/dist/mobile/index.js.map +3 -3
  89. package/dist/react/browser.js +18 -1
  90. package/dist/react/browser.js.map +6 -4
  91. package/dist/react/components/index.js +2 -2
  92. package/dist/react/components/index.js.map +3 -3
  93. package/dist/react/index.js +366 -61
  94. package/dist/react/index.js.map +14 -13
  95. package/dist/react/server.js +47 -35
  96. package/dist/react/server.js.map +10 -10
  97. package/dist/src/angular/components/constants.d.ts +1 -0
  98. package/dist/src/angular/components/defer-slot-payload.d.ts +5 -0
  99. package/dist/src/angular/staticAnalyzeSpaRoutes.d.ts +9 -0
  100. package/dist/src/cli/scripts/manifestKeysEditorHint.d.ts +9 -0
  101. package/dist/src/cli/scripts/typecheck.d.ts +7 -0
  102. package/dist/src/constants.d.ts +1 -0
  103. package/dist/src/core/prerender.d.ts +10 -0
  104. package/dist/src/dev/spaRouteRefresh.d.ts +12 -5
  105. package/dist/src/react/browser.d.ts +1 -0
  106. package/dist/src/react/index.d.ts +1 -0
  107. package/dist/src/svelte/lowerAwaitSlotSyntax.d.ts +23 -0
  108. package/dist/src/utils/pageCspNonce.d.ts +14 -0
  109. package/dist/src/utils/spaRouteManifest.d.ts +2 -0
  110. package/dist/svelte/components/Image.svelte +1 -1
  111. package/dist/svelte/components/Island.svelte +1 -1
  112. package/dist/svelte/index.js +368 -68
  113. package/dist/svelte/index.js.map +11 -11
  114. package/dist/svelte/router/Router.svelte.d.ts +31 -1
  115. package/dist/svelte/server.js +359 -59
  116. package/dist/svelte/server.js.map +11 -11
  117. package/dist/types/manifest.d.ts +3 -2
  118. package/dist/types/svelte.d.ts +3 -0
  119. package/dist/vue/components/Image.js +2 -2
  120. package/dist/vue/components/Image.js.map +3 -3
  121. package/dist/vue/components/index.js +2 -2
  122. package/dist/vue/components/index.js.map +3 -3
  123. package/dist/vue/index.js +360 -60
  124. package/dist/vue/index.js.map +11 -11
  125. package/dist/vue/server.js +50 -39
  126. package/dist/vue/server.js.map +9 -9
  127. package/package.json +4 -1
  128. package/dist/cli/prerender-w65xp6h8.js +0 -11
  129. /package/dist/cli/{index-t8jmj8w1.js → index-fm9x6sjs.js} +0 -0
@@ -1,14 +1,14 @@
1
1
  // @bun
2
2
  import"./index-71gchbzt.js";
3
- import"./index-t8jmj8w1.js";
3
+ import"./index-fm9x6sjs.js";
4
4
  import {
5
5
  colors,
6
6
  padLine
7
- } from "./index-9djrap79.js";
7
+ } from "./index-3pz5sjaz.js";
8
8
  import {
9
9
  discoverInstances,
10
10
  enrichInstances
11
- } from "./index-aemhvvwb.js";
11
+ } from "./index-eydgkr7w.js";
12
12
 
13
13
  // src/cli/scripts/routes.ts
14
14
  var METHOD_COLOR = {
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  start2
4
- } from "./index-kx2d067c.js";
4
+ } from "./index-3066eqr3.js";
5
5
  import"./index-js2hksgv.js";
6
6
  import"./index-42xjh6gg.js";
7
7
  import"./index-w6xsk8cv.js";
@@ -14,10 +14,10 @@ import"./index-0gd30trc.js";
14
14
  import"./index-ycqdxy55.js";
15
15
  import"./index-4j1twret.js";
16
16
  import"./index-pch0v1z6.js";
17
- import"./index-125cfzvn.js";
18
- import"./index-3ewt17wm.js";
19
- import"./index-pr1skxen.js";
20
- import"./index-t8jmj8w1.js";
17
+ import"./index-hker5fs4.js";
18
+ import"./index-yhkg5by0.js";
19
+ import"./index-akseq9ps.js";
20
+ import"./index-fm9x6sjs.js";
21
21
  export {
22
22
  start2 as start
23
23
  };
@@ -1,8 +1,10 @@
1
1
  // @bun
2
2
  import {
3
+ analyzeAngularColocatedRoutes2,
3
4
  analyzeAngularSpaRoutes2
4
- } from "./index-xf9sfr8a.js";
5
+ } from "./index-fgqh48qr.js";
5
6
  import"./index-4j1twret.js";
6
7
  export {
8
+ analyzeAngularColocatedRoutes2 as analyzeAngularColocatedRoutes,
7
9
  analyzeAngularSpaRoutes2 as analyzeAngularSpaRoutes
8
10
  };
@@ -10,15 +10,15 @@ import {
10
10
  } from "./index-4j1twret.js";
11
11
  import {
12
12
  ANSI_ESCAPE_CODE
13
- } from "./index-t8jmj8w1.js";
13
+ } from "./index-fm9x6sjs.js";
14
14
  import {
15
15
  ensureFileRouteModule
16
16
  } from "./index-47e8fwha.js";
17
- import"./index-aqe25w4h.js";
17
+ import"./index-zeeep92g.js";
18
18
  import {
19
19
  MANIFEST_KEYS_DECLARATION,
20
20
  writeManifestKeysDeclaration
21
- } from "./index-x1vvn549.js";
21
+ } from "./index-mmm6d3k5.js";
22
22
  import {
23
23
  getString,
24
24
  isRecord
@@ -26,9 +26,9 @@ import {
26
26
  import"./index-w6xsk8cv.js";
27
27
  import {
28
28
  DEFAULT_SERVER_ENTRY
29
- } from "./index-125cfzvn.js";
30
- import"./index-3ewt17wm.js";
31
- import"./index-pr1skxen.js";
29
+ } from "./index-hker5fs4.js";
30
+ import"./index-yhkg5by0.js";
31
+ import"./index-akseq9ps.js";
32
32
 
33
33
  // src/cli/scripts/typecheck.ts
34
34
  import { dirname as dirname3, join as join2, parse as parse3, relative as relative2, resolve as resolve4 } from "path";
@@ -1241,12 +1241,37 @@ var svelteDeclarationRootDirs = (projectRoot, fromDir) => [
1241
1241
  ];
1242
1242
  var tsconfigHasSvelteDeclarationRoot = (rootDirs) => Array.isArray(rootDirs) && rootDirs.some((entry) => typeof entry === "string" && entry.replace(/^\.\//, "").replace(/\/$/, "") === SVELTE_DECLARATIONS_ROOT);
1243
1243
 
1244
+ // src/cli/scripts/manifestKeysEditorHint.ts
1245
+ var toEntries = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === "string").map((entry) => entry.trim().replace(/\\/g, "/").replace(/^(?:\.\/)+/, "").replace(/\/+$/, "")) : [];
1246
+ var escapeRegex = (text) => text.replace(/[.+^${}()|[\]\\]/g, "\\$&");
1247
+ var patternMatches = (pattern, path) => {
1248
+ const source = pattern.split("/").map((segment) => {
1249
+ if (segment === "**")
1250
+ return "(?:[^./][^/]*/)*";
1251
+ const body = escapeRegex(segment).replace(/\*/g, "[^/]*").replace(/\?/g, "[^/]");
1252
+ return /^[*?]/.test(segment) ? `(?!\\.)${body}/` : `${body}/`;
1253
+ }).join("");
1254
+ return new RegExp(`^${source}`).test(`${path}/`);
1255
+ };
1256
+ var manifestKeysEditorHint = (config) => {
1257
+ const path = MANIFEST_KEYS_DECLARATION;
1258
+ const files = toEntries(config.files);
1259
+ if (files.includes(path))
1260
+ return null;
1261
+ const excluded = toEntries(config.exclude).some((pattern) => patternMatches(pattern, path));
1262
+ const included = toEntries(config.include).some((pattern) => patternMatches(pattern, path));
1263
+ if (included && !excluded)
1264
+ return null;
1265
+ const where = excluded ? `to "files" in tsconfig.json ("exclude" removes it from "include", but not from "files"): "files": ["${path}"]` : `to "include" in tsconfig.json`;
1266
+ return `\x1B[33mnote\x1B[0m asset(manifest, key) keys are checked by this command. For the same check in your editor, add "${path}" ${where}.`;
1267
+ };
1268
+
1244
1269
  // src/cli/scripts/typecheckDiagnostics.ts
1245
1270
  import { resolve as resolve3 } from "path";
1246
1271
  var ANSI_COLOR_REGEX = new RegExp(`${String.fromCharCode(ANSI_ESCAPE_CODE)}\\[[0-9;]*m`, "g");
1247
1272
  var stripAnsi = (text) => text.replace(ANSI_COLOR_REGEX, "");
1248
- var PAREN_FORMAT = /^(.+?)\((\d+),(\d+)\): error (TS\d+)/;
1249
- var COLON_FORMAT = /^(.+?):(\d+):(\d+) - error (TS\d+)/;
1273
+ var PAREN_FORMAT = /^(.+?)\((\d+),(\d+)\): error ((?:TS|NG)\d+)/;
1274
+ var COLON_FORMAT = /^(.+?):(\d+):(\d+) - error ((?:TS|NG)\d+)/;
1250
1275
  var XML_FORMAT = /^<error file="([^"]+)" line="(\d+)" column="(\d+)" code="(TS\d+)">/;
1251
1276
  var PRETTY_CODE = /^error: (TS\d+): /;
1252
1277
  var PRETTY_POSITION = /^\s+at (.+):(\d+):(\d+)$/;
@@ -1533,7 +1558,6 @@ var svelteRoots = (projectRoot, svelteDirs, svelteFiles) => {
1533
1558
  return roots.map((dir) => relative2(projectRoot, dir) || ".");
1534
1559
  };
1535
1560
  var manifestKeyDeclarations = [];
1536
- var MANIFEST_KEYS_EDITOR_HINT = `\x1B[33mnote\x1B[0m asset(manifest, key) keys are checked by this command. For the same check in your editor, add "${MANIFEST_KEYS_DECLARATION}" to include in tsconfig.json.`;
1537
1561
  var prepareManifestKeys = async (targets) => {
1538
1562
  const byRoot = new Map;
1539
1563
  for (const target of targets) {
@@ -1542,13 +1566,11 @@ var prepareManifestKeys = async (targets) => {
1542
1566
  }
1543
1567
  const written = await Promise.all([...byRoot].map(([root, configs]) => writeManifestKeysDeclaration(configs, root)));
1544
1568
  manifestKeyDeclarations = written.filter((path) => path !== null);
1545
- const config = readProjectTsconfig();
1546
- const listed = [
1547
- ...toStringArray(config.include),
1548
- ...toStringArray(config.files)
1549
- ].some((entry) => entry.replace(/^\.\//, "").startsWith(".absolutejs"));
1550
- if (manifestKeyDeclarations.length > 0 && !listed)
1551
- console.log(MANIFEST_KEYS_EDITOR_HINT);
1569
+ if (manifestKeyDeclarations.length === 0)
1570
+ return;
1571
+ const hint = manifestKeysEditorHint(readProjectTsconfig());
1572
+ if (hint)
1573
+ console.log(hint);
1552
1574
  };
1553
1575
  var svelteDeclarationsReady = false;
1554
1576
  var getTypecheckRootDirs = (cacheDir) => {
@@ -1621,7 +1643,7 @@ var buildVueCheck = async (cacheDir) => {
1621
1643
  `--out-dir=${resolve4(cacheDir, "vue-check")}`
1622
1644
  ]);
1623
1645
  };
1624
- var buildAngularCheck = async (cacheDir, angularDir) => {
1646
+ var buildAngularCheck = async (cacheDir, angularDirs) => {
1625
1647
  const ngcBin = findBin("ngc");
1626
1648
  if (!ngcBin) {
1627
1649
  console.error("\x1B[31m\u2717\x1B[0m @angular/compiler-cli is required for Angular type checking. Install it: bun add -d @angular/compiler-cli");
@@ -1640,7 +1662,7 @@ var buildAngularCheck = async (cacheDir, angularDir) => {
1640
1662
  extends: resolve4("tsconfig.json"),
1641
1663
  include: [
1642
1664
  ...getProjectDeclarationIncludes(),
1643
- `../${angularDir}/**/*`
1665
+ ...angularDirs.map((angularDir) => `../${angularDir}/**/*`)
1644
1666
  ]
1645
1667
  }, null, "\t"));
1646
1668
  return runShell("ngc", `${shellEscape(ngcBin)} -p ${shellEscape(resolve4(angularTsconfigPath))}`);
@@ -1712,7 +1734,15 @@ var buildBunCheck = async (cacheDir) => {
1712
1734
  await rm2(passFile, { force: true });
1713
1735
  return result;
1714
1736
  };
1715
- var buildSvelteCheck = async (cacheDir, svelteDir) => {
1737
+ var svelteCheckIncludes = (projectRoot, configuredDirs, roots) => {
1738
+ const configured = configuredDirs.map((dir) => resolve4(projectRoot, dir));
1739
+ const strays = roots.filter((root) => !configured.some((dir) => isWithin(dir, resolve4(projectRoot, root))));
1740
+ return [
1741
+ ...configured.map((dir) => `../${relative2(projectRoot, dir) || "."}/**/*`),
1742
+ ...strays.map((root) => `../${root}/**/*.svelte`)
1743
+ ];
1744
+ };
1745
+ var buildSvelteCheck = async (cacheDir, includes) => {
1716
1746
  const svelteBin = findBin("svelte-check");
1717
1747
  if (!svelteBin) {
1718
1748
  console.error("\x1B[31m\u2717\x1B[0m svelte-check is required for Svelte type checking. Install it: bun add -d svelte-check");
@@ -1721,12 +1751,13 @@ var buildSvelteCheck = async (cacheDir, svelteDir) => {
1721
1751
  const svelteTsconfigPath = join2(cacheDir, "tsconfig.svelte-check.json");
1722
1752
  await writeFile2(svelteTsconfigPath, JSON.stringify({
1723
1753
  compilerOptions: { allowJs: true },
1754
+ exclude: getProjectTypecheckExcludes(),
1724
1755
  extends: resolve4("tsconfig.json"),
1725
- files: ABSOLUTE_TYPECHECK_FILES,
1726
- include: [
1727
- ...getProjectDeclarationIncludes(),
1728
- `../${svelteDir}/**/*`
1729
- ]
1756
+ files: [
1757
+ ...ABSOLUTE_TYPECHECK_FILES,
1758
+ ...vueShimPath === null ? [] : [vueShimPath]
1759
+ ],
1760
+ include: [...getProjectDeclarationIncludes(), ...includes]
1730
1761
  }, null, "\t"));
1731
1762
  return run("svelte-check", [
1732
1763
  svelteBin,
@@ -1783,29 +1814,36 @@ var prepareSvelteDeclarations = async (svelteDirs) => {
1783
1814
  console.log(SVELTE_EDITOR_HINT);
1784
1815
  };
1785
1816
  var VUE_CHECKERS = new Set(["vue-check", "vue-tsc"]);
1817
+ var ANGULAR_CHECKERS = new Set(["ngc"]);
1786
1818
  var PLAIN_CHECKERS = new Set(["bun check", "tsc"]);
1787
- var dedupeVueResult = (results) => {
1819
+ var dedupeAgainstPlain = (results, checkers, checkerCwd = process.cwd()) => {
1788
1820
  const plain = results.find((res) => PLAIN_CHECKERS.has(res.name));
1789
1821
  if (!plain || plain.exitCode === 0)
1790
1822
  return results;
1791
1823
  const reported = diagnosticKeys(plain.output);
1792
1824
  return results.map((res) => {
1793
- if (!VUE_CHECKERS.has(res.name) || res.exitCode === 0)
1825
+ if (!checkers.has(res.name) || res.exitCode === 0)
1794
1826
  return res;
1795
- const { dropped, output, remaining } = withoutReported(res.output, reported);
1827
+ const { dropped, output, remaining } = withoutReported(res.output, reported, checkerCwd);
1796
1828
  if (dropped === 0)
1797
1829
  return res;
1798
1830
  const passed = remaining === 0 && output.length === 0;
1799
1831
  return { ...res, exitCode: passed ? 0 : res.exitCode, output };
1800
1832
  });
1801
1833
  };
1834
+ var dedupeAngularResult = (results, cacheDir) => dedupeAgainstPlain(results, ANGULAR_CHECKERS, resolve4(cacheDir));
1835
+ var dedupeVueResult = (results) => dedupeAgainstPlain(results, VUE_CHECKERS);
1802
1836
  var typecheck = async (configPath) => {
1803
1837
  const targets = await getTypecheckTargets(configPath);
1804
1838
  const hasAngular = targets.some((config) => Boolean(config.angularDirectory));
1805
1839
  const configuredSvelteDirs = [
1806
1840
  ...new Set(targets.map((config) => config.svelteDirectory).filter((dir) => typeof dir === "string" && dir.length > 0))
1807
1841
  ];
1808
- const componentFiles = collectComponentFiles(resolve4("."), new Set(targets.flatMap((config) => config.buildDirectory ? [resolve4(config.buildDirectory)] : [])));
1842
+ const outDir = getString(readProjectTsconfig().compilerOptions, "outDir");
1843
+ const componentFiles = collectComponentFiles(resolve4("."), new Set([
1844
+ ...targets.flatMap((config) => config.buildDirectory ? [resolve4(config.buildDirectory)] : []),
1845
+ ...outDir === null ? [] : [resolve4(outDir)]
1846
+ ]));
1809
1847
  const hasVue = targets.some((config) => Boolean(config.vueDirectory)) || componentFiles.vue.length > 0;
1810
1848
  const svelteDirs = svelteRoots(resolve4("."), configuredSvelteDirs, componentFiles.svelte);
1811
1849
  const hasSvelte = svelteDirs.length > 0;
@@ -1830,13 +1868,11 @@ var typecheck = async (configPath) => {
1830
1868
  checks.push(plainCheck(cacheDir));
1831
1869
  if (hasVue)
1832
1870
  checks.push(vueCheck(cacheDir));
1833
- for (const svelteDir of hasSvelte ? svelteDirs : []) {
1834
- checks.push(buildSvelteCheck(cacheDir, svelteDir));
1835
- }
1836
- for (const angularDir of hasAngular ? angularDirs : []) {
1837
- checks.push(buildAngularCheck(cacheDir, angularDir));
1838
- }
1839
- const results = dedupeVueResult(await Promise.all(checks));
1871
+ if (hasSvelte)
1872
+ checks.push(buildSvelteCheck(cacheDir, svelteCheckIncludes(resolve4("."), configuredSvelteDirs, svelteDirs)));
1873
+ if (hasAngular && angularDirs.length > 0)
1874
+ checks.push(buildAngularCheck(cacheDir, angularDirs));
1875
+ const results = dedupeAngularResult(dedupeVueResult(await Promise.all(checks)), cacheDir);
1840
1876
  const failed = results.filter((res) => res.exitCode !== 0);
1841
1877
  const detailedAdvice = importAdviceRequested();
1842
1878
  if (failed.length === 0) {
@@ -25,7 +25,7 @@ import {
25
25
  WORKSPACE_TUI_STATUS_WIDTH,
26
26
  WORKSPACE_TUI_TARGET_PADDING_WIDTH,
27
27
  WORKSPACE_TUI_VISIBILITY_WIDTH
28
- } from "./index-t8jmj8w1.js";
28
+ } from "./index-fm9x6sjs.js";
29
29
  import {
30
30
  getWorkspaceServices,
31
31
  loadRawConfig
@@ -45,16 +45,16 @@ import {
45
45
  stripAnsi,
46
46
  truncateText,
47
47
  wrapText
48
- } from "./index-9djrap79.js";
48
+ } from "./index-3pz5sjaz.js";
49
49
  import {
50
50
  DEFAULT_SERVER_ENTRY,
51
51
  isWSLEnvironment,
52
52
  killStaleProcesses
53
- } from "./index-125cfzvn.js";
54
- import"./index-3ewt17wm.js";
53
+ } from "./index-hker5fs4.js";
54
+ import"./index-yhkg5by0.js";
55
55
  import {
56
56
  getDurationString
57
- } from "./index-pr1skxen.js";
57
+ } from "./index-akseq9ps.js";
58
58
 
59
59
  // src/cli/scripts/workspace.ts
60
60
  import {