@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,277 +0,0 @@
1
- import path from "path";
2
- import { spawn } from "child_process";
3
- import { consola } from "consola";
4
- import type { BuildTarget, SdBuildPackageConfig, SdConfig, SdScriptsPackageConfig } from "../sd-config.types";
5
- import { loadSdConfig } from "../utils/sd-config";
6
- import { filterPackagesByTargets } from "../utils/package-utils";
7
- import { watchReplaceDeps, type WatchReplaceDepResult } from "../utils/replace-deps";
8
- import { printErrors } from "../utils/output-utils";
9
- import { RebuildManager } from "../utils/rebuild-manager";
10
- import { ResultCollector } from "../infra/ResultCollector";
11
- import { SignalHandler } from "../infra/SignalHandler";
12
- import { LibraryBuilder } from "../builders/LibraryBuilder";
13
- import { DtsBuilder } from "../builders/DtsBuilder";
14
- import type { BuildPackageInfo } from "../builders/types";
15
- import { watchCopySrcFiles } from "../utils/copy-src";
16
- import { FsWatcher } from "@simplysm/core-node";
17
-
18
- /**
19
- * Watch command options
20
- */
21
- export interface WatchOrchestratorOptions {
22
- targets: string[];
23
- options: string[];
24
- }
25
-
26
- /**
27
- * Orchestrator that coordinates watch mode execution
28
- *
29
- * Manages watch mode execution for Library packages (node/browser/neutral).
30
- * - LibraryBuilder: esbuild watch
31
- * - DtsBuilder: .d.ts generation
32
- */
33
- export class WatchOrchestrator {
34
- private readonly _cwd: string;
35
- private readonly _options: WatchOrchestratorOptions;
36
- private readonly _logger = consola.withTag("sd:cli:watch");
37
-
38
- private _resultCollector!: ResultCollector;
39
- private _signalHandler!: SignalHandler;
40
- private _rebuildManager!: RebuildManager;
41
- private _libraryBuilder!: LibraryBuilder;
42
- private _dtsBuilder!: DtsBuilder;
43
- private _packages: BuildPackageInfo[] = [];
44
- private _copySrcWatchers: FsWatcher[] = [];
45
- private _replaceDepWatcher: WatchReplaceDepResult | undefined;
46
- private readonly _watchHookPackages: Array<{ name: string; dir: string; config: SdScriptsPackageConfig }> = [];
47
- private readonly _watchHookWatchers: FsWatcher[] = [];
48
-
49
- constructor(options: WatchOrchestratorOptions) {
50
- this._cwd = process.cwd();
51
- this._options = options;
52
- }
53
-
54
- /**
55
- * Initialize Orchestrator
56
- * - Load sd.config.ts
57
- * - Classify packages
58
- * - Create and initialize builders
59
- */
60
- async initialize(): Promise<void> {
61
- this._logger.debug("watch start", { targets: this._options.targets });
62
-
63
- // Load sd.config.ts
64
- let sdConfig: SdConfig;
65
- try {
66
- sdConfig = await loadSdConfig({
67
- cwd: this._cwd,
68
- dev: true,
69
- options: this._options.options,
70
- });
71
- this._logger.debug("sd.config.ts loaded");
72
- } catch (err) {
73
- this._logger.error(`Failed to load sd.config.ts: ${err instanceof Error ? err.message : err}`);
74
- process.exitCode = 1;
75
- throw err;
76
- }
77
-
78
- // Start watch if replaceDeps config exists (initial replacement handled in sd-cli.ts)
79
- if (sdConfig.replaceDeps != null) {
80
- this._replaceDepWatcher = await watchReplaceDeps(this._cwd, sdConfig.replaceDeps);
81
- }
82
-
83
- // Filter by targets
84
- const allPackages = filterPackagesByTargets(sdConfig.packages, this._options.targets);
85
-
86
- // Classify packages: library (node/browser/neutral) vs scripts+watch
87
- const isLibraryTarget = (target: string): target is BuildTarget =>
88
- target === "node" || target === "browser" || target === "neutral";
89
-
90
- const libraryConfigs: Record<string, SdBuildPackageConfig> = {};
91
- for (const [name, config] of Object.entries(allPackages)) {
92
- if (isLibraryTarget(config.target)) {
93
- libraryConfigs[name] = config as SdBuildPackageConfig;
94
- } else if (config.target === "scripts" && config.watch != null) {
95
- this._watchHookPackages.push({
96
- name,
97
- dir: path.join(this._cwd, "packages", name),
98
- config: config,
99
- });
100
- }
101
- }
102
-
103
- if (Object.keys(libraryConfigs).length === 0 && this._watchHookPackages.length === 0) {
104
- process.stdout.write("⚠ No packages to watch.\n");
105
- return;
106
- }
107
-
108
- // Create PackageInfo array for library packages
109
- this._packages = Object.entries(libraryConfigs).map(([name, config]) => ({
110
- name,
111
- dir: path.join(this._cwd, "packages", name),
112
- config,
113
- }));
114
-
115
- // Initialize infrastructure
116
- this._signalHandler = new SignalHandler();
117
-
118
- // Initialize library builders only if there are library packages
119
- if (this._packages.length > 0) {
120
- this._resultCollector = new ResultCollector();
121
- this._rebuildManager = new RebuildManager(this._logger);
122
-
123
- // Print errors on batch completion
124
- this._rebuildManager.on("batchComplete", () => {
125
- printErrors(this._resultCollector.toMap());
126
- });
127
-
128
- // Create builders
129
- const builderOptions = {
130
- cwd: this._cwd,
131
- packages: this._packages,
132
- resultCollector: this._resultCollector,
133
- rebuildManager: this._rebuildManager,
134
- };
135
-
136
- this._libraryBuilder = new LibraryBuilder(builderOptions);
137
- this._dtsBuilder = new DtsBuilder(builderOptions);
138
-
139
- // Initialize builders
140
- await Promise.all([this._libraryBuilder.initialize(), this._dtsBuilder.initialize()]);
141
- }
142
- }
143
-
144
- /**
145
- * Start watch mode
146
- * - Run initial build
147
- * - Start watch hook watchers
148
- * - Output results
149
- */
150
- async start(): Promise<void> {
151
- if (this._packages.length === 0 && this._watchHookPackages.length === 0) {
152
- return;
153
- }
154
-
155
- // Start library build if there are library packages
156
- if (this._packages.length > 0) {
157
- // Set up initial build promises
158
- const buildPromises = this._libraryBuilder.getInitialBuildPromises();
159
- const dtsPromises = this._dtsBuilder.getInitialBuildPromises();
160
-
161
- // Start copySrc watch
162
- for (const pkg of this._packages) {
163
- if (pkg.config.copySrc != null && pkg.config.copySrc.length > 0) {
164
- const watcher = await watchCopySrcFiles(pkg.dir, pkg.config.copySrc);
165
- this._copySrcWatchers.push(watcher);
166
- }
167
- }
168
-
169
- // Start watch (run in background)
170
- void this._libraryBuilder.startWatch();
171
- void this._dtsBuilder.startWatch();
172
-
173
- // Start initial build
174
- this._logger.start("Running initial build...");
175
-
176
- // Set up complete promise array for library build and DTS build
177
- const allBuildTasks: Array<{ name: string; promise: Promise<void> }> = [];
178
-
179
- // Library build tasks
180
- for (const pkg of this._packages) {
181
- const promise = buildPromises.get(`${pkg.name}:build`) ?? Promise.resolve();
182
- allBuildTasks.push({
183
- name: `${pkg.name}:build`,
184
- promise,
185
- });
186
- }
187
-
188
- // DTS tasks
189
- for (const pkg of this._packages) {
190
- const promise = dtsPromises.get(`${pkg.name}:dts`) ?? Promise.resolve();
191
- allBuildTasks.push({
192
- name: `${pkg.name}:dts`,
193
- promise,
194
- });
195
- }
196
-
197
- // Run all build tasks concurrently (wait until initial build completes)
198
- await Promise.allSettled(allBuildTasks.map((task) => task.promise));
199
-
200
- this._logger.success("Initial build completed");
201
-
202
- // Output initial build results
203
- printErrors(this._resultCollector.toMap());
204
- }
205
-
206
- // Start watch hook watchers for scripts+watch packages
207
- for (const pkg of this._watchHookPackages) {
208
- const watchConfig = pkg.config.watch!;
209
- const watchTargets = watchConfig.target.map((t) => path.resolve(pkg.dir, t));
210
-
211
- // Run initial hook
212
- this._runWatchHookCmd(pkg.name, pkg.dir, watchConfig.cmd, watchConfig.args);
213
-
214
- // Start watching
215
- const watcher = await FsWatcher.watch(watchTargets);
216
- watcher.onChange({ delay: 300 }, () => {
217
- this._runWatchHookCmd(pkg.name, pkg.dir, watchConfig.cmd, watchConfig.args);
218
- });
219
- this._watchHookWatchers.push(watcher);
220
-
221
- this._logger.success(`Watch hook started: ${pkg.name}`);
222
- }
223
- }
224
-
225
- /**
226
- * Run watch hook command
227
- */
228
- private _runWatchHookCmd(pkgName: string, cwd: string, cmd: string, args?: string[]): void {
229
- const child = spawn(cmd, args ?? [], { cwd, stdio: "inherit", shell: true });
230
- child.on("error", (err) => {
231
- this._logger.error(`Watch hook error (${pkgName}): ${err.message}`);
232
- });
233
- child.on("close", (code) => {
234
- if (code !== 0 && code !== null) {
235
- this._logger.warn(`Watch hook (${pkgName}) exited with code ${String(code)}`);
236
- }
237
- });
238
- }
239
-
240
- /**
241
- * Wait for termination signal
242
- */
243
- async awaitTermination(): Promise<void> {
244
- if (this._packages.length === 0 && this._watchHookPackages.length === 0) {
245
- return;
246
- }
247
- await this._signalHandler.waitForTermination();
248
- }
249
-
250
- /**
251
- * Shutdown Orchestrator
252
- */
253
- async shutdown(): Promise<void> {
254
- if (this._packages.length === 0 && this._watchHookPackages.length === 0) {
255
- return;
256
- }
257
-
258
- process.stdout.write("⏳ Shutting down...\n");
259
-
260
- const shutdownTasks: Array<Promise<void>> = [];
261
-
262
- if (this._packages.length > 0) {
263
- shutdownTasks.push(this._libraryBuilder.shutdown());
264
- shutdownTasks.push(this._dtsBuilder.shutdown());
265
- shutdownTasks.push(...this._copySrcWatchers.map((w) => w.close()));
266
- }
267
-
268
- shutdownTasks.push(...this._watchHookWatchers.map((w) => w.close()));
269
-
270
- await Promise.all(shutdownTasks);
271
- this._copySrcWatchers = [];
272
- this._watchHookWatchers.length = 0;
273
- this._replaceDepWatcher?.dispose();
274
-
275
- process.stdout.write("✔ Done\n");
276
- }
277
- }
@@ -1,98 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
-
4
- const jsExtensions = [".js", ".cjs", ".mjs"];
5
-
6
- const jsResolutionOrder = ["", ".js", ".cjs", ".mjs", ".ts", ".cts", ".mts", ".jsx", ".tsx"];
7
- const tsResolutionOrder = ["", ".ts", ".cts", ".mts", ".tsx", ".js", ".cjs", ".mjs", ".jsx"];
8
-
9
- function resolveWithExtension(file: string, extensions: string[]): string | null {
10
- for (const ext of extensions) {
11
- const full = `${file}${ext}`;
12
- if (fs.existsSync(full) && fs.statSync(full).isFile()) {
13
- return full;
14
- }
15
- }
16
- for (const ext of extensions) {
17
- const full = `${file}/index${ext}`;
18
- if (fs.existsSync(full) && fs.statSync(full).isFile()) {
19
- return full;
20
- }
21
- }
22
- return null;
23
- }
24
-
25
- function resolvePackageFile(specifier: string, fromDir: string): string | null {
26
- const parts = specifier.split("/");
27
- const pkgName = specifier.startsWith("@") ? parts.slice(0, 2).join("/") : parts[0];
28
- const subPath = specifier.startsWith("@") ? parts.slice(2).join("/") : parts.slice(1).join("/");
29
-
30
- let searchDir = fromDir;
31
- while (true) {
32
- const candidate = path.join(searchDir, "node_modules", pkgName);
33
- if (fs.existsSync(candidate)) {
34
- const realDir = fs.realpathSync(candidate);
35
- if (subPath) {
36
- return resolveWithExtension(path.join(realDir, subPath), tsResolutionOrder);
37
- }
38
- return resolveWithExtension(path.join(realDir, "index"), tsResolutionOrder);
39
- }
40
- const parent = path.dirname(searchDir);
41
- if (parent === searchDir) break;
42
- searchDir = parent;
43
- }
44
- return null;
45
- }
46
-
47
- /**
48
- * Recursively collect dependencies of Tailwind config file
49
- *
50
- * Tailwind built-in `getModuleDependencies` only tracks relative path imports,
51
- * but this function also resolves `node_modules` symlinks to track actual files for packages in specified scope.
52
- */
53
- export function getTailwindConfigDeps(configPath: string, replaceDeps: string[]): string[] {
54
- const seen = new Set<string>();
55
-
56
- function isReplaceDepImport(specifier: string): boolean {
57
- return replaceDeps.some((dep) => specifier === dep || specifier.startsWith(dep + "/"));
58
- }
59
-
60
- function walk(absoluteFile: string): void {
61
- if (seen.has(absoluteFile)) return;
62
- if (!fs.existsSync(absoluteFile)) return;
63
- seen.add(absoluteFile);
64
-
65
- const base = path.dirname(absoluteFile);
66
- const ext = path.extname(absoluteFile);
67
- const extensions = jsExtensions.includes(ext) ? jsResolutionOrder : tsResolutionOrder;
68
-
69
- let contents: string;
70
- try {
71
- contents = fs.readFileSync(absoluteFile, "utf-8");
72
- } catch {
73
- return;
74
- }
75
-
76
- for (const match of [
77
- ...contents.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),
78
- ...contents.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),
79
- ...contents.matchAll(/require\(['"`](.+)['"`]\)/gi),
80
- ]) {
81
- const specifier = match[1];
82
- let resolved: string | null = null;
83
-
84
- if (specifier.startsWith(".")) {
85
- resolved = resolveWithExtension(path.resolve(base, specifier), extensions);
86
- } else if (isReplaceDepImport(specifier)) {
87
- resolved = resolvePackageFile(specifier, base);
88
- }
89
-
90
- if (resolved != null) {
91
- walk(resolved);
92
- }
93
- }
94
- }
95
-
96
- walk(path.resolve(configPath));
97
- return [...seen];
98
- }
@@ -1,56 +0,0 @@
1
- import path from "path";
2
- import Handlebars from "handlebars";
3
- import { fsx } from "@simplysm/core-node";
4
-
5
- /**
6
- * Recursively traverse template directory, render with Handlebars, and generate files
7
- *
8
- * - `.hbs` extension files: Compile with Handlebars → save with `.hbs` removed from name
9
- * - If `.hbs` result is empty string/whitespace only: skip file creation
10
- * - Other files: copy as-is (binary)
11
- *
12
- * @param srcDir - Template source directory
13
- * @param destDir - Output destination directory
14
- * @param context - Handlebars template variables
15
- * @param dirReplacements - Directory name substitution map (e.g., `{ __CLIENT__: "client-admin" }`)
16
- */
17
- export async function renderTemplateDir(
18
- srcDir: string,
19
- destDir: string,
20
- context: Record<string, unknown>,
21
- dirReplacements?: Record<string, string>,
22
- ): Promise<void> {
23
- await fsx.mkdir(destDir);
24
-
25
- const entries = await fsx.readdir(srcDir);
26
-
27
- for (const entry of entries) {
28
- const srcPath = path.join(srcDir, entry);
29
- const stat = await fsx.stat(srcPath);
30
-
31
- if (stat.isDirectory()) {
32
- // Apply directory name substitution
33
- const destName = dirReplacements?.[entry] ?? entry;
34
- await renderTemplateDir(
35
- path.join(srcDir, entry),
36
- path.join(destDir, destName),
37
- context,
38
- dirReplacements,
39
- );
40
- } else if (entry.endsWith(".hbs")) {
41
- // Render Handlebars template
42
- const source = await fsx.read(srcPath);
43
- const template = Handlebars.compile(source, { noEscape: true });
44
- const result = template(context);
45
-
46
- // Skip file creation if result is empty or whitespace-only
47
- if (result.trim().length === 0) continue;
48
-
49
- const destFileName = entry.slice(0, -4); // Remove .hbs
50
- await fsx.write(path.join(destDir, destFileName), result);
51
- } else {
52
- // Copy binary files as-is
53
- await fsx.copy(srcPath, path.join(destDir, entry));
54
- }
55
- }
56
- }