@simplysm/sd-cli 14.0.41 → 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 +7 -6
  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
@@ -0,0 +1,230 @@
1
+ import ts from "typescript";
2
+ /** HMR 분석 대상 최대 변경 파일 수 */
3
+ export const HMR_MODIFIED_FILE_LIMIT = 32;
4
+ /**
5
+ * HMR 지원 메타데이터 필드.
6
+ * template, templateUrl, styles, styleUrl, stylesUrl만 HMR 업데이트를 지원한다.
7
+ */
8
+ const SUPPORTED_FIELD_NAMES = new Set([
9
+ "template",
10
+ "templateUrl",
11
+ "styles",
12
+ "styleUrl",
13
+ "stylesUrl",
14
+ ]);
15
+ var MetaUpdateAnalysis;
16
+ (function (MetaUpdateAnalysis) {
17
+ MetaUpdateAnalysis[MetaUpdateAnalysis["Supported"] = 0] = "Supported";
18
+ MetaUpdateAnalysis[MetaUpdateAnalysis["Unsupported"] = 1] = "Unsupported";
19
+ MetaUpdateAnalysis[MetaUpdateAnalysis["None"] = 2] = "None";
20
+ })(MetaUpdateAnalysis || (MetaUpdateAnalysis = {}));
21
+ /**
22
+ * 변경된 파일에서 HMR 후보 컴포넌트 클래스를 수집한다.
23
+ *
24
+ * - 템플릿/스타일 파일 변경 → 해당 파일을 사용하는 컴포넌트가 후보
25
+ * - 소스 파일 변경 → 인라인 템플릿/스타일만 변경된 컴포넌트가 후보
26
+ * - 지원 불가 변경(클래스 멤버, 비-컴포넌트 문 변경 등) → 후보 전체 무효화
27
+ */
28
+ export function collectHmrCandidates(modifiedFiles, angularProgram, staleSourceFiles) {
29
+ const compiler = angularProgram.compiler;
30
+ const candidates = new Set();
31
+ for (const file of modifiedFiles) {
32
+ // 템플릿 파일 변경 → 소유 컴포넌트 추가
33
+ const templateFileNodes = compiler.getComponentsWithTemplateFile(file);
34
+ if (templateFileNodes.size > 0) {
35
+ for (const node of templateFileNodes) {
36
+ if (ts.isClassDeclaration(node)) {
37
+ candidates.add(node);
38
+ }
39
+ }
40
+ continue;
41
+ }
42
+ // 스타일 파일 변경 → 소유 컴포넌트 추가
43
+ const styleFileNodes = compiler.getComponentsWithStyleFile(file);
44
+ if (styleFileNodes.size > 0) {
45
+ for (const node of styleFileNodes) {
46
+ if (ts.isClassDeclaration(node)) {
47
+ candidates.add(node);
48
+ }
49
+ }
50
+ continue;
51
+ }
52
+ // 소스 파일 변경 → 상세 분석
53
+ const staleSource = staleSourceFiles?.get(file);
54
+ if (staleSource == null) {
55
+ // 알 수 없는 파일 → full rebuild
56
+ candidates.clear();
57
+ break;
58
+ }
59
+ const updatedSource = compiler.getCurrentProgram().getSourceFile(file);
60
+ if (updatedSource == null) {
61
+ // 더 이상 존재하지 않는 파일 → full rebuild
62
+ candidates.clear();
63
+ break;
64
+ }
65
+ const fileCandidates = analyzeFileUpdates(staleSource, updatedSource, compiler);
66
+ if (fileCandidates != null) {
67
+ for (const node of fileCandidates) {
68
+ candidates.add(node);
69
+ }
70
+ }
71
+ else {
72
+ // 지원 불가 변경 → full rebuild
73
+ candidates.clear();
74
+ break;
75
+ }
76
+ }
77
+ return candidates;
78
+ }
79
+ /**
80
+ * 소스 파일의 변경사항을 분석하여 HMR 후보 컴포넌트를 반환한다.
81
+ * 지원 불가 변경이 있으면 null을 반환한다.
82
+ */
83
+ function analyzeFileUpdates(stale, updated, compiler) {
84
+ if (stale.statements.length !== updated.statements.length) {
85
+ return null;
86
+ }
87
+ const candidates = [];
88
+ for (let i = 0; i < updated.statements.length; ++i) {
89
+ const updatedNode = updated.statements[i];
90
+ const staleNode = stale.statements[i];
91
+ if (ts.isClassDeclaration(updatedNode)) {
92
+ if (!ts.isClassDeclaration(staleNode)) {
93
+ return null;
94
+ }
95
+ // 클래스 이름/상속/수정자 변경 확인
96
+ if (updatedNode.name?.text !== staleNode.name?.text) {
97
+ return null;
98
+ }
99
+ if (!equalRangeText(updatedNode.heritageClauses, updated, staleNode.heritageClauses, stale)) {
100
+ return null;
101
+ }
102
+ const updatedModifiers = ts.getModifiers(updatedNode);
103
+ const staleModifiers = ts.getModifiers(staleNode);
104
+ if (updatedModifiers?.length !== staleModifiers?.length ||
105
+ !updatedModifiers?.every((m) => staleModifiers?.some((sm) => m.kind === sm.kind))) {
106
+ return null;
107
+ }
108
+ // 컴포넌트 클래스 확인
109
+ const meta = compiler.getMeta(updatedNode);
110
+ if (meta?.decorator != null && meta["isComponent"] === true) {
111
+ const updatedDecorators = ts.getDecorators(updatedNode);
112
+ const staleDecorators = ts.getDecorators(staleNode);
113
+ if (staleDecorators == null || staleDecorators.length !== updatedDecorators?.length) {
114
+ return null;
115
+ }
116
+ if (staleDecorators.length > 1) {
117
+ return null;
118
+ }
119
+ const metaDecoratorIndex = updatedDecorators.indexOf(meta.decorator);
120
+ const updatedDecExpr = meta.decorator.expression;
121
+ if (!ts.isCallExpression(updatedDecExpr) ||
122
+ updatedDecExpr.arguments.length !== 1) {
123
+ return null;
124
+ }
125
+ const staleDecExpr = staleDecorators[metaDecoratorIndex].expression;
126
+ if (!ts.isCallExpression(staleDecExpr) ||
127
+ staleDecExpr.arguments.length !== 1) {
128
+ return null;
129
+ }
130
+ // 데코레이터 이름/표현식 비교
131
+ if (!equalRangeText(updatedDecExpr.expression, updated, staleDecExpr.expression, stale)) {
132
+ return null;
133
+ }
134
+ // 메타데이터 변경 분석
135
+ const analysis = analyzeMetaUpdates(staleDecExpr, stale, updatedDecExpr, updated);
136
+ if (analysis === MetaUpdateAnalysis.Unsupported) {
137
+ return null;
138
+ }
139
+ // 클래스 멤버 변경 확인
140
+ if (!equalRangeText(updatedNode.members, updated, staleNode.members, stale)) {
141
+ return null;
142
+ }
143
+ if (analysis === MetaUpdateAnalysis.Supported) {
144
+ candidates.push(updatedNode);
145
+ }
146
+ continue;
147
+ }
148
+ }
149
+ // 비-컴포넌트 문 변경 확인
150
+ if (!equalRangeText(updatedNode, updated, staleNode, stale)) {
151
+ return null;
152
+ }
153
+ }
154
+ return candidates;
155
+ }
156
+ /**
157
+ * 컴포넌트 데코레이터의 메타데이터 필드 변경을 분석한다.
158
+ * 지원 필드(template, styles 등)만 변경되었으면 Supported,
159
+ * 비지원 필드가 변경되었으면 Unsupported,
160
+ * 변경 없으면 None.
161
+ */
162
+ function analyzeMetaUpdates(staleCall, staleSource, updatedCall, updatedSource) {
163
+ const staleObject = staleCall.arguments[0];
164
+ const updatedObject = updatedCall.arguments[0];
165
+ let hasSupportedUpdate = false;
166
+ if (!ts.isObjectLiteralExpression(staleObject) || !ts.isObjectLiteralExpression(updatedObject)) {
167
+ return MetaUpdateAnalysis.Unsupported;
168
+ }
169
+ const supportedFields = new Map();
170
+ const unsupportedFields = [];
171
+ for (const property of staleObject.properties) {
172
+ if (!ts.isPropertyAssignment(property) || ts.isComputedPropertyName(property.name)) {
173
+ return MetaUpdateAnalysis.Unsupported;
174
+ }
175
+ const name = property.name.text;
176
+ if (SUPPORTED_FIELD_NAMES.has(name)) {
177
+ supportedFields.set(name, property.initializer);
178
+ }
179
+ else {
180
+ unsupportedFields.push(property.initializer);
181
+ }
182
+ }
183
+ let j = 0;
184
+ for (const property of updatedObject.properties) {
185
+ if (!ts.isPropertyAssignment(property) || ts.isComputedPropertyName(property.name)) {
186
+ return MetaUpdateAnalysis.Unsupported;
187
+ }
188
+ const name = property.name.text;
189
+ if (SUPPORTED_FIELD_NAMES.has(name)) {
190
+ const staleInitializer = supportedFields.get(name);
191
+ if (staleInitializer == null ||
192
+ !equalRangeText(property.initializer, updatedSource, staleInitializer, staleSource)) {
193
+ hasSupportedUpdate = true;
194
+ }
195
+ supportedFields.delete(name);
196
+ }
197
+ else {
198
+ if (!equalRangeText(property.initializer, updatedSource, unsupportedFields[j++], staleSource)) {
199
+ return MetaUpdateAnalysis.Unsupported;
200
+ }
201
+ }
202
+ }
203
+ if (j !== unsupportedFields.length) {
204
+ return MetaUpdateAnalysis.Unsupported;
205
+ }
206
+ // 남은 supported field → 제거됨 → supported update
207
+ hasSupportedUpdate ||= supportedFields.size > 0;
208
+ return hasSupportedUpdate ? MetaUpdateAnalysis.Supported : MetaUpdateAnalysis.None;
209
+ }
210
+ /**
211
+ * 두 소스 파일 범위의 텍스트를 문자 단위로 비교한다.
212
+ */
213
+ function equalRangeText(firstRange, firstSource, secondRange, secondSource) {
214
+ if (firstRange == null || secondRange == null) {
215
+ return firstRange === secondRange;
216
+ }
217
+ const firstLength = firstRange.end - firstRange.pos;
218
+ const secondLength = secondRange.end - secondRange.pos;
219
+ if (firstLength !== secondLength) {
220
+ return false;
221
+ }
222
+ for (let i = 0; i < firstLength; ++i) {
223
+ if (firstSource.text.charCodeAt(i + firstRange.pos) !==
224
+ secondSource.text.charCodeAt(i + secondRange.pos)) {
225
+ return false;
226
+ }
227
+ }
228
+ return true;
229
+ }
230
+ //# sourceMappingURL=hmr-candidates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmr-candidates.js","sourceRoot":"","sources":["../../src/angular/hmr-candidates.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,3 @@
1
- import ts from "typescript";
2
- import type { BuildOutput } from "../engines/types";
3
- import type { SerializedDiagnostic } from "../typecheck/typecheck-serialization";
4
- import type { LintWithProgramResult } from "../lint/lint-with-program";
5
- import type { TypecheckEnv } from "../utils/tsconfig";
6
- export interface NgtscBuildInfo {
7
- name: string;
8
- cwd: string;
9
- pkgDir: string;
10
- output: BuildOutput;
11
- /** 타입체크 환경. 설정 시 getCompilerOptionsForEnv()로 compilerOptions를 조정한다. */
12
- env?: TypecheckEnv;
13
- /** sd.config.ts의 replaceDeps 설정 */
14
- replaceDeps?: Record<string, string>;
15
- }
16
- export interface NgtscBuildResult {
17
- build: {
18
- success: boolean;
19
- errors?: string[];
20
- warnings?: string[];
21
- diagnostics: SerializedDiagnostic[];
22
- };
23
- lint?: LintWithProgramResult;
24
- }
25
- export interface NgtscCombinedBuildEvent {
26
- build: {
27
- success: boolean;
28
- errors?: string[];
29
- warnings?: string[];
30
- };
31
- lint?: LintWithProgramResult;
32
- }
33
- export declare function buildCompilerOptions(baseOptions: ts.CompilerOptions, pkgDir: string, output: BuildOutput): ts.CompilerOptions;
34
- export declare function buildScssLoadPaths(info: NgtscBuildInfo): string[];
35
1
  export declare function trackDeps(depsMap: Map<string, Set<string>>, containingFile: string, dependencies: string[]): void;
36
2
  export declare function formatScssError(err: unknown, containingFile: string): string;
37
3
  export interface SideEffectScssEntry {
@@ -45,6 +11,16 @@ export interface SideEffectScssOptions {
45
11
  scssDependencies: Map<string, Set<string>>;
46
12
  registry?: Map<string, SideEffectScssEntry>;
47
13
  }
14
+ /**
15
+ * Library용 transformStylesheet 콜백 팩토리.
16
+ * AngularCompiler의 transformStylesheet 옵션에 주입된다.
17
+ *
18
+ * - 외부 .scss 파일: compileScssFile로 CSS 반환 + 의존성 기록
19
+ * - 외부 비-SCSS 파일 (.css 등): null 반환 (readResource가 처리)
20
+ * - 인라인 스타일: compileScssString으로 CSS 반환 + 의존성 기록
21
+ * - 에러 시: scssErrors에 추가, SCSS error comment 반환
22
+ */
23
+ export declare function createLibraryTransformStylesheet(loadPaths: string[], scssErrors: string[], scssDependencies: Map<string, Set<string>>): (data: string, containingFile: string, stylesheetFile?: string) => Promise<string | null>;
48
24
  /**
49
25
  * 레지스트리의 모든 side-effect SCSS 항목을 CSS로 컴파일한다.
50
26
  * compileGlobalScss와 동일한 패턴 — 항상 모든 항목을 재컴파일한다.
@@ -52,4 +28,23 @@ export interface SideEffectScssOptions {
52
28
  */
53
29
  export declare function compileSideEffectScss(registry: ReadonlyMap<string, SideEffectScssEntry>, loadPaths: string[], scssErrors: string[], scssDependencies: Map<string, Set<string>>): void;
54
30
  export declare function compileGlobalScss(pkgDir: string, loadPaths: string[]): string[];
31
+ export interface WriteEmitResultsOptions {
32
+ /** 출력 대상 패키지 디렉토리 */
33
+ pkgDir: string;
34
+ /** emit 결과 필터 (src/ 하위만 등) */
35
+ sourceFilter?: (fileName: string) => boolean;
36
+ /** side-effect SCSS 옵션 */
37
+ scss?: SideEffectScssOptions;
38
+ }
39
+ /**
40
+ * emitAffectedFiles 결과를 output-path-rewriting 적용 후 파일로 쓴다.
41
+ * scss 옵션이 제공되면 .js 파일 내 .scss side-effect import를 처리한다:
42
+ * 1. import 경로를 .scss → .css로 변환
43
+ * 2. 참조된 SCSS 파일을 CSS로 컴파일하여 dist에 출력
44
+ */
45
+ export declare function writeEmitResults(emitResults: Iterable<{
46
+ filename: string;
47
+ contents: string;
48
+ sourceFileName?: string;
49
+ }>, pkgDir: string, scss?: SideEffectScssOptions): void;
55
50
  //# sourceMappingURL=ngtsc-build-core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngtsc-build-core.d.ts","sourceRoot":"","sources":["../../src/angular/ngtsc-build-core.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAK5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,uEAAuE;IACvE,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,oBAAoB,EAAE,CAAA;KAAE,CAAC;IACzG,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpE,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAMD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,EAAE,CAAC,eAAe,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,GAClB,EAAE,CAAC,eAAe,CAwCpB;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,CAKjE;AAID,wBAAgB,SAAS,CACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACjC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EAAE,GACrB,IAAI,CASN;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC7C;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAClD,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACzC,IAAI,CAaN;AAMD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,EAAE,CAgBV"}
1
+ {"version":3,"file":"ngtsc-build-core.d.ts","sourceRoot":"","sources":["../../src/angular/ngtsc-build-core.ts"],"names":[],"mappings":"AASA,wBAAgB,SAAS,CACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACjC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EAAE,GACrB,IAAI,CASN;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC7C;AAID;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACzC,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2B3F;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAClD,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACzC,IAAI,CAaN;AAMD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,EAAE,CAgBV;AAMD,MAAM,WAAW,uBAAuB;IACtC,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,0BAA0B;IAC1B,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,QAAQ,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACtF,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,qBAAqB,GAC3B,IAAI,CAoDN"}
@@ -1,59 +1,10 @@
1
1
  import path from "path";
2
2
  import fs from "fs";
3
- import ts from "typescript";
4
3
  import { err as errNs } from "@simplysm/core-common";
5
4
  import { consola } from "consola";
6
5
  const logger = consola.withTag("sd:cli:ngtsc-build");
7
- import { compileScssFile } from "./scss-compiler.js";
8
- //#endregion
9
- //#region CompilerOptions helpers
10
- export function buildCompilerOptions(baseOptions, pkgDir, output) {
11
- const needsEmit = output.js || output.dts;
12
- const options = {
13
- ...baseOptions,
14
- sourceMap: false,
15
- outDir: path.join(pkgDir, "dist"),
16
- incremental: true,
17
- tsBuildInfoFile: path.join(pkgDir, ".cache", needsEmit ? "ngtsc-build.tsbuildinfo" : "ngtsc-typecheck.tsbuildinfo"),
18
- };
19
- if (output.js && output.dts) {
20
- options.noEmit = false;
21
- options.declaration = true;
22
- options.declarationMap = true;
23
- options.emitDeclarationOnly = false;
24
- options.declarationDir = path.join(pkgDir, "dist");
25
- }
26
- else if (output.js && !output.dts) {
27
- options.noEmit = false;
28
- options.declaration = false;
29
- options.declarationMap = false;
30
- options.emitDeclarationOnly = false;
31
- }
32
- else if (!output.js && output.dts) {
33
- options.noEmit = false;
34
- options.declaration = true;
35
- options.declarationMap = true;
36
- options.emitDeclarationOnly = true;
37
- options.declarationDir = path.join(pkgDir, "dist");
38
- }
39
- else {
40
- // 둘 다 false — 타입체크만 수행
41
- options.noEmit = true;
42
- options.declaration = false;
43
- options.declarationMap = false;
44
- options.emitDeclarationOnly = false;
45
- }
46
- return options;
47
- }
48
- //#endregion
49
- //#region SCSS loadPaths helper
50
- export function buildScssLoadPaths(info) {
51
- return [
52
- path.join(info.pkgDir, "scss"),
53
- path.join(info.cwd, "node_modules"),
54
- ];
55
- }
56
- //#endregion
6
+ import { compileScssFile, compileScssString } from "./scss-compiler.js";
7
+ import { createOutputPathRewriter, rewriteScssImports } from "../utils/output-path-rewriter.js";
57
8
  export function trackDeps(depsMap, containingFile, dependencies) {
58
9
  let deps = depsMap.get(containingFile);
59
10
  if (deps == null) {
@@ -68,6 +19,40 @@ export function formatScssError(err, containingFile) {
68
19
  const message = errNs.message(err);
69
20
  return `SCSS error in ${containingFile}: ${message}`;
70
21
  }
22
+ //#region Library SCSS transform
23
+ /**
24
+ * Library용 transformStylesheet 콜백 팩토리.
25
+ * AngularCompiler의 transformStylesheet 옵션에 주입된다.
26
+ *
27
+ * - 외부 .scss 파일: compileScssFile로 CSS 반환 + 의존성 기록
28
+ * - 외부 비-SCSS 파일 (.css 등): null 반환 (readResource가 처리)
29
+ * - 인라인 스타일: compileScssString으로 CSS 반환 + 의존성 기록
30
+ * - 에러 시: scssErrors에 추가, SCSS error comment 반환
31
+ */
32
+ export function createLibraryTransformStylesheet(loadPaths, scssErrors, scssDependencies) {
33
+ return (data, containingFile, stylesheetFile) => {
34
+ try {
35
+ if (stylesheetFile != null && stylesheetFile.endsWith(".scss")) {
36
+ const result = compileScssFile(stylesheetFile, loadPaths);
37
+ trackDeps(scssDependencies, containingFile, result.dependencies);
38
+ return Promise.resolve(result.css);
39
+ }
40
+ if (stylesheetFile != null) {
41
+ // .css 등 비-SCSS 파일 → null 반환 (readResource가 처리)
42
+ return Promise.resolve(null);
43
+ }
44
+ // 인라인 스타일 — SCSS로 컴파일
45
+ const result = compileScssString(data, containingFile, loadPaths);
46
+ trackDeps(scssDependencies, containingFile, result.dependencies);
47
+ return Promise.resolve(result.css);
48
+ }
49
+ catch (err) {
50
+ scssErrors.push(formatScssError(err, containingFile));
51
+ return Promise.resolve("/* SCSS compilation error */");
52
+ }
53
+ };
54
+ }
55
+ //#endregion
71
56
  //#region Side-effect SCSS
72
57
  /**
73
58
  * 레지스트리의 모든 side-effect SCSS 항목을 CSS로 컴파일한다.
@@ -109,5 +94,59 @@ export function compileGlobalScss(pkgDir, loadPaths) {
109
94
  logger.debug("global SCSS 컴파일 완료");
110
95
  return errors;
111
96
  }
97
+ /**
98
+ * emitAffectedFiles 결과를 output-path-rewriting 적용 후 파일로 쓴다.
99
+ * scss 옵션이 제공되면 .js 파일 내 .scss side-effect import를 처리한다:
100
+ * 1. import 경로를 .scss → .css로 변환
101
+ * 2. 참조된 SCSS 파일을 CSS로 컴파일하여 dist에 출력
102
+ */
103
+ export function writeEmitResults(emitResults, pkgDir, scss) {
104
+ logger.debug("emit 결과 파일 쓰기 시작");
105
+ const rewritePath = createOutputPathRewriter(pkgDir);
106
+ for (const { filename, contents, sourceFileName } of emitResults) {
107
+ const rewrite = rewritePath(filename, contents);
108
+ if (rewrite == null)
109
+ continue;
110
+ let [newPath, newContent] = rewrite;
111
+ // .js 파일 내 side-effect SCSS import 처리
112
+ if (scss != null && newPath.endsWith(".js")) {
113
+ const { text, scssImports } = rewriteScssImports(newContent);
114
+ newContent = text;
115
+ // 새 항목 등록 전에 이 소스 파일의 기존 레지스트리 항목 제거
116
+ if (scss.registry != null && sourceFileName != null) {
117
+ for (const [key, entry] of scss.registry) {
118
+ if (entry.sourceFileName === sourceFileName) {
119
+ scss.registry.delete(key);
120
+ }
121
+ }
122
+ }
123
+ if (scssImports.length > 0 && sourceFileName != null) {
124
+ const sourceDir = path.dirname(sourceFileName);
125
+ const outputDir = path.dirname(newPath);
126
+ for (const scssImport of scssImports) {
127
+ const scssAbsPath = path.resolve(sourceDir, scssImport);
128
+ const cssFileName = scssImport.replace(/\.scss$/, ".css");
129
+ const cssAbsPath = path.resolve(outputDir, cssFileName);
130
+ // 레지스트리가 제공된 경우 등록 (scssAbsPath를 키로 사용하여 중복 방지)
131
+ if (scss.registry != null) {
132
+ scss.registry.set(scssAbsPath, { scssAbsPath, cssAbsPath, sourceFileName });
133
+ }
134
+ try {
135
+ const result = compileScssFile(scssAbsPath, scss.loadPaths);
136
+ fs.mkdirSync(path.dirname(cssAbsPath), { recursive: true });
137
+ fs.writeFileSync(cssAbsPath, result.css, "utf-8");
138
+ trackDeps(scss.scssDependencies, sourceFileName, result.dependencies);
139
+ }
140
+ catch (err) {
141
+ scss.scssErrors.push(formatScssError(err, scssAbsPath));
142
+ }
143
+ }
144
+ }
145
+ }
146
+ fs.mkdirSync(path.dirname(newPath), { recursive: true });
147
+ fs.writeFileSync(newPath, newContent, "utf-8");
148
+ }
149
+ logger.debug("emit 결과 파일 쓰기 완료");
150
+ }
112
151
  //#endregion
113
152
  //# sourceMappingURL=ngtsc-build-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngtsc-build-core.js","sourceRoot":"","sources":["../../src/angular/ngtsc-build-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngtsc-build-core.js","sourceRoot":"","sources":["../../src/angular/ngtsc-build-core.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export interface SdAngularPluginOptions {
7
7
  /**
8
8
  * Angular AOT 컴파일을 수행하는 Vite 플러그인 (Vitest 전용).
9
9
  *
10
- * AngularBuildPipeline으로 패키지의 .ts 파일을 AOT 컴파일하고,
10
+ * SdTsCompiler로 패키지의 .ts 파일을 AOT 컴파일하고,
11
11
  * transform 훅에서 컴파일된 JS를 반환한다.
12
12
  */
13
13
  export declare function sdAngularPlugin(options: SdAngularPluginOptions): Plugin;
@@ -1 +1 @@
1
- {"version":3,"file":"vite-angular-plugin.d.ts","sourceRoot":"","sources":["../../src/angular/vite-angular-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAcnC,yBAAyB;AACzB,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAkHvE"}
1
+ {"version":3,"file":"vite-angular-plugin.d.ts","sourceRoot":"","sources":["../../src/angular/vite-angular-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAWnC,yBAAyB;AACzB,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAkHvE"}