@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,46 +1,54 @@
1
1
  import { consola } from "consola";
2
2
  import { formatBuildMessages } from "./output-utils.js";
3
3
  const workerEventsLogger = consola.withTag("sd:cli:worker-events");
4
- function registerWorkerEventHandlers(workerInfo, opts, results, rebuildManager) {
5
- const completeTask = (result) => {
6
- results.set(opts.resultKey, result);
7
- workerInfo.buildResolver?.();
8
- workerInfo.buildResolver = void 0;
9
- workerInfo.isInitialBuild = false;
10
- };
11
- workerInfo.worker.on("buildStart", () => {
12
- if (!workerInfo.isInitialBuild) {
13
- workerInfo.buildResolver = rebuildManager.registerBuild(opts.resultKey, opts.listrTitle);
14
- }
15
- });
16
- workerInfo.worker.on("build", (data) => {
17
- workerEventsLogger.debug(`[${workerInfo.name}] build: success=${String(data.success)}`);
18
- if (data.warnings != null && data.warnings.length > 0) {
19
- workerEventsLogger.warn(
20
- formatBuildMessages(workerInfo.name, workerInfo.config.target, data.warnings)
21
- );
22
- }
23
- completeTask({
24
- name: workerInfo.name,
25
- target: workerInfo.config.target,
26
- type: opts.resultType,
27
- status: data.success === true ? "success" : "error",
28
- message: data.errors?.join("\n")
4
+ /**
5
+ * Register common Worker event handlers (buildStart, build, error only - serverReady not included)
6
+ *
7
+ * @param workerInfo Worker info
8
+ * @param opts Handler options
9
+ * @param results Result map
10
+ * @param rebuildManager Rebuild manager
11
+ * @returns completeTask function (saves result and signals build completion)
12
+ */
13
+ export function registerWorkerEventHandlers(workerInfo, opts, results, rebuildManager) {
14
+ const completeTask = (result) => {
15
+ results.set(opts.resultKey, result);
16
+ workerInfo.buildResolver?.();
17
+ workerInfo.buildResolver = undefined;
18
+ workerInfo.isInitialBuild = false;
19
+ };
20
+ // Build start (on rebuild)
21
+ workerInfo.worker.on("buildStart", () => {
22
+ if (!workerInfo.isInitialBuild) {
23
+ workerInfo.buildResolver = rebuildManager.registerBuild(opts.resultKey, opts.listrTitle);
24
+ }
29
25
  });
30
- });
31
- workerInfo.worker.on("error", (data) => {
32
- workerEventsLogger.debug(`[${workerInfo.name}] error: ${data.message}`);
33
- completeTask({
34
- name: workerInfo.name,
35
- target: workerInfo.config.target,
36
- type: opts.resultType,
37
- status: "error",
38
- message: data.message
26
+ // Build completion
27
+ workerInfo.worker.on("build", (data) => {
28
+ workerEventsLogger.debug(`[${workerInfo.name}] build: success=${String(data.success)}`);
29
+ // Print warnings
30
+ if (data.warnings != null && data.warnings.length > 0) {
31
+ workerEventsLogger.warn(formatBuildMessages(workerInfo.name, workerInfo.config.target, data.warnings));
32
+ }
33
+ completeTask({
34
+ name: workerInfo.name,
35
+ target: workerInfo.config.target,
36
+ type: opts.resultType,
37
+ status: data.success === true ? "success" : "error",
38
+ message: data.errors?.join("\n"),
39
+ });
39
40
  });
40
- });
41
- return completeTask;
41
+ // Error
42
+ workerInfo.worker.on("error", (data) => {
43
+ workerEventsLogger.debug(`[${workerInfo.name}] error: ${data.message}`);
44
+ completeTask({
45
+ name: workerInfo.name,
46
+ target: workerInfo.config.target,
47
+ type: opts.resultType,
48
+ status: "error",
49
+ message: data.message,
50
+ });
51
+ });
52
+ return completeTask;
42
53
  }
43
- export {
44
- registerWorkerEventHandlers
45
- };
46
- //# sourceMappingURL=worker-events.js.map
54
+ //# sourceMappingURL=worker-events.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/worker-events.ts"],
4
- "mappings": "AAAA,SAAS,eAAe;AAIxB,SAAS,2BAA2B;AAEpC,MAAM,qBAAqB,QAAQ,QAAQ,sBAAsB;AA2D1D,SAAS,4BACd,YASA,MACA,SACA,gBAC+B;AAC/B,QAAM,eAAe,CAAC,WAA8B;AAClD,YAAQ,IAAI,KAAK,WAAW,MAAM;AAClC,eAAW,gBAAgB;AAC3B,eAAW,gBAAgB;AAC3B,eAAW,iBAAiB;AAAA,EAC9B;AAGA,aAAW,OAAO,GAAG,cAAc,MAAM;AACvC,QAAI,CAAC,WAAW,gBAAgB;AAC9B,iBAAW,gBAAgB,eAAe,cAAc,KAAK,WAAW,KAAK,UAAU;AAAA,IACzF;AAAA,EACF,CAAC;AAGD,aAAW,OAAO,GAAG,SAAS,CAAC,SAAS;AACtC,uBAAmB,MAAM,IAAI,WAAW,IAAI,oBAAoB,OAAO,KAAK,OAAO,CAAC,EAAE;AAGtF,QAAI,KAAK,YAAY,QAAQ,KAAK,SAAS,SAAS,GAAG;AACrD,yBAAmB;AAAA,QACjB,oBAAoB,WAAW,MAAM,WAAW,OAAO,QAAQ,KAAK,QAAQ;AAAA,MAC9E;AAAA,IACF;AAEA,iBAAa;AAAA,MACX,MAAM,WAAW;AAAA,MACjB,QAAQ,WAAW,OAAO;AAAA,MAC1B,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK,YAAY,OAAO,YAAY;AAAA,MAC5C,SAAS,KAAK,QAAQ,KAAK,IAAI;AAAA,IACjC,CAAC;AAAA,EACH,CAAC;AAGD,aAAW,OAAO,GAAG,SAAS,CAAC,SAAS;AACtC,uBAAmB,MAAM,IAAI,WAAW,IAAI,YAAY,KAAK,OAAO,EAAE;AACtE,iBAAa;AAAA,MACX,MAAM,WAAW;AAAA,MACjB,QAAQ,WAAW,OAAO;AAAA,MAC1B,MAAM,KAAK;AAAA,MACX,QAAQ;AAAA,MACR,SAAS,KAAK;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AAED,SAAO;AACT;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"worker-events.js","sourceRoot":"","sources":["..\\..\\src\\utils\\worker-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAkDnE;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAQC,EACD,IAA+B,EAC/B,OAAiC,EACjC,cAA8B;IAE9B,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAQ,EAAE;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACpC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC;QAC7B,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;QACrC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC;IACpC,CAAC,CAAC;IAEF,2BAA2B;IAC3B,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACtC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YAC/B,UAAU,CAAC,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,oBAAoB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAExF,iBAAiB;QACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,kBAAkB,CAAC,IAAI,CACrB,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC9E,CAAC;QACJ,CAAC;QAED,YAAY,CAAC;YACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YAChC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACnD,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ;IACR,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,YAAY,CAAC;YACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YAChC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,32 +1,52 @@
1
1
  import consola, { LogLevels } from "consola";
2
- function applyDebugLevel() {
3
- if (process.env["SD_DEBUG"] === "true") {
4
- consola.level = LogLevels.debug;
5
- }
2
+ /**
3
+ * Apply debug log level in worker threads
4
+ *
5
+ * Checks the SD_DEBUG environment variable (set by --debug flag in main process)
6
+ * and applies debug log level to consola in the current worker thread.
7
+ * Must be called at worker module top level.
8
+ */
9
+ export function applyDebugLevel() {
10
+ if (process.env["SD_DEBUG"] === "true") {
11
+ consola.level = LogLevels.debug;
12
+ }
6
13
  }
7
- function registerCleanupHandlers(cleanup, logger) {
8
- const handleSignal = () => {
9
- Promise.resolve(cleanup()).catch((err) => {
10
- logger.error("cleanup failed", err);
11
- }).finally(() => {
12
- process.exit(0);
13
- });
14
- };
15
- process.on("SIGTERM", handleSignal);
16
- process.on("SIGINT", handleSignal);
14
+ /**
15
+ * Register cleanup handlers for worker process shutdown signals
16
+ *
17
+ * Registers SIGINT and SIGTERM handlers to gracefully cleanup resources
18
+ * before process exit. Both handlers execute the cleanup function and
19
+ * exit with code 0.
20
+ *
21
+ * @param cleanup - Cleanup function to execute on shutdown (sync or async)
22
+ * @param logger - Consola logger instance for error logging
23
+ */
24
+ export function registerCleanupHandlers(cleanup, logger) {
25
+ const handleSignal = () => {
26
+ Promise.resolve(cleanup())
27
+ .catch((err) => {
28
+ logger.error("cleanup failed", err);
29
+ })
30
+ .finally(() => {
31
+ process.exit(0);
32
+ });
33
+ };
34
+ process.on("SIGTERM", handleSignal);
35
+ process.on("SIGINT", handleSignal);
17
36
  }
18
- function createOnceGuard(label) {
19
- let called = false;
20
- return () => {
21
- if (called) {
22
- throw new Error(`${label} can only be called once per Worker`);
23
- }
24
- called = true;
25
- };
37
+ /**
38
+ * Create guard to prevent duplicate calls to Worker function
39
+ *
40
+ * @param label - Function name to use in error message
41
+ * @returns Guard function that throws error if called twice
42
+ */
43
+ export function createOnceGuard(label) {
44
+ let called = false;
45
+ return () => {
46
+ if (called) {
47
+ throw new Error(`${label} can only be called once per Worker`);
48
+ }
49
+ called = true;
50
+ };
26
51
  }
27
- export {
28
- applyDebugLevel,
29
- createOnceGuard,
30
- registerCleanupHandlers
31
- };
32
- //# sourceMappingURL=worker-utils.js.map
52
+ //# sourceMappingURL=worker-utils.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/worker-utils.ts"],
4
- "mappings": "AAAA,OAAO,WAAiC,iBAAiB;AASlD,SAAS,kBAAwB;AACtC,MAAI,QAAQ,IAAI,UAAU,MAAM,QAAQ;AACtC,YAAQ,QAAQ,UAAU;AAAA,EAC5B;AACF;AAYO,SAAS,wBACd,SACA,QACM;AACN,QAAM,eAAe,MAAM;AACzB,YAAQ,QAAQ,QAAQ,CAAC,EACtB,MAAM,CAAC,QAAQ;AACd,aAAO,MAAM,kBAAkB,GAAG;AAAA,IACpC,CAAC,EACA,QAAQ,MAAM;AACb,cAAQ,KAAK,CAAC;AAAA,IAChB,CAAC;AAAA,EACL;AAEA,UAAQ,GAAG,WAAW,YAAY;AAClC,UAAQ,GAAG,UAAU,YAAY;AACnC;AAQO,SAAS,gBAAgB,OAA2B;AACzD,MAAI,SAAS;AACb,SAAO,MAAM;AACX,QAAI,QAAQ;AACV,YAAM,IAAI,MAAM,GAAG,KAAK,qCAAqC;AAAA,IAC/D;AACA,aAAS;AAAA,EACX;AACF;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"worker-utils.js","sourceRoot":"","sources":["..\\..\\src\\utils\\worker-utils.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAwB,SAAS,EAAE,MAAM,SAAS,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAmC,EACnC,MAAuB;IAEvB,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACvB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO,GAAG,EAAE;QACV,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Plugin } from "vite";
2
+ export interface AngularVitestPluginOptions {
3
+ /** Angular 패키지의 tsconfig.json 절대 경로 */
4
+ tsconfig: string;
5
+ /** monorepo 워크스페이스 루트 경로. 미지정 시 tsconfig 기준 상위 2단계를 사용한다 */
6
+ cwd?: string;
7
+ }
8
+ export declare function angularVitestPlugin(options: AngularVitestPluginOptions): Plugin;
9
+ //# sourceMappingURL=vitest-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-plugin.d.ts","sourceRoot":"","sources":["..\\src\\vitest-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAMnC,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAoG/E"}
@@ -0,0 +1,85 @@
1
+ import path from "path";
2
+ import ts from "typescript";
3
+ import { NgtscProgram } from "./utils/angular-build.js";
4
+ import { compileScssString, compileScssFile } from "./utils/scss-compiler.js";
5
+ export function angularVitestPlugin(options) {
6
+ const compiledFiles = new Map();
7
+ return {
8
+ name: "angular-vitest",
9
+ enforce: "pre",
10
+ async buildStart() {
11
+ const configFile = ts.readConfigFile(options.tsconfig, ts.sys.readFile);
12
+ const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, ts.sys.resolvePath(options.tsconfig + "/.."));
13
+ // src/ 파일만 필터 (테스트 제외)
14
+ const sourceFiles = parsedConfig.fileNames.filter((f) => f.includes("/src/"));
15
+ const compilerOptions = {
16
+ ...parsedConfig.options,
17
+ noEmit: false,
18
+ declaration: false,
19
+ declarationMap: false,
20
+ sourceMap: false,
21
+ inlineSourceMap: true,
22
+ inlineSources: true,
23
+ };
24
+ const host = ts.createCompilerHost(compilerOptions);
25
+ // AngularLibraryHostExtensions duck-typing
26
+ const hostExt = host;
27
+ hostExt.readResource = (fileName) => ts.sys.readFile(fileName) ?? "";
28
+ const pkgDir = ts.sys.resolvePath(options.tsconfig + "/..");
29
+ const cwd = options.cwd ?? ts.sys.resolvePath(pkgDir + "/../..");
30
+ const loadPaths = [
31
+ path.join(pkgDir, "scss"),
32
+ path.join(cwd, "node_modules"),
33
+ ];
34
+ hostExt.transformResource = (data, context) => {
35
+ if (context.type !== "style")
36
+ return Promise.resolve(null);
37
+ if (context.resourceFile != null && context.resourceFile.endsWith(".scss")) {
38
+ const result = compileScssFile(context.resourceFile, loadPaths);
39
+ return Promise.resolve({ content: result.css });
40
+ }
41
+ if (context.resourceFile != null) {
42
+ // .css 등 비-SCSS 파일 -> null 반환 (readResource가 처리)
43
+ return Promise.resolve(null);
44
+ }
45
+ // 인라인 스타일 -- SCSS로 시도, 순수 CSS면 그대로 통과
46
+ const result = compileScssString(data, context.containingFile, loadPaths);
47
+ return Promise.resolve({ content: result.css });
48
+ };
49
+ // writeFile 인터셉트 — 메모리에 수집 (inline sourcemap이므로 .js만 수집)
50
+ let currentSourcePath = "";
51
+ host.writeFile = (fileName, data) => {
52
+ if (fileName.endsWith(".js")) {
53
+ compiledFiles.set(currentSourcePath, { js: data });
54
+ }
55
+ };
56
+ // NgtscProgram 생성 + AOT 컴파일
57
+ const program = new NgtscProgram(sourceFiles, compilerOptions, hostExt);
58
+ await program.compiler.analyzeAsync();
59
+ const { transformers } = program.compiler.prepareEmit();
60
+ const tsProgram = program.getTsProgram();
61
+ // per-file emit
62
+ for (const filePath of sourceFiles) {
63
+ const sf = tsProgram.getSourceFile(filePath);
64
+ if (sf == null)
65
+ continue;
66
+ currentSourcePath = normalizePath(filePath);
67
+ tsProgram.emit(sf, host.writeFile, undefined, false, transformers);
68
+ }
69
+ },
70
+ transform(_code, id) {
71
+ if (!id.endsWith(".ts") || id.includes("node_modules")) {
72
+ return undefined;
73
+ }
74
+ const compiled = compiledFiles.get(normalizePath(id));
75
+ if (compiled == null) {
76
+ return undefined;
77
+ }
78
+ return { code: compiled.js, map: compiled.map };
79
+ },
80
+ };
81
+ }
82
+ function normalizePath(p) {
83
+ return p.replace(/\\/g, "/");
84
+ }
85
+ //# sourceMappingURL=vitest-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-plugin.js","sourceRoot":"","sources":["..\\src\\vitest-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { SdBuildPackageConfig } from "../sd-config.types";
2
+ import type { BuildOutput } from "../engines/types";
3
+ import type { SerializedDiagnostic } from "../utils/typecheck-serialization";
4
+ export interface LibraryBuildInfo {
5
+ name: string;
6
+ config: SdBuildPackageConfig;
7
+ cwd: string;
8
+ pkgDir: string;
9
+ output: BuildOutput;
10
+ }
11
+ export interface LibraryBuildResult {
12
+ js: {
13
+ success: boolean;
14
+ errors?: string[];
15
+ warnings?: string[];
16
+ };
17
+ dts: {
18
+ success: boolean;
19
+ errors?: string[];
20
+ diagnostics: SerializedDiagnostic[];
21
+ };
22
+ }
23
+ export interface CombinedBuildEvent {
24
+ js: {
25
+ success: boolean;
26
+ errors?: string[];
27
+ warnings?: string[];
28
+ };
29
+ dts: {
30
+ success: boolean;
31
+ errors?: string[];
32
+ };
33
+ }
34
+ export interface LibraryBuildWorkerEvents extends Record<string, unknown> {
35
+ buildStart: Record<string, never>;
36
+ build: CombinedBuildEvent;
37
+ error: {
38
+ message: string;
39
+ };
40
+ }
41
+ declare function build(info: LibraryBuildInfo): LibraryBuildResult;
42
+ declare function startWatch(info: LibraryBuildInfo): Promise<void>;
43
+ declare function stopWatch(): Promise<void>;
44
+ declare const sender: {
45
+ send<TEventName extends string>(event: TEventName, data?: LibraryBuildWorkerEvents[TEventName] | undefined): void;
46
+ __methods: {
47
+ build: typeof build;
48
+ startWatch: typeof startWatch;
49
+ stopWatch: typeof stopWatch;
50
+ };
51
+ __events: LibraryBuildWorkerEvents;
52
+ };
53
+ export default sender;
54
+ //# sourceMappingURL=library-build.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-build.worker.d.ts","sourceRoot":"","sources":["..\\..\\src\\workers\\library-build.worker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAS7E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjE,GAAG,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,oBAAoB,EAAE,CAAA;KAAE,CAAC;CACnF;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjE,GAAG,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAsBD,iBAAS,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CAmBzD;AA0BD,iBAAe,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B/D;AAED,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;AAID,QAAA,MAAM,MAAM;;;eACD,OAAO,KAAK;oBAAc,OAAO,UAAU;mBAAa,OAAO,SAAS;;;CAMjF,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -0,0 +1,97 @@
1
+ import path from "path";
2
+ import { createWorker, FsWatcher } from "@simplysm/core-node";
3
+ import { err as errNs } from "@simplysm/core-common";
4
+ import { consola } from "consola";
5
+ import { runTscPackageBuild } from "../utils/tsc-build.js";
6
+ import { collectDeps } from "../utils/package-utils.js";
7
+ import { registerCleanupHandlers, createOnceGuard, applyDebugLevel } from "../utils/worker-utils.js";
8
+ applyDebugLevel();
9
+ //#endregion
10
+ //#region Resource Management
11
+ const logger = consola.withTag("sd:cli:library-build:worker");
12
+ let fsWatcher;
13
+ async function cleanup() {
14
+ const watcherToClose = fsWatcher;
15
+ fsWatcher = undefined;
16
+ await watcherToClose?.close();
17
+ }
18
+ registerCleanupHandlers(cleanup, logger);
19
+ //#endregion
20
+ //#region build (one-time build)
21
+ function build(info) {
22
+ const tscResult = runTscPackageBuild({
23
+ pkgDir: info.pkgDir,
24
+ cwd: info.cwd,
25
+ output: info.output,
26
+ });
27
+ return {
28
+ js: {
29
+ success: tscResult.success,
30
+ errors: tscResult.errors,
31
+ warnings: undefined,
32
+ },
33
+ dts: {
34
+ success: tscResult.success,
35
+ errors: tscResult.errors,
36
+ diagnostics: tscResult.diagnostics,
37
+ },
38
+ };
39
+ }
40
+ //#endregion
41
+ //#region startWatch (watch mode)
42
+ const guardStartWatch = createOnceGuard("startWatch");
43
+ // Mutable state for watch mode
44
+ let watchInfo;
45
+ function rebuildAll() {
46
+ const info = watchInfo;
47
+ const tscResult = runTscPackageBuild({
48
+ pkgDir: info.pkgDir,
49
+ cwd: info.cwd,
50
+ output: info.output,
51
+ });
52
+ return {
53
+ js: { success: tscResult.success, errors: tscResult.errors },
54
+ dts: { success: tscResult.success, errors: tscResult.errors },
55
+ };
56
+ }
57
+ async function startWatch(info) {
58
+ guardStartWatch();
59
+ watchInfo = info;
60
+ try {
61
+ // Initial build
62
+ const initialResult = rebuildAll();
63
+ sender.send("build", initialResult);
64
+ // Collect workspace dependency paths
65
+ const { workspaceDeps } = collectDeps(info.pkgDir, info.cwd);
66
+ // Start FsWatcher — own src/ + workspace deps' src/
67
+ const watchPaths = [
68
+ path.join(info.pkgDir, "src", "**", "*.{ts,tsx}"),
69
+ ...workspaceDeps.map((d) => path.join(info.cwd, "packages", d, "src", "**", "*.{ts,tsx}")),
70
+ ];
71
+ fsWatcher = await FsWatcher.watch(watchPaths);
72
+ fsWatcher.onChange({ delay: 300 }, () => {
73
+ try {
74
+ sender.send("buildStart", {});
75
+ const result = rebuildAll();
76
+ sender.send("build", result);
77
+ }
78
+ catch (err) {
79
+ sender.send("error", { message: errNs.message(err) });
80
+ }
81
+ });
82
+ }
83
+ catch (err) {
84
+ sender.send("error", { message: errNs.message(err) });
85
+ }
86
+ }
87
+ async function stopWatch() {
88
+ await cleanup();
89
+ }
90
+ //#endregion
91
+ const sender = createWorker({
92
+ build,
93
+ startWatch,
94
+ stopWatch,
95
+ });
96
+ export default sender;
97
+ //# sourceMappingURL=library-build.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-build.worker.js","sourceRoot":"","sources":["..\\..\\src\\workers\\library-build.worker.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  import { createWorker } from "@simplysm/core-node";
2
2
  import { executeLint } from "../commands/lint.js";
3
+ //#region Worker
4
+ /**
5
+ * Lint worker.
6
+ * Worker to run lint in separate thread from check command and BuildOrchestrator
7
+ */
3
8
  async function lint(options) {
4
- return executeLint(options);
9
+ return executeLint(options);
5
10
  }
6
- var lint_worker_default = createWorker({ lint });
7
- export {
8
- lint_worker_default as default
9
- };
10
- //# sourceMappingURL=lint.worker.js.map
11
+ export default createWorker({ lint });
12
+ //#endregion
13
+ //# sourceMappingURL=lint.worker.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/workers/lint.worker.ts"],
4
- "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,mBAAsD;AAQ/D,eAAe,KAAK,SAA2C;AAC7D,SAAO,YAAY,OAAO;AAC5B;AAEA,IAAO,sBAAQ,aAAa,EAAE,KAAK,CAAC;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"lint.worker.js","sourceRoot":"","sources":["..\\..\\src\\workers\\lint.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAqC,MAAM,kBAAkB,CAAC;AAElF,gBAAgB;AAEhB;;;GAGG;AACH,KAAK,UAAU,IAAI,CAAC,OAAoB;IACtC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,eAAe,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtC,YAAY"}
@@ -0,0 +1,23 @@
1
+ import { type NgtscBuildInfo, type NgtscBuildResult, type NgtscCombinedBuildEvent } from "../utils/ngtsc-build-core";
2
+ export type { NgtscBuildInfo, NgtscBuildResult, NgtscCombinedBuildEvent };
3
+ export interface NgtscBuildWorkerEvents extends Record<string, unknown> {
4
+ buildStart: Record<string, never>;
5
+ build: NgtscCombinedBuildEvent;
6
+ error: {
7
+ message: string;
8
+ };
9
+ }
10
+ declare function build(info: NgtscBuildInfo): Promise<NgtscBuildResult>;
11
+ declare function startWatch(info: NgtscBuildInfo): Promise<void>;
12
+ declare function stopWatch(): Promise<void>;
13
+ declare const sender: {
14
+ send<TEventName extends string>(event: TEventName, data?: NgtscBuildWorkerEvents[TEventName] | undefined): void;
15
+ __methods: {
16
+ build: typeof build;
17
+ startWatch: typeof startWatch;
18
+ stopWatch: typeof stopWatch;
19
+ };
20
+ __events: NgtscBuildWorkerEvents;
21
+ };
22
+ export default sender;
23
+ //# sourceMappingURL=ngtsc-build.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngtsc-build.worker.d.ts","sourceRoot":"","sources":["..\\..\\src\\workers\\ngtsc-build.worker.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,2BAA2B,CAAC;AAQnC,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;AAE1E,MAAM,WAAW,sBAAuB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAyBD,iBAAe,KAAK,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEpE;AAYD,iBAAe,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE7D;AAED,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;AAID,QAAA,MAAM,MAAM;;;eACD,OAAO,KAAK;oBAAc,OAAO,UAAU;mBAAa,OAAO,SAAS;;;CAMjF,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -0,0 +1,98 @@
1
+ import path from "path";
2
+ import { createWorker, FsWatcher } from "@simplysm/core-node";
3
+ import { err as errNs } from "@simplysm/core-common";
4
+ import { consola } from "consola";
5
+ import { registerCleanupHandlers, createOnceGuard, applyDebugLevel } from "../utils/worker-utils.js";
6
+ import { runNgtscBuild, runNgtscRebuild, } from "../utils/ngtsc-build-core.js";
7
+ import { collectDeps } from "../utils/package-utils.js";
8
+ applyDebugLevel();
9
+ //#endregion
10
+ //#region Resource Management
11
+ const logger = consola.withTag("sd:cli:ngtsc-build:worker");
12
+ let fsWatcher;
13
+ async function cleanup() {
14
+ const watcherToClose = fsWatcher;
15
+ fsWatcher = undefined;
16
+ if (watcherToClose != null) {
17
+ await watcherToClose.close();
18
+ }
19
+ }
20
+ registerCleanupHandlers(cleanup, logger);
21
+ //#endregion
22
+ //#region build (one-time build)
23
+ async function build(info) {
24
+ return runNgtscBuild(info);
25
+ }
26
+ //#endregion
27
+ //#region startWatch (watch mode)
28
+ const guardStartWatch = createOnceGuard("startWatch");
29
+ let watchInfo;
30
+ let oldProgram;
31
+ let currentScssDependencies;
32
+ async function startWatch(info) {
33
+ guardStartWatch();
34
+ watchInfo = info;
35
+ try {
36
+ // Initial build
37
+ const { result: initialResult, program, scssDependencies: initialDeps } = await runNgtscRebuild(info);
38
+ oldProgram = program;
39
+ currentScssDependencies = initialDeps;
40
+ sender.send("build", initialResult);
41
+ // Collect workspace dependency paths
42
+ const { workspaceDeps } = collectDeps(info.pkgDir, info.cwd);
43
+ // Start FsWatcher — own src/ + scss/ + workspace deps' src/ + scss/
44
+ const watchPaths = [
45
+ path.join(info.pkgDir, "src", "**", "*.{ts,tsx,scss,css}"),
46
+ path.join(info.pkgDir, "scss", "**", "*.{scss,css}"),
47
+ ...workspaceDeps.flatMap((d) => {
48
+ const depDir = path.join(info.cwd, "packages", d);
49
+ return [
50
+ path.join(depDir, "src", "**", "*.{ts,tsx,scss,css}"),
51
+ path.join(depDir, "scss", "**", "*.{scss,css}"),
52
+ ];
53
+ }),
54
+ ];
55
+ fsWatcher = await FsWatcher.watch(watchPaths);
56
+ fsWatcher.onChange({ delay: 300 }, async (changedFiles) => {
57
+ try {
58
+ sender.send("buildStart", {});
59
+ // Collect modified resource files (.scss/.css)
60
+ const modifiedResourceFiles = new Set();
61
+ for (const f of changedFiles) {
62
+ if (f.path.endsWith(".scss") || f.path.endsWith(".css")) {
63
+ modifiedResourceFiles.add(f.path);
64
+ // Also add files that depend on this changed file
65
+ if (currentScssDependencies != null) {
66
+ for (const [containingFile, deps] of currentScssDependencies) {
67
+ if (deps.has(f.path)) {
68
+ modifiedResourceFiles.add(containingFile);
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ const { result, program: newProgram, scssDependencies: newDeps } = await runNgtscRebuild(watchInfo, oldProgram, modifiedResourceFiles.size > 0 ? modifiedResourceFiles : undefined);
75
+ oldProgram = newProgram;
76
+ currentScssDependencies = newDeps;
77
+ sender.send("build", result);
78
+ }
79
+ catch (err) {
80
+ sender.send("error", { message: errNs.message(err) });
81
+ }
82
+ });
83
+ }
84
+ catch (err) {
85
+ sender.send("error", { message: errNs.message(err) });
86
+ }
87
+ }
88
+ async function stopWatch() {
89
+ await cleanup();
90
+ }
91
+ //#endregion
92
+ const sender = createWorker({
93
+ build,
94
+ startWatch,
95
+ stopWatch,
96
+ });
97
+ export default sender;
98
+ //# sourceMappingURL=ngtsc-build.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngtsc-build.worker.js","sourceRoot":"","sources":["..\\..\\src\\workers\\ngtsc-build.worker.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EACL,aAAa,EACb,eAAe,GAIhB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,eAAe,EAAE,CAAC;AAYlB,YAAY;AAEZ,6BAA6B;AAE7B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAE5D,IAAI,SAAgC,CAAC;AAErC,KAAK,UAAU,OAAO;IACpB,MAAM,cAAc,GAAG,SAAS,CAAC;IACjC,SAAS,GAAG,SAAS,CAAC;IAEtB,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEzC,YAAY;AAEZ,gCAAgC;AAEhC,KAAK,UAAU,KAAK,CAAC,IAAoB;IACvC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,YAAY;AAEZ,iCAAiC;AAEjC,MAAM,eAAe,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;AAEtD,IAAI,SAAqC,CAAC;AAC1C,IAAI,UAAoC,CAAC;AACzC,IAAI,uBAA6D,CAAC;AAElE,KAAK,UAAU,UAAU,CAAC,IAAoB;IAC5C,eAAe,EAAE,CAAC;IAClB,SAAS,GAAG,IAAI,CAAC;IAEjB,IAAI,CAAC;QACH,gBAAgB;QAChB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,GACrE,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9B,UAAU,GAAG,OAAO,CAAC;QACrB,uBAAuB,GAAG,WAAW,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEpC,qCAAqC;QACrC,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7D,oEAAoE;QACpE,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC;YACpD,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;gBAClD,OAAO;oBACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC;oBACrD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC;iBAChD,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;QACF,SAAS,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE9C,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YACxD,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAE9B,+CAA+C;gBAC/C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAChD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;oBAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBACxD,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAClC,kDAAkD;wBAClD,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC;4BACpC,KAAK,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,uBAAuB,EAAE,CAAC;gCAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oCACrB,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gCAC5C,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,MAAM,eAAe,CACtF,SAAU,EACV,UAAU,EACV,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CACnE,CAAC;gBACF,UAAU,GAAG,UAAU,CAAC;gBACxB,uBAAuB,GAAG,OAAO,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,YAAY;AAEZ,MAAM,MAAM,GAAG,YAAY,CAGzB;IACA,KAAK;IACL,UAAU;IACV,SAAS;CACV,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}