@simplysm/sd-cli 13.0.100 → 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
package/src/index.ts CHANGED
@@ -1,5 +1,2 @@
1
1
  // Config
2
2
  export * from "./sd-config.types";
3
-
4
- // Vite
5
- export * from "./utils/vite-config";
@@ -4,7 +4,7 @@
4
4
  export interface BuildResult {
5
5
  name: string;
6
6
  target: string;
7
- type: "build" | "dts" | "server" | "capacitor";
7
+ type: "build" | "dts" | "server";
8
8
  status: "pending" | "building" | "success" | "error" | "running";
9
9
  message?: string;
10
10
  port?: number;
@@ -1,7 +1,6 @@
1
1
  import path from "path";
2
2
  import ts from "typescript";
3
- import { Worker, type WorkerProxy, fsx } from "@simplysm/core-node";
4
- import { err as errNs } from "@simplysm/core-common";
3
+ import { Worker, fsx } from "@simplysm/core-node";
5
4
  import { consola } from "consola";
6
5
  import type {
7
6
  SdConfig,
@@ -11,18 +10,14 @@ import type {
11
10
  } from "../sd-config.types";
12
11
  import { loadSdConfig } from "../utils/sd-config";
13
12
  import { getVersion } from "../utils/build-env";
14
- import type { TypecheckEnv } from "../utils/tsconfig";
15
13
  import { deserializeDiagnostic } from "../utils/typecheck-serialization";
16
14
  import type { LintOptions } from "../commands/lint";
17
15
  import type * as LintWorkerModule from "../workers/lint.worker";
18
- import type * as LibraryWorkerModule from "../workers/library.worker";
19
- import type * as ServerWorkerModule from "../workers/server.worker";
20
- import type * as ClientWorkerModule from "../workers/client.worker";
21
- import type * as DtsWorkerModule from "../workers/dts.worker";
22
- import { Capacitor } from "../capacitor/capacitor";
23
- import { Electron } from "../electron/electron";
24
16
  import { copySrcFiles } from "../utils/copy-src";
25
17
  import { formatBuildMessages } from "../utils/output-utils";
18
+ import { createBuildEngine } from "../engines/index";
19
+ import { runWithConcurrency, getMaxConcurrency } from "../utils/concurrency";
20
+ import { validateTargets } from "../utils/package-utils";
26
21
 
27
22
  //#region Types
28
23
 
@@ -42,7 +37,7 @@ export interface BuildOrchestratorOptions {
42
37
  interface BuildStepResult {
43
38
  name: string;
44
39
  target: string;
45
- type: "js" | "dts" | "vite" | "capacitor" | "electron";
40
+ type: "js" | "dts";
46
41
  success: boolean;
47
42
  errors?: string[];
48
43
  warnings?: string[];
@@ -55,10 +50,10 @@ interface BuildStepResult {
55
50
  interface ClassifiedPackages {
56
51
  /** node/browser/neutral target (JS + dts) */
57
52
  buildPackages: Array<{ name: string; config: SdBuildPackageConfig }>;
58
- /** client target (Vite build + typecheck) */
59
- clientPackages: Array<{ name: string; config: SdClientPackageConfig }>;
60
53
  /** server target (JS build, no dts) */
61
54
  serverPackages: Array<{ name: string; config: SdServerPackageConfig }>;
55
+ /** client target (Vite production build, no dts) */
56
+ clientPackages: Array<{ name: string; config: SdClientPackageConfig }>;
62
57
  }
63
58
 
64
59
  //#endregion
@@ -68,11 +63,11 @@ interface ClassifiedPackages {
68
63
  /**
69
64
  * Classify packages by target
70
65
  * - node/browser/neutral: buildPackages (JS + dts)
71
- * - client: clientPackages (Vite build + typecheck)
72
66
  * - server: serverPackages (JS build, no dts)
67
+ * - client: clientPackages (Vite production build, no dts)
73
68
  * - scripts: excluded
74
69
  */
75
- function classifyPackages(
70
+ export function classifyPackages(
76
71
  packages: Record<
77
72
  string,
78
73
  | SdBuildPackageConfig
@@ -84,8 +79,8 @@ function classifyPackages(
84
79
  targets: string[],
85
80
  ): ClassifiedPackages {
86
81
  const buildPackages: ClassifiedPackages["buildPackages"] = [];
87
- const clientPackages: ClassifiedPackages["clientPackages"] = [];
88
82
  const serverPackages: ClassifiedPackages["serverPackages"] = [];
83
+ const clientPackages: ClassifiedPackages["clientPackages"] = [];
89
84
 
90
85
  for (const [name, config] of Object.entries(packages)) {
91
86
  if (config == null) continue;
@@ -103,7 +98,7 @@ function classifyPackages(
103
98
  }
104
99
  }
105
100
 
106
- return { buildPackages, clientPackages, serverPackages };
101
+ return { buildPackages, serverPackages, clientPackages };
107
102
  }
108
103
 
109
104
  /**
@@ -124,8 +119,8 @@ async function cleanDistFolders(cwd: string, packageNames: string[]): Promise<vo
124
119
  * - Clean dist folders (clean build)
125
120
  * - Run lint + build concurrently
126
121
  * - node/browser/neutral targets: esbuild JS build + dts generation
127
- * - client targets: Vite production build + typecheck + Capacitor/Electron builds
128
122
  * - server targets: esbuild JS build
123
+ * - client targets: Vite production build
129
124
  */
130
125
  export class BuildOrchestrator {
131
126
  private readonly _cwd: string;
@@ -166,6 +161,9 @@ export class BuildOrchestrator {
166
161
  throw err;
167
162
  }
168
163
 
164
+ // Validate targets
165
+ validateTargets(this._options.targets, this._sdConfig.packages);
166
+
169
167
  // Prepare VER and DEV environment variables
170
168
  const version = await getVersion(this._cwd);
171
169
  this._baseEnv = { VER: version, DEV: "false" };
@@ -174,8 +172,8 @@ export class BuildOrchestrator {
174
172
  this._classified = classifyPackages(this._sdConfig.packages, this._options.targets);
175
173
  this._allPackageNames = [
176
174
  ...this._classified.buildPackages.map((p) => p.name),
177
- ...this._classified.clientPackages.map((p) => p.name),
178
175
  ...this._classified.serverPackages.map((p) => p.name),
176
+ ...this._classified.clientPackages.map((p) => p.name),
179
177
  ];
180
178
 
181
179
  if (this._allPackageNames.length === 0) {
@@ -185,8 +183,8 @@ export class BuildOrchestrator {
185
183
 
186
184
  this._logger.debug("package classification complete", {
187
185
  buildPackages: this._classified.buildPackages.map((p) => p.name),
188
- clientPackages: this._classified.clientPackages.map((p) => p.name),
189
186
  serverPackages: this._classified.serverPackages.map((p) => p.name),
187
+ clientPackages: this._classified.clientPackages.map((p) => p.name),
190
188
  });
191
189
  }
192
190
 
@@ -211,11 +209,7 @@ export class BuildOrchestrator {
211
209
  // Track errors (wrapped in object to allow mutation tracking in callbacks)
212
210
  const state = { hasError: false };
213
211
 
214
- // Worker paths
215
- const libraryWorkerPath = import.meta.resolve("../workers/library.worker");
216
- const serverWorkerPath = import.meta.resolve("../workers/server.worker");
217
- const clientWorkerPath = import.meta.resolve("../workers/client.worker");
218
- const dtsWorkerPath = import.meta.resolve("../workers/dts.worker");
212
+ // Worker path (lint only — library/server are handled by BuildEngine)
219
213
  const lintWorkerPath = import.meta.resolve("../workers/lint.worker");
220
214
 
221
215
  // File cache (for diagnostics output)
@@ -246,51 +240,44 @@ export class BuildOrchestrator {
246
240
  // Create list of build tasks
247
241
  const buildTasks: Array<() => Promise<void>> = [];
248
242
 
249
- // buildPackages: JS build + dts generation
243
+ // buildPackages: JS build + dts generation via BuildEngine
250
244
  for (const { name, config } of classified.buildPackages) {
251
245
  const pkgDir = path.join(this._cwd, "packages", name);
252
- const env: TypecheckEnv = config.target === "node" ? "node" : "browser";
253
246
 
254
247
  buildTasks.push(async () => {
255
248
  this._logger.debug(`${name} (${config.target}) started`);
256
- // Run JS build and DTS generation in parallel
257
- const libraryWorker: WorkerProxy<typeof LibraryWorkerModule> =
258
- Worker.create<typeof LibraryWorkerModule>(libraryWorkerPath);
259
- const dtsWorker: WorkerProxy<typeof DtsWorkerModule> =
260
- Worker.create<typeof DtsWorkerModule>(dtsWorkerPath);
249
+ const engine = createBuildEngine(
250
+ { name, dir: pkgDir, config },
251
+ { cwd: this._cwd },
252
+ );
261
253
 
262
254
  try {
263
- const [buildResult, dtsResult] = await Promise.all([
264
- // JS build
265
- libraryWorker.build({ name, config, cwd: this._cwd, pkgDir }),
266
- // DTS generation
267
- dtsWorker.build({ name, cwd: this._cwd, pkgDir, env, emit: true }),
268
- ]);
255
+ const engineResult = await engine.run({ js: true, dts: true });
269
256
 
270
257
  // Handle JS build results
271
258
  results.push({
272
259
  name,
273
260
  target: config.target,
274
261
  type: "js",
275
- success: buildResult.success,
276
- errors: buildResult.errors,
277
- warnings: buildResult.warnings,
262
+ success: engineResult.js.success,
263
+ errors: engineResult.js.errors.length > 0 ? engineResult.js.errors : undefined,
264
+ warnings: engineResult.js.warnings.length > 0 ? engineResult.js.warnings : undefined,
278
265
  });
279
- if (!buildResult.success) state.hasError = true;
266
+ if (!engineResult.js.success) state.hasError = true;
280
267
 
281
268
  // Handle DTS results
282
- const diagnostics = dtsResult.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
269
+ const diagnostics = engineResult.dts.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
283
270
  results.push({
284
271
  name,
285
272
  target: config.target,
286
273
  type: "dts",
287
- success: dtsResult.success,
288
- errors: dtsResult.errors,
274
+ success: engineResult.dts.success,
275
+ errors: engineResult.dts.errors.length > 0 ? engineResult.dts.errors : undefined,
289
276
  diagnostics,
290
277
  });
291
- if (!dtsResult.success) state.hasError = true;
278
+ if (!engineResult.dts.success) state.hasError = true;
292
279
  } finally {
293
- await Promise.all([libraryWorker.terminate(), dtsWorker.terminate()]);
280
+ await engine.stop();
294
281
  }
295
282
 
296
283
  // Copy copySrc files
@@ -301,152 +288,94 @@ export class BuildOrchestrator {
301
288
  });
302
289
  }
303
290
 
304
- // clientPackages: Vite build + typecheck + Capacitor build
305
- for (const { name, config } of classified.clientPackages) {
291
+ // serverPackages: JS build + typecheck via BuildEngine
292
+ for (const { name, config } of classified.serverPackages) {
306
293
  const pkgDir = path.join(this._cwd, "packages", name);
307
294
 
308
295
  buildTasks.push(async () => {
309
- this._logger.debug(`${name} (client) started`);
310
- // Run Vite build and typecheck in parallel
311
- const clientWorker: WorkerProxy<typeof ClientWorkerModule> =
312
- Worker.create<typeof ClientWorkerModule>(clientWorkerPath);
313
- const dtsWorker: WorkerProxy<typeof DtsWorkerModule> =
314
- Worker.create<typeof DtsWorkerModule>(dtsWorkerPath);
296
+ this._logger.debug(`${name} (server) started`);
297
+ const engine = createBuildEngine(
298
+ { name, dir: pkgDir, config: { ...config, env: { ...baseEnv, ...config.env } } },
299
+ { cwd: this._cwd },
300
+ );
315
301
 
316
302
  try {
317
- const clientConfig: SdClientPackageConfig = {
318
- ...config,
319
- env: { ...baseEnv, ...config.env },
320
- };
321
- const [clientResult, dtsResult] = await Promise.all([
322
- // Vite production build
323
- clientWorker.build({ name, config: clientConfig, cwd: this._cwd, pkgDir }),
324
- // typecheck (without dts)
325
- dtsWorker.build({
326
- name,
327
- cwd: this._cwd,
328
- pkgDir,
329
- env: "browser",
330
- emit: false,
331
- }),
332
- ]);
333
-
334
- // Handle Vite build results
303
+ const engineResult = await engine.run({ js: true, dts: false });
304
+
305
+ // Handle JS build results
335
306
  results.push({
336
307
  name,
337
- target: "client",
338
- type: "vite",
339
- success: clientResult.success,
340
- errors: clientResult.errors,
308
+ target: "server",
309
+ type: "js",
310
+ success: engineResult.js.success,
311
+ errors: engineResult.js.errors.length > 0 ? engineResult.js.errors : undefined,
312
+ warnings: engineResult.js.warnings.length > 0 ? engineResult.js.warnings : undefined,
341
313
  });
342
- if (!clientResult.success) state.hasError = true;
314
+ if (!engineResult.js.success) state.hasError = true;
343
315
 
344
- // Handle typecheck results
345
- const diagnostics = dtsResult.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
316
+ // Handle DTS/typecheck results
317
+ const diagnostics = engineResult.dts.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
346
318
  results.push({
347
319
  name,
348
- target: "client",
320
+ target: "server",
349
321
  type: "dts",
350
- success: dtsResult.success,
351
- errors: dtsResult.errors,
322
+ success: engineResult.dts.success,
323
+ errors: engineResult.dts.errors.length > 0 ? engineResult.dts.errors : undefined,
352
324
  diagnostics,
353
325
  });
354
- if (!dtsResult.success) state.hasError = true;
326
+ if (!engineResult.dts.success) state.hasError = true;
355
327
  } finally {
356
- await Promise.all([clientWorker.terminate(), dtsWorker.terminate()]);
357
- }
358
-
359
- // Capacitor build (only if configured)
360
- if (config.capacitor != null) {
361
- const outPath = path.join(pkgDir, "dist");
362
- try {
363
- const cap = await Capacitor.create(pkgDir, config.capacitor, config.exclude);
364
- await cap.initialize();
365
- await cap.build(outPath);
366
- results.push({
367
- name,
368
- target: "client",
369
- type: "capacitor",
370
- success: true,
371
- });
372
- } catch (err) {
373
- results.push({
374
- name,
375
- target: "client",
376
- type: "capacitor",
377
- success: false,
378
- errors: [errNs.message(err)],
379
- });
380
- state.hasError = true;
381
- }
382
- }
383
-
384
- // Electron build (only if configured)
385
- if (config.electron != null) {
386
- const outPath = path.join(pkgDir, "dist");
387
- try {
388
- const electron = await Electron.create(pkgDir, config.electron, config.exclude);
389
- await electron.initialize();
390
- await electron.build(outPath);
391
- results.push({
392
- name,
393
- target: "client",
394
- type: "electron",
395
- success: true,
396
- });
397
- } catch (err) {
398
- results.push({
399
- name,
400
- target: "client",
401
- type: "electron",
402
- success: false,
403
- errors: [errNs.message(err)],
404
- });
405
- state.hasError = true;
406
- }
328
+ await engine.stop();
407
329
  }
408
- this._logger.debug(`${name} (client) completed`);
330
+ this._logger.debug(`${name} (server) completed`);
409
331
  });
410
332
  }
411
333
 
412
- // serverPackages: JS build only (dts generation excluded)
413
- for (const { name, config } of classified.serverPackages) {
334
+ // clientPackages: Vite production build via ViteEngine (no dts, no env injection)
335
+ for (const { name, config } of classified.clientPackages) {
414
336
  const pkgDir = path.join(this._cwd, "packages", name);
415
337
 
416
338
  buildTasks.push(async () => {
417
- this._logger.debug(`${name} (server) started`);
418
- const serverWorker: WorkerProxy<typeof ServerWorkerModule> =
419
- Worker.create<typeof ServerWorkerModule>(serverWorkerPath);
339
+ this._logger.debug(`${name} (client) started`);
340
+ const engine = createBuildEngine(
341
+ { name, dir: pkgDir, config },
342
+ { cwd: this._cwd },
343
+ );
420
344
 
421
345
  try {
422
- const buildResult = await serverWorker.build({
346
+ const engineResult = await engine.run({ js: true, dts: false });
347
+
348
+ // Handle JS build results
349
+ results.push({
423
350
  name,
424
- cwd: this._cwd,
425
- pkgDir,
426
- env: { ...baseEnv, ...config.env },
427
- configs: config.configs,
428
- externals: config.externals,
429
- pm2: config.pm2,
430
- packageManager: config.packageManager,
351
+ target: "client",
352
+ type: "js",
353
+ success: engineResult.js.success,
354
+ errors: engineResult.js.errors.length > 0 ? engineResult.js.errors : undefined,
355
+ warnings: engineResult.js.warnings.length > 0 ? engineResult.js.warnings : undefined,
431
356
  });
357
+ if (!engineResult.js.success) state.hasError = true;
432
358
 
359
+ // Handle DTS results (always success for client)
360
+ const diagnostics = engineResult.dts.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
433
361
  results.push({
434
362
  name,
435
- target: "server",
436
- type: "js",
437
- success: buildResult.success,
438
- errors: buildResult.errors,
439
- warnings: buildResult.warnings,
363
+ target: "client",
364
+ type: "dts",
365
+ success: engineResult.dts.success,
366
+ errors: engineResult.dts.errors.length > 0 ? engineResult.dts.errors : undefined,
367
+ diagnostics,
440
368
  });
441
- if (!buildResult.success) state.hasError = true;
369
+ if (!engineResult.dts.success) state.hasError = true;
442
370
  } finally {
443
- await serverWorker.terminate();
371
+ await engine.stop();
444
372
  }
445
- this._logger.debug(`${name} (server) completed`);
373
+ this._logger.debug(`${name} (client) completed`);
446
374
  });
447
375
  }
448
376
 
449
377
  // Run Lint + all builds in parallel
378
+ // Lint runs independently; build tasks use concurrency limit (PERF-001)
450
379
  const lintWorker = Worker.create<typeof LintWorkerModule>(lintWorkerPath);
451
380
  const lintTask = async (): Promise<void> => {
452
381
  try {
@@ -456,7 +385,8 @@ export class BuildOrchestrator {
456
385
  await lintWorker.terminate();
457
386
  }
458
387
  };
459
- await Promise.allSettled([lintTask(), ...buildTasks.map((task) => task())]);
388
+ const buildPromise = runWithConcurrency(buildTasks, getMaxConcurrency());
389
+ await Promise.allSettled([lintTask(), buildPromise]);
460
390
  this._logger.success("Lint + Build");
461
391
 
462
392
  // Output results