@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
@@ -1,123 +1,128 @@
1
- import proxy from "@fastify/http-proxy";
2
1
  import { createWorker } from "@simplysm/core-node";
3
2
  import { err as errNs } from "@simplysm/core-common";
4
3
  import { consola } from "consola";
5
4
  import net from "net";
6
5
  import { pathToFileURL } from "url";
7
6
  import { registerCleanupHandlers, applyDebugLevel } from "../utils/worker-utils.js";
7
+ //#endregion
8
8
  applyDebugLevel();
9
9
  const logger = consola.withTag("sd:cli:server-runtime:worker");
10
+ /** Server instance (to be cleaned up) */
10
11
  let serverInstance;
12
+ /**
13
+ * Clean up resources
14
+ */
11
15
  async function cleanup() {
12
- const server = serverInstance;
13
- if (server != null) {
14
- await server.close();
15
- }
16
- serverInstance = void 0;
16
+ const server = serverInstance;
17
+ if (server != null) {
18
+ await server.close();
19
+ }
20
+ serverInstance = undefined;
17
21
  }
22
+ // Catch runtime errors that occur after server listen() and send them as a custom "error" event
23
+ // (Without this handler, the worker will crash but dev.ts's buildResolver won't be called, causing listr to hang)
18
24
  process.on("uncaughtException", (err) => {
19
- logger.error("Unhandled server runtime error", err);
20
- sender.send("error", {
21
- message: errNs.message(err)
22
- });
25
+ logger.error("Unhandled server runtime error", err);
26
+ sender.send("error", {
27
+ message: errNs.message(err),
28
+ });
23
29
  });
24
30
  process.on("unhandledRejection", (reason) => {
25
- logger.error("Unhandled server runtime promise rejection", reason);
26
- sender.send("error", {
27
- message: errNs.message(reason)
28
- });
31
+ logger.error("Unhandled server runtime promise rejection", reason);
32
+ sender.send("error", {
33
+ message: errNs.message(reason),
34
+ });
29
35
  });
30
36
  registerCleanupHandlers(cleanup, logger);
37
+ /**
38
+ * Check if a port is available for use
39
+ */
31
40
  function isPortAvailable(port) {
32
- return new Promise((resolve) => {
33
- const server = net.createServer();
34
- server.once("error", () => resolve(false));
35
- server.once("listening", () => {
36
- server.close(() => resolve(true));
41
+ return new Promise((resolve) => {
42
+ const server = net.createServer();
43
+ server.once("error", () => resolve(false));
44
+ server.once("listening", () => {
45
+ server.close(() => resolve(true));
46
+ });
47
+ server.listen(port, "0.0.0.0");
37
48
  });
38
- server.listen(port, "0.0.0.0");
39
- });
40
49
  }
50
+ /**
51
+ * Find and return an available port starting from the specified port
52
+ */
41
53
  async function findAvailablePort(startPort, maxRetries = 20) {
42
- for (let i = 0; i < maxRetries; i++) {
43
- const port = startPort + i;
44
- if (await isPortAvailable(port)) {
45
- return port;
54
+ for (let i = 0; i < maxRetries; i++) {
55
+ const port = startPort + i;
56
+ if (await isPortAvailable(port)) {
57
+ return port;
58
+ }
46
59
  }
47
- }
48
- throw new Error(
49
- `No available port found between ${startPort} and ${startPort + maxRetries - 1}.`
50
- );
60
+ throw new Error(`No available port found between ${startPort} and ${startPort + maxRetries - 1}.`);
51
61
  }
62
+ /**
63
+ * Start Server Runtime
64
+ * Import main.js, then listen
65
+ */
52
66
  async function start(info) {
53
- try {
54
- const startTime = performance.now();
55
- if (info.env != null) {
56
- for (const [key, value] of Object.entries(info.env)) {
57
- process.env[key] = value;
58
- }
59
- }
60
- logger.debug("[start] Importing main.js...");
61
- let stepStart = performance.now();
62
- const module = await import(pathToFileURL(info.mainJsPath).href);
63
- logger.debug(`[start] main.js imported (${Math.round(performance.now() - stepStart)}ms)`);
64
- const server = module.server;
65
- if (server == null) {
66
- throw new Error("main.js must export a server instance.");
67
+ try {
68
+ const startTime = performance.now();
69
+ // Inject environment variables into process.env before importing main.js
70
+ if (info.env != null) {
71
+ for (const [key, value] of Object.entries(info.env)) {
72
+ process.env[key] = value;
73
+ }
74
+ }
75
+ // Import main.js (must export a server instance)
76
+ logger.debug("[start] Importing main.js...");
77
+ let stepStart = performance.now();
78
+ const module = await import(pathToFileURL(info.mainJsPath).href);
79
+ logger.debug(`[start] main.js imported (${Math.round(performance.now() - stepStart)}ms)`);
80
+ const server = module.server;
81
+ if (server == null) {
82
+ throw new Error("main.js must export a server instance.");
83
+ }
84
+ // Save server instance (for cleanup)
85
+ serverInstance = server;
86
+ // Register client proxies (before listen)
87
+ if (info.clientPorts != null && Object.keys(info.clientPorts).length > 0) {
88
+ const { default: proxy } = await import("@fastify/http-proxy");
89
+ for (const [name, port] of Object.entries(info.clientPorts)) {
90
+ logger.debug(`[start] Registering proxy: /${name} -> http://127.0.0.1:${String(port)}`);
91
+ await server.fastify.register(proxy, {
92
+ prefix: `/${name}`,
93
+ upstream: `http://127.0.0.1:${port}`,
94
+ rewritePrefix: `/${name}`,
95
+ websocket: true,
96
+ });
97
+ }
98
+ }
99
+ // Find available port (auto-increment on port conflict)
100
+ logger.debug("[start] Finding available port...");
101
+ stepStart = performance.now();
102
+ const originalPort = server.options.port;
103
+ const availablePort = await findAvailablePort(originalPort);
104
+ if (availablePort !== originalPort) {
105
+ logger.info(`Port ${originalPort} in use, changing to ${availablePort}`);
106
+ server.options.port = availablePort;
107
+ }
108
+ logger.debug(`[start] Port ${String(availablePort)} available (${Math.round(performance.now() - stepStart)}ms)`);
109
+ // Start server
110
+ logger.debug("[start] Starting server listen...");
111
+ stepStart = performance.now();
112
+ await server.listen();
113
+ logger.debug(`[start] Server listening (${Math.round(performance.now() - stepStart)}ms)`);
114
+ logger.debug(`[start] Total runtime startup: ${Math.round(performance.now() - startTime)}ms`);
115
+ sender.send("serverReady", { port: server.options.port });
67
116
  }
68
- serverInstance = server;
69
- logger.debug("[start] Finding available port...");
70
- stepStart = performance.now();
71
- const originalPort = server.options.port;
72
- const availablePort = await findAvailablePort(originalPort);
73
- if (availablePort !== originalPort) {
74
- logger.info(`Port ${originalPort} in use, changing to ${availablePort}`);
75
- server.options.port = availablePort;
117
+ catch (err) {
118
+ logger.error("Server Runtime startup failed", err);
119
+ sender.send("error", {
120
+ message: errNs.message(err),
121
+ });
76
122
  }
77
- logger.debug(
78
- `[start] Port ${String(availablePort)} available (${Math.round(performance.now() - stepStart)}ms)`
79
- );
80
- const clientEntries = Object.entries(info.clientPorts);
81
- if (clientEntries.length > 0) {
82
- logger.debug(
83
- `[start] Configuring ${String(clientEntries.length)} Vite proxy(s)...`
84
- );
85
- stepStart = performance.now();
86
- }
87
- for (const [name, port] of clientEntries) {
88
- logger.debug(`[start] Registering proxy: /${name} -> http://127.0.0.1:${String(port)}`);
89
- await server.fastify.register(proxy, {
90
- prefix: `/${name}`,
91
- upstream: `http://127.0.0.1:${port}`,
92
- rewritePrefix: `/${name}`,
93
- websocket: true
94
- });
95
- }
96
- if (clientEntries.length > 0) {
97
- logger.debug(
98
- `[start] Proxies configured (${Math.round(performance.now() - stepStart)}ms)`
99
- );
100
- }
101
- logger.debug("[start] Starting server listen...");
102
- stepStart = performance.now();
103
- await server.listen();
104
- logger.debug(`[start] Server listening (${Math.round(performance.now() - stepStart)}ms)`);
105
- logger.debug(
106
- `[start] Total runtime startup: ${Math.round(performance.now() - startTime)}ms`
107
- );
108
- sender.send("serverReady", { port: server.options.port });
109
- } catch (err) {
110
- logger.error("Server Runtime startup failed", err);
111
- sender.send("error", {
112
- message: errNs.message(err)
113
- });
114
- }
115
123
  }
116
124
  const sender = createWorker({
117
- start
125
+ start,
118
126
  });
119
- var server_runtime_worker_default = sender;
120
- export {
121
- server_runtime_worker_default as default
122
- };
123
- //# sourceMappingURL=server-runtime.worker.js.map
127
+ export default sender;
128
+ //# sourceMappingURL=server-runtime.worker.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/workers/server-runtime.worker.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
1
+ {"version":3,"file":"server-runtime.worker.js","sourceRoot":"","sources":["..\\..\\src\\workers\\server-runtime.worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { BuildOutput } from "../engines/types";
2
+ export interface ViteBuildInfo {
3
+ name: string;
4
+ cwd: string;
5
+ pkgDir: string;
6
+ output: BuildOutput;
7
+ /** Vite dev server port (standalone clients with server: number) */
8
+ port?: number;
9
+ }
10
+ export interface ViteBuildResult {
11
+ js: {
12
+ success: boolean;
13
+ errors?: string[];
14
+ warnings?: string[];
15
+ };
16
+ dts: {
17
+ success: boolean;
18
+ errors?: string[];
19
+ diagnostics: never[];
20
+ };
21
+ }
22
+ export interface ViteCombinedBuildEvent {
23
+ js: {
24
+ success: boolean;
25
+ errors?: string[];
26
+ warnings?: string[];
27
+ };
28
+ dts: {
29
+ success: boolean;
30
+ errors?: string[];
31
+ };
32
+ }
33
+ export interface ViteBuildWorkerEvents extends Record<string, unknown> {
34
+ buildStart: Record<string, never>;
35
+ build: ViteCombinedBuildEvent;
36
+ error: {
37
+ message: string;
38
+ };
39
+ serverReady: {
40
+ port: number;
41
+ };
42
+ }
43
+ declare function build(info: ViteBuildInfo): Promise<ViteBuildResult>;
44
+ declare function startWatch(info: ViteBuildInfo): Promise<void>;
45
+ declare function stopWatch(): void;
46
+ declare const sender: {
47
+ send<TEventName extends string>(event: TEventName, data?: ViteBuildWorkerEvents[TEventName] | undefined): void;
48
+ __methods: {
49
+ build: typeof build;
50
+ startWatch: typeof startWatch;
51
+ stopWatch: typeof stopWatch;
52
+ };
53
+ __events: ViteBuildWorkerEvents;
54
+ };
55
+ export default sender;
56
+ //# sourceMappingURL=vite-build.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-build.worker.d.ts","sourceRoot":"","sources":["..\\..\\src\\workers\\vite-build.worker.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMpD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjE,GAAG,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC;CACpE;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjE,GAAG,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AA+DD,iBAAe,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAiDlE;AAcD,iBAAe,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE5D;AAED,iBAAS,SAAS,IAAI,IAAI,CAEzB;AAID,QAAA,MAAM,MAAM;;;eACD,OAAO,KAAK;oBAAc,OAAO,UAAU;mBAAa,OAAO,SAAS;;;CAEhD,CAAC;AACpC,eAAe,MAAM,CAAC"}
@@ -0,0 +1,167 @@
1
+ import path from "path";
2
+ import fs from "node:fs";
3
+ import { createWorker } from "@simplysm/core-node";
4
+ import { err as errNs } from "@simplysm/core-common";
5
+ import { consola } from "consola";
6
+ import { registerCleanupHandlers, applyDebugLevel } from "../utils/worker-utils.js";
7
+ import { buildApplicationInternal, createAngularBuilderContext, normalizeDevServerOptions, ResultKind, serveWithVite, } from "../utils/angular-build.js";
8
+ applyDebugLevel();
9
+ //#endregion
10
+ //#region Resource Management
11
+ const logger = consola.withTag("sd:cli:vite-build:worker");
12
+ let abortController;
13
+ function cleanup() {
14
+ abortController?.abort();
15
+ abortController = undefined;
16
+ }
17
+ registerCleanupHandlers(cleanup, logger);
18
+ //#endregion
19
+ //#region Helpers
20
+ function formatResultMessage(msg) {
21
+ if (msg.location != null) {
22
+ return `${msg.location.file}:${String(msg.location.line)}:${String(msg.location.column)} - ${msg.text}`;
23
+ }
24
+ return msg.text;
25
+ }
26
+ function createBuildOptions(info) {
27
+ return {
28
+ tsConfig: path.join(info.pkgDir, "tsconfig.json"),
29
+ browser: "src/main.ts",
30
+ index: "src/index.html",
31
+ outputPath: path.join(info.pkgDir, "dist"),
32
+ aot: true,
33
+ };
34
+ }
35
+ async function writeResultFiles(files, outputPath) {
36
+ await fs.promises.rm(outputPath, { recursive: true, force: true });
37
+ for (const [filePath, file] of Object.entries(files)) {
38
+ const fullPath = path.join(outputPath, filePath);
39
+ await fs.promises.mkdir(path.dirname(fullPath), { recursive: true });
40
+ if (file.origin === "memory") {
41
+ await fs.promises.writeFile(fullPath, file.contents);
42
+ }
43
+ else {
44
+ await fs.promises.copyFile(file.inputPath, fullPath);
45
+ }
46
+ }
47
+ }
48
+ //#endregion
49
+ //#region build (one-time production build)
50
+ async function build(info) {
51
+ const buildOptions = createBuildOptions(info);
52
+ const projectRoot = path.relative(info.cwd, info.pkgDir);
53
+ const outputPath = path.join(info.pkgDir, "dist");
54
+ const context = createAngularBuilderContext({
55
+ workspaceRoot: info.cwd,
56
+ projectName: info.name,
57
+ projectRoot,
58
+ buildOptions: buildOptions,
59
+ });
60
+ try {
61
+ for await (const result of buildApplicationInternal(buildOptions, context)) {
62
+ if (result.kind === ResultKind.Failure) {
63
+ const errors = result.errors.map(formatResultMessage);
64
+ const warnings = result.warnings?.map(formatResultMessage);
65
+ return {
66
+ js: { success: false, errors, warnings },
67
+ dts: { success: true, diagnostics: [] },
68
+ };
69
+ }
70
+ if (result.kind === ResultKind.Full) {
71
+ await writeResultFiles(result.files, outputPath);
72
+ const warnings = result.warnings?.map(formatResultMessage);
73
+ return {
74
+ js: { success: true, warnings },
75
+ dts: { success: true, diagnostics: [] },
76
+ };
77
+ }
78
+ }
79
+ return {
80
+ js: { success: false, errors: ["No build result received from buildApplicationInternal"] },
81
+ dts: { success: true, diagnostics: [] },
82
+ };
83
+ }
84
+ catch (err) {
85
+ return {
86
+ js: { success: false, errors: [errNs.message(err)] },
87
+ dts: { success: true, diagnostics: [] },
88
+ };
89
+ }
90
+ finally {
91
+ await context.disposeTeardowns();
92
+ }
93
+ }
94
+ //#endregion
95
+ //#region startWatch / stopWatch
96
+ const guardStartWatch = (() => {
97
+ let called = false;
98
+ return () => {
99
+ if (called)
100
+ throw new Error("startWatch() already called");
101
+ called = true;
102
+ };
103
+ })();
104
+ async function startWatch(info) {
105
+ guardStartWatch();
106
+ abortController = new AbortController();
107
+ const buildOptions = createBuildOptions(info);
108
+ const projectRoot = path.relative(info.cwd, info.pkgDir);
109
+ const context = createAngularBuilderContext({
110
+ workspaceRoot: info.cwd,
111
+ projectName: info.name,
112
+ projectRoot,
113
+ buildOptions: buildOptions,
114
+ });
115
+ try {
116
+ const serverOptions = await normalizeDevServerOptions(context, info.name, {
117
+ buildTarget: `${info.name}:build`,
118
+ hmr: true,
119
+ liveReload: true,
120
+ ...(info.port != null ? { port: info.port } : {}),
121
+ });
122
+ let isInitialBuild = true;
123
+ for await (const output of serveWithVite(serverOptions, "@angular/build:application", buildApplicationInternal, context)) {
124
+ if (isInitialBuild) {
125
+ isInitialBuild = false;
126
+ // Extract port from dev server output
127
+ try {
128
+ const url = new URL(output.baseUrl);
129
+ const port = parseInt(url.port, 10);
130
+ if (!isNaN(port)) {
131
+ sender.send("serverReady", { port });
132
+ }
133
+ }
134
+ catch {
135
+ // URL parsing failed — skip port reporting
136
+ }
137
+ sender.send("build", {
138
+ js: { success: output.success },
139
+ dts: { success: true },
140
+ });
141
+ }
142
+ else {
143
+ sender.send("buildStart", {});
144
+ sender.send("build", {
145
+ js: { success: output.success },
146
+ dts: { success: true },
147
+ });
148
+ }
149
+ }
150
+ }
151
+ catch (err) {
152
+ // AbortError is expected when stopWatch is called
153
+ if (!(err instanceof Error && err.name === "AbortError")) {
154
+ sender.send("error", { message: errNs.message(err) });
155
+ }
156
+ }
157
+ finally {
158
+ await context.disposeTeardowns();
159
+ }
160
+ }
161
+ function stopWatch() {
162
+ cleanup();
163
+ }
164
+ //#endregion
165
+ const sender = createWorker({ build, startWatch, stopWatch });
166
+ export default sender;
167
+ //# sourceMappingURL=vite-build.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-build.worker.js","sourceRoot":"","sources":["..\\..\\src\\workers\\vite-build.worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "13.0.100",
3
+ "version": "14.0.1",
4
4
  "description": "Simplysm package - CLI tool",
5
5
  "author": "simplysm",
6
6
  "license": "Apache-2.0",
@@ -15,41 +15,35 @@
15
15
  "files": [
16
16
  "dist",
17
17
  "src",
18
- "templates",
19
18
  "tests"
20
19
  ],
21
20
  "sideEffects": false,
22
21
  "dependencies": {
23
- "@fastify/http-proxy": "^11.4.2",
22
+ "@angular/build": "^21.2.3",
23
+ "@angular/compiler-cli": "^21",
24
24
  "@inquirer/prompts": "^8.3.2",
25
25
  "consola": "^3.4.2",
26
26
  "esbuild": "^0.27.4",
27
- "esbuild-plugin-solid": "^0.6.0",
28
27
  "eslint": "^9.39.4",
29
28
  "execa": "^9.6.1",
30
29
  "glob": "^13.0.6",
31
- "handlebars": "^4.7.8",
32
30
  "jiti": "^2.6.1",
31
+ "sass": "^1.97.3",
33
32
  "semver": "^7.7.4",
34
- "sharp": "^0.34.5",
35
- "solid-js": "^1.9.11",
36
33
  "ssh2": "^1.17.0",
37
- "tailwindcss": "^3.4.19",
38
34
  "ts-morph": "^27.0.2",
39
35
  "typescript": "^5.9.3",
40
- "vite": "^7.3.1",
41
- "vite-plugin-pwa": "^1.2.0",
42
- "vite-plugin-solid": "^2.11.11",
43
- "vite-tsconfig-paths": "^6.1.1",
44
36
  "yargs": "^18.0.0",
45
- "@simplysm/core-common": "13.0.100",
46
- "@simplysm/core-node": "13.0.100",
47
- "@simplysm/storage": "13.0.100"
37
+ "@fastify/http-proxy": "^11.4.3",
38
+ "@simplysm/core-common": "14.0.1",
39
+ "@simplysm/core-node": "14.0.1",
40
+ "@simplysm/storage": "14.0.1"
48
41
  },
49
42
  "devDependencies": {
50
43
  "@types/semver": "^7.7.1",
51
44
  "@types/ssh2": "^1.15.5",
52
- "@types/yargs": "^17.0.35"
45
+ "@types/yargs": "^17.0.35",
46
+ "vite": "^8.0.3"
53
47
  },
54
48
  "bin": {
55
49
  "sd-cli": "./dist/sd-cli.js"
@@ -5,6 +5,8 @@ import { executeTypecheck, type TypecheckResult } from "./typecheck";
5
5
  import type { LintResult } from "./lint";
6
6
  import type * as LintWorkerModule from "../workers/lint.worker";
7
7
  import { consola } from "consola";
8
+ import { loadSdConfig } from "../utils/sd-config";
9
+ import { validateTargets } from "../utils/package-utils";
8
10
 
9
11
  //#region Types
10
12
 
@@ -13,6 +15,7 @@ export type CheckType = "typecheck" | "lint" | "test";
13
15
  export interface CheckOptions {
14
16
  targets: string[];
15
17
  types: CheckType[];
18
+ fix: boolean;
16
19
  }
17
20
 
18
21
  interface CheckResult {
@@ -85,12 +88,27 @@ export async function runCheck(options: CheckOptions): Promise<void> {
85
88
 
86
89
  logger.debug("start check", { targets, types });
87
90
 
91
+ // Load sdConfig and validate targets
92
+ let sdConfig;
93
+ try {
94
+ sdConfig = await loadSdConfig({ cwd: process.cwd(), dev: false, options: [] });
95
+ } catch (err) {
96
+ logger.error(`Failed to load sd.config.ts: ${err instanceof Error ? err.message : err}`);
97
+ process.exitCode = 1;
98
+ return;
99
+ }
100
+ validateTargets(targets, sdConfig.packages);
101
+
102
+ // Normalize package names to path-based targets for typecheck/lint/test
103
+ const normalizedTargets =
104
+ targets.length > 0 ? targets.map((t) => `packages/${t}`) : targets;
105
+
88
106
  const tasks: Promise<CheckResult>[] = [];
89
107
 
90
108
  // Typecheck
91
109
  if (types.includes("typecheck")) {
92
110
  tasks.push(
93
- executeTypecheck({ targets, options: [] }).then(
111
+ executeTypecheck({ targets: normalizedTargets, options: [] }).then(
94
112
  (r: TypecheckResult): CheckResult => ({
95
113
  name: "TYPECHECK",
96
114
  success: r.success,
@@ -110,7 +128,7 @@ export async function runCheck(options: CheckOptions): Promise<void> {
110
128
 
111
129
  tasks.push(
112
130
  lintWorker
113
- .lint({ targets, fix: false, timing: false })
131
+ .lint({ targets: normalizedTargets, fix: options.fix, timing: false })
114
132
  .then(
115
133
  (r: LintResult): CheckResult => ({
116
134
  name: "LINT",
@@ -126,7 +144,7 @@ export async function runCheck(options: CheckOptions): Promise<void> {
126
144
 
127
145
  // Test (subprocess)
128
146
  if (types.includes("test")) {
129
- tasks.push(spawnVitest(targets));
147
+ tasks.push(spawnVitest(normalizedTargets));
130
148
  }
131
149
 
132
150
  logger.start(`running check... (${types.join(", ")})`);
@@ -1,20 +1,22 @@
1
- import { DevOrchestrator, type DevOrchestratorOptions } from "../orchestrators/DevOrchestrator";
1
+ import {
2
+ DevWatchOrchestrator,
3
+ type DevWatchOrchestratorOptions,
4
+ } from "../orchestrators/DevWatchOrchestrator";
2
5
 
3
6
  /**
4
- * Run Client and Server packages in development mode.
7
+ * Run Server packages in development mode.
5
8
  *
6
9
  * - Load `sd.config.ts` to check build target info per package (required)
7
- * - `client` target: Start Vite dev server
8
10
  * - `server` target: Server Build Worker + Server Runtime Worker
9
- * - Support Server-Client proxy connections
10
- * - Support Capacitor initialization
11
+ * - `client` target: recognized but skipped (BuildEngine not yet implemented)
12
+ * - Library packages excluded from dev mode
11
13
  * - Terminate with SIGINT/SIGTERM signals
12
14
  *
13
- * @param options - dev execution options
15
+ * @param options - dev execution options (targets, options)
14
16
  * @returns resolves on termination signal
15
17
  */
16
- export async function runDev(options: DevOrchestratorOptions): Promise<void> {
17
- const orchestrator = new DevOrchestrator(options);
18
+ export async function runDev(options: Omit<DevWatchOrchestratorOptions, "mode">): Promise<void> {
19
+ const orchestrator = new DevWatchOrchestrator({ mode: "dev", ...options });
18
20
 
19
21
  try {
20
22
  await orchestrator.initialize();
@@ -109,7 +109,7 @@ export async function loadIgnorePatterns(cwd: string): Promise<string[]> {
109
109
  //#region Main
110
110
 
111
111
  /**
112
- * Run ESLint/Stylelint and return results.
112
+ * Run ESLint and return results.
113
113
  *
114
114
  * - Extract globalIgnores patterns from `eslint.config.ts/js` and apply to glob filtering
115
115
  * - Show progress using consola