@simplysm/sd-cli 13.0.100 → 14.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/dist/commands/build.js +29 -19
  2. package/dist/commands/build.js.map +1 -6
  3. package/dist/commands/check.d.ts +1 -0
  4. package/dist/commands/check.d.ts.map +1 -1
  5. package/dist/commands/check.js +130 -115
  6. package/dist/commands/check.js.map +1 -6
  7. package/dist/commands/dev.d.ts +6 -7
  8. package/dist/commands/dev.d.ts.map +1 -1
  9. package/dist/commands/dev.js +24 -14
  10. package/dist/commands/dev.js.map +1 -6
  11. package/dist/commands/lint.d.ts +1 -1
  12. package/dist/commands/lint.js +158 -116
  13. package/dist/commands/lint.js.map +1 -6
  14. package/dist/commands/publish.d.ts.map +1 -1
  15. package/dist/commands/publish.js +637 -510
  16. package/dist/commands/publish.js.map +1 -6
  17. package/dist/commands/replace-deps.js +12 -12
  18. package/dist/commands/replace-deps.js.map +1 -6
  19. package/dist/commands/typecheck.d.ts +5 -30
  20. package/dist/commands/typecheck.d.ts.map +1 -1
  21. package/dist/commands/typecheck.js +144 -207
  22. package/dist/commands/typecheck.js.map +1 -6
  23. package/dist/commands/watch.d.ts +6 -4
  24. package/dist/commands/watch.d.ts.map +1 -1
  25. package/dist/commands/watch.js +25 -16
  26. package/dist/commands/watch.js.map +1 -6
  27. package/dist/engines/NgtscEngine.d.ts +47 -0
  28. package/dist/engines/NgtscEngine.d.ts.map +1 -0
  29. package/dist/engines/NgtscEngine.js +151 -0
  30. package/dist/engines/NgtscEngine.js.map +1 -0
  31. package/dist/engines/ServerEsbuildEngine.d.ts +47 -0
  32. package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -0
  33. package/dist/engines/ServerEsbuildEngine.js +159 -0
  34. package/dist/engines/ServerEsbuildEngine.js.map +1 -0
  35. package/dist/engines/TscEngine.d.ts +47 -0
  36. package/dist/engines/TscEngine.d.ts.map +1 -0
  37. package/dist/engines/TscEngine.js +153 -0
  38. package/dist/engines/TscEngine.js.map +1 -0
  39. package/dist/engines/ViteEngine.d.ts +49 -0
  40. package/dist/engines/ViteEngine.d.ts.map +1 -0
  41. package/dist/engines/ViteEngine.js +161 -0
  42. package/dist/engines/ViteEngine.js.map +1 -0
  43. package/dist/engines/index.d.ts +26 -0
  44. package/dist/engines/index.d.ts.map +1 -0
  45. package/dist/engines/index.js +30 -0
  46. package/dist/engines/index.js.map +1 -0
  47. package/dist/engines/types.d.ts +77 -0
  48. package/dist/engines/types.d.ts.map +1 -0
  49. package/dist/engines/types.js +2 -0
  50. package/dist/engines/types.js.map +1 -0
  51. package/dist/index.d.ts +0 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +2 -2
  54. package/dist/index.js.map +1 -6
  55. package/dist/infra/ResultCollector.d.ts +1 -1
  56. package/dist/infra/ResultCollector.d.ts.map +1 -1
  57. package/dist/infra/ResultCollector.js +30 -27
  58. package/dist/infra/ResultCollector.js.map +1 -6
  59. package/dist/infra/SignalHandler.js +45 -42
  60. package/dist/infra/SignalHandler.js.map +1 -6
  61. package/dist/infra/WorkerManager.js +56 -53
  62. package/dist/infra/WorkerManager.js.map +1 -6
  63. package/dist/orchestrators/BuildOrchestrator.d.ts +33 -1
  64. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  65. package/dist/orchestrators/BuildOrchestrator.js +314 -309
  66. package/dist/orchestrators/BuildOrchestrator.js.map +1 -6
  67. package/dist/orchestrators/DevWatchOrchestrator.d.ts +60 -0
  68. package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -0
  69. package/dist/orchestrators/DevWatchOrchestrator.js +465 -0
  70. package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -0
  71. package/dist/sd-cli-entry.d.ts.map +1 -1
  72. package/dist/sd-cli-entry.js +190 -266
  73. package/dist/sd-cli-entry.js.map +1 -6
  74. package/dist/sd-cli.js +77 -49
  75. package/dist/sd-cli.js.map +1 -6
  76. package/dist/sd-config.types.d.ts +2 -0
  77. package/dist/sd-config.types.d.ts.map +1 -1
  78. package/dist/sd-config.types.js +2 -1
  79. package/dist/sd-config.types.js.map +1 -6
  80. package/dist/utils/angular-build.d.ts +77 -0
  81. package/dist/utils/angular-build.d.ts.map +1 -0
  82. package/dist/utils/angular-build.js +84 -0
  83. package/dist/utils/angular-build.js.map +1 -0
  84. package/dist/utils/build-env.js +9 -9
  85. package/dist/utils/build-env.js.map +1 -6
  86. package/dist/utils/concurrency.d.ts +15 -0
  87. package/dist/utils/concurrency.d.ts.map +1 -0
  88. package/dist/utils/concurrency.js +38 -0
  89. package/dist/utils/concurrency.js.map +1 -0
  90. package/dist/utils/copy-public.js +104 -87
  91. package/dist/utils/copy-public.js.map +1 -6
  92. package/dist/utils/copy-src.js +49 -35
  93. package/dist/utils/copy-src.js.map +1 -6
  94. package/dist/utils/esbuild-config.d.ts +0 -29
  95. package/dist/utils/esbuild-config.d.ts.map +1 -1
  96. package/dist/utils/esbuild-config.js +151 -218
  97. package/dist/utils/esbuild-config.js.map +1 -6
  98. package/dist/utils/ngtsc-build-core.d.ts +49 -0
  99. package/dist/utils/ngtsc-build-core.d.ts.map +1 -0
  100. package/dist/utils/ngtsc-build-core.js +250 -0
  101. package/dist/utils/ngtsc-build-core.js.map +1 -0
  102. package/dist/utils/output-path-rewriter.d.ts +23 -0
  103. package/dist/utils/output-path-rewriter.d.ts.map +1 -0
  104. package/dist/utils/output-path-rewriter.js +74 -0
  105. package/dist/utils/output-path-rewriter.js.map +1 -0
  106. package/dist/utils/output-utils.js +55 -40
  107. package/dist/utils/output-utils.js.map +1 -6
  108. package/dist/utils/package-utils.d.ts +8 -0
  109. package/dist/utils/package-utils.d.ts.map +1 -1
  110. package/dist/utils/package-utils.js +103 -73
  111. package/dist/utils/package-utils.js.map +1 -6
  112. package/dist/utils/rebuild-manager.js +41 -44
  113. package/dist/utils/rebuild-manager.js.map +1 -6
  114. package/dist/utils/replace-deps.js +283 -184
  115. package/dist/utils/replace-deps.js.map +1 -6
  116. package/dist/utils/scss-compiler.d.ts +10 -0
  117. package/dist/utils/scss-compiler.d.ts.map +1 -0
  118. package/dist/utils/scss-compiler.js +36 -0
  119. package/dist/utils/scss-compiler.js.map +1 -0
  120. package/dist/utils/sd-config.js +29 -19
  121. package/dist/utils/sd-config.js.map +1 -6
  122. package/dist/utils/tsc-build.d.ts +36 -0
  123. package/dist/utils/tsc-build.d.ts.map +1 -0
  124. package/dist/utils/tsc-build.js +130 -0
  125. package/dist/utils/tsc-build.js.map +1 -0
  126. package/dist/utils/tsconfig.d.ts +7 -26
  127. package/dist/utils/tsconfig.d.ts.map +1 -1
  128. package/dist/utils/tsconfig.js +39 -64
  129. package/dist/utils/tsconfig.js.map +1 -6
  130. package/dist/utils/typecheck-non-package.d.ts +18 -0
  131. package/dist/utils/typecheck-non-package.d.ts.map +1 -0
  132. package/dist/utils/typecheck-non-package.js +64 -0
  133. package/dist/utils/typecheck-non-package.js.map +1 -0
  134. package/dist/utils/typecheck-serialization.js +58 -40
  135. package/dist/utils/typecheck-serialization.js.map +1 -6
  136. package/dist/utils/worker-events.js +48 -40
  137. package/dist/utils/worker-events.js.map +1 -6
  138. package/dist/utils/worker-utils.js +48 -28
  139. package/dist/utils/worker-utils.js.map +1 -6
  140. package/dist/vitest-plugin.d.ts +9 -0
  141. package/dist/vitest-plugin.d.ts.map +1 -0
  142. package/dist/vitest-plugin.js +85 -0
  143. package/dist/vitest-plugin.js.map +1 -0
  144. package/dist/workers/library-build.worker.d.ts +54 -0
  145. package/dist/workers/library-build.worker.d.ts.map +1 -0
  146. package/dist/workers/library-build.worker.js +97 -0
  147. package/dist/workers/library-build.worker.js.map +1 -0
  148. package/dist/workers/lint.worker.js +9 -6
  149. package/dist/workers/lint.worker.js.map +1 -6
  150. package/dist/workers/ngtsc-build.worker.d.ts +23 -0
  151. package/dist/workers/ngtsc-build.worker.d.ts.map +1 -0
  152. package/dist/workers/ngtsc-build.worker.js +98 -0
  153. package/dist/workers/ngtsc-build.worker.js.map +1 -0
  154. package/dist/workers/{server.worker.d.ts → server-build.worker.d.ts} +39 -29
  155. package/dist/workers/server-build.worker.d.ts.map +1 -0
  156. package/dist/workers/server-build.worker.js +399 -0
  157. package/dist/workers/server-build.worker.js.map +1 -0
  158. package/dist/workers/server-runtime.worker.d.ts +3 -2
  159. package/dist/workers/server-runtime.worker.d.ts.map +1 -1
  160. package/dist/workers/server-runtime.worker.js +100 -95
  161. package/dist/workers/server-runtime.worker.js.map +1 -6
  162. package/dist/workers/vite-build.worker.d.ts +56 -0
  163. package/dist/workers/vite-build.worker.d.ts.map +1 -0
  164. package/dist/workers/vite-build.worker.js +167 -0
  165. package/dist/workers/vite-build.worker.js.map +1 -0
  166. package/package.json +10 -16
  167. package/src/commands/check.ts +21 -3
  168. package/src/commands/dev.ts +10 -8
  169. package/src/commands/lint.ts +1 -1
  170. package/src/commands/publish.ts +4 -0
  171. package/src/commands/typecheck.ts +89 -256
  172. package/src/commands/watch.ts +9 -8
  173. package/src/engines/NgtscEngine.ts +190 -0
  174. package/src/engines/ServerEsbuildEngine.ts +195 -0
  175. package/src/engines/TscEngine.ts +189 -0
  176. package/src/engines/ViteEngine.ts +203 -0
  177. package/src/engines/index.ts +49 -0
  178. package/src/engines/types.ts +79 -0
  179. package/src/index.ts +0 -3
  180. package/src/infra/ResultCollector.ts +1 -1
  181. package/src/orchestrators/BuildOrchestrator.ts +87 -157
  182. package/src/orchestrators/DevWatchOrchestrator.ts +573 -0
  183. package/src/sd-cli-entry.ts +13 -116
  184. package/src/sd-config.types.ts +2 -0
  185. package/src/utils/angular-build.ts +157 -0
  186. package/src/utils/concurrency.ts +43 -0
  187. package/src/utils/esbuild-config.ts +1 -122
  188. package/src/utils/ngtsc-build-core.ts +379 -0
  189. package/src/utils/output-path-rewriter.ts +82 -0
  190. package/src/utils/package-utils.ts +20 -0
  191. package/src/utils/scss-compiler.ts +58 -0
  192. package/src/utils/tsc-build.ts +175 -0
  193. package/src/utils/tsconfig.ts +27 -95
  194. package/src/utils/typecheck-non-package.ts +87 -0
  195. package/src/vitest-plugin.ts +118 -0
  196. package/src/workers/library-build.worker.ts +153 -0
  197. package/src/workers/ngtsc-build.worker.ts +146 -0
  198. package/src/workers/server-build.worker.ts +565 -0
  199. package/src/workers/server-runtime.worker.ts +17 -26
  200. package/src/workers/vite-build.worker.ts +252 -0
  201. package/tests/commands/check.spec.ts +276 -0
  202. package/tests/commands/dev.spec.ts +53 -0
  203. package/tests/commands/lint.spec.ts +243 -0
  204. package/tests/commands/publish.spec.ts +1159 -0
  205. package/tests/commands/typecheck.spec.ts +294 -0
  206. package/tests/commands/watch.spec.ts +53 -0
  207. package/tests/engines/engine-selection.spec.ts +247 -0
  208. package/tests/engines/ngtsc-engine.spec.ts +274 -0
  209. package/tests/engines/server-esbuild-engine.spec.ts +256 -0
  210. package/tests/engines/tsc-engine.spec.ts +213 -0
  211. package/tests/engines/vite-engine.spec.ts +358 -0
  212. package/tests/infra/result-collector.spec.ts +46 -0
  213. package/tests/infra/signal-handler.spec.ts +32 -0
  214. package/tests/infra/worker-manager.spec.ts +63 -0
  215. package/tests/orchestrators/build-orchestrator.spec.ts +772 -0
  216. package/tests/orchestrators/dev-watch-orchestrator.spec.ts +1173 -0
  217. package/tests/sd-cli-entry.spec.ts +49 -0
  218. package/tests/utils/angular-build.spec.ts +251 -0
  219. package/tests/utils/build-env.spec.ts +33 -0
  220. package/tests/utils/concurrency.spec.ts +65 -0
  221. package/tests/utils/copy-src.spec.ts +144 -0
  222. package/tests/utils/esbuild-config.spec.ts +186 -0
  223. package/tests/utils/external-modules.spec.ts +161 -0
  224. package/tests/utils/ngtsc-scss-refactor.spec.ts +66 -0
  225. package/tests/utils/output-path-rewriter.spec.ts +165 -0
  226. package/tests/utils/output-utils.spec.ts +104 -0
  227. package/tests/utils/package-utils.spec.ts +52 -0
  228. package/tests/utils/rebuild-manager.spec.ts +30 -27
  229. package/tests/utils/replace-deps.spec.ts +69 -0
  230. package/tests/utils/scss-compiler.spec.ts +131 -0
  231. package/tests/utils/sd-config.spec.ts +77 -0
  232. package/tests/utils/tsc-build.spec.ts +358 -0
  233. package/tests/utils/tsconfig-angular.spec.ts +71 -0
  234. package/tests/utils/typecheck-non-package.spec.ts +120 -0
  235. package/tests/utils/worker-events.spec.ts +155 -0
  236. package/tests/utils/worker-utils.spec.ts +43 -0
  237. package/tests/vitest-plugin-cwd.spec.ts +68 -0
  238. package/tests/vitest-plugin.spec.ts +103 -0
  239. package/tests/workers/library-build-worker.spec.ts +258 -0
  240. package/tests/workers/ngtsc-build-worker.spec.ts +187 -0
  241. package/tests/workers/server-build-worker.spec.ts +566 -0
  242. package/tests/workers/server-runtime-worker.spec.ts +251 -0
  243. package/README.md +0 -295
  244. package/dist/builders/BaseBuilder.d.ts +0 -88
  245. package/dist/builders/BaseBuilder.d.ts.map +0 -1
  246. package/dist/builders/BaseBuilder.js +0 -142
  247. package/dist/builders/BaseBuilder.js.map +0 -6
  248. package/dist/builders/DtsBuilder.d.ts +0 -22
  249. package/dist/builders/DtsBuilder.d.ts.map +0 -1
  250. package/dist/builders/DtsBuilder.js +0 -72
  251. package/dist/builders/DtsBuilder.js.map +0 -6
  252. package/dist/builders/LibraryBuilder.d.ts +0 -22
  253. package/dist/builders/LibraryBuilder.d.ts.map +0 -1
  254. package/dist/builders/LibraryBuilder.js +0 -85
  255. package/dist/builders/LibraryBuilder.js.map +0 -6
  256. package/dist/builders/types.d.ts +0 -55
  257. package/dist/builders/types.d.ts.map +0 -1
  258. package/dist/builders/types.js +0 -1
  259. package/dist/builders/types.js.map +0 -6
  260. package/dist/capacitor/capacitor.d.ts +0 -151
  261. package/dist/capacitor/capacitor.d.ts.map +0 -1
  262. package/dist/capacitor/capacitor.js +0 -694
  263. package/dist/capacitor/capacitor.js.map +0 -6
  264. package/dist/commands/device.d.ts +0 -22
  265. package/dist/commands/device.d.ts.map +0 -1
  266. package/dist/commands/device.js +0 -98
  267. package/dist/commands/device.js.map +0 -6
  268. package/dist/commands/init.d.ts +0 -14
  269. package/dist/commands/init.d.ts.map +0 -1
  270. package/dist/commands/init.js +0 -72
  271. package/dist/commands/init.js.map +0 -6
  272. package/dist/electron/electron.d.ts +0 -84
  273. package/dist/electron/electron.d.ts.map +0 -1
  274. package/dist/electron/electron.js +0 -263
  275. package/dist/electron/electron.js.map +0 -6
  276. package/dist/orchestrators/DevOrchestrator.d.ts +0 -83
  277. package/dist/orchestrators/DevOrchestrator.d.ts.map +0 -1
  278. package/dist/orchestrators/DevOrchestrator.js +0 -540
  279. package/dist/orchestrators/DevOrchestrator.js.map +0 -6
  280. package/dist/orchestrators/WatchOrchestrator.d.ts +0 -57
  281. package/dist/orchestrators/WatchOrchestrator.d.ts.map +0 -1
  282. package/dist/orchestrators/WatchOrchestrator.js +0 -199
  283. package/dist/orchestrators/WatchOrchestrator.js.map +0 -6
  284. package/dist/utils/tailwind-config-deps.d.ts +0 -8
  285. package/dist/utils/tailwind-config-deps.d.ts.map +0 -1
  286. package/dist/utils/tailwind-config-deps.js +0 -82
  287. package/dist/utils/tailwind-config-deps.js.map +0 -6
  288. package/dist/utils/template.d.ts +0 -14
  289. package/dist/utils/template.d.ts.map +0 -1
  290. package/dist/utils/template.js +0 -33
  291. package/dist/utils/template.js.map +0 -6
  292. package/dist/utils/vite-config.d.ts +0 -35
  293. package/dist/utils/vite-config.d.ts.map +0 -1
  294. package/dist/utils/vite-config.js +0 -259
  295. package/dist/utils/vite-config.js.map +0 -6
  296. package/dist/workers/client.worker.d.ts +0 -83
  297. package/dist/workers/client.worker.d.ts.map +0 -1
  298. package/dist/workers/client.worker.js +0 -111
  299. package/dist/workers/client.worker.js.map +0 -6
  300. package/dist/workers/dts.worker.d.ts +0 -75
  301. package/dist/workers/dts.worker.d.ts.map +0 -1
  302. package/dist/workers/dts.worker.js +0 -270
  303. package/dist/workers/dts.worker.js.map +0 -6
  304. package/dist/workers/library.worker.d.ts +0 -75
  305. package/dist/workers/library.worker.d.ts.map +0 -1
  306. package/dist/workers/library.worker.js +0 -166
  307. package/dist/workers/library.worker.js.map +0 -6
  308. package/dist/workers/server.worker.d.ts.map +0 -1
  309. package/dist/workers/server.worker.js +0 -482
  310. package/dist/workers/server.worker.js.map +0 -6
  311. package/src/builders/BaseBuilder.ts +0 -218
  312. package/src/builders/DtsBuilder.ts +0 -92
  313. package/src/builders/LibraryBuilder.ts +0 -110
  314. package/src/builders/types.ts +0 -60
  315. package/src/capacitor/capacitor.ts +0 -931
  316. package/src/commands/device.ts +0 -140
  317. package/src/commands/init.ts +0 -113
  318. package/src/electron/electron.ts +0 -362
  319. package/src/orchestrators/DevOrchestrator.ts +0 -744
  320. package/src/orchestrators/WatchOrchestrator.ts +0 -277
  321. package/src/utils/tailwind-config-deps.ts +0 -98
  322. package/src/utils/template.ts +0 -56
  323. package/src/utils/vite-config.ts +0 -390
  324. package/src/workers/client.worker.ts +0 -250
  325. package/src/workers/dts.worker.ts +0 -453
  326. package/src/workers/library.worker.ts +0 -316
  327. package/src/workers/server.worker.ts +0 -734
  328. package/templates/init/.gitignore.hbs +0 -34
  329. package/templates/init/.npmrc.hbs +0 -1
  330. package/templates/init/.prettierignore +0 -1
  331. package/templates/init/.prettierrc.yaml +0 -12
  332. package/templates/init/eslint.config.ts +0 -15
  333. package/templates/init/mise.toml +0 -3
  334. package/templates/init/package.json.hbs +0 -32
  335. package/templates/init/packages/client-admin/index.html.hbs +0 -144
  336. package/templates/init/packages/client-admin/package.json.hbs +0 -27
  337. package/templates/init/packages/client-admin/public/assets/logo-landscape.png +0 -0
  338. package/templates/init/packages/client-admin/public/assets/logo.png +0 -0
  339. package/templates/init/packages/client-admin/public/favicon.ico +0 -0
  340. package/templates/init/packages/client-admin/src/App.tsx +0 -42
  341. package/templates/init/packages/client-admin/src/dev/DevDialog.tsx +0 -34
  342. package/templates/init/packages/client-admin/src/events/AuthChangeEvent.ts +0 -3
  343. package/templates/init/packages/client-admin/src/main.css +0 -4
  344. package/templates/init/packages/client-admin/src/main.tsx.hbs +0 -146
  345. package/templates/init/packages/client-admin/src/providers/AppServiceProvider.tsx.hbs +0 -103
  346. package/templates/init/packages/client-admin/src/providers/AppStructureProvider.tsx +0 -84
  347. package/templates/init/packages/client-admin/src/providers/AuthProvider.tsx.hbs +0 -96
  348. package/templates/init/packages/client-admin/src/providers/configureSharedData.ts.hbs +0 -67
  349. package/templates/init/packages/client-admin/src/views/auth/LoginView.tsx +0 -132
  350. package/templates/init/packages/client-admin/src/views/home/HomeView.tsx +0 -108
  351. package/templates/init/packages/client-admin/src/views/home/base/employee/EmployeeDetail.tsx.hbs +0 -243
  352. package/templates/init/packages/client-admin/src/views/home/base/employee/EmployeeSheet.tsx.hbs +0 -271
  353. package/templates/init/packages/client-admin/src/views/home/base/role-permission/RoleDetail.tsx.hbs +0 -146
  354. package/templates/init/packages/client-admin/src/views/home/base/role-permission/RolePermissionDetail.tsx.hbs +0 -121
  355. package/templates/init/packages/client-admin/src/views/home/base/role-permission/RolePermissionView.tsx +0 -52
  356. package/templates/init/packages/client-admin/src/views/home/base/role-permission/RoleSheet.tsx.hbs +0 -125
  357. package/templates/init/packages/client-admin/src/views/home/main/MainView.tsx.hbs +0 -13
  358. package/templates/init/packages/client-admin/src/views/home/my-info/MyInfoDetail.tsx.hbs +0 -241
  359. package/templates/init/packages/client-admin/src/views/home/system/system-log/SystemLogSheet.tsx.hbs +0 -169
  360. package/templates/init/packages/client-admin/src/views/not-found/NotFoundView.tsx +0 -15
  361. package/templates/init/packages/client-admin/tailwind.config.ts +0 -10
  362. package/templates/init/packages/db-main/package.json.hbs +0 -13
  363. package/templates/init/packages/db-main/src/MainDbContext.ts +0 -22
  364. package/templates/init/packages/db-main/src/dataLogExt.ts +0 -127
  365. package/templates/init/packages/db-main/src/index.ts +0 -14
  366. package/templates/init/packages/db-main/src/tables/base/Employee.ts +0 -24
  367. package/templates/init/packages/db-main/src/tables/base/EmployeeConfig.ts +0 -13
  368. package/templates/init/packages/db-main/src/tables/base/Role.ts +0 -9
  369. package/templates/init/packages/db-main/src/tables/base/RolePermission.ts +0 -13
  370. package/templates/init/packages/db-main/src/tables/system/_DataLog.ts +0 -19
  371. package/templates/init/packages/db-main/src/tables/system/_Log.ts +0 -16
  372. package/templates/init/packages/server/package.json.hbs +0 -20
  373. package/templates/init/packages/server/public-dev/dev//354/264/210/352/270/260/355/231/224.xlsx +0 -0
  374. package/templates/init/packages/server/src/index.ts +0 -4
  375. package/templates/init/packages/server/src/main.ts.hbs +0 -34
  376. package/templates/init/packages/server/src/services/AuthService.ts.hbs +0 -171
  377. package/templates/init/packages/server/src/services/DevService.ts.hbs +0 -94
  378. package/templates/init/packages/server/src/services/EmployeeService.ts.hbs +0 -122
  379. package/templates/init/packages/server/src/services/RoleService.ts.hbs +0 -59
  380. package/templates/init/pnpm-workspace.yaml +0 -15
  381. package/templates/init/sd.config.ts.hbs +0 -48
  382. package/templates/init/tsconfig.json.hbs +0 -39
  383. package/templates/init/vitest.config.ts +0 -36
  384. package/tests/capacitor-exclude.spec.ts +0 -78
  385. package/tests/capacitor.spec.ts +0 -49
  386. package/tests/copy-src.spec.ts +0 -50
  387. package/tests/electron-exclude.spec.ts +0 -61
  388. package/tests/get-compiler-options-for-package.spec.ts +0 -80
  389. package/tests/get-package-source-files.spec.ts +0 -139
  390. package/tests/get-types-from-package-json.spec.ts +0 -92
  391. package/tests/infra/ResultCollector.spec.ts +0 -30
  392. package/tests/infra/SignalHandler.spec.ts +0 -38
  393. package/tests/infra/WorkerManager.spec.ts +0 -63
  394. package/tests/load-ignore-patterns.spec.ts +0 -163
  395. package/tests/load-sd-config.spec.ts +0 -100
  396. package/tests/package-utils.spec.ts +0 -188
  397. package/tests/parse-root-tsconfig.spec.ts +0 -89
  398. package/tests/publish-config-narrowing.spec.ts +0 -20
  399. package/tests/replace-deps.spec.ts +0 -308
  400. package/tests/run-lint.spec.ts +0 -366
  401. package/tests/run-typecheck.spec.ts +0 -544
  402. package/tests/run-watch.spec.ts +0 -76
  403. package/tests/sd-cli.spec.ts +0 -265
  404. package/tests/sd-public-dev-plugin-mime.spec.ts +0 -19
  405. package/tests/tailwind-config-deps.spec.ts +0 -30
  406. package/tests/template.spec.ts +0 -70
  407. package/tests/vite-config-exclude.spec.ts +0 -35
  408. package/tests/vite-config-outdir.spec.ts +0 -38
  409. package/tests/write-changed-output-files.spec.ts +0 -97
@@ -0,0 +1,36 @@
1
+ import ts from "typescript";
2
+ import { type SerializedDiagnostic } from "./typecheck-serialization";
3
+ /**
4
+ * Options for package-mode tsc build
5
+ */
6
+ export interface TscPackageBuildOptions {
7
+ pkgDir: string;
8
+ cwd: string;
9
+ /** Output control flags: which files to emit */
10
+ output: {
11
+ js: boolean;
12
+ dts: boolean;
13
+ };
14
+ /** Pre-parsed tsconfig. If provided, skips parseTsconfig() call. */
15
+ parsedConfig?: ts.ParsedCommandLine;
16
+ }
17
+ /**
18
+ * Result of package-mode tsc build
19
+ */
20
+ export interface TscPackageBuildResult {
21
+ success: boolean;
22
+ errors?: string[];
23
+ diagnostics: SerializedDiagnostic[];
24
+ errorCount: number;
25
+ warningCount: number;
26
+ }
27
+ /**
28
+ * Run TypeScript incremental build for a package.
29
+ *
30
+ * - output.js || output.dts: emit mode (src files only, generates output files)
31
+ * - neither: typecheck only (src + test files, no output)
32
+ *
33
+ * Uses tsBuildInfoFile for incremental compilation across runs.
34
+ */
35
+ export declare function runTscPackageBuild(options: TscPackageBuildOptions): TscPackageBuildResult;
36
+ //# sourceMappingURL=tsc-build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsc-build.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\tsc-build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAQ5B,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAG3F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,MAAM,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;IACtC,oEAAoE;IACpE,YAAY,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAmIzF"}
@@ -0,0 +1,130 @@
1
+ import path from "path";
2
+ import ts from "typescript";
3
+ import { pathx } from "@simplysm/core-node";
4
+ import { err as errNs } from "@simplysm/core-common";
5
+ import { parseTsconfig, getPackageSourceFiles, getPackageFiles, } from "./tsconfig.js";
6
+ import { serializeDiagnostic } from "./typecheck-serialization.js";
7
+ import { createOutputPathRewriter, addJsExtensionToImports } from "./output-path-rewriter.js";
8
+ /**
9
+ * Run TypeScript incremental build for a package.
10
+ *
11
+ * - output.js || output.dts: emit mode (src files only, generates output files)
12
+ * - neither: typecheck only (src + test files, no output)
13
+ *
14
+ * Uses tsBuildInfoFile for incremental compilation across runs.
15
+ */
16
+ export function runTscPackageBuild(options) {
17
+ try {
18
+ const { pkgDir, output } = options;
19
+ const needsEmit = output.js || output.dts;
20
+ const parsedConfig = options.parsedConfig ?? parseTsconfig(pkgDir);
21
+ const baseOptions = parsedConfig.options;
22
+ let rootFiles;
23
+ let diagnosticFilter;
24
+ if (needsEmit) {
25
+ rootFiles = getPackageSourceFiles(pkgDir, parsedConfig);
26
+ const pkgSrcDir = path.join(pkgDir, "src");
27
+ diagnosticFilter = (d) => d.file == null || pathx.isChildPath(d.file.fileName, pkgSrcDir);
28
+ }
29
+ else {
30
+ rootFiles = getPackageFiles(pkgDir, parsedConfig);
31
+ diagnosticFilter = (d) => d.file == null || pathx.isChildPath(d.file.fileName, pkgDir);
32
+ }
33
+ const tsBuildInfoFile = path.join(pkgDir, ".cache", needsEmit ? "build.tsbuildinfo" : "typecheck.tsbuildinfo");
34
+ const compilerOptions = {
35
+ ...baseOptions,
36
+ sourceMap: output.js,
37
+ incremental: true,
38
+ tsBuildInfoFile,
39
+ };
40
+ if (output.js && output.dts) {
41
+ compilerOptions.noEmit = false;
42
+ compilerOptions.emitDeclarationOnly = false;
43
+ compilerOptions.declaration = true;
44
+ compilerOptions.declarationMap = true;
45
+ compilerOptions.outDir = path.join(pkgDir, "dist");
46
+ compilerOptions.declarationDir = path.join(pkgDir, "dist");
47
+ }
48
+ else if (output.js) {
49
+ compilerOptions.noEmit = false;
50
+ compilerOptions.emitDeclarationOnly = false;
51
+ compilerOptions.declaration = false;
52
+ compilerOptions.declarationMap = false;
53
+ compilerOptions.outDir = path.join(pkgDir, "dist");
54
+ }
55
+ else if (output.dts) {
56
+ compilerOptions.noEmit = false;
57
+ compilerOptions.emitDeclarationOnly = true;
58
+ compilerOptions.declaration = true;
59
+ compilerOptions.declarationMap = true;
60
+ compilerOptions.outDir = path.join(pkgDir, "dist");
61
+ compilerOptions.declarationDir = path.join(pkgDir, "dist");
62
+ }
63
+ else {
64
+ compilerOptions.noEmit = true;
65
+ compilerOptions.emitDeclarationOnly = false;
66
+ compilerOptions.declaration = false;
67
+ compilerOptions.declarationMap = false;
68
+ }
69
+ const host = ts.createIncrementalCompilerHost(compilerOptions);
70
+ if (needsEmit) {
71
+ const rewritePath = createOutputPathRewriter(pkgDir);
72
+ const originalWriteFile = host.writeFile;
73
+ host.writeFile = (fileName, content, writeByteOrderMark, onError, sourceFiles, data) => {
74
+ const result = rewritePath(fileName, content);
75
+ if (result != null) {
76
+ let [newPath, newContent] = result;
77
+ if (newPath.endsWith(".js")) {
78
+ newContent = addJsExtensionToImports(newContent);
79
+ }
80
+ originalWriteFile(newPath, newContent, writeByteOrderMark, onError, sourceFiles, data);
81
+ }
82
+ };
83
+ }
84
+ const program = ts.createIncrementalProgram({
85
+ rootNames: rootFiles,
86
+ options: compilerOptions,
87
+ host,
88
+ });
89
+ const emitResult = program.emit();
90
+ const allDiagnostics = [
91
+ ...program.getConfigFileParsingDiagnostics(),
92
+ ...program.getSyntacticDiagnostics(),
93
+ ...program.getOptionsDiagnostics(),
94
+ ...program.getGlobalDiagnostics(),
95
+ ...program.getSemanticDiagnostics(),
96
+ ...emitResult.diagnostics,
97
+ ];
98
+ const filteredDiagnostics = allDiagnostics.filter(diagnosticFilter);
99
+ const serializedDiagnostics = filteredDiagnostics.map(serializeDiagnostic);
100
+ const errorCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error).length;
101
+ const warningCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Warning).length;
102
+ const errors = filteredDiagnostics
103
+ .filter((d) => d.category === ts.DiagnosticCategory.Error)
104
+ .map((d) => {
105
+ const message = ts.flattenDiagnosticMessageText(d.messageText, "\n");
106
+ if (d.file != null && d.start != null) {
107
+ const { line, character } = d.file.getLineAndCharacterOfPosition(d.start);
108
+ return `${d.file.fileName}:${line + 1}:${character + 1}: TS${d.code}: ${message}`;
109
+ }
110
+ return `TS${d.code}: ${message}`;
111
+ });
112
+ return {
113
+ success: errorCount === 0,
114
+ errors: errors.length > 0 ? errors : undefined,
115
+ diagnostics: serializedDiagnostics,
116
+ errorCount,
117
+ warningCount,
118
+ };
119
+ }
120
+ catch (err) {
121
+ return {
122
+ success: false,
123
+ errors: [errNs.message(err)],
124
+ diagnostics: [],
125
+ errorCount: 1,
126
+ warningCount: 0,
127
+ };
128
+ }
129
+ }
130
+ //# sourceMappingURL=tsc-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsc-build.js","sourceRoot":"","sources":["..\\..\\src\\utils\\tsc-build.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,19 @@
1
1
  import ts from "typescript";
2
2
  /**
3
- * Read @types/* devDependencies from package.json and return types list
3
+ * Check if tsconfig.json in the given directory has angularCompilerOptions.
4
+ * Uses ts.readConfigFile to read raw JSON (before parsing/extension).
4
5
  */
5
- export declare function getTypesFromPackageJson(packageDir: string): Promise<string[]>;
6
+ export declare function hasAngularCompilerOptions(pkgDir: string): boolean;
6
7
  /**
7
- * Type check environment
8
- * - node: remove DOM lib + add node types
9
- * - browser: remove node types
8
+ * Parse tsconfig.json from the given directory.
10
9
  */
11
- export type TypecheckEnv = "node" | "browser";
10
+ export declare function parseTsconfig(dir: string): ts.ParsedCommandLine;
12
11
  /**
13
- * Create compiler options for package
14
- *
15
- * @param baseOptions - Compiler options from root tsconfig
16
- * @param env - Type check environment (node: remove DOM lib + add node types, browser: remove node types)
17
- * @param packageDir - Package directory path
18
- *
19
- * @remarks
20
- * The types option ignores baseOptions.types and is newly constructed per package.
21
- * This is because the global types in root tsconfig may not fit the package environment.
22
- * (e.g., prevent node types from being included in browser packages)
23
- */
24
- export declare function getCompilerOptionsForPackage(baseOptions: ts.CompilerOptions, env: TypecheckEnv, packageDir: string): Promise<ts.CompilerOptions>;
25
- /**
26
- * Parse root tsconfig
27
- * @throws If unable to read or parse tsconfig.json
28
- */
29
- export declare function parseRootTsconfig(cwd: string): ts.ParsedCommandLine;
30
- /**
31
- * Get list of package source files (based on tsconfig)
12
+ * Get source files (under src/) from a package, filtered by the parsed tsconfig.
32
13
  */
33
14
  export declare function getPackageSourceFiles(pkgDir: string, parsedConfig: ts.ParsedCommandLine): string[];
34
15
  /**
35
- * Get full list of package files (including src + tests)
16
+ * Get all files (src + tests) from a package, filtered by the parsed tsconfig.
36
17
  */
37
18
  export declare function getPackageFiles(pkgDir: string, parsedConfig: ts.ParsedCommandLine): string[];
38
19
  //# sourceMappingURL=tsconfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\tsconfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAW5B;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnF;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,EAAE,CAAC,eAAe,EAC/B,GAAG,EAAE,YAAY,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,CAuB7B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAiBnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,EAAE,CAAC,iBAAiB,GACjC,MAAM,EAAE,CAGV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,iBAAiB,GAAG,MAAM,EAAE,CAO5F"}
1
+ {"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\tsconfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAa/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,EAAE,CAAC,iBAAiB,GACjC,MAAM,EAAE,CAGV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,EAAE,CAAC,iBAAiB,GACjC,MAAM,EAAE,CAEV"}
@@ -1,69 +1,44 @@
1
- import ts from "typescript";
2
1
  import path from "path";
3
- import { fsx, pathx } from "@simplysm/core-node";
4
- import { SdError } from "@simplysm/core-common";
5
- const DOM_LIB_PATTERNS = ["dom", "webworker"];
6
- async function getTypesFromPackageJson(packageDir) {
7
- const packageJsonPath = path.join(packageDir, "package.json");
8
- if (!await fsx.exists(packageJsonPath)) {
9
- return [];
10
- }
11
- const packageJson = await fsx.readJson(
12
- packageJsonPath
13
- );
14
- const devDeps = packageJson.devDependencies ?? {};
15
- return Object.keys(devDeps).filter((dep) => dep.startsWith("@types/")).map((dep) => dep.replace("@types/", ""));
16
- }
17
- async function getCompilerOptionsForPackage(baseOptions, env, packageDir) {
18
- const options = { ...baseOptions };
19
- const packageTypes = await getTypesFromPackageJson(packageDir);
20
- options.typeRoots = [
21
- path.join(packageDir, "node_modules", "@types"),
22
- path.join(process.cwd(), "node_modules", "@types")
23
- ];
24
- switch (env) {
25
- case "node":
26
- options.lib = options.lib?.filter(
27
- (lib) => !DOM_LIB_PATTERNS.some((pattern) => lib.toLowerCase().includes(pattern))
28
- );
29
- options.types = [.../* @__PURE__ */ new Set([...packageTypes, "node"])];
30
- break;
31
- case "browser":
32
- options.types = packageTypes.filter((t) => t !== "node");
33
- break;
34
- }
35
- return options;
2
+ import ts from "typescript";
3
+ import { pathx } from "@simplysm/core-node";
4
+ /**
5
+ * Check if tsconfig.json in the given directory has angularCompilerOptions.
6
+ * Uses ts.readConfigFile to read raw JSON (before parsing/extension).
7
+ */
8
+ export function hasAngularCompilerOptions(pkgDir) {
9
+ const tsconfigPath = path.join(pkgDir, "tsconfig.json");
10
+ const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
11
+ if (configFile.error != null) {
12
+ return false;
13
+ }
14
+ return configFile.config?.angularCompilerOptions != null;
36
15
  }
37
- function parseRootTsconfig(cwd) {
38
- const tsconfigPath = path.join(cwd, "tsconfig.json");
39
- const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
40
- if (configFile.error) {
41
- const message = ts.flattenDiagnosticMessageText(configFile.error.messageText, "\n");
42
- throw new SdError(`Failed to read tsconfig.json: ${message}`);
43
- }
44
- const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd);
45
- if (parsed.errors.length > 0) {
46
- const messages = parsed.errors.map((e) => ts.flattenDiagnosticMessageText(e.messageText, "\n"));
47
- throw new SdError(`Failed to parse tsconfig.json: ${messages.join("; ")}`);
48
- }
49
- return parsed;
16
+ /**
17
+ * Parse tsconfig.json from the given directory.
18
+ */
19
+ export function parseTsconfig(dir) {
20
+ const tsconfigPath = path.join(dir, "tsconfig.json");
21
+ const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
22
+ if (configFile.error) {
23
+ throw new Error(ts.flattenDiagnosticMessageText(configFile.error.messageText, "\n"));
24
+ }
25
+ const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, dir);
26
+ if (parsed.errors.length > 0) {
27
+ throw new Error(parsed.errors.map((e) => ts.flattenDiagnosticMessageText(e.messageText, "\n")).join("\n"));
28
+ }
29
+ return parsed;
50
30
  }
51
- function getPackageSourceFiles(pkgDir, parsedConfig) {
52
- const pkgSrcDir = path.join(pkgDir, "src");
53
- return parsedConfig.fileNames.filter((f) => pathx.isChildPath(f, pkgSrcDir));
31
+ /**
32
+ * Get source files (under src/) from a package, filtered by the parsed tsconfig.
33
+ */
34
+ export function getPackageSourceFiles(pkgDir, parsedConfig) {
35
+ const srcDir = path.join(pkgDir, "src");
36
+ return parsedConfig.fileNames.filter((f) => pathx.isChildPath(f, srcDir));
54
37
  }
55
- function getPackageFiles(pkgDir, parsedConfig) {
56
- return parsedConfig.fileNames.filter((f) => {
57
- if (!pathx.isChildPath(f, pkgDir)) return false;
58
- const relative = path.relative(pkgDir, f);
59
- return path.dirname(relative) !== ".";
60
- });
38
+ /**
39
+ * Get all files (src + tests) from a package, filtered by the parsed tsconfig.
40
+ */
41
+ export function getPackageFiles(pkgDir, parsedConfig) {
42
+ return parsedConfig.fileNames.filter((f) => pathx.isChildPath(f, pkgDir));
61
43
  }
62
- export {
63
- getCompilerOptionsForPackage,
64
- getPackageFiles,
65
- getPackageSourceFiles,
66
- getTypesFromPackageJson,
67
- parseRootTsconfig
68
- };
69
- //# sourceMappingURL=tsconfig.js.map
44
+ //# sourceMappingURL=tsconfig.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/tsconfig.ts"],
4
- "mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,KAAK,aAAa;AAC3B,SAAS,eAAe;AAMxB,MAAM,mBAAmB,CAAC,OAAO,WAAW;AAK5C,eAAsB,wBAAwB,YAAuC;AACnF,QAAM,kBAAkB,KAAK,KAAK,YAAY,cAAc;AAC5D,MAAI,CAAE,MAAM,IAAI,OAAO,eAAe,GAAI;AACxC,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,cAAc,MAAM,IAAI;AAAA,IAC5B;AAAA,EACF;AACA,QAAM,UAAU,YAAY,mBAAmB,CAAC;AAEhD,SAAO,OAAO,KAAK,OAAO,EACvB,OAAO,CAAC,QAAQ,IAAI,WAAW,SAAS,CAAC,EACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,WAAW,EAAE,CAAC;AAC5C;AAqBA,eAAsB,6BACpB,aACA,KACA,YAC6B;AAC7B,QAAM,UAAU,EAAE,GAAG,YAAY;AACjC,QAAM,eAAe,MAAM,wBAAwB,UAAU;AAG7D,UAAQ,YAAY;AAAA,IAClB,KAAK,KAAK,YAAY,gBAAgB,QAAQ;AAAA,IAC9C,KAAK,KAAK,QAAQ,IAAI,GAAG,gBAAgB,QAAQ;AAAA,EACnD;AAEA,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,cAAQ,MAAM,QAAQ,KAAK;AAAA,QACzB,CAAC,QAAQ,CAAC,iBAAiB,KAAK,CAAC,YAAY,IAAI,YAAY,EAAE,SAAS,OAAO,CAAC;AAAA,MAClF;AACA,cAAQ,QAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,cAAc,MAAM,CAAC,CAAC;AACtD;AAAA,IACF,KAAK;AACH,cAAQ,QAAQ,aAAa,OAAO,CAAC,MAAM,MAAM,MAAM;AACvD;AAAA,EACJ;AAEA,SAAO;AACT;AAMO,SAAS,kBAAkB,KAAmC;AACnE,QAAM,eAAe,KAAK,KAAK,KAAK,eAAe;AACnD,QAAM,aAAa,GAAG,eAAe,cAAc,GAAG,IAAI,QAAQ;AAElE,MAAI,WAAW,OAAO;AACpB,UAAM,UAAU,GAAG,6BAA6B,WAAW,MAAM,aAAa,IAAI;AAClF,UAAM,IAAI,QAAQ,iCAAiC,OAAO,EAAE;AAAA,EAC9D;AAEA,QAAM,SAAS,GAAG,2BAA2B,WAAW,QAAQ,GAAG,KAAK,GAAG;AAE3E,MAAI,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,WAAW,OAAO,OAAO,IAAI,CAAC,MAAM,GAAG,6BAA6B,EAAE,aAAa,IAAI,CAAC;AAC9F,UAAM,IAAI,QAAQ,kCAAkC,SAAS,KAAK,IAAI,CAAC,EAAE;AAAA,EAC3E;AAEA,SAAO;AACT;AAKO,SAAS,sBACd,QACA,cACU;AACV,QAAM,YAAY,KAAK,KAAK,QAAQ,KAAK;AACzC,SAAO,aAAa,UAAU,OAAO,CAAC,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC;AAC7E;AAKO,SAAS,gBAAgB,QAAgB,cAA8C;AAC5F,SAAO,aAAa,UAAU,OAAO,CAAC,MAAM;AAC1C,QAAI,CAAC,MAAM,YAAY,GAAG,MAAM,EAAG,QAAO;AAE1C,UAAM,WAAW,KAAK,SAAS,QAAQ,CAAC;AACxC,WAAO,KAAK,QAAQ,QAAQ,MAAM;AAAA,EACpC,CAAC;AACH;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["..\\..\\src\\utils\\tsconfig.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,EAAE,sBAAsB,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,YAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,YAAkC;IAElC,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type SerializedDiagnostic } from "./typecheck-serialization";
2
+ export interface NonPackageTypecheckResult {
3
+ success: boolean;
4
+ errorCount: number;
5
+ warningCount: number;
6
+ diagnostics: SerializedDiagnostic[];
7
+ }
8
+ /**
9
+ * Typecheck non-package files (root-level configs + package root configs).
10
+ * Extracted from dts.worker.ts non-package mode.
11
+ *
12
+ * Non-package files include:
13
+ * - Root-level files (vitest.config.ts, etc.) — not under packages/
14
+ * - Package root config files (packages/{pkg}/vitest.config.ts) — depth 2 under packages/
15
+ * Excludes package source files (packages/{pkg}/src/...)
16
+ */
17
+ export declare function typecheckNonPackageFiles(cwd: string): NonPackageTypecheckResult;
18
+ //# sourceMappingURL=typecheck-non-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typecheck-non-package.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\typecheck-non-package.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE3F,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAiE/E"}
@@ -0,0 +1,64 @@
1
+ import path from "path";
2
+ import ts from "typescript";
3
+ import { parseTsconfig } from "./tsconfig.js";
4
+ import { serializeDiagnostic } from "./typecheck-serialization.js";
5
+ /**
6
+ * Typecheck non-package files (root-level configs + package root configs).
7
+ * Extracted from dts.worker.ts non-package mode.
8
+ *
9
+ * Non-package files include:
10
+ * - Root-level files (vitest.config.ts, etc.) — not under packages/
11
+ * - Package root config files (packages/{pkg}/vitest.config.ts) — depth 2 under packages/
12
+ * Excludes package source files (packages/{pkg}/src/...)
13
+ */
14
+ export function typecheckNonPackageFiles(cwd) {
15
+ const parsedConfig = parseTsconfig(cwd);
16
+ const packagesDir = path.join(cwd, "packages");
17
+ const isNonPackageFile = (fileName) => {
18
+ const normalized = path.resolve(fileName);
19
+ const normalizedPkgDir = path.resolve(packagesDir);
20
+ // Files outside packages/ directory
21
+ if (!normalized.startsWith(normalizedPkgDir + path.sep))
22
+ return true;
23
+ // Files directly in package root (e.g., packages/{pkg}/file.ts — depth 2)
24
+ const relative = path.relative(normalizedPkgDir, normalized);
25
+ return relative.split(path.sep).length === 2;
26
+ };
27
+ const rootFiles = parsedConfig.fileNames.filter(isNonPackageFile);
28
+ const tsBuildInfoFile = path.join(cwd, ".cache", "typecheck-root.tsbuildinfo");
29
+ const options = {
30
+ ...parsedConfig.options,
31
+ sourceMap: false,
32
+ incremental: true,
33
+ tsBuildInfoFile,
34
+ noEmit: true,
35
+ emitDeclarationOnly: false,
36
+ declaration: false,
37
+ declarationMap: false,
38
+ };
39
+ const host = ts.createIncrementalCompilerHost(options);
40
+ const program = ts.createIncrementalProgram({
41
+ rootNames: rootFiles,
42
+ options,
43
+ host,
44
+ });
45
+ program.emit();
46
+ const allDiagnostics = [
47
+ ...program.getConfigFileParsingDiagnostics(),
48
+ ...program.getSyntacticDiagnostics(),
49
+ ...program.getOptionsDiagnostics(),
50
+ ...program.getGlobalDiagnostics(),
51
+ ...program.getSemanticDiagnostics(),
52
+ ];
53
+ const filteredDiagnostics = allDiagnostics.filter((d) => d.file == null || isNonPackageFile(d.file.fileName));
54
+ const serializedDiagnostics = filteredDiagnostics.map(serializeDiagnostic);
55
+ const errorCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error).length;
56
+ const warningCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Warning).length;
57
+ return {
58
+ success: errorCount === 0,
59
+ errorCount,
60
+ warningCount,
61
+ diagnostics: serializedDiagnostics,
62
+ };
63
+ }
64
+ //# sourceMappingURL=typecheck-non-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typecheck-non-package.js","sourceRoot":"","sources":["..\\..\\src\\utils\\typecheck-non-package.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,65 @@
1
1
  import ts from "typescript";
2
2
  import { fsx } from "@simplysm/core-node";
3
- function serializeDiagnostic(diagnostic) {
4
- const messageText = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
5
- return {
6
- category: diagnostic.category,
7
- code: diagnostic.code,
8
- messageText,
9
- file: diagnostic.file ? {
10
- fileName: diagnostic.file.fileName
11
- } : void 0,
12
- start: diagnostic.start,
13
- length: diagnostic.length
14
- };
3
+ /**
4
+ * Convert Diagnostic to serializable form
5
+ * (remove circular references/functions for structured clone communication between Worker threads)
6
+ */
7
+ export function serializeDiagnostic(diagnostic) {
8
+ // If DiagnosticMessageChain, flatten entire chain to preserve all context info
9
+ const messageText = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
10
+ return {
11
+ category: diagnostic.category,
12
+ code: diagnostic.code,
13
+ messageText,
14
+ file: diagnostic.file
15
+ ? {
16
+ fileName: diagnostic.file.fileName,
17
+ }
18
+ : undefined,
19
+ start: diagnostic.start,
20
+ length: diagnostic.length,
21
+ };
15
22
  }
23
+ /**
24
+ * Determine TypeScript ScriptKind from filename
25
+ */
16
26
  function getScriptKind(fileName) {
17
- if (fileName.endsWith(".tsx")) return ts.ScriptKind.TSX;
18
- if (fileName.endsWith(".jsx")) return ts.ScriptKind.JSX;
19
- if (fileName.endsWith(".js") || fileName.endsWith(".mjs") || fileName.endsWith(".cjs"))
20
- return ts.ScriptKind.JS;
21
- return ts.ScriptKind.TS;
27
+ if (fileName.endsWith(".tsx"))
28
+ return ts.ScriptKind.TSX;
29
+ if (fileName.endsWith(".jsx"))
30
+ return ts.ScriptKind.JSX;
31
+ if (fileName.endsWith(".js") || fileName.endsWith(".mjs") || fileName.endsWith(".cjs"))
32
+ return ts.ScriptKind.JS;
33
+ return ts.ScriptKind.TS;
22
34
  }
23
- function deserializeDiagnostic(serialized, fileCache) {
24
- let file;
25
- if (serialized.file != null) {
26
- const fileName = serialized.file.fileName;
27
- if (!fileCache.has(fileName)) {
28
- fileCache.set(fileName, fsx.existsSync(fileName) ? fsx.readSync(fileName) : "");
35
+ /**
36
+ * Restore SerializedDiagnostic to ts.Diagnostic
37
+ * Reads actual file contents so source code context is displayed in formatDiagnosticsWithColorAndContext
38
+ * @param serialized - Serialized diagnostic information
39
+ * @param fileCache - File content cache (prevent duplicate reads of same file)
40
+ * @returns Restored ts.Diagnostic object
41
+ */
42
+ export function deserializeDiagnostic(serialized, fileCache) {
43
+ let file;
44
+ if (serialized.file != null) {
45
+ const fileName = serialized.file.fileName;
46
+ // Get cached file content (read and cache if not present)
47
+ // If file was deleted or inaccessible, treat as empty content
48
+ // (source code context won't be displayed but diagnostic message is shown normally)
49
+ if (!fileCache.has(fileName)) {
50
+ fileCache.set(fileName, fsx.existsSync(fileName) ? fsx.readSync(fileName) : "");
51
+ }
52
+ const content = fileCache.get(fileName);
53
+ const scriptKind = getScriptKind(fileName);
54
+ file = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, false, scriptKind);
29
55
  }
30
- const content = fileCache.get(fileName);
31
- const scriptKind = getScriptKind(fileName);
32
- file = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, false, scriptKind);
33
- }
34
- return {
35
- category: serialized.category,
36
- code: serialized.code,
37
- messageText: serialized.messageText,
38
- file,
39
- start: serialized.start,
40
- length: serialized.length
41
- };
56
+ return {
57
+ category: serialized.category,
58
+ code: serialized.code,
59
+ messageText: serialized.messageText,
60
+ file,
61
+ start: serialized.start,
62
+ length: serialized.length,
63
+ };
42
64
  }
43
- export {
44
- deserializeDiagnostic,
45
- serializeDiagnostic
46
- };
47
- //# sourceMappingURL=typecheck-serialization.js.map
65
+ //# sourceMappingURL=typecheck-serialization.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/typecheck-serialization.ts"],
4
- "mappings": "AAAA,OAAO,QAAQ;AACf,SAAS,WAAW;AAoBb,SAAS,oBAAoB,YAAiD;AAEnF,QAAM,cAAc,GAAG,6BAA6B,WAAW,aAAa,IAAI;AAEhF,SAAO;AAAA,IACL,UAAU,WAAW;AAAA,IACrB,MAAM,WAAW;AAAA,IACjB;AAAA,IACA,MAAM,WAAW,OACb;AAAA,MACE,UAAU,WAAW,KAAK;AAAA,IAC5B,IACA;AAAA,IACJ,OAAO,WAAW;AAAA,IAClB,QAAQ,WAAW;AAAA,EACrB;AACF;AAKA,SAAS,cAAc,UAAiC;AACtD,MAAI,SAAS,SAAS,MAAM,EAAG,QAAO,GAAG,WAAW;AACpD,MAAI,SAAS,SAAS,MAAM,EAAG,QAAO,GAAG,WAAW;AACpD,MAAI,SAAS,SAAS,KAAK,KAAK,SAAS,SAAS,MAAM,KAAK,SAAS,SAAS,MAAM;AACnF,WAAO,GAAG,WAAW;AACvB,SAAO,GAAG,WAAW;AACvB;AASO,SAAS,sBACd,YACA,WACe;AACf,MAAI;AACJ,MAAI,WAAW,QAAQ,MAAM;AAC3B,UAAM,WAAW,WAAW,KAAK;AAKjC,QAAI,CAAC,UAAU,IAAI,QAAQ,GAAG;AAC5B,gBAAU,IAAI,UAAU,IAAI,WAAW,QAAQ,IAAI,IAAI,SAAS,QAAQ,IAAI,EAAE;AAAA,IAChF;AACA,UAAM,UAAU,UAAU,IAAI,QAAQ;AAEtC,UAAM,aAAa,cAAc,QAAQ;AACzC,WAAO,GAAG,iBAAiB,UAAU,SAAS,GAAG,aAAa,QAAQ,OAAO,UAAU;AAAA,EACzF;AAEA,SAAO;AAAA,IACL,UAAU,WAAW;AAAA,IACrB,MAAM,WAAW;AAAA,IACjB,aAAa,WAAW;AAAA,IACxB;AAAA,IACA,OAAO,WAAW;AAAA,IAClB,QAAQ,WAAW;AAAA,EACrB;AACF;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"typecheck-serialization.js","sourceRoot":"","sources":["..\\..\\src\\utils\\typecheck-serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAgB1C;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAyB;IAC3D,+EAA+E;IAC/E,MAAM,WAAW,GAAG,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAElF,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW;QACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACnB,CAAC,CAAC;gBACE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ;aACnC;YACH,CAAC,CAAC,SAAS;QACb,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IACxD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IACxD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpF,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAgC,EAChC,SAA8B;IAE9B,IAAI,IAA+B,CAAC;IACpC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QAE1C,0DAA0D;QAC1D,8DAA8D;QAC9D,oFAAoF;QACpF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,IAAI;QACJ,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC"}