@codefast/cli 0.3.13-canary.3 → 0.3.13

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 (465) hide show
  1. package/README.md +29 -3
  2. package/dist/{bin.js → bin.mjs} +4 -1
  3. package/dist/commands/arrange.mjs +325 -0
  4. package/dist/commands/mirror.mjs +267 -0
  5. package/dist/commands/tag.mjs +283 -0
  6. package/dist/lib/arrange/application/arrange-analyze-json.format.mjs +10 -0
  7. package/dist/lib/arrange/application/arrange-group-json.format.mjs +11 -0
  8. package/dist/lib/arrange/application/arrange-sync-cli-result.mjs +7 -0
  9. package/dist/lib/arrange/application/arrange-sync-json.format.mjs +12 -0
  10. package/dist/lib/arrange/application/services/arrange-file-processor.service.mjs +242 -0
  11. package/dist/lib/arrange/application/services/arrange-target-scanner.service.mjs +237 -0
  12. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.mjs +258 -0
  13. package/dist/lib/arrange/application/use-cases/group-file.use-case.mjs +35 -0
  14. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.mjs +283 -0
  15. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.mjs +233 -0
  16. package/dist/lib/arrange/arrange.feature.module.mjs +19 -0
  17. package/dist/lib/arrange/arrange.module.mjs +27 -0
  18. package/dist/lib/arrange/arrange.presentation.module.mjs +13 -0
  19. package/dist/lib/arrange/contracts/tokens.mjs +14 -0
  20. package/dist/lib/arrange/domain/arrange-analyze.service.mjs +95 -0
  21. package/dist/lib/arrange/domain/arrange-grouping.service.mjs +100 -0
  22. package/dist/lib/arrange/domain/ast/ast-helpers.helper.mjs +89 -0
  23. package/dist/lib/arrange/domain/ast/ast-node.model.mjs +181 -0
  24. package/dist/lib/arrange/domain/ast/collectors-cn.collector.mjs +52 -0
  25. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.mjs +20 -0
  26. package/dist/lib/arrange/domain/ast/collectors-tv.collector.mjs +174 -0
  27. package/dist/lib/arrange/domain/ast/targets.model.mjs +110 -0
  28. package/dist/lib/arrange/domain/constants.domain.mjs +154 -0
  29. package/dist/lib/arrange/domain/errors.domain.mjs +18 -0
  30. package/dist/lib/arrange/domain/grouping.domain.mjs +306 -0
  31. package/dist/lib/arrange/domain/imports.domain.mjs +55 -0
  32. package/dist/lib/arrange/domain/source-text-formatters.formatter.mjs +54 -0
  33. package/dist/lib/arrange/domain/tokenizer.util.mjs +209 -0
  34. package/dist/lib/arrange/infra/domain-source-parser.adapter.mjs +240 -0
  35. package/dist/lib/arrange/infra/ensure-cn-import.adapter.mjs +8 -0
  36. package/dist/lib/arrange/infra/file-walker.adapter.mjs +239 -0
  37. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.mjs +18 -0
  38. package/dist/lib/arrange/infra/ts-ast-translator.adapter.mjs +355 -0
  39. package/dist/lib/arrange/presentation/arrange-cli-schema.presenter.mjs +29 -0
  40. package/dist/lib/arrange/presentation/arrange-sync.presenter.mjs +12 -0
  41. package/dist/lib/arrange/presentation/formatters.presenter.mjs +2 -0
  42. package/dist/lib/arrange/presentation/group-file-preview.presenter.mjs +275 -0
  43. package/dist/lib/arrange/presentation/prepare-arrange.orchestrator.mjs +258 -0
  44. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.mjs +7 -0
  45. package/dist/lib/arrange/presentation/present-analyze-report.presenter.mjs +233 -0
  46. package/dist/lib/arrange/presentation/report.presenter.mjs +24 -0
  47. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.mjs +21 -0
  48. package/dist/lib/config/application/use-cases/load-config.use-case.mjs +17 -0
  49. package/dist/lib/config/contracts/tokens.mjs +5 -0
  50. package/dist/lib/config/infra/config-schema.adapter.mjs +25 -0
  51. package/dist/lib/config/infra/loader.adapter.mjs +84 -0
  52. package/dist/lib/core/application/architecture-boundaries.policy.mjs +311 -0
  53. package/dist/lib/core/application/ports/path.port.mjs +1 -0
  54. package/dist/lib/core/application/schema-parse.util.mjs +17 -0
  55. package/dist/lib/core/application/utils/caught-unknown-message.util.mjs +19 -0
  56. package/dist/lib/core/application/utils/verbose-diagnostics.util.mjs +9 -0
  57. package/dist/lib/core/contracts/presentation.contract.mjs +1 -0
  58. package/dist/lib/core/contracts/tokens.mjs +5 -0
  59. package/dist/lib/core/core.module.mjs +9 -0
  60. package/dist/lib/core/domain/cli-exit-codes.domain.mjs +11 -0
  61. package/dist/lib/core/domain/errors.domain.mjs +16 -0
  62. package/dist/lib/core/domain/result.model.mjs +23 -0
  63. package/dist/lib/core/infra/composition-root.mjs +21 -0
  64. package/dist/lib/core/infra/infra.module.mjs +23 -0
  65. package/dist/lib/core/infra/logging-decorator.adapter.mjs +62 -0
  66. package/dist/lib/core/infra/path.adapter.mjs +13 -0
  67. package/dist/lib/core/operational/contracts/tokens.mjs +7 -0
  68. package/dist/lib/core/presentation/cli-executor.presenter.mjs +57 -0
  69. package/dist/lib/core/presentation/command.interface.mjs +1 -0
  70. package/dist/lib/core/presentation/format-app-error.presenter.mjs +17 -0
  71. package/dist/lib/core/presentation/global-cli-options.presenter.mjs +9 -0
  72. package/dist/lib/core/presentation/load-codefast-config.presenter.mjs +18 -0
  73. package/dist/lib/core/presentation/parse-cli-schema.presenter.mjs +7 -0
  74. package/dist/lib/core/presentation/presentation.module.mjs +11 -0
  75. package/dist/lib/core/presentation/try-load-codefast-config.presenter.mjs +245 -0
  76. package/dist/lib/infra/config-reporter.adapter.mjs +9 -0
  77. package/dist/lib/infra/fs-contract.port.mjs +1 -0
  78. package/dist/lib/infra/node-io.adapter.mjs +266 -0
  79. package/dist/lib/infra/workspace/repo-root.adapter.mjs +21 -0
  80. package/dist/lib/kernel/di/command.token.mjs +5 -0
  81. package/dist/lib/mirror/application/mirror-sync-json.format.mjs +12 -0
  82. package/dist/lib/mirror/application/ports/file-system-service.port.mjs +1 -0
  83. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.mjs +1 -0
  84. package/dist/lib/mirror/application/ports/package-repository.port.mjs +1 -0
  85. package/dist/lib/mirror/application/ports/sync-workspace-package.port.mjs +1 -0
  86. package/dist/lib/mirror/application/ports/workspace-service.port.mjs +1 -0
  87. package/dist/lib/mirror/application/requests/mirror-sync.request.mjs +1 -0
  88. package/dist/lib/mirror/application/services/sync-workspace-package.service.mjs +351 -0
  89. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.mjs +219 -0
  90. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.mjs +302 -0
  91. package/dist/lib/mirror/contracts/models.mjs +1 -0
  92. package/dist/lib/mirror/contracts/presentation.contract.mjs +1 -0
  93. package/dist/lib/mirror/contracts/tokens.mjs +11 -0
  94. package/dist/lib/mirror/contracts/use-cases.contract.mjs +1 -0
  95. package/dist/lib/mirror/domain/constants.domain.mjs +16 -0
  96. package/dist/lib/mirror/domain/errors.domain.mjs +15 -0
  97. package/dist/lib/mirror/domain/types.domain.mjs +1 -0
  98. package/dist/lib/mirror/infra/dirent-list.adapter.mjs +13 -0
  99. package/dist/lib/mirror/infra/file-system-service.adapter.mjs +256 -0
  100. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.mjs +1 -0
  101. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.mjs +236 -0
  102. package/dist/lib/mirror/infra/package-filter.adapter.mjs +25 -0
  103. package/dist/lib/mirror/infra/package-repository.adapter.mjs +235 -0
  104. package/dist/lib/mirror/infra/path-normalizer.adapter.mjs +7 -0
  105. package/dist/lib/mirror/infra/update-pkg.adapter.mjs +102 -0
  106. package/dist/lib/mirror/infra/workspace-packages.adapter.mjs +154 -0
  107. package/dist/lib/mirror/infra/workspace-service.adapter.mjs +232 -0
  108. package/dist/lib/mirror/mirror.feature.module.mjs +19 -0
  109. package/dist/lib/mirror/mirror.module.mjs +23 -0
  110. package/dist/lib/mirror/mirror.presentation.module.mjs +11 -0
  111. package/dist/lib/mirror/presentation/mirror-cli-schema.presenter.mjs +12 -0
  112. package/dist/lib/mirror/presentation/prepare-mirror.orchestrator.mjs +263 -0
  113. package/dist/lib/mirror/presentation/reporter.presenter.mjs +111 -0
  114. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.mjs +20 -0
  115. package/dist/lib/shared/source-code/domain/text-edit.model.mjs +28 -0
  116. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.mjs +33 -0
  117. package/dist/lib/tag/application/ports/tag-since-writer.port.mjs +1 -0
  118. package/dist/lib/tag/application/ports/tag-version-resolver.port.mjs +1 -0
  119. package/dist/lib/tag/application/ports/target-resolver.port.mjs +1 -0
  120. package/dist/lib/tag/application/ports/typescript-tree-walk.port.mjs +1 -0
  121. package/dist/lib/tag/application/requests/tag-sync.request.mjs +1 -0
  122. package/dist/lib/tag/application/tag-sync-cli-result.mjs +11 -0
  123. package/dist/lib/tag/application/tag-sync-json.format.mjs +14 -0
  124. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.mjs +398 -0
  125. package/dist/lib/tag/contracts/models.mjs +1 -0
  126. package/dist/lib/tag/contracts/presentation.contract.mjs +1 -0
  127. package/dist/lib/tag/contracts/tokens.mjs +12 -0
  128. package/dist/lib/tag/contracts/use-cases.contract.mjs +1 -0
  129. package/dist/lib/tag/domain/types.domain.mjs +1 -0
  130. package/dist/lib/tag/infra/tag-since-writer.adapter.mjs +343 -0
  131. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.mjs +1 -0
  132. package/dist/lib/tag/infra/tag-target-candidates.adapter.mjs +170 -0
  133. package/dist/lib/tag/infra/tag-target-resolver.adapter.mjs +226 -0
  134. package/dist/lib/tag/infra/tag-version-resolver.adapter.mjs +247 -0
  135. package/dist/lib/tag/infra/typescript-tree-walk.adapter.mjs +226 -0
  136. package/dist/lib/tag/presentation/colors.presenter.mjs +12 -0
  137. package/dist/lib/tag/presentation/create-tag-progress-listener.presenter.mjs +228 -0
  138. package/dist/lib/tag/presentation/prepare-tag.orchestrator.mjs +264 -0
  139. package/dist/lib/tag/presentation/present-tag-sync-result.presenter.mjs +233 -0
  140. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.mjs +9 -0
  141. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.mjs +12 -0
  142. package/dist/lib/tag/presentation/tag-cli-schema.presenter.mjs +12 -0
  143. package/dist/lib/tag/presentation/tag-sync.presenter.mjs +78 -0
  144. package/dist/lib/tag/tag.feature.module.mjs +19 -0
  145. package/dist/lib/tag/tag.module.mjs +21 -0
  146. package/dist/lib/tag/tag.presentation.module.mjs +15 -0
  147. package/dist/program.mjs +39 -0
  148. package/package.json +16 -19
  149. package/dist/bin.d.ts +0 -3
  150. package/dist/bin.d.ts.map +0 -1
  151. package/dist/commands/arrange.d.ts +0 -3
  152. package/dist/commands/arrange.d.ts.map +0 -1
  153. package/dist/commands/arrange.js +0 -108
  154. package/dist/commands/mirror.d.ts +0 -3
  155. package/dist/commands/mirror.d.ts.map +0 -1
  156. package/dist/commands/mirror.js +0 -36
  157. package/dist/commands/tag.d.ts +0 -3
  158. package/dist/commands/tag.d.ts.map +0 -1
  159. package/dist/commands/tag.js +0 -44
  160. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts +0 -5
  161. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts.map +0 -1
  162. package/dist/lib/arrange/application/ports/file-walker.port.d.ts +0 -5
  163. package/dist/lib/arrange/application/ports/file-walker.port.d.ts.map +0 -1
  164. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts +0 -6
  165. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts.map +0 -1
  166. package/dist/lib/arrange/application/requests/analyze-directory.request.js +0 -4
  167. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts +0 -18
  168. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts.map +0 -1
  169. package/dist/lib/arrange/application/requests/arrange-sync.request.js +0 -15
  170. package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts +0 -8
  171. package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts.map +0 -1
  172. package/dist/lib/arrange/application/requests/suggest-groups.request.js +0 -8
  173. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts +0 -17
  174. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts.map +0 -1
  175. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.js +0 -24
  176. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts +0 -17
  177. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts.map +0 -1
  178. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.js +0 -46
  179. package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts +0 -5
  180. package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts.map +0 -1
  181. package/dist/lib/arrange/application/use-cases/group-file.use-case.js +0 -40
  182. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts +0 -19
  183. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts.map +0 -1
  184. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.js +0 -85
  185. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts +0 -7
  186. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts.map +0 -1
  187. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.js +0 -10
  188. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts +0 -12
  189. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts.map +0 -1
  190. package/dist/lib/arrange/domain/arrange-analyze.service.js +0 -116
  191. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts +0 -53
  192. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts.map +0 -1
  193. package/dist/lib/arrange/domain/arrange-grouping.service.js +0 -106
  194. package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts +0 -28
  195. package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts.map +0 -1
  196. package/dist/lib/arrange/domain/ast/ast-helpers.helper.js +0 -130
  197. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts +0 -179
  198. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts.map +0 -1
  199. package/dist/lib/arrange/domain/ast/ast-node.model.js +0 -210
  200. package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts +0 -7
  201. package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts.map +0 -1
  202. package/dist/lib/arrange/domain/ast/collectors-cn.collector.js +0 -70
  203. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts +0 -4
  204. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts.map +0 -1
  205. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.js +0 -21
  206. package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts +0 -13
  207. package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts.map +0 -1
  208. package/dist/lib/arrange/domain/ast/collectors-tv.collector.js +0 -302
  209. package/dist/lib/arrange/domain/ast/targets.model.d.ts +0 -8
  210. package/dist/lib/arrange/domain/ast/targets.model.d.ts.map +0 -1
  211. package/dist/lib/arrange/domain/ast/targets.model.js +0 -147
  212. package/dist/lib/arrange/domain/constants.domain.d.ts +0 -70
  213. package/dist/lib/arrange/domain/constants.domain.d.ts.map +0 -1
  214. package/dist/lib/arrange/domain/constants.domain.js +0 -182
  215. package/dist/lib/arrange/domain/errors.domain.d.ts +0 -14
  216. package/dist/lib/arrange/domain/errors.domain.d.ts.map +0 -1
  217. package/dist/lib/arrange/domain/errors.domain.js +0 -16
  218. package/dist/lib/arrange/domain/grouping.domain.d.ts +0 -41
  219. package/dist/lib/arrange/domain/grouping.domain.d.ts.map +0 -1
  220. package/dist/lib/arrange/domain/grouping.domain.js +0 -371
  221. package/dist/lib/arrange/domain/imports.domain.d.ts +0 -7
  222. package/dist/lib/arrange/domain/imports.domain.d.ts.map +0 -1
  223. package/dist/lib/arrange/domain/imports.domain.js +0 -80
  224. package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts +0 -16
  225. package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts.map +0 -1
  226. package/dist/lib/arrange/domain/source-text-formatters.formatter.js +0 -55
  227. package/dist/lib/arrange/domain/tokenizer.util.d.ts +0 -45
  228. package/dist/lib/arrange/domain/tokenizer.util.d.ts.map +0 -1
  229. package/dist/lib/arrange/domain/tokenizer.util.js +0 -469
  230. package/dist/lib/arrange/domain/types.domain.d.ts +0 -115
  231. package/dist/lib/arrange/domain/types.domain.d.ts.map +0 -1
  232. package/dist/lib/arrange/domain/types.domain.js +0 -10
  233. package/dist/lib/arrange/index.d.ts +0 -45
  234. package/dist/lib/arrange/index.d.ts.map +0 -1
  235. package/dist/lib/arrange/index.js +0 -41
  236. package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts +0 -14
  237. package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts.map +0 -1
  238. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts +0 -11
  239. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts.map +0 -1
  240. package/dist/lib/arrange/infra/domain-source-parser.adapter.js +0 -19
  241. package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts +0 -3
  242. package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts.map +0 -1
  243. package/dist/lib/arrange/infra/ensure-cn-import.adapter.js +0 -6
  244. package/dist/lib/arrange/infra/file-walker.adapter.d.ts +0 -8
  245. package/dist/lib/arrange/infra/file-walker.adapter.d.ts.map +0 -1
  246. package/dist/lib/arrange/infra/file-walker.adapter.js +0 -17
  247. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts +0 -8
  248. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts.map +0 -1
  249. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.js +0 -25
  250. package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts +0 -10
  251. package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts.map +0 -1
  252. package/dist/lib/arrange/infra/ts-ast-translator.adapter.js +0 -363
  253. package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts +0 -14
  254. package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts.map +0 -1
  255. package/dist/lib/arrange/presentation/arrange-prelude.presenter.js +0 -24
  256. package/dist/lib/arrange/presentation/formatters.presenter.d.ts +0 -3
  257. package/dist/lib/arrange/presentation/formatters.presenter.d.ts.map +0 -1
  258. package/dist/lib/arrange/presentation/formatters.presenter.js +0 -2
  259. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts +0 -4
  260. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts.map +0 -1
  261. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.js +0 -4
  262. package/dist/lib/arrange/presentation/report.presenter.d.ts +0 -4
  263. package/dist/lib/arrange/presentation/report.presenter.d.ts.map +0 -1
  264. package/dist/lib/arrange/presentation/report.presenter.js +0 -37
  265. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts +0 -2
  266. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts.map +0 -1
  267. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.js +0 -7
  268. package/dist/lib/config/domain/schema.domain.d.ts +0 -50
  269. package/dist/lib/config/domain/schema.domain.d.ts.map +0 -1
  270. package/dist/lib/config/domain/schema.domain.js +0 -43
  271. package/dist/lib/config/index.d.ts +0 -4
  272. package/dist/lib/config/index.d.ts.map +0 -1
  273. package/dist/lib/config/index.js +0 -2
  274. package/dist/lib/config/infra/loader.adapter.d.ts +0 -11
  275. package/dist/lib/config/infra/loader.adapter.d.ts.map +0 -1
  276. package/dist/lib/config/infra/loader.adapter.js +0 -90
  277. package/dist/lib/core/application/architecture-boundaries.policy.d.ts +0 -19
  278. package/dist/lib/core/application/architecture-boundaries.policy.d.ts.map +0 -1
  279. package/dist/lib/core/application/architecture-boundaries.policy.js +0 -370
  280. package/dist/lib/core/application/ports/cli-io.port.d.ts +0 -31
  281. package/dist/lib/core/application/ports/cli-io.port.d.ts.map +0 -1
  282. package/dist/lib/core/application/schema-parse.util.d.ts +0 -8
  283. package/dist/lib/core/application/schema-parse.util.d.ts.map +0 -1
  284. package/dist/lib/core/application/schema-parse.util.js +0 -20
  285. package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts +0 -6
  286. package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts.map +0 -1
  287. package/dist/lib/core/application/utils/caught-unknown-message.util.js +0 -34
  288. package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts +0 -5
  289. package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts.map +0 -1
  290. package/dist/lib/core/application/utils/verbose-diagnostics.util.js +0 -7
  291. package/dist/lib/core/domain/errors.domain.d.ts +0 -11
  292. package/dist/lib/core/domain/errors.domain.d.ts.map +0 -1
  293. package/dist/lib/core/domain/errors.domain.js +0 -9
  294. package/dist/lib/core/domain/result.model.d.ts +0 -17
  295. package/dist/lib/core/domain/result.model.d.ts.map +0 -1
  296. package/dist/lib/core/domain/result.model.js +0 -15
  297. package/dist/lib/core/infra/container.adapter.d.ts +0 -58
  298. package/dist/lib/core/infra/container.adapter.d.ts.map +0 -1
  299. package/dist/lib/core/infra/container.adapter.js +0 -80
  300. package/dist/lib/core/infra/logging-decorator.adapter.d.ts +0 -12
  301. package/dist/lib/core/infra/logging-decorator.adapter.d.ts.map +0 -1
  302. package/dist/lib/core/infra/logging-decorator.adapter.js +0 -75
  303. package/dist/lib/core/presentation/cli-executor.presenter.d.ts +0 -33
  304. package/dist/lib/core/presentation/cli-executor.presenter.d.ts.map +0 -1
  305. package/dist/lib/core/presentation/cli-executor.presenter.js +0 -73
  306. package/dist/lib/core/presentation/format-app-error.presenter.d.ts +0 -6
  307. package/dist/lib/core/presentation/format-app-error.presenter.d.ts.map +0 -1
  308. package/dist/lib/core/presentation/format-app-error.presenter.js +0 -19
  309. package/dist/lib/core/presentation/global-cli-options.presenter.d.ts +0 -9
  310. package/dist/lib/core/presentation/global-cli-options.presenter.d.ts.map +0 -1
  311. package/dist/lib/core/presentation/global-cli-options.presenter.js +0 -8
  312. package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts +0 -8
  313. package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts.map +0 -1
  314. package/dist/lib/core/presentation/load-codefast-config.presenter.js +0 -15
  315. package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts +0 -5
  316. package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts.map +0 -1
  317. package/dist/lib/core/presentation/parse-cli-schema.presenter.js +0 -4
  318. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts +0 -6
  319. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts.map +0 -1
  320. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.js +0 -17
  321. package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts +0 -5
  322. package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts.map +0 -1
  323. package/dist/lib/core/presentation/workspace-root-strict.presenter.js +0 -12
  324. package/dist/lib/infra/config-reporter.adapter.d.ts +0 -4
  325. package/dist/lib/infra/config-reporter.adapter.d.ts.map +0 -1
  326. package/dist/lib/infra/config-reporter.adapter.js +0 -9
  327. package/dist/lib/infra/fs-contract.port.d.ts +0 -2
  328. package/dist/lib/infra/fs-contract.port.d.ts.map +0 -1
  329. package/dist/lib/infra/node-io.adapter.d.ts +0 -4
  330. package/dist/lib/infra/node-io.adapter.d.ts.map +0 -1
  331. package/dist/lib/infra/node-io.adapter.js +0 -37
  332. package/dist/lib/infra/workspace/repo-root.adapter.d.ts +0 -7
  333. package/dist/lib/infra/workspace/repo-root.adapter.d.ts.map +0 -1
  334. package/dist/lib/infra/workspace/repo-root.adapter.js +0 -23
  335. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts +0 -6
  336. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts.map +0 -1
  337. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts +0 -27
  338. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts.map +0 -1
  339. package/dist/lib/mirror/application/ports/package-repository.port.d.ts +0 -16
  340. package/dist/lib/mirror/application/ports/package-repository.port.d.ts.map +0 -1
  341. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts +0 -7
  342. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts.map +0 -1
  343. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts +0 -10
  344. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts.map +0 -1
  345. package/dist/lib/mirror/application/requests/mirror-sync.request.js +0 -8
  346. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts +0 -10
  347. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts.map +0 -1
  348. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.js +0 -271
  349. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts +0 -19
  350. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts.map +0 -1
  351. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.js +0 -168
  352. package/dist/lib/mirror/domain/constants.domain.d.ts +0 -6
  353. package/dist/lib/mirror/domain/constants.domain.d.ts.map +0 -1
  354. package/dist/lib/mirror/domain/constants.domain.js +0 -5
  355. package/dist/lib/mirror/domain/errors.domain.d.ts +0 -10
  356. package/dist/lib/mirror/domain/errors.domain.d.ts.map +0 -1
  357. package/dist/lib/mirror/domain/errors.domain.js +0 -12
  358. package/dist/lib/mirror/domain/types.domain.d.ts +0 -65
  359. package/dist/lib/mirror/domain/types.domain.d.ts.map +0 -1
  360. package/dist/lib/mirror/index.d.ts +0 -6
  361. package/dist/lib/mirror/index.d.ts.map +0 -1
  362. package/dist/lib/mirror/index.js +0 -1
  363. package/dist/lib/mirror/infra/dirent-list.adapter.d.ts +0 -9
  364. package/dist/lib/mirror/infra/dirent-list.adapter.d.ts.map +0 -1
  365. package/dist/lib/mirror/infra/dirent-list.adapter.js +0 -13
  366. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts +0 -7
  367. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts.map +0 -1
  368. package/dist/lib/mirror/infra/file-system-service.adapter.js +0 -47
  369. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts +0 -14
  370. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts.map +0 -1
  371. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts +0 -3
  372. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts.map +0 -1
  373. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.js +0 -13
  374. package/dist/lib/mirror/infra/package-filter.adapter.d.ts +0 -8
  375. package/dist/lib/mirror/infra/package-filter.adapter.d.ts.map +0 -1
  376. package/dist/lib/mirror/infra/package-filter.adapter.js +0 -33
  377. package/dist/lib/mirror/infra/package-repository.adapter.d.ts +0 -17
  378. package/dist/lib/mirror/infra/package-repository.adapter.d.ts.map +0 -1
  379. package/dist/lib/mirror/infra/package-repository.adapter.js +0 -17
  380. package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts +0 -2
  381. package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts.map +0 -1
  382. package/dist/lib/mirror/infra/path-normalizer.adapter.js +0 -4
  383. package/dist/lib/mirror/infra/update-pkg.adapter.d.ts +0 -19
  384. package/dist/lib/mirror/infra/update-pkg.adapter.d.ts.map +0 -1
  385. package/dist/lib/mirror/infra/update-pkg.adapter.js +0 -156
  386. package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts +0 -26
  387. package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts.map +0 -1
  388. package/dist/lib/mirror/infra/workspace-packages.adapter.js +0 -170
  389. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts +0 -8
  390. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts.map +0 -1
  391. package/dist/lib/mirror/infra/workspace-service.adapter.js +0 -10
  392. package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts +0 -17
  393. package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts.map +0 -1
  394. package/dist/lib/mirror/presentation/mirror-prelude.presenter.js +0 -35
  395. package/dist/lib/mirror/presentation/reporter.presenter.d.ts +0 -25
  396. package/dist/lib/mirror/presentation/reporter.presenter.d.ts.map +0 -1
  397. package/dist/lib/mirror/presentation/reporter.presenter.js +0 -140
  398. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts +0 -11
  399. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts.map +0 -1
  400. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.js +0 -27
  401. package/dist/lib/shared/source-code/domain/text-edit.model.d.ts +0 -14
  402. package/dist/lib/shared/source-code/domain/text-edit.model.d.ts.map +0 -1
  403. package/dist/lib/shared/source-code/domain/text-edit.model.js +0 -30
  404. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts +0 -4
  405. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts.map +0 -1
  406. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.js +0 -37
  407. package/dist/lib/tag/application/ports/target-resolver.port.d.ts +0 -6
  408. package/dist/lib/tag/application/ports/target-resolver.port.d.ts.map +0 -1
  409. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts +0 -6
  410. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts.map +0 -1
  411. package/dist/lib/tag/application/requests/tag-sync.request.d.ts +0 -10
  412. package/dist/lib/tag/application/requests/tag-sync.request.d.ts.map +0 -1
  413. package/dist/lib/tag/application/requests/tag-sync.request.js +0 -8
  414. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts +0 -23
  415. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts.map +0 -1
  416. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.js +0 -357
  417. package/dist/lib/tag/domain/types.domain.d.ts +0 -56
  418. package/dist/lib/tag/domain/types.domain.d.ts.map +0 -1
  419. package/dist/lib/tag/index.d.ts +0 -14
  420. package/dist/lib/tag/index.d.ts.map +0 -1
  421. package/dist/lib/tag/index.js +0 -10
  422. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts +0 -14
  423. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts.map +0 -1
  424. package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts +0 -4
  425. package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts.map +0 -1
  426. package/dist/lib/tag/infra/tag-target-candidates.adapter.js +0 -200
  427. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts +0 -3
  428. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts.map +0 -1
  429. package/dist/lib/tag/infra/tag-target-resolver.adapter.js +0 -4
  430. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts +0 -3
  431. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts.map +0 -1
  432. package/dist/lib/tag/infra/typescript-tree-walk.adapter.js +0 -4
  433. package/dist/lib/tag/presentation/colors.presenter.d.ts +0 -8
  434. package/dist/lib/tag/presentation/colors.presenter.d.ts.map +0 -1
  435. package/dist/lib/tag/presentation/colors.presenter.js +0 -9
  436. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts +0 -8
  437. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts.map +0 -1
  438. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.js +0 -10
  439. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts +0 -8
  440. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts.map +0 -1
  441. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.js +0 -10
  442. package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts +0 -15
  443. package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts.map +0 -1
  444. package/dist/lib/tag/presentation/tag-prelude.presenter.js +0 -31
  445. package/dist/lib/tag/presentation/tag-sync.presenter.d.ts +0 -20
  446. package/dist/lib/tag/presentation/tag-sync.presenter.d.ts.map +0 -1
  447. package/dist/lib/tag/presentation/tag-sync.presenter.js +0 -92
  448. package/dist/program.d.ts +0 -4
  449. package/dist/program.d.ts.map +0 -1
  450. package/dist/program.js +0 -40
  451. /package/dist/lib/arrange/application/ports/{domain-source-parser.port.js → domain-source-parser.port.mjs} +0 -0
  452. /package/dist/lib/arrange/application/ports/{file-walker.port.js → file-walker.port.mjs} +0 -0
  453. /package/dist/lib/arrange/{infra/arrange-sync-cli-options.adapter.js → application/ports/group-file-preview.port.mjs} +0 -0
  454. /package/dist/lib/{core/application/ports/cli-io.port.js → arrange/application/requests/analyze-directory.request.mjs} +0 -0
  455. /package/dist/lib/{infra/fs-contract.port.js → arrange/application/requests/arrange-sync.request.mjs} +0 -0
  456. /package/dist/lib/{mirror/application/ports/file-system-service.port.js → arrange/application/requests/suggest-groups.request.mjs} +0 -0
  457. /package/dist/lib/{mirror/application/ports/mirror-sync-reporter.port.js → arrange/contracts/models.mjs} +0 -0
  458. /package/dist/lib/{mirror/application/ports/package-repository.port.js → arrange/contracts/presentation.contract.mjs} +0 -0
  459. /package/dist/lib/{mirror/application/ports/workspace-service.port.js → arrange/contracts/services.contract.mjs} +0 -0
  460. /package/dist/lib/{mirror/domain/types.domain.js → arrange/contracts/use-cases.contract.mjs} +0 -0
  461. /package/dist/lib/{mirror/infra/mirror-sync-cli-options.adapter.js → arrange/domain/types.domain.mjs} +0 -0
  462. /package/dist/lib/{tag/application/ports/target-resolver.port.js → arrange/infra/arrange-sync-cli-options.adapter.mjs} +0 -0
  463. /package/dist/lib/{tag/application/ports/typescript-tree-walk.port.js → config/application/ports/config-loader.port.mjs} +0 -0
  464. /package/dist/lib/{tag/domain/types.domain.js → config/domain/schema.domain.mjs} +0 -0
  465. /package/dist/lib/{tag/infra/tag-sync-cli-options.adapter.js → core/application/ports/cli-io.port.mjs} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag-target-candidates.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/tag/infra/tag-target-candidates.adapter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA2MvE,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,EAAE,EAAE,KAAK,GACR,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAkC/B"}
@@ -1,200 +0,0 @@
1
- import { globSync } from "node:fs";
2
- import path from "node:path";
3
- import picomatch from "picomatch";
4
- import { parse as parseYaml } from "yaml";
5
- import { z } from "zod";
6
- import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message.util";
7
- const PNPM_WORKSPACE_FILE = "pnpm-workspace.yaml";
8
- const PACKAGE_JSON_FILE = "package.json";
9
- const DEFAULT_WORKSPACE_PACKAGE_PATTERNS = ["packages/*"];
10
- const PnpmWorkspaceSchema = z
11
- .object({
12
- packages: z.array(z.string()).optional(),
13
- })
14
- .passthrough();
15
- const PackageNameSchema = z
16
- .object({
17
- name: z.string().min(1).optional(),
18
- })
19
- .passthrough();
20
- function toPosix(filePath) {
21
- return filePath.split(path.sep).join("/");
22
- }
23
- function workspacePatternToPackageJsonGlob(pattern) {
24
- const normalizedPattern = toPosix(pattern.trim()).replace(/\/+$/, "");
25
- if (!normalizedPattern) {
26
- return `**/${PACKAGE_JSON_FILE}`;
27
- }
28
- return `${normalizedPattern}/${PACKAGE_JSON_FILE}`;
29
- }
30
- function splitWorkspacePackagePatterns(rawPatterns) {
31
- const include = [];
32
- const exclude = [];
33
- for (const rawPattern of rawPatterns) {
34
- const trimmedPattern = rawPattern.trim();
35
- if (!trimmedPattern) {
36
- continue;
37
- }
38
- if (trimmedPattern.startsWith("!")) {
39
- exclude.push(trimmedPattern.slice(1).trim());
40
- continue;
41
- }
42
- include.push(trimmedPattern);
43
- }
44
- return { include, exclude };
45
- }
46
- async function readWorkspacePackagePatterns(rootDir, fs) {
47
- const workspaceYamlPath = path.join(rootDir, PNPM_WORKSPACE_FILE);
48
- if (!fs.existsSync(workspaceYamlPath)) {
49
- return {
50
- patterns: [...DEFAULT_WORKSPACE_PACKAGE_PATTERNS],
51
- hasWorkspaceFile: false,
52
- declaredEmptyPackages: false,
53
- };
54
- }
55
- let workspaceYamlRaw = "";
56
- try {
57
- workspaceYamlRaw = await fs.readFile(workspaceYamlPath, "utf8");
58
- }
59
- catch (caughtReadError) {
60
- throw new Error(`Failed to read ${PNPM_WORKSPACE_FILE}: ${messageFromCaughtUnknown(caughtReadError)}`);
61
- }
62
- let parsedWorkspaceDoc;
63
- try {
64
- parsedWorkspaceDoc = parseYaml(workspaceYamlRaw);
65
- }
66
- catch (caughtParseError) {
67
- throw new Error(`Failed to parse ${PNPM_WORKSPACE_FILE}: ${messageFromCaughtUnknown(caughtParseError)}`);
68
- }
69
- const parsedWorkspaceResult = PnpmWorkspaceSchema.safeParse(parsedWorkspaceDoc);
70
- if (!parsedWorkspaceResult.success) {
71
- const issuePath = parsedWorkspaceResult.error.issues[0]?.path.join(".") ?? "<root>";
72
- const issueMessage = parsedWorkspaceResult.error.issues[0]?.message ?? "Invalid value";
73
- throw new Error(`Invalid ${PNPM_WORKSPACE_FILE} schema at "${issuePath}": ${issueMessage}`);
74
- }
75
- const hasPackagesKey = typeof parsedWorkspaceDoc === "object" &&
76
- parsedWorkspaceDoc !== null &&
77
- Object.prototype.hasOwnProperty.call(parsedWorkspaceDoc, "packages");
78
- const workspacePackages = parsedWorkspaceResult.data.packages;
79
- if (!workspacePackages) {
80
- return {
81
- patterns: [...DEFAULT_WORKSPACE_PACKAGE_PATTERNS],
82
- hasWorkspaceFile: true,
83
- declaredEmptyPackages: false,
84
- };
85
- }
86
- if (workspacePackages.length === 0 && hasPackagesKey) {
87
- return { patterns: [], hasWorkspaceFile: true, declaredEmptyPackages: true };
88
- }
89
- return {
90
- patterns: workspacePackages,
91
- hasWorkspaceFile: true,
92
- declaredEmptyPackages: false,
93
- };
94
- }
95
- async function discoverWorkspacePackageDirs(rootDir, fs) {
96
- const workspacePackages = await readWorkspacePackagePatterns(rootDir, fs);
97
- const { include, exclude } = splitWorkspacePackagePatterns(workspacePackages.patterns);
98
- const includePatterns = include.length > 0 ? include : [...DEFAULT_WORKSPACE_PACKAGE_PATTERNS];
99
- const foundPackageDirs = new Set();
100
- const globOptions = {
101
- cwd: rootDir,
102
- posix: true,
103
- ...(path.sep === "\\" ? { windowsPathsNoEscape: true } : {}),
104
- };
105
- for (const pattern of includePatterns) {
106
- const packageJsonGlob = workspacePatternToPackageJsonGlob(pattern);
107
- const matches = globSync(packageJsonGlob, globOptions);
108
- for (const matchedPath of matches) {
109
- if (!matchedPath.endsWith(`/${PACKAGE_JSON_FILE}`)) {
110
- continue;
111
- }
112
- const packageRelDir = matchedPath.slice(0, -`/${PACKAGE_JSON_FILE}`.length);
113
- if (!packageRelDir) {
114
- continue;
115
- }
116
- foundPackageDirs.add(path.resolve(rootDir, packageRelDir));
117
- }
118
- }
119
- if (exclude.length === 0) {
120
- return {
121
- packageDirs: [...foundPackageDirs].sort((leftDir, rightDir) => leftDir.localeCompare(rightDir)),
122
- hasWorkspaceFile: workspacePackages.hasWorkspaceFile,
123
- declaredEmptyPackages: workspacePackages.declaredEmptyPackages,
124
- };
125
- }
126
- const excludeMatchers = exclude.map((excludePattern) => picomatch(excludePattern, { dot: true }));
127
- const discoveredDirs = [...foundPackageDirs].filter((packageDir) => {
128
- const relativePackagePath = toPosix(path.relative(rootDir, packageDir));
129
- return !excludeMatchers.some((excludeMatcher) => excludeMatcher(relativePackagePath));
130
- });
131
- discoveredDirs.sort((leftDir, rightDir) => leftDir.localeCompare(rightDir));
132
- return {
133
- packageDirs: discoveredDirs,
134
- hasWorkspaceFile: workspacePackages.hasWorkspaceFile,
135
- declaredEmptyPackages: workspacePackages.declaredEmptyPackages,
136
- };
137
- }
138
- function readPackageName(packageDir, fs) {
139
- const packageJsonPath = path.join(packageDir, PACKAGE_JSON_FILE);
140
- if (!fs.existsSync(packageJsonPath)) {
141
- return null;
142
- }
143
- try {
144
- const rawPackageJson = fs.readFileSync(packageJsonPath, "utf8");
145
- const parsedPackageJson = JSON.parse(rawPackageJson);
146
- const parsedPackageName = PackageNameSchema.safeParse(parsedPackageJson);
147
- if (!parsedPackageName.success) {
148
- return null;
149
- }
150
- return parsedPackageName.data.name ?? null;
151
- }
152
- catch {
153
- return null;
154
- }
155
- }
156
- function toRootRelativePath(rootDir, absolutePath) {
157
- const relativePath = path.relative(rootDir, absolutePath);
158
- return relativePath ? toPosix(relativePath) : ".";
159
- }
160
- function toPackageTargetCandidate(rootDir, packageDir, fs) {
161
- const packageName = readPackageName(packageDir, fs);
162
- return {
163
- candidatePath: packageDir,
164
- rootRelativeCandidatePath: toRootRelativePath(rootDir, packageDir),
165
- source: "workspace-package",
166
- packageDir,
167
- packageName,
168
- };
169
- }
170
- export async function resolveTagTargetCandidates(rootDir, explicitTarget, fs) {
171
- if (explicitTarget) {
172
- const resolvedExplicitTarget = path.resolve(explicitTarget);
173
- return [
174
- {
175
- candidatePath: resolvedExplicitTarget,
176
- rootRelativeCandidatePath: toRootRelativePath(rootDir, resolvedExplicitTarget),
177
- source: "explicit-target",
178
- packageDir: null,
179
- packageName: null,
180
- },
181
- ];
182
- }
183
- const workspaceDiscovery = await discoverWorkspacePackageDirs(rootDir, fs);
184
- if (workspaceDiscovery.packageDirs.length === 0) {
185
- if (workspaceDiscovery.hasWorkspaceFile) {
186
- return [];
187
- }
188
- const repoSourceDir = path.join(rootDir, "src");
189
- return [
190
- {
191
- candidatePath: repoSourceDir,
192
- rootRelativeCandidatePath: toRootRelativePath(rootDir, repoSourceDir),
193
- source: "repo-src-fallback",
194
- packageDir: null,
195
- packageName: null,
196
- },
197
- ];
198
- }
199
- return workspaceDiscovery.packageDirs.map((packageDir) => toPackageTargetCandidate(rootDir, packageDir, fs));
200
- }
@@ -1,3 +0,0 @@
1
- import type { TagTargetResolverPort } from "#lib/tag/application/ports/target-resolver.port";
2
- export declare const tagTargetResolverAdapter: TagTargetResolverPort;
3
- //# sourceMappingURL=tag-target-resolver.adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag-target-resolver.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/tag/infra/tag-target-resolver.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAG7F,eAAO,MAAM,wBAAwB,EAAE,qBAEtC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { resolveTagTargetCandidates } from "#lib/tag/infra/tag-target-candidates.adapter";
2
- export const tagTargetResolverAdapter = {
3
- resolveTagTargetCandidates,
4
- };
@@ -1,3 +0,0 @@
1
- import type { TypeScriptTreeWalkPort } from "#lib/tag/application/ports/typescript-tree-walk.port";
2
- export declare const tagTypeScriptTreeWalkAdapter: TypeScriptTreeWalkPort;
3
- //# sourceMappingURL=typescript-tree-walk.adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-tree-walk.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/tag/infra/typescript-tree-walk.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAEnG,eAAO,MAAM,4BAA4B,EAAE,sBAE1C,CAAC"}
@@ -1,4 +0,0 @@
1
- import { walkTsxFiles } from "#lib/shared/source-code/infra/tsx-file-walk.adapter";
2
- export const tagTypeScriptTreeWalkAdapter = {
3
- walkTsxFiles,
4
- };
@@ -1,8 +0,0 @@
1
- export declare const TAG_COLORS: {
2
- readonly RESET: "\u001B[0m";
3
- readonly RED: "\u001B[31m";
4
- readonly GREEN: "\u001B[32m";
5
- readonly YELLOW: "\u001B[33m";
6
- };
7
- export declare function withTagColor(line: string, colorCode: string): string;
8
- //# sourceMappingURL=colors.presenter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"colors.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/tag/presentation/colors.presenter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;aACrB,KAAK,EAAE,WAAS;aAChB,GAAG,EAAE,YAAU;aACf,KAAK,EAAE,YAAU;aACjB,MAAM,EAAE,YAAU;CACV,CAAC;AAEX,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE"}
@@ -1,9 +0,0 @@
1
- export const TAG_COLORS = {
2
- RESET: "\x1b[0m",
3
- RED: "\x1b[31m",
4
- GREEN: "\x1b[32m",
5
- YELLOW: "\x1b[33m",
6
- };
7
- export function withTagColor(line, colorCode) {
8
- return `${colorCode}${line}${TAG_COLORS.RESET}`;
9
- }
@@ -1,8 +0,0 @@
1
- import type { CliFs } from "#lib/core/application/ports/cli-io.port";
2
- export type ResolveTagCliTargetPathInput = {
3
- readonly fs: CliFs;
4
- readonly currentWorkingDirectory: string;
5
- readonly rawTarget: string | undefined;
6
- };
7
- export declare function resolveTagCliTargetPath(input: ResolveTagCliTargetPathInput): string | undefined;
8
- //# sourceMappingURL=resolve-tag-cli-target.presenter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-tag-cli-target.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/tag/presentation/resolve-tag-cli-target.presenter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yCAAyC,CAAC;AAErE,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,GAAG,SAAS,CAQ/F"}
@@ -1,10 +0,0 @@
1
- import path from "node:path";
2
- export function resolveTagCliTargetPath(input) {
3
- if (input.rawTarget === undefined) {
4
- return undefined;
5
- }
6
- const candidate = path.isAbsolute(input.rawTarget)
7
- ? path.resolve(input.rawTarget)
8
- : path.resolve(input.currentWorkingDirectory, input.rawTarget);
9
- return input.fs.canonicalPathSync(candidate);
10
- }
@@ -1,8 +0,0 @@
1
- import type { CliLogger } from "#lib/core/application/ports/cli-io.port";
2
- export type ResolveTagWorkspaceRootPathInput = {
3
- readonly resolveStrictRepoRoot: () => string;
4
- readonly logger: CliLogger;
5
- readonly currentWorkingDirectory: string;
6
- };
7
- export declare function resolveTagWorkspaceRootPath(input: ResolveTagWorkspaceRootPathInput): string;
8
- //# sourceMappingURL=resolve-tag-workspace-root.presenter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-tag-workspace-root.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/tag/presentation/resolve-tag-workspace-root.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,MAAM,MAAM,gCAAgC,GAAG;IAC7C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,MAAM,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gCAAgC,GAAG,MAAM,CAS3F"}
@@ -1,10 +0,0 @@
1
- import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message.util";
2
- export function resolveTagWorkspaceRootPath(input) {
3
- try {
4
- return input.resolveStrictRepoRoot();
5
- }
6
- catch (caughtRepoRootError) {
7
- input.logger.out(`[tag] workspace root auto-detection failed (${messageFromCaughtUnknown(caughtRepoRootError)}), using cwd=${input.currentWorkingDirectory}`);
8
- return input.currentWorkingDirectory;
9
- }
10
- }
@@ -1,15 +0,0 @@
1
- import type { CodefastConfig } from "#lib/config/domain/schema.domain";
2
- import type { AppError } from "#lib/core/domain/errors.domain";
3
- import { type Result } from "#lib/core/domain/result.model";
4
- import type { CliContainer } from "#lib/core/infra/container.adapter";
5
- export type TagCommandPrelude = {
6
- readonly rootDir: string;
7
- readonly config: CodefastConfig;
8
- readonly resolvedTargetPath: string | undefined;
9
- };
10
- export declare function prepareTagSync(cli: CliContainer, args: {
11
- readonly currentWorkingDirectory: string;
12
- readonly rawTarget: string | undefined;
13
- readonly globalCliRaw: unknown;
14
- }): Promise<Result<TagCommandPrelude, AppError>>;
15
- //# sourceMappingURL=tag-prelude.presenter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag-prelude.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/tag/presentation/tag-prelude.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAOtE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF,wBAAsB,cAAc,CAClC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IACJ,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,GACA,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAwB9C"}
@@ -1,31 +0,0 @@
1
- import { ok } from "#lib/core/domain/result.model";
2
- import { tryLoadCodefastConfig } from "#lib/core/presentation/load-codefast-config.presenter";
3
- import { parseGlobalCliOptions } from "#lib/core/presentation/global-cli-options.presenter";
4
- import { findRepoRoot } from "#lib/infra/workspace/repo-root.adapter";
5
- import { resolveTagCliTargetPath } from "#lib/tag/presentation/resolve-tag-cli-target.presenter";
6
- import { resolveTagWorkspaceRootPath } from "#lib/tag/presentation/resolve-tag-workspace-root.presenter";
7
- export async function prepareTagSync(cli, args) {
8
- const globalsOutcome = parseGlobalCliOptions(args.globalCliRaw);
9
- if (!globalsOutcome.ok) {
10
- return globalsOutcome;
11
- }
12
- const rootDir = resolveTagWorkspaceRootPath({
13
- resolveStrictRepoRoot: () => findRepoRoot(cli.fs),
14
- logger: cli.logger,
15
- currentWorkingDirectory: args.currentWorkingDirectory,
16
- });
17
- const loadedOutcome = await tryLoadCodefastConfig(cli, rootDir);
18
- if (!loadedOutcome.ok) {
19
- return loadedOutcome;
20
- }
21
- const resolvedTargetPath = resolveTagCliTargetPath({
22
- fs: cli.fs,
23
- currentWorkingDirectory: args.currentWorkingDirectory,
24
- rawTarget: args.rawTarget,
25
- });
26
- return ok({
27
- rootDir,
28
- config: loadedOutcome.value.config,
29
- resolvedTargetPath,
30
- });
31
- }
@@ -1,20 +0,0 @@
1
- import type { CliLogger } from "#lib/core/application/ports/cli-io.port";
2
- import type { TagProgressListener, TagResolvedTarget, TagSyncResult, TagTargetExecutionResult } from "#lib/tag/domain/types.domain";
3
- export type TagProgressEvent = {
4
- type: "target-started";
5
- target: TagResolvedTarget;
6
- } | {
7
- type: "target-completed";
8
- target: TagResolvedTarget;
9
- result: TagTargetExecutionResult;
10
- };
11
- export declare function formatProgress(event: TagProgressEvent): string;
12
- export declare function formatTargetTable(targets: TagResolvedTarget[], rootDir: string): string;
13
- export declare function formatWarningsAndErrors(result: TagSyncResult): string | null;
14
- export declare function formatSummary(result: TagSyncResult): string;
15
- /**
16
- * Prints tag sync output and returns a process exit code (0 success, 1 when empty targets or hook/run errors).
17
- */
18
- export declare function presentTagSyncCliResult(logger: CliLogger, tagResult: TagSyncResult, rootDir: string): number;
19
- export declare function createTagProgressListener(onProgressLine: (line: string) => void): TagProgressListener;
20
- //# sourceMappingURL=tag-sync.presenter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag-sync.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/tag/presentation/tag-sync.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAGtC,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAmB9F,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAM9D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyBvF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAU5E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAqB3D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,GACd,MAAM,CAiBR;AAED,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GACrC,mBAAmB,CASrB"}
@@ -1,92 +0,0 @@
1
- import { TAG_COLORS, withTagColor } from "#lib/tag/presentation/colors.presenter";
2
- function targetDisplayName(target) {
3
- return target.packageName ?? target.rootRelativeTargetPath;
4
- }
5
- function warningsAndErrorsFromResult(result) {
6
- const entries = [];
7
- for (const targetResult of result.targetResults) {
8
- if (targetResult.runError) {
9
- entries.push(targetResult.runError);
10
- }
11
- }
12
- if (result.hookError) {
13
- entries.push(result.hookError);
14
- }
15
- return entries;
16
- }
17
- export function formatProgress(event) {
18
- if (event.type === "target-started") {
19
- return `[tag] Processing ${targetDisplayName(event.target)}...`;
20
- }
21
- const changedFiles = event.result.result?.filesChanged ?? 0;
22
- return `[tag] Done ${targetDisplayName(event.target)} (${changedFiles} changes)`;
23
- }
24
- export function formatTargetTable(targets, rootDir) {
25
- const packageColumnWidth = Math.max("package".length, ...targets.map((target) => (target.packageName ?? "-").length));
26
- const pathColumnWidth = Math.max("path".length, ...targets.map((target) => target.rootRelativeTargetPath.length));
27
- const lines = [];
28
- lines.push(`[tag] Root: ${rootDir}`);
29
- lines.push(`[tag] Resolved targets: ${targets.length}`);
30
- lines.push("[tag] Targets:");
31
- lines.push(` ${"package".padEnd(packageColumnWidth)} ${"path".padEnd(pathColumnWidth)} source`);
32
- lines.push(` ${"-".repeat(packageColumnWidth)} ${"-".repeat(pathColumnWidth)} ${"-".repeat("source".length)}`);
33
- for (const target of targets) {
34
- lines.push(` ${(target.packageName ?? "-").padEnd(packageColumnWidth)} ${target.rootRelativeTargetPath.padEnd(pathColumnWidth)} ${target.source}`);
35
- }
36
- return lines.join("\n");
37
- }
38
- export function formatWarningsAndErrors(result) {
39
- const entries = warningsAndErrorsFromResult(result);
40
- if (entries.length === 0) {
41
- return null;
42
- }
43
- const lines = [withTagColor("⚠️ Warnings & Errors", TAG_COLORS.YELLOW)];
44
- for (const entry of entries) {
45
- lines.push(withTagColor(`- ${entry}`, TAG_COLORS.RED));
46
- }
47
- return lines.join("\n");
48
- }
49
- export function formatSummary(result) {
50
- const isDryRun = result.mode === "dry-run";
51
- const summaryPrefix = isDryRun ? "[tag:dry-run]" : "[tag]";
52
- const versionSuffix = result.versionSummary === "mixed" && result.distinctVersions.length > 0
53
- ? ` [${result.distinctVersions.join(", ")}]`
54
- : "";
55
- const hasError = result.targetResults.some((targetResult) => targetResult.runError !== null) ||
56
- result.hookError !== null;
57
- const summaryColor = hasError ? TAG_COLORS.RED : isDryRun ? TAG_COLORS.YELLOW : TAG_COLORS.GREEN;
58
- const lines = [
59
- withTagColor(`${summaryPrefix} version=${result.versionSummary}${versionSuffix} files=${result.filesChanged}/${result.filesScanned} declarations=${result.taggedDeclarations}`, summaryColor),
60
- ];
61
- if (result.skippedPackages.length > 0) {
62
- lines.push(`[tag] Skipped: ${result.skippedPackages.length} package(s)`);
63
- }
64
- return lines.join("\n");
65
- }
66
- /**
67
- * Prints tag sync output and returns a process exit code (0 success, 1 when empty targets or hook/run errors).
68
- */
69
- export function presentTagSyncCliResult(logger, tagResult, rootDir) {
70
- logger.out(formatTargetTable(tagResult.selectedTargets, rootDir));
71
- if (tagResult.selectedTargets.length === 0) {
72
- logger.err("No packages found in workspace. Check your pnpm-workspace.yaml or provide an explicit target path.");
73
- return 1;
74
- }
75
- const warningsAndErrorsSection = formatWarningsAndErrors(tagResult);
76
- if (warningsAndErrorsSection) {
77
- logger.err(warningsAndErrorsSection);
78
- }
79
- logger.out(formatSummary(tagResult));
80
- const hasRunErrors = tagResult.targetResults.some((targetResult) => targetResult.runError !== null);
81
- return hasRunErrors || tagResult.hookError ? 1 : 0;
82
- }
83
- export function createTagProgressListener(onProgressLine) {
84
- return {
85
- onTargetStarted: (target) => {
86
- onProgressLine(formatProgress({ type: "target-started", target }));
87
- },
88
- onTargetCompleted: (target, result) => {
89
- onProgressLine(formatProgress({ type: "target-completed", target, result }));
90
- },
91
- };
92
- }
package/dist/program.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function createProgram(): Command;
3
- export declare function runCli(argv: string[]): Promise<number>;
4
- //# sourceMappingURL=program.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,aAAa,IAAI,OAAO,CAevC;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAK5D"}
package/dist/program.js DELETED
@@ -1,40 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- import path from "node:path";
3
- import process from "node:process";
4
- import { fileURLToPath } from "node:url";
5
- import { Command } from "commander";
6
- import { registerArrangeCommand } from "#commands/arrange";
7
- import { registerMirrorCommand } from "#commands/mirror";
8
- import { registerTagCommand } from "#commands/tag";
9
- function readVersion() {
10
- try {
11
- const dir = path.dirname(fileURLToPath(import.meta.url));
12
- const pkgPath = path.join(dir, "..", "package.json");
13
- const raw = readFileSync(pkgPath, "utf-8");
14
- const pkgVersion = JSON.parse(raw).version;
15
- return typeof pkgVersion === "string" && pkgVersion.length > 0 ? pkgVersion : "unknown";
16
- }
17
- catch {
18
- return "unknown";
19
- }
20
- }
21
- export function createProgram() {
22
- const program = new Command();
23
- program
24
- .name("codefast")
25
- .description("Codefast monorepo developer CLI")
26
- .version(readVersion())
27
- .option("--no-color", "Disable ANSI color output")
28
- .configureHelp({ sortSubcommands: true })
29
- .showHelpAfterError("(use --help for usage)");
30
- registerMirrorCommand(program);
31
- registerArrangeCommand(program);
32
- registerTagCommand(program);
33
- return program;
34
- }
35
- export async function runCli(argv) {
36
- const program = createProgram();
37
- await program.parseAsync(argv, { from: "node" });
38
- const code = process.exitCode ?? 0;
39
- return typeof code === "number" ? code : Number(code) || 0;
40
- }