@simplysm/sd-cli 14.0.30 → 14.0.32

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 (626) hide show
  1. package/dist/{utils → angular}/angular-build-pipeline.d.ts +0 -2
  2. package/dist/angular/angular-build-pipeline.d.ts.map +1 -0
  3. package/dist/{utils → angular}/angular-build-pipeline.js +3 -6
  4. package/dist/angular/angular-build-pipeline.js.map +1 -0
  5. package/dist/{utils → angular}/angular-build.d.ts +1 -1
  6. package/dist/angular/angular-build.d.ts.map +1 -0
  7. package/dist/{utils → angular}/angular-build.js +1 -1
  8. package/dist/angular/angular-build.js.map +1 -0
  9. package/dist/{utils → angular}/angular-compiler.d.ts +0 -3
  10. package/dist/angular/angular-compiler.d.ts.map +1 -0
  11. package/dist/{utils → angular}/angular-compiler.js +1 -45
  12. package/dist/angular/angular-compiler.js.map +1 -0
  13. package/dist/angular/client-transform-stylesheet.js +1 -1
  14. package/dist/angular/client-transform-stylesheet.js.map +1 -1
  15. package/dist/{utils → angular}/ngtsc-build-core.d.ts +3 -3
  16. package/dist/angular/ngtsc-build-core.d.ts.map +1 -0
  17. package/dist/angular/ngtsc-build-core.js.map +1 -0
  18. package/dist/angular/scss-compiler.d.ts.map +1 -0
  19. package/dist/angular/scss-compiler.js.map +1 -0
  20. package/dist/angular/vite-angular-plugin.d.ts +2 -10
  21. package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
  22. package/dist/angular/vite-angular-plugin.js +20 -286
  23. package/dist/angular/vite-angular-plugin.js.map +1 -1
  24. package/dist/capacitor/capacitor-build.d.ts +14 -0
  25. package/dist/capacitor/capacitor-build.d.ts.map +1 -0
  26. package/dist/capacitor/capacitor-build.js +105 -0
  27. package/dist/capacitor/capacitor-build.js.map +1 -0
  28. package/dist/capacitor/capacitor-config-writer.d.ts +11 -0
  29. package/dist/capacitor/capacitor-config-writer.d.ts.map +1 -0
  30. package/dist/capacitor/capacitor-config-writer.js +54 -0
  31. package/dist/capacitor/capacitor-config-writer.js.map +1 -0
  32. package/dist/capacitor/capacitor-icon.d.ts +5 -0
  33. package/dist/capacitor/capacitor-icon.d.ts.map +1 -0
  34. package/dist/capacitor/capacitor-icon.js +58 -0
  35. package/dist/capacitor/capacitor-icon.js.map +1 -0
  36. package/dist/capacitor/capacitor-npm-config.d.ts +11 -0
  37. package/dist/capacitor/capacitor-npm-config.d.ts.map +1 -0
  38. package/dist/capacitor/capacitor-npm-config.js +145 -0
  39. package/dist/capacitor/capacitor-npm-config.js.map +1 -0
  40. package/dist/capacitor/capacitor.d.ts +0 -45
  41. package/dist/capacitor/capacitor.d.ts.map +1 -1
  42. package/dist/capacitor/capacitor.js +15 -354
  43. package/dist/capacitor/capacitor.js.map +1 -1
  44. package/dist/commands/check.js +2 -2
  45. package/dist/commands/check.js.map +1 -1
  46. package/dist/commands/dev.d.ts +3 -3
  47. package/dist/commands/dev.d.ts.map +1 -1
  48. package/dist/commands/dev.js +3 -3
  49. package/dist/commands/dev.js.map +1 -1
  50. package/dist/commands/lint.d.ts +1 -1
  51. package/dist/commands/lint.d.ts.map +1 -1
  52. package/dist/commands/lint.js +1 -1
  53. package/dist/commands/lint.js.map +1 -1
  54. package/dist/commands/publish/deployment-phase.d.ts +12 -0
  55. package/dist/commands/publish/deployment-phase.d.ts.map +1 -0
  56. package/dist/commands/publish/deployment-phase.js +94 -0
  57. package/dist/commands/publish/deployment-phase.js.map +1 -0
  58. package/dist/commands/publish/env-utils.d.ts +10 -0
  59. package/dist/commands/publish/env-utils.d.ts.map +1 -0
  60. package/dist/commands/publish/env-utils.js +41 -0
  61. package/dist/commands/publish/env-utils.js.map +1 -0
  62. package/dist/commands/publish/git-phase.d.ts +12 -0
  63. package/dist/commands/publish/git-phase.d.ts.map +1 -0
  64. package/dist/commands/publish/git-phase.js +79 -0
  65. package/dist/commands/publish/git-phase.js.map +1 -0
  66. package/dist/commands/{publish.d.ts → publish/index.d.ts} +1 -1
  67. package/dist/commands/publish/index.d.ts.map +1 -0
  68. package/dist/commands/publish/index.js +211 -0
  69. package/dist/commands/publish/index.js.map +1 -0
  70. package/dist/commands/publish/local-publisher.d.ts +6 -0
  71. package/dist/commands/publish/local-publisher.d.ts.map +1 -0
  72. package/dist/commands/publish/local-publisher.js +16 -0
  73. package/dist/commands/publish/local-publisher.js.map +1 -0
  74. package/dist/commands/publish/npm-publisher.d.ts +6 -0
  75. package/dist/commands/publish/npm-publisher.d.ts.map +1 -0
  76. package/dist/commands/publish/npm-publisher.js +21 -0
  77. package/dist/commands/publish/npm-publisher.js.map +1 -0
  78. package/dist/commands/publish/post-publish-phase.d.ts +8 -0
  79. package/dist/commands/publish/post-publish-phase.d.ts.map +1 -0
  80. package/dist/commands/publish/post-publish-phase.js +34 -0
  81. package/dist/commands/publish/post-publish-phase.js.map +1 -0
  82. package/dist/commands/publish/storage-publisher.d.ts +18 -0
  83. package/dist/commands/publish/storage-publisher.d.ts.map +1 -0
  84. package/dist/commands/publish/storage-publisher.js +173 -0
  85. package/dist/commands/publish/storage-publisher.js.map +1 -0
  86. package/dist/commands/publish/version-upgrade.d.ts +28 -0
  87. package/dist/commands/publish/version-upgrade.d.ts.map +1 -0
  88. package/dist/commands/publish/version-upgrade.js +96 -0
  89. package/dist/commands/publish/version-upgrade.js.map +1 -0
  90. package/dist/commands/replace-deps.js +1 -1
  91. package/dist/commands/replace-deps.js.map +1 -1
  92. package/dist/commands/watch.d.ts +3 -4
  93. package/dist/commands/watch.d.ts.map +1 -1
  94. package/dist/commands/watch.js +3 -4
  95. package/dist/commands/watch.js.map +1 -1
  96. package/dist/deps/replace-deps/collect-deps.d.ts +6 -0
  97. package/dist/deps/replace-deps/collect-deps.d.ts.map +1 -0
  98. package/dist/deps/replace-deps/collect-deps.js +71 -0
  99. package/dist/deps/replace-deps/collect-deps.js.map +1 -0
  100. package/dist/{utils/replace-deps.d.ts → deps/replace-deps/replace-deps-resolve.d.ts} +7 -24
  101. package/dist/deps/replace-deps/replace-deps-resolve.d.ts.map +1 -0
  102. package/dist/{utils/replace-deps.js → deps/replace-deps/replace-deps-resolve.js} +4 -152
  103. package/dist/deps/replace-deps/replace-deps-resolve.js.map +1 -0
  104. package/dist/deps/replace-deps/replace-deps.d.ts +36 -0
  105. package/dist/deps/replace-deps/replace-deps.d.ts.map +1 -0
  106. package/dist/deps/replace-deps/replace-deps.js +155 -0
  107. package/dist/deps/replace-deps/replace-deps.js.map +1 -0
  108. package/dist/{utils → deps/server-externals}/server-production-files.d.ts +1 -1
  109. package/dist/deps/server-externals/server-production-files.d.ts.map +1 -0
  110. package/dist/{utils → deps/server-externals}/server-production-files.js +1 -1
  111. package/dist/deps/server-externals/server-production-files.js.map +1 -0
  112. package/dist/dev-server/dev-http-server.d.ts +23 -0
  113. package/dist/dev-server/dev-http-server.d.ts.map +1 -0
  114. package/dist/dev-server/dev-http-server.js +116 -0
  115. package/dist/dev-server/dev-http-server.js.map +1 -0
  116. package/dist/dev-server/hmr-client-script.d.ts +13 -0
  117. package/dist/dev-server/hmr-client-script.d.ts.map +1 -0
  118. package/dist/dev-server/hmr-client-script.js +73 -0
  119. package/dist/dev-server/hmr-client-script.js.map +1 -0
  120. package/dist/dev-server/hmr-service.d.ts +23 -0
  121. package/dist/dev-server/hmr-service.d.ts.map +1 -0
  122. package/dist/dev-server/hmr-service.js +139 -0
  123. package/dist/dev-server/hmr-service.js.map +1 -0
  124. package/dist/electron/electron.d.ts +5 -0
  125. package/dist/electron/electron.d.ts.map +1 -1
  126. package/dist/electron/electron.js +17 -24
  127. package/dist/electron/electron.js.map +1 -1
  128. package/dist/engines/BaseEngine.d.ts +18 -4
  129. package/dist/engines/BaseEngine.d.ts.map +1 -1
  130. package/dist/engines/BaseEngine.js +45 -66
  131. package/dist/engines/BaseEngine.js.map +1 -1
  132. package/dist/engines/{ViteEngine.d.ts → EsbuildClientEngine.d.ts} +11 -18
  133. package/dist/engines/EsbuildClientEngine.d.ts.map +1 -0
  134. package/dist/engines/{ViteEngine.js → EsbuildClientEngine.js} +28 -55
  135. package/dist/engines/EsbuildClientEngine.js.map +1 -0
  136. package/dist/engines/NgtscEngine.d.ts +2 -2
  137. package/dist/engines/NgtscEngine.d.ts.map +1 -1
  138. package/dist/engines/NgtscEngine.js +1 -9
  139. package/dist/engines/NgtscEngine.js.map +1 -1
  140. package/dist/engines/ServerEsbuildEngine.d.ts +2 -2
  141. package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -1
  142. package/dist/engines/ServerEsbuildEngine.js +1 -9
  143. package/dist/engines/ServerEsbuildEngine.js.map +1 -1
  144. package/dist/engines/TscEngine.d.ts +2 -2
  145. package/dist/engines/TscEngine.d.ts.map +1 -1
  146. package/dist/engines/TscEngine.js +1 -9
  147. package/dist/engines/TscEngine.js.map +1 -1
  148. package/dist/engines/index.d.ts +15 -5
  149. package/dist/engines/index.d.ts.map +1 -1
  150. package/dist/engines/index.js +21 -5
  151. package/dist/engines/index.js.map +1 -1
  152. package/dist/engines/types.d.ts +3 -3
  153. package/dist/engines/types.d.ts.map +1 -1
  154. package/dist/esbuild/esbuild-client-config.d.ts +38 -0
  155. package/dist/esbuild/esbuild-client-config.d.ts.map +1 -0
  156. package/dist/esbuild/esbuild-client-config.js +171 -0
  157. package/dist/esbuild/esbuild-client-config.js.map +1 -0
  158. package/dist/esbuild/esbuild-config.d.ts.map +1 -0
  159. package/dist/{utils → esbuild}/esbuild-config.js +1 -0
  160. package/dist/esbuild/esbuild-config.js.map +1 -0
  161. package/dist/esbuild/esbuild-index-html.d.ts +39 -0
  162. package/dist/esbuild/esbuild-index-html.d.ts.map +1 -0
  163. package/dist/esbuild/esbuild-index-html.js +68 -0
  164. package/dist/esbuild/esbuild-index-html.js.map +1 -0
  165. package/dist/esbuild/esbuild-pwa.d.ts +21 -0
  166. package/dist/esbuild/esbuild-pwa.d.ts.map +1 -0
  167. package/dist/esbuild/esbuild-pwa.js +105 -0
  168. package/dist/esbuild/esbuild-pwa.js.map +1 -0
  169. package/dist/esbuild/esbuild-scss-plugin.d.ts +6 -0
  170. package/dist/esbuild/esbuild-scss-plugin.d.ts.map +1 -0
  171. package/dist/esbuild/esbuild-scss-plugin.js +41 -0
  172. package/dist/esbuild/esbuild-scss-plugin.js.map +1 -0
  173. package/dist/lint/lint-core.d.ts.map +1 -0
  174. package/dist/lint/lint-core.js.map +1 -0
  175. package/dist/lint/lint-utils.d.ts.map +1 -0
  176. package/dist/lint/lint-utils.js.map +1 -0
  177. package/dist/lint/lint-with-program.d.ts.map +1 -0
  178. package/dist/lint/lint-with-program.js.map +1 -0
  179. package/dist/orchestrators/BaseOrchestrator.d.ts +44 -0
  180. package/dist/orchestrators/BaseOrchestrator.d.ts.map +1 -0
  181. package/dist/orchestrators/BaseOrchestrator.js +92 -0
  182. package/dist/orchestrators/BaseOrchestrator.js.map +1 -0
  183. package/dist/orchestrators/BuildOrchestrator.d.ts +45 -3
  184. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  185. package/dist/orchestrators/BuildOrchestrator.js +170 -143
  186. package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
  187. package/dist/orchestrators/DevOrchestrator.d.ts +39 -0
  188. package/dist/orchestrators/DevOrchestrator.d.ts.map +1 -0
  189. package/dist/orchestrators/DevOrchestrator.js +249 -0
  190. package/dist/orchestrators/DevOrchestrator.js.map +1 -0
  191. package/dist/orchestrators/ServerRuntimeManager.d.ts +22 -0
  192. package/dist/orchestrators/ServerRuntimeManager.d.ts.map +1 -0
  193. package/dist/orchestrators/ServerRuntimeManager.js +66 -0
  194. package/dist/orchestrators/ServerRuntimeManager.js.map +1 -0
  195. package/dist/orchestrators/TypecheckOrchestrator.d.ts +17 -2
  196. package/dist/orchestrators/TypecheckOrchestrator.d.ts.map +1 -1
  197. package/dist/orchestrators/TypecheckOrchestrator.js +122 -108
  198. package/dist/orchestrators/TypecheckOrchestrator.js.map +1 -1
  199. package/dist/orchestrators/WatchOrchestrator.d.ts +33 -0
  200. package/dist/orchestrators/WatchOrchestrator.d.ts.map +1 -0
  201. package/dist/orchestrators/WatchOrchestrator.js +158 -0
  202. package/dist/orchestrators/WatchOrchestrator.js.map +1 -0
  203. package/dist/orchestrators/types.d.ts +17 -0
  204. package/dist/orchestrators/types.d.ts.map +1 -0
  205. package/dist/orchestrators/types.js +2 -0
  206. package/dist/orchestrators/types.js.map +1 -0
  207. package/dist/runtime/ResultCollector.d.ts.map +1 -0
  208. package/dist/runtime/ResultCollector.js.map +1 -0
  209. package/dist/runtime/SignalHandler.d.ts.map +1 -0
  210. package/dist/runtime/SignalHandler.js.map +1 -0
  211. package/dist/{utils → runtime}/engine-stop.d.ts +1 -1
  212. package/dist/runtime/engine-stop.d.ts.map +1 -0
  213. package/dist/{utils → runtime}/engine-stop.js +1 -1
  214. package/dist/runtime/engine-stop.js.map +1 -0
  215. package/dist/runtime/engine-watch-events.d.ts +43 -0
  216. package/dist/runtime/engine-watch-events.d.ts.map +1 -0
  217. package/dist/runtime/engine-watch-events.js +72 -0
  218. package/dist/runtime/engine-watch-events.js.map +1 -0
  219. package/dist/{utils → runtime}/rebuild-manager.d.ts +1 -0
  220. package/dist/runtime/rebuild-manager.d.ts.map +1 -0
  221. package/dist/{utils → runtime}/rebuild-manager.js +8 -1
  222. package/dist/runtime/rebuild-manager.js.map +1 -0
  223. package/dist/runtime/worker-events.d.ts +22 -0
  224. package/dist/runtime/worker-events.d.ts.map +1 -0
  225. package/dist/runtime/worker-events.js +2 -0
  226. package/dist/runtime/worker-events.js.map +1 -0
  227. package/dist/runtime/worker-utils.d.ts.map +1 -0
  228. package/dist/runtime/worker-utils.js.map +1 -0
  229. package/dist/sd-cli-entry.d.ts.map +1 -1
  230. package/dist/sd-cli-entry.js +61 -54
  231. package/dist/sd-cli-entry.js.map +1 -1
  232. package/dist/sd-cli.js +1 -1
  233. package/dist/sd-cli.js.map +1 -1
  234. package/dist/sd-config.types.d.ts +6 -15
  235. package/dist/sd-config.types.d.ts.map +1 -1
  236. package/dist/typecheck/typecheck-non-package.d.ts.map +1 -0
  237. package/dist/{utils → typecheck}/typecheck-non-package.js +1 -1
  238. package/dist/typecheck/typecheck-non-package.js.map +1 -0
  239. package/dist/typecheck/typecheck-serialization.d.ts.map +1 -0
  240. package/dist/typecheck/typecheck-serialization.js.map +1 -0
  241. package/dist/utils/diagnostic-utils.d.ts +5 -0
  242. package/dist/utils/diagnostic-utils.d.ts.map +1 -1
  243. package/dist/utils/diagnostic-utils.js +15 -0
  244. package/dist/utils/diagnostic-utils.js.map +1 -1
  245. package/dist/utils/orchestrator-utils.d.ts +1 -5
  246. package/dist/utils/orchestrator-utils.d.ts.map +1 -1
  247. package/dist/utils/orchestrator-utils.js +2 -5
  248. package/dist/utils/orchestrator-utils.js.map +1 -1
  249. package/dist/utils/output-utils.d.ts +1 -1
  250. package/dist/utils/output-utils.d.ts.map +1 -1
  251. package/dist/utils/package-classify.d.ts +54 -0
  252. package/dist/utils/package-classify.d.ts.map +1 -0
  253. package/dist/utils/package-classify.js +134 -0
  254. package/dist/utils/package-classify.js.map +1 -0
  255. package/dist/utils/package-utils.d.ts +1 -58
  256. package/dist/utils/package-utils.d.ts.map +1 -1
  257. package/dist/utils/package-utils.js +0 -193
  258. package/dist/utils/package-utils.js.map +1 -1
  259. package/dist/utils/tsc-build.d.ts +1 -1
  260. package/dist/utils/tsc-build.d.ts.map +1 -1
  261. package/dist/utils/tsc-build.js +1 -1
  262. package/dist/utils/tsc-build.js.map +1 -1
  263. package/dist/workers/build-change-filter.d.ts +8 -0
  264. package/dist/workers/build-change-filter.d.ts.map +1 -0
  265. package/dist/workers/build-change-filter.js +16 -0
  266. package/dist/workers/build-change-filter.js.map +1 -0
  267. package/dist/workers/build-watch-paths.d.ts +20 -0
  268. package/dist/workers/build-watch-paths.d.ts.map +1 -0
  269. package/dist/workers/build-watch-paths.js +29 -0
  270. package/dist/workers/build-watch-paths.js.map +1 -0
  271. package/dist/workers/client.worker.d.ts +11 -18
  272. package/dist/workers/client.worker.d.ts.map +1 -1
  273. package/dist/workers/client.worker.js +218 -289
  274. package/dist/workers/client.worker.js.map +1 -1
  275. package/dist/workers/library-build.worker.d.ts +2 -2
  276. package/dist/workers/library-build.worker.d.ts.map +1 -1
  277. package/dist/workers/library-build.worker.js +13 -24
  278. package/dist/workers/library-build.worker.js.map +1 -1
  279. package/dist/workers/lint.worker.d.ts +1 -1
  280. package/dist/workers/lint.worker.d.ts.map +1 -1
  281. package/dist/workers/lint.worker.js +1 -1
  282. package/dist/workers/lint.worker.js.map +1 -1
  283. package/dist/workers/ngtsc-build.worker.d.ts +1 -1
  284. package/dist/workers/ngtsc-build.worker.d.ts.map +1 -1
  285. package/dist/workers/ngtsc-build.worker.js +19 -35
  286. package/dist/workers/ngtsc-build.worker.js.map +1 -1
  287. package/dist/workers/server-build.worker.d.ts +2 -2
  288. package/dist/workers/server-build.worker.d.ts.map +1 -1
  289. package/dist/workers/server-build.worker.js +36 -137
  290. package/dist/workers/server-build.worker.js.map +1 -1
  291. package/dist/workers/server-esbuild-context.d.ts +47 -0
  292. package/dist/workers/server-esbuild-context.d.ts.map +1 -0
  293. package/dist/workers/server-esbuild-context.js +92 -0
  294. package/dist/workers/server-esbuild-context.js.map +1 -0
  295. package/dist/workers/server-runtime.worker.d.ts.map +1 -1
  296. package/dist/workers/server-runtime.worker.js +3 -1
  297. package/dist/workers/server-runtime.worker.js.map +1 -1
  298. package/dist/workers/server-watch-manager.d.ts +44 -0
  299. package/dist/workers/server-watch-manager.d.ts.map +1 -0
  300. package/dist/workers/server-watch-manager.js +87 -0
  301. package/dist/workers/server-watch-manager.js.map +1 -0
  302. package/dist/workers/shared-worker-lifecycle.d.ts +14 -0
  303. package/dist/workers/shared-worker-lifecycle.d.ts.map +1 -0
  304. package/dist/workers/shared-worker-lifecycle.js +17 -0
  305. package/dist/workers/shared-worker-lifecycle.js.map +1 -0
  306. package/package.json +9 -9
  307. package/src/{utils → angular}/angular-build-pipeline.ts +3 -8
  308. package/src/{utils → angular}/angular-build.ts +1 -1
  309. package/src/{utils → angular}/angular-compiler.ts +1 -64
  310. package/src/angular/client-transform-stylesheet.ts +1 -1
  311. package/src/{utils → angular}/ngtsc-build-core.ts +3 -3
  312. package/src/angular/vite-angular-plugin.ts +22 -355
  313. package/src/capacitor/capacitor-build.ts +142 -0
  314. package/src/capacitor/capacitor-config-writer.ts +66 -0
  315. package/src/capacitor/capacitor-icon.ts +75 -0
  316. package/src/capacitor/capacitor-npm-config.ts +192 -0
  317. package/src/capacitor/capacitor.ts +32 -441
  318. package/src/commands/check.ts +2 -2
  319. package/src/commands/dev.ts +6 -6
  320. package/src/commands/lint.ts +1 -1
  321. package/src/commands/publish/deployment-phase.ts +125 -0
  322. package/src/commands/publish/env-utils.ts +44 -0
  323. package/src/commands/publish/git-phase.ts +99 -0
  324. package/src/commands/publish/index.ts +266 -0
  325. package/src/commands/publish/local-publisher.ts +23 -0
  326. package/src/commands/publish/npm-publisher.ts +30 -0
  327. package/src/commands/publish/post-publish-phase.ts +43 -0
  328. package/src/commands/publish/storage-publisher.ts +208 -0
  329. package/src/commands/publish/version-upgrade.ts +132 -0
  330. package/src/commands/replace-deps.ts +1 -1
  331. package/src/commands/watch.ts +6 -7
  332. package/src/deps/replace-deps/collect-deps.ts +92 -0
  333. package/src/{utils/replace-deps.ts → deps/replace-deps/replace-deps-resolve.ts} +4 -188
  334. package/src/deps/replace-deps/replace-deps.ts +193 -0
  335. package/src/{utils → deps/server-externals}/server-production-files.ts +2 -2
  336. package/src/dev-server/dev-http-server.ts +149 -0
  337. package/src/dev-server/hmr-client-script.ts +74 -0
  338. package/src/dev-server/hmr-service.ts +178 -0
  339. package/src/electron/electron.ts +21 -28
  340. package/src/engines/BaseEngine.ts +64 -83
  341. package/src/engines/{ViteEngine.ts → EsbuildClientEngine.ts} +33 -72
  342. package/src/engines/NgtscEngine.ts +3 -11
  343. package/src/engines/ServerEsbuildEngine.ts +3 -11
  344. package/src/engines/TscEngine.ts +3 -11
  345. package/src/engines/index.ts +29 -9
  346. package/src/engines/types.ts +3 -3
  347. package/src/esbuild/esbuild-client-config.ts +230 -0
  348. package/src/{utils → esbuild}/esbuild-config.ts +1 -0
  349. package/src/esbuild/esbuild-index-html.ts +119 -0
  350. package/src/esbuild/esbuild-pwa.ts +139 -0
  351. package/src/esbuild/esbuild-scss-plugin.ts +48 -0
  352. package/src/orchestrators/BaseOrchestrator.ts +118 -0
  353. package/src/orchestrators/BuildOrchestrator.ts +234 -171
  354. package/src/orchestrators/DevOrchestrator.ts +315 -0
  355. package/src/orchestrators/ServerRuntimeManager.ts +85 -0
  356. package/src/orchestrators/TypecheckOrchestrator.ts +166 -117
  357. package/src/orchestrators/WatchOrchestrator.ts +203 -0
  358. package/src/orchestrators/types.ts +18 -0
  359. package/src/{utils → runtime}/engine-stop.ts +1 -1
  360. package/src/runtime/engine-watch-events.ts +121 -0
  361. package/src/{utils → runtime}/rebuild-manager.ts +8 -1
  362. package/src/runtime/worker-events.ts +25 -0
  363. package/src/sd-cli-entry.ts +69 -54
  364. package/src/sd-cli.ts +1 -1
  365. package/src/sd-config.types.ts +6 -16
  366. package/src/{utils → typecheck}/typecheck-non-package.ts +1 -1
  367. package/src/utils/diagnostic-utils.ts +15 -0
  368. package/src/utils/orchestrator-utils.ts +2 -6
  369. package/src/utils/output-utils.ts +1 -1
  370. package/src/utils/package-classify.ts +182 -0
  371. package/src/utils/package-utils.ts +0 -257
  372. package/src/utils/tsc-build.ts +1 -1
  373. package/src/workers/build-change-filter.ts +27 -0
  374. package/src/workers/build-watch-paths.ts +54 -0
  375. package/src/workers/client.worker.ts +258 -328
  376. package/src/workers/library-build.worker.ts +15 -34
  377. package/src/workers/lint.worker.ts +1 -1
  378. package/src/workers/ngtsc-build.worker.ts +19 -46
  379. package/src/workers/server-build.worker.ts +38 -168
  380. package/src/workers/server-esbuild-context.ts +122 -0
  381. package/src/workers/server-runtime.worker.ts +4 -1
  382. package/src/workers/server-watch-manager.ts +124 -0
  383. package/src/workers/shared-worker-lifecycle.ts +24 -0
  384. package/tests/angular/angular-build-pipeline.spec.ts +2 -2
  385. package/tests/angular/angular-compiler-aot.acc.spec.ts +68 -0
  386. package/tests/angular/angular-compiler-aot.spec.ts +80 -0
  387. package/tests/angular/angular-compiler-hmr-removal.verify.md +16 -0
  388. package/tests/angular/vite-angular-plugin-legacy-watch.spec.ts +0 -17
  389. package/tests/angular/vite-angular-plugin-vitest.spec.ts +1 -6
  390. package/tests/angular/vite-angular-plugin-vitest.verify.md +20 -0
  391. package/tests/angular/vite-angular-plugin.spec.ts +4 -178
  392. package/tests/capacitor/capacitor-android.spec.ts +1 -0
  393. package/tests/capacitor/capacitor-build.spec.ts +1 -0
  394. package/tests/capacitor/capacitor-config-writer.acc.spec.ts +108 -0
  395. package/tests/capacitor/capacitor-config-writer.spec.ts +95 -0
  396. package/tests/capacitor/capacitor-icon.spec.ts +1 -0
  397. package/tests/capacitor/capacitor-init.spec.ts +1 -0
  398. package/tests/capacitor/capacitor-npm-config.acc.spec.ts +236 -0
  399. package/tests/capacitor/capacitor-npm-config.spec.ts +132 -0
  400. package/tests/capacitor/capacitor-run.spec.ts +1 -0
  401. package/tests/capacitor/capacitor-workspace.spec.ts +1 -0
  402. package/tests/commands/check.spec.ts +2 -2
  403. package/tests/commands/deployment-phase.acc.spec.ts +142 -0
  404. package/tests/commands/git-phase.acc.spec.ts +158 -0
  405. package/tests/commands/lint.spec.ts +1 -1
  406. package/tests/commands/post-publish-phase.acc.spec.ts +82 -0
  407. package/tests/commands/publish-npm-local-split.verify.md +9 -0
  408. package/tests/commands/publish-responsibility-split.verify.md +13 -0
  409. package/tests/commands/publish-storage-split.verify.md +8 -0
  410. package/tests/commands/publish.spec.ts +1 -1
  411. package/tests/commands/typecheck.spec.ts +18 -18
  412. package/tests/deps/deps-directory-separation.verify.md +15 -0
  413. package/tests/engines/base-engine.spec.ts +65 -6
  414. package/tests/engines/engine-adapter-isolation.spec.ts +11 -18
  415. package/tests/engines/engine-selection.spec.ts +38 -5
  416. package/tests/engines/engine-typecheck-selection.acc.spec.ts +85 -0
  417. package/tests/engines/engine-typecheck-selection.verify.md +8 -0
  418. package/tests/engines/esbuild-client-engine.acc.spec.ts +161 -0
  419. package/tests/engines/esbuild-client-engine.spec.ts +320 -0
  420. package/tests/engines/esbuild-client-engine.verify.md +15 -0
  421. package/tests/engines/normalize-result.verify.md +9 -0
  422. package/tests/engines/vite-dependency-cleanup.verify.md +24 -0
  423. package/tests/orchestrators/build-orchestrator.spec.ts +3 -3
  424. package/tests/orchestrators/dev-orchestrator.spec.ts +799 -0
  425. package/tests/orchestrators/orchestrator-baseenv.verify.md +10 -0
  426. package/tests/orchestrators/orchestrator-diagnostic-formatting.verify.md +10 -0
  427. package/tests/orchestrators/orchestrator-initializemode-signature.verify.md +9 -0
  428. package/tests/orchestrators/typecheck-orchestrator.spec.ts +11 -11
  429. package/tests/orchestrators/watch-orchestrator.spec.ts +511 -0
  430. package/tests/{infra → runtime}/result-collector.spec.ts +1 -1
  431. package/tests/{infra → runtime}/signal-handler.spec.ts +1 -1
  432. package/tests/sd-cli-entry.spec.ts +9 -0
  433. package/tests/utils/angular-build.spec.ts +15 -20
  434. package/tests/utils/angular-compiler-emit.spec.ts +2 -2
  435. package/tests/utils/angular-compiler.spec.ts +2 -2
  436. package/tests/utils/angular-source-file-cache.spec.ts +2 -2
  437. package/tests/utils/concurrency.spec.ts +2 -10
  438. package/tests/utils/dev-http-server.acc.spec.ts +206 -0
  439. package/tests/utils/dev-http-server.spec.ts +181 -0
  440. package/tests/utils/dev-http-server.verify.md +8 -0
  441. package/tests/utils/diagnostic-utils.spec.ts +42 -1
  442. package/tests/utils/engine-stop.spec.ts +1 -1
  443. package/tests/utils/engine-watch-events.acc.spec.ts +217 -0
  444. package/tests/utils/engine-watch-events.spec.ts +141 -0
  445. package/tests/utils/engine-watch-events.verify.md +17 -0
  446. package/tests/utils/esbuild-client-config.acc.spec.ts +443 -0
  447. package/tests/utils/esbuild-client-config.spec.ts +590 -0
  448. package/tests/utils/esbuild-client-config.verify.md +26 -0
  449. package/tests/utils/esbuild-config.spec.ts +11 -1
  450. package/tests/utils/esbuild-index-html.acc.spec.ts +166 -0
  451. package/tests/utils/esbuild-index-html.spec.ts +194 -0
  452. package/tests/utils/esbuild-index-html.verify.md +10 -0
  453. package/tests/utils/esbuild-pwa.acc.spec.ts +203 -0
  454. package/tests/utils/esbuild-pwa.spec.ts +189 -0
  455. package/tests/utils/esbuild-pwa.verify.md +9 -0
  456. package/tests/utils/esbuild-scss-plugin.acc.spec.ts +111 -0
  457. package/tests/utils/esbuild-scss-plugin.spec.ts +150 -0
  458. package/tests/utils/esbuild-scss-plugin.verify.md +8 -0
  459. package/tests/utils/external-modules.spec.ts +1 -1
  460. package/tests/utils/hmr-client-script.acc.spec.ts +128 -0
  461. package/tests/utils/hmr-client-script.spec.ts +44 -0
  462. package/tests/utils/hmr-service-dispatcher.acc.spec.ts +217 -0
  463. package/tests/utils/hmr-service-dispatcher.spec.ts +143 -0
  464. package/tests/utils/hmr-service.acc.spec.ts +139 -0
  465. package/tests/utils/hmr-service.spec.ts +131 -0
  466. package/tests/utils/hmr-service.verify.md +17 -0
  467. package/tests/utils/lint-core.spec.ts +2 -1
  468. package/tests/utils/lint-utils.spec.ts +1 -1
  469. package/tests/utils/lint-with-program.spec.ts +1 -1
  470. package/tests/utils/ngtsc-build-core-write-emit.spec.ts +19 -19
  471. package/tests/utils/ngtsc-build-core.spec.ts +4 -4
  472. package/tests/utils/orchestrator-utils.spec.ts +2 -2
  473. package/tests/utils/output-utils.spec.ts +1 -1
  474. package/tests/utils/package-utils.spec.ts +1 -1
  475. package/tests/utils/rebuild-manager.spec.ts +20 -7
  476. package/tests/utils/replace-deps-split.verify.md +15 -0
  477. package/tests/utils/replace-deps-watch.acc.spec.ts +131 -0
  478. package/tests/utils/replace-deps-watch.spec.ts +91 -0
  479. package/tests/utils/replace-deps-watch.verify.md +9 -0
  480. package/tests/utils/replace-deps.spec.ts +1 -1
  481. package/tests/utils/scss-compiler.spec.ts +1 -1
  482. package/tests/utils/tsc-build.spec.ts +1 -1
  483. package/tests/utils/typecheck-non-package.spec.ts +2 -2
  484. package/tests/utils/worker-utils.spec.ts +2 -1
  485. package/tests/workers/build-change-filter.acc.spec.ts +78 -0
  486. package/tests/workers/build-change-filter.spec.ts +39 -0
  487. package/tests/workers/build-watch-paths-library.verify.md +10 -0
  488. package/tests/workers/build-watch-paths-ngtsc-server.verify.md +12 -0
  489. package/tests/workers/build-watch-paths.acc.spec.ts +101 -0
  490. package/tests/workers/build-watch-paths.spec.ts +121 -0
  491. package/tests/workers/client-worker-browser-support.verify.md +7 -0
  492. package/tests/workers/client-worker-onend-sync.verify.md +7 -0
  493. package/tests/workers/client-worker.acc.spec.ts +185 -0
  494. package/tests/workers/client-worker.spec.ts +91 -178
  495. package/tests/workers/library-build-lint.spec.ts +3 -3
  496. package/tests/workers/library-build-worker.spec.ts +10 -11
  497. package/tests/workers/ngtsc-build-lint.spec.ts +4 -4
  498. package/tests/workers/ngtsc-build-worker.spec.ts +2 -2
  499. package/tests/workers/server-build-lint.spec.ts +4 -4
  500. package/tests/workers/server-build-worker.spec.ts +14 -15
  501. package/tests/workers/server-esbuild-context-integration.verify.md +10 -0
  502. package/tests/workers/server-esbuild-context.acc.spec.ts +98 -0
  503. package/tests/workers/server-esbuild-context.spec.ts +198 -0
  504. package/tests/workers/server-runtime-worker.spec.ts +4 -3
  505. package/tests/workers/server-watch-manager.acc.spec.ts +162 -0
  506. package/tests/workers/server-watch-manager.spec.ts +199 -0
  507. package/tests/workers/shared-worker-lifecycle.acc.spec.ts +27 -0
  508. package/tests/workers/shared-worker-lifecycle.spec.ts +47 -0
  509. package/dist/angular/vite-postcss-inline-plugin.d.ts +0 -18
  510. package/dist/angular/vite-postcss-inline-plugin.d.ts.map +0 -1
  511. package/dist/angular/vite-postcss-inline-plugin.js +0 -108
  512. package/dist/angular/vite-postcss-inline-plugin.js.map +0 -1
  513. package/dist/commands/publish.d.ts.map +0 -1
  514. package/dist/commands/publish.js +0 -689
  515. package/dist/commands/publish.js.map +0 -1
  516. package/dist/engines/ViteEngine.d.ts.map +0 -1
  517. package/dist/engines/ViteEngine.js.map +0 -1
  518. package/dist/infra/ResultCollector.d.ts.map +0 -1
  519. package/dist/infra/ResultCollector.js.map +0 -1
  520. package/dist/infra/SignalHandler.d.ts.map +0 -1
  521. package/dist/infra/SignalHandler.js.map +0 -1
  522. package/dist/orchestrators/DevWatchOrchestrator.d.ts +0 -63
  523. package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +0 -1
  524. package/dist/orchestrators/DevWatchOrchestrator.js +0 -478
  525. package/dist/orchestrators/DevWatchOrchestrator.js.map +0 -1
  526. package/dist/utils/angular-build-pipeline.d.ts.map +0 -1
  527. package/dist/utils/angular-build-pipeline.js.map +0 -1
  528. package/dist/utils/angular-build.d.ts.map +0 -1
  529. package/dist/utils/angular-build.js.map +0 -1
  530. package/dist/utils/angular-compiler.d.ts.map +0 -1
  531. package/dist/utils/angular-compiler.js.map +0 -1
  532. package/dist/utils/engine-stop.d.ts.map +0 -1
  533. package/dist/utils/engine-stop.js.map +0 -1
  534. package/dist/utils/esbuild-config.d.ts.map +0 -1
  535. package/dist/utils/esbuild-config.js.map +0 -1
  536. package/dist/utils/hmr-candidates.d.ts +0 -15
  537. package/dist/utils/hmr-candidates.d.ts.map +0 -1
  538. package/dist/utils/hmr-candidates.js +0 -234
  539. package/dist/utils/hmr-candidates.js.map +0 -1
  540. package/dist/utils/lint-core.d.ts.map +0 -1
  541. package/dist/utils/lint-core.js.map +0 -1
  542. package/dist/utils/lint-utils.d.ts.map +0 -1
  543. package/dist/utils/lint-utils.js.map +0 -1
  544. package/dist/utils/lint-with-program.d.ts.map +0 -1
  545. package/dist/utils/lint-with-program.js.map +0 -1
  546. package/dist/utils/ngtsc-build-core.d.ts.map +0 -1
  547. package/dist/utils/ngtsc-build-core.js.map +0 -1
  548. package/dist/utils/rebuild-manager.d.ts.map +0 -1
  549. package/dist/utils/rebuild-manager.js.map +0 -1
  550. package/dist/utils/replace-deps.d.ts.map +0 -1
  551. package/dist/utils/replace-deps.js.map +0 -1
  552. package/dist/utils/scss-compiler.d.ts.map +0 -1
  553. package/dist/utils/scss-compiler.js.map +0 -1
  554. package/dist/utils/server-production-files.d.ts.map +0 -1
  555. package/dist/utils/server-production-files.js.map +0 -1
  556. package/dist/utils/typecheck-non-package.d.ts.map +0 -1
  557. package/dist/utils/typecheck-non-package.js.map +0 -1
  558. package/dist/utils/typecheck-serialization.d.ts.map +0 -1
  559. package/dist/utils/typecheck-serialization.js.map +0 -1
  560. package/dist/utils/vite-config.d.ts +0 -50
  561. package/dist/utils/vite-config.d.ts.map +0 -1
  562. package/dist/utils/vite-config.js +0 -242
  563. package/dist/utils/vite-config.js.map +0 -1
  564. package/dist/utils/vite-pwa-plugin.d.ts +0 -9
  565. package/dist/utils/vite-pwa-plugin.d.ts.map +0 -1
  566. package/dist/utils/vite-pwa-plugin.js +0 -139
  567. package/dist/utils/vite-pwa-plugin.js.map +0 -1
  568. package/dist/utils/vite-scope-watch-plugin.d.ts +0 -24
  569. package/dist/utils/vite-scope-watch-plugin.d.ts.map +0 -1
  570. package/dist/utils/vite-scope-watch-plugin.js +0 -51
  571. package/dist/utils/vite-scope-watch-plugin.js.map +0 -1
  572. package/dist/utils/worker-events.d.ts +0 -66
  573. package/dist/utils/worker-events.d.ts.map +0 -1
  574. package/dist/utils/worker-events.js +0 -55
  575. package/dist/utils/worker-events.js.map +0 -1
  576. package/dist/utils/worker-utils.d.ts.map +0 -1
  577. package/dist/utils/worker-utils.js.map +0 -1
  578. package/src/angular/vite-postcss-inline-plugin.ts +0 -139
  579. package/src/commands/publish.ts +0 -850
  580. package/src/orchestrators/DevWatchOrchestrator.ts +0 -594
  581. package/src/utils/hmr-candidates.ts +0 -327
  582. package/src/utils/vite-config.ts +0 -318
  583. package/src/utils/vite-pwa-plugin.ts +0 -168
  584. package/src/utils/vite-scope-watch-plugin.ts +0 -77
  585. package/src/utils/worker-events.ts +0 -128
  586. package/tests/angular/angular-compiler-hmr.spec.ts +0 -152
  587. package/tests/angular/hmr-candidates.spec.ts +0 -158
  588. package/tests/angular/linker-disk-cache.spec.ts +0 -171
  589. package/tests/angular/vite-angular-plugin-hmr-fallback.spec.ts +0 -333
  590. package/tests/angular/vite-angular-plugin-hmr.spec.ts +0 -320
  591. package/tests/angular/vite-angular-plugin-scss-hmr.spec.ts +0 -95
  592. package/tests/angular/vite-postcss-inline-plugin.spec.ts +0 -60
  593. package/tests/engines/vite-engine.spec.ts +0 -409
  594. package/tests/orchestrators/dev-watch-orchestrator.spec.ts +0 -1542
  595. package/tests/utils/vite-config.spec.ts +0 -780
  596. package/tests/utils/vite-pwa-plugin.spec.ts +0 -401
  597. package/tests/utils/vite-scope-watch-plugin.spec.ts +0 -218
  598. package/tests/utils/worker-events.spec.ts +0 -147
  599. package/tests/workers/client-worker-legacy.spec.ts +0 -659
  600. /package/dist/{utils → angular}/ngtsc-build-core.js +0 -0
  601. /package/dist/{utils → angular}/scss-compiler.d.ts +0 -0
  602. /package/dist/{utils → angular}/scss-compiler.js +0 -0
  603. /package/dist/{utils → esbuild}/esbuild-config.d.ts +0 -0
  604. /package/dist/{utils → lint}/lint-core.d.ts +0 -0
  605. /package/dist/{utils → lint}/lint-core.js +0 -0
  606. /package/dist/{utils → lint}/lint-utils.d.ts +0 -0
  607. /package/dist/{utils → lint}/lint-utils.js +0 -0
  608. /package/dist/{utils → lint}/lint-with-program.d.ts +0 -0
  609. /package/dist/{utils → lint}/lint-with-program.js +0 -0
  610. /package/dist/{infra → runtime}/ResultCollector.d.ts +0 -0
  611. /package/dist/{infra → runtime}/ResultCollector.js +0 -0
  612. /package/dist/{infra → runtime}/SignalHandler.d.ts +0 -0
  613. /package/dist/{infra → runtime}/SignalHandler.js +0 -0
  614. /package/dist/{utils → runtime}/worker-utils.d.ts +0 -0
  615. /package/dist/{utils → runtime}/worker-utils.js +0 -0
  616. /package/dist/{utils → typecheck}/typecheck-non-package.d.ts +0 -0
  617. /package/dist/{utils → typecheck}/typecheck-serialization.d.ts +0 -0
  618. /package/dist/{utils → typecheck}/typecheck-serialization.js +0 -0
  619. /package/src/{utils → angular}/scss-compiler.ts +0 -0
  620. /package/src/{utils → lint}/lint-core.ts +0 -0
  621. /package/src/{utils → lint}/lint-utils.ts +0 -0
  622. /package/src/{utils → lint}/lint-with-program.ts +0 -0
  623. /package/src/{infra → runtime}/ResultCollector.ts +0 -0
  624. /package/src/{infra → runtime}/SignalHandler.ts +0 -0
  625. /package/src/{utils → runtime}/worker-utils.ts +0 -0
  626. /package/src/{utils → typecheck}/typecheck-serialization.ts +0 -0
@@ -0,0 +1,47 @@
1
+ import esbuild from "esbuild";
2
+ /**
3
+ * esbuild watch context 생성 옵션
4
+ */
5
+ export interface EsbuildContextOptions {
6
+ pkgDir: string;
7
+ entryPoints: string[];
8
+ env?: Record<string, string>;
9
+ external: string[];
10
+ }
11
+ /**
12
+ * esbuild watch context를 생성한다.
13
+ * dev 모드 전용 (metafile:true, write:false).
14
+ */
15
+ export declare function createContext(options: EsbuildContextOptions): Promise<void>;
16
+ /**
17
+ * esbuild rebuild를 실행하고 metafile을 갱신한다.
18
+ * context가 없으면 null을 반환한다 (tsc-only 경로).
19
+ */
20
+ export declare function rebuild(): Promise<{
21
+ success: boolean;
22
+ errors?: string[];
23
+ warnings?: string[];
24
+ } | null>;
25
+ /**
26
+ * esbuild context를 재생성한다 (LOGIC-001).
27
+ *
28
+ * 선제 초기화 + try/finally 패턴으로 리소스 해제를 보장한다:
29
+ * 1. old context를 로컬 변수에 보관
30
+ * 2. 모듈 참조를 undefined로 선제 초기화 — 생성 실패 시 disposed 참조 방지
31
+ * 3. 새 context 생성 시도
32
+ * 4. finally에서 old context dispose — 생성 성공/실패와 무관하게 실행
33
+ */
34
+ export declare function recreateContext(options: EsbuildContextOptions): Promise<void>;
35
+ /**
36
+ * esbuild context를 정리하고 상태를 초기화한다.
37
+ */
38
+ export declare function dispose(): Promise<void>;
39
+ /**
40
+ * 마지막 빌드의 metafile을 반환한다 (변경 필터링에 사용).
41
+ */
42
+ export declare function getMetafile(): esbuild.Metafile | undefined;
43
+ /**
44
+ * esbuild context 존재 여부를 반환한다.
45
+ */
46
+ export declare function hasContext(): boolean;
47
+ //# sourceMappingURL=server-esbuild-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-esbuild-context.d.ts","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAM9B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAQD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcjF;AAED;;;GAGG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,IAAI,CAAC,CAqBR;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnF;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ7C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC"}
@@ -0,0 +1,92 @@
1
+ import esbuild from "esbuild";
2
+ import { createServerEsbuildOptions, writeChangedOutputFiles, } from "../esbuild/esbuild-config.js";
3
+ /** esbuild watch context (모듈 스코프 상태) */
4
+ let context;
5
+ /** 마지막 빌드의 metafile (변경 필터링용) */
6
+ let lastMetafile;
7
+ /**
8
+ * esbuild watch context를 생성한다.
9
+ * dev 모드 전용 (metafile:true, write:false).
10
+ */
11
+ export async function createContext(options) {
12
+ const baseOptions = createServerEsbuildOptions({
13
+ pkgDir: options.pkgDir,
14
+ entryPoints: options.entryPoints,
15
+ env: options.env,
16
+ external: options.external,
17
+ dev: true,
18
+ });
19
+ context = await esbuild.context({
20
+ ...baseOptions,
21
+ metafile: true,
22
+ write: false,
23
+ });
24
+ }
25
+ /**
26
+ * esbuild rebuild를 실행하고 metafile을 갱신한다.
27
+ * context가 없으면 null을 반환한다 (tsc-only 경로).
28
+ */
29
+ export async function rebuild() {
30
+ if (context == null)
31
+ return null;
32
+ const result = await context.rebuild();
33
+ if (result.metafile != null) {
34
+ lastMetafile = result.metafile;
35
+ }
36
+ if (result.outputFiles) {
37
+ await writeChangedOutputFiles(result.outputFiles);
38
+ }
39
+ const errors = result.errors.map((e) => e.text);
40
+ const warnings = result.warnings.map((w) => w.text);
41
+ return {
42
+ success: result.errors.length === 0,
43
+ errors: errors.length > 0 ? errors : undefined,
44
+ warnings: warnings.length > 0 ? warnings : undefined,
45
+ };
46
+ }
47
+ /**
48
+ * esbuild context를 재생성한다 (LOGIC-001).
49
+ *
50
+ * 선제 초기화 + try/finally 패턴으로 리소스 해제를 보장한다:
51
+ * 1. old context를 로컬 변수에 보관
52
+ * 2. 모듈 참조를 undefined로 선제 초기화 — 생성 실패 시 disposed 참조 방지
53
+ * 3. 새 context 생성 시도
54
+ * 4. finally에서 old context dispose — 생성 성공/실패와 무관하게 실행
55
+ */
56
+ export async function recreateContext(options) {
57
+ const oldContext = context;
58
+ context = undefined;
59
+ lastMetafile = undefined;
60
+ try {
61
+ await createContext(options);
62
+ }
63
+ finally {
64
+ if (oldContext != null) {
65
+ await oldContext.dispose();
66
+ }
67
+ }
68
+ }
69
+ /**
70
+ * esbuild context를 정리하고 상태를 초기화한다.
71
+ */
72
+ export async function dispose() {
73
+ const contextToDispose = context;
74
+ context = undefined;
75
+ lastMetafile = undefined;
76
+ if (contextToDispose != null) {
77
+ await contextToDispose.dispose();
78
+ }
79
+ }
80
+ /**
81
+ * 마지막 빌드의 metafile을 반환한다 (변경 필터링에 사용).
82
+ */
83
+ export function getMetafile() {
84
+ return lastMetafile;
85
+ }
86
+ /**
87
+ * esbuild context 존재 여부를 반환한다.
88
+ */
89
+ export function hasContext() {
90
+ return context != null;
91
+ }
92
+ //# sourceMappingURL=server-esbuild-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-esbuild-context.js","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAYnC,wCAAwC;AACxC,IAAI,OAAyC,CAAC;AAE9C,iCAAiC;AACjC,IAAI,YAA0C,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA8B;IAChE,MAAM,WAAW,GAAG,0BAA0B,CAAC;QAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;QAC9B,GAAG,WAAW;QACd,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IAK3B,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAEvC,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC9C,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA8B;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC;IAC3B,OAAO,GAAG,SAAS,CAAC;IACpB,YAAY,GAAG,SAAS,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;YAAS,CAAC;QACT,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC;IACjC,OAAO,GAAG,SAAS,CAAC;IACpB,YAAY,GAAG,SAAS,CAAC;IAEzB,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-runtime.worker.d.ts","sourceRoot":"","sources":["../../src/workers/server-runtime.worker.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxE,WAAW,EAAE,uBAAuB,CAAC;IACrC,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAiFD;;;GAGG;AACH,iBAAe,KAAK,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEhE;AAED,QAAA,MAAM,MAAM;;;eAAyB,OAAO,KAAK;;;CAE/C,CAAC;AAEH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"server-runtime.worker.d.ts","sourceRoot":"","sources":["../../src/workers/server-runtime.worker.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxE,WAAW,EAAE,uBAAuB,CAAC;IACrC,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAiFD;;;GAGG;AACH,iBAAe,KAAK,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EhE;AAED,QAAA,MAAM,MAAM;;;eAAyB,OAAO,KAAK;;;CAE/C,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -6,7 +6,7 @@ import { consola } from "consola";
6
6
  import proxy from "@fastify/http-proxy";
7
7
  import net from "net";
8
8
  import { pathToFileURL } from "url";
9
- import { registerCleanupHandlers, setupWorkerConsola } from "../utils/worker-utils.js";
9
+ import { registerCleanupHandlers, setupWorkerConsola } from "../runtime/worker-utils.js";
10
10
  //#endregion
11
11
  setupWorkerConsola();
12
12
  const logger = consola.withTag("sd:cli:server-runtime:worker");
@@ -88,6 +88,8 @@ async function start(info) {
88
88
  env(key, value);
89
89
  }
90
90
  }
91
+ // main.js import 전에 sourcemap 지원 활성화 (스택 트레이스에 원본 위치 표시)
92
+ process.setSourceMapsEnabled(true);
91
93
  // main.js import (서버 인스턴스를 export해야 함)
92
94
  logger.debug("main.js 임포트 중...");
93
95
  let stepStart = performance.now();
@@ -1 +1 @@
1
- {"version":3,"file":"server-runtime.worker.js","sourceRoot":"","sources":["../../src/workers/server-runtime.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-runtime.worker.js","sourceRoot":"","sources":["../../src/workers/server-runtime.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAoCtF,YAAY;AAEZ,kBAAkB,EAAE,CAAC;AAErB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAE/D,sBAAsB;AACtB,IAAI,cAA0D,CAAC;AAE/D,sCAAsC;AACtC,IAAI,SAA6B,CAAC;AAElC;;GAEG;AACH,KAAK,UAAU,OAAO;IACpB,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QACnF,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC;IAC9B,cAAc,GAAG,SAAS,CAAC;IAC3B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,gEAAgE;AAChE,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;KAC5B,CAAC,CAAC;IACH,wBAAwB;IACxB,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;IACH,wBAAwB;IACxB,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEzC;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,SAAiB,EAAE,UAAU,GAAG,EAAE;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,mCAAmC,SAAS,QAAQ,SAAS,GAAG,UAAU,GAAG,CAAC,GAAG,CAClF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,KAAK,CAAC,IAA4B;IAC/C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,0CAA0C;QAC1C,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEnC,uCAAuC;QACvC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,IAAI,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,mBAAmB;QACnB,cAAc,GAAG,MAAM,CAAC;QAExB,0BAA0B;QAC1B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,uBAAuB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpE,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;oBACnC,MAAM,EAAE,IAAI,IAAI,EAAE;oBAClB,QAAQ,EAAE,oBAAoB,IAAI,EAAE;oBACpC,aAAa,EAAE,IAAI,IAAI,EAAE;oBACzB,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACzC,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,MAAM,YAAY,UAAU,aAAa,MAAM,CAAC,CAAC;YAC7D,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;QACtC,CAAC;QACD,MAAM,CAAC,KAAK,CACV,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,CACrF,CAAC;QAEF,QAAQ;QACR,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAE1E,qCAAqC;QACrC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjF,MAAM,CAAC,KAAK,CACV,gBAAgB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,CAC9D,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;YACnB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG,YAAY,CAAqD;IAC9E,KAAK;CACN,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { ConsolaInstance } from "consola";
2
+ import { FsWatcher } from "@simplysm/core-node";
3
+ import type { ServerWatchInfo } from "./server-build.worker";
4
+ /**
5
+ * server-build watch 루프 설정
6
+ */
7
+ export interface ServerWatchLoopConfig {
8
+ info: ServerWatchInfo;
9
+ watchPaths: string[];
10
+ logger: ConsolaInstance;
11
+ /** watch 시작 시 수집된 초기 외부 모듈 */
12
+ initialExternals: string[];
13
+ /** 빌드 시작 이벤트 콜백 */
14
+ onBuildStart: () => void;
15
+ /** 빌드 완료 이벤트 콜백 */
16
+ onBuild: (result: {
17
+ build: {
18
+ success: boolean;
19
+ errors?: string[];
20
+ warnings?: string[];
21
+ };
22
+ mainJsPath: string;
23
+ }) => void;
24
+ /** 에러 이벤트 콜백 */
25
+ onError: (message: string) => void;
26
+ /** 리빌드 실행 콜백 */
27
+ rebuild: () => Promise<{
28
+ build: {
29
+ success: boolean;
30
+ errors?: string[];
31
+ warnings?: string[];
32
+ };
33
+ mainJsPath: string;
34
+ }>;
35
+ }
36
+ /**
37
+ * server-build 전용 FsWatcher 감시 루프를 시작한다.
38
+ *
39
+ * onChange 핸들러:
40
+ * - 파일 추가/삭제: tsconfig 재파싱, esbuild context 재생성, 리빌드
41
+ * - 파일 변경: metafile 기반 필터링 → 관련 파일이면 리빌드, 아니면 건너뜀
42
+ */
43
+ export declare function startServerWatchLoop(config: ServerWatchLoopConfig): Promise<FsWatcher>;
44
+ //# sourceMappingURL=server-watch-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-watch-manager.d.ts","sourceRoot":"","sources":["../../src/workers/server-watch-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAS,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAS7D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,8BAA8B;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB;IACnB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,mBAAmB;IACnB,OAAO,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvH,gBAAgB;IAChB,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gBAAgB;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrH;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAoF5F"}
@@ -0,0 +1,87 @@
1
+ import fs from "fs";
2
+ import { FsWatcher, pathx } from "@simplysm/core-node";
3
+ import { err as errNs } from "@simplysm/core-common";
4
+ import { parseTsconfig, getPackageSourceFiles, } from "../utils/tsconfig.js";
5
+ import { collectAllExternals } from "../deps/server-externals/server-production-files.js";
6
+ import { hasFileAddOrRemove } from "./build-change-filter.js";
7
+ import * as esbuildCtx from "./server-esbuild-context.js";
8
+ /**
9
+ * server-build 전용 FsWatcher 감시 루프를 시작한다.
10
+ *
11
+ * onChange 핸들러:
12
+ * - 파일 추가/삭제: tsconfig 재파싱, esbuild context 재생성, 리빌드
13
+ * - 파일 변경: metafile 기반 필터링 → 관련 파일이면 리빌드, 아니면 건너뜀
14
+ */
15
+ export async function startServerWatchLoop(config) {
16
+ const { info, watchPaths, logger } = config;
17
+ let cachedExternal = [...config.initialExternals];
18
+ const watcher = await FsWatcher.watch(watchPaths);
19
+ watcher.onChange({ delay: 300 }, async (changes) => {
20
+ try {
21
+ const addOrRemove = hasFileAddOrRemove(changes);
22
+ if (addOrRemove) {
23
+ config.onBuildStart();
24
+ // 파일 추가/삭제 시 컨텍스트 재생성
25
+ const newParsedConfig = parseTsconfig(info.pkgDir);
26
+ const newEntryPoints = getPackageSourceFiles(info.pkgDir, newParsedConfig);
27
+ // package.json이 변경된 경우에만 외부 모듈 재수집
28
+ const hasPackageJsonChange = changes.some((c) => c.path.endsWith("package.json"));
29
+ if (hasPackageJsonChange) {
30
+ cachedExternal = collectAllExternals(info.pkgDir, info.externals);
31
+ }
32
+ if (info.output.js) {
33
+ await esbuildCtx.recreateContext({
34
+ pkgDir: info.pkgDir,
35
+ entryPoints: newEntryPoints,
36
+ env: info.env,
37
+ external: cachedExternal,
38
+ });
39
+ }
40
+ const result = await config.rebuild();
41
+ config.onBuild(result);
42
+ return;
43
+ }
44
+ // 파일 변경만 있는 경우: metafile로 필터링
45
+ if (!esbuildCtx.hasContext()) {
46
+ config.onBuildStart();
47
+ const result = await config.rebuild();
48
+ config.onBuild(result);
49
+ return;
50
+ }
51
+ const currentMetafile = esbuildCtx.getMetafile();
52
+ if (currentMetafile == null) {
53
+ config.onBuildStart();
54
+ const result = await config.rebuild();
55
+ config.onBuild(result);
56
+ return;
57
+ }
58
+ // metafile 입력 기반 필터링
59
+ const metafileAbsPaths = new Set(Object.keys(currentMetafile.inputs).map((key) => pathx.posixResolve(info.cwd, key)));
60
+ const hasRelevantChange = changes.some((c) => {
61
+ if (metafileAbsPaths.has(c.path))
62
+ return true;
63
+ // pnpm symlink 경로와 esbuild resolved 경로 불일치 대응
64
+ try {
65
+ const realPath = pathx.posix(fs.realpathSync(c.path));
66
+ return metafileAbsPaths.has(realPath);
67
+ }
68
+ catch {
69
+ return false;
70
+ }
71
+ });
72
+ if (hasRelevantChange) {
73
+ config.onBuildStart();
74
+ const result = await config.rebuild();
75
+ config.onBuild(result);
76
+ }
77
+ else {
78
+ logger.debug("변경된 파일이 빌드에 포함되지 않아 리빌드 건너뜀");
79
+ }
80
+ }
81
+ catch (err) {
82
+ config.onError(errNs.message(err));
83
+ }
84
+ });
85
+ return watcher;
86
+ }
87
+ //# sourceMappingURL=server-watch-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-watch-manager.js","sourceRoot":"","sources":["../../src/workers/server-watch-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EACL,aAAa,EACb,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AAqBvD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAA6B;IACtE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC5C,IAAI,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAElD,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAEhD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,YAAY,EAAE,CAAC;gBAEtB,sBAAsB;gBACtB,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAE3E,mCAAmC;gBACnC,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAChC,CAAC;gBACF,IAAI,oBAAoB,EAAE,CAAC;oBACzB,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpE,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACnB,MAAM,UAAU,CAAC,eAAe,CAAC;wBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,WAAW,EAAE,cAAc;wBAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,cAAc;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,8BAA8B;YAC9B,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC7B,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,qBAAqB;YACrB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CACpF,CAAC;YAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3C,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC9C,8CAA8C;gBAC9C,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACtD,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type ConsolaInstance } from "consola";
2
+ /**
3
+ * Worker Thread의 공통 초기화를 단일 호출로 수행한다.
4
+ *
5
+ * 1. setupWorkerConsola() — consola CLI 모드 설정
6
+ * 2. consola.withTag() — 워커별 태그 로거 생성
7
+ * 3. registerCleanupHandlers() — SIGTERM/SIGINT 정리 핸들러 등록
8
+ * 4. createOnceGuard("startWatch") — startWatch 중복 호출 방지 가드 생성
9
+ */
10
+ export declare function setupWorkerLifecycle(workerName: string, cleanupFn: () => void | Promise<void>): {
11
+ logger: ConsolaInstance;
12
+ guardStartWatch: () => void;
13
+ };
14
+ //# sourceMappingURL=shared-worker-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-worker-lifecycle.d.ts","sourceRoot":"","sources":["../../src/workers/shared-worker-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAW,MAAM,SAAS,CAAC;AAOxD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACpC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,eAAe,EAAE,MAAM,IAAI,CAAA;CAAE,CAK1D"}
@@ -0,0 +1,17 @@
1
+ import { consola } from "consola";
2
+ import { setupWorkerConsola, registerCleanupHandlers, createOnceGuard, } from "../runtime/worker-utils.js";
3
+ /**
4
+ * Worker Thread의 공통 초기화를 단일 호출로 수행한다.
5
+ *
6
+ * 1. setupWorkerConsola() — consola CLI 모드 설정
7
+ * 2. consola.withTag() — 워커별 태그 로거 생성
8
+ * 3. registerCleanupHandlers() — SIGTERM/SIGINT 정리 핸들러 등록
9
+ * 4. createOnceGuard("startWatch") — startWatch 중복 호출 방지 가드 생성
10
+ */
11
+ export function setupWorkerLifecycle(workerName, cleanupFn) {
12
+ setupWorkerConsola();
13
+ const logger = consola.withTag(`sd:cli:${workerName}:worker`);
14
+ registerCleanupHandlers(cleanupFn, logger);
15
+ return { logger, guardStartWatch: createOnceGuard("startWatch") };
16
+ }
17
+ //# sourceMappingURL=shared-worker-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-worker-lifecycle.js","sourceRoot":"","sources":["../../src/workers/shared-worker-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,SAAqC;IAErC,kBAAkB,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,UAAU,SAAS,CAAC,CAAC;IAC9D,uBAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;AACpE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "14.0.30",
3
+ "version": "14.0.32",
4
4
  "description": "Simplysm package - CLI tool",
5
5
  "author": "simplysm",
6
6
  "license": "Apache-2.0",
@@ -36,19 +36,19 @@
36
36
  "sharp": "^0.34.5",
37
37
  "ssh2": "^1.17.0",
38
38
  "typescript": "^5.9.3",
39
- "vite": "^7.3.2",
40
- "vite-plugin-pwa": "^1.2.0",
41
- "vite-plugin-solid": "^2.11.12",
42
- "vite-tsconfig-paths": "^6.1.1",
39
+ "ws": "^8.20.0",
43
40
  "yargs": "^18.0.0",
44
- "@simplysm/core-common": "14.0.30",
45
- "@simplysm/core-node": "14.0.30",
46
- "@simplysm/storage": "14.0.30"
41
+ "@simplysm/core-common": "14.0.32",
42
+ "@simplysm/core-node": "14.0.32",
43
+ "@simplysm/storage": "14.0.32"
47
44
  },
48
45
  "devDependencies": {
49
46
  "@types/semver": "^7.7.1",
50
47
  "@types/ssh2": "^1.15.5",
51
- "@types/yargs": "^17.0.35"
48
+ "@types/ws": "^8.18.1",
49
+ "@types/yargs": "^17.0.35",
50
+ "vite": "^7.3.2",
51
+ "vite-tsconfig-paths": "^6.1.1"
52
52
  },
53
53
  "bin": {
54
54
  "sd-cli": "./dist/sd-cli.js"
@@ -10,10 +10,10 @@ import {
10
10
  formatScssError,
11
11
  type SideEffectScssOptions,
12
12
  } from "./ngtsc-build-core.js";
13
- import { createClientTransformStylesheet } from "../angular/client-transform-stylesheet.js";
14
- import { isWorkspaceDiagnostic } from "./diagnostic-utils.js";
13
+ import { createClientTransformStylesheet } from "./client-transform-stylesheet.js";
14
+ import { isWorkspaceDiagnostic } from "../utils/diagnostic-utils.js";
15
15
  import { compileScssString, compileScssFile } from "./scss-compiler.js";
16
- import { createOutputPathRewriter, rewriteScssImports } from "./output-path-rewriter.js";
16
+ import { createOutputPathRewriter, rewriteScssImports } from "../utils/output-path-rewriter.js";
17
17
 
18
18
  const logger = consola.withTag("sd:cli:build-pipeline");
19
19
 
@@ -32,7 +32,6 @@ export interface PipelineDiagnosticResult {
32
32
 
33
33
  export interface PipelineResult {
34
34
  affectedFiles: ReadonlySet<ts.SourceFile>;
35
- templateUpdates?: Map<string, string>;
36
35
  diagnostics: PipelineDiagnosticResult;
37
36
  scssErrors: string[];
38
37
  }
@@ -63,7 +62,6 @@ export interface AngularBuildPipelineOptions {
63
62
  // AngularCompiler 전달 옵션
64
63
  sourceFileCache?: AngularSourceFileCache;
65
64
  externalStylesheets?: Map<string, string>;
66
- enableHmr?: boolean;
67
65
  compilerOptionsTransformer?: (opts: ts.CompilerOptions) => ts.CompilerOptions;
68
66
 
69
67
  // client 모드 전용
@@ -230,7 +228,6 @@ export class AngularBuildPipeline {
230
228
  sourceFileCache: this._options.sourceFileCache,
231
229
  transformStylesheet,
232
230
  externalStylesheets: this._options.externalStylesheets,
233
- enableHmr: this._options.enableHmr,
234
231
  compilerOptionsTransformer: this._options.compilerOptionsTransformer,
235
232
  });
236
233
  }
@@ -254,7 +251,6 @@ export class AngularBuildPipeline {
254
251
 
255
252
  const pipelineResult: PipelineResult = {
256
253
  affectedFiles: initResult.affectedFiles,
257
- templateUpdates: initResult.templateUpdates,
258
254
  diagnostics: this._lastDiagnostics,
259
255
  scssErrors: [...this._scssErrors],
260
256
  };
@@ -287,7 +283,6 @@ export class AngularBuildPipeline {
287
283
 
288
284
  return {
289
285
  affectedFiles: updateResult.affectedFiles,
290
- templateUpdates: updateResult.templateUpdates,
291
286
  diagnostics: this._lastDiagnostics,
292
287
  scssErrors: [...this._scssErrors],
293
288
  };
@@ -4,7 +4,7 @@
4
4
  * @angular/build 및 @angular/compiler-cli API를 단일 모듈에 격리한다.
5
5
  * Angular 버전 변경 시 이 파일만 수정하면 된다.
6
6
  *
7
- * Client/Library 빌드 모두 src/utils/angular-compiler.ts의 AngularCompiler를 사용한다.
7
+ * Client/Library 빌드 모두 src/angular/angular-compiler.ts의 AngularCompiler를 사용한다.
8
8
  */
9
9
 
10
10
  // ── Re-exports: Angular Compiler (Library) ──
@@ -4,15 +4,12 @@ import ts from "typescript";
4
4
  import { consola } from "consola";
5
5
  import { pathx } from "@simplysm/core-node";
6
6
  import { NgtscProgram, OptimizeFor } from "./angular-build";
7
- import { collectHmrCandidates } from "./hmr-candidates.js";
8
7
 
9
8
  const logger = consola.withTag("sd:cli:angular-compiler");
10
9
 
11
10
  // NgCompiler 타입은 NgtscProgram.compiler에서 추론한다 (exports 제한으로 직접 import 불가할 수 있음)
12
11
  type NgCompiler = NgtscProgram["compiler"];
13
12
 
14
- const HMR_MODIFIED_FILE_LIMIT = 32;
15
-
16
13
  function hasTemplateExtension(file: string): boolean {
17
14
  const ext = path.extname(file).toLowerCase();
18
15
  return ext === ".htm" || ext === ".html" || ext === ".svg";
@@ -60,7 +57,6 @@ export interface AngularCompilerOptions {
60
57
  ) => Promise<string | null>;
61
58
  compilerOptionsTransformer?: (options: ts.CompilerOptions) => ts.CompilerOptions;
62
59
  externalStylesheets?: Map<string, string>;
63
- enableHmr?: boolean;
64
60
  }
65
61
 
66
62
  export class AngularSourceFileCache extends Map<string, ts.SourceFile> {
@@ -143,7 +139,6 @@ export class AngularCompiler {
143
139
 
144
140
  async initialize(): Promise<{
145
141
  affectedFiles: ReadonlySet<ts.SourceFile>;
146
- templateUpdates?: Map<string, string>;
147
142
  }> {
148
143
  const options = this._options;
149
144
  const sourceFileCache = options.sourceFileCache;
@@ -168,29 +163,6 @@ export class AngularCompiler {
168
163
  compilerOptions = options.compilerOptionsTransformer(compilerOptions);
169
164
  }
170
165
 
171
- // enableHmr 옵션을 Angular 내부 _enableHmr로 전파
172
- if (options.enableHmr === true) {
173
- compilerOptions = { ...compilerOptions, _enableHmr: true } as ts.CompilerOptions;
174
- }
175
-
176
- // 2.5. HMR: stale source file 수집 (initialize 전에 이전 program에서 보존)
177
- const useHmr =
178
- options.enableHmr === true &&
179
- sourceFileCache != null &&
180
- sourceFileCache.modifiedFiles.size > 0 &&
181
- sourceFileCache.modifiedFiles.size <= HMR_MODIFIED_FILE_LIMIT;
182
-
183
- let staleSourceFiles: Map<string, ts.SourceFile> | undefined;
184
- if (useHmr && this._builderProgram != null) {
185
- staleSourceFiles = new Map();
186
- for (const modifiedFile of sourceFileCache.modifiedFiles) {
187
- const sourceFile = this._builderProgram.getSourceFile(modifiedFile);
188
- if (sourceFile != null) {
189
- staleSourceFiles.set(modifiedFile, sourceFile);
190
- }
191
- }
192
- }
193
-
194
166
  // angularCompilerOptions 병합
195
167
  const mergedOptions: ts.CompilerOptions = options.angularCompilerOptions != null
196
168
  ? { ...compilerOptions, ...(options.angularCompilerOptions as ts.CompilerOptions) }
@@ -302,40 +274,6 @@ export class AngularCompiler {
302
274
  await angularProgram.compiler.analyzeAsync();
303
275
  logger.debug("AOT analyzeAsync 완료");
304
276
 
305
- // 10.5. HMR: 후보 수집 + templateUpdates 생성
306
- let templateUpdates: Map<string, string> | undefined;
307
- if (useHmr && staleSourceFiles != null) {
308
- const angularCompiler = angularProgram.compiler;
309
- const componentNodes = collectHmrCandidates(
310
- sourceFileCache.modifiedFiles,
311
- angularCompiler,
312
- staleSourceFiles,
313
- );
314
-
315
- for (const node of componentNodes) {
316
- if (!ts.isClassDeclaration(node)) {
317
- continue;
318
- }
319
- const sf = node.getSourceFile();
320
- let relativePath = path.relative(host.getCurrentDirectory(), sf.fileName);
321
- relativePath = pathx.posix(relativePath);
322
-
323
- const updateId = encodeURIComponent(
324
- `${host.getCanonicalFileName(relativePath)}@${node.name?.text}`,
325
- );
326
- const updateText = angularCompiler.emitHmrUpdateModule(node);
327
-
328
- // emitHmrUpdateModule이 null을 반환하면 전체 templateUpdates 무효화
329
- if (updateText === null) {
330
- templateUpdates = undefined;
331
- break;
332
- }
333
-
334
- templateUpdates ??= new Map();
335
- templateUpdates.set(updateId, updateText);
336
- }
337
- }
338
-
339
277
  // 11. findAffectedFiles (내부에서 리소스 의존성 기반 diagnosticCache 무효화도 수행)
340
278
  const affectedFiles = this._findAffectedFiles(
341
279
  builderProgram,
@@ -350,7 +288,7 @@ export class AngularCompiler {
350
288
  this._affectedFiles = affectedFiles;
351
289
 
352
290
  logger.debug(`initialize 완료 (affected: ${affectedFiles.size}개)`);
353
- return { affectedFiles, templateUpdates };
291
+ return { affectedFiles };
354
292
  }
355
293
 
356
294
  private _findAffectedFiles(
@@ -439,7 +377,6 @@ export class AngularCompiler {
439
377
  modifiedFiles: Iterable<string>,
440
378
  ): Promise<{
441
379
  affectedFiles: ReadonlySet<ts.SourceFile>;
442
- templateUpdates?: Map<string, string>;
443
380
  }> {
444
381
  logger.debug("증분 업데이트 시작");
445
382
  const sourceFileCache = this._options.sourceFileCache;
@@ -2,7 +2,7 @@ import { createHash } from "crypto";
2
2
  import fsp from "fs/promises";
3
3
  import path from "path";
4
4
  import postcss from "postcss";
5
- import { compileScssFileAsync, compileScssStringAsync } from "../utils/scss-compiler.js";
5
+ import { compileScssFileAsync, compileScssStringAsync } from "./scss-compiler.js";
6
6
 
7
7
  export interface ClientTransformStylesheetOptions {
8
8
  loadPaths: string[];
@@ -6,9 +6,9 @@ import { consola } from "consola";
6
6
 
7
7
  const logger = consola.withTag("sd:cli:ngtsc-build");
8
8
  import type { BuildOutput } from "../engines/types";
9
- import type { SerializedDiagnostic } from "./typecheck-serialization";
10
- import type { LintWithProgramResult } from "./lint-with-program";
11
- import type { TypecheckEnv } from "./tsconfig";
9
+ import type { SerializedDiagnostic } from "../typecheck/typecheck-serialization";
10
+ import type { LintWithProgramResult } from "../lint/lint-with-program";
11
+ import type { TypecheckEnv } from "../utils/tsconfig";
12
12
  import { compileScssFile } from "./scss-compiler";
13
13
 
14
14
  //#region Types