@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,121 @@
1
+ import type { BuildResult, ResultCollector } from "../runtime/ResultCollector";
2
+ import type { RebuildManager } from "./rebuild-manager";
3
+
4
+ /**
5
+ * worker.on()으로 이벤트를 구독할 수 있는 최소 인터페이스
6
+ */
7
+ interface EventSubscribable {
8
+ on(event: string, handler: (...args: any[]) => void): void;
9
+ }
10
+
11
+ /**
12
+ * 정규화된 빌드 정보
13
+ */
14
+ export interface NormalizedBuildInfo {
15
+ success: boolean;
16
+ errors?: string[];
17
+ warnings?: string[];
18
+ }
19
+
20
+ /**
21
+ * setupWatchEvents 옵션
22
+ */
23
+ export interface SetupWatchEventsOptions {
24
+ name: string;
25
+ target: string;
26
+ resultCollector?: ResultCollector;
27
+ rebuildManager?: RebuildManager;
28
+ /** build 이벤트 데이터를 공통 형태로 변환하는 콜백 */
29
+ normalizeBuild: (data: unknown) => NormalizedBuildInfo;
30
+ }
31
+
32
+ /**
33
+ * BaseEngine과 EsbuildClientEngine의 공통 watch 이벤트 처리를 설정한다.
34
+ *
35
+ * buildStart → RebuildManager.registerBuild() 호출
36
+ * build → ResultCollector.add() + resolver 호출
37
+ * error → ResultCollector.add() + resolver 호출
38
+ *
39
+ * @returns waitForInitialBuild - 첫 build/error 이벤트에서 resolve되는 Promise 반환 함수
40
+ * @returns resolveInitialBuild - 수동으로 초기 빌드를 resolve (startWatch 실패 시 사용)
41
+ */
42
+ export function setupWatchEvents(
43
+ worker: EventSubscribable,
44
+ options: SetupWatchEventsOptions,
45
+ ): {
46
+ waitForInitialBuild: () => Promise<void>;
47
+ resolveInitialBuild: () => void;
48
+ } {
49
+ const { name, target, resultCollector, rebuildManager, normalizeBuild } = options;
50
+ const workerKey = `${name}:build`;
51
+
52
+ let resolver: (() => void) | undefined;
53
+ let isInitialBuild = true;
54
+ let initialBuildResolve: (() => void) | undefined;
55
+
56
+ worker.on("buildStart", () => {
57
+ if (rebuildManager != null) {
58
+ resolver = rebuildManager.registerBuild(workerKey, `${name} (${target})`);
59
+ }
60
+ });
61
+
62
+ worker.on("build", (data: unknown) => {
63
+ const info = normalizeBuild(data);
64
+
65
+ const buildResult: BuildResult = {
66
+ name,
67
+ target,
68
+ type: "build",
69
+ status: info.success ? "success" : "error",
70
+ message: info.errors?.join("\n"),
71
+ };
72
+ resultCollector?.add(buildResult);
73
+
74
+ resolver?.();
75
+ resolver = undefined;
76
+
77
+ if (isInitialBuild) {
78
+ isInitialBuild = false;
79
+ initialBuildResolve?.();
80
+ }
81
+ });
82
+
83
+ worker.on("error", (data: unknown) => {
84
+ const event = data as { message: string };
85
+
86
+ const buildResult: BuildResult = {
87
+ name,
88
+ target,
89
+ type: "build",
90
+ status: "error",
91
+ message: event.message,
92
+ };
93
+ resultCollector?.add(buildResult);
94
+
95
+ resolver?.();
96
+ resolver = undefined;
97
+
98
+ if (isInitialBuild) {
99
+ isInitialBuild = false;
100
+ initialBuildResolve?.();
101
+ }
102
+ });
103
+
104
+ function resolveInitialBuild(): void {
105
+ if (isInitialBuild) {
106
+ isInitialBuild = false;
107
+ initialBuildResolve?.();
108
+ }
109
+ }
110
+
111
+ function waitForInitialBuild(): Promise<void> {
112
+ if (!isInitialBuild) {
113
+ return Promise.resolve();
114
+ }
115
+ return new Promise<void>((resolve) => {
116
+ initialBuildResolve = resolve;
117
+ });
118
+ }
119
+
120
+ return { waitForInitialBuild, resolveInitialBuild };
121
+ }
@@ -18,6 +18,8 @@ export class RebuildManager extends EventEmitter<RebuildManagerEvents> {
18
18
  this._logger = logger;
19
19
  }
20
20
 
21
+ private _batchTimer: ReturnType<typeof setTimeout> | undefined;
22
+
21
23
  registerBuild(key: string, title: string): () => void {
22
24
  this._logger.debug(`빌드 등록: ${key} (${title})`);
23
25
  let resolver!: () => void;
@@ -28,7 +30,12 @@ export class RebuildManager extends EventEmitter<RebuildManagerEvents> {
28
30
  this._pendingBuilds.set(key, { title, promise, resolver });
29
31
 
30
32
  if (!this._isRunning) {
31
- void Promise.resolve().then(() => void this._runBatch());
33
+ // 워커 스레드들의 buildStart가 도착할 시간을 확보하기 위해 짧은 대기
34
+ if (this._batchTimer != null) clearTimeout(this._batchTimer);
35
+ this._batchTimer = setTimeout(() => {
36
+ this._batchTimer = undefined;
37
+ void this._runBatch();
38
+ }, 100);
32
39
  }
33
40
 
34
41
  return resolver;
@@ -0,0 +1,25 @@
1
+ /** 워커 빌드 완료 이벤트 데이터 */
2
+ export interface BuildEventData {
3
+ success: boolean;
4
+ errors?: string[];
5
+ warnings?: string[];
6
+ }
7
+
8
+ /** 워커 에러 이벤트 데이터 */
9
+ export interface ErrorEventData {
10
+ message: string;
11
+ }
12
+
13
+ /** 워커 서버 준비 완료 이벤트 데이터 */
14
+ export interface ServerReadyEventData {
15
+ port: number;
16
+ }
17
+
18
+ /** Server 빌드 완료 이벤트 데이터 */
19
+ export interface ServerBuildEventData {
20
+ success: boolean;
21
+ mainJsPath: string;
22
+ errors?: string[];
23
+ warnings?: string[];
24
+ }
25
+
@@ -80,23 +80,25 @@ export function createCliParser(argv: string[]): Argv {
80
80
  setupConsola({ cli: true });
81
81
  })
82
82
  .command(
83
- "check [targets..]",
83
+ "check",
84
84
  "Run Typecheck, Lint, Test in parallel",
85
85
  (cmd) =>
86
86
  cmd
87
87
  .version(false)
88
88
  .hide("help")
89
- .positional("targets", {
90
- type: "string",
91
- array: true,
92
- describe: "Packages to check (e.g., core-common, storage)",
93
- default: [],
94
- })
95
89
  .options({
90
+ target: {
91
+ type: "string",
92
+ array: true,
93
+ alias: "t",
94
+ describe: "Packages to check (e.g., --target core-common --target storage)",
95
+ default: [] as string[],
96
+ },
96
97
  type: {
97
98
  type: "string",
98
- describe: "Check types to run (comma-separated: typecheck,lint,test)",
99
- default: "typecheck,lint,test",
99
+ array: true,
100
+ describe: "Check types to run (e.g., --type typecheck --type lint)",
101
+ default: ["typecheck", "lint", "test"] as string[],
100
102
  },
101
103
  fix: {
102
104
  type: "boolean",
@@ -106,10 +108,10 @@ export function createCliParser(argv: string[]): Argv {
106
108
  }),
107
109
  async (args) => {
108
110
  await runCheck({
109
- targets: args.targets,
111
+ targets: args.target,
110
112
  types: (() => {
111
113
  const validTypes = ["typecheck", "lint", "test"] as const;
112
- const types = args.type.split(",").map((t) => t.trim());
114
+ const types = args.type.flatMap((t) => t.split(",").map((s) => s.trim()));
113
115
  const invalidTypes = types.filter((t) => !validTypes.includes(t as CheckType));
114
116
  if (invalidTypes.length > 0) {
115
117
  throw new Error(
@@ -123,75 +125,81 @@ export function createCliParser(argv: string[]): Argv {
123
125
  },
124
126
  )
125
127
  .command(
126
- "watch [targets..]",
128
+ "watch",
127
129
  "Build packages in watch mode",
128
130
  (cmd) =>
129
131
  cmd
130
132
  .version(false)
131
133
  .hide("help")
132
- .positional("targets", {
133
- type: "string",
134
- array: true,
135
- describe: "Packages to watch (e.g., core-common, storage)",
136
- default: [],
137
- })
138
134
  .options({
135
+ target: {
136
+ type: "string",
137
+ array: true,
138
+ alias: "t",
139
+ describe: "Packages to watch (e.g., --target core-common --target storage)",
140
+ default: [] as string[],
141
+ },
139
142
  opt: {
140
143
  type: "string",
141
144
  array: true,
145
+
142
146
  alias: "o",
143
- description: "Options to pass to sd.config.ts (e.g., -o key=value)",
147
+ description: "Options to pass to sd.config.ts (e.g., -o a -o b)",
144
148
  default: [] as string[],
145
149
  },
146
150
  }),
147
151
  async (args) => {
148
152
  await runWatch({
149
- targets: args.targets,
153
+ targets: args.target,
150
154
  options: args.opt,
151
155
  });
152
156
  },
153
157
  )
154
158
  .command(
155
- "dev [targets..]",
159
+ "dev",
156
160
  "Run Server packages in dev mode",
157
161
  (cmd) =>
158
162
  cmd
159
163
  .version(false)
160
164
  .hide("help")
161
- .positional("targets", {
162
- type: "string",
163
- array: true,
164
- describe: "Packages to run (e.g., service-server)",
165
- default: [],
166
- })
167
165
  .options({
166
+ target: {
167
+ type: "string",
168
+ array: true,
169
+
170
+ alias: "t",
171
+ describe: "Packages to run (e.g., --target service-server)",
172
+ default: [] as string[],
173
+ },
168
174
  opt: {
169
175
  type: "string",
170
176
  array: true,
177
+
171
178
  alias: "o",
172
- description: "Options to pass to sd.config.ts (e.g., -o key=value)",
179
+ description: "Options to pass to sd.config.ts (e.g., -o a -o b)",
173
180
  default: [] as string[],
174
181
  },
175
182
  }),
176
183
  async (args) => {
177
184
  await runDev({
178
- targets: args.targets,
185
+ targets: args.target,
179
186
  options: args.opt,
180
187
  });
181
188
  },
182
189
  )
183
190
  .command(
184
- "device [target]",
191
+ "device",
185
192
  "Run native app on device/desktop",
186
193
  (cmd) =>
187
194
  cmd
188
195
  .version(false)
189
196
  .hide("help")
190
- .positional("target", {
191
- type: "string",
192
- describe: "Client package to run (e.g., my-client-app)",
193
- })
194
197
  .options({
198
+ target: {
199
+ type: "string",
200
+ alias: "t",
201
+ describe: "Client package to run (e.g., --target my-client-app)",
202
+ },
195
203
  url: {
196
204
  type: "string",
197
205
  description: "Dev server URL (auto-detected from sd.config.ts if omitted)",
@@ -199,8 +207,9 @@ export function createCliParser(argv: string[]): Argv {
199
207
  opt: {
200
208
  type: "string",
201
209
  array: true,
210
+
202
211
  alias: "o",
203
- description: "Options to pass to sd.config.ts (e.g., -o key=value)",
212
+ description: "Options to pass to sd.config.ts (e.g., -o a -o b)",
204
213
  default: [] as string[],
205
214
  },
206
215
  }),
@@ -214,48 +223,53 @@ export function createCliParser(argv: string[]): Argv {
214
223
  },
215
224
  )
216
225
  .command(
217
- "build [targets..]",
226
+ "build",
218
227
  "Run production build",
219
228
  (cmd) =>
220
229
  cmd
221
230
  .version(false)
222
231
  .hide("help")
223
- .positional("targets", {
224
- type: "string",
225
- array: true,
226
- describe: "Packages to build (e.g., core-common, storage)",
227
- default: [],
228
- })
229
232
  .options({
233
+ target: {
234
+ type: "string",
235
+ array: true,
236
+
237
+ alias: "t",
238
+ describe: "Packages to build (e.g., --target core-common --target storage)",
239
+ default: [] as string[],
240
+ },
230
241
  opt: {
231
242
  type: "string",
232
243
  array: true,
244
+
233
245
  alias: "o",
234
- description: "Options to pass to sd.config.ts (e.g., -o key=value)",
246
+ description: "Options to pass to sd.config.ts (e.g., -o a -o b)",
235
247
  default: [] as string[],
236
248
  },
237
249
  }),
238
250
  async (args) => {
239
251
  await runBuild({
240
- targets: args.targets,
252
+ targets: args.target,
241
253
  options: args.opt,
242
254
  });
243
255
  },
244
256
  )
245
257
  .command(
246
- "publish [targets..]",
258
+ "publish",
247
259
  "Publish packages",
248
260
  (cmd) =>
249
261
  cmd
250
262
  .version(false)
251
263
  .hide("help")
252
- .positional("targets", {
253
- type: "string",
254
- array: true,
255
- describe: "Packages to publish (e.g., core-common, storage)",
256
- default: [],
257
- })
258
264
  .options({
265
+ "target": {
266
+ type: "string",
267
+ array: true,
268
+
269
+ alias: "t",
270
+ describe: "Packages to publish (e.g., --target core-common --target storage)",
271
+ default: [] as string[],
272
+ },
259
273
  "build": {
260
274
  type: "boolean",
261
275
  describe: "Run build (skip with --no-build)",
@@ -269,14 +283,15 @@ export function createCliParser(argv: string[]): Argv {
269
283
  "opt": {
270
284
  type: "string",
271
285
  array: true,
286
+
272
287
  alias: "o",
273
- description: "Options to pass to sd.config.ts (e.g., -o key=value)",
288
+ description: "Options to pass to sd.config.ts (e.g., -o a -o b)",
274
289
  default: [] as string[],
275
290
  },
276
291
  }),
277
292
  async (args) => {
278
293
  await runPublish({
279
- targets: args.targets,
294
+ targets: args.target,
280
295
  noBuild: !args.build,
281
296
  dryRun: args.dryRun,
282
297
  options: args.opt,
@@ -295,7 +310,7 @@ export function createCliParser(argv: string[]): Argv {
295
310
  type: "string",
296
311
  array: true,
297
312
  alias: "o",
298
- description: "Options to pass to sd.config.ts (e.g., -o key=value)",
313
+ description: "Options to pass to sd.config.ts (e.g., -o a -o b)",
299
314
  default: [] as string[],
300
315
  },
301
316
  }),
package/src/sd-cli.ts CHANGED
@@ -30,7 +30,7 @@ if (isDev) {
30
30
  // Phase 1: replaceDeps (인라인 — 설치된 버전으로 복사)
31
31
  try {
32
32
  const { loadSdConfig } = await import("./utils/sd-config.js");
33
- const { setupReplaceDeps } = await import("./utils/replace-deps.js");
33
+ const { setupReplaceDeps } = await import("./deps/replace-deps/replace-deps.js");
34
34
  const sdConfig = await loadSdConfig({ cwd: process.cwd(), dev: false, opt: [] });
35
35
  if (process.argv[2] !== "replace-deps" && sdConfig.replaceDeps != null) {
36
36
  await setupReplaceDeps(process.cwd(), sdConfig.replaceDeps);
@@ -191,19 +191,11 @@ export interface SdPwaManifestConfig {
191
191
  icons?: Array<{ src: string; sizes: string; type?: string }>;
192
192
  }
193
193
 
194
- /**
195
- * PWA workbox 설정
196
- */
197
- export interface SdPwaWorkboxConfig {
198
- globPatterns?: string[];
199
- }
200
-
201
194
  /**
202
195
  * PWA 설정
203
196
  */
204
197
  export interface SdPwaConfig {
205
198
  manifest?: SdPwaManifestConfig;
206
- workbox?: SdPwaWorkboxConfig;
207
199
  }
208
200
 
209
201
  //#endregion
@@ -214,24 +206,22 @@ export interface SdPwaConfig {
214
206
  export interface SdBrowserSupportConfig {
215
207
  /** browserslist 쿼리 (예: "last 2 Chrome versions" 또는 ["ie 11", "last 2 versions"]) */
216
208
  browserslist?: string | string[];
217
- /** PostCSS 플러그인 설정 */
218
- postCss?: { plugins: unknown[] };
209
+ /** PostCSS 플러그인 설정 ([name, options] 튜플 배열) */
210
+ postCss?: { plugins: [string, (object | string)?][] };
219
211
  /** 레거시 모듈 지원 (코드 분할 비활성화 + import.meta 치환) */
220
212
  legacyModule?: boolean;
221
213
  }
222
214
 
223
215
  /**
224
- * 클라이언트 패키지 설정 (Vite 개발 서버)
216
+ * 클라이언트 패키지 설정 (esbuild 기반 빌드)
225
217
  */
226
218
  export interface SdClientPackageConfig {
227
219
  /** 빌드 타겟 */
228
220
  target: "client";
229
- /** 클라이언트 프레임워크 선택. 미지정 시 "angular" */
230
- framework?: "angular" | "solid";
231
221
  /**
232
222
  * 서버 설정
233
- * - string: 연결할 서버 패키지명 (예: "solid-demo-server")
234
- * - number: Vite 포트 직접 지정 (하위 호환)
223
+ * - string: 연결할 서버 패키지명 (예: "demo-server")
224
+ * - number: 포트 직접 지정 (하위 호환)
235
225
  */
236
226
  server: string | number;
237
227
  /** 빌드 시 치환할 환경 변수 (process.env를 객체로 치환) */
@@ -244,7 +234,7 @@ export interface SdClientPackageConfig {
244
234
  electron?: SdElectronConfig;
245
235
  /** 런타임 설정 (빌드 시 dist/.config.json으로 기록) */
246
236
  configs?: Record<string, unknown>;
247
- /** Vite optimizeDeps에서 제외하고 Capacitor/Electron package.json에 추가할 패키지 */
237
+ /** Capacitor/Electron package.json에 추가할 패키지 */
248
238
  exclude?: string[];
249
239
  /** 브라우저 지원 설정 (browserslist, PostCSS, legacyModule) */
250
240
  browserSupport?: SdBrowserSupportConfig;
@@ -2,7 +2,7 @@ import path from "path";
2
2
  import ts from "typescript";
3
3
  import { consola } from "consola";
4
4
  import { pathx } from "@simplysm/core-node";
5
- import { parseTsconfig } from "./tsconfig";
5
+ import { parseTsconfig } from "../utils/tsconfig";
6
6
  import { serializeDiagnostic, type SerializedDiagnostic } from "./typecheck-serialization";
7
7
 
8
8
  const logger = consola.withTag("sd:cli:typecheck-non-pkg");
@@ -14,6 +14,21 @@ export function isWorkspaceDiagnostic(diagnostic: ts.Diagnostic, cwd: string): b
14
14
  return normalized.startsWith(normalizedCwd + "/") && !normalized.includes("/node_modules/");
15
15
  }
16
16
 
17
+ /**
18
+ * ts.Diagnostic 배열을 중복 제거 후 컬러 컨텍스트 포맷으로 변환한다.
19
+ * 빈 배열이면 빈 문자열을 반환한다.
20
+ */
21
+ export function formatDiagnosticsOutput(diagnostics: ts.Diagnostic[], cwd: string): string {
22
+ if (diagnostics.length === 0) return "";
23
+ const formatHost: ts.FormatDiagnosticsHost = {
24
+ getCanonicalFileName: (f) => f,
25
+ getCurrentDirectory: () => cwd,
26
+ getNewLine: () => ts.sys.newLine,
27
+ };
28
+ const uniqueDiagnostics = ts.sortAndDeduplicateDiagnostics(diagnostics);
29
+ return ts.formatDiagnosticsWithColorAndContext(uniqueDiagnostics, formatHost);
30
+ }
31
+
17
32
  /**
18
33
  * 진단 에러를 "파일:줄:열: TS코드: 메시지" 형식으로 포맷한다.
19
34
  * 파일 정보가 없는 경우 "TS코드: 메시지" 형식으로 반환한다.
@@ -4,23 +4,19 @@ import { validateTargets } from "./package-utils";
4
4
 
5
5
  /**
6
6
  * Orchestrator 공통 초기화: config 로드 + 타겟 검증.
7
- * BuildOrchestrator.initialize()와 DevWatchOrchestrator.initialize()에서 호출한다.
8
- *
9
- * @param params.packagesForValidation 검증 대상 패키지를 오버라이드. DevWatchOrchestrator는
10
- * tests/ 패키지를 merge한 결과에 대해 검증해야 하므로 이 파라미터를 사용한다.
7
+ * BuildOrchestrator.initialize()에서 호출한다.
11
8
  */
12
9
  export async function loadAndValidateConfig(params: {
13
10
  cwd: string;
14
11
  dev: boolean;
15
12
  options: string[];
16
13
  targets: string[];
17
- packagesForValidation?: Record<string, unknown>;
18
14
  }): Promise<SdConfig> {
19
15
  const config = await loadSdConfig({
20
16
  cwd: params.cwd,
21
17
  dev: params.dev,
22
18
  opt: params.options,
23
19
  });
24
- validateTargets(params.targets, params.packagesForValidation ?? config.packages);
20
+ validateTargets(params.targets, config.packages);
25
21
  return config;
26
22
  }
@@ -1,5 +1,5 @@
1
1
  import { consola } from "consola";
2
- import type { BuildResult } from "../infra/ResultCollector";
2
+ import type { BuildResult } from "../runtime/ResultCollector";
3
3
 
4
4
  /**
5
5
  * 빌드 경고/에러 메시지를 포맷팅한다.