@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,76 @@
1
+ /**
2
+ * Server 빌드 정보 (일회성 빌드용)
3
+ */
4
+ export interface ServerBuildInfo {
5
+ name: string;
6
+ cwd: string;
7
+ pkgDir: string;
8
+ /** 빌드 시 치환할 환경변수 */
9
+ env?: Record<string, string>;
10
+ }
11
+ /**
12
+ * Server 빌드 결과
13
+ */
14
+ export interface ServerBuildResult {
15
+ success: boolean;
16
+ mainJsPath: string;
17
+ errors?: string[];
18
+ }
19
+ /**
20
+ * Server Watch 정보
21
+ */
22
+ export interface ServerWatchInfo {
23
+ name: string;
24
+ cwd: string;
25
+ pkgDir: string;
26
+ /** 빌드 시 치환할 환경변수 */
27
+ env?: Record<string, string>;
28
+ }
29
+ /**
30
+ * 빌드 이벤트
31
+ */
32
+ export interface ServerBuildEvent {
33
+ success: boolean;
34
+ mainJsPath: string;
35
+ errors?: string[];
36
+ }
37
+ /**
38
+ * 에러 이벤트
39
+ */
40
+ export interface ServerErrorEvent {
41
+ message: string;
42
+ }
43
+ /**
44
+ * Worker 이벤트 타입
45
+ */
46
+ export interface ServerWorkerEvents extends Record<string, unknown> {
47
+ buildStart: Record<string, never>;
48
+ build: ServerBuildEvent;
49
+ error: ServerErrorEvent;
50
+ }
51
+ /**
52
+ * 일회성 빌드
53
+ */
54
+ declare function build(info: ServerBuildInfo): Promise<ServerBuildResult>;
55
+ /**
56
+ * watch 시작
57
+ * @remarks 이 함수는 Worker당 한 번만 호출되어야 합니다.
58
+ * @throws 이미 watch가 시작된 경우
59
+ */
60
+ declare function startWatch(info: ServerWatchInfo): Promise<void>;
61
+ /**
62
+ * watch 중지
63
+ * @remarks esbuild context를 정리합니다.
64
+ */
65
+ declare function stopWatch(): Promise<void>;
66
+ declare const sender: {
67
+ send<K extends string>(event: K, data?: ServerWorkerEvents[K] | undefined): void;
68
+ __methods: {
69
+ build: typeof build;
70
+ startWatch: typeof startWatch;
71
+ stopWatch: typeof stopWatch;
72
+ };
73
+ __events: ServerWorkerEvents;
74
+ };
75
+ export default sender;
76
+ //# sourceMappingURL=server.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.worker.d.ts","sourceRoot":"","sources":["../../../../src/workers/server.worker.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAoDD;;GAEG;AACH,iBAAe,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkCtE;AAKD;;;;GAIG;AACH,iBAAe,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE9D;AAED;;;GAGG;AACH,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;AAED,QAAA,MAAM,MAAM;;;eACD,OAAO,KAAK;oBAAc,OAAO,UAAU;mBAAa,OAAO,SAAS;;;CAMjF,CAAC;AAEH,eAAe,MAAM,CAAC"}
package/dist/sd-cli.js CHANGED
@@ -1,84 +1,247 @@
1
1
  #!/usr/bin/env node
2
- import { exec, spawn } from "child_process";
3
- import os from "os";
2
+ import "@simplysm/core-common";
3
+ import yargs, {} from "yargs";
4
+ import { hideBin } from "yargs/helpers";
5
+ import { runLint } from "./commands/lint";
6
+ import { runTypecheck } from "./commands/typecheck";
7
+ import { runWatch } from "./commands/watch";
8
+ import { runDev } from "./commands/dev";
9
+ import { runBuild } from "./commands/build";
10
+ import { runPublish } from "./commands/publish";
11
+ import { runDevice } from "./commands/device";
4
12
  import path from "path";
5
13
  import { fileURLToPath } from "url";
6
- // CLI 경로 확인
7
- const cliPath = import.meta.resolve("./sd-cli-entry");
8
- if (path.extname(cliPath) === ".ts") {
9
- // .ts 바로실행 (개발)
10
- // 현재 프로세스에 affinity 적용
11
- configureProcessorAffinityAndPriority(process.pid);
12
- await import(cliPath);
13
- }
14
- else {
15
- // .js 번들 실행 (배포본)
16
- // 로컬 업데이트
17
- // if (process.argv.slice(2).includes("watch") && !process.argv.slice(2).includes("--noEmit")) {
18
- if (!process.argv.slice(2).includes("local-update")) {
19
- await spawnWaitAsync(`node`, [
20
- "--import=specifier-resolution-node/register",
21
- fileURLToPath(cliPath),
22
- "local-update",
23
- ]);
14
+ import { EventEmitter } from "node:events";
15
+ import { consola, LogLevels } from "consola";
16
+ Error.stackTraceLimit = Infinity;
17
+ EventEmitter.defaultMaxListeners = 100;
18
+ function createCliParser(argv) {
19
+ return yargs(argv).help("help", "\uB3C4\uC6C0\uB9D0").alias("help", "h").option("debug", {
20
+ type: "boolean",
21
+ describe: "debug \uB85C\uADF8 \uCD9C\uB825",
22
+ default: false,
23
+ global: true
24
+ }).middleware((args) => {
25
+ if (args.debug) consola.level = LogLevels.debug;
26
+ }).command(
27
+ "lint [targets..]",
28
+ "ESLint\uB97C \uC2E4\uD589\uD55C\uB2E4.",
29
+ (cmd) => cmd.version(false).hide("help").positional("targets", {
30
+ type: "string",
31
+ array: true,
32
+ describe: "\uB9B0\uD2B8\uD560 \uACBD\uB85C (\uC608: packages/core-common, tests/orm)",
33
+ default: []
34
+ }).options({
35
+ fix: {
36
+ type: "boolean",
37
+ describe: "\uC790\uB3D9 \uC218\uC815",
38
+ default: false
39
+ },
40
+ timing: {
41
+ type: "boolean",
42
+ describe: "\uADDC\uCE59\uBCC4 \uC2E4\uD589 \uC2DC\uAC04 \uCD9C\uB825",
43
+ default: false
44
+ }
45
+ }),
46
+ async (args) => {
47
+ await runLint({
48
+ targets: args.targets,
49
+ fix: args.fix,
50
+ timing: args.timing
51
+ });
24
52
  }
25
- // }
26
- // 프로세스 실행
27
- const child = spawn("node", [
28
- "--import=specifier-resolution-node/register",
29
- "--max-old-space-size=8192",
30
- // "--initial-old-space-size=2048",
31
- "--max-semi-space-size=16", //128
32
- // "--stack-size=16384",
33
- fileURLToPath(cliPath),
34
- ...process.argv.slice(2),
35
- ], { stdio: "inherit" });
36
- // 실행된 프로세스에 Affinity 적용
37
- child.on("spawn", () => {
38
- if (child.pid == null)
39
- return;
40
- configureProcessorAffinityAndPriority(child.pid);
41
- });
42
- }
43
- function configureProcessorAffinityAndPriority(pid) {
44
- const cpuCount = os.cpus().length;
45
- const affinityMask = calculateAffinityMask(cpuCount);
46
- const commands = [
47
- `$p = Get-Process -Id ${pid}`,
48
- `$p.ProcessorAffinity = ${affinityMask}`,
49
- `$p.PriorityClass = 'BelowNormal'`,
50
- ].join("; ");
51
- const command = `powershell -Command "${commands}"`;
52
- exec(command, (err) => {
53
- if (err) {
54
- // eslint-disable-next-line no-console
55
- console.error("Affinity 또는 우선순위 설정 실패:", err.message);
56
- }
57
- });
58
- }
59
- // ProcessorAffinity 마스크 계산 (앞 코어 빼기)
60
- function calculateAffinityMask(cpuCount) {
61
- const exclude = cpuCount <= 1 ? 0 : Math.ceil(cpuCount / 4); // 예: 4개당 1개 제외
62
- const usableStart = exclude;
63
- const usableEnd = cpuCount;
64
- if (usableEnd - usableStart <= 0) {
65
- throw new Error(`CPU 사용 가능 개수가 0 이하입니다 (총: ${cpuCount}, 제외: ${exclude})`);
53
+ ).command(
54
+ "typecheck [targets..]",
55
+ "TypeScript \uD0C0\uC785\uCCB4\uD06C\uB97C \uC2E4\uD589\uD55C\uB2E4.",
56
+ (cmd) => cmd.version(false).hide("help").positional("targets", {
57
+ type: "string",
58
+ array: true,
59
+ describe: "\uD0C0\uC785\uCCB4\uD06C\uD560 \uACBD\uB85C (\uC608: packages/core-common, tests/orm)",
60
+ default: []
61
+ }).options({
62
+ options: {
63
+ type: "string",
64
+ array: true,
65
+ alias: "o",
66
+ description: "sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)",
67
+ default: []
68
+ }
69
+ }),
70
+ async (args) => {
71
+ await runTypecheck({
72
+ targets: args.targets,
73
+ options: args.options
74
+ });
75
+ }
76
+ ).command(
77
+ "watch [targets..]",
78
+ "\uD328\uD0A4\uC9C0\uB97C watch \uBAA8\uB4DC\uB85C \uBE4C\uB4DC\uD55C\uB2E4.",
79
+ (cmd) => cmd.version(false).hide("help").positional("targets", {
80
+ type: "string",
81
+ array: true,
82
+ describe: "watch\uD560 \uD328\uD0A4\uC9C0 (\uC608: solid, solid-demo)",
83
+ default: []
84
+ }).options({
85
+ options: {
86
+ type: "string",
87
+ array: true,
88
+ alias: "o",
89
+ description: "sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)",
90
+ default: []
91
+ }
92
+ }),
93
+ async (args) => {
94
+ await runWatch({
95
+ targets: args.targets,
96
+ options: args.options
97
+ });
98
+ }
99
+ ).command(
100
+ "dev [targets..]",
101
+ "Client\uC640 Server \uD328\uD0A4\uC9C0\uB97C \uAC1C\uBC1C \uBAA8\uB4DC\uB85C \uC2E4\uD589\uD55C\uB2E4.",
102
+ (cmd) => cmd.version(false).hide("help").positional("targets", {
103
+ type: "string",
104
+ array: true,
105
+ describe: "\uC2E4\uD589\uD560 \uD328\uD0A4\uC9C0 (\uC608: solid-demo)",
106
+ default: []
107
+ }).options({
108
+ options: {
109
+ type: "string",
110
+ array: true,
111
+ alias: "o",
112
+ description: "sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)",
113
+ default: []
114
+ }
115
+ }),
116
+ async (args) => {
117
+ await runDev({
118
+ targets: args.targets,
119
+ options: args.options
120
+ });
121
+ }
122
+ ).command(
123
+ "build [targets..]",
124
+ "\uD504\uB85C\uB355\uC158 \uBE4C\uB4DC\uB97C \uC2E4\uD589\uD55C\uB2E4.",
125
+ (cmd) => cmd.version(false).hide("help").positional("targets", {
126
+ type: "string",
127
+ array: true,
128
+ describe: "\uBE4C\uB4DC\uD560 \uD328\uD0A4\uC9C0 (\uC608: solid, core-common)",
129
+ default: []
130
+ }).options({
131
+ options: {
132
+ type: "string",
133
+ array: true,
134
+ alias: "o",
135
+ description: "sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)",
136
+ default: []
137
+ }
138
+ }),
139
+ async (args) => {
140
+ await runBuild({
141
+ targets: args.targets,
142
+ options: args.options
143
+ });
144
+ }
145
+ ).command(
146
+ "device",
147
+ "Android \uB514\uBC14\uC774\uC2A4\uC5D0\uC11C \uC571\uC744 \uC2E4\uD589\uD55C\uB2E4.",
148
+ (cmd) => cmd.version(false).hide("help").options({
149
+ package: {
150
+ type: "string",
151
+ alias: "p",
152
+ describe: "\uD328\uD0A4\uC9C0 \uC774\uB984",
153
+ demandOption: true
154
+ },
155
+ url: {
156
+ type: "string",
157
+ alias: "u",
158
+ describe: "\uAC1C\uBC1C \uC11C\uBC84 URL (\uBBF8\uC9C0\uC815 \uC2DC sd.config.ts\uC758 server \uC124\uC815 \uC0AC\uC6A9)"
159
+ },
160
+ options: {
161
+ type: "string",
162
+ array: true,
163
+ alias: "o",
164
+ description: "sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)",
165
+ default: []
166
+ }
167
+ }),
168
+ async (args) => {
169
+ await runDevice({
170
+ package: args.package,
171
+ url: args.url,
172
+ options: args.options
173
+ });
174
+ }
175
+ ).command(
176
+ "init",
177
+ "\uC0C8 \uD504\uB85C\uC81D\uD2B8\uB97C \uCD08\uAE30\uD654\uD55C\uB2E4.",
178
+ (cmd) => cmd.version(false).hide("help"),
179
+ async () => {
180
+ const { runInit } = await import("./commands/init.js");
181
+ await runInit({});
66
182
  }
67
- let mask = 0n;
68
- for (let i = usableStart; i < usableEnd; i++) {
69
- mask |= 1n << BigInt(i);
183
+ ).command(
184
+ "add",
185
+ "\uD504\uB85C\uC81D\uD2B8\uC5D0 \uD328\uD0A4\uC9C0\uB97C \uCD94\uAC00\uD55C\uB2E4.",
186
+ (cmd) => cmd.version(false).hide("help").command(
187
+ "client",
188
+ "\uD074\uB77C\uC774\uC5B8\uD2B8 \uD328\uD0A4\uC9C0\uB97C \uCD94\uAC00\uD55C\uB2E4.",
189
+ (subCmd) => subCmd.version(false).hide("help"),
190
+ async () => {
191
+ const { runAddClient } = await import("./commands/add-client.js");
192
+ await runAddClient({});
193
+ }
194
+ ).command(
195
+ "server",
196
+ "\uC11C\uBC84 \uD328\uD0A4\uC9C0\uB97C \uCD94\uAC00\uD55C\uB2E4.",
197
+ (subCmd) => subCmd.version(false).hide("help"),
198
+ async () => {
199
+ const { runAddServer } = await import("./commands/add-server.js");
200
+ await runAddServer({});
201
+ }
202
+ ).demandCommand(1, "\uD328\uD0A4\uC9C0 \uD0C0\uC785\uC744 \uC9C0\uC815\uD574\uC8FC\uC138\uC694. (client, server)")
203
+ ).command(
204
+ "publish [targets..]",
205
+ "\uD328\uD0A4\uC9C0\uB97C \uBC30\uD3EC\uD55C\uB2E4.",
206
+ (cmd) => cmd.version(false).hide("help").positional("targets", {
207
+ type: "string",
208
+ array: true,
209
+ describe: "\uBC30\uD3EC\uD560 \uD328\uD0A4\uC9C0 (\uC608: solid, core-common)",
210
+ default: []
211
+ }).options({
212
+ "build": {
213
+ type: "boolean",
214
+ describe: "\uBE4C\uB4DC \uC2E4\uD589 (--no-build\uB85C \uC2A4\uD0B5)",
215
+ default: true
216
+ },
217
+ "dry-run": {
218
+ type: "boolean",
219
+ describe: "\uC2E4\uC81C \uBC30\uD3EC \uC5C6\uC774 \uC2DC\uBBAC\uB808\uC774\uC158",
220
+ default: false
221
+ },
222
+ "options": {
223
+ type: "string",
224
+ array: true,
225
+ alias: "o",
226
+ description: "sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)",
227
+ default: []
228
+ }
229
+ }),
230
+ async (args) => {
231
+ await runPublish({
232
+ targets: args.targets,
233
+ noBuild: !args.build,
234
+ dryRun: args.dryRun,
235
+ options: args.options
236
+ });
70
237
  }
71
- return "0x" + mask.toString(16).toUpperCase();
238
+ ).demandCommand(1, "\uBA85\uB839\uC5B4\uB97C \uC9C0\uC815\uD574\uC8FC\uC138\uC694.").strict();
72
239
  }
73
- async function spawnWaitAsync(command, args) {
74
- await new Promise((resolve) => {
75
- const child = spawn(command, args, {
76
- cwd: process.cwd(),
77
- env: { ...process.env },
78
- stdio: "inherit",
79
- });
80
- child.on("close", () => {
81
- resolve();
82
- });
83
- });
240
+ const cliEntryPath = process.argv.at(1);
241
+ if (cliEntryPath != null && fileURLToPath(import.meta.url) === path.resolve(cliEntryPath)) {
242
+ await createCliParser(hideBin(process.argv)).parse();
84
243
  }
244
+ export {
245
+ createCliParser
246
+ };
247
+ //# sourceMappingURL=sd-cli.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/sd-cli.ts"],
4
+ "sourcesContent": ["#!/usr/bin/env node\n\n// side-effect: Map/Array \uD504\uB85C\uD1A0\uD0C0\uC785 \uD655\uC7A5 (getOrCreate \uB4F1)\nimport \"@simplysm/core-common\";\nimport yargs, { type Argv } from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { runLint } from \"./commands/lint\";\nimport { runTypecheck } from \"./commands/typecheck\";\nimport { runWatch } from \"./commands/watch\";\nimport { runDev } from \"./commands/dev\";\nimport { runBuild } from \"./commands/build\";\nimport { runPublish } from \"./commands/publish\";\nimport { runDevice } from \"./commands/device\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { EventEmitter } from \"node:events\";\nimport { consola, LogLevels } from \"consola\";\n\nError.stackTraceLimit = Infinity;\nEventEmitter.defaultMaxListeners = 100;\n\n/**\n * CLI \uD30C\uC11C\uB97C \uC0DD\uC131\uD55C\uB2E4.\n * @internal \uD14C\uC2A4\uD2B8\uC6A9\uC73C\uB85C export\n */\nexport function createCliParser(argv: string[]): Argv {\n return yargs(argv)\n .help(\"help\", \"\uB3C4\uC6C0\uB9D0\")\n .alias(\"help\", \"h\")\n .option(\"debug\", {\n type: \"boolean\",\n describe: \"debug \uB85C\uADF8 \uCD9C\uB825\",\n default: false,\n global: true,\n })\n .middleware((args) => {\n if (args.debug) consola.level = LogLevels.debug;\n })\n .command(\n \"lint [targets..]\",\n \"ESLint\uB97C \uC2E4\uD589\uD55C\uB2E4.\",\n (cmd) =>\n cmd\n .version(false)\n .hide(\"help\")\n .positional(\"targets\", {\n type: \"string\",\n array: true,\n describe: \"\uB9B0\uD2B8\uD560 \uACBD\uB85C (\uC608: packages/core-common, tests/orm)\",\n default: [],\n })\n .options({\n fix: {\n type: \"boolean\",\n describe: \"\uC790\uB3D9 \uC218\uC815\",\n default: false,\n },\n timing: {\n type: \"boolean\",\n describe: \"\uADDC\uCE59\uBCC4 \uC2E4\uD589 \uC2DC\uAC04 \uCD9C\uB825\",\n default: false,\n },\n }),\n async (args) => {\n await runLint({\n targets: args.targets,\n fix: args.fix,\n timing: args.timing,\n });\n },\n )\n .command(\n \"typecheck [targets..]\",\n \"TypeScript \uD0C0\uC785\uCCB4\uD06C\uB97C \uC2E4\uD589\uD55C\uB2E4.\",\n (cmd) =>\n cmd\n .version(false)\n .hide(\"help\")\n .positional(\"targets\", {\n type: \"string\",\n array: true,\n describe: \"\uD0C0\uC785\uCCB4\uD06C\uD560 \uACBD\uB85C (\uC608: packages/core-common, tests/orm)\",\n default: [],\n })\n .options({\n options: {\n type: \"string\",\n array: true,\n alias: \"o\",\n description: \"sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)\",\n default: [] as string[],\n },\n }),\n async (args) => {\n await runTypecheck({\n targets: args.targets,\n options: args.options,\n });\n },\n )\n .command(\n \"watch [targets..]\",\n \"\uD328\uD0A4\uC9C0\uB97C watch \uBAA8\uB4DC\uB85C \uBE4C\uB4DC\uD55C\uB2E4.\",\n (cmd) =>\n cmd\n .version(false)\n .hide(\"help\")\n .positional(\"targets\", {\n type: \"string\",\n array: true,\n describe: \"watch\uD560 \uD328\uD0A4\uC9C0 (\uC608: solid, solid-demo)\",\n default: [],\n })\n .options({\n options: {\n type: \"string\",\n array: true,\n alias: \"o\",\n description: \"sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)\",\n default: [] as string[],\n },\n }),\n async (args) => {\n await runWatch({\n targets: args.targets,\n options: args.options,\n });\n },\n )\n .command(\n \"dev [targets..]\",\n \"Client\uC640 Server \uD328\uD0A4\uC9C0\uB97C \uAC1C\uBC1C \uBAA8\uB4DC\uB85C \uC2E4\uD589\uD55C\uB2E4.\",\n (cmd) =>\n cmd\n .version(false)\n .hide(\"help\")\n .positional(\"targets\", {\n type: \"string\",\n array: true,\n describe: \"\uC2E4\uD589\uD560 \uD328\uD0A4\uC9C0 (\uC608: solid-demo)\",\n default: [],\n })\n .options({\n options: {\n type: \"string\",\n array: true,\n alias: \"o\",\n description: \"sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)\",\n default: [] as string[],\n },\n }),\n async (args) => {\n await runDev({\n targets: args.targets,\n options: args.options,\n });\n },\n )\n .command(\n \"build [targets..]\",\n \"\uD504\uB85C\uB355\uC158 \uBE4C\uB4DC\uB97C \uC2E4\uD589\uD55C\uB2E4.\",\n (cmd) =>\n cmd\n .version(false)\n .hide(\"help\")\n .positional(\"targets\", {\n type: \"string\",\n array: true,\n describe: \"\uBE4C\uB4DC\uD560 \uD328\uD0A4\uC9C0 (\uC608: solid, core-common)\",\n default: [],\n })\n .options({\n options: {\n type: \"string\",\n array: true,\n alias: \"o\",\n description: \"sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)\",\n default: [] as string[],\n },\n }),\n async (args) => {\n await runBuild({\n targets: args.targets,\n options: args.options,\n });\n },\n )\n .command(\n \"device\",\n \"Android \uB514\uBC14\uC774\uC2A4\uC5D0\uC11C \uC571\uC744 \uC2E4\uD589\uD55C\uB2E4.\",\n (cmd) =>\n cmd\n .version(false)\n .hide(\"help\")\n .options({\n package: {\n type: \"string\",\n alias: \"p\",\n describe: \"\uD328\uD0A4\uC9C0 \uC774\uB984\",\n demandOption: true,\n },\n url: {\n type: \"string\",\n alias: \"u\",\n describe: \"\uAC1C\uBC1C \uC11C\uBC84 URL (\uBBF8\uC9C0\uC815 \uC2DC sd.config.ts\uC758 server \uC124\uC815 \uC0AC\uC6A9)\",\n },\n options: {\n type: \"string\",\n array: true,\n alias: \"o\",\n description: \"sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)\",\n default: [] as string[],\n },\n }),\n async (args) => {\n await runDevice({\n package: args.package,\n url: args.url,\n options: args.options,\n });\n },\n )\n .command(\n \"init\",\n \"\uC0C8 \uD504\uB85C\uC81D\uD2B8\uB97C \uCD08\uAE30\uD654\uD55C\uB2E4.\",\n (cmd) => cmd.version(false).hide(\"help\"),\n async () => {\n const { runInit } = await import(\"./commands/init.js\");\n await runInit({});\n },\n )\n .command(\"add\", \"\uD504\uB85C\uC81D\uD2B8\uC5D0 \uD328\uD0A4\uC9C0\uB97C \uCD94\uAC00\uD55C\uB2E4.\", (cmd) =>\n cmd\n .version(false)\n .hide(\"help\")\n .command(\n \"client\",\n \"\uD074\uB77C\uC774\uC5B8\uD2B8 \uD328\uD0A4\uC9C0\uB97C \uCD94\uAC00\uD55C\uB2E4.\",\n (subCmd) => subCmd.version(false).hide(\"help\"),\n async () => {\n const { runAddClient } = await import(\"./commands/add-client.js\");\n await runAddClient({});\n },\n )\n .command(\n \"server\",\n \"\uC11C\uBC84 \uD328\uD0A4\uC9C0\uB97C \uCD94\uAC00\uD55C\uB2E4.\",\n (subCmd) => subCmd.version(false).hide(\"help\"),\n async () => {\n const { runAddServer } = await import(\"./commands/add-server.js\");\n await runAddServer({});\n },\n )\n .demandCommand(1, \"\uD328\uD0A4\uC9C0 \uD0C0\uC785\uC744 \uC9C0\uC815\uD574\uC8FC\uC138\uC694. (client, server)\"),\n )\n .command(\n \"publish [targets..]\",\n \"\uD328\uD0A4\uC9C0\uB97C \uBC30\uD3EC\uD55C\uB2E4.\",\n (cmd) =>\n cmd\n .version(false)\n .hide(\"help\")\n .positional(\"targets\", {\n type: \"string\",\n array: true,\n describe: \"\uBC30\uD3EC\uD560 \uD328\uD0A4\uC9C0 (\uC608: solid, core-common)\",\n default: [],\n })\n .options({\n \"build\": {\n type: \"boolean\",\n describe: \"\uBE4C\uB4DC \uC2E4\uD589 (--no-build\uB85C \uC2A4\uD0B5)\",\n default: true,\n },\n \"dry-run\": {\n type: \"boolean\",\n describe: \"\uC2E4\uC81C \uBC30\uD3EC \uC5C6\uC774 \uC2DC\uBBAC\uB808\uC774\uC158\",\n default: false,\n },\n \"options\": {\n type: \"string\",\n array: true,\n alias: \"o\",\n description: \"sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)\",\n default: [] as string[],\n },\n }),\n async (args) => {\n await runPublish({\n targets: args.targets,\n noBuild: !args.build,\n dryRun: args.dryRun,\n options: args.options,\n });\n },\n )\n .demandCommand(1, \"\uBA85\uB839\uC5B4\uB97C \uC9C0\uC815\uD574\uC8FC\uC138\uC694.\")\n .strict();\n}\n\n// CLI\uB85C \uC9C1\uC811 \uC2E4\uD589\uB420 \uB54C\uB9CC \uD30C\uC2F1 \uC218\uD589\n// ESM\uC5D0\uC11C \uBA54\uC778 \uBAA8\uB4C8 \uD310\uBCC4: import.meta.url\uACFC process.argv[1]\uC744 \uC815\uADDC\uD654\uD558\uC5EC \uBE44\uAD50\nconst cliEntryPath = process.argv.at(1);\nif (cliEntryPath != null && fileURLToPath(import.meta.url) === path.resolve(cliEntryPath)) {\n await createCliParser(hideBin(process.argv)).parse();\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=sd-config.types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,56 @@
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ import type { Storage, FileInfo } from "../types/storage";
3
+ import type { StorageConnConfig } from "../types/storage-conn-config";
4
+ /**
5
+ * FTP/FTPS 프로토콜을 사용하는 스토리지 클라이언트.
6
+ *
7
+ * @remarks
8
+ * 생성자의 `secure` 파라미터로 FTPS 사용 여부를 설정합니다.
9
+ * 직접 사용보다 {@link StorageFactory.connect}를 통한 사용을 권장합니다.
10
+ */
11
+ export declare class FtpStorageClient implements Storage {
12
+ private readonly _secure;
13
+ private _client;
14
+ constructor(_secure?: boolean);
15
+ /**
16
+ * FTP 서버에 연결합니다.
17
+ *
18
+ * @remarks
19
+ * - 연결 후 반드시 {@link close}로 연결을 종료해야 합니다.
20
+ * - 동일 인스턴스에서 여러 번 호출하지 마세요. (연결 누수 발생)
21
+ * - 자동 연결/종료 관리가 필요하면 {@link StorageFactory.connect}를 사용하세요. (권장)
22
+ */
23
+ connect(config: StorageConnConfig): Promise<void>;
24
+ private _requireClient;
25
+ /** 디렉토리를 생성합니다. 상위 디렉토리가 없으면 함께 생성합니다. */
26
+ mkdir(dirPath: string): Promise<void>;
27
+ rename(fromPath: string, toPath: string): Promise<void>;
28
+ readdir(dirPath: string): Promise<FileInfo[]>;
29
+ readFile(filePath: string): Promise<Bytes>;
30
+ /**
31
+ * 파일 또는 디렉토리 존재 여부를 확인합니다.
32
+ *
33
+ * @remarks
34
+ * 파일 확인 시 size() 명령으로 O(1) 성능을 제공합니다.
35
+ * 디렉토리 확인 시 상위 디렉토리 목록을 조회하므로, 항목 수가 많으면 성능이 저하될 수 있습니다.
36
+ *
37
+ * 슬래시가 없는 경로(예: `file.txt`)는 루트 디렉토리(`/`)에서 검색합니다.
38
+ *
39
+ * 상위 디렉토리가 존재하지 않는 경우에도 false를 반환합니다.
40
+ * 네트워크 오류, 권한 오류 등 모든 예외도 false를 반환합니다.
41
+ */
42
+ exists(filePath: string): Promise<boolean>;
43
+ remove(filePath: string): Promise<void>;
44
+ /** 로컬 파일 경로 또는 바이트 데이터를 원격 경로에 업로드합니다. */
45
+ put(localPathOrBuffer: string | Bytes, storageFilePath: string): Promise<void>;
46
+ uploadDir(fromPath: string, toPath: string): Promise<void>;
47
+ /**
48
+ * 연결을 종료합니다.
49
+ *
50
+ * @remarks
51
+ * 이미 종료된 상태에서 호출해도 에러가 발생하지 않습니다.
52
+ * 종료 후에는 동일 인스턴스에서 {@link connect}를 다시 호출하여 재연결할 수 있습니다.
53
+ */
54
+ close(): Promise<void>;
55
+ }
56
+ //# sourceMappingURL=ftp-storage-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ftp-storage-client.d.ts","sourceRoot":"","sources":["../../../../../storage/src/clients/ftp-storage-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAGlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAAyB;gBAEX,OAAO,GAAE,OAAe;IAErD;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvD,OAAO,CAAC,cAAc;IAOtB,0CAA0C;IACpC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAK7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAWhD;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB1C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,0CAA0C;IACpC,GAAG,CAAC,iBAAiB,EAAE,MAAM,GAAG,KAAK,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9E,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;;;;;OAMG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CASvB"}
@@ -0,0 +1,48 @@
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ import type { Storage, FileInfo } from "../types/storage";
3
+ import type { StorageConnConfig } from "../types/storage-conn-config";
4
+ /**
5
+ * SFTP 프로토콜을 사용하는 스토리지 클라이언트.
6
+ *
7
+ * @remarks
8
+ * 직접 사용보다 {@link StorageFactory.connect}를 통한 사용을 권장합니다.
9
+ */
10
+ export declare class SftpStorageClient implements Storage {
11
+ private _client;
12
+ /**
13
+ * SFTP 서버에 연결합니다.
14
+ *
15
+ * @remarks
16
+ * - 연결 후 반드시 {@link close}로 연결을 종료해야 합니다.
17
+ * - 동일 인스턴스에서 여러 번 호출하지 마세요. (연결 누수 발생)
18
+ * - 자동 연결/종료 관리가 필요하면 {@link StorageFactory.connect}를 사용하세요. (권장)
19
+ */
20
+ connect(config: StorageConnConfig): Promise<void>;
21
+ private _requireClient;
22
+ /** 디렉토리를 생성합니다. 상위 디렉토리가 없으면 함께 생성합니다. */
23
+ mkdir(dirPath: string): Promise<void>;
24
+ rename(fromPath: string, toPath: string): Promise<void>;
25
+ /**
26
+ * 파일 또는 디렉토리 존재 여부를 확인합니다.
27
+ *
28
+ * @remarks
29
+ * 상위 디렉토리가 존재하지 않는 경우에도 false를 반환합니다.
30
+ * 네트워크 오류, 권한 오류 등 모든 예외도 false를 반환합니다.
31
+ */
32
+ exists(filePath: string): Promise<boolean>;
33
+ readdir(dirPath: string): Promise<FileInfo[]>;
34
+ readFile(filePath: string): Promise<Bytes>;
35
+ remove(filePath: string): Promise<void>;
36
+ /** 로컬 파일 경로 또는 바이트 데이터를 원격 경로에 업로드합니다. */
37
+ put(localPathOrBuffer: string | Bytes, storageFilePath: string): Promise<void>;
38
+ uploadDir(fromPath: string, toPath: string): Promise<void>;
39
+ /**
40
+ * 연결을 종료합니다.
41
+ *
42
+ * @remarks
43
+ * 이미 종료된 상태에서 호출해도 에러가 발생하지 않습니다.
44
+ * 종료 후에는 동일 인스턴스에서 {@link connect}를 다시 호출하여 재연결할 수 있습니다.
45
+ */
46
+ close(): Promise<void>;
47
+ }
48
+ //# sourceMappingURL=sftp-storage-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftp-storage-client.d.ts","sourceRoot":"","sources":["../../../../../storage/src/clients/sftp-storage-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKtE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,OAAO,CAAC,OAAO,CAAyB;IAExC;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvD,OAAO,CAAC,cAAc;IAOtB,0CAA0C;IACpC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQ7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAc1C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,0CAA0C;IACpC,GAAG,CAAC,iBAAiB,EAAE,MAAM,GAAG,KAAK,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9E,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -0,0 +1,7 @@
1
+ export * from "./types/storage-conn-config";
2
+ export * from "./types/storage";
3
+ export * from "./types/storage-type";
4
+ export * from "./clients/ftp-storage-client";
5
+ export * from "./clients/sftp-storage-client";
6
+ export * from "./storage-factory";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../storage/src/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AAIrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAI9C,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { StorageConnConfig } from "./types/storage-conn-config";
2
+ import type { Storage } from "./types/storage";
3
+ import type { StorageType } from "./types/storage-type";
4
+ /**
5
+ * 스토리지 클라이언트 팩토리
6
+ *
7
+ * FTP, FTPS, SFTP 스토리지 연결을 생성하고 관리한다.
8
+ */
9
+ export declare class StorageFactory {
10
+ /**
11
+ * 스토리지에 연결하고 콜백을 실행한 후 자동으로 연결을 종료한다.
12
+ *
13
+ * @remarks
14
+ * 콜백 패턴으로 연결/종료가 자동 관리되므로, 직접 클라이언트를 사용하는 것보다 권장된다.
15
+ * 콜백에서 예외가 발생해도 연결은 자동으로 종료된다.
16
+ */
17
+ static connect<R>(type: StorageType, config: StorageConnConfig, fn: (storage: Storage) => R | Promise<R>): Promise<R>;
18
+ private static _createClient;
19
+ }
20
+ //# sourceMappingURL=storage-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-factory.d.ts","sourceRoot":"","sources":["../../../../storage/src/storage-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD;;;;GAIG;AACH,qBAAa,cAAc;IACzB;;;;;;OAMG;WACU,OAAO,CAAC,CAAC,EACpB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,iBAAiB,EACzB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,CAAC,CAAC;IAab,OAAO,CAAC,MAAM,CAAC,aAAa;CAU7B"}
@@ -0,0 +1,7 @@
1
+ export interface StorageConnConfig {
2
+ host: string;
3
+ port?: number;
4
+ user?: string;
5
+ pass?: string;
6
+ }
7
+ //# sourceMappingURL=storage-conn-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-conn-config.d.ts","sourceRoot":"","sources":["../../../../../storage/src/types/storage-conn-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export type StorageType = "ftp" | "ftps" | "sftp";
2
+ //# sourceMappingURL=storage-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-type.d.ts","sourceRoot":"","sources":["../../../../../storage/src/types/storage-type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC"}