@simplysm/sd-cli 14.0.42 → 14.0.43

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 (321) hide show
  1. package/dist/angular/angular-compiler.d.ts +0 -35
  2. package/dist/angular/angular-compiler.d.ts.map +1 -1
  3. package/dist/angular/angular-compiler.js +0 -374
  4. package/dist/angular/angular-compiler.js.map +1 -1
  5. package/dist/angular/hmr-candidates.d.ts +13 -0
  6. package/dist/angular/hmr-candidates.d.ts.map +1 -0
  7. package/dist/angular/hmr-candidates.js +230 -0
  8. package/dist/angular/hmr-candidates.js.map +1 -0
  9. package/dist/angular/ngtsc-build-core.d.ts +29 -34
  10. package/dist/angular/ngtsc-build-core.d.ts.map +1 -1
  11. package/dist/angular/ngtsc-build-core.js +90 -51
  12. package/dist/angular/ngtsc-build-core.js.map +1 -1
  13. package/dist/angular/vite-angular-plugin.d.ts +1 -1
  14. package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
  15. package/dist/angular/vite-angular-plugin.js +63 -56
  16. package/dist/angular/vite-angular-plugin.js.map +1 -1
  17. package/dist/angular/web-worker-transformer.d.ts +9 -0
  18. package/dist/angular/web-worker-transformer.d.ts.map +1 -0
  19. package/dist/angular/web-worker-transformer.js +73 -0
  20. package/dist/angular/web-worker-transformer.js.map +1 -0
  21. package/dist/capacitor/capacitor.d.ts.map +1 -1
  22. package/dist/capacitor/capacitor.js +6 -4
  23. package/dist/capacitor/capacitor.js.map +1 -1
  24. package/dist/commands/check.d.ts +1 -1
  25. package/dist/commands/check.d.ts.map +1 -1
  26. package/dist/commands/check.js +15 -65
  27. package/dist/commands/check.js.map +1 -1
  28. package/dist/commands/publish/deployment-phase.d.ts.map +1 -1
  29. package/dist/commands/publish/deployment-phase.js +13 -5
  30. package/dist/commands/publish/deployment-phase.js.map +1 -1
  31. package/dist/commands/publish/npm-publisher.js +1 -1
  32. package/dist/commands/publish/npm-publisher.js.map +1 -1
  33. package/dist/commands/publish/publish-command.js +1 -1
  34. package/dist/commands/publish/publish-command.js.map +1 -1
  35. package/dist/commands/publish/version-upgrade.js +1 -1
  36. package/dist/commands/publish/version-upgrade.js.map +1 -1
  37. package/dist/commands/replace-deps.d.ts.map +1 -1
  38. package/dist/commands/replace-deps.js +2 -1
  39. package/dist/commands/replace-deps.js.map +1 -1
  40. package/dist/deps/replace-deps/collect-deps.d.ts.map +1 -1
  41. package/dist/deps/replace-deps/collect-deps.js +5 -2
  42. package/dist/deps/replace-deps/collect-deps.js.map +1 -1
  43. package/dist/deps/replace-deps/replace-deps.d.ts +21 -3
  44. package/dist/deps/replace-deps/replace-deps.d.ts.map +1 -1
  45. package/dist/deps/replace-deps/replace-deps.js +107 -62
  46. package/dist/deps/replace-deps/replace-deps.js.map +1 -1
  47. package/dist/electron/electron.js +7 -7
  48. package/dist/electron/electron.js.map +1 -1
  49. package/dist/engines/BaseEngine.d.ts.map +1 -1
  50. package/dist/engines/BaseEngine.js +2 -5
  51. package/dist/engines/BaseEngine.js.map +1 -1
  52. package/dist/engines/EsbuildClientEngine.d.ts.map +1 -1
  53. package/dist/engines/EsbuildClientEngine.js +16 -9
  54. package/dist/engines/EsbuildClientEngine.js.map +1 -1
  55. package/dist/engines/NgtscEngine.d.ts +4 -4
  56. package/dist/engines/NgtscEngine.d.ts.map +1 -1
  57. package/dist/engines/NgtscEngine.js +5 -5
  58. package/dist/engines/NgtscEngine.js.map +1 -1
  59. package/dist/engines/TscEngine.d.ts.map +1 -1
  60. package/dist/engines/TscEngine.js +0 -2
  61. package/dist/engines/TscEngine.js.map +1 -1
  62. package/dist/engines/types.d.ts +2 -0
  63. package/dist/engines/types.d.ts.map +1 -1
  64. package/dist/esbuild/esbuild-angular-compiler-plugin.d.ts +36 -0
  65. package/dist/esbuild/esbuild-angular-compiler-plugin.d.ts.map +1 -0
  66. package/dist/esbuild/esbuild-angular-compiler-plugin.js +464 -0
  67. package/dist/esbuild/esbuild-angular-compiler-plugin.js.map +1 -0
  68. package/dist/esbuild/esbuild-client-config.d.ts +8 -2
  69. package/dist/esbuild/esbuild-client-config.d.ts.map +1 -1
  70. package/dist/esbuild/esbuild-client-config.js +48 -33
  71. package/dist/esbuild/esbuild-client-config.js.map +1 -1
  72. package/dist/esbuild/esbuild-tsc-plugin.d.ts +4 -1
  73. package/dist/esbuild/esbuild-tsc-plugin.d.ts.map +1 -1
  74. package/dist/esbuild/esbuild-tsc-plugin.js +27 -23
  75. package/dist/esbuild/esbuild-tsc-plugin.js.map +1 -1
  76. package/dist/esbuild/file-reference-tracker.d.ts +24 -0
  77. package/dist/esbuild/file-reference-tracker.d.ts.map +1 -0
  78. package/dist/esbuild/file-reference-tracker.js +57 -0
  79. package/dist/esbuild/file-reference-tracker.js.map +1 -0
  80. package/dist/esbuild/lmdb-cache-store.d.ts +18 -0
  81. package/dist/esbuild/lmdb-cache-store.d.ts.map +1 -0
  82. package/dist/esbuild/lmdb-cache-store.js +41 -0
  83. package/dist/esbuild/lmdb-cache-store.js.map +1 -0
  84. package/dist/esbuild/load-result-cache.d.ts +17 -0
  85. package/dist/esbuild/load-result-cache.d.ts.map +1 -0
  86. package/dist/esbuild/load-result-cache.js +61 -0
  87. package/dist/esbuild/load-result-cache.js.map +1 -0
  88. package/dist/index.d.ts +3 -0
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +2 -0
  91. package/dist/index.js.map +1 -1
  92. package/dist/lint/lint-core.js +7 -7
  93. package/dist/lint/lint-core.js.map +1 -1
  94. package/dist/orchestrators/BaseOrchestrator.js +2 -2
  95. package/dist/orchestrators/BaseOrchestrator.js.map +1 -1
  96. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  97. package/dist/orchestrators/BuildOrchestrator.js +5 -19
  98. package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
  99. package/dist/orchestrators/DevOrchestrator.js +5 -5
  100. package/dist/orchestrators/DevOrchestrator.js.map +1 -1
  101. package/dist/orchestrators/WatchOrchestrator.js +6 -6
  102. package/dist/orchestrators/WatchOrchestrator.js.map +1 -1
  103. package/dist/runtime/ResultCollector.d.ts +1 -0
  104. package/dist/runtime/ResultCollector.d.ts.map +1 -1
  105. package/dist/runtime/ResultCollector.js.map +1 -1
  106. package/dist/runtime/engine-watch-events.d.ts.map +1 -1
  107. package/dist/runtime/engine-watch-events.js +3 -0
  108. package/dist/runtime/engine-watch-events.js.map +1 -1
  109. package/dist/runtime/rebuild-manager.js +1 -1
  110. package/dist/runtime/rebuild-manager.js.map +1 -1
  111. package/dist/runtime/worker-utils.js +1 -1
  112. package/dist/runtime/worker-utils.js.map +1 -1
  113. package/dist/sd-cli-entry.d.ts.map +1 -1
  114. package/dist/sd-cli-entry.js +4 -3
  115. package/dist/sd-cli-entry.js.map +1 -1
  116. package/dist/sd-cli.js +3 -3
  117. package/dist/sd-cli.js.map +1 -1
  118. package/dist/ts-compiler/SdTsCompiler.d.ts +39 -0
  119. package/dist/ts-compiler/SdTsCompiler.d.ts.map +1 -0
  120. package/dist/ts-compiler/SdTsCompiler.js +593 -0
  121. package/dist/ts-compiler/SdTsCompiler.js.map +1 -0
  122. package/dist/ts-compiler/sd-ts-compiler-options.d.ts +40 -0
  123. package/dist/ts-compiler/sd-ts-compiler-options.d.ts.map +1 -0
  124. package/dist/ts-compiler/sd-ts-compiler-options.js +2 -0
  125. package/dist/ts-compiler/sd-ts-compiler-options.js.map +1 -0
  126. package/dist/ts-compiler/sd-ts-compiler-result.d.ts +34 -0
  127. package/dist/ts-compiler/sd-ts-compiler-result.d.ts.map +1 -0
  128. package/dist/ts-compiler/sd-ts-compiler-result.js +2 -0
  129. package/dist/ts-compiler/sd-ts-compiler-result.js.map +1 -0
  130. package/dist/utils/copy-public.d.ts +6 -4
  131. package/dist/utils/copy-public.d.ts.map +1 -1
  132. package/dist/utils/copy-public.js +9 -7
  133. package/dist/utils/copy-public.js.map +1 -1
  134. package/dist/utils/diagnostic-utils.d.ts +2 -3
  135. package/dist/utils/diagnostic-utils.d.ts.map +1 -1
  136. package/dist/utils/diagnostic-utils.js +8 -9
  137. package/dist/utils/diagnostic-utils.js.map +1 -1
  138. package/dist/utils/output-utils.d.ts +8 -2
  139. package/dist/utils/output-utils.d.ts.map +1 -1
  140. package/dist/utils/output-utils.js +32 -8
  141. package/dist/utils/output-utils.js.map +1 -1
  142. package/dist/workers/client.worker.d.ts +1 -1
  143. package/dist/workers/client.worker.d.ts.map +1 -1
  144. package/dist/workers/client.worker.js +136 -110
  145. package/dist/workers/client.worker.js.map +1 -1
  146. package/dist/workers/library-build.worker.d.ts +0 -2
  147. package/dist/workers/library-build.worker.d.ts.map +1 -1
  148. package/dist/workers/library-build.worker.js +147 -70
  149. package/dist/workers/library-build.worker.js.map +1 -1
  150. package/dist/workers/server-build.worker.d.ts.map +1 -1
  151. package/dist/workers/server-build.worker.js +30 -57
  152. package/dist/workers/server-build.worker.js.map +1 -1
  153. package/dist/workers/server-esbuild-context.d.ts +7 -0
  154. package/dist/workers/server-esbuild-context.d.ts.map +1 -1
  155. package/dist/workers/server-esbuild-context.js +11 -2
  156. package/dist/workers/server-esbuild-context.js.map +1 -1
  157. package/package.json +5 -4
  158. package/src/angular/angular-compiler.ts +0 -502
  159. package/src/angular/hmr-candidates.ts +295 -0
  160. package/src/angular/ngtsc-build-core.ts +125 -92
  161. package/src/angular/vite-angular-plugin.ts +71 -65
  162. package/src/angular/web-worker-transformer.ts +117 -0
  163. package/src/capacitor/capacitor.ts +6 -4
  164. package/src/commands/check.ts +17 -76
  165. package/src/commands/publish/deployment-phase.ts +11 -7
  166. package/src/commands/publish/npm-publisher.ts +1 -1
  167. package/src/commands/publish/publish-command.ts +1 -1
  168. package/src/commands/publish/version-upgrade.ts +1 -1
  169. package/src/commands/replace-deps.ts +3 -1
  170. package/src/deps/replace-deps/collect-deps.ts +4 -2
  171. package/src/deps/replace-deps/replace-deps.ts +114 -66
  172. package/src/electron/electron.ts +7 -7
  173. package/src/engines/BaseEngine.ts +2 -6
  174. package/src/engines/EsbuildClientEngine.ts +16 -10
  175. package/src/engines/NgtscEngine.ts +7 -7
  176. package/src/engines/TscEngine.ts +0 -2
  177. package/src/engines/types.ts +2 -0
  178. package/src/esbuild/esbuild-angular-compiler-plugin.ts +647 -0
  179. package/src/esbuild/esbuild-client-config.ts +57 -41
  180. package/src/esbuild/esbuild-tsc-plugin.ts +33 -23
  181. package/src/esbuild/file-reference-tracker.ts +61 -0
  182. package/src/esbuild/lmdb-cache-store.ts +46 -0
  183. package/src/esbuild/load-result-cache.ts +85 -0
  184. package/src/index.ts +5 -0
  185. package/src/lint/lint-core.ts +7 -7
  186. package/src/orchestrators/BaseOrchestrator.ts +2 -2
  187. package/src/orchestrators/BuildOrchestrator.ts +5 -24
  188. package/src/orchestrators/DevOrchestrator.ts +5 -5
  189. package/src/orchestrators/WatchOrchestrator.ts +6 -6
  190. package/src/runtime/ResultCollector.ts +1 -0
  191. package/src/runtime/engine-watch-events.ts +3 -0
  192. package/src/runtime/rebuild-manager.ts +1 -1
  193. package/src/runtime/worker-utils.ts +1 -1
  194. package/src/sd-cli-entry.ts +5 -3
  195. package/src/sd-cli.ts +4 -4
  196. package/src/ts-compiler/SdTsCompiler.ts +815 -0
  197. package/src/ts-compiler/sd-ts-compiler-options.ts +46 -0
  198. package/src/ts-compiler/sd-ts-compiler-result.ts +34 -0
  199. package/src/utils/copy-public.ts +9 -6
  200. package/src/utils/diagnostic-utils.ts +8 -9
  201. package/src/utils/output-utils.ts +38 -8
  202. package/src/workers/client.worker.ts +160 -126
  203. package/src/workers/library-build.worker.ts +187 -75
  204. package/src/workers/server-build.worker.ts +31 -61
  205. package/src/workers/server-esbuild-context.ts +14 -2
  206. package/tests/angular/fixtures/packages/basic-app/dist/styles.css +3 -0
  207. package/tests/angular/fixtures/packages/basic-app/scss/styles.scss +5 -0
  208. package/tests/angular/vite-angular-plugin-sdtscompiler.verify.md +13 -0
  209. package/tests/angular/web-worker-transformer.spec.ts +154 -0
  210. package/tests/capacitor/capacitor-build.spec.ts +1 -1
  211. package/tests/capacitor/capacitor-icon.spec.ts +1 -1
  212. package/tests/capacitor/capacitor-init.spec.ts +1 -1
  213. package/tests/commands/check.spec.ts +90 -104
  214. package/tests/commands/publish.spec.ts +12 -4
  215. package/tests/commands/slice3-severity-cleanup.verify.md +12 -0
  216. package/tests/deps/replace-deps/collect-deps.acc.spec.ts +62 -0
  217. package/tests/deps/replace-deps/collect-deps.spec.ts +49 -0
  218. package/tests/deps/replace-deps/replace-deps-filter.spec.ts +103 -0
  219. package/tests/deps/replace-deps/replace-deps-setup.acc.spec.ts +156 -0
  220. package/tests/electron/electron.spec.ts +4 -1
  221. package/tests/engines/engine-adapter-isolation.spec.ts +5 -6
  222. package/tests/engines/engine-duplicate-output-removal.verify.md +10 -0
  223. package/tests/engines/esbuild-client-engine.acc.spec.ts +79 -0
  224. package/tests/engines/esbuild-client-engine.spec.ts +73 -3
  225. package/tests/esbuild/esbuild-angular-compiler-plugin-hmr.verify.md +23 -0
  226. package/tests/esbuild/esbuild-angular-compiler-plugin-onload.verify.md +21 -0
  227. package/tests/esbuild/esbuild-angular-compiler-plugin-onstart-extraction.verify.md +16 -0
  228. package/tests/esbuild/esbuild-angular-compiler-plugin-sdtscompiler.verify.md +15 -0
  229. package/tests/esbuild/esbuild-angular-compiler-plugin-stylesheet.verify.md +31 -0
  230. package/tests/esbuild/esbuild-angular-compiler-plugin-worker.verify.md +31 -0
  231. package/tests/esbuild/esbuild-angular-compiler-plugin.spec.ts +397 -0
  232. package/tests/esbuild/esbuild-angular-compiler-plugin.verify.md +21 -0
  233. package/tests/esbuild/esbuild-tsc-plugin-imports.verify.md +13 -0
  234. package/tests/esbuild/esbuild-tsc-plugin.acc.spec.ts +56 -111
  235. package/tests/esbuild/esbuild-tsc-plugin.spec.ts +116 -52
  236. package/tests/esbuild/file-reference-tracker.spec.ts +99 -0
  237. package/tests/esbuild/lmdb-cache-store.spec.ts +58 -0
  238. package/tests/esbuild/load-result-cache.acc.spec.ts +55 -0
  239. package/tests/esbuild/load-result-cache.spec.ts +133 -0
  240. package/tests/orchestrators/build-orchestrator.spec.ts +4 -3
  241. package/tests/orchestrators/dev-orchestrator.spec.ts +5 -5
  242. package/tests/orchestrators/slice1-stdout-to-consola.verify.md +10 -0
  243. package/tests/orchestrators/typecheck-orchestrator.spec.ts +1 -1
  244. package/tests/orchestrators/watch-orchestrator.spec.ts +7 -7
  245. package/tests/runtime/result-collector.spec.ts +64 -0
  246. package/tests/sd-cli-entry.spec.ts +3 -4
  247. package/tests/sd-cli-log-tag.verify.md +11 -0
  248. package/tests/ts-compiler/SdTsCompiler-affected-files.verify.md +8 -0
  249. package/tests/ts-compiler/SdTsCompiler-diagnostics.verify.md +12 -0
  250. package/tests/ts-compiler/SdTsCompiler-emit.verify.md +9 -0
  251. package/tests/ts-compiler/SdTsCompiler.acc.spec.ts +603 -0
  252. package/tests/ts-compiler/SdTsCompiler.spec.ts +265 -0
  253. package/tests/ts-compiler/SdTsCompiler.verify.md +41 -0
  254. package/tests/ts-compiler/fixtures/non-angular-pkg/.cache/typecheck-browser.tsbuildinfo +1 -0
  255. package/tests/ts-compiler/fixtures/non-angular-pkg/.cache/typecheck-node.tsbuildinfo +1 -0
  256. package/tests/ts-compiler/fixtures/non-angular-pkg/.cache/typecheck.tsbuildinfo +1 -0
  257. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/index.d.ts +2 -0
  258. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/index.d.ts.map +1 -0
  259. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/index.js +4 -0
  260. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/index.js.map +1 -0
  261. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/util.d.ts +2 -0
  262. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/util.d.ts.map +1 -0
  263. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/util.js +4 -0
  264. package/tests/ts-compiler/fixtures/non-angular-pkg/dist/util.js.map +1 -0
  265. package/tests/ts-compiler/fixtures/non-angular-pkg/src/index.ts +3 -0
  266. package/tests/ts-compiler/fixtures/non-angular-pkg/src/util.ts +3 -0
  267. package/tests/ts-compiler/fixtures/non-angular-pkg/tests/sample.test-file.ts +3 -0
  268. package/tests/ts-compiler/fixtures/non-angular-pkg/tsconfig.json +12 -0
  269. package/tests/ts-compiler/scss-lint-integration.verify.md +14 -0
  270. package/tests/utils/angular-build.spec.ts +1 -1
  271. package/tests/utils/copy-public-outdir.verify.md +8 -0
  272. package/tests/utils/copy-public.acc.spec.ts +52 -0
  273. package/tests/utils/copy-public.spec.ts +56 -0
  274. package/tests/utils/diagnostic-utils.spec.ts +24 -15
  275. package/tests/utils/engine-watch-events.acc.spec.ts +59 -0
  276. package/tests/utils/engine-watch-events.spec.ts +58 -0
  277. package/tests/utils/esbuild-client-config-integration.verify.md +9 -0
  278. package/tests/utils/esbuild-client-config.acc.spec.ts +45 -61
  279. package/tests/utils/esbuild-client-config.spec.ts +70 -52
  280. package/tests/utils/ngtsc-build-core-write-emit.spec.ts +12 -12
  281. package/tests/utils/ngtsc-build-core.spec.ts +1 -44
  282. package/tests/utils/output-utils.spec.ts +133 -13
  283. package/tests/utils/replace-deps-watch.acc.spec.ts +7 -1
  284. package/tests/utils/replace-deps-watch.spec.ts +57 -1
  285. package/tests/utils/worker-utils.spec.ts +8 -2
  286. package/tests/workers/client-worker-initial-build-error.verify.md +2 -3
  287. package/tests/workers/client-worker-initial-build-warnings.verify.md +7 -0
  288. package/tests/workers/client-worker-refactor.verify.md +22 -0
  289. package/tests/workers/client-worker-ts-cache-invalidation.verify.md +12 -0
  290. package/tests/workers/client-worker.acc.spec.ts +6 -3
  291. package/tests/workers/library-build-lint.spec.ts +40 -45
  292. package/tests/workers/library-build-worker.spec.ts +294 -40
  293. package/tests/workers/server-build-lint.spec.ts +59 -45
  294. package/tests/workers/server-build-worker.spec.ts +63 -24
  295. package/tests/workers/server-esbuild-context.acc.spec.ts +2 -0
  296. package/tests/workers/server-esbuild-context.spec.ts +2 -0
  297. package/tests/workers/server-runtime-worker.spec.ts +1 -1
  298. package/tests/workers/shared-worker-lifecycle.acc.spec.ts +1 -1
  299. package/dist/angular/angular-build-pipeline.d.ts +0 -97
  300. package/dist/angular/angular-build-pipeline.d.ts.map +0 -1
  301. package/dist/angular/angular-build-pipeline.js +0 -285
  302. package/dist/angular/angular-build-pipeline.js.map +0 -1
  303. package/dist/utils/tsc-build.d.ts +0 -51
  304. package/dist/utils/tsc-build.d.ts.map +0 -1
  305. package/dist/utils/tsc-build.js +0 -156
  306. package/dist/utils/tsc-build.js.map +0 -1
  307. package/dist/workers/ngtsc-build.worker.d.ts +0 -23
  308. package/dist/workers/ngtsc-build.worker.d.ts.map +0 -1
  309. package/dist/workers/ngtsc-build.worker.js +0 -267
  310. package/dist/workers/ngtsc-build.worker.js.map +0 -1
  311. package/src/angular/angular-build-pipeline.ts +0 -406
  312. package/src/utils/tsc-build.ts +0 -226
  313. package/src/workers/ngtsc-build.worker.ts +0 -351
  314. package/tests/angular/angular-build-pipeline.spec.ts +0 -247
  315. package/tests/angular/angular-compiler-aot.acc.spec.ts +0 -68
  316. package/tests/angular/angular-compiler-aot.spec.ts +0 -80
  317. package/tests/utils/angular-compiler-emit.spec.ts +0 -666
  318. package/tests/utils/angular-compiler.spec.ts +0 -707
  319. package/tests/utils/tsc-build.spec.ts +0 -527
  320. package/tests/workers/ngtsc-build-lint.spec.ts +0 -141
  321. package/tests/workers/ngtsc-build-worker.spec.ts +0 -199
@@ -1,6 +1,4 @@
1
1
  import ts from "typescript";
2
- import { NgtscProgram } from "./angular-build";
3
- type NgCompiler = NgtscProgram["compiler"];
4
2
  export interface EmitResult {
5
3
  filename: string;
6
4
  contents: string;
@@ -16,42 +14,9 @@ export interface EmitOptions {
16
14
  after?: ts.TransformerFactory<ts.SourceFile>[];
17
15
  };
18
16
  }
19
- export interface AngularCompilerOptions {
20
- rootNames: string[];
21
- compilerOptions: ts.CompilerOptions;
22
- angularCompilerOptions?: Record<string, unknown>;
23
- sourceFileCache?: AngularSourceFileCache;
24
- transformStylesheet?: (data: string, containingFile: string, stylesheetFile?: string) => Promise<string | null>;
25
- compilerOptionsTransformer?: (options: ts.CompilerOptions) => ts.CompilerOptions;
26
- externalStylesheets?: Map<string, string>;
27
- }
28
17
  export declare class AngularSourceFileCache extends Map<string, ts.SourceFile> {
29
18
  readonly modifiedFiles: Set<string>;
30
19
  invalidate(files: Iterable<string>): void;
31
20
  }
32
21
  export declare function augmentHostWithCaching(host: ts.CompilerHost, cache: AngularSourceFileCache): void;
33
- export declare class AngularCompiler {
34
- private readonly _options;
35
- private _ngtscProgram?;
36
- private _builderProgram?;
37
- private _host?;
38
- private _affectedFiles;
39
- private readonly _diagnosticCache;
40
- private _packageJsonCache?;
41
- constructor(options: AngularCompilerOptions);
42
- updateRootNames(rootNames: string[]): void;
43
- get ngtscProgram(): NgtscProgram | undefined;
44
- get compiler(): NgCompiler;
45
- getTsProgram(): ts.Program;
46
- initialize(): Promise<{
47
- affectedFiles: ReadonlySet<ts.SourceFile>;
48
- }>;
49
- private _findAffectedFiles;
50
- update(modifiedFiles: Iterable<string>): Promise<{
51
- affectedFiles: ReadonlySet<ts.SourceFile>;
52
- }>;
53
- emitAffectedFiles(options?: EmitOptions): Iterable<EmitResult>;
54
- collectDiagnostics(): Iterable<ts.Diagnostic>;
55
- }
56
- export {};
57
22
  //# sourceMappingURL=angular-compiler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"angular-compiler.d.ts","sourceRoot":"","sources":["../../src/angular/angular-compiler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAK5D,KAAK,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAoB3C,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE;QACvB,MAAM,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;KAChD,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,mBAAmB,CAAC,EAAE,CACpB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,KAAK,EAAE,CAAC,eAAe,CAAC;IACjF,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,qBAAa,sBAAuB,SAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC;IACpE,QAAQ,CAAC,aAAa,cAAqB;IAE3C,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;CAO1C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,YAAY,EACrB,KAAK,EAAE,sBAAsB,GAC5B,IAAI,CAyBN;AAED,qBAAa,eAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAGlD,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,eAAe,CAAC,CAA8C;IACtE,OAAO,CAAC,KAAK,CAAC,CAAkB;IAChC,OAAO,CAAC,cAAc,CAA4B;IAGlD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiD;IAClF,OAAO,CAAC,iBAAiB,CAAC,CAA0B;gBAExC,OAAO,EAAE,sBAAsB;IAI3C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAI1C,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAE3C;IAED,IAAI,QAAQ,IAAI,UAAU,CAKzB;IAED,YAAY,IAAI,EAAE,CAAC,OAAO;IAOpB,UAAU,IAAI,OAAO,CAAC;QAC1B,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;KAC3C,CAAC;IAwJF,OAAO,CAAC,kBAAkB;IAkFpB,MAAM,CACV,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC;QACT,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;KAC3C,CAAC;IAUD,iBAAiB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC;IAwG9D,kBAAkB,IAAI,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC;CAkE/C"}
1
+ {"version":3,"file":"angular-compiler.d.ts","sourceRoot":"","sources":["../../src/angular/angular-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE;QACvB,MAAM,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;KAChD,CAAC;CACH;AAED,qBAAa,sBAAuB,SAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC;IACpE,QAAQ,CAAC,aAAa,cAAqB;IAE3C,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;CAO1C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,YAAY,EACrB,KAAK,EAAE,sBAAsB,GAC5B,IAAI,CAyBN"}
@@ -1,26 +1,5 @@
1
- import path from "path";
2
- import { createHash } from "crypto";
3
1
  import ts from "typescript";
4
- import { consola } from "consola";
5
2
  import { pathx } from "@simplysm/core-node";
6
- import { NgtscProgram, OptimizeFor } from "./angular-build.js";
7
- const logger = consola.withTag("sd:cli:angular-compiler");
8
- function hasTemplateExtension(file) {
9
- const ext = path.extname(file).toLowerCase();
10
- return ext === ".htm" || ext === ".html" || ext === ".svg";
11
- }
12
- function ensureSourceFileVersions(program) {
13
- const baseGetSourceFiles = program.getSourceFiles;
14
- program.getSourceFiles = function (...parameters) {
15
- const files = baseGetSourceFiles.apply(this, parameters);
16
- for (const file of files) {
17
- if (file.version === undefined) {
18
- file.version = createHash("sha256").update(file.text).digest("hex");
19
- }
20
- }
21
- return files;
22
- };
23
- }
24
3
  export class AngularSourceFileCache extends Map {
25
4
  modifiedFiles = new Set();
26
5
  invalidate(files) {
@@ -44,357 +23,4 @@ export function augmentHostWithCaching(host, cache) {
44
23
  return file;
45
24
  };
46
25
  }
47
- export class AngularCompiler {
48
- // ── 설정 (불변) ──
49
- _options;
50
- // ── 컴파일 상태 (initialize마다 재생성) ──
51
- _ngtscProgram;
52
- _builderProgram;
53
- _host;
54
- _affectedFiles = new Set();
55
- // ── 영속 상태 (initialize 간 재사용) ──
56
- _diagnosticCache = new WeakMap();
57
- _packageJsonCache;
58
- constructor(options) {
59
- this._options = options;
60
- }
61
- updateRootNames(rootNames) {
62
- this._options.rootNames = rootNames;
63
- }
64
- get ngtscProgram() {
65
- return this._ngtscProgram;
66
- }
67
- get compiler() {
68
- if (this._ngtscProgram == null) {
69
- throw new Error("initialize()를 먼저 호출해야 합니다");
70
- }
71
- return this._ngtscProgram.compiler;
72
- }
73
- getTsProgram() {
74
- if (this._ngtscProgram == null) {
75
- throw new Error("initialize()를 먼저 호출해야 합니다");
76
- }
77
- return this._ngtscProgram.getTsProgram();
78
- }
79
- async initialize() {
80
- const options = this._options;
81
- const sourceFileCache = options.sourceFileCache;
82
- // 1. packageJsonCache 관리
83
- if (sourceFileCache != null && this._packageJsonCache != null) {
84
- let shouldClear = false;
85
- for (const modifiedFile of sourceFileCache.modifiedFiles) {
86
- if (modifiedFile.includes("node_modules")) {
87
- shouldClear = true;
88
- break;
89
- }
90
- }
91
- if (shouldClear) {
92
- this._packageJsonCache.clear();
93
- }
94
- }
95
- // 2. compilerOptionsTransformer 적용
96
- let compilerOptions = options.compilerOptions;
97
- if (options.compilerOptionsTransformer != null) {
98
- compilerOptions = options.compilerOptionsTransformer(compilerOptions);
99
- }
100
- // angularCompilerOptions 병합
101
- const mergedOptions = options.angularCompilerOptions != null
102
- ? { ...compilerOptions, ...options.angularCompilerOptions }
103
- : compilerOptions;
104
- // 3. ts.createIncrementalCompilerHost 생성
105
- const host = ts.createIncrementalCompilerHost(mergedOptions);
106
- // 4. Angular 호스트 확장 설정
107
- const hostAny = host;
108
- hostAny["readResource"] = (fileName) => {
109
- return host.readFile(fileName) ?? "";
110
- };
111
- if (options.transformStylesheet != null) {
112
- const transformStylesheet = options.transformStylesheet;
113
- hostAny["transformResource"] = async (data, context) => {
114
- if (context.type !== "style") {
115
- return null;
116
- }
117
- if (data.trim().length === 0) {
118
- return { content: "" };
119
- }
120
- const result = await transformStylesheet(data, context.containingFile, context.resourceFile ?? undefined);
121
- return typeof result === "string" ? { content: result } : null;
122
- };
123
- }
124
- if (sourceFileCache != null) {
125
- hostAny["getModifiedResourceFiles"] = () => sourceFileCache.modifiedFiles;
126
- }
127
- hostAny["resourceNameToFileName"] = (resourceName, containingFile) => {
128
- const resolvedPath = path.join(path.dirname(containingFile), resourceName);
129
- if (!host.fileExists(resolvedPath)) {
130
- return null;
131
- }
132
- if (options.externalStylesheets == null || hasTemplateExtension(resolvedPath)) {
133
- return resolvedPath;
134
- }
135
- // externalStylesheets를 사용한 스타일시트 처리 (클라이언트 모드)
136
- let externalId = options.externalStylesheets.get(resolvedPath);
137
- if (externalId === undefined) {
138
- externalId = createHash("sha256").update(resolvedPath).digest("hex");
139
- options.externalStylesheets.set(resolvedPath, externalId);
140
- }
141
- return externalId + ".css";
142
- };
143
- // 5. 모듈 해석 캐시 생성
144
- const moduleResolutionCache = ts.createModuleResolutionCache(host.getCurrentDirectory(), host.getCanonicalFileName.bind(host), mergedOptions, this._packageJsonCache);
145
- host.getModuleResolutionCache = () => moduleResolutionCache;
146
- // packageJsonCache를 moduleResolutionCache에서 추출하여 재사용
147
- if (this._packageJsonCache == null) {
148
- this._packageJsonCache = moduleResolutionCache.getPackageJsonInfoCache();
149
- }
150
- // 6. SourceFileCache 통합
151
- if (sourceFileCache != null) {
152
- augmentHostWithCaching(host, sourceFileCache);
153
- }
154
- // 7. NgtscProgram 생성
155
- logger.debug(`NgtscProgram 생성 중... (rootNames: ${options.rootNames.length}개, incremental: ${this._ngtscProgram != null})`);
156
- const angularProgram = new NgtscProgram(options.rootNames, mergedOptions, host, this._ngtscProgram);
157
- // 8. ensureSourceFileVersions
158
- const tsProgram = angularProgram.getTsProgram();
159
- ensureSourceFileVersions(tsProgram);
160
- const programFiles = tsProgram.getSourceFiles();
161
- logger.debug(`ts.Program 소스 파일: ${programFiles.length}개`);
162
- // 9. BuilderProgram 생성 (진단 + affected file 탐지용)
163
- // .tsbuildinfo에서 이전 상태를 복원하여 프로세스 재시작 후에도 incremental 진단 유지
164
- let oldBuilderProgram = this._builderProgram;
165
- if (oldBuilderProgram == null) {
166
- oldBuilderProgram = ts.readBuilderProgram(mergedOptions, host) ?? undefined;
167
- }
168
- const builderProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram(tsProgram, host, oldBuilderProgram);
169
- // 10. AOT 분석
170
- logger.debug("AOT analyzeAsync 시작");
171
- await angularProgram.compiler.analyzeAsync();
172
- logger.debug("AOT analyzeAsync 완료");
173
- // 11. findAffectedFiles (내부에서 리소스 의존성 기반 diagnosticCache 무효화도 수행)
174
- const affectedFiles = this._findAffectedFiles(builderProgram, angularProgram.compiler, sourceFileCache);
175
- // 13. 상태 저장
176
- this._ngtscProgram = angularProgram;
177
- this._builderProgram = builderProgram;
178
- this._host = host;
179
- this._affectedFiles = affectedFiles;
180
- logger.debug(`initialize 완료 (affected: ${affectedFiles.size}개)`);
181
- return { affectedFiles };
182
- }
183
- _findAffectedFiles(builderProgram, angularCompiler, sourceFileCache) {
184
- logger.debug("affected 파일 탐색 시작");
185
- const affectedFiles = new Set();
186
- while (true) {
187
- // TypeScript 5.9 + NgtscProgram: getSemanticDiagnosticsOfNextAffectedFile가
188
- // referencedFiles 인덱스 불일치로 크래시할 수 있음 (fixture 등 비표준 rootNames 포함 시)
189
- let result;
190
- try {
191
- result = builderProgram.getSemanticDiagnosticsOfNextAffectedFile(undefined, (sourceFile) => {
192
- if (angularCompiler.ignoreForDiagnostics.has(sourceFile) &&
193
- sourceFile.fileName.endsWith(".ngtypecheck.ts")) {
194
- const originalFilename = sourceFile.fileName.slice(0, -15) + ".ts";
195
- const originalSourceFile = builderProgram.getSourceFile(originalFilename);
196
- if (originalSourceFile) {
197
- affectedFiles.add(originalSourceFile);
198
- }
199
- return true;
200
- }
201
- return false;
202
- });
203
- }
204
- catch {
205
- logger.debug("getSemanticDiagnosticsOfNextAffectedFile 크래시 (무시) — 모든 소스를 affected로 처리");
206
- for (const sourceFile of builderProgram.getSourceFiles()) {
207
- if (!angularCompiler.ignoreForDiagnostics.has(sourceFile)) {
208
- affectedFiles.add(sourceFile);
209
- }
210
- }
211
- break;
212
- }
213
- if (!result) {
214
- break;
215
- }
216
- if ("fileName" in result.affected) {
217
- // ts.SourceFile — 단일 파일 변경
218
- affectedFiles.add(result.affected);
219
- }
220
- else {
221
- // ts.Program — 전역 스코프 변경, 모든 소스 파일을 affected로 처리
222
- for (const sourceFile of builderProgram.getSourceFiles()) {
223
- if (!angularCompiler.ignoreForDiagnostics.has(sourceFile)) {
224
- affectedFiles.add(sourceFile);
225
- }
226
- }
227
- }
228
- }
229
- // 리소스 의존성 기반 diagnosticCache 무효화
230
- if (sourceFileCache != null && sourceFileCache.modifiedFiles.size > 0) {
231
- // modifiedFiles의 경로를 정규화한 Set 생성 (Windows backslash 대응)
232
- const normalizedModifiedFiles = new Set();
233
- for (const f of sourceFileCache.modifiedFiles) {
234
- normalizedModifiedFiles.add(pathx.posix(f));
235
- }
236
- for (const sourceFile of builderProgram.getSourceFiles()) {
237
- if (angularCompiler.ignoreForEmit.has(sourceFile)) {
238
- continue;
239
- }
240
- const resourceDependencies = angularCompiler.getResourceDependencies(sourceFile);
241
- for (const resourceDep of resourceDependencies) {
242
- if (normalizedModifiedFiles.has(pathx.posix(resourceDep))) {
243
- this._diagnosticCache.delete(sourceFile);
244
- affectedFiles.add(sourceFile);
245
- break;
246
- }
247
- }
248
- }
249
- }
250
- logger.debug(`affected 파일 탐색 완료 (${affectedFiles.size}개)`);
251
- return affectedFiles;
252
- }
253
- async update(modifiedFiles) {
254
- logger.debug("증분 업데이트 시작");
255
- const sourceFileCache = this._options.sourceFileCache;
256
- if (sourceFileCache == null) {
257
- throw new Error("sourceFileCache가 없으면 incremental rebuild를 수행할 수 없습니다");
258
- }
259
- sourceFileCache.invalidate(modifiedFiles);
260
- return this.initialize();
261
- }
262
- *emitAffectedFiles(options) {
263
- if (this._ngtscProgram == null || this._builderProgram == null) {
264
- throw new Error("initialize()를 먼저 호출해야 합니다");
265
- }
266
- logger.debug("emitAffectedFiles 시작");
267
- const compilerOptions = this._builderProgram.getCompilerOptions();
268
- // 1. noEmit=true이면 즉시 return
269
- if (compilerOptions.noEmit) {
270
- return;
271
- }
272
- const angularCompiler = this._ngtscProgram.compiler;
273
- const tsProgram = this._ngtscProgram.getTsProgram();
274
- const affectedFiles = this._affectedFiles;
275
- // 2. prepareEmit() → Angular transformers 획득
276
- const transformers = angularCompiler.prepareEmit().transformers;
277
- transformers.before ??= [];
278
- transformers.after ??= [];
279
- // 3. additionalTransformers 병합
280
- if (options?.additionalTransformers != null) {
281
- if (options.additionalTransformers.before != null) {
282
- transformers.before.push(...options.additionalTransformers.before);
283
- }
284
- if (options.additionalTransformers.after != null) {
285
- transformers.after.push(...options.additionalTransformers.after);
286
- }
287
- }
288
- // 4. emit 결과를 수집하는 구조
289
- const emitResults = [];
290
- const emitDeclarationOnly = !!compilerOptions.emitDeclarationOnly;
291
- const writeFileCallback = (filename, contents, _writeByteOrderMark, _onError, sourceFiles) => {
292
- if (sourceFiles == null || sourceFiles.length === 0) {
293
- return;
294
- }
295
- const sourceFile = ts.getOriginalNode(sourceFiles[0], ts.isSourceFile);
296
- if (angularCompiler.ignoreForEmit.has(sourceFile)) {
297
- return;
298
- }
299
- angularCompiler.incrementalCompilation.recordSuccessfulEmit(sourceFile);
300
- emitResults.push({ filename, contents, sourceFileName: sourceFile.fileName });
301
- };
302
- // 5. ts.Program.emit()으로 직접 emit (NgtscProgram.emit 패턴)
303
- // EmitAndSemanticDiagnosticsBuilderProgram.emitNextAffectedFile()은 내부적으로
304
- // emitKind를 DTS-only로 결정할 수 있어 Angular before transformer가 .js를 생성하지 않고
305
- // DtsTransformRegistry에 메타데이터를 등록하지 않는 문제가 있다.
306
- // ts.Program.emit()을 직접 호출하면 항상 full emit이 수행된다.
307
- for (const sourceFile of tsProgram.getSourceFiles()) {
308
- if (angularCompiler.ignoreForEmit.has(sourceFile)) {
309
- continue;
310
- }
311
- if (sourceFile.isDeclarationFile) {
312
- continue;
313
- }
314
- if (angularCompiler.incrementalCompilation.safeToSkipEmit(sourceFile) &&
315
- !affectedFiles.has(sourceFile)) {
316
- continue;
317
- }
318
- tsProgram.emit(sourceFile, writeFileCallback, undefined, emitDeclarationOnly, transformers);
319
- }
320
- // 6. .tsbuildinfo 영속화 (프로세스 재시작 후 incremental 진단 유지)
321
- // TS 5.9에서 emitBuildInfo()가 제거됨. emit()이 내부적으로 build info를 기록한다.
322
- // no-op writeFile로 JS/DTS 재출력 없이 build info만 갱신.
323
- // TypeScript 5.9 + NgtscProgram: emit가 내부적으로 진단 수집을 트리거하여
324
- // referencedFiles 인덱스 불일치로 크래시할 수 있음
325
- // TypeScript 5.9 + NgtscProgram: emit가 내부적으로 진단 수집을 트리거하여
326
- // referencedFiles 인덱스 불일치로 크래시할 수 있음
327
- try {
328
- this._builderProgram.emit(undefined, () => { });
329
- }
330
- catch {
331
- logger.debug("builderProgram.emit 크래시 (무시) — tsbuildinfo 영속화 생략");
332
- }
333
- // 7. sourceFilter 적용 후 yield
334
- logger.debug(`emitAffectedFiles 완료 (${emitResults.length}개 파일)`);
335
- for (const result of emitResults) {
336
- if (options?.sourceFilter != null && !options.sourceFilter(result.sourceFileName)) {
337
- continue;
338
- }
339
- yield result;
340
- }
341
- }
342
- *collectDiagnostics() {
343
- if (this._ngtscProgram == null || this._builderProgram == null) {
344
- throw new Error("initialize()를 먼저 호출해야 합니다");
345
- }
346
- logger.debug("진단 수집 시작");
347
- const angularCompiler = this._ngtscProgram.compiler;
348
- const builderProgram = this._builderProgram;
349
- const affectedFiles = this._affectedFiles;
350
- const diagnosticCache = this._diagnosticCache;
351
- const optimization = affectedFiles.size === 1 ? OptimizeFor.SingleFile : OptimizeFor.WholeProgram;
352
- // 1. Option 진단
353
- const configDiags = builderProgram.getConfigFileParsingDiagnostics();
354
- const ngOptionDiags = angularCompiler.getOptionDiagnostics();
355
- const tsOptionDiags = builderProgram.getOptionsDiagnostics();
356
- if (configDiags.length > 0 || ngOptionDiags.length > 0 || tsOptionDiags.length > 0) {
357
- logger.debug(`옵션 진단: config=${configDiags.length}, ngOption=${ngOptionDiags.length}, tsOption=${tsOptionDiags.length}`);
358
- }
359
- yield* configDiags;
360
- yield* ngOptionDiags;
361
- yield* tsOptionDiags;
362
- // 2. Global
363
- yield* builderProgram.getGlobalDiagnostics();
364
- // 3. 파일별 루프
365
- for (const sourceFile of builderProgram.getSourceFiles()) {
366
- if (angularCompiler.ignoreForDiagnostics.has(sourceFile)) {
367
- continue;
368
- }
369
- yield* builderProgram.getSyntacticDiagnostics(sourceFile);
370
- // TypeScript 5.9 + NgtscProgram: getSemanticDiagnostics가 내부적으로
371
- // referencedFiles 인덱스 불일치로 크래시할 수 있음 (fixture 파일 포함 시)
372
- let semanticDiags;
373
- try {
374
- semanticDiags = builderProgram.getSemanticDiagnostics(sourceFile);
375
- }
376
- catch {
377
- logger.debug(`getSemanticDiagnostics 크래시 (무시): ${sourceFile.fileName}`);
378
- semanticDiags = [];
379
- }
380
- yield* semanticDiags;
381
- // Declaration files는 Angular 진단 없음
382
- if (sourceFile.isDeclarationFile) {
383
- continue;
384
- }
385
- // Angular 템플릿 진단
386
- if (affectedFiles.has(sourceFile)) {
387
- const angularDiagnostics = angularCompiler.getDiagnosticsForFile(sourceFile, optimization);
388
- diagnosticCache.set(sourceFile, angularDiagnostics);
389
- yield* angularDiagnostics;
390
- }
391
- else {
392
- const cached = diagnosticCache.get(sourceFile);
393
- if (cached) {
394
- yield* cached;
395
- }
396
- }
397
- }
398
- }
399
- }
400
26
  //# sourceMappingURL=angular-compiler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"angular-compiler.js","sourceRoot":"","sources":["../../src/angular/angular-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-compiler.js","sourceRoot":"","sources":["../../src/angular/angular-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAmB5C,MAAM,OAAO,sBAAuB,SAAQ,GAA0B;IAC3D,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,UAAU,CAAC,KAAuB;QAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAqB,EACrB,KAA6B;IAE7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;IAC7C,IAAI,CAAC,aAAa,GAAG,UACnB,QAAgB,EAChB,wBAAsE,EACtE,OAAmC,EACnC,yBAAmC,EACnC,GAAG,IAAe;QAElB,IAAI,CAAC,yBAAyB,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,GAAI,iBAA8B,CAAC,IAAI,CAC/C,IAAI,EACJ,QAAQ,EACR,wBAAwB,EACxB,OAAO,EACP,IAAI,EACJ,GAAG,IAAI,CACqB,CAAC;QAC/B,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import ts from "typescript";
2
+ import type { NgtscProgram } from "./angular-build.js";
3
+ /** HMR 분석 대상 최대 변경 파일 수 */
4
+ export declare const HMR_MODIFIED_FILE_LIMIT = 32;
5
+ /**
6
+ * 변경된 파일에서 HMR 후보 컴포넌트 클래스를 수집한다.
7
+ *
8
+ * - 템플릿/스타일 파일 변경 → 해당 파일을 사용하는 컴포넌트가 후보
9
+ * - 소스 파일 변경 → 인라인 템플릿/스타일만 변경된 컴포넌트가 후보
10
+ * - 지원 불가 변경(클래스 멤버, 비-컴포넌트 문 변경 등) → 후보 전체 무효화
11
+ */
12
+ export declare function collectHmrCandidates(modifiedFiles: Set<string>, angularProgram: NgtscProgram, staleSourceFiles?: Map<string, ts.SourceFile>): Set<ts.ClassDeclaration>;
13
+ //# sourceMappingURL=hmr-candidates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmr-candidates.d.ts","sourceRoot":"","sources":["../../src/angular/hmr-candidates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,2BAA2B;AAC3B,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAoB1C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,cAAc,EAAE,YAAY,EAC5B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAC5C,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAuD1B"}