@simplysm/sd-cli 12.16.27 → 13.0.0-beta.12

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 (421) hide show
  1. package/README.md +529 -0
  2. package/dist/builders/BaseBuilder.js +86 -0
  3. package/dist/builders/BaseBuilder.js.map +7 -0
  4. package/dist/builders/DtsBuilder.js +109 -0
  5. package/dist/builders/DtsBuilder.js.map +7 -0
  6. package/dist/builders/LibraryBuilder.js +122 -0
  7. package/dist/builders/LibraryBuilder.js.map +7 -0
  8. package/dist/builders/index.js +9 -0
  9. package/dist/builders/index.js.map +7 -0
  10. package/dist/builders/types.js +1 -0
  11. package/dist/builders/types.js.map +7 -0
  12. package/dist/capacitor/capacitor.js +619 -0
  13. package/dist/capacitor/capacitor.js.map +7 -0
  14. package/dist/commands/add-client.js +83 -0
  15. package/dist/commands/add-client.js.map +7 -0
  16. package/dist/commands/add-server.js +91 -0
  17. package/dist/commands/add-server.js.map +7 -0
  18. package/dist/commands/build.js +310 -0
  19. package/dist/commands/build.js.map +7 -0
  20. package/dist/commands/dev.js +426 -0
  21. package/dist/commands/dev.js.map +7 -0
  22. package/dist/commands/device.js +107 -0
  23. package/dist/commands/device.js.map +7 -0
  24. package/dist/commands/init.js +58 -0
  25. package/dist/commands/init.js.map +7 -0
  26. package/dist/commands/lint.js +138 -0
  27. package/dist/commands/lint.js.map +7 -0
  28. package/dist/commands/publish.js +401 -0
  29. package/dist/commands/publish.js.map +7 -0
  30. package/dist/commands/typecheck.js +197 -0
  31. package/dist/commands/typecheck.js.map +7 -0
  32. package/dist/commands/watch.js +19 -0
  33. package/dist/commands/watch.js.map +7 -0
  34. package/dist/core-common/src/common.types.d.ts +74 -0
  35. package/dist/core-common/src/common.types.d.ts.map +1 -0
  36. package/dist/core-common/src/env.d.ts +6 -0
  37. package/dist/core-common/src/env.d.ts.map +1 -0
  38. package/dist/core-common/src/errors/argument-error.d.ts +25 -0
  39. package/dist/core-common/src/errors/argument-error.d.ts.map +1 -0
  40. package/dist/core-common/src/errors/not-implemented-error.d.ts +29 -0
  41. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +1 -0
  42. package/dist/core-common/src/errors/sd-error.d.ts +27 -0
  43. package/dist/core-common/src/errors/sd-error.d.ts.map +1 -0
  44. package/dist/core-common/src/errors/timeout-error.d.ts +31 -0
  45. package/dist/core-common/src/errors/timeout-error.d.ts.map +1 -0
  46. package/dist/core-common/src/extensions/arr-ext.d.ts +15 -0
  47. package/dist/core-common/src/extensions/arr-ext.d.ts.map +1 -0
  48. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +19 -0
  49. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +1 -0
  50. package/dist/core-common/src/extensions/arr-ext.types.d.ts +215 -0
  51. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +1 -0
  52. package/dist/core-common/src/extensions/map-ext.d.ts +57 -0
  53. package/dist/core-common/src/extensions/map-ext.d.ts.map +1 -0
  54. package/dist/core-common/src/extensions/set-ext.d.ts +36 -0
  55. package/dist/core-common/src/extensions/set-ext.d.ts.map +1 -0
  56. package/dist/core-common/src/features/debounce-queue.d.ts +53 -0
  57. package/dist/core-common/src/features/debounce-queue.d.ts.map +1 -0
  58. package/dist/core-common/src/features/event-emitter.d.ts +66 -0
  59. package/dist/core-common/src/features/event-emitter.d.ts.map +1 -0
  60. package/dist/core-common/src/features/serial-queue.d.ts +47 -0
  61. package/dist/core-common/src/features/serial-queue.d.ts.map +1 -0
  62. package/dist/core-common/src/index.d.ts +32 -0
  63. package/dist/core-common/src/index.d.ts.map +1 -0
  64. package/dist/core-common/src/types/date-only.d.ts +152 -0
  65. package/dist/core-common/src/types/date-only.d.ts.map +1 -0
  66. package/dist/core-common/src/types/date-time.d.ts +96 -0
  67. package/dist/core-common/src/types/date-time.d.ts.map +1 -0
  68. package/dist/core-common/src/types/lazy-gc-map.d.ts +80 -0
  69. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +1 -0
  70. package/dist/core-common/src/types/time.d.ts +68 -0
  71. package/dist/core-common/src/types/time.d.ts.map +1 -0
  72. package/dist/core-common/src/types/uuid.d.ts +35 -0
  73. package/dist/core-common/src/types/uuid.d.ts.map +1 -0
  74. package/dist/core-common/src/utils/bytes.d.ts +51 -0
  75. package/dist/core-common/src/utils/bytes.d.ts.map +1 -0
  76. package/dist/core-common/src/utils/date-format.d.ts +90 -0
  77. package/dist/core-common/src/utils/date-format.d.ts.map +1 -0
  78. package/dist/core-common/src/utils/json.d.ts +34 -0
  79. package/dist/core-common/src/utils/json.d.ts.map +1 -0
  80. package/dist/core-common/src/utils/num.d.ts +60 -0
  81. package/dist/core-common/src/utils/num.d.ts.map +1 -0
  82. package/dist/core-common/src/utils/obj.d.ts +258 -0
  83. package/dist/core-common/src/utils/obj.d.ts.map +1 -0
  84. package/dist/core-common/src/utils/path.d.ts +23 -0
  85. package/dist/core-common/src/utils/path.d.ts.map +1 -0
  86. package/dist/core-common/src/utils/primitive.d.ts +18 -0
  87. package/dist/core-common/src/utils/primitive.d.ts.map +1 -0
  88. package/dist/core-common/src/utils/str.d.ts +103 -0
  89. package/dist/core-common/src/utils/str.d.ts.map +1 -0
  90. package/dist/core-common/src/utils/template-strings.d.ts +84 -0
  91. package/dist/core-common/src/utils/template-strings.d.ts.map +1 -0
  92. package/dist/core-common/src/utils/transferable.d.ts +47 -0
  93. package/dist/core-common/src/utils/transferable.d.ts.map +1 -0
  94. package/dist/core-common/src/utils/wait.d.ts +19 -0
  95. package/dist/core-common/src/utils/wait.d.ts.map +1 -0
  96. package/dist/core-common/src/utils/xml.d.ts +36 -0
  97. package/dist/core-common/src/utils/xml.d.ts.map +1 -0
  98. package/dist/core-common/src/zip/sd-zip.d.ts +80 -0
  99. package/dist/core-common/src/zip/sd-zip.d.ts.map +1 -0
  100. package/dist/core-node/src/features/fs-watcher.d.ts +70 -0
  101. package/dist/core-node/src/features/fs-watcher.d.ts.map +1 -0
  102. package/dist/core-node/src/index.d.ts +7 -0
  103. package/dist/core-node/src/index.d.ts.map +1 -0
  104. package/dist/core-node/src/utils/fs.d.ts +197 -0
  105. package/dist/core-node/src/utils/fs.d.ts.map +1 -0
  106. package/dist/core-node/src/utils/path.d.ts +75 -0
  107. package/dist/core-node/src/utils/path.d.ts.map +1 -0
  108. package/dist/core-node/src/worker/create-worker.d.ts +23 -0
  109. package/dist/core-node/src/worker/create-worker.d.ts.map +1 -0
  110. package/dist/core-node/src/worker/types.d.ts +67 -0
  111. package/dist/core-node/src/worker/types.d.ts.map +1 -0
  112. package/dist/core-node/src/worker/worker.d.ts +27 -0
  113. package/dist/core-node/src/worker/worker.d.ts.map +1 -0
  114. package/dist/electron/electron.js +242 -0
  115. package/dist/electron/electron.js.map +7 -0
  116. package/dist/index.js +2 -0
  117. package/dist/index.js.map +7 -0
  118. package/dist/infra/ResultCollector.js +59 -0
  119. package/dist/infra/ResultCollector.js.map +7 -0
  120. package/dist/infra/SignalHandler.js +44 -0
  121. package/dist/infra/SignalHandler.js.map +7 -0
  122. package/dist/infra/WorkerManager.js +56 -0
  123. package/dist/infra/WorkerManager.js.map +7 -0
  124. package/dist/infra/index.js +9 -0
  125. package/dist/infra/index.js.map +7 -0
  126. package/dist/orchestrators/WatchOrchestrator.js +135 -0
  127. package/dist/orchestrators/WatchOrchestrator.js.map +7 -0
  128. package/dist/orchestrators/index.js +5 -0
  129. package/dist/orchestrators/index.js.map +7 -0
  130. package/dist/sd-cli/src/builders/BaseBuilder.d.ts +77 -0
  131. package/dist/sd-cli/src/builders/BaseBuilder.d.ts.map +1 -0
  132. package/dist/sd-cli/src/builders/DtsBuilder.d.ts +22 -0
  133. package/dist/sd-cli/src/builders/DtsBuilder.d.ts.map +1 -0
  134. package/dist/sd-cli/src/builders/LibraryBuilder.d.ts +22 -0
  135. package/dist/sd-cli/src/builders/LibraryBuilder.d.ts.map +1 -0
  136. package/dist/sd-cli/src/builders/index.d.ts +5 -0
  137. package/dist/sd-cli/src/builders/index.d.ts.map +1 -0
  138. package/dist/sd-cli/src/builders/types.d.ts +49 -0
  139. package/dist/sd-cli/src/builders/types.d.ts.map +1 -0
  140. package/dist/sd-cli/src/capacitor/capacitor.d.ts +131 -0
  141. package/dist/sd-cli/src/capacitor/capacitor.d.ts.map +1 -0
  142. package/dist/sd-cli/src/commands/add-client.d.ts +18 -0
  143. package/dist/sd-cli/src/commands/add-client.d.ts.map +1 -0
  144. package/dist/sd-cli/src/commands/add-server.d.ts +18 -0
  145. package/dist/sd-cli/src/commands/add-server.d.ts.map +1 -0
  146. package/dist/sd-cli/src/commands/build.d.ts +25 -0
  147. package/dist/sd-cli/src/commands/build.d.ts.map +1 -0
  148. package/dist/sd-cli/src/commands/dev.d.ts +23 -0
  149. package/dist/sd-cli/src/commands/dev.d.ts.map +1 -0
  150. package/dist/sd-cli/src/commands/device.d.ts +22 -0
  151. package/dist/sd-cli/src/commands/device.d.ts.map +1 -0
  152. package/dist/sd-cli/src/commands/init.d.ts +15 -0
  153. package/dist/sd-cli/src/commands/init.d.ts.map +1 -0
  154. package/dist/sd-cli/src/commands/lint.d.ts +31 -0
  155. package/dist/sd-cli/src/commands/lint.d.ts.map +1 -0
  156. package/dist/sd-cli/src/commands/publish.d.ts +27 -0
  157. package/dist/sd-cli/src/commands/publish.d.ts.map +1 -0
  158. package/dist/sd-cli/src/commands/typecheck.d.ts +39 -0
  159. package/dist/sd-cli/src/commands/typecheck.d.ts.map +1 -0
  160. package/dist/sd-cli/src/commands/watch.d.ts +20 -0
  161. package/dist/sd-cli/src/commands/watch.d.ts.map +1 -0
  162. package/dist/sd-cli/src/electron/electron.d.ts +79 -0
  163. package/dist/sd-cli/src/electron/electron.d.ts.map +1 -0
  164. package/dist/sd-cli/src/index.d.ts +2 -0
  165. package/dist/sd-cli/src/index.d.ts.map +1 -0
  166. package/dist/sd-cli/src/infra/ResultCollector.d.ts +56 -0
  167. package/dist/sd-cli/src/infra/ResultCollector.d.ts.map +1 -0
  168. package/dist/sd-cli/src/infra/SignalHandler.d.ts +26 -0
  169. package/dist/sd-cli/src/infra/SignalHandler.d.ts.map +1 -0
  170. package/dist/sd-cli/src/infra/WorkerManager.d.ts +40 -0
  171. package/dist/sd-cli/src/infra/WorkerManager.d.ts.map +1 -0
  172. package/dist/sd-cli/src/infra/index.d.ts +4 -0
  173. package/dist/sd-cli/src/infra/index.d.ts.map +1 -0
  174. package/dist/sd-cli/src/orchestrators/WatchOrchestrator.d.ts +48 -0
  175. package/dist/sd-cli/src/orchestrators/WatchOrchestrator.d.ts.map +1 -0
  176. package/dist/sd-cli/src/orchestrators/index.d.ts +2 -0
  177. package/dist/sd-cli/src/orchestrators/index.d.ts.map +1 -0
  178. package/dist/sd-cli/src/sd-cli.d.ts +9 -0
  179. package/dist/sd-cli/src/sd-cli.d.ts.map +1 -0
  180. package/dist/sd-cli/src/sd-config.types.d.ts +222 -0
  181. package/dist/sd-cli/src/sd-config.types.d.ts.map +1 -0
  182. package/dist/sd-cli/src/utils/build-env.d.ts +5 -0
  183. package/dist/sd-cli/src/utils/build-env.d.ts.map +1 -0
  184. package/dist/sd-cli/src/utils/config-editor.d.ts +17 -0
  185. package/dist/sd-cli/src/utils/config-editor.d.ts.map +1 -0
  186. package/dist/sd-cli/src/utils/esbuild-config.d.ts +49 -0
  187. package/dist/sd-cli/src/utils/esbuild-config.d.ts.map +1 -0
  188. package/dist/sd-cli/src/utils/listr-manager.d.ts +37 -0
  189. package/dist/sd-cli/src/utils/listr-manager.d.ts.map +1 -0
  190. package/dist/sd-cli/src/utils/output-utils.d.ts +21 -0
  191. package/dist/sd-cli/src/utils/output-utils.d.ts.map +1 -0
  192. package/dist/sd-cli/src/utils/package-utils.d.ts +29 -0
  193. package/dist/sd-cli/src/utils/package-utils.d.ts.map +1 -0
  194. package/dist/sd-cli/src/utils/sd-config.d.ts +12 -0
  195. package/dist/sd-cli/src/utils/sd-config.d.ts.map +1 -0
  196. package/dist/sd-cli/src/utils/spawn.d.ts +26 -0
  197. package/dist/sd-cli/src/utils/spawn.d.ts.map +1 -0
  198. package/dist/sd-cli/src/utils/tailwind-config-deps.d.ts +8 -0
  199. package/dist/sd-cli/src/utils/tailwind-config-deps.d.ts.map +1 -0
  200. package/dist/sd-cli/src/utils/template.d.ts +14 -0
  201. package/dist/sd-cli/src/utils/template.d.ts.map +1 -0
  202. package/dist/sd-cli/src/utils/tsconfig.d.ts +35 -0
  203. package/dist/sd-cli/src/utils/tsconfig.d.ts.map +1 -0
  204. package/dist/sd-cli/src/utils/typecheck-serialization.d.ts +28 -0
  205. package/dist/sd-cli/src/utils/typecheck-serialization.d.ts.map +1 -0
  206. package/dist/sd-cli/src/utils/vite-config.d.ts +25 -0
  207. package/dist/sd-cli/src/utils/vite-config.d.ts.map +1 -0
  208. package/dist/sd-cli/src/utils/worker-events.d.ts +53 -0
  209. package/dist/sd-cli/src/utils/worker-events.d.ts.map +1 -0
  210. package/dist/sd-cli/src/workers/client.worker.d.ts +82 -0
  211. package/dist/sd-cli/src/workers/client.worker.d.ts.map +1 -0
  212. package/dist/sd-cli/src/workers/dts.worker.d.ts +73 -0
  213. package/dist/sd-cli/src/workers/dts.worker.d.ts.map +1 -0
  214. package/dist/sd-cli/src/workers/library.worker.d.ts +73 -0
  215. package/dist/sd-cli/src/workers/library.worker.d.ts.map +1 -0
  216. package/dist/sd-cli/src/workers/server-runtime.worker.d.ts +40 -0
  217. package/dist/sd-cli/src/workers/server-runtime.worker.d.ts.map +1 -0
  218. package/dist/sd-cli/src/workers/server.worker.d.ts +76 -0
  219. package/dist/sd-cli/src/workers/server.worker.d.ts.map +1 -0
  220. package/dist/sd-cli.js +239 -76
  221. package/dist/sd-cli.js.map +7 -0
  222. package/dist/sd-config.types.js +1 -0
  223. package/dist/sd-config.types.js.map +7 -0
  224. package/dist/storage/src/clients/ftp-storage-client.d.ts +56 -0
  225. package/dist/storage/src/clients/ftp-storage-client.d.ts.map +1 -0
  226. package/dist/storage/src/clients/sftp-storage-client.d.ts +48 -0
  227. package/dist/storage/src/clients/sftp-storage-client.d.ts.map +1 -0
  228. package/dist/storage/src/index.d.ts +7 -0
  229. package/dist/storage/src/index.d.ts.map +1 -0
  230. package/dist/storage/src/storage-factory.d.ts +20 -0
  231. package/dist/storage/src/storage-factory.d.ts.map +1 -0
  232. package/dist/storage/src/types/storage-conn-config.d.ts +7 -0
  233. package/dist/storage/src/types/storage-conn-config.d.ts.map +1 -0
  234. package/dist/storage/src/types/storage-type.d.ts +2 -0
  235. package/dist/storage/src/types/storage-type.d.ts.map +1 -0
  236. package/dist/storage/src/types/storage.d.ts +19 -0
  237. package/dist/storage/src/types/storage.d.ts.map +1 -0
  238. package/dist/utils/build-env.js +12 -0
  239. package/dist/utils/build-env.js.map +7 -0
  240. package/dist/utils/config-editor.js +77 -0
  241. package/dist/utils/config-editor.js.map +7 -0
  242. package/dist/utils/esbuild-config.js +44 -0
  243. package/dist/utils/esbuild-config.js.map +7 -0
  244. package/dist/utils/listr-manager.js +59 -0
  245. package/dist/utils/listr-manager.js.map +7 -0
  246. package/dist/utils/output-utils.js +40 -0
  247. package/dist/utils/output-utils.js.map +7 -0
  248. package/dist/utils/package-utils.js +28 -0
  249. package/dist/utils/package-utils.js.map +7 -0
  250. package/dist/utils/sd-config.js +24 -0
  251. package/dist/utils/sd-config.js.map +7 -0
  252. package/dist/utils/spawn.js +49 -0
  253. package/dist/utils/spawn.js.map +7 -0
  254. package/dist/utils/tailwind-config-deps.js +80 -0
  255. package/dist/utils/tailwind-config-deps.js.map +7 -0
  256. package/dist/utils/template.js +28 -0
  257. package/dist/utils/template.js.map +7 -0
  258. package/dist/utils/tsconfig.js +62 -0
  259. package/dist/utils/tsconfig.js.map +7 -0
  260. package/dist/utils/typecheck-serialization.js +46 -0
  261. package/dist/utils/typecheck-serialization.js.map +7 -0
  262. package/dist/utils/vite-config.js +108 -0
  263. package/dist/utils/vite-config.js.map +7 -0
  264. package/dist/utils/worker-events.js +38 -0
  265. package/dist/utils/worker-events.js.map +7 -0
  266. package/dist/workers/client.worker.js +94 -0
  267. package/dist/workers/client.worker.js.map +7 -0
  268. package/dist/workers/dts.worker.js +210 -0
  269. package/dist/workers/dts.worker.js.map +7 -0
  270. package/dist/workers/library.worker.js +118 -0
  271. package/dist/workers/library.worker.js.map +7 -0
  272. package/dist/workers/server-runtime.worker.js +85 -0
  273. package/dist/workers/server-runtime.worker.js.map +7 -0
  274. package/dist/workers/server.worker.js +114 -42
  275. package/dist/workers/server.worker.js.map +7 -0
  276. package/package.json +32 -29
  277. package/dist/entry/SdCliAiCommand.d.ts +0 -3
  278. package/dist/entry/SdCliAiCommand.js +0 -91
  279. package/dist/entry/SdCliCapacitor.d.ts +0 -35
  280. package/dist/entry/SdCliCapacitor.js +0 -565
  281. package/dist/entry/SdCliCordova.d.ts +0 -49
  282. package/dist/entry/SdCliCordova.js +0 -394
  283. package/dist/entry/SdCliElectron.d.ts +0 -22
  284. package/dist/entry/SdCliElectron.js +0 -128
  285. package/dist/entry/SdCliLocalUpdate.d.ts +0 -11
  286. package/dist/entry/SdCliLocalUpdate.js +0 -83
  287. package/dist/entry/SdCliPostInstall.d.ts +0 -3
  288. package/dist/entry/SdCliPostInstall.js +0 -48
  289. package/dist/entry/SdCliProject.d.ts +0 -24
  290. package/dist/entry/SdCliProject.js +0 -336
  291. package/dist/pkg-builders/SdBuildRunnerBase.d.ts +0 -14
  292. package/dist/pkg-builders/SdBuildRunnerBase.js +0 -22
  293. package/dist/pkg-builders/SdProjectBuildRunner.d.ts +0 -25
  294. package/dist/pkg-builders/SdProjectBuildRunner.js +0 -264
  295. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.d.ts +0 -9
  296. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.js +0 -89
  297. package/dist/pkg-builders/client/SdClientBuildRunner.d.ts +0 -10
  298. package/dist/pkg-builders/client/SdClientBuildRunner.js +0 -113
  299. package/dist/pkg-builders/client/SdNgBundler.d.ts +0 -38
  300. package/dist/pkg-builders/client/SdNgBundler.js +0 -525
  301. package/dist/pkg-builders/client/SdNgBundlerContext.d.ts +0 -25
  302. package/dist/pkg-builders/client/SdNgBundlerContext.js +0 -104
  303. package/dist/pkg-builders/client/createSdNgPlugin.d.ts +0 -5
  304. package/dist/pkg-builders/client/createSdNgPlugin.js +0 -133
  305. package/dist/pkg-builders/commons/SdWorkerPathPlugin.d.ts +0 -2
  306. package/dist/pkg-builders/commons/SdWorkerPathPlugin.js +0 -91
  307. package/dist/pkg-builders/lib/SdCliDbContextFileGenerator.d.ts +0 -9
  308. package/dist/pkg-builders/lib/SdCliDbContextFileGenerator.js +0 -138
  309. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.d.ts +0 -11
  310. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.js +0 -79
  311. package/dist/pkg-builders/lib/SdJsLibBuildRunner.d.ts +0 -8
  312. package/dist/pkg-builders/lib/SdJsLibBuildRunner.js +0 -44
  313. package/dist/pkg-builders/lib/SdTsLibBuildRunner.d.ts +0 -8
  314. package/dist/pkg-builders/lib/SdTsLibBuildRunner.js +0 -34
  315. package/dist/pkg-builders/lib/SdTsLibBuilder.d.ts +0 -10
  316. package/dist/pkg-builders/lib/SdTsLibBuilder.js +0 -54
  317. package/dist/pkg-builders/server/SdServerBuildRunner.d.ts +0 -10
  318. package/dist/pkg-builders/server/SdServerBuildRunner.js +0 -228
  319. package/dist/pkg-builders/server/SdServerBundler.d.ts +0 -17
  320. package/dist/pkg-builders/server/SdServerBundler.js +0 -174
  321. package/dist/pkg-builders/server/createSdServerPlugin.d.ts +0 -5
  322. package/dist/pkg-builders/server/createSdServerPlugin.js +0 -53
  323. package/dist/sd-cli-entry.d.ts +0 -2
  324. package/dist/sd-cli-entry.js +0 -230
  325. package/dist/sd-cli.d.ts +0 -2
  326. package/dist/ts-compiler/ScopePathSet.d.ts +0 -7
  327. package/dist/ts-compiler/ScopePathSet.js +0 -12
  328. package/dist/ts-compiler/SdDepAnalyzer.d.ts +0 -15
  329. package/dist/ts-compiler/SdDepAnalyzer.js +0 -299
  330. package/dist/ts-compiler/SdDepCache.d.ts +0 -77
  331. package/dist/ts-compiler/SdDepCache.js +0 -248
  332. package/dist/ts-compiler/SdStyleBundler.d.ts +0 -23
  333. package/dist/ts-compiler/SdStyleBundler.js +0 -131
  334. package/dist/ts-compiler/SdTsCompiler.d.ts +0 -29
  335. package/dist/ts-compiler/SdTsCompiler.js +0 -420
  336. package/dist/types/build/ISdBuildMessage.d.ts +0 -10
  337. package/dist/types/build/ISdBuildMessage.js +0 -1
  338. package/dist/types/build/ISdBuildResult.d.ts +0 -8
  339. package/dist/types/build/ISdBuildResult.js +0 -1
  340. package/dist/types/build/ISdTsCompilerOptions.d.ts +0 -10
  341. package/dist/types/build/ISdTsCompilerOptions.js +0 -1
  342. package/dist/types/build/ISdTsCompilerResult.d.ts +0 -14
  343. package/dist/types/build/ISdTsCompilerResult.js +0 -1
  344. package/dist/types/build/TStylesheetBundlingResult.d.ts +0 -12
  345. package/dist/types/build/TStylesheetBundlingResult.js +0 -1
  346. package/dist/types/common-config/INpmConfig.d.ts +0 -17
  347. package/dist/types/common-config/INpmConfig.js +0 -1
  348. package/dist/types/common-config/ITsConfig.d.ts +0 -7
  349. package/dist/types/common-config/ITsConfig.js +0 -1
  350. package/dist/types/config/ISdProjectConfig.d.ts +0 -144
  351. package/dist/types/config/ISdProjectConfig.js +0 -1
  352. package/dist/types/plugin/ISdCliNgPluginResultCache.d.ts +0 -8
  353. package/dist/types/plugin/ISdCliNgPluginResultCache.js +0 -1
  354. package/dist/types/plugin/ISdCliServerPluginResultCache.d.ts +0 -8
  355. package/dist/types/plugin/ISdCliServerPluginResultCache.js +0 -1
  356. package/dist/types/worker/ISdBuildRunnerWorkerType.d.ts +0 -20
  357. package/dist/types/worker/ISdBuildRunnerWorkerType.js +0 -1
  358. package/dist/types/worker/IServerWorkerType.d.ts +0 -17
  359. package/dist/types/worker/IServerWorkerType.js +0 -1
  360. package/dist/utils/SdCliConvertMessageUtils.d.ts +0 -21
  361. package/dist/utils/SdCliConvertMessageUtils.js +0 -138
  362. package/dist/utils/SdCliPerformanceTimer.d.ts +0 -10
  363. package/dist/utils/SdCliPerformanceTimer.js +0 -50
  364. package/dist/utils/loadProjConfAsync.d.ts +0 -5
  365. package/dist/utils/loadProjConfAsync.js +0 -7
  366. package/dist/workers/build-runner.worker.d.ts +0 -1
  367. package/dist/workers/build-runner.worker.js +0 -37
  368. package/dist/workers/server.worker.d.ts +0 -1
  369. package/lib/cordova-entry.js +0 -29
  370. package/src/entry/SdCliAiCommand.ts +0 -105
  371. package/src/entry/SdCliCapacitor.ts +0 -760
  372. package/src/entry/SdCliCordova.ts +0 -550
  373. package/src/entry/SdCliElectron.ts +0 -197
  374. package/src/entry/SdCliLocalUpdate.ts +0 -106
  375. package/src/entry/SdCliPostInstall.ts +0 -51
  376. package/src/entry/SdCliProject.ts +0 -427
  377. package/src/pkg-builders/SdBuildRunnerBase.ts +0 -36
  378. package/src/pkg-builders/SdProjectBuildRunner.ts +0 -398
  379. package/src/pkg-builders/client/SdCliNgRoutesFileGenerator.ts +0 -112
  380. package/src/pkg-builders/client/SdClientBuildRunner.ts +0 -156
  381. package/src/pkg-builders/client/SdNgBundler.ts +0 -666
  382. package/src/pkg-builders/client/SdNgBundlerContext.ts +0 -138
  383. package/src/pkg-builders/client/createSdNgPlugin.ts +0 -186
  384. package/src/pkg-builders/commons/SdWorkerPathPlugin.ts +0 -117
  385. package/src/pkg-builders/lib/SdCliDbContextFileGenerator.ts +0 -177
  386. package/src/pkg-builders/lib/SdCliIndexFileGenerator.ts +0 -94
  387. package/src/pkg-builders/lib/SdJsLibBuildRunner.ts +0 -59
  388. package/src/pkg-builders/lib/SdTsLibBuildRunner.ts +0 -47
  389. package/src/pkg-builders/lib/SdTsLibBuilder.ts +0 -71
  390. package/src/pkg-builders/server/SdServerBuildRunner.ts +0 -299
  391. package/src/pkg-builders/server/SdServerBundler.ts +0 -208
  392. package/src/pkg-builders/server/createSdServerPlugin.ts +0 -80
  393. package/src/sd-cli-entry.ts +0 -292
  394. package/src/sd-cli.ts +0 -105
  395. package/src/ts-compiler/ScopePathSet.ts +0 -17
  396. package/src/ts-compiler/SdDepAnalyzer.ts +0 -372
  397. package/src/ts-compiler/SdDepCache.ts +0 -304
  398. package/src/ts-compiler/SdStyleBundler.ts +0 -169
  399. package/src/ts-compiler/SdTsCompiler.ts +0 -638
  400. package/src/types/build/ISdBuildMessage.ts +0 -11
  401. package/src/types/build/ISdBuildResult.ts +0 -9
  402. package/src/types/build/ISdTsCompilerOptions.ts +0 -11
  403. package/src/types/build/ISdTsCompilerResult.ts +0 -12
  404. package/src/types/build/TStylesheetBundlingResult.ts +0 -15
  405. package/src/types/common-config/INpmConfig.ts +0 -24
  406. package/src/types/common-config/ITsConfig.ts +0 -5
  407. package/src/types/config/ISdProjectConfig.ts +0 -174
  408. package/src/types/plugin/ISdCliNgPluginResultCache.ts +0 -9
  409. package/src/types/plugin/ISdCliServerPluginResultCache.ts +0 -9
  410. package/src/types/worker/ISdBuildRunnerWorkerType.ts +0 -19
  411. package/src/types/worker/IServerWorkerType.ts +0 -8
  412. package/src/utils/SdCliConvertMessageUtils.ts +0 -180
  413. package/src/utils/SdCliPerformanceTimer.ts +0 -62
  414. package/src/utils/loadProjConfAsync.ts +0 -16
  415. package/src/workers/build-runner.worker.ts +0 -54
  416. package/src/workers/server.worker.ts +0 -54
  417. package/tests/deps/sd-dependency-analyzer.spec.ts +0 -241
  418. package/tests/deps/sd-dependency-cache.spec.ts +0 -153
  419. package/tsconfig.json +0 -8
  420. package/tsconfig.test.json +0 -8
  421. package/vitest.config.js +0 -15
@@ -0,0 +1,197 @@
1
+ import ts from "typescript";
2
+ import path from "path";
3
+ import os from "os";
4
+ import { Listr } from "listr2";
5
+ import { pathPosix, pathFilterByTargets, Worker } from "@simplysm/core-node";
6
+ import "@simplysm/core-common";
7
+ import { consola, LogLevels } from "consola";
8
+ import { parseRootTsconfig } from "../utils/tsconfig";
9
+ import { loadSdConfig } from "../utils/sd-config";
10
+ import { deserializeDiagnostic } from "../utils/typecheck-serialization";
11
+ const PATH_PATTERNS = {
12
+ /** packages/{pkg}/... */
13
+ PACKAGE: /^packages\/([^/]+)\//
14
+ };
15
+ function toTypecheckEnvs(target) {
16
+ if (target === "node") return ["node"];
17
+ if (target === "browser" || target === "client") return ["browser"];
18
+ return ["node", "browser"];
19
+ }
20
+ function extractPackages(fileNames, cwd, config) {
21
+ const packages = /* @__PURE__ */ new Map();
22
+ for (const fileName of fileNames) {
23
+ const relativePath = pathPosix(path.relative(cwd, fileName));
24
+ const packageMatch = relativePath.match(PATH_PATTERNS.PACKAGE);
25
+ if (packageMatch) {
26
+ const pkgName = packageMatch[1];
27
+ if (config.packages[pkgName]?.target === "scripts") continue;
28
+ if (!packages.has(pkgName)) {
29
+ packages.set(pkgName, {
30
+ name: pkgName,
31
+ dir: path.resolve(cwd, "packages", pkgName),
32
+ envs: toTypecheckEnvs(config.packages[pkgName]?.target)
33
+ });
34
+ }
35
+ }
36
+ }
37
+ return packages;
38
+ }
39
+ function createTypecheckTasks(packages, cwd) {
40
+ const tasks = [];
41
+ for (const info of packages.values()) {
42
+ for (const env of info.envs) {
43
+ const envSuffix = info.envs.length > 1 ? ` [${env}]` : "";
44
+ tasks.push({
45
+ displayName: `\uD328\uD0A4\uC9C0: ${info.name}${envSuffix}`,
46
+ buildInfo: {
47
+ name: info.name,
48
+ cwd,
49
+ pkgDir: info.dir,
50
+ env,
51
+ emit: false
52
+ // 타입체크만 수행 (dts 생성 안 함)
53
+ }
54
+ });
55
+ }
56
+ }
57
+ return tasks;
58
+ }
59
+ async function runTypecheck(options) {
60
+ const { targets } = options;
61
+ const cwd = process.cwd();
62
+ const logger = consola.withTag("sd:cli:typecheck");
63
+ logger.debug("\uD0C0\uC785\uCCB4\uD06C \uC2DC\uC791", { targets });
64
+ const formatHost = {
65
+ getCanonicalFileName: (f) => f,
66
+ getCurrentDirectory: () => cwd,
67
+ getNewLine: () => ts.sys.newLine
68
+ };
69
+ let parsedConfig;
70
+ try {
71
+ parsedConfig = parseRootTsconfig(cwd);
72
+ } catch (err) {
73
+ consola.error(err instanceof Error ? err.message : err);
74
+ process.exitCode = 1;
75
+ return;
76
+ }
77
+ let sdConfig;
78
+ try {
79
+ sdConfig = await loadSdConfig({ cwd, dev: false, opt: options.options });
80
+ logger.debug("sd.config.ts \uB85C\uB4DC \uC644\uB8CC");
81
+ } catch (err) {
82
+ sdConfig = { packages: {} };
83
+ logger.debug("sd.config.ts \uB85C\uB4DC \uC2E4\uD328, \uAE30\uBCF8\uAC12 \uC0AC\uC6A9", err);
84
+ }
85
+ const fileNames = pathFilterByTargets(parsedConfig.fileNames, targets, cwd);
86
+ if (fileNames.length === 0) {
87
+ process.stdout.write("\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
88
+ logger.info("\uD0C0\uC785\uCCB4\uD06C\uD560 \uD30C\uC77C \uC5C6\uC74C");
89
+ return;
90
+ }
91
+ const packages = extractPackages(fileNames, cwd, sdConfig);
92
+ logger.debug("\uD328\uD0A4\uC9C0 \uCD94\uCD9C \uC644\uB8CC", {
93
+ packageCount: packages.size,
94
+ packages: [...packages.keys()]
95
+ });
96
+ const tasks = createTypecheckTasks(packages, cwd);
97
+ if (tasks.length === 0) {
98
+ process.stdout.write("\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD328\uD0A4\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
99
+ return;
100
+ }
101
+ const maxConcurrency = Math.max(Math.floor(os.cpus().length * 7 / 8), 1);
102
+ const concurrency = Math.min(maxConcurrency, tasks.length);
103
+ logger.debug("\uB3D9\uC2DC\uC131 \uC124\uC815", { concurrency, maxConcurrency, taskCount: tasks.length });
104
+ const workerPath = path.resolve(import.meta.dirname, "../workers/dts.worker.ts");
105
+ const workers = [];
106
+ for (let i = 0; i < concurrency; i++) {
107
+ workers.push(Worker.create(workerPath));
108
+ }
109
+ const allResults = [];
110
+ const taskResolvers = /* @__PURE__ */ new Map();
111
+ try {
112
+ let taskIndex = 0;
113
+ async function runNextTask(worker) {
114
+ while (taskIndex < tasks.length) {
115
+ const currentIndex = taskIndex++;
116
+ const task = tasks[currentIndex];
117
+ try {
118
+ const result = await worker.buildDts(task.buildInfo);
119
+ allResults.push({ displayName: task.displayName, result });
120
+ } catch (err) {
121
+ logger.error(`Worker \uC624\uB958: ${task.displayName}`, {
122
+ error: err instanceof Error ? err.message : String(err)
123
+ });
124
+ allResults.push({
125
+ displayName: task.displayName,
126
+ result: {
127
+ success: false,
128
+ errors: [err instanceof Error ? err.message : String(err)],
129
+ diagnostics: [],
130
+ errorCount: 1,
131
+ warningCount: 0
132
+ }
133
+ });
134
+ } finally {
135
+ taskResolvers.get(task.displayName)?.();
136
+ }
137
+ }
138
+ }
139
+ const listr = new Listr(
140
+ tasks.map((task) => ({
141
+ title: task.displayName,
142
+ task: () => new Promise((resolve) => {
143
+ taskResolvers.set(task.displayName, resolve);
144
+ })
145
+ })),
146
+ {
147
+ concurrent: concurrency,
148
+ exitOnError: false,
149
+ renderer: consola.level >= LogLevels.debug ? "verbose" : "default"
150
+ }
151
+ );
152
+ const workerPromises = workers.map((worker) => runNextTask(worker));
153
+ await Promise.all([listr.run(), ...workerPromises]);
154
+ } finally {
155
+ for (const resolver of taskResolvers.values()) {
156
+ resolver();
157
+ }
158
+ await Promise.all(workers.map((w) => w.terminate()));
159
+ }
160
+ const allDiagnostics = [];
161
+ let totalErrorCount = 0;
162
+ let totalWarningCount = 0;
163
+ const fileCache = /* @__PURE__ */ new Map();
164
+ for (const { result } of allResults) {
165
+ totalErrorCount += result.errorCount;
166
+ totalWarningCount += result.warningCount;
167
+ for (const serialized of result.diagnostics) {
168
+ allDiagnostics.push(deserializeDiagnostic(serialized, fileCache));
169
+ }
170
+ }
171
+ if (totalErrorCount > 0) {
172
+ logger.error("\uD0C0\uC785\uCCB4\uD06C \uC5D0\uB7EC \uBC1C\uC0DD", {
173
+ errorCount: totalErrorCount,
174
+ warningCount: totalWarningCount
175
+ });
176
+ } else if (totalWarningCount > 0) {
177
+ logger.info("\uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC (\uACBD\uACE0 \uC788\uC74C)", {
178
+ errorCount: totalErrorCount,
179
+ warningCount: totalWarningCount
180
+ });
181
+ } else {
182
+ logger.info("\uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC", { errorCount: totalErrorCount, warningCount: totalWarningCount });
183
+ }
184
+ if (allDiagnostics.length > 0) {
185
+ const uniqueDiagnostics = ts.sortAndDeduplicateDiagnostics(allDiagnostics);
186
+ const message = ts.formatDiagnosticsWithColorAndContext(uniqueDiagnostics, formatHost);
187
+ process.stdout.write(message);
188
+ }
189
+ if (totalErrorCount > 0) {
190
+ process.exitCode = 1;
191
+ }
192
+ }
193
+ export {
194
+ extractPackages,
195
+ runTypecheck
196
+ };
197
+ //# sourceMappingURL=typecheck.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/typecheck.ts"],
4
+ "sourcesContent": ["import ts from \"typescript\";\nimport path from \"path\";\nimport os from \"os\";\nimport { Listr } from \"listr2\";\nimport { pathPosix, pathFilterByTargets, Worker, type WorkerProxy } from \"@simplysm/core-node\";\nimport \"@simplysm/core-common\";\nimport { consola, LogLevels } from \"consola\";\nimport type { SdConfig } from \"../sd-config.types\";\nimport { parseRootTsconfig, type TypecheckEnv } from \"../utils/tsconfig\";\nimport { loadSdConfig } from \"../utils/sd-config\";\nimport { deserializeDiagnostic } from \"../utils/typecheck-serialization\";\nimport type { DtsBuildInfo, DtsBuildResult } from \"../workers/dts.worker\";\nimport type * as DtsWorkerModule from \"../workers/dts.worker\";\n\n//#region Types\n\n/**\n * TypeScript \uD0C0\uC785\uCCB4\uD06C \uC635\uC158\n */\nexport interface TypecheckOptions {\n /** \uD0C0\uC785\uCCB4\uD06C\uD560 \uACBD\uB85C \uD544\uD130 (\uC608: `packages/core-common`). \uBE48 \uBC30\uC5F4\uC774\uBA74 tsconfig.json\uC5D0 \uC815\uC758\uB41C \uBAA8\uB4E0 \uD30C\uC77C \uB300\uC0C1 */\n targets: string[];\n /** sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uCD94\uAC00 \uC635\uC158 */\n options: string[];\n}\n\n// \uD328\uD0A4\uC9C0 \uC815\uBCF4 (packages/* \uD558\uC704 \uD30C\uC77C \uBD84\uB958\uC6A9)\ninterface PackageInfo {\n name: string;\n dir: string;\n envs: TypecheckEnv[]; // neutral\uC740 [\"node\", \"browser\"], \uB098\uBA38\uC9C0\uB294 \uB2E8\uC77C \uD658\uACBD\n}\n\n// \uD0C0\uC785\uCCB4\uD06C \uC791\uC5C5 \uC815\uBCF4 (\uB0B4\uBD80 \uC0AC\uC6A9)\ninterface TypecheckTask {\n /** \uC791\uC5C5 \uD45C\uC2DC \uC774\uB984 (\uC608: \"\uD328\uD0A4\uC9C0: core-common [node]\") */\n displayName: string;\n /** dts.worker\uC5D0 \uC804\uB2EC\uD560 \uC815\uBCF4 */\n buildInfo: DtsBuildInfo;\n}\n\n//#endregion\n\n//#region Utilities\n\n/** \uACBD\uB85C \uBD84\uB958\uC6A9 \uC815\uADDC\uD45C\uD604\uC2DD */\nconst PATH_PATTERNS = {\n /** packages/{pkg}/... */\n PACKAGE: /^packages\\/([^/]+)\\//,\n} as const;\n\n/**\n * \uD328\uD0A4\uC9C0 \uD0C0\uAC9F\uC744 \uD0C0\uC785\uCCB4\uD06C \uD658\uACBD \uBAA9\uB85D\uC73C\uB85C \uBCC0\uD658\uD569\uB2C8\uB2E4.\n * - node/browser: \uD574\uB2F9 \uD658\uACBD\uB9CC\n * - neutral: node + browser \uB458 \uB2E4\n * - client: browser\uB85C \uCC98\uB9AC\n * @param target \uD328\uD0A4\uC9C0 \uBE4C\uB4DC \uD0C0\uAC9F\n * @returns \uD0C0\uC785\uCCB4\uD06C \uD658\uACBD \uBAA9\uB85D\n */\nfunction toTypecheckEnvs(target: string | undefined): TypecheckEnv[] {\n if (target === \"node\") return [\"node\"];\n if (target === \"browser\" || target === \"client\") return [\"browser\"];\n // neutral \uB610\uB294 \uBBF8\uC9C0\uC815\uC740 \uB458 \uB2E4\n return [\"node\", \"browser\"];\n}\n\n/**\n * \uD30C\uC77C \uACBD\uB85C\uC5D0\uC11C \uD328\uD0A4\uC9C0 \uC815\uBCF4\uB97C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n * scripts \uD0C0\uAC9F \uD328\uD0A4\uC9C0\uB294 \uC81C\uC678\uD569\uB2C8\uB2E4.\n * @internal \uD14C\uC2A4\uD2B8\uC6A9\uC73C\uB85C export\n */\nexport function extractPackages(fileNames: string[], cwd: string, config: SdConfig): Map<string, PackageInfo> {\n const packages = new Map<string, PackageInfo>();\n\n for (const fileName of fileNames) {\n const relativePath = pathPosix(path.relative(cwd, fileName));\n\n // packages/{pkg}/...\n const packageMatch = relativePath.match(PATH_PATTERNS.PACKAGE);\n if (packageMatch) {\n const pkgName = packageMatch[1];\n // scripts \uD0C0\uAC9F \uD328\uD0A4\uC9C0\uB294 \uC81C\uC678\n if (config.packages[pkgName]?.target === \"scripts\") continue;\n\n if (!packages.has(pkgName)) {\n packages.set(pkgName, {\n name: pkgName,\n dir: path.resolve(cwd, \"packages\", pkgName),\n envs: toTypecheckEnvs(config.packages[pkgName]?.target),\n });\n }\n }\n }\n\n return packages;\n}\n\n/**\n * \uD328\uD0A4\uC9C0 \uC815\uBCF4\uB85C\uBD80\uD130 \uD0C0\uC785\uCCB4\uD06C \uC791\uC5C5 \uBAA9\uB85D\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n * neutral \uD328\uD0A4\uC9C0\uB294 node/browser \uB450 \uD658\uACBD\uC73C\uB85C \uBD84\uB9AC\uD558\uC5EC \uAC01\uAC01 \uCCB4\uD06C\uD569\uB2C8\uB2E4.\n * @param packages \uD328\uD0A4\uC9C0 \uC815\uBCF4 \uB9F5\n * @param cwd \uD604\uC7AC \uC791\uC5C5 \uB514\uB809\uD1A0\uB9AC\n * @returns \uD0C0\uC785\uCCB4\uD06C \uC791\uC5C5 \uC815\uBCF4 \uBC30\uC5F4\n */\nfunction createTypecheckTasks(packages: Map<string, PackageInfo>, cwd: string): TypecheckTask[] {\n const tasks: TypecheckTask[] = [];\n\n // packages/* - \uAC01 env\uB9C8\uB2E4 \uBCC4\uB3C4 task \uC0DD\uC131\n for (const info of packages.values()) {\n for (const env of info.envs) {\n const envSuffix = info.envs.length > 1 ? ` [${env}]` : \"\";\n tasks.push({\n displayName: `\uD328\uD0A4\uC9C0: ${info.name}${envSuffix}`,\n buildInfo: {\n name: info.name,\n cwd,\n pkgDir: info.dir,\n env,\n emit: false, // \uD0C0\uC785\uCCB4\uD06C\uB9CC \uC218\uD589 (dts \uC0DD\uC131 \uC548 \uD568)\n },\n });\n }\n }\n\n return tasks;\n}\n\n//#endregion\n\n//#region Main\n\n/**\n * TypeScript \uD0C0\uC785\uCCB4\uD06C\uB97C \uC2E4\uD589\uD55C\uB2E4.\n *\n * - `tsconfig.json`\uC744 \uB85C\uB4DC\uD558\uC5EC \uCEF4\uD30C\uC77C\uB7EC \uC635\uC158 \uC801\uC6A9\n * - `sd.config.ts`\uB97C \uB85C\uB4DC\uD558\uC5EC \uD328\uD0A4\uC9C0\uBCC4 \uD0C0\uAC9F \uC815\uBCF4 \uD655\uC778 (\uC5C6\uC73C\uBA74 \uAE30\uBCF8\uAC12 \uC0AC\uC6A9)\n * - Worker threads\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC2E4\uC81C \uBCD1\uB82C \uD0C0\uC785\uCCB4\uD06C \uC218\uD589\n * - incremental \uCEF4\uD30C\uC77C \uC0AC\uC6A9 (`.cache/typecheck-{env}.tsbuildinfo`)\n * - listr2\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC9C4\uD589 \uC0C1\uD669 \uD45C\uC2DC\n * - \uC5D0\uB7EC \uBC1C\uC0DD \uC2DC `process.exitCode = 1` \uC124\uC815\n *\n * @param options - \uD0C0\uC785\uCCB4\uD06C \uC2E4\uD589 \uC635\uC158\n * @returns \uC644\uB8CC \uC2DC resolve. \uC5D0\uB7EC \uBC1C\uACAC \uC2DC `process.exitCode`\uB97C 1\uB85C \uC124\uC815\uD558\uACE0 resolve (throw\uD558\uC9C0 \uC54A\uC74C)\n */\nexport async function runTypecheck(options: TypecheckOptions): Promise<void> {\n const { targets } = options;\n const cwd = process.cwd();\n const logger = consola.withTag(\"sd:cli:typecheck\");\n\n logger.debug(\"\uD0C0\uC785\uCCB4\uD06C \uC2DC\uC791\", { targets });\n\n const formatHost: ts.FormatDiagnosticsHost = {\n getCanonicalFileName: (f) => f,\n getCurrentDirectory: () => cwd,\n getNewLine: () => ts.sys.newLine,\n };\n\n // tsconfig.json \uB85C\uB4DC \uBC0F \uD30C\uC2F1\n let parsedConfig: ts.ParsedCommandLine;\n try {\n parsedConfig = parseRootTsconfig(cwd);\n } catch (err) {\n consola.error(err instanceof Error ? err.message : err);\n process.exitCode = 1;\n return;\n }\n\n // sd.config.ts \uB85C\uB4DC\n let sdConfig: SdConfig;\n try {\n sdConfig = await loadSdConfig({ cwd, dev: false, opt: options.options });\n logger.debug(\"sd.config.ts \uB85C\uB4DC \uC644\uB8CC\");\n } catch (err) {\n // sd.config.ts\uAC00 \uC5C6\uAC70\uB098 \uB85C\uB4DC \uC2E4\uD328 \uC2DC \uAE30\uBCF8\uAC12 \uC0AC\uC6A9\n sdConfig = { packages: {} };\n logger.debug(\"sd.config.ts \uB85C\uB4DC \uC2E4\uD328, \uAE30\uBCF8\uAC12 \uC0AC\uC6A9\", err);\n }\n\n // targets\uAC00 \uC9C0\uC815\uB418\uBA74 fileNames \uD544\uD130\uB9C1\n const fileNames = pathFilterByTargets(parsedConfig.fileNames, targets, cwd);\n\n if (fileNames.length === 0) {\n process.stdout.write(\"\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.\\n\");\n logger.info(\"\uD0C0\uC785\uCCB4\uD06C\uD560 \uD30C\uC77C \uC5C6\uC74C\");\n return;\n }\n\n // \uD328\uD0A4\uC9C0 \uC815\uBCF4 \uCD94\uCD9C\n const packages = extractPackages(fileNames, cwd, sdConfig);\n logger.debug(\"\uD328\uD0A4\uC9C0 \uCD94\uCD9C \uC644\uB8CC\", {\n packageCount: packages.size,\n packages: [...packages.keys()],\n });\n\n // \uD0C0\uC785\uCCB4\uD06C \uC791\uC5C5 \uC0DD\uC131\n const tasks = createTypecheckTasks(packages, cwd);\n\n if (tasks.length === 0) {\n process.stdout.write(\"\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD328\uD0A4\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.\\n\");\n return;\n }\n\n // \uB3D9\uC2DC\uC131 \uC124\uC815: CPU \uCF54\uC5B4\uC758 7/8\uB9CC \uC0AC\uC6A9 (\uC77C\uBC18\uC801\uC778 \uBCD1\uB82C \uBE4C\uB4DC \uB3C4\uAD6C\uC758 \uAE30\uBCF8\uAC12, OS/\uB2E4\uB978 \uD504\uB85C\uC138\uC2A4 \uC5EC\uC720\uBD84 \uD655\uBCF4, \uCD5C\uC18C 1, \uC791\uC5C5 \uC218 \uC774\uD558)\n const maxConcurrency = Math.max(Math.floor((os.cpus().length * 7) / 8), 1);\n const concurrency = Math.min(maxConcurrency, tasks.length);\n logger.debug(\"\uB3D9\uC2DC\uC131 \uC124\uC815\", { concurrency, maxConcurrency, taskCount: tasks.length });\n\n // Worker \uD480 \uC0DD\uC131 (\uC791\uC5C5 \uC218\uB9CC\uD07C\uB9CC \uC0DD\uC131)\n const workerPath = path.resolve(import.meta.dirname, \"../workers/dts.worker.ts\");\n const workers: WorkerProxy<typeof DtsWorkerModule>[] = [];\n for (let i = 0; i < concurrency; i++) {\n workers.push(Worker.create<typeof DtsWorkerModule>(workerPath));\n }\n\n // \uACB0\uACFC \uC218\uC9D1\uC6A9\n const allResults: { displayName: string; result: DtsBuildResult }[] = [];\n\n // listr2-Worker \uC5F0\uB3D9 \uD328\uD134:\n // 1. listr2\uC758 \uAC01 task\uB294 Promise\uB97C \uBC18\uD658\uD558\uACE0, \uD574\uB2F9 Promise\uAC00 resolve\uB418\uBA74 task\uAC00 \uC644\uB8CC\uB428\n // 2. taskResolvers \uB9F5\uC5D0 task\uBCC4 resolve \uD568\uC218\uB97C \uC800\uC7A5\n // 3. Worker\uAC00 \uC791\uC5C5 \uC644\uB8CC \uC2DC \uD574\uB2F9 task\uC758 resolver\uB97C \uD638\uCD9C\uD558\uC5EC listr2 UI \uC5C5\uB370\uC774\uD2B8\n // 4. Worker \uD480\uC740 \uB3C5\uB9BD\uC801\uC73C\uB85C \uC791\uC5C5 \uD050\uC5D0\uC11C task\uB97C \uAC00\uC838\uC640 \uC2E4\uD589\n const taskResolvers = new Map<string, () => void>();\n\n try {\n // \uC791\uC5C5 \uD050\n let taskIndex = 0;\n\n // Worker\uC5D0\uC11C \uC791\uC5C5 \uC2E4\uD589\n async function runNextTask(worker: WorkerProxy<typeof DtsWorkerModule>): Promise<void> {\n while (taskIndex < tasks.length) {\n const currentIndex = taskIndex++;\n const task = tasks[currentIndex];\n\n try {\n const result = await worker.buildDts(task.buildInfo);\n\n allResults.push({ displayName: task.displayName, result });\n } catch (err) {\n // Worker \uC624\uB958 \uB85C\uAE45 \uBC0F \uACB0\uACFC\uB85C \uBCC0\uD658\n logger.error(`Worker \uC624\uB958: ${task.displayName}`, {\n error: err instanceof Error ? err.message : String(err),\n });\n allResults.push({\n displayName: task.displayName,\n result: {\n success: false,\n errors: [err instanceof Error ? err.message : String(err)],\n diagnostics: [],\n errorCount: 1,\n warningCount: 0,\n },\n });\n } finally {\n // \uC131\uACF5/\uC2E4\uD328 \uBAA8\uB450 task \uC644\uB8CC \uCC98\uB9AC\n taskResolvers.get(task.displayName)?.();\n }\n }\n }\n\n // listr2\uB85C \uC9C4\uD589 \uC0C1\uD669 \uD45C\uC2DC\n const listr = new Listr(\n tasks.map((task) => ({\n title: task.displayName,\n task: () =>\n new Promise<void>((resolve) => {\n taskResolvers.set(task.displayName, resolve);\n }),\n })),\n {\n concurrent: concurrency,\n exitOnError: false,\n renderer: consola.level >= LogLevels.debug ? \"verbose\" : \"default\",\n },\n );\n\n // \uBCD1\uB82C\uB85C \uBAA8\uB4E0 worker \uC2E4\uD589\n const workerPromises = workers.map((worker) => runNextTask(worker));\n\n // listr\uC640 worker \uB3D9\uC2DC \uC2E4\uD589\n await Promise.all([listr.run(), ...workerPromises]);\n } finally {\n // \uBBF8\uD574\uACB0 resolver \uC815\uB9AC (\uD0C0\uC784\uC544\uC6C3/\uBE44\uC815\uC0C1 \uC885\uB8CC \uB300\uBE44)\n for (const resolver of taskResolvers.values()) {\n resolver();\n }\n // Worker \uC885\uB8CC (\uC131\uACF5/\uC2E4\uD328 \uBAA8\uB450)\n await Promise.all(workers.map((w) => w.terminate()));\n }\n\n // \uACB0\uACFC \uCD9C\uB825\n const allDiagnostics: ts.Diagnostic[] = [];\n let totalErrorCount = 0;\n let totalWarningCount = 0;\n const fileCache = new Map<string, string>(); // \uD30C\uC77C \uB0B4\uC6A9 \uCE90\uC2DC (\uB3D9\uC77C \uD30C\uC77C \uC911\uBCF5 \uC77D\uAE30 \uBC29\uC9C0)\n for (const { result } of allResults) {\n totalErrorCount += result.errorCount;\n totalWarningCount += result.warningCount;\n for (const serialized of result.diagnostics) {\n allDiagnostics.push(deserializeDiagnostic(serialized, fileCache));\n }\n }\n\n if (totalErrorCount > 0) {\n logger.error(\"\uD0C0\uC785\uCCB4\uD06C \uC5D0\uB7EC \uBC1C\uC0DD\", {\n errorCount: totalErrorCount,\n warningCount: totalWarningCount,\n });\n } else if (totalWarningCount > 0) {\n logger.info(\"\uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC (\uACBD\uACE0 \uC788\uC74C)\", {\n errorCount: totalErrorCount,\n warningCount: totalWarningCount,\n });\n } else {\n logger.info(\"\uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC\", { errorCount: totalErrorCount, warningCount: totalWarningCount });\n }\n\n if (allDiagnostics.length > 0) {\n const uniqueDiagnostics = ts.sortAndDeduplicateDiagnostics(allDiagnostics);\n const message = ts.formatDiagnosticsWithColorAndContext(uniqueDiagnostics, formatHost);\n process.stdout.write(message);\n }\n\n if (totalErrorCount > 0) {\n process.exitCode = 1;\n }\n}\n\n//#endregion\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ import { WatchOrchestrator } from "../orchestrators/WatchOrchestrator";
2
+ async function runWatch(options) {
3
+ const orchestratorOptions = {
4
+ targets: options.targets,
5
+ options: options.options
6
+ };
7
+ const orchestrator = new WatchOrchestrator(orchestratorOptions);
8
+ try {
9
+ await orchestrator.initialize();
10
+ await orchestrator.start();
11
+ await orchestrator.awaitTermination();
12
+ } finally {
13
+ await orchestrator.shutdown();
14
+ }
15
+ }
16
+ export {
17
+ runWatch
18
+ };
19
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/watch.ts"],
4
+ "sourcesContent": ["// packages/cli/src/commands/watch.ts\nimport { WatchOrchestrator, type WatchOrchestratorOptions } from \"../orchestrators/WatchOrchestrator\";\n\n/**\n * Watch \uBA85\uB839 \uC635\uC158 (\uD558\uC704 \uD638\uD658\uC131)\n */\nexport interface WatchOptions {\n targets: string[];\n options: string[];\n}\n\n/**\n * Library \uD328\uD0A4\uC9C0\uB97C watch \uBAA8\uB4DC\uB85C \uBE4C\uB4DC\uD55C\uB2E4.\n *\n * - `sd.config.ts`\uB97C \uB85C\uB4DC\uD558\uC5EC \uD328\uD0A4\uC9C0\uBCC4 \uBE4C\uB4DC \uD0C0\uAC9F \uC815\uBCF4 \uD655\uC778 (\uD544\uC218)\n * - `node`/`browser`/`neutral` \uD0C0\uAC9F: esbuild watch \uBAA8\uB4DC\uB85C \uBE4C\uB4DC + .d.ts \uC0DD\uC131\n * - \uD30C\uC77C \uBCC0\uACBD \uC2DC \uC790\uB3D9 \uB9AC\uBE4C\uB4DC\n * - SIGINT/SIGTERM \uC2DC\uADF8\uB110\uB85C \uC885\uB8CC\n *\n * @param options - watch \uC2E4\uD589 \uC635\uC158\n * @returns \uC885\uB8CC \uC2DC\uADF8\uB110 \uC218\uC2E0 \uC2DC resolve\n */\nexport async function runWatch(options: WatchOptions): Promise<void> {\n const orchestratorOptions: WatchOrchestratorOptions = {\n targets: options.targets,\n options: options.options,\n };\n\n const orchestrator = new WatchOrchestrator(orchestratorOptions);\n\n try {\n await orchestrator.initialize();\n await orchestrator.start();\n await orchestrator.awaitTermination();\n } finally {\n await orchestrator.shutdown();\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,yBAAwD;AAqBjE,eAAsB,SAAS,SAAsC;AACnE,QAAM,sBAAgD;AAAA,IACpD,SAAS,QAAQ;AAAA,IACjB,SAAS,QAAQ;AAAA,EACnB;AAEA,QAAM,eAAe,IAAI,kBAAkB,mBAAmB;AAE9D,MAAI;AACF,UAAM,aAAa,WAAW;AAC9B,UAAM,aAAa,MAAM;AACzB,UAAM,aAAa,iBAAiB;AAAA,EACtC,UAAE;AACA,UAAM,aAAa,SAAS;AAAA,EAC9B;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,74 @@
1
+ import { DateTime } from "./types/date-time";
2
+ import { DateOnly } from "./types/date-only";
3
+ import { Time } from "./types/time";
4
+ import { Uuid } from "./types/uuid";
5
+ /**
6
+ * Buffer 대신 사용하는 바이너리 타입
7
+ */
8
+ export type Bytes = Uint8Array;
9
+ /**
10
+ * Primitive 타입 매핑
11
+ * orm-common과 공유
12
+ */
13
+ export type PrimitiveTypeMap = {
14
+ string: string;
15
+ number: number;
16
+ boolean: boolean;
17
+ DateTime: DateTime;
18
+ DateOnly: DateOnly;
19
+ Time: Time;
20
+ Uuid: Uuid;
21
+ Bytes: Bytes;
22
+ };
23
+ /**
24
+ * Primitive 타입 문자열 키
25
+ */
26
+ export type PrimitiveTypeStr = keyof PrimitiveTypeMap;
27
+ /**
28
+ * Primitive 타입 유니온
29
+ */
30
+ export type PrimitiveType = PrimitiveTypeMap[PrimitiveTypeStr] | undefined;
31
+ /**
32
+ * 깊은 Partial 타입
33
+ *
34
+ * 객체의 모든 속성을 재귀적으로 선택적(optional)으로 만듭니다.
35
+ * Primitive 타입(string, number, boolean 등)은 그대로 유지하고,
36
+ * 객체/배열 타입만 재귀적으로 Partial을 적용합니다.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * interface User {
41
+ * name: string;
42
+ * profile: {
43
+ * age: number;
44
+ * address: { city: string };
45
+ * };
46
+ * }
47
+ *
48
+ * // 모든 깊이의 속성이 선택적이 됨
49
+ * const partial: DeepPartial<User> = {
50
+ * profile: { address: {} }
51
+ * };
52
+ * ```
53
+ */
54
+ export type DeepPartial<T> = Partial<{
55
+ [K in keyof T]: T[K] extends PrimitiveType ? T[K] : DeepPartial<T[K]>;
56
+ }>;
57
+ /**
58
+ * 생성자 타입
59
+ *
60
+ * 클래스 생성자를 타입으로 표현할 때 사용합니다.
61
+ * 주로 의존성 주입, 팩토리 패턴, instanceof 체크 등에서 활용됩니다.
62
+ *
63
+ * @example
64
+ * function create<T>(ctor: Type<T>): T {
65
+ * return new ctor();
66
+ * }
67
+ *
68
+ * class MyClass { name = "test"; }
69
+ * const instance = create(MyClass); // MyClass 인스턴스
70
+ */
71
+ export interface Type<T> extends Function {
72
+ new (...args: unknown[]): T;
73
+ }
74
+ //# sourceMappingURL=common.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../core-common/src/common.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAM/B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;AAM3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC,CAAE,SAAQ,QAAQ;IACvC,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;CAC7B"}
@@ -0,0 +1,6 @@
1
+ export declare const env: {
2
+ DEV: boolean;
3
+ VER?: string;
4
+ [key: string]: unknown;
5
+ };
6
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../core-common/src/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG,EAAE;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAKxB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { SdError } from "./sd-error";
2
+ /**
3
+ * 인수 오류
4
+ *
5
+ * 잘못된 인수를 받았을 때 발생시키는 에러이다.
6
+ * 인수 객체를 YAML 형식으로 메시지에 포함하여 디버깅을 용이하게 한다.
7
+ *
8
+ * @example
9
+ * // 인수 객체만 전달
10
+ * throw new ArgumentError({ userId: 123, name: null });
11
+ * // 결과 메시지: "인수가 잘못되었습니다.\n\nuserId: 123\nname: null"
12
+ *
13
+ * @example
14
+ * // 커스텀 메시지와 인수 객체 전달
15
+ * throw new ArgumentError("유효하지 않은 사용자", { userId: 123 });
16
+ * // 결과 메시지: "유효하지 않은 사용자\n\nuserId: 123"
17
+ */
18
+ export declare class ArgumentError extends SdError {
19
+ /** 기본 메시지("인수가 잘못되었습니다.")와 함께 인수 객체를 YAML 형식으로 출력 */
20
+ constructor(argObj: Record<string, unknown>);
21
+ /** 커스텀 메시지와 함께 인수 객체를 YAML 형식으로 출력 */
22
+ constructor(message: string, argObj: Record<string, unknown>);
23
+ constructor(arg1: Record<string, unknown> | string, arg2?: Record<string, unknown>);
24
+ }
25
+ //# sourceMappingURL=argument-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argument-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/argument-error.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,SAAQ,OAAO;IACxC,qDAAqD;gBACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3C,sCAAsC;gBAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAChD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYnF"}
@@ -0,0 +1,29 @@
1
+ import { SdError } from "./sd-error";
2
+ /**
3
+ * 미구현 오류
4
+ *
5
+ * 아직 구현되지 않은 기능을 호출했을 때 발생시키는 에러이다.
6
+ * 추상 메서드 스텁, 향후 구현 예정인 분기 등에 사용한다.
7
+ *
8
+ * @example
9
+ * // 추상 메서드 구현 전
10
+ * class BaseService {
11
+ * process(): void {
12
+ * throw new NotImplementedError("서브클래스에서 구현 필요");
13
+ * }
14
+ * }
15
+ *
16
+ * @example
17
+ * // 향후 구현 예정 분기
18
+ * switch (type) {
19
+ * case "A": return handleA();
20
+ * case "B": throw new NotImplementedError(`타입 ${type} 처리`);
21
+ * }
22
+ */
23
+ export declare class NotImplementedError extends SdError {
24
+ /**
25
+ * @param message 추가 설명 메시지
26
+ */
27
+ constructor(message?: string);
28
+ }
29
+ //# sourceMappingURL=not-implemented-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-implemented-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/not-implemented-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC9C;;OAEG;gBACS,OAAO,CAAC,EAAE,MAAM;CAI7B"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 오류의 Tree 구조 구성이 가능한 오류 클래스
3
+ * ES2024 cause 속성 활용
4
+ *
5
+ * @example
6
+ * // 원인 에러를 감싸서 생성
7
+ * try {
8
+ * await fetch(url);
9
+ * } catch (err) {
10
+ * throw new SdError(err, "API 호출 실패", "사용자 로드 실패");
11
+ * }
12
+ * // 결과 메시지: "사용자 로드 실패 => API 호출 실패 => 원본 에러 메시지"
13
+ *
14
+ * @example
15
+ * // 메시지만으로 생성
16
+ * throw new SdError("잘못된 상태", "처리 불가");
17
+ * // 결과 메시지: "처리 불가 => 잘못된 상태"
18
+ */
19
+ export declare class SdError extends Error {
20
+ cause?: Error;
21
+ /** 원인 에러를 감싸서 생성. 메시지는 역순으로 연결됨 (상위 메시지 => 하위 메시지 => 원인 메시지) */
22
+ constructor(cause: Error, ...messages: string[]);
23
+ /** 메시지만으로 생성. 메시지는 역순으로 연결됨 (상위 메시지 => 하위 메시지) */
24
+ constructor(...messages: string[]);
25
+ constructor(arg1?: unknown, ...messages: string[]);
26
+ }
27
+ //# sourceMappingURL=sd-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/sd-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,OAAQ,SAAQ,KAAK;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IAEvB,gEAAgE;gBACpD,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;IAC/C,kDAAkD;gBACtC,GAAG,QAAQ,EAAE,MAAM,EAAE;gBACrB,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;CA2BlD"}
@@ -0,0 +1,31 @@
1
+ import { SdError } from "./sd-error";
2
+ /**
3
+ * 타임아웃 오류
4
+ *
5
+ * 대기 시간이 초과되었을 때 발생하는 에러이다.
6
+ * Wait.until() 등의 비동기 대기 함수에서 최대 시도 횟수를 초과하면 자동으로 발생한다.
7
+ *
8
+ * @example
9
+ * // Wait.until에서 자동 발생
10
+ * try {
11
+ * await Wait.until(() => isReady, 100, 50); // 100ms 간격, 최대 50회
12
+ * } catch (err) {
13
+ * if (err instanceof TimeoutError) {
14
+ * console.log("시간 초과");
15
+ * }
16
+ * }
17
+ *
18
+ * @example
19
+ * // 직접 발생
20
+ * if (elapsed > maxTime) {
21
+ * throw new TimeoutError(undefined, "API 응답 대기 초과");
22
+ * }
23
+ */
24
+ export declare class TimeoutError extends SdError {
25
+ /**
26
+ * @param count 시도 횟수
27
+ * @param message 추가 메시지
28
+ */
29
+ constructor(count?: number, message?: string);
30
+ }
31
+ //# sourceMappingURL=timeout-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/timeout-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAa,SAAQ,OAAO;IACvC;;;OAGG;gBACS,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAM7C"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Array 확장 메서드
3
+ *
4
+ * @remarks 각 메서드의 TSDoc은 타입 정의 파일(arr-ext.types.ts) 참조
5
+ */
6
+ import "./map-ext";
7
+ import type { ReadonlyArrayExt, MutableArrayExt } from "./arr-ext.types";
8
+ declare global {
9
+ interface ReadonlyArray<T> extends ReadonlyArrayExt<T> {
10
+ }
11
+ interface Array<T> extends ReadonlyArrayExt<T>, MutableArrayExt<T> {
12
+ }
13
+ }
14
+ export type { ArrayDiffsResult, ArrayDiffs2Result, TreeArray, ComparableType } from "./arr-ext.types";
15
+ //# sourceMappingURL=arr-ext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arr-ext.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/arr-ext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,WAAW,CAAC;AAUnB,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AA2uBzB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;KAAG;IACzD,UAAU,KAAK,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;KAAG;CACtE;AAID,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Array 확장 헬퍼 함수
3
+ */
4
+ import type { ComparableType } from "./arr-ext.types";
5
+ /**
6
+ * DateTime, DateOnly, Time을 비교 가능한 primitive 값으로 변환
7
+ */
8
+ export declare function toComparable(value: ComparableType): string | number | boolean | undefined;
9
+ /**
10
+ * 정렬을 위한 비교 함수
11
+ *
12
+ * @param pp 비교 대상 1
13
+ * @param pn 비교 대상 2
14
+ * @param desc true: 내림차순, false: 오름차순
15
+ * @returns 음수: pp가 앞, 0: 같음, 양수: pn이 앞
16
+ * @note null/undefined 값은 오름차순 시 앞으로, 내림차순 시 뒤로 정렬됨
17
+ */
18
+ export declare function compareForOrder(pp: ComparableType, pn: ComparableType, desc: boolean): number;
19
+ //# sourceMappingURL=arr-ext.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arr-ext.helpers.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/arr-ext.helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAKzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAuB7F"}