@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,52 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { validateTargets } from "../../src/utils/package-utils";
3
+
4
+ describe("validateTargets", () => {
5
+ const packages = {
6
+ "core-node": { target: "node" },
7
+ "core-common": { target: "neutral" },
8
+ "storage": { target: "node" },
9
+ };
10
+
11
+ it("does nothing when targets is empty", () => {
12
+ expect(() => validateTargets([], packages)).not.toThrow();
13
+ });
14
+
15
+ it("does nothing when all targets exist in packages", () => {
16
+ expect(() => validateTargets(["core-node", "storage"], packages)).not.toThrow();
17
+ });
18
+
19
+ it("throws SdError for a single unknown target", () => {
20
+ expect(() => validateTargets(["nonexistent"], packages)).toThrow(
21
+ "Unknown target: nonexistent",
22
+ );
23
+ });
24
+
25
+ it("throws SdError listing all unknown targets", () => {
26
+ expect(() => validateTargets(["bad1", "bad2"], packages)).toThrow(
27
+ "Unknown target: bad1, bad2",
28
+ );
29
+ });
30
+
31
+ it("throws SdError when some targets are valid and some are not", () => {
32
+ expect(() => validateTargets(["core-node", "nonexistent"], packages)).toThrow(
33
+ "Unknown target: nonexistent",
34
+ );
35
+ });
36
+
37
+ it("does not throw for packages with undefined config", () => {
38
+ const packagesWithUndefined = {
39
+ "core-node": { target: "node" },
40
+ "empty-pkg": undefined,
41
+ };
42
+ expect(() => validateTargets(["core-node"], packagesWithUndefined)).not.toThrow();
43
+ });
44
+
45
+ it("allows targeting a package with undefined config", () => {
46
+ const packagesWithUndefined: Record<string, unknown> = {
47
+ "core-node": { target: "node" },
48
+ "empty-pkg": undefined,
49
+ };
50
+ expect(() => validateTargets(["empty-pkg"], packagesWithUndefined)).not.toThrow();
51
+ });
52
+ });
@@ -1,43 +1,46 @@
1
1
  import { describe, it, expect, vi } from "vitest";
2
- import { consola } from "consola";
3
2
  import { RebuildManager } from "../../src/utils/rebuild-manager";
4
3
 
5
- describe("RebuildManager", () => {
6
- it("logs start/success messages on rebuild batch", async () => {
7
- const logger = consola.withTag("test");
8
- const startSpy = vi.spyOn(logger, "start");
9
- const successSpy = vi.spyOn(logger, "success");
4
+ function createManager() {
5
+ const logger = { start: vi.fn(), success: vi.fn(), error: vi.fn() };
6
+ const manager = new RebuildManager(logger as any);
7
+ return { manager, logger };
8
+ }
10
9
 
11
- const manager = new RebuildManager(logger);
10
+ describe("RebuildManager", () => {
11
+ it("batches concurrent builds into single batchComplete event", async () => {
12
+ const { manager } = createManager();
13
+ const batchComplete = vi.fn();
14
+ manager.on("batchComplete", batchComplete);
12
15
 
13
- const resolver = manager.registerBuild("pkg1:build", "pkg1 (node)");
16
+ const resolverA = manager.registerBuild("a", "Build A");
17
+ const resolverB = manager.registerBuild("b", "Build B");
14
18
 
15
- // resolve to complete the build
16
- resolver();
19
+ // Resolve both builds
20
+ resolverA();
21
+ resolverB();
17
22
 
18
- // wait for _runBatch microtask + Promise.allSettled
19
- await new Promise((resolve) => setTimeout(resolve, 50));
23
+ // Wait for batch to process (microtask)
24
+ await new Promise((r) => setTimeout(r, 50));
20
25
 
21
- expect(startSpy).toHaveBeenCalledWith("Rebuilding... (pkg1 (node))");
22
- expect(successSpy).toHaveBeenCalledWith("Rebuild completed (pkg1 (node))");
26
+ expect(batchComplete).toHaveBeenCalledOnce();
23
27
  });
24
28
 
25
- it("batches multiple builds and logs them together", async () => {
26
- const logger = consola.withTag("test");
27
- const startSpy = vi.spyOn(logger, "start");
28
- const successSpy = vi.spyOn(logger, "success");
29
-
30
- const manager = new RebuildManager(logger);
29
+ it("runs new batch when builds registered during processing", async () => {
30
+ const { manager } = createManager();
31
+ const batchComplete = vi.fn();
32
+ manager.on("batchComplete", batchComplete);
31
33
 
32
- const resolver1 = manager.registerBuild("pkg1:build", "pkg1 (node)");
33
- const resolver2 = manager.registerBuild("pkg2:build", "pkg2 (browser)");
34
+ const resolverA = manager.registerBuild("a", "Build A");
35
+ resolverA();
34
36
 
35
- resolver1();
36
- resolver2();
37
+ // Wait for first batch to start, then register new build
38
+ await new Promise((r) => setTimeout(r, 10));
39
+ const resolverB = manager.registerBuild("b", "Build B");
40
+ resolverB();
37
41
 
38
- await new Promise((resolve) => setTimeout(resolve, 50));
42
+ await new Promise((r) => setTimeout(r, 100));
39
43
 
40
- expect(startSpy).toHaveBeenCalledWith("Rebuilding... (pkg1 (node), pkg2 (browser))");
41
- expect(successSpy).toHaveBeenCalledWith("Rebuild completed (pkg1 (node), pkg2 (browser))");
44
+ expect(batchComplete).toHaveBeenCalledTimes(2);
42
45
  });
43
46
  });
@@ -0,0 +1,69 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { resolveReplaceDepEntries, parseWorkspaceGlobs } from "../../src/utils/replace-deps";
3
+
4
+ describe("resolveReplaceDepEntries", () => {
5
+ it("matches exact package names", () => {
6
+ const results = resolveReplaceDepEntries(
7
+ { "@simplysm/core-common": "../core-common" },
8
+ ["@simplysm/core-common", "@simplysm/core-node"],
9
+ );
10
+
11
+ expect(results).toHaveLength(1);
12
+ expect(results[0].targetName).toBe("@simplysm/core-common");
13
+ expect(results[0].sourcePath).toBe("../core-common");
14
+ });
15
+
16
+ it("matches glob patterns with wildcard", () => {
17
+ const results = resolveReplaceDepEntries(
18
+ { "@simplysm/*": "../packages/*" },
19
+ ["@simplysm/core-common", "@simplysm/core-node"],
20
+ );
21
+
22
+ expect(results).toHaveLength(2);
23
+ expect(results[0].sourcePath).toBe("../packages/core-common");
24
+ expect(results[1].sourcePath).toBe("../packages/core-node");
25
+ });
26
+
27
+ it("returns empty array when no matches", () => {
28
+ const results = resolveReplaceDepEntries(
29
+ { "@other/*": "../other/*" },
30
+ ["@simplysm/core-common"],
31
+ );
32
+
33
+ expect(results).toHaveLength(0);
34
+ });
35
+ });
36
+
37
+ describe("parseWorkspaceGlobs", () => {
38
+ it("parses packages section from workspace yaml", () => {
39
+ const content = `packages:
40
+ - "packages/*"
41
+ - "tools/*"
42
+ `;
43
+ const globs = parseWorkspaceGlobs(content);
44
+ expect(globs).toEqual(["packages/*", "tools/*"]);
45
+ });
46
+
47
+ it("handles unquoted values", () => {
48
+ const content = `packages:
49
+ - packages/*
50
+ `;
51
+ const globs = parseWorkspaceGlobs(content);
52
+ expect(globs).toEqual(["packages/*"]);
53
+ });
54
+
55
+ it("stops at next section", () => {
56
+ const content = `packages:
57
+ - packages/*
58
+ other:
59
+ - something
60
+ `;
61
+ const globs = parseWorkspaceGlobs(content);
62
+ expect(globs).toEqual(["packages/*"]);
63
+ });
64
+
65
+ it("returns empty array when no packages section", () => {
66
+ const globs = parseWorkspaceGlobs("other:\n - foo\n");
67
+ expect(globs).toEqual([]);
68
+ });
69
+ });
@@ -0,0 +1,131 @@
1
+ import { describe, it, expect, beforeAll, afterAll } from "vitest";
2
+ import { resolve } from "node:path";
3
+ import fs from "node:fs";
4
+ import { compileScssString, compileScssFile } from "../../src/utils/scss-compiler";
5
+
6
+ const workspaceRoot = resolve(import.meta.dirname, "../../../..");
7
+ const angularPkgDir = resolve(workspaceRoot, "packages/angular");
8
+
9
+ // Temp directory for node_modules @use test
10
+ const tmpDir = resolve(import.meta.dirname, "__scss_test_tmp__");
11
+
12
+ describe("scss-compiler", () => {
13
+ beforeAll(() => {
14
+ // Create a temp node_modules-like structure for package @use test
15
+ const fakeNmDir = resolve(tmpDir, "node_modules/@simplysm/angular/scss/commons");
16
+ fs.mkdirSync(fakeNmDir, { recursive: true });
17
+ fs.writeFileSync(
18
+ resolve(fakeNmDir, "_variables.scss"),
19
+ "$test-var: red;\n",
20
+ );
21
+ });
22
+
23
+ afterAll(() => {
24
+ if (fs.existsSync(tmpDir)) {
25
+ fs.rmSync(tmpDir, { recursive: true, force: true });
26
+ }
27
+ });
28
+
29
+ describe("compileScssString", () => {
30
+ it("compiles inline SCSS with variable to CSS", () => {
31
+ const source = "$color: blue;\n.header { color: $color; }";
32
+ const containingFile = resolve(angularPkgDir, "src/fake-component.ts");
33
+ const loadPaths = [
34
+ resolve(angularPkgDir, "scss"),
35
+ resolve(workspaceRoot, "node_modules"),
36
+ ];
37
+
38
+ const result = compileScssString(source, containingFile, loadPaths);
39
+
40
+ expect(result.css).toContain(".header");
41
+ expect(result.css).toContain("color: blue");
42
+ expect(result.dependencies).toBeDefined();
43
+ });
44
+
45
+ // Acceptance: Scenario "순수 CSS 인라인 스타일은 변환 없이 통과한다"
46
+ it("passes through pure CSS without modification", () => {
47
+ const source = ".header { color: blue; }";
48
+ const containingFile = resolve(angularPkgDir, "src/fake-component.ts");
49
+ const loadPaths: string[] = [];
50
+
51
+ const result = compileScssString(source, containingFile, loadPaths);
52
+
53
+ expect(result.css).toContain(".header");
54
+ expect(result.css).toContain("color: blue");
55
+ });
56
+
57
+ // Acceptance: Scenario "인라인 SCSS 구문 에러 시 diagnostics에 에러가 포함된다"
58
+ it("throws on SCSS syntax error", () => {
59
+ const source = ".header { color: $undefined-var; }";
60
+ const containingFile = resolve(angularPkgDir, "src/fake-component.ts");
61
+ const loadPaths: string[] = [];
62
+
63
+ expect(() => compileScssString(source, containingFile, loadPaths)).toThrow();
64
+ });
65
+
66
+ // Acceptance: Scenario "같은 패키지 내 상대 경로 @use를 해석한다"
67
+ it("resolves relative @use paths within the package", () => {
68
+ const source = '@use "commons/variables";\n.test { display: block; }';
69
+ const containingFile = resolve(angularPkgDir, "src/fake-component.ts");
70
+ const loadPaths = [resolve(angularPkgDir, "scss")];
71
+
72
+ const result = compileScssString(source, containingFile, loadPaths);
73
+
74
+ expect(result.css).toBeDefined();
75
+ expect(result.dependencies.length).toBeGreaterThan(0);
76
+ expect(result.dependencies.some((d) => d.includes("_variables.scss"))).toBe(true);
77
+ });
78
+
79
+ // Acceptance: Scenario "node_modules 패키지 경로 @use를 해석한다"
80
+ it("resolves node_modules package @use paths", () => {
81
+ const source =
82
+ '@use "@simplysm/angular/scss/commons/variables";\n.test { display: block; }';
83
+ const containingFile = resolve(tmpDir, "src/fake-component.ts");
84
+ const loadPaths = [resolve(tmpDir, "node_modules")];
85
+
86
+ const result = compileScssString(source, containingFile, loadPaths);
87
+
88
+ expect(result.css).toBeDefined();
89
+ expect(result.dependencies.length).toBeGreaterThan(0);
90
+ expect(
91
+ result.dependencies.some((d) => d.includes("_variables.scss")),
92
+ ).toBe(true);
93
+ });
94
+
95
+ // Acceptance: Scenario "해석 실패 시 컴파일 에러가 발생한다"
96
+ it("throws when @use path cannot be resolved", () => {
97
+ const source = '@use "nonexistent/module";\n.test { display: block; }';
98
+ const containingFile = resolve(angularPkgDir, "src/fake-component.ts");
99
+ const loadPaths: string[] = [];
100
+
101
+ expect(() => compileScssString(source, containingFile, loadPaths)).toThrow();
102
+ });
103
+ });
104
+
105
+ describe("compileScssFile", () => {
106
+ // Acceptance: Scenario "styleUrls의 .scss 파일이 CSS로 컴파일된다"
107
+ it("compiles an external SCSS file to CSS", () => {
108
+ const filePath = resolve(angularPkgDir, "scss/styles.scss");
109
+ const loadPaths = [resolve(angularPkgDir, "scss")];
110
+
111
+ const result = compileScssFile(filePath, loadPaths);
112
+
113
+ expect(result.css).toContain("ng-icon");
114
+ expect(result.dependencies.length).toBeGreaterThan(0);
115
+ });
116
+
117
+ // Unit: dependencies include loaded partial files
118
+ it("includes loaded partial files in dependencies", () => {
119
+ const filePath = resolve(angularPkgDir, "scss/styles.scss");
120
+ const loadPaths = [resolve(angularPkgDir, "scss")];
121
+
122
+ const result = compileScssFile(filePath, loadPaths);
123
+
124
+ expect(
125
+ result.dependencies.some(
126
+ (d) => d.includes("_theme-variables.scss") || d.includes("_styles.scss"),
127
+ ),
128
+ ).toBe(true);
129
+ });
130
+ });
131
+ });
@@ -0,0 +1,77 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+
3
+ const mockExists = vi.fn();
4
+ const mockJitiImport = vi.fn();
5
+
6
+ vi.mock("@simplysm/core-node", () => ({
7
+ fsx: {
8
+ exists: (...args: unknown[]) => mockExists(...args),
9
+ },
10
+ }));
11
+
12
+ vi.mock("jiti", () => ({
13
+ createJiti: () => ({
14
+ import: (...args: unknown[]) => mockJitiImport(...args),
15
+ }),
16
+ }));
17
+
18
+ const { loadSdConfig } = await import("../../src/utils/sd-config");
19
+
20
+ describe("loadSdConfig", () => {
21
+ const baseParams = { cwd: "/project", dev: true, options: [] as string[] };
22
+
23
+ beforeEach(() => {
24
+ vi.clearAllMocks();
25
+ });
26
+
27
+ it("returns SdConfig on valid config", async () => {
28
+ mockExists.mockResolvedValue(true);
29
+ mockJitiImport.mockResolvedValue({
30
+ default: () => ({ packages: { core: { target: "node" } } }),
31
+ });
32
+
33
+ const config = await loadSdConfig(baseParams);
34
+ expect(config.packages).toBeDefined();
35
+ expect(config.packages["core"]).toEqual({ target: "node" });
36
+ });
37
+
38
+ it("throws when sd.config.ts does not exist", async () => {
39
+ mockExists.mockResolvedValue(false);
40
+
41
+ await expect(loadSdConfig(baseParams)).rejects.toThrow("sd.config.ts file not found");
42
+ });
43
+
44
+ it("throws when default export is not a function", async () => {
45
+ mockExists.mockResolvedValue(true);
46
+ mockJitiImport.mockResolvedValue({ default: "not-a-function" });
47
+
48
+ await expect(loadSdConfig(baseParams)).rejects.toThrow("must export a function as default");
49
+ });
50
+
51
+ it("throws when module has no default export", async () => {
52
+ mockExists.mockResolvedValue(true);
53
+ mockJitiImport.mockResolvedValue({ notDefault: true });
54
+
55
+ await expect(loadSdConfig(baseParams)).rejects.toThrow("must export a function as default");
56
+ });
57
+
58
+ it("throws when config has no packages property", async () => {
59
+ mockExists.mockResolvedValue(true);
60
+ mockJitiImport.mockResolvedValue({
61
+ default: () => ({ noPkgs: true }),
62
+ });
63
+
64
+ await expect(loadSdConfig(baseParams)).rejects.toThrow("not in the correct format");
65
+ });
66
+
67
+ it("passes params to the config function", async () => {
68
+ const configFn = vi.fn(() => ({ packages: { a: { target: "node" } } }));
69
+ mockExists.mockResolvedValue(true);
70
+ mockJitiImport.mockResolvedValue({ default: configFn });
71
+
72
+ const params = { cwd: "/project", dev: true, options: ["key=val"] };
73
+ await loadSdConfig(params);
74
+
75
+ expect(configFn).toHaveBeenCalledWith(params);
76
+ });
77
+ });