@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
@@ -0,0 +1,251 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach, beforeAll, afterAll } from "vitest";
2
+ import path from "path";
3
+ import os from "os";
4
+ import fsp from "fs/promises";
5
+
6
+ // Capture workerFns passed to createWorker
7
+ let workerFns: Record<string, (...args: any[]) => any>;
8
+ let mockSend: ReturnType<typeof vi.fn>;
9
+
10
+ vi.mock("@simplysm/core-node", () => ({
11
+ createWorker: vi.fn((fns: Record<string, Function>) => {
12
+ workerFns = fns as any;
13
+ mockSend = vi.fn();
14
+ return { send: mockSend };
15
+ }),
16
+ }));
17
+
18
+ vi.mock("@simplysm/core-common", () => ({
19
+ err: { message: (e: any) => e?.message ?? String(e) },
20
+ }));
21
+
22
+ vi.mock("consola", () => ({
23
+ consola: {
24
+ withTag: vi.fn(() => ({
25
+ debug: vi.fn(),
26
+ warn: vi.fn(),
27
+ info: vi.fn(),
28
+ error: vi.fn(),
29
+ })),
30
+ },
31
+ }));
32
+
33
+ vi.mock("../../src/utils/worker-utils", () => ({
34
+ registerCleanupHandlers: vi.fn(),
35
+ applyDebugLevel: vi.fn(),
36
+ }));
37
+
38
+ // @fastify/http-proxy mock
39
+ const mockProxyPlugin = vi.fn();
40
+ vi.mock("@fastify/http-proxy", () => ({
41
+ default: mockProxyPlugin,
42
+ }));
43
+
44
+ // Port availability mock
45
+ let portCheckResults: boolean[] = [];
46
+ let portCheckIndex = 0;
47
+
48
+ vi.mock("net", () => ({
49
+ default: {
50
+ createServer: vi.fn(() => {
51
+ const handlers: Record<string, Function> = {};
52
+ return {
53
+ once: (event: string, cb: Function) => {
54
+ handlers[event] = cb;
55
+ },
56
+ listen: () => {
57
+ const isAvailable = portCheckResults[portCheckIndex++] ?? true;
58
+ if (isAvailable) {
59
+ const _closeFn = (cb?: () => void) => {
60
+ cb?.();
61
+ };
62
+ handlers["listening"]();
63
+ } else {
64
+ handlers["error"]();
65
+ }
66
+ },
67
+ close: (cb?: () => void) => {
68
+ cb?.();
69
+ },
70
+ };
71
+ }),
72
+ },
73
+ }));
74
+
75
+ // Import triggers createWorker
76
+ await import("../../src/workers/server-runtime.worker");
77
+
78
+ // Create a temp mock main.js that exports globalThis.__sdCliTestServer
79
+ const mockMainJsPath = path.join(os.tmpdir(), `sd-cli-test-main-${Date.now()}.mjs`);
80
+
81
+ const mockRegister = vi.fn().mockResolvedValue(undefined);
82
+
83
+ const mockServer = {
84
+ options: { port: 3000 },
85
+ listen: vi.fn(async () => {}),
86
+ close: vi.fn(async () => {}),
87
+ fastify: { register: mockRegister },
88
+ };
89
+
90
+ beforeAll(async () => {
91
+ (globalThis as any).__sdCliTestServer = mockServer;
92
+ await fsp.writeFile(
93
+ mockMainJsPath,
94
+ "export const server = globalThis.__sdCliTestServer;\n",
95
+ );
96
+ });
97
+
98
+ afterAll(async () => {
99
+ await fsp.unlink(mockMainJsPath).catch(() => {});
100
+ delete (globalThis as any).__sdCliTestServer;
101
+ });
102
+
103
+ describe("server-runtime.worker start", () => {
104
+ const savedEnv: Record<string, string | undefined> = {};
105
+
106
+ beforeEach(() => {
107
+ mockSend.mockClear();
108
+ mockServer.listen.mockClear();
109
+ mockServer.close.mockClear();
110
+ mockRegister.mockClear();
111
+ mockProxyPlugin.mockClear();
112
+ mockServer.options.port = 3000;
113
+ portCheckResults = [];
114
+ portCheckIndex = 0;
115
+ });
116
+
117
+ afterEach(() => {
118
+ // Restore modified env vars
119
+ for (const [key, value] of Object.entries(savedEnv)) {
120
+ if (value === undefined) {
121
+ delete process.env[key];
122
+ } else {
123
+ process.env[key] = value;
124
+ }
125
+ }
126
+ });
127
+
128
+ function trackEnv(key: string): void {
129
+ savedEnv[key] = process.env[key];
130
+ }
131
+
132
+ it("injects env vars into process.env before server start", async () => {
133
+ trackEnv("TEST_DB_HOST");
134
+ trackEnv("TEST_API_KEY");
135
+
136
+ await workerFns["start"]({
137
+ mainJsPath: mockMainJsPath,
138
+ env: { TEST_DB_HOST: "localhost", TEST_API_KEY: "secret123" },
139
+ });
140
+
141
+ expect(process.env["TEST_DB_HOST"]).toBe("localhost");
142
+ expect(process.env["TEST_API_KEY"]).toBe("secret123");
143
+ });
144
+
145
+ it("calls server.listen() and sends serverReady event with port", async () => {
146
+ portCheckResults = [true]; // Port 3000 available
147
+
148
+ await workerFns["start"]({ mainJsPath: mockMainJsPath });
149
+
150
+ expect(mockServer.listen).toHaveBeenCalled();
151
+ expect(mockSend).toHaveBeenCalledWith("serverReady", { port: 3000 });
152
+ });
153
+
154
+ it("auto-increments port on conflict and updates server.options.port", async () => {
155
+ portCheckResults = [false, false, true]; // 3000 taken, 3001 taken, 3002 available
156
+ mockServer.options.port = 3000;
157
+
158
+ await workerFns["start"]({ mainJsPath: mockMainJsPath });
159
+
160
+ expect(mockServer.options.port).toBe(3002);
161
+ expect(mockSend).toHaveBeenCalledWith("serverReady", { port: 3002 });
162
+ });
163
+
164
+ it("sends error event when all ports are unavailable (20 retries)", async () => {
165
+ portCheckResults = Array(20).fill(false);
166
+ mockServer.options.port = 3000;
167
+
168
+ await workerFns["start"]({ mainJsPath: mockMainJsPath });
169
+
170
+ expect(mockSend).toHaveBeenCalledWith(
171
+ "error",
172
+ expect.objectContaining({
173
+ message: expect.stringContaining("No available port"),
174
+ }),
175
+ );
176
+ expect(mockSend).not.toHaveBeenCalledWith("serverReady", expect.anything());
177
+ });
178
+
179
+ // Acceptance: Scenario "서버 런타임에 클라이언트 프록시 등록"
180
+ it("registers @fastify/http-proxy for each client port before listen", async () => {
181
+ portCheckResults = [true];
182
+
183
+ await workerFns["start"]({
184
+ mainJsPath: mockMainJsPath,
185
+ clientPorts: { "client-a": 54321, "client-b": 54322 },
186
+ });
187
+
188
+ expect(mockRegister).toHaveBeenCalledTimes(2);
189
+ expect(mockRegister).toHaveBeenCalledWith(
190
+ mockProxyPlugin,
191
+ expect.objectContaining({
192
+ prefix: "/client-a",
193
+ upstream: "http://127.0.0.1:54321",
194
+ rewritePrefix: "/client-a",
195
+ websocket: true,
196
+ }),
197
+ );
198
+ expect(mockRegister).toHaveBeenCalledWith(
199
+ mockProxyPlugin,
200
+ expect.objectContaining({
201
+ prefix: "/client-b",
202
+ upstream: "http://127.0.0.1:54322",
203
+ rewritePrefix: "/client-b",
204
+ websocket: true,
205
+ }),
206
+ );
207
+ expect(mockSend).toHaveBeenCalledWith("serverReady", { port: 3000 });
208
+ });
209
+
210
+ // Unit: no proxy when clientPorts is undefined
211
+ it("does not register proxy when clientPorts is undefined", async () => {
212
+ portCheckResults = [true];
213
+
214
+ await workerFns["start"]({
215
+ mainJsPath: mockMainJsPath,
216
+ });
217
+
218
+ expect(mockRegister).not.toHaveBeenCalled();
219
+ });
220
+
221
+ // Unit: empty clientPorts
222
+ it("does not register proxy when clientPorts is empty", async () => {
223
+ portCheckResults = [true];
224
+
225
+ await workerFns["start"]({
226
+ mainJsPath: mockMainJsPath,
227
+ clientPorts: {},
228
+ });
229
+
230
+ expect(mockRegister).not.toHaveBeenCalled();
231
+ });
232
+
233
+ it("sends error event when main.js does not export server", async () => {
234
+ // Create a temp file without server export
235
+ const noServerPath = path.join(os.tmpdir(), `sd-cli-test-no-server-${Date.now()}.mjs`);
236
+ await fsp.writeFile(noServerPath, "export const notAServer = true;\n");
237
+
238
+ try {
239
+ await workerFns["start"]({ mainJsPath: noServerPath });
240
+
241
+ expect(mockSend).toHaveBeenCalledWith(
242
+ "error",
243
+ expect.objectContaining({
244
+ message: expect.stringContaining("must export a server instance"),
245
+ }),
246
+ );
247
+ } finally {
248
+ await fsp.unlink(noServerPath).catch(() => {});
249
+ }
250
+ });
251
+ });
package/README.md DELETED
@@ -1,295 +0,0 @@
1
- # @simplysm/sd-cli
2
-
3
- Simplysm package - CLI tool. Provides monorepo build, dev server, publish, and code quality tooling for Simplysm projects. Also exports configuration types and a Vite config factory for client packages.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install @simplysm/sd-cli
9
- ```
10
-
11
- ## API Overview
12
-
13
- ### Config Types
14
-
15
- | API | Type | Description |
16
- |-----|------|-------------|
17
- | `SdConfig` | interface | Top-level `sd.config.ts` configuration |
18
- | `SdConfigFn` | type | Function signature for `sd.config.ts` default export |
19
- | `SdConfigParams` | interface | Parameters passed to `SdConfigFn` |
20
- | `SdPackageConfig` | type | Union of all package config types |
21
- | `SdBuildPackageConfig` | interface | Package config for node/browser/neutral targets |
22
- | `SdClientPackageConfig` | interface | Client package config (Vite dev server) |
23
- | `SdServerPackageConfig` | interface | Server package config (Fastify server) |
24
- | `SdScriptsPackageConfig` | interface | Scripts-only package config |
25
- | `BuildTarget` | type | Build target type (`"node" \| "browser" \| "neutral"`) |
26
- | `SdPublishConfig` | type | Union of all publish config types |
27
- | `SdNpmPublishConfig` | interface | npm registry publish config |
28
- | `SdLocalDirectoryPublishConfig` | interface | Local directory publish config |
29
- | `SdStoragePublishConfig` | interface | FTP/FTPS/SFTP publish config |
30
- | `SdPostPublishScriptConfig` | interface | Post-publish script config |
31
- | `SdCapacitorConfig` | interface | Capacitor configuration |
32
- | `SdCapacitorAndroidConfig` | interface | Capacitor Android platform config |
33
- | `SdCapacitorSignConfig` | interface | Capacitor Android signing config |
34
- | `SdCapacitorPermission` | interface | Capacitor Android permission config |
35
- | `SdCapacitorIntentFilter` | interface | Capacitor Android Intent Filter config |
36
- | `SdElectronConfig` | interface | Electron configuration |
37
- | `SdWatchHookConfig` | interface | Watch hook config for scripts packages |
38
-
39
- ### Vite Utilities
40
-
41
- | API | Type | Description |
42
- |-----|------|-------------|
43
- | `createViteConfig` | function | Create Vite config for SolidJS + Tailwind client packages |
44
- | `ViteConfigOptions` | interface | Options for `createViteConfig` |
45
-
46
- ---
47
-
48
- ### `SdConfig`
49
-
50
- | Field | Type | Description |
51
- |-------|------|-------------|
52
- | `packages` | `Record<string, SdPackageConfig \| undefined>` | Per-package configuration (key: subdirectory name under `packages/`) |
53
- | `replaceDeps` | `Record<string, string>?` | Dependency replacement config (symlink local sources) |
54
- | `postPublish` | `SdPostPublishScriptConfig[]?` | Scripts to execute after deployment |
55
-
56
- ### `SdConfigFn`
57
-
58
- ```typescript
59
- type SdConfigFn = (params: SdConfigParams) => SdConfig | Promise<SdConfig>
60
- ```
61
-
62
- ### `SdConfigParams`
63
-
64
- | Field | Type | Description |
65
- |-------|------|-------------|
66
- | `cwd` | `string` | Current working directory |
67
- | `dev` | `boolean` | Development mode flag |
68
- | `options` | `string[]` | Additional options (from CLI `-o` flag) |
69
-
70
- ### `BuildTarget`
71
-
72
- ```typescript
73
- type BuildTarget = "node" | "browser" | "neutral"
74
- ```
75
-
76
- ### `SdPackageConfig`
77
-
78
- ```typescript
79
- type SdPackageConfig =
80
- | SdBuildPackageConfig
81
- | SdClientPackageConfig
82
- | SdServerPackageConfig
83
- | SdScriptsPackageConfig
84
- ```
85
-
86
- ### `SdBuildPackageConfig`
87
-
88
- | Field | Type | Description |
89
- |-------|------|-------------|
90
- | `target` | `BuildTarget` | Build target |
91
- | `publish` | `SdPublishConfig?` | Publish configuration |
92
- | `copySrc` | `string[]?` | Glob patterns for files to copy from `src/` to `dist/` |
93
-
94
- ### `SdClientPackageConfig`
95
-
96
- | Field | Type | Description |
97
- |-------|------|-------------|
98
- | `target` | `"client"` | Build target |
99
- | `server` | `string \| number` | Server package name or Vite port number |
100
- | `env` | `Record<string, string>?` | Environment variables for build |
101
- | `publish` | `SdPublishConfig?` | Publish configuration |
102
- | `capacitor` | `SdCapacitorConfig?` | Capacitor configuration |
103
- | `electron` | `SdElectronConfig?` | Electron configuration |
104
- | `configs` | `Record<string, unknown>?` | Runtime config (written to `dist/.config.json`) |
105
- | `exclude` | `string[]?` | Packages to exclude from Vite optimizeDeps |
106
-
107
- ### `SdServerPackageConfig`
108
-
109
- | Field | Type | Description |
110
- |-------|------|-------------|
111
- | `target` | `"server"` | Build target |
112
- | `env` | `Record<string, string>?` | Environment variables for build |
113
- | `publish` | `SdPublishConfig?` | Publish configuration |
114
- | `configs` | `Record<string, unknown>?` | Runtime config (written to `dist/.config.json`) |
115
- | `externals` | `string[]?` | External modules for esbuild |
116
- | `pm2` | `{ name?: string; ignoreWatchPaths?: string[] }?` | PM2 configuration |
117
- | `packageManager` | `"volta" \| "mise"?` | Package manager setting |
118
-
119
- ### `SdScriptsPackageConfig`
120
-
121
- | Field | Type | Description |
122
- |-------|------|-------------|
123
- | `target` | `"scripts"` | Build target |
124
- | `publish` | `SdPublishConfig?` | Publish configuration |
125
- | `watch` | `SdWatchHookConfig?` | Watch hook configuration |
126
-
127
- ### `SdWatchHookConfig`
128
-
129
- | Field | Type | Description |
130
- |-------|------|-------------|
131
- | `target` | `string[]` | Glob patterns to watch (relative to package directory) |
132
- | `cmd` | `string` | Command to execute on change |
133
- | `args` | `string[]?` | Command arguments |
134
-
135
- ### `SdPublishConfig`
136
-
137
- ```typescript
138
- type SdPublishConfig = SdNpmPublishConfig | SdLocalDirectoryPublishConfig | SdStoragePublishConfig
139
- ```
140
-
141
- ### `SdNpmPublishConfig`
142
-
143
- | Field | Type | Description |
144
- |-------|------|-------------|
145
- | `type` | `"npm"` | Publish type |
146
-
147
- ### `SdLocalDirectoryPublishConfig`
148
-
149
- | Field | Type | Description |
150
- |-------|------|-------------|
151
- | `type` | `"local-directory"` | Publish type |
152
- | `path` | `string` | Target path (supports `%VER%`, `%PROJECT%` substitution) |
153
-
154
- ### `SdStoragePublishConfig`
155
-
156
- | Field | Type | Description |
157
- |-------|------|-------------|
158
- | `type` | `"ftp" \| "ftps" \| "sftp"` | Protocol type |
159
- | `host` | `string` | Server hostname |
160
- | `port` | `number?` | Server port |
161
- | `path` | `string?` | Remote path |
162
- | `user` | `string?` | Username |
163
- | `password` | `string?` | Password |
164
-
165
- ### `SdPostPublishScriptConfig`
166
-
167
- | Field | Type | Description |
168
- |-------|------|-------------|
169
- | `type` | `"script"` | Config type |
170
- | `cmd` | `string` | Command to execute |
171
- | `args` | `string[]` | Script arguments (supports `%VER%`, `%PROJECT%` substitution) |
172
-
173
- ### `SdCapacitorConfig`
174
-
175
- | Field | Type | Description |
176
- |-------|------|-------------|
177
- | `appId` | `string` | App ID (e.g., `"com.example.app"`) |
178
- | `appName` | `string` | App name |
179
- | `plugins` | `Record<string, Record<string, unknown> \| true>?` | Capacitor plugin configuration |
180
- | `icon` | `string?` | App icon path (relative to package directory) |
181
- | `debug` | `boolean?` | Debug build flag |
182
- | `platform` | `{ android?: SdCapacitorAndroidConfig }?` | Per-platform configuration |
183
-
184
- ### `SdCapacitorAndroidConfig`
185
-
186
- | Field | Type | Description |
187
- |-------|------|-------------|
188
- | `config` | `Record<string, string>?` | AndroidManifest.xml application tag attributes |
189
- | `bundle` | `boolean?` | AAB bundle build flag (false for APK) |
190
- | `intentFilters` | `SdCapacitorIntentFilter[]?` | Intent Filter configuration |
191
- | `sign` | `SdCapacitorSignConfig?` | APK/AAB signing configuration |
192
- | `sdkVersion` | `number?` | Android SDK version (minSdk, targetSdk) |
193
- | `permissions` | `SdCapacitorPermission[]?` | Additional permission configuration |
194
-
195
- ### `SdCapacitorSignConfig`
196
-
197
- | Field | Type | Description |
198
- |-------|------|-------------|
199
- | `keystore` | `string` | Keystore file path (relative to package directory) |
200
- | `storePassword` | `string` | Keystore password |
201
- | `alias` | `string` | Key alias |
202
- | `password` | `string` | Key password |
203
- | `keystoreType` | `string?` | Keystore type (default: `"jks"`) |
204
-
205
- ### `SdCapacitorPermission`
206
-
207
- | Field | Type | Description |
208
- |-------|------|-------------|
209
- | `name` | `string` | Permission name (e.g., `"CAMERA"`) |
210
- | `maxSdkVersion` | `number?` | Maximum SDK version |
211
- | `ignore` | `string?` | `tools:ignore` attribute value |
212
-
213
- ### `SdCapacitorIntentFilter`
214
-
215
- | Field | Type | Description |
216
- |-------|------|-------------|
217
- | `action` | `string?` | Intent action (e.g., `"android.intent.action.VIEW"`) |
218
- | `category` | `string?` | Intent category (e.g., `"android.intent.category.DEFAULT"`) |
219
-
220
- ### `SdElectronConfig`
221
-
222
- | Field | Type | Description |
223
- |-------|------|-------------|
224
- | `appId` | `string` | Electron app ID |
225
- | `portable` | `boolean?` | Portable `.exe` (true) or NSIS installer (false) |
226
- | `installerIcon` | `string?` | Installer icon path (`.ico`, relative to package directory) |
227
- | `reinstallDependencies` | `string[]?` | npm packages to include in Electron |
228
- | `postInstallScript` | `string?` | npm postinstall script |
229
- | `nsisOptions` | `Record<string, unknown>?` | NSIS options |
230
- | `env` | `Record<string, string>?` | Environment variables |
231
-
232
- ### `ViteConfigOptions`
233
-
234
- | Field | Type | Description |
235
- |-------|------|-------------|
236
- | `pkgDir` | `string` | Package directory path |
237
- | `name` | `string` | Package name |
238
- | `tsconfigPath` | `string` | tsconfig.json path |
239
- | `compilerOptions` | `Record<string, unknown>` | TypeScript compiler options |
240
- | `env` | `Record<string, string>?` | Environment variables |
241
- | `mode` | `"build" \| "dev"` | Build or dev mode |
242
- | `serverPort` | `number?` | Server port in dev mode (0 for auto-assign) |
243
- | `replaceDeps` | `string[]?` | Array of replaceDeps package names |
244
- | `onScopeRebuild` | `(() => void)?` | Callback when replaceDeps package dist changes |
245
- | `outDir` | `string?` | Override `build.outDir` |
246
- | `base` | `string?` | Override base path |
247
- | `exclude` | `string[]?` | Packages to exclude from optimizeDeps |
248
-
249
- ### `createViteConfig`
250
-
251
- ```typescript
252
- function createViteConfig(options: ViteConfigOptions): ViteUserConfig
253
- ```
254
-
255
- Creates a Vite config for SolidJS + Tailwind CSS client packages. Includes plugins for tsconfig paths, SolidJS, PWA, Tailwind config deps watching, scope package watching, and public-dev directory serving.
256
-
257
- ## Usage Examples
258
-
259
- ### sd.config.ts
260
-
261
- ```typescript
262
- import type { SdConfigFn, SdConfigParams } from "@simplysm/sd-cli";
263
-
264
- const config: SdConfigFn = (params: SdConfigParams) => ({
265
- packages: {
266
- "core-common": { target: "neutral" },
267
- "core-node": { target: "node" },
268
- "my-client": {
269
- target: "client",
270
- server: "my-server",
271
- },
272
- "my-server": {
273
- target: "server",
274
- pm2: { name: "my-app" },
275
- },
276
- },
277
- });
278
-
279
- export default config;
280
- ```
281
-
282
- ### Custom Vite config
283
-
284
- ```typescript
285
- import { createViteConfig } from "@simplysm/sd-cli";
286
-
287
- const config = createViteConfig({
288
- pkgDir: "/path/to/package",
289
- name: "my-client",
290
- tsconfigPath: "/path/to/tsconfig.json",
291
- compilerOptions: { jsx: "preserve" },
292
- mode: "dev",
293
- serverPort: 3000,
294
- });
295
- ```
@@ -1,88 +0,0 @@
1
- import { WorkerManager } from "../infra/WorkerManager";
2
- import type { BuildResult, ResultCollector } from "../infra/ResultCollector";
3
- import type { RebuildManager } from "../utils/rebuild-manager";
4
- import type { IBuilder, PackageInfo } from "./types";
5
- /**
6
- * Abstract base class for Builder
7
- *
8
- * Provides common logic for all Builders and
9
- * defines abstract methods that subclasses must implement.
10
- */
11
- export declare abstract class BaseBuilder implements IBuilder {
12
- protected readonly workerManager: WorkerManager;
13
- protected readonly resultCollector: ResultCollector;
14
- protected readonly rebuildManager: RebuildManager | undefined;
15
- protected readonly packages: PackageInfo[];
16
- protected readonly cwd: string;
17
- protected isWatchMode: boolean;
18
- /** Initial build Promise (per package) */
19
- protected readonly initialBuildPromises: Map<string, Promise<void>>;
20
- /** Initial build resolver (per package) */
21
- protected readonly buildResolvers: Map<string, () => void>;
22
- constructor(options: {
23
- cwd: string;
24
- packages: PackageInfo[];
25
- resultCollector: ResultCollector;
26
- rebuildManager?: RebuildManager;
27
- });
28
- /**
29
- * Initialize Builder
30
- */
31
- initialize(): Promise<void>;
32
- /**
33
- * One-time build (production)
34
- */
35
- build(): Promise<void>;
36
- /**
37
- * Start watch mode
38
- */
39
- startWatch(): Promise<void>;
40
- /**
41
- * Shutdown Builder
42
- */
43
- shutdown(): Promise<void>;
44
- /**
45
- * Get initial build Promise map
46
- */
47
- getInitialBuildPromises(): Map<string, Promise<void>>;
48
- /**
49
- * Generate package key (for result storage)
50
- */
51
- protected getPackageKey(pkg: PackageInfo): string;
52
- /**
53
- * Handle build completion
54
- */
55
- protected completeBuild(pkg: PackageInfo): void;
56
- /**
57
- * Register common Worker event handlers (buildStart, build, error)
58
- *
59
- * Provides common logic so LibraryBuilder and DtsBuilder can register
60
- * event handlers with the same pattern without duplication.
61
- *
62
- * @param workerKey Worker identifier (e.g., "core-common:build")
63
- * @param resultType BuildResult type field value
64
- * @param listrTitle Title to display during rebuild
65
- */
66
- protected registerEventHandlersForWorker(pkg: PackageInfo, workerKey: string, resultType: BuildResult["type"], listrTitle: string): void;
67
- /**
68
- * Builder type (for result key generation)
69
- */
70
- protected abstract getBuilderType(): string;
71
- /**
72
- * Create Workers
73
- */
74
- protected abstract createWorkers(): void;
75
- /**
76
- * Register event handlers
77
- */
78
- protected abstract registerEventHandlers(): void;
79
- /**
80
- * Single package build (production)
81
- */
82
- protected abstract buildPackage(pkg: PackageInfo): Promise<void>;
83
- /**
84
- * Start watching single package
85
- */
86
- protected abstract startWatchPackage(pkg: PackageInfo): void;
87
- }
88
- //# sourceMappingURL=BaseBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseBuilder.d.ts","sourceRoot":"","sources":["..\\..\\src\\builders\\BaseBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIrD;;;;;GAKG;AACH,8BAAsB,WAAY,YAAW,QAAQ;IACnD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,WAAW,UAAS;IAE9B,0CAA0C;IAC1C,SAAS,CAAC,QAAQ,CAAC,oBAAoB,6BAAoC;IAC3E,2CAA2C;IAC3C,SAAS,CAAC,QAAQ,CAAC,cAAc,oBAAyB,IAAI,EAAI;gBAEtD,OAAO,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,cAAc,CAAC,EAAE,cAAc,CAAC;KACjC;IAQD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACH,uBAAuB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAIrD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;IAIjD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAS/C;;;;;;;;;OASG;IACH,SAAS,CAAC,8BAA8B,CACtC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,UAAU,EAAE,MAAM,GACjB,IAAI;IAyDP;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,MAAM;IAE3C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IAExC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,IAAI;IAEhD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAC7D"}