@simplysm/sd-cli 13.0.99 → 14.0.1

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 (409) hide show
  1. package/dist/commands/build.js +29 -19
  2. package/dist/commands/build.js.map +1 -6
  3. package/dist/commands/check.d.ts +1 -0
  4. package/dist/commands/check.d.ts.map +1 -1
  5. package/dist/commands/check.js +130 -115
  6. package/dist/commands/check.js.map +1 -6
  7. package/dist/commands/dev.d.ts +6 -7
  8. package/dist/commands/dev.d.ts.map +1 -1
  9. package/dist/commands/dev.js +24 -14
  10. package/dist/commands/dev.js.map +1 -6
  11. package/dist/commands/lint.d.ts +1 -1
  12. package/dist/commands/lint.js +158 -116
  13. package/dist/commands/lint.js.map +1 -6
  14. package/dist/commands/publish.d.ts.map +1 -1
  15. package/dist/commands/publish.js +637 -510
  16. package/dist/commands/publish.js.map +1 -6
  17. package/dist/commands/replace-deps.js +12 -12
  18. package/dist/commands/replace-deps.js.map +1 -6
  19. package/dist/commands/typecheck.d.ts +5 -30
  20. package/dist/commands/typecheck.d.ts.map +1 -1
  21. package/dist/commands/typecheck.js +144 -207
  22. package/dist/commands/typecheck.js.map +1 -6
  23. package/dist/commands/watch.d.ts +6 -4
  24. package/dist/commands/watch.d.ts.map +1 -1
  25. package/dist/commands/watch.js +25 -16
  26. package/dist/commands/watch.js.map +1 -6
  27. package/dist/engines/NgtscEngine.d.ts +47 -0
  28. package/dist/engines/NgtscEngine.d.ts.map +1 -0
  29. package/dist/engines/NgtscEngine.js +151 -0
  30. package/dist/engines/NgtscEngine.js.map +1 -0
  31. package/dist/engines/ServerEsbuildEngine.d.ts +47 -0
  32. package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -0
  33. package/dist/engines/ServerEsbuildEngine.js +159 -0
  34. package/dist/engines/ServerEsbuildEngine.js.map +1 -0
  35. package/dist/engines/TscEngine.d.ts +47 -0
  36. package/dist/engines/TscEngine.d.ts.map +1 -0
  37. package/dist/engines/TscEngine.js +153 -0
  38. package/dist/engines/TscEngine.js.map +1 -0
  39. package/dist/engines/ViteEngine.d.ts +49 -0
  40. package/dist/engines/ViteEngine.d.ts.map +1 -0
  41. package/dist/engines/ViteEngine.js +161 -0
  42. package/dist/engines/ViteEngine.js.map +1 -0
  43. package/dist/engines/index.d.ts +26 -0
  44. package/dist/engines/index.d.ts.map +1 -0
  45. package/dist/engines/index.js +30 -0
  46. package/dist/engines/index.js.map +1 -0
  47. package/dist/engines/types.d.ts +77 -0
  48. package/dist/engines/types.d.ts.map +1 -0
  49. package/dist/engines/types.js +2 -0
  50. package/dist/engines/types.js.map +1 -0
  51. package/dist/index.d.ts +0 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +2 -2
  54. package/dist/index.js.map +1 -6
  55. package/dist/infra/ResultCollector.d.ts +1 -1
  56. package/dist/infra/ResultCollector.d.ts.map +1 -1
  57. package/dist/infra/ResultCollector.js +30 -27
  58. package/dist/infra/ResultCollector.js.map +1 -6
  59. package/dist/infra/SignalHandler.js +45 -42
  60. package/dist/infra/SignalHandler.js.map +1 -6
  61. package/dist/infra/WorkerManager.js +56 -53
  62. package/dist/infra/WorkerManager.js.map +1 -6
  63. package/dist/orchestrators/BuildOrchestrator.d.ts +33 -1
  64. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  65. package/dist/orchestrators/BuildOrchestrator.js +314 -309
  66. package/dist/orchestrators/BuildOrchestrator.js.map +1 -6
  67. package/dist/orchestrators/DevWatchOrchestrator.d.ts +60 -0
  68. package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -0
  69. package/dist/orchestrators/DevWatchOrchestrator.js +465 -0
  70. package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -0
  71. package/dist/sd-cli-entry.d.ts.map +1 -1
  72. package/dist/sd-cli-entry.js +190 -266
  73. package/dist/sd-cli-entry.js.map +1 -6
  74. package/dist/sd-cli.js +77 -49
  75. package/dist/sd-cli.js.map +1 -6
  76. package/dist/sd-config.types.d.ts +2 -0
  77. package/dist/sd-config.types.d.ts.map +1 -1
  78. package/dist/sd-config.types.js +2 -1
  79. package/dist/sd-config.types.js.map +1 -6
  80. package/dist/utils/angular-build.d.ts +77 -0
  81. package/dist/utils/angular-build.d.ts.map +1 -0
  82. package/dist/utils/angular-build.js +84 -0
  83. package/dist/utils/angular-build.js.map +1 -0
  84. package/dist/utils/build-env.js +9 -9
  85. package/dist/utils/build-env.js.map +1 -6
  86. package/dist/utils/concurrency.d.ts +15 -0
  87. package/dist/utils/concurrency.d.ts.map +1 -0
  88. package/dist/utils/concurrency.js +38 -0
  89. package/dist/utils/concurrency.js.map +1 -0
  90. package/dist/utils/copy-public.js +104 -87
  91. package/dist/utils/copy-public.js.map +1 -6
  92. package/dist/utils/copy-src.js +49 -35
  93. package/dist/utils/copy-src.js.map +1 -6
  94. package/dist/utils/esbuild-config.d.ts +0 -29
  95. package/dist/utils/esbuild-config.d.ts.map +1 -1
  96. package/dist/utils/esbuild-config.js +151 -218
  97. package/dist/utils/esbuild-config.js.map +1 -6
  98. package/dist/utils/ngtsc-build-core.d.ts +49 -0
  99. package/dist/utils/ngtsc-build-core.d.ts.map +1 -0
  100. package/dist/utils/ngtsc-build-core.js +250 -0
  101. package/dist/utils/ngtsc-build-core.js.map +1 -0
  102. package/dist/utils/output-path-rewriter.d.ts +23 -0
  103. package/dist/utils/output-path-rewriter.d.ts.map +1 -0
  104. package/dist/utils/output-path-rewriter.js +74 -0
  105. package/dist/utils/output-path-rewriter.js.map +1 -0
  106. package/dist/utils/output-utils.js +55 -40
  107. package/dist/utils/output-utils.js.map +1 -6
  108. package/dist/utils/package-utils.d.ts +8 -0
  109. package/dist/utils/package-utils.d.ts.map +1 -1
  110. package/dist/utils/package-utils.js +103 -73
  111. package/dist/utils/package-utils.js.map +1 -6
  112. package/dist/utils/rebuild-manager.js +41 -44
  113. package/dist/utils/rebuild-manager.js.map +1 -6
  114. package/dist/utils/replace-deps.js +283 -184
  115. package/dist/utils/replace-deps.js.map +1 -6
  116. package/dist/utils/scss-compiler.d.ts +10 -0
  117. package/dist/utils/scss-compiler.d.ts.map +1 -0
  118. package/dist/utils/scss-compiler.js +36 -0
  119. package/dist/utils/scss-compiler.js.map +1 -0
  120. package/dist/utils/sd-config.js +29 -19
  121. package/dist/utils/sd-config.js.map +1 -6
  122. package/dist/utils/tsc-build.d.ts +36 -0
  123. package/dist/utils/tsc-build.d.ts.map +1 -0
  124. package/dist/utils/tsc-build.js +130 -0
  125. package/dist/utils/tsc-build.js.map +1 -0
  126. package/dist/utils/tsconfig.d.ts +7 -26
  127. package/dist/utils/tsconfig.d.ts.map +1 -1
  128. package/dist/utils/tsconfig.js +39 -64
  129. package/dist/utils/tsconfig.js.map +1 -6
  130. package/dist/utils/typecheck-non-package.d.ts +18 -0
  131. package/dist/utils/typecheck-non-package.d.ts.map +1 -0
  132. package/dist/utils/typecheck-non-package.js +64 -0
  133. package/dist/utils/typecheck-non-package.js.map +1 -0
  134. package/dist/utils/typecheck-serialization.js +58 -40
  135. package/dist/utils/typecheck-serialization.js.map +1 -6
  136. package/dist/utils/worker-events.js +48 -40
  137. package/dist/utils/worker-events.js.map +1 -6
  138. package/dist/utils/worker-utils.js +48 -28
  139. package/dist/utils/worker-utils.js.map +1 -6
  140. package/dist/vitest-plugin.d.ts +9 -0
  141. package/dist/vitest-plugin.d.ts.map +1 -0
  142. package/dist/vitest-plugin.js +85 -0
  143. package/dist/vitest-plugin.js.map +1 -0
  144. package/dist/workers/library-build.worker.d.ts +54 -0
  145. package/dist/workers/library-build.worker.d.ts.map +1 -0
  146. package/dist/workers/library-build.worker.js +97 -0
  147. package/dist/workers/library-build.worker.js.map +1 -0
  148. package/dist/workers/lint.worker.js +9 -6
  149. package/dist/workers/lint.worker.js.map +1 -6
  150. package/dist/workers/ngtsc-build.worker.d.ts +23 -0
  151. package/dist/workers/ngtsc-build.worker.d.ts.map +1 -0
  152. package/dist/workers/ngtsc-build.worker.js +98 -0
  153. package/dist/workers/ngtsc-build.worker.js.map +1 -0
  154. package/dist/workers/{server.worker.d.ts → server-build.worker.d.ts} +39 -29
  155. package/dist/workers/server-build.worker.d.ts.map +1 -0
  156. package/dist/workers/server-build.worker.js +399 -0
  157. package/dist/workers/server-build.worker.js.map +1 -0
  158. package/dist/workers/server-runtime.worker.d.ts +3 -2
  159. package/dist/workers/server-runtime.worker.d.ts.map +1 -1
  160. package/dist/workers/server-runtime.worker.js +100 -95
  161. package/dist/workers/server-runtime.worker.js.map +1 -6
  162. package/dist/workers/vite-build.worker.d.ts +56 -0
  163. package/dist/workers/vite-build.worker.d.ts.map +1 -0
  164. package/dist/workers/vite-build.worker.js +167 -0
  165. package/dist/workers/vite-build.worker.js.map +1 -0
  166. package/package.json +10 -16
  167. package/src/commands/check.ts +21 -3
  168. package/src/commands/dev.ts +10 -8
  169. package/src/commands/lint.ts +1 -1
  170. package/src/commands/publish.ts +4 -0
  171. package/src/commands/typecheck.ts +89 -256
  172. package/src/commands/watch.ts +9 -8
  173. package/src/engines/NgtscEngine.ts +190 -0
  174. package/src/engines/ServerEsbuildEngine.ts +195 -0
  175. package/src/engines/TscEngine.ts +189 -0
  176. package/src/engines/ViteEngine.ts +203 -0
  177. package/src/engines/index.ts +49 -0
  178. package/src/engines/types.ts +79 -0
  179. package/src/index.ts +0 -3
  180. package/src/infra/ResultCollector.ts +1 -1
  181. package/src/orchestrators/BuildOrchestrator.ts +87 -157
  182. package/src/orchestrators/DevWatchOrchestrator.ts +573 -0
  183. package/src/sd-cli-entry.ts +13 -116
  184. package/src/sd-config.types.ts +2 -0
  185. package/src/utils/angular-build.ts +157 -0
  186. package/src/utils/concurrency.ts +43 -0
  187. package/src/utils/esbuild-config.ts +1 -122
  188. package/src/utils/ngtsc-build-core.ts +379 -0
  189. package/src/utils/output-path-rewriter.ts +82 -0
  190. package/src/utils/package-utils.ts +20 -0
  191. package/src/utils/scss-compiler.ts +58 -0
  192. package/src/utils/tsc-build.ts +175 -0
  193. package/src/utils/tsconfig.ts +27 -95
  194. package/src/utils/typecheck-non-package.ts +87 -0
  195. package/src/vitest-plugin.ts +118 -0
  196. package/src/workers/library-build.worker.ts +153 -0
  197. package/src/workers/ngtsc-build.worker.ts +146 -0
  198. package/src/workers/server-build.worker.ts +565 -0
  199. package/src/workers/server-runtime.worker.ts +17 -26
  200. package/src/workers/vite-build.worker.ts +252 -0
  201. package/tests/commands/check.spec.ts +276 -0
  202. package/tests/commands/dev.spec.ts +53 -0
  203. package/tests/commands/lint.spec.ts +243 -0
  204. package/tests/commands/publish.spec.ts +1159 -0
  205. package/tests/commands/typecheck.spec.ts +294 -0
  206. package/tests/commands/watch.spec.ts +53 -0
  207. package/tests/engines/engine-selection.spec.ts +247 -0
  208. package/tests/engines/ngtsc-engine.spec.ts +274 -0
  209. package/tests/engines/server-esbuild-engine.spec.ts +256 -0
  210. package/tests/engines/tsc-engine.spec.ts +213 -0
  211. package/tests/engines/vite-engine.spec.ts +358 -0
  212. package/tests/infra/result-collector.spec.ts +46 -0
  213. package/tests/infra/signal-handler.spec.ts +32 -0
  214. package/tests/infra/worker-manager.spec.ts +63 -0
  215. package/tests/orchestrators/build-orchestrator.spec.ts +772 -0
  216. package/tests/orchestrators/dev-watch-orchestrator.spec.ts +1173 -0
  217. package/tests/sd-cli-entry.spec.ts +49 -0
  218. package/tests/utils/angular-build.spec.ts +251 -0
  219. package/tests/utils/build-env.spec.ts +33 -0
  220. package/tests/utils/concurrency.spec.ts +65 -0
  221. package/tests/utils/copy-src.spec.ts +144 -0
  222. package/tests/utils/esbuild-config.spec.ts +186 -0
  223. package/tests/utils/external-modules.spec.ts +161 -0
  224. package/tests/utils/ngtsc-scss-refactor.spec.ts +66 -0
  225. package/tests/utils/output-path-rewriter.spec.ts +165 -0
  226. package/tests/utils/output-utils.spec.ts +104 -0
  227. package/tests/utils/package-utils.spec.ts +52 -0
  228. package/tests/utils/rebuild-manager.spec.ts +30 -27
  229. package/tests/utils/replace-deps.spec.ts +69 -0
  230. package/tests/utils/scss-compiler.spec.ts +131 -0
  231. package/tests/utils/sd-config.spec.ts +77 -0
  232. package/tests/utils/tsc-build.spec.ts +358 -0
  233. package/tests/utils/tsconfig-angular.spec.ts +71 -0
  234. package/tests/utils/typecheck-non-package.spec.ts +120 -0
  235. package/tests/utils/worker-events.spec.ts +155 -0
  236. package/tests/utils/worker-utils.spec.ts +43 -0
  237. package/tests/vitest-plugin-cwd.spec.ts +68 -0
  238. package/tests/vitest-plugin.spec.ts +103 -0
  239. package/tests/workers/library-build-worker.spec.ts +258 -0
  240. package/tests/workers/ngtsc-build-worker.spec.ts +187 -0
  241. package/tests/workers/server-build-worker.spec.ts +566 -0
  242. package/tests/workers/server-runtime-worker.spec.ts +251 -0
  243. package/README.md +0 -295
  244. package/dist/builders/BaseBuilder.d.ts +0 -88
  245. package/dist/builders/BaseBuilder.d.ts.map +0 -1
  246. package/dist/builders/BaseBuilder.js +0 -142
  247. package/dist/builders/BaseBuilder.js.map +0 -6
  248. package/dist/builders/DtsBuilder.d.ts +0 -22
  249. package/dist/builders/DtsBuilder.d.ts.map +0 -1
  250. package/dist/builders/DtsBuilder.js +0 -72
  251. package/dist/builders/DtsBuilder.js.map +0 -6
  252. package/dist/builders/LibraryBuilder.d.ts +0 -22
  253. package/dist/builders/LibraryBuilder.d.ts.map +0 -1
  254. package/dist/builders/LibraryBuilder.js +0 -85
  255. package/dist/builders/LibraryBuilder.js.map +0 -6
  256. package/dist/builders/types.d.ts +0 -55
  257. package/dist/builders/types.d.ts.map +0 -1
  258. package/dist/builders/types.js +0 -1
  259. package/dist/builders/types.js.map +0 -6
  260. package/dist/capacitor/capacitor.d.ts +0 -151
  261. package/dist/capacitor/capacitor.d.ts.map +0 -1
  262. package/dist/capacitor/capacitor.js +0 -694
  263. package/dist/capacitor/capacitor.js.map +0 -6
  264. package/dist/commands/device.d.ts +0 -22
  265. package/dist/commands/device.d.ts.map +0 -1
  266. package/dist/commands/device.js +0 -98
  267. package/dist/commands/device.js.map +0 -6
  268. package/dist/commands/init.d.ts +0 -14
  269. package/dist/commands/init.d.ts.map +0 -1
  270. package/dist/commands/init.js +0 -72
  271. package/dist/commands/init.js.map +0 -6
  272. package/dist/electron/electron.d.ts +0 -84
  273. package/dist/electron/electron.d.ts.map +0 -1
  274. package/dist/electron/electron.js +0 -263
  275. package/dist/electron/electron.js.map +0 -6
  276. package/dist/orchestrators/DevOrchestrator.d.ts +0 -83
  277. package/dist/orchestrators/DevOrchestrator.d.ts.map +0 -1
  278. package/dist/orchestrators/DevOrchestrator.js +0 -540
  279. package/dist/orchestrators/DevOrchestrator.js.map +0 -6
  280. package/dist/orchestrators/WatchOrchestrator.d.ts +0 -57
  281. package/dist/orchestrators/WatchOrchestrator.d.ts.map +0 -1
  282. package/dist/orchestrators/WatchOrchestrator.js +0 -199
  283. package/dist/orchestrators/WatchOrchestrator.js.map +0 -6
  284. package/dist/utils/tailwind-config-deps.d.ts +0 -8
  285. package/dist/utils/tailwind-config-deps.d.ts.map +0 -1
  286. package/dist/utils/tailwind-config-deps.js +0 -82
  287. package/dist/utils/tailwind-config-deps.js.map +0 -6
  288. package/dist/utils/template.d.ts +0 -14
  289. package/dist/utils/template.d.ts.map +0 -1
  290. package/dist/utils/template.js +0 -33
  291. package/dist/utils/template.js.map +0 -6
  292. package/dist/utils/vite-config.d.ts +0 -35
  293. package/dist/utils/vite-config.d.ts.map +0 -1
  294. package/dist/utils/vite-config.js +0 -259
  295. package/dist/utils/vite-config.js.map +0 -6
  296. package/dist/workers/client.worker.d.ts +0 -83
  297. package/dist/workers/client.worker.d.ts.map +0 -1
  298. package/dist/workers/client.worker.js +0 -111
  299. package/dist/workers/client.worker.js.map +0 -6
  300. package/dist/workers/dts.worker.d.ts +0 -75
  301. package/dist/workers/dts.worker.d.ts.map +0 -1
  302. package/dist/workers/dts.worker.js +0 -270
  303. package/dist/workers/dts.worker.js.map +0 -6
  304. package/dist/workers/library.worker.d.ts +0 -75
  305. package/dist/workers/library.worker.d.ts.map +0 -1
  306. package/dist/workers/library.worker.js +0 -166
  307. package/dist/workers/library.worker.js.map +0 -6
  308. package/dist/workers/server.worker.d.ts.map +0 -1
  309. package/dist/workers/server.worker.js +0 -482
  310. package/dist/workers/server.worker.js.map +0 -6
  311. package/src/builders/BaseBuilder.ts +0 -218
  312. package/src/builders/DtsBuilder.ts +0 -92
  313. package/src/builders/LibraryBuilder.ts +0 -110
  314. package/src/builders/types.ts +0 -60
  315. package/src/capacitor/capacitor.ts +0 -931
  316. package/src/commands/device.ts +0 -140
  317. package/src/commands/init.ts +0 -113
  318. package/src/electron/electron.ts +0 -362
  319. package/src/orchestrators/DevOrchestrator.ts +0 -744
  320. package/src/orchestrators/WatchOrchestrator.ts +0 -277
  321. package/src/utils/tailwind-config-deps.ts +0 -98
  322. package/src/utils/template.ts +0 -56
  323. package/src/utils/vite-config.ts +0 -390
  324. package/src/workers/client.worker.ts +0 -250
  325. package/src/workers/dts.worker.ts +0 -453
  326. package/src/workers/library.worker.ts +0 -316
  327. package/src/workers/server.worker.ts +0 -734
  328. package/templates/init/.gitignore.hbs +0 -34
  329. package/templates/init/.npmrc.hbs +0 -1
  330. package/templates/init/.prettierignore +0 -1
  331. package/templates/init/.prettierrc.yaml +0 -12
  332. package/templates/init/eslint.config.ts +0 -15
  333. package/templates/init/mise.toml +0 -3
  334. package/templates/init/package.json.hbs +0 -32
  335. package/templates/init/packages/client-admin/index.html.hbs +0 -144
  336. package/templates/init/packages/client-admin/package.json.hbs +0 -27
  337. package/templates/init/packages/client-admin/public/assets/logo-landscape.png +0 -0
  338. package/templates/init/packages/client-admin/public/assets/logo.png +0 -0
  339. package/templates/init/packages/client-admin/public/favicon.ico +0 -0
  340. package/templates/init/packages/client-admin/src/App.tsx +0 -42
  341. package/templates/init/packages/client-admin/src/dev/DevDialog.tsx +0 -34
  342. package/templates/init/packages/client-admin/src/events/AuthChangeEvent.ts +0 -3
  343. package/templates/init/packages/client-admin/src/main.css +0 -4
  344. package/templates/init/packages/client-admin/src/main.tsx.hbs +0 -146
  345. package/templates/init/packages/client-admin/src/providers/AppServiceProvider.tsx.hbs +0 -103
  346. package/templates/init/packages/client-admin/src/providers/AppStructureProvider.tsx +0 -84
  347. package/templates/init/packages/client-admin/src/providers/AuthProvider.tsx.hbs +0 -96
  348. package/templates/init/packages/client-admin/src/providers/configureSharedData.ts.hbs +0 -67
  349. package/templates/init/packages/client-admin/src/views/auth/LoginView.tsx +0 -132
  350. package/templates/init/packages/client-admin/src/views/home/HomeView.tsx +0 -108
  351. package/templates/init/packages/client-admin/src/views/home/base/employee/EmployeeDetail.tsx.hbs +0 -243
  352. package/templates/init/packages/client-admin/src/views/home/base/employee/EmployeeSheet.tsx.hbs +0 -271
  353. package/templates/init/packages/client-admin/src/views/home/base/role-permission/RoleDetail.tsx.hbs +0 -146
  354. package/templates/init/packages/client-admin/src/views/home/base/role-permission/RolePermissionDetail.tsx.hbs +0 -121
  355. package/templates/init/packages/client-admin/src/views/home/base/role-permission/RolePermissionView.tsx +0 -52
  356. package/templates/init/packages/client-admin/src/views/home/base/role-permission/RoleSheet.tsx.hbs +0 -125
  357. package/templates/init/packages/client-admin/src/views/home/main/MainView.tsx.hbs +0 -13
  358. package/templates/init/packages/client-admin/src/views/home/my-info/MyInfoDetail.tsx.hbs +0 -241
  359. package/templates/init/packages/client-admin/src/views/home/system/system-log/SystemLogSheet.tsx.hbs +0 -169
  360. package/templates/init/packages/client-admin/src/views/not-found/NotFoundView.tsx +0 -15
  361. package/templates/init/packages/client-admin/tailwind.config.ts +0 -10
  362. package/templates/init/packages/db-main/package.json.hbs +0 -13
  363. package/templates/init/packages/db-main/src/MainDbContext.ts +0 -22
  364. package/templates/init/packages/db-main/src/dataLogExt.ts +0 -127
  365. package/templates/init/packages/db-main/src/index.ts +0 -14
  366. package/templates/init/packages/db-main/src/tables/base/Employee.ts +0 -24
  367. package/templates/init/packages/db-main/src/tables/base/EmployeeConfig.ts +0 -13
  368. package/templates/init/packages/db-main/src/tables/base/Role.ts +0 -9
  369. package/templates/init/packages/db-main/src/tables/base/RolePermission.ts +0 -13
  370. package/templates/init/packages/db-main/src/tables/system/_DataLog.ts +0 -19
  371. package/templates/init/packages/db-main/src/tables/system/_Log.ts +0 -16
  372. package/templates/init/packages/server/package.json.hbs +0 -20
  373. package/templates/init/packages/server/public-dev/dev//354/264/210/352/270/260/355/231/224.xlsx +0 -0
  374. package/templates/init/packages/server/src/index.ts +0 -4
  375. package/templates/init/packages/server/src/main.ts.hbs +0 -34
  376. package/templates/init/packages/server/src/services/AuthService.ts.hbs +0 -171
  377. package/templates/init/packages/server/src/services/DevService.ts.hbs +0 -94
  378. package/templates/init/packages/server/src/services/EmployeeService.ts.hbs +0 -122
  379. package/templates/init/packages/server/src/services/RoleService.ts.hbs +0 -59
  380. package/templates/init/pnpm-workspace.yaml +0 -15
  381. package/templates/init/sd.config.ts.hbs +0 -48
  382. package/templates/init/tsconfig.json.hbs +0 -39
  383. package/templates/init/vitest.config.ts +0 -36
  384. package/tests/capacitor-exclude.spec.ts +0 -78
  385. package/tests/capacitor.spec.ts +0 -49
  386. package/tests/copy-src.spec.ts +0 -50
  387. package/tests/electron-exclude.spec.ts +0 -61
  388. package/tests/get-compiler-options-for-package.spec.ts +0 -80
  389. package/tests/get-package-source-files.spec.ts +0 -139
  390. package/tests/get-types-from-package-json.spec.ts +0 -92
  391. package/tests/infra/ResultCollector.spec.ts +0 -30
  392. package/tests/infra/SignalHandler.spec.ts +0 -38
  393. package/tests/infra/WorkerManager.spec.ts +0 -63
  394. package/tests/load-ignore-patterns.spec.ts +0 -163
  395. package/tests/load-sd-config.spec.ts +0 -100
  396. package/tests/package-utils.spec.ts +0 -188
  397. package/tests/parse-root-tsconfig.spec.ts +0 -89
  398. package/tests/publish-config-narrowing.spec.ts +0 -20
  399. package/tests/replace-deps.spec.ts +0 -308
  400. package/tests/run-lint.spec.ts +0 -366
  401. package/tests/run-typecheck.spec.ts +0 -544
  402. package/tests/run-watch.spec.ts +0 -76
  403. package/tests/sd-cli.spec.ts +0 -265
  404. package/tests/sd-public-dev-plugin-mime.spec.ts +0 -19
  405. package/tests/tailwind-config-deps.spec.ts +0 -30
  406. package/tests/template.spec.ts +0 -70
  407. package/tests/vite-config-exclude.spec.ts +0 -35
  408. package/tests/vite-config-outdir.spec.ts +0 -38
  409. package/tests/write-changed-output-files.spec.ts +0 -97
@@ -1,338 +1,343 @@
1
1
  import path from "path";
2
2
  import ts from "typescript";
3
3
  import { Worker, fsx } from "@simplysm/core-node";
4
- import { err as errNs } from "@simplysm/core-common";
5
4
  import { consola } from "consola";
6
5
  import { loadSdConfig } from "../utils/sd-config.js";
7
6
  import { getVersion } from "../utils/build-env.js";
8
7
  import { deserializeDiagnostic } from "../utils/typecheck-serialization.js";
9
- import { Capacitor } from "../capacitor/capacitor.js";
10
- import { Electron } from "../electron/electron.js";
11
8
  import { copySrcFiles } from "../utils/copy-src.js";
12
9
  import { formatBuildMessages } from "../utils/output-utils.js";
13
- function classifyPackages(packages, targets) {
14
- const buildPackages = [];
15
- const clientPackages = [];
16
- const serverPackages = [];
17
- for (const [name, config] of Object.entries(packages)) {
18
- if (config == null) continue;
19
- if (config.target === "scripts") continue;
20
- if (targets.length > 0 && !targets.includes(name)) continue;
21
- if (config.target === "client") {
22
- clientPackages.push({ name, config });
23
- } else if (config.target === "server") {
24
- serverPackages.push({ name, config });
25
- } else {
26
- buildPackages.push({ name, config });
10
+ import { createBuildEngine } from "../engines/index.js";
11
+ import { runWithConcurrency, getMaxConcurrency } from "../utils/concurrency.js";
12
+ import { validateTargets } from "../utils/package-utils.js";
13
+ //#endregion
14
+ //#region Utilities
15
+ /**
16
+ * Classify packages by target
17
+ * - node/browser/neutral: buildPackages (JS + dts)
18
+ * - server: serverPackages (JS build, no dts)
19
+ * - client: clientPackages (Vite production build, no dts)
20
+ * - scripts: excluded
21
+ */
22
+ export function classifyPackages(packages, targets) {
23
+ const buildPackages = [];
24
+ const serverPackages = [];
25
+ const clientPackages = [];
26
+ for (const [name, config] of Object.entries(packages)) {
27
+ if (config == null)
28
+ continue;
29
+ if (config.target === "scripts")
30
+ continue;
31
+ // Include only specified packages if targets is specified
32
+ if (targets.length > 0 && !targets.includes(name))
33
+ continue;
34
+ if (config.target === "client") {
35
+ clientPackages.push({ name, config });
36
+ }
37
+ else if (config.target === "server") {
38
+ serverPackages.push({ name, config });
39
+ }
40
+ else {
41
+ buildPackages.push({ name, config });
42
+ }
27
43
  }
28
- }
29
- return { buildPackages, clientPackages, serverPackages };
44
+ return { buildPackages, serverPackages, clientPackages };
30
45
  }
46
+ /**
47
+ * Delete dist folders
48
+ */
31
49
  async function cleanDistFolders(cwd, packageNames) {
32
- await Promise.all(packageNames.map((name) => fsx.rm(path.join(cwd, "packages", name, "dist"))));
50
+ await Promise.all(packageNames.map((name) => fsx.rm(path.join(cwd, "packages", name, "dist"))));
33
51
  }
34
- class BuildOrchestrator {
35
- _cwd;
36
- _options;
37
- _logger = consola.withTag("sd:cli:build");
38
- _sdConfig;
39
- _classified;
40
- _allPackageNames = [];
41
- _baseEnv;
42
- constructor(options) {
43
- this._cwd = process.cwd();
44
- this._options = options;
45
- }
46
- /**
47
- * Initialize Orchestrator
48
- * - Load sd.config.ts
49
- * - Configure replaceDeps
50
- * - Classify packages
51
- * - Prepare environment variables
52
- */
53
- async initialize() {
54
- this._logger.debug("build started", { targets: this._options.targets });
55
- try {
56
- this._sdConfig = await loadSdConfig({
57
- cwd: this._cwd,
58
- dev: false,
59
- options: this._options.options
60
- });
61
- this._logger.debug("sd.config.ts loaded");
62
- } catch (err) {
63
- this._logger.error(`sd.config.ts load failed: ${err instanceof Error ? err.message : err}`);
64
- process.exitCode = 1;
65
- throw err;
66
- }
67
- const version = await getVersion(this._cwd);
68
- this._baseEnv = { VER: version, DEV: "false" };
69
- this._classified = classifyPackages(this._sdConfig.packages, this._options.targets);
70
- this._allPackageNames = [
71
- ...this._classified.buildPackages.map((p) => p.name),
72
- ...this._classified.clientPackages.map((p) => p.name),
73
- ...this._classified.serverPackages.map((p) => p.name)
74
- ];
75
- if (this._allPackageNames.length === 0) {
76
- process.stdout.write("\u2714 No packages to build.\n");
77
- return;
52
+ //#endregion
53
+ //#region BuildOrchestrator
54
+ /**
55
+ * Orchestrator for coordinating production builds
56
+ *
57
+ * Classifies packages based on sd.config.ts and executes builds.
58
+ * - Clean dist folders (clean build)
59
+ * - Run lint + build concurrently
60
+ * - node/browser/neutral targets: esbuild JS build + dts generation
61
+ * - server targets: esbuild JS build
62
+ * - client targets: Vite production build
63
+ */
64
+ export class BuildOrchestrator {
65
+ _cwd;
66
+ _options;
67
+ _logger = consola.withTag("sd:cli:build");
68
+ _sdConfig;
69
+ _classified;
70
+ _allPackageNames = [];
71
+ _baseEnv;
72
+ constructor(options) {
73
+ this._cwd = process.cwd();
74
+ this._options = options;
78
75
  }
79
- this._logger.debug("package classification complete", {
80
- buildPackages: this._classified.buildPackages.map((p) => p.name),
81
- clientPackages: this._classified.clientPackages.map((p) => p.name),
82
- serverPackages: this._classified.serverPackages.map((p) => p.name)
83
- });
84
- }
85
- /**
86
- * Execute build
87
- * - Clean
88
- * - Lint + Build (concurrent)
89
- * - Output results
90
- *
91
- * @returns whether errors occurred (true: errors present)
92
- */
93
- async start() {
94
- if (this._allPackageNames.length === 0) {
95
- return false;
96
- }
97
- const classified = this._classified;
98
- const baseEnv = this._baseEnv;
99
- const results = [];
100
- const state = { hasError: false };
101
- const libraryWorkerPath = import.meta.resolve("../workers/library.worker");
102
- const serverWorkerPath = import.meta.resolve("../workers/server.worker");
103
- const clientWorkerPath = import.meta.resolve("../workers/client.worker");
104
- const dtsWorkerPath = import.meta.resolve("../workers/dts.worker");
105
- const lintWorkerPath = import.meta.resolve("../workers/lint.worker");
106
- const fileCache = /* @__PURE__ */ new Map();
107
- const formatHost = {
108
- getCanonicalFileName: (f) => f,
109
- getCurrentDirectory: () => this._cwd,
110
- getNewLine: () => ts.sys.newLine
111
- };
112
- const lintOptions = {
113
- targets: this._allPackageNames.map((name) => `packages/${name}`),
114
- fix: false,
115
- timing: false
116
- };
117
- this._logger.start("Clean");
118
- await cleanDistFolders(this._cwd, this._allPackageNames);
119
- this._logger.success("Clean");
120
- this._logger.start("Lint + Build");
121
- const buildTasks = [];
122
- for (const { name, config } of classified.buildPackages) {
123
- const pkgDir = path.join(this._cwd, "packages", name);
124
- const env = config.target === "node" ? "node" : "browser";
125
- buildTasks.push(async () => {
126
- this._logger.debug(`${name} (${config.target}) started`);
127
- const libraryWorker = Worker.create(libraryWorkerPath);
128
- const dtsWorker = Worker.create(dtsWorkerPath);
76
+ /**
77
+ * Initialize Orchestrator
78
+ * - Load sd.config.ts
79
+ * - Configure replaceDeps
80
+ * - Classify packages
81
+ * - Prepare environment variables
82
+ */
83
+ async initialize() {
84
+ this._logger.debug("build started", { targets: this._options.targets });
85
+ // Load sd.config.ts
129
86
  try {
130
- const [buildResult, dtsResult] = await Promise.all([
131
- // JS build
132
- libraryWorker.build({ name, config, cwd: this._cwd, pkgDir }),
133
- // DTS generation
134
- dtsWorker.build({ name, cwd: this._cwd, pkgDir, env, emit: true })
135
- ]);
136
- results.push({
137
- name,
138
- target: config.target,
139
- type: "js",
140
- success: buildResult.success,
141
- errors: buildResult.errors,
142
- warnings: buildResult.warnings
143
- });
144
- if (!buildResult.success) state.hasError = true;
145
- const diagnostics = dtsResult.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
146
- results.push({
147
- name,
148
- target: config.target,
149
- type: "dts",
150
- success: dtsResult.success,
151
- errors: dtsResult.errors,
152
- diagnostics
153
- });
154
- if (!dtsResult.success) state.hasError = true;
155
- } finally {
156
- await Promise.all([libraryWorker.terminate(), dtsWorker.terminate()]);
87
+ this._sdConfig = await loadSdConfig({
88
+ cwd: this._cwd,
89
+ dev: false,
90
+ options: this._options.options,
91
+ });
92
+ this._logger.debug("sd.config.ts loaded");
157
93
  }
158
- if (config.copySrc != null && config.copySrc.length > 0) {
159
- await copySrcFiles(pkgDir, config.copySrc);
94
+ catch (err) {
95
+ this._logger.error(`sd.config.ts load failed: ${err instanceof Error ? err.message : err}`);
96
+ process.exitCode = 1;
97
+ throw err;
160
98
  }
161
- this._logger.debug(`${name} (${config.target}) completed`);
162
- });
99
+ // Validate targets
100
+ validateTargets(this._options.targets, this._sdConfig.packages);
101
+ // Prepare VER and DEV environment variables
102
+ const version = await getVersion(this._cwd);
103
+ this._baseEnv = { VER: version, DEV: "false" };
104
+ // Classify packages
105
+ this._classified = classifyPackages(this._sdConfig.packages, this._options.targets);
106
+ this._allPackageNames = [
107
+ ...this._classified.buildPackages.map((p) => p.name),
108
+ ...this._classified.serverPackages.map((p) => p.name),
109
+ ...this._classified.clientPackages.map((p) => p.name),
110
+ ];
111
+ if (this._allPackageNames.length === 0) {
112
+ process.stdout.write("✔ No packages to build.\n");
113
+ return;
114
+ }
115
+ this._logger.debug("package classification complete", {
116
+ buildPackages: this._classified.buildPackages.map((p) => p.name),
117
+ serverPackages: this._classified.serverPackages.map((p) => p.name),
118
+ clientPackages: this._classified.clientPackages.map((p) => p.name),
119
+ });
163
120
  }
164
- for (const { name, config } of classified.clientPackages) {
165
- const pkgDir = path.join(this._cwd, "packages", name);
166
- buildTasks.push(async () => {
167
- this._logger.debug(`${name} (client) started`);
168
- const clientWorker = Worker.create(clientWorkerPath);
169
- const dtsWorker = Worker.create(dtsWorkerPath);
170
- try {
171
- const clientConfig = {
172
- ...config,
173
- env: { ...baseEnv, ...config.env }
174
- };
175
- const [clientResult, dtsResult] = await Promise.all([
176
- // Vite production build
177
- clientWorker.build({ name, config: clientConfig, cwd: this._cwd, pkgDir }),
178
- // typecheck (without dts)
179
- dtsWorker.build({
180
- name,
181
- cwd: this._cwd,
182
- pkgDir,
183
- env: "browser",
184
- emit: false
185
- })
186
- ]);
187
- results.push({
188
- name,
189
- target: "client",
190
- type: "vite",
191
- success: clientResult.success,
192
- errors: clientResult.errors
193
- });
194
- if (!clientResult.success) state.hasError = true;
195
- const diagnostics = dtsResult.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
196
- results.push({
197
- name,
198
- target: "client",
199
- type: "dts",
200
- success: dtsResult.success,
201
- errors: dtsResult.errors,
202
- diagnostics
203
- });
204
- if (!dtsResult.success) state.hasError = true;
205
- } finally {
206
- await Promise.all([clientWorker.terminate(), dtsWorker.terminate()]);
121
+ /**
122
+ * Execute build
123
+ * - Clean
124
+ * - Lint + Build (concurrent)
125
+ * - Output results
126
+ *
127
+ * @returns whether errors occurred (true: errors present)
128
+ */
129
+ async start() {
130
+ if (this._allPackageNames.length === 0) {
131
+ return false;
207
132
  }
208
- if (config.capacitor != null) {
209
- const outPath = path.join(pkgDir, "dist");
210
- try {
211
- const cap = await Capacitor.create(pkgDir, config.capacitor, config.exclude);
212
- await cap.initialize();
213
- await cap.build(outPath);
214
- results.push({
215
- name,
216
- target: "client",
217
- type: "capacitor",
218
- success: true
133
+ const classified = this._classified;
134
+ const baseEnv = this._baseEnv;
135
+ // Collect results
136
+ const results = [];
137
+ // Track errors (wrapped in object to allow mutation tracking in callbacks)
138
+ const state = { hasError: false };
139
+ // Worker path (lint only — library/server are handled by BuildEngine)
140
+ const lintWorkerPath = import.meta.resolve("../workers/lint.worker");
141
+ // File cache (for diagnostics output)
142
+ const fileCache = new Map();
143
+ // formatHost (for diagnostics output)
144
+ const formatHost = {
145
+ getCanonicalFileName: (f) => f,
146
+ getCurrentDirectory: () => this._cwd,
147
+ getNewLine: () => ts.sys.newLine,
148
+ };
149
+ // Lint options (target all packages)
150
+ const lintOptions = {
151
+ targets: this._allPackageNames.map((name) => `packages/${name}`),
152
+ fix: false,
153
+ timing: false,
154
+ };
155
+ // Phase 1: Clean (must complete before build writes to dist)
156
+ this._logger.start("Clean");
157
+ await cleanDistFolders(this._cwd, this._allPackageNames);
158
+ this._logger.success("Clean");
159
+ // Phase 2: Lint + Build (concurrent)
160
+ this._logger.start("Lint + Build");
161
+ // Create list of build tasks
162
+ const buildTasks = [];
163
+ // buildPackages: JS build + dts generation via BuildEngine
164
+ for (const { name, config } of classified.buildPackages) {
165
+ const pkgDir = path.join(this._cwd, "packages", name);
166
+ buildTasks.push(async () => {
167
+ this._logger.debug(`${name} (${config.target}) started`);
168
+ const engine = createBuildEngine({ name, dir: pkgDir, config }, { cwd: this._cwd });
169
+ try {
170
+ const engineResult = await engine.run({ js: true, dts: true });
171
+ // Handle JS build results
172
+ results.push({
173
+ name,
174
+ target: config.target,
175
+ type: "js",
176
+ success: engineResult.js.success,
177
+ errors: engineResult.js.errors.length > 0 ? engineResult.js.errors : undefined,
178
+ warnings: engineResult.js.warnings.length > 0 ? engineResult.js.warnings : undefined,
179
+ });
180
+ if (!engineResult.js.success)
181
+ state.hasError = true;
182
+ // Handle DTS results
183
+ const diagnostics = engineResult.dts.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
184
+ results.push({
185
+ name,
186
+ target: config.target,
187
+ type: "dts",
188
+ success: engineResult.dts.success,
189
+ errors: engineResult.dts.errors.length > 0 ? engineResult.dts.errors : undefined,
190
+ diagnostics,
191
+ });
192
+ if (!engineResult.dts.success)
193
+ state.hasError = true;
194
+ }
195
+ finally {
196
+ await engine.stop();
197
+ }
198
+ // Copy copySrc files
199
+ if (config.copySrc != null && config.copySrc.length > 0) {
200
+ await copySrcFiles(pkgDir, config.copySrc);
201
+ }
202
+ this._logger.debug(`${name} (${config.target}) completed`);
219
203
  });
220
- } catch (err) {
221
- results.push({
222
- name,
223
- target: "client",
224
- type: "capacitor",
225
- success: false,
226
- errors: [errNs.message(err)]
227
- });
228
- state.hasError = true;
229
- }
230
204
  }
231
- if (config.electron != null) {
232
- const outPath = path.join(pkgDir, "dist");
233
- try {
234
- const electron = await Electron.create(pkgDir, config.electron, config.exclude);
235
- await electron.initialize();
236
- await electron.build(outPath);
237
- results.push({
238
- name,
239
- target: "client",
240
- type: "electron",
241
- success: true
205
+ // serverPackages: JS build + typecheck via BuildEngine
206
+ for (const { name, config } of classified.serverPackages) {
207
+ const pkgDir = path.join(this._cwd, "packages", name);
208
+ buildTasks.push(async () => {
209
+ this._logger.debug(`${name} (server) started`);
210
+ const engine = createBuildEngine({ name, dir: pkgDir, config: { ...config, env: { ...baseEnv, ...config.env } } }, { cwd: this._cwd });
211
+ try {
212
+ const engineResult = await engine.run({ js: true, dts: false });
213
+ // Handle JS build results
214
+ results.push({
215
+ name,
216
+ target: "server",
217
+ type: "js",
218
+ success: engineResult.js.success,
219
+ errors: engineResult.js.errors.length > 0 ? engineResult.js.errors : undefined,
220
+ warnings: engineResult.js.warnings.length > 0 ? engineResult.js.warnings : undefined,
221
+ });
222
+ if (!engineResult.js.success)
223
+ state.hasError = true;
224
+ // Handle DTS/typecheck results
225
+ const diagnostics = engineResult.dts.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
226
+ results.push({
227
+ name,
228
+ target: "server",
229
+ type: "dts",
230
+ success: engineResult.dts.success,
231
+ errors: engineResult.dts.errors.length > 0 ? engineResult.dts.errors : undefined,
232
+ diagnostics,
233
+ });
234
+ if (!engineResult.dts.success)
235
+ state.hasError = true;
236
+ }
237
+ finally {
238
+ await engine.stop();
239
+ }
240
+ this._logger.debug(`${name} (server) completed`);
242
241
  });
243
- } catch (err) {
244
- results.push({
245
- name,
246
- target: "client",
247
- type: "electron",
248
- success: false,
249
- errors: [errNs.message(err)]
242
+ }
243
+ // clientPackages: Vite production build via ViteEngine (no dts, no env injection)
244
+ for (const { name, config } of classified.clientPackages) {
245
+ const pkgDir = path.join(this._cwd, "packages", name);
246
+ buildTasks.push(async () => {
247
+ this._logger.debug(`${name} (client) started`);
248
+ const engine = createBuildEngine({ name, dir: pkgDir, config }, { cwd: this._cwd });
249
+ try {
250
+ const engineResult = await engine.run({ js: true, dts: false });
251
+ // Handle JS build results
252
+ results.push({
253
+ name,
254
+ target: "client",
255
+ type: "js",
256
+ success: engineResult.js.success,
257
+ errors: engineResult.js.errors.length > 0 ? engineResult.js.errors : undefined,
258
+ warnings: engineResult.js.warnings.length > 0 ? engineResult.js.warnings : undefined,
259
+ });
260
+ if (!engineResult.js.success)
261
+ state.hasError = true;
262
+ // Handle DTS results (always success for client)
263
+ const diagnostics = engineResult.dts.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
264
+ results.push({
265
+ name,
266
+ target: "client",
267
+ type: "dts",
268
+ success: engineResult.dts.success,
269
+ errors: engineResult.dts.errors.length > 0 ? engineResult.dts.errors : undefined,
270
+ diagnostics,
271
+ });
272
+ if (!engineResult.dts.success)
273
+ state.hasError = true;
274
+ }
275
+ finally {
276
+ await engine.stop();
277
+ }
278
+ this._logger.debug(`${name} (client) completed`);
250
279
  });
251
- state.hasError = true;
252
- }
253
280
  }
254
- this._logger.debug(`${name} (client) completed`);
255
- });
256
- }
257
- for (const { name, config } of classified.serverPackages) {
258
- const pkgDir = path.join(this._cwd, "packages", name);
259
- buildTasks.push(async () => {
260
- this._logger.debug(`${name} (server) started`);
261
- const serverWorker = Worker.create(serverWorkerPath);
262
- try {
263
- const buildResult = await serverWorker.build({
264
- name,
265
- cwd: this._cwd,
266
- pkgDir,
267
- env: { ...baseEnv, ...config.env },
268
- configs: config.configs,
269
- externals: config.externals,
270
- pm2: config.pm2,
271
- packageManager: config.packageManager
272
- });
273
- results.push({
274
- name,
275
- target: "server",
276
- type: "js",
277
- success: buildResult.success,
278
- errors: buildResult.errors,
279
- warnings: buildResult.warnings
280
- });
281
- if (!buildResult.success) state.hasError = true;
282
- } finally {
283
- await serverWorker.terminate();
281
+ // Run Lint + all builds in parallel
282
+ // Lint runs independently; build tasks use concurrency limit (PERF-001)
283
+ const lintWorker = Worker.create(lintWorkerPath);
284
+ const lintTask = async () => {
285
+ try {
286
+ const result = await lintWorker.lint(lintOptions);
287
+ if (!result.success)
288
+ state.hasError = true;
289
+ }
290
+ finally {
291
+ await lintWorker.terminate();
292
+ }
293
+ };
294
+ const buildPromise = runWithConcurrency(buildTasks, getMaxConcurrency());
295
+ await Promise.allSettled([lintTask(), buildPromise]);
296
+ this._logger.success("Lint + Build");
297
+ // Output results
298
+ const allDiagnostics = [];
299
+ for (const result of results) {
300
+ const typeLabel = result.type === "dts" ? "dts" : result.target;
301
+ // Output warnings
302
+ if (result.warnings != null) {
303
+ this._logger.warn(formatBuildMessages(result.name, typeLabel, result.warnings));
304
+ }
305
+ // Output errors
306
+ if (!result.success) {
307
+ if (result.errors != null) {
308
+ this._logger.error(formatBuildMessages(result.name, typeLabel, result.errors));
309
+ }
310
+ else {
311
+ this._logger.error(`${result.name} (${typeLabel})`);
312
+ }
313
+ }
314
+ if (result.diagnostics != null) {
315
+ allDiagnostics.push(...result.diagnostics);
316
+ }
284
317
  }
285
- this._logger.debug(`${name} (server) completed`);
286
- });
287
- }
288
- const lintWorker = Worker.create(lintWorkerPath);
289
- const lintTask = async () => {
290
- try {
291
- const result = await lintWorker.lint(lintOptions);
292
- if (!result.success) state.hasError = true;
293
- } finally {
294
- await lintWorker.terminate();
295
- }
296
- };
297
- await Promise.allSettled([lintTask(), ...buildTasks.map((task) => task())]);
298
- this._logger.success("Lint + Build");
299
- const allDiagnostics = [];
300
- for (const result of results) {
301
- const typeLabel = result.type === "dts" ? "dts" : result.target;
302
- if (result.warnings != null) {
303
- this._logger.warn(formatBuildMessages(result.name, typeLabel, result.warnings));
304
- }
305
- if (!result.success) {
306
- if (result.errors != null) {
307
- this._logger.error(formatBuildMessages(result.name, typeLabel, result.errors));
308
- } else {
309
- this._logger.error(`${result.name} (${typeLabel})`);
318
+ // Output diagnostics (deduplicated)
319
+ if (allDiagnostics.length > 0) {
320
+ const uniqueDiagnostics = ts.sortAndDeduplicateDiagnostics(allDiagnostics);
321
+ const message = ts.formatDiagnosticsWithColorAndContext(uniqueDiagnostics, formatHost);
322
+ process.stdout.write(message);
310
323
  }
311
- }
312
- if (result.diagnostics != null) {
313
- allDiagnostics.push(...result.diagnostics);
314
- }
315
- }
316
- if (allDiagnostics.length > 0) {
317
- const uniqueDiagnostics = ts.sortAndDeduplicateDiagnostics(allDiagnostics);
318
- const message = ts.formatDiagnosticsWithColorAndContext(uniqueDiagnostics, formatHost);
319
- process.stdout.write(message);
324
+ // Output result log
325
+ if (state.hasError) {
326
+ this._logger.error("Build failed");
327
+ }
328
+ else {
329
+ this._logger.info("Build completed");
330
+ }
331
+ return state.hasError;
320
332
  }
321
- if (state.hasError) {
322
- this._logger.error("Build failed");
323
- } else {
324
- this._logger.info("Build completed");
333
+ /**
334
+ * Shutdown Orchestrator (no resources to clean up currently)
335
+ */
336
+ async shutdown() {
337
+ // Production builds are one-time operations, so there are no resources to clean up at shutdown
338
+ // Workers are cleaned up with terminate() within each build task
339
+ await Promise.resolve();
325
340
  }
326
- return state.hasError;
327
- }
328
- /**
329
- * Shutdown Orchestrator (no resources to clean up currently)
330
- */
331
- async shutdown() {
332
- await Promise.resolve();
333
- }
334
341
  }
335
- export {
336
- BuildOrchestrator
337
- };
338
- //# sourceMappingURL=BuildOrchestrator.js.map
342
+ //#endregion
343
+ //# sourceMappingURL=BuildOrchestrator.js.map