@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,84 +0,0 @@
1
- import { lazy } from "solid-js";
2
- import { createAppStructure } from "@simplysm/solid";
3
- import { useAuth } from "./AuthProvider";
4
-
5
- const MainView = lazy(() =>
6
- import("../views/home/main/MainView").then((m) => ({ default: m.MainView })),
7
- );
8
- const MyInfoDetail = lazy(() =>
9
- import("../views/home/my-info/MyInfoDetail").then((m) => ({ default: m.MyInfoDetail })),
10
- );
11
- const EmployeeSheet = lazy(() =>
12
- import("../views/home/base/employee/EmployeeSheet").then((m) => ({ default: m.EmployeeSheet })),
13
- );
14
- const RolePermissionView = lazy(() =>
15
- import("../views/home/base/role-permission/RolePermissionView").then((m) => ({
16
- default: m.RolePermissionView,
17
- })),
18
- );
19
- const SystemLogSheet = lazy(() =>
20
- import("../views/home/system/system-log/SystemLogSheet").then((m) => ({
21
- default: m.SystemLogSheet,
22
- })),
23
- );
24
-
25
- export const { AppStructureProvider, useAppStructure } = createAppStructure(() => {
26
- const auth = useAuth();
27
- return {
28
- permRecord: () => auth.authInfo()?.permissions,
29
- items: [
30
- {
31
- code: "home",
32
- title: "홈",
33
- children: [
34
- {
35
- code: "main",
36
- title: "메인",
37
- component: MainView,
38
- },
39
- {
40
- code: "my-info",
41
- title: "설정",
42
- component: MyInfoDetail,
43
- isNotMenu: true,
44
- },
45
- {
46
- code: "base",
47
- title: "기준정보",
48
- children: [
49
- {
50
- code: "employee",
51
- title: "직원",
52
- component: EmployeeSheet,
53
- perms: ["use", "edit"],
54
- subPerms: [
55
- { title: "인증정보", code: "auth", perms: ["use", "edit"] },
56
- { title: "개인정보", code: "personal", perms: ["use", "edit"] },
57
- { title: "급여정보", code: "payroll", perms: ["use", "edit"] },
58
- ],
59
- },
60
- {
61
- code: "role-permission",
62
- title: "권한그룹",
63
- component: RolePermissionView,
64
- perms: ["use", "edit"],
65
- },
66
- ],
67
- },
68
- {
69
- code: "system",
70
- title: "시스템",
71
- children: [
72
- {
73
- code: "system-log",
74
- title: "시스템로그",
75
- component: SystemLogSheet,
76
- perms: ["use"],
77
- },
78
- ],
79
- },
80
- ],
81
- },
82
- ],
83
- };
84
- });
@@ -1,96 +0,0 @@
1
- import { createContext, useContext, type Accessor, type ParentComponent } from "solid-js";
2
- import { createSignal } from "solid-js";
3
- import { useLocalStorage } from "@simplysm/solid";
4
- import { useAppService } from "./AppServiceProvider";
5
- import type { IAuthData } from "@{{projectName}}/server";
6
- import { AuthChangeEvent } from "../events/AuthChangeEvent";
7
-
8
- interface IAuthContextValue {
9
- authInfo: Accessor<IAuthData | undefined>;
10
- login: (email: string, password: string) => Promise<void>;
11
- logout: () => Promise<void>;
12
- tryReloadAuth: () => Promise<boolean>;
13
- }
14
-
15
- const AuthContext = createContext<IAuthContextValue>();
16
-
17
- export const AuthProvider: ParentComponent = (props) => {
18
- const appService = useAppService();
19
- const [authInfo, setAuthInfo] = createSignal<IAuthData>();
20
- const [token, setToken] = useLocalStorage<string | undefined>("auth-token");
21
-
22
- let listenerKey: string | undefined;
23
-
24
- const registerAuthEvent = async (employeeId: number) => {
25
- await unregisterAuthEvent();
26
- listenerKey = await appService.sc.addListener(
27
- AuthChangeEvent,
28
- { employeeId },
29
- async () => {
30
- await tryReloadAuth();
31
- },
32
- );
33
- };
34
-
35
- const unregisterAuthEvent = async () => {
36
- if (listenerKey != null) {
37
- await appService.sc.removeListener(listenerKey);
38
- listenerKey = undefined;
39
- }
40
- };
41
-
42
- const login = async (email: string, password: string) => {
43
- const result = await appService.auth.login(email, password);
44
-
45
- const { token: newToken, ...authData } = result;
46
- setToken(newToken);
47
- await appService.sc.auth(newToken);
48
-
49
- setAuthInfo(authData);
50
- await registerAuthEvent(authData.employeeId);
51
- };
52
-
53
- const logout = async () => {
54
- await unregisterAuthEvent();
55
- setToken(undefined);
56
- setAuthInfo(undefined);
57
- };
58
-
59
- const tryReloadAuth = async (): Promise<boolean> => {
60
- const currentToken = token();
61
- if (currentToken == null || currentToken === "") return false;
62
-
63
- try {
64
- await appService.sc.auth(currentToken);
65
-
66
- const result = await appService.auth.refresh();
67
-
68
- const { token: newToken, ...authData } = result;
69
- setToken(newToken);
70
- await appService.sc.auth(newToken);
71
-
72
- setAuthInfo(authData);
73
- await registerAuthEvent(authData.employeeId);
74
-
75
- return true;
76
- } catch (err) {
77
- // eslint-disable-next-line no-console
78
- console.warn("Failed to reload auth:", err);
79
- await unregisterAuthEvent();
80
- setToken(undefined);
81
- return false;
82
- }
83
- };
84
-
85
- return (
86
- <AuthContext.Provider value=\{{ authInfo, login, logout, tryReloadAuth }}>
87
- {props.children}
88
- </AuthContext.Provider>
89
- );
90
- };
91
-
92
- export function useAuth(): IAuthContextValue {
93
- const ctx = useContext(AuthContext);
94
- if (!ctx) throw new Error("AuthProvider is required.");
95
- return ctx;
96
- }
@@ -1,67 +0,0 @@
1
- import { useSharedData } from "@simplysm/solid";
2
- import { expr } from "@{{projectName}}/db-main";
3
- import { useAppService } from "./AppServiceProvider";
4
-
5
- export type EmployeeSharedItem = {
6
- id: number;
7
- name: string;
8
- email: string | undefined;
9
- isDeleted: boolean;
10
- };
11
-
12
- export type RoleSharedItem = {
13
- id: number;
14
- name: string;
15
- isDeleted: boolean;
16
- };
17
-
18
- export type AppSharedData = {
19
- employee: EmployeeSharedItem;
20
- role: RoleSharedItem;
21
- };
22
-
23
- export function configureSharedData() {
24
- const appService = useAppService();
25
-
26
- useSharedData<AppSharedData>().configure((_origin) => ({
27
- employee: {
28
- fetch: (changeKeys) => {
29
- return appService.orm.connect(async (db) => {
30
- let qr = db.employee().select((item) => ({
31
- id: item.id,
32
- name: item.name,
33
- email: item.email,
34
- isDeleted: item.isDeleted,
35
- }));
36
- if (changeKeys) {
37
- qr = qr.where((item) => [expr.in(item.id, changeKeys)]);
38
- }
39
- return qr.execute();
40
- });
41
- },
42
- orderBy: [[(item) => item.name, "asc"]],
43
- getKey: (item) => item.id,
44
- getSearchText: (item: EmployeeSharedItem) => item.name,
45
- getIsHidden: (item: EmployeeSharedItem) => item.isDeleted,
46
- },
47
- role: {
48
- fetch: (changeKeys) => {
49
- return appService.orm.connect(async (db) => {
50
- let qr = db.role().select((item) => ({
51
- id: item.id,
52
- name: item.name,
53
- isDeleted: item.isDeleted,
54
- }));
55
- if (changeKeys) {
56
- qr = qr.where((item) => [expr.in(item.id, changeKeys)]);
57
- }
58
- return qr.execute();
59
- });
60
- },
61
- orderBy: [[(item) => item.name, "asc"]],
62
- getKey: (item) => item.id,
63
- getSearchText: (item: RoleSharedItem) => item.name,
64
- getIsHidden: (item: RoleSharedItem) => item.isDeleted,
65
- },
66
- }));
67
- }
@@ -1,132 +0,0 @@
1
- import { createSignal, onMount } from "solid-js";
2
- import { createStore } from "solid-js/store";
3
- import { useNavigate } from "@solidjs/router";
4
- import {
5
- BusyContainer,
6
- Button,
7
- Card,
8
- FormGroup,
9
- Icon,
10
- TextInput,
11
- ThemeToggle,
12
- useLocalStorage,
13
- useNotification,
14
- } from "@simplysm/solid";
15
- import { useAuth } from "../../providers/AuthProvider";
16
- import clsx from "clsx";
17
- import { IconLock, IconMail } from "@tabler/icons-solidjs";
18
-
19
- type Data = {
20
- email?: string;
21
- password?: string;
22
- };
23
-
24
- export function LoginView() {
25
- const auth = useAuth();
26
- const navigate = useNavigate();
27
- const noti = useNotification();
28
-
29
- const [busyCount, setBusyCount] = createSignal(0);
30
- const [ready, setReady] = createSignal(false);
31
-
32
- const [lastEmail, setLastEmail] = useLocalStorage<string | undefined>("last-login-email");
33
- const [data, setData] = createStore<Data>({ email: lastEmail() });
34
-
35
- onMount(async () => {
36
- const ok = await auth.tryReloadAuth();
37
- if (ok) {
38
- navigate("/home/main", { replace: true });
39
- return;
40
- }
41
- setReady(true);
42
- });
43
-
44
- const handleSubmit = async (e: Event) => {
45
- e.preventDefault();
46
- if (busyCount() > 0) return;
47
-
48
- const currEmail = data.email!;
49
- const currPassword = data.password!;
50
-
51
- setBusyCount((c) => c + 1);
52
- try {
53
- await auth.login(currEmail, currPassword);
54
- setLastEmail(currEmail);
55
- navigate("/home/main", { replace: true });
56
- } catch (err) {
57
- noti.error(err, "로그인 오류");
58
- }
59
- setBusyCount((c) => c - 1);
60
- };
61
-
62
- return (
63
- <BusyContainer
64
- ready={ready()}
65
- busy={busyCount() > 0}
66
- class={clsx("flex items-center justify-center", "pb-64", "bg-base-100 dark:bg-base-900")}
67
- >
68
- <div class={"max-w-sm"}>
69
- {/* Logo */}
70
- <div class={clsx("flex justify-center", "mb-4", "animate-[fade-in_0.6s_ease-out_both]")}>
71
- <img src="assets/logo.png" alt="logo" class="scale-75" />
72
- </div>
73
-
74
- <Card class={clsx("rounded-2xl p-8", "animate-[fade-in_0.6s_ease-out_both] [animation-delay:0.3s]")}>
75
- {/* Form */}
76
- <form onSubmit={handleSubmit}>
77
- <FormGroup class={"w-full"}>
78
- <FormGroup.Item>
79
- <TextInput
80
- class="w-full"
81
- type="email"
82
- placeholder="이메일을 입력하세요"
83
- required
84
- lazyValidation
85
- size="lg"
86
- autocomplete="username"
87
- value={data.email}
88
- onValueChange={(v) => setData("email", v)}
89
- >
90
- <TextInput.Prefix>
91
- <Icon icon={IconMail} />
92
- </TextInput.Prefix>
93
- </TextInput>
94
- </FormGroup.Item>
95
- <FormGroup.Item>
96
- <TextInput
97
- required
98
- lazyValidation
99
- class="w-full"
100
- type="password"
101
- placeholder="비밀번호를 입력하세요"
102
- size="lg"
103
- autocomplete="current-password"
104
- value={data.password}
105
- onValueChange={(v) => setData("password", v)}
106
- >
107
- <TextInput.Prefix>
108
- <Icon icon={IconLock} />
109
- </TextInput.Prefix>
110
- </TextInput>
111
- </FormGroup.Item>
112
-
113
- <FormGroup.Item>
114
- <Button
115
- theme="primary"
116
- variant="solid"
117
- class="w-full"
118
- type="submit"
119
- size="lg"
120
- disabled={busyCount() > 0}
121
- >
122
- 로그인
123
- </Button>
124
- </FormGroup.Item>
125
- </FormGroup>
126
- </form>
127
- </Card>
128
- </div>
129
- <ThemeToggle class="fixed bottom-4 right-4" />
130
- </BusyContainer>
131
- );
132
- }
@@ -1,108 +0,0 @@
1
- import { createSignal, onMount, Show, Suspense } from "solid-js";
2
- import { type RouteSectionProps, useLocation, useNavigate } from "@solidjs/router";
3
- import {
4
- BusyContainer,
5
- NotificationBell,
6
- Sidebar,
7
- ThemeToggle,
8
- Topbar,
9
- useNotification,
10
- } from "@simplysm/solid";
11
- import { env } from "@simplysm/core-common";
12
- import { useAuth } from "../../providers/AuthProvider";
13
- import { useAppService } from "../../providers/AppServiceProvider";
14
- import { useAppStructure } from "../../providers/AppStructureProvider";
15
-
16
- function HomeContent(props: RouteSectionProps) {
17
- const auth = useAuth();
18
- const appService = useAppService();
19
- const navigate = useNavigate();
20
- const location = useLocation();
21
- const noti = useNotification();
22
- const appStructure = useAppStructure();
23
-
24
- const [ready, setReady] = createSignal(false);
25
-
26
- const titleChain = () => {
27
- const chain = appStructure.getTitleChainByHref(location.pathname);
28
- // Exclude the top-level group (home)
29
- return chain.length > 1 ? chain.slice(1) : chain;
30
- };
31
-
32
- const employeeMenus = [
33
- {
34
- title: "설정",
35
- onClick: () => navigate("/home/my-info"),
36
- },
37
- {
38
- title: "로그아웃",
39
- onClick: async () => {
40
- await auth.logout();
41
- navigate("/login", { replace: true });
42
- },
43
- },
44
- ];
45
-
46
- onMount(async () => {
47
- try {
48
- // 1. Check auth - reload token only if not already authenticated
49
- if (!auth.authInfo()) {
50
- const authOk = await auth.tryReloadAuth();
51
- if (!authOk) {
52
- navigate("/login", { replace: true });
53
- return;
54
- }
55
- }
56
-
57
- await appService.orm.connectWithoutTransaction(async (db) => {
58
- await db.initialize();
59
- });
60
-
61
- setReady(true);
62
- } catch (err) {
63
- noti.error(err, "초기화 실패");
64
- }
65
- });
66
-
67
- return (
68
- <BusyContainer ready={ready()}>
69
- <Sidebar.Container>
70
- <Sidebar>
71
- <div class="p-2 px-4">
72
- <img src="assets/logo-landscape.png" alt="SIMPLYSM" class="h-9 w-auto" />
73
- </div>
74
- <Sidebar.User
75
- name={auth.authInfo()?.employeeName ?? ""}
76
- description={auth.authInfo()?.email ?? ""}
77
- menus={employeeMenus}
78
- />
79
- <Sidebar.Menu menus={appStructure.usableMenus()} class="flex-1" />
80
- <div class="pointer-events-none px-2 py-1 text-sm text-black/30 dark:text-white/30">
81
- v{env.VER}
82
- <Show when={env.DEV}>(dev)</Show>
83
- </div>
84
- </Sidebar>
85
-
86
- <Topbar.Container>
87
- <Topbar>
88
- <span class="ml-2 mr-6 text-lg font-bold">{titleChain().join(" > ")}</span>
89
- <Topbar.Actions />
90
- <div class="flex-1" />
91
- <NotificationBell />
92
- <ThemeToggle size="sm" />
93
- </Topbar>
94
-
95
- <main class="flex-1 overflow-auto">
96
- <Suspense fallback={<BusyContainer ready={false} />}>
97
- {props.children}
98
- </Suspense>
99
- </main>
100
- </Topbar.Container>
101
- </Sidebar.Container>
102
- </BusyContainer>
103
- );
104
- }
105
-
106
- export function HomeView(props: RouteSectionProps) {
107
- return <HomeContent {...props} />;
108
- }