@codefast/cli 0.3.13-canary.2 → 0.3.13-canary.3

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 (342) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/arrange.d.ts.map +1 -1
  3. package/dist/commands/arrange.js +42 -63
  4. package/dist/commands/mirror.d.ts +0 -1
  5. package/dist/commands/mirror.d.ts.map +1 -1
  6. package/dist/commands/mirror.js +13 -52
  7. package/dist/commands/tag.d.ts.map +1 -1
  8. package/dist/commands/tag.js +16 -13
  9. package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts +8 -0
  10. package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts.map +1 -0
  11. package/dist/lib/arrange/application/requests/suggest-groups.request.js +8 -0
  12. package/dist/lib/arrange/application/{analyze.d.ts → use-cases/analyze-directory.use-case.d.ts} +4 -4
  13. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts.map +1 -0
  14. package/dist/lib/arrange/application/{analyze.js → use-cases/analyze-directory.use-case.js} +3 -3
  15. package/dist/lib/arrange/application/{group-file-preview.d.ts → use-cases/group-file-preview.use-case.d.ts} +2 -2
  16. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts.map +1 -0
  17. package/dist/lib/arrange/application/{group-file-preview.js → use-cases/group-file-preview.use-case.js} +1 -1
  18. package/dist/lib/arrange/application/{group-file.d.ts → use-cases/group-file.use-case.d.ts} +2 -2
  19. package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts.map +1 -0
  20. package/dist/lib/arrange/application/{group-file.js → use-cases/group-file.use-case.js} +2 -2
  21. package/dist/lib/arrange/application/{run-target.d.ts → use-cases/run-arrange-sync.use-case.d.ts} +4 -4
  22. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts.map +1 -0
  23. package/dist/lib/arrange/application/{run-target.js → use-cases/run-arrange-sync.use-case.js} +4 -4
  24. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts +7 -0
  25. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts.map +1 -0
  26. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.js +10 -0
  27. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts +1 -1
  28. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts.map +1 -1
  29. package/dist/lib/arrange/domain/arrange-analyze.service.js +6 -6
  30. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts +1 -1
  31. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts.map +1 -1
  32. package/dist/lib/arrange/domain/arrange-grouping.service.js +3 -3
  33. package/dist/lib/arrange/domain/ast/{ast-helpers.d.ts → ast-helpers.helper.d.ts} +2 -2
  34. package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts.map +1 -0
  35. package/dist/lib/arrange/domain/ast/{ast-helpers.js → ast-helpers.helper.js} +2 -2
  36. package/dist/lib/arrange/domain/ast/{collectors-cn.d.ts → collectors-cn.collector.d.ts} +2 -2
  37. package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts.map +1 -0
  38. package/dist/lib/arrange/domain/ast/{collectors-cn.js → collectors-cn.collector.js} +1 -1
  39. package/dist/lib/arrange/domain/ast/{collectors-jsx.d.ts → collectors-jsx.collector.d.ts} +2 -2
  40. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts.map +1 -0
  41. package/dist/lib/arrange/domain/ast/{collectors-tv.d.ts → collectors-tv.collector.d.ts} +2 -2
  42. package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts.map +1 -0
  43. package/dist/lib/arrange/domain/ast/{collectors-tv.js → collectors-tv.collector.js} +4 -4
  44. package/dist/lib/arrange/domain/ast/{targets.d.ts → targets.model.d.ts} +2 -2
  45. package/dist/lib/arrange/domain/ast/targets.model.d.ts.map +1 -0
  46. package/dist/lib/arrange/domain/ast/{targets.js → targets.model.js} +8 -8
  47. package/dist/lib/arrange/domain/{constants.d.ts → constants.domain.d.ts} +7 -5
  48. package/dist/lib/arrange/domain/constants.domain.d.ts.map +1 -0
  49. package/dist/lib/arrange/domain/{constants.js → constants.domain.js} +5 -3
  50. package/dist/lib/arrange/domain/{errors.d.ts → errors.domain.d.ts} +1 -1
  51. package/dist/lib/arrange/domain/errors.domain.d.ts.map +1 -0
  52. package/dist/lib/arrange/domain/{grouping.d.ts → grouping.domain.d.ts} +1 -1
  53. package/dist/lib/arrange/domain/grouping.domain.d.ts.map +1 -0
  54. package/dist/lib/arrange/domain/{grouping.js → grouping.domain.js} +83 -19
  55. package/dist/lib/arrange/domain/{imports.d.ts → imports.domain.d.ts} +1 -1
  56. package/dist/lib/arrange/domain/imports.domain.d.ts.map +1 -0
  57. package/dist/lib/arrange/domain/{source-text-formatters.d.ts → source-text-formatters.formatter.d.ts} +1 -1
  58. package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts.map +1 -0
  59. package/dist/lib/arrange/domain/{source-text-formatters.js → source-text-formatters.formatter.js} +1 -1
  60. package/dist/lib/arrange/domain/{tokenizer.d.ts → tokenizer.util.d.ts} +2 -2
  61. package/dist/lib/arrange/domain/tokenizer.util.d.ts.map +1 -0
  62. package/dist/lib/arrange/domain/{tokenizer.js → tokenizer.util.js} +4 -1
  63. package/dist/lib/arrange/domain/{types.d.ts → types.domain.d.ts} +8 -5
  64. package/dist/lib/arrange/domain/types.domain.d.ts.map +1 -0
  65. package/dist/lib/arrange/domain/types.domain.js +10 -0
  66. package/dist/lib/arrange/index.d.ts +18 -18
  67. package/dist/lib/arrange/index.d.ts.map +1 -1
  68. package/dist/lib/arrange/index.js +16 -16
  69. package/dist/lib/arrange/infra/{arrange-sync-cli-options.d.ts → arrange-sync-cli-options.adapter.d.ts} +3 -3
  70. package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts.map +1 -0
  71. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts +1 -1
  72. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts.map +1 -1
  73. package/dist/lib/arrange/infra/domain-source-parser.adapter.js +2 -2
  74. package/dist/lib/arrange/infra/{ensure-cn-import.d.ts → ensure-cn-import.adapter.d.ts} +1 -1
  75. package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts.map +1 -0
  76. package/dist/lib/arrange/infra/{ensure-cn-import.js → ensure-cn-import.adapter.js} +2 -2
  77. package/dist/lib/arrange/infra/file-walker.adapter.d.ts +1 -1
  78. package/dist/lib/arrange/infra/file-walker.adapter.d.ts.map +1 -1
  79. package/dist/lib/arrange/infra/file-walker.adapter.js +2 -2
  80. package/dist/lib/arrange/infra/{merge-cn-literal-pool-for-test.d.ts → merge-cn-literal-pool-for-test.test-helper.d.ts} +1 -1
  81. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts.map +1 -0
  82. package/dist/lib/arrange/infra/{merge-cn-literal-pool-for-test.js → merge-cn-literal-pool-for-test.test-helper.js} +2 -2
  83. package/dist/lib/arrange/infra/{ts-ast-translator.d.ts → ts-ast-translator.adapter.d.ts} +1 -1
  84. package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts.map +1 -0
  85. package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts +14 -0
  86. package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts.map +1 -0
  87. package/dist/lib/arrange/presentation/arrange-prelude.presenter.js +24 -0
  88. package/dist/lib/arrange/presentation/{formatters.d.ts → formatters.presenter.d.ts} +3 -3
  89. package/dist/lib/arrange/presentation/formatters.presenter.d.ts.map +1 -0
  90. package/dist/lib/arrange/presentation/{formatters.js → formatters.presenter.js} +2 -2
  91. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts +4 -0
  92. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts.map +1 -0
  93. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.js +4 -0
  94. package/dist/lib/arrange/presentation/report.presenter.d.ts +4 -0
  95. package/dist/lib/arrange/presentation/report.presenter.d.ts.map +1 -0
  96. package/dist/lib/arrange/presentation/{report.js → report.presenter.js} +1 -1
  97. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts +2 -0
  98. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts.map +1 -0
  99. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.js +7 -0
  100. package/dist/lib/config/domain/{schema.d.ts → schema.domain.d.ts} +1 -1
  101. package/dist/lib/config/domain/schema.domain.d.ts.map +1 -0
  102. package/dist/lib/config/index.d.ts +3 -3
  103. package/dist/lib/config/index.d.ts.map +1 -1
  104. package/dist/lib/config/index.js +2 -2
  105. package/dist/lib/config/infra/{loader.d.ts → loader.adapter.d.ts} +3 -3
  106. package/dist/lib/config/infra/loader.adapter.d.ts.map +1 -0
  107. package/dist/lib/config/infra/{loader.js → loader.adapter.js} +1 -1
  108. package/dist/lib/core/application/{architecture-boundaries.d.ts → architecture-boundaries.policy.d.ts} +1 -1
  109. package/dist/lib/core/application/architecture-boundaries.policy.d.ts.map +1 -0
  110. package/dist/lib/core/application/{architecture-boundaries.js → architecture-boundaries.policy.js} +109 -2
  111. package/dist/lib/core/application/ports/cli-io.port.d.ts +4 -0
  112. package/dist/lib/core/application/ports/cli-io.port.d.ts.map +1 -1
  113. package/dist/lib/core/application/{schema-parse.d.ts → schema-parse.util.d.ts} +3 -3
  114. package/dist/lib/core/application/schema-parse.util.d.ts.map +1 -0
  115. package/dist/lib/core/application/{schema-parse.js → schema-parse.util.js} +2 -2
  116. package/dist/lib/core/application/utils/{caught-unknown-message.d.ts → caught-unknown-message.util.d.ts} +1 -1
  117. package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts.map +1 -0
  118. package/dist/lib/core/application/utils/{verbose-diagnostics.d.ts → verbose-diagnostics.util.d.ts} +1 -1
  119. package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts.map +1 -0
  120. package/dist/lib/core/domain/{errors.d.ts → errors.domain.d.ts} +1 -1
  121. package/dist/lib/core/domain/errors.domain.d.ts.map +1 -0
  122. package/dist/lib/core/domain/{result.d.ts → result.model.d.ts} +3 -1
  123. package/dist/lib/core/domain/result.model.d.ts.map +1 -0
  124. package/dist/lib/core/domain/{result.js → result.model.js} +6 -0
  125. package/dist/lib/core/infra/container.adapter.d.ts +58 -0
  126. package/dist/lib/core/infra/container.adapter.d.ts.map +1 -0
  127. package/dist/lib/core/infra/{container.js → container.adapter.js} +22 -7
  128. package/dist/lib/core/infra/{logging-decorator.d.ts → logging-decorator.adapter.d.ts} +1 -1
  129. package/dist/lib/core/infra/logging-decorator.adapter.d.ts.map +1 -0
  130. package/dist/lib/core/presentation/{cli-executor.d.ts → cli-executor.presenter.d.ts} +3 -3
  131. package/dist/lib/core/presentation/cli-executor.presenter.d.ts.map +1 -0
  132. package/dist/lib/core/presentation/{cli-executor.js → cli-executor.presenter.js} +2 -2
  133. package/dist/lib/core/presentation/{format-app-error.d.ts → format-app-error.presenter.d.ts} +2 -2
  134. package/dist/lib/core/presentation/format-app-error.presenter.d.ts.map +1 -0
  135. package/dist/lib/core/presentation/global-cli-options.presenter.d.ts +9 -0
  136. package/dist/lib/core/presentation/global-cli-options.presenter.d.ts.map +1 -0
  137. package/dist/lib/core/presentation/global-cli-options.presenter.js +8 -0
  138. package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts +8 -0
  139. package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts.map +1 -0
  140. package/dist/lib/core/presentation/load-codefast-config.presenter.js +15 -0
  141. package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts +5 -0
  142. package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts.map +1 -0
  143. package/dist/lib/core/presentation/parse-cli-schema.presenter.js +4 -0
  144. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts +6 -0
  145. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts.map +1 -0
  146. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.js +17 -0
  147. package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts +5 -0
  148. package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts.map +1 -0
  149. package/dist/lib/core/presentation/workspace-root-strict.presenter.js +12 -0
  150. package/dist/lib/infra/{config-reporter.d.ts → config-reporter.adapter.d.ts} +2 -2
  151. package/dist/lib/infra/config-reporter.adapter.d.ts.map +1 -0
  152. package/dist/lib/infra/{fs-contract.d.ts → fs-contract.port.d.ts} +1 -1
  153. package/dist/lib/infra/fs-contract.port.d.ts.map +1 -0
  154. package/dist/lib/infra/{node-io.d.ts → node-io.adapter.d.ts} +1 -1
  155. package/dist/lib/infra/node-io.adapter.d.ts.map +1 -0
  156. package/dist/lib/infra/{node-io.js → node-io.adapter.js} +10 -0
  157. package/dist/lib/infra/workspace/{repo-root.d.ts → repo-root.adapter.d.ts} +2 -2
  158. package/dist/lib/infra/workspace/repo-root.adapter.d.ts.map +1 -0
  159. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts +2 -2
  160. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts.map +1 -1
  161. package/dist/lib/mirror/application/ports/package-repository.port.d.ts +1 -1
  162. package/dist/lib/mirror/application/ports/package-repository.port.d.ts.map +1 -1
  163. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts +1 -1
  164. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts.map +1 -1
  165. package/dist/lib/mirror/application/{engine.d.ts → use-cases/generate-mirror-exports.use-case.d.ts} +3 -3
  166. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts.map +1 -0
  167. package/dist/lib/mirror/application/{engine.js → use-cases/generate-mirror-exports.use-case.js} +1 -1
  168. package/dist/lib/mirror/application/{sync.d.ts → use-cases/run-mirror-sync.use-case.d.ts} +3 -3
  169. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts.map +1 -0
  170. package/dist/lib/mirror/application/{sync.js → use-cases/run-mirror-sync.use-case.js} +5 -5
  171. package/dist/lib/mirror/domain/{constants.d.ts → constants.domain.d.ts} +1 -1
  172. package/dist/lib/mirror/domain/constants.domain.d.ts.map +1 -0
  173. package/dist/lib/mirror/domain/{errors.d.ts → errors.domain.d.ts} +1 -1
  174. package/dist/lib/mirror/domain/errors.domain.d.ts.map +1 -0
  175. package/dist/lib/mirror/domain/{types.d.ts → types.domain.d.ts} +1 -1
  176. package/dist/lib/mirror/domain/types.domain.d.ts.map +1 -0
  177. package/dist/lib/mirror/index.d.ts +4 -4
  178. package/dist/lib/mirror/index.d.ts.map +1 -1
  179. package/dist/lib/mirror/index.js +1 -1
  180. package/dist/lib/mirror/infra/{dirent-list.d.ts → dirent-list.adapter.d.ts} +1 -1
  181. package/dist/lib/mirror/infra/dirent-list.adapter.d.ts.map +1 -0
  182. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts +1 -1
  183. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts.map +1 -1
  184. package/dist/lib/mirror/infra/file-system-service.adapter.js +2 -2
  185. package/dist/lib/mirror/infra/{mirror-sync-cli-options.d.ts → mirror-sync-cli-options.adapter.d.ts} +3 -3
  186. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts.map +1 -0
  187. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.js +1 -1
  188. package/dist/lib/mirror/infra/{package-filter.d.ts → package-filter.adapter.d.ts} +1 -1
  189. package/dist/lib/mirror/infra/package-filter.adapter.d.ts.map +1 -0
  190. package/dist/lib/mirror/infra/{package-filter.js → package-filter.adapter.js} +1 -1
  191. package/dist/lib/mirror/infra/package-repository.adapter.d.ts +2 -2
  192. package/dist/lib/mirror/infra/package-repository.adapter.d.ts.map +1 -1
  193. package/dist/lib/mirror/infra/package-repository.adapter.js +1 -1
  194. package/dist/lib/mirror/infra/{path-normalizer.d.ts → path-normalizer.adapter.d.ts} +1 -1
  195. package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts.map +1 -0
  196. package/dist/lib/mirror/infra/{update-pkg.d.ts → update-pkg.adapter.d.ts} +3 -3
  197. package/dist/lib/mirror/infra/update-pkg.adapter.d.ts.map +1 -0
  198. package/dist/lib/mirror/infra/{update-pkg.js → update-pkg.adapter.js} +3 -3
  199. package/dist/lib/mirror/infra/{workspace-packages.d.ts → workspace-packages.adapter.d.ts} +3 -3
  200. package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts.map +1 -0
  201. package/dist/lib/mirror/infra/{workspace-packages.js → workspace-packages.adapter.js} +3 -3
  202. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts +2 -2
  203. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts.map +1 -1
  204. package/dist/lib/mirror/infra/workspace-service.adapter.js +2 -2
  205. package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts +17 -0
  206. package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts.map +1 -0
  207. package/dist/lib/mirror/presentation/mirror-prelude.presenter.js +35 -0
  208. package/dist/lib/mirror/presentation/{reporter.d.ts → reporter.presenter.d.ts} +2 -2
  209. package/dist/lib/mirror/presentation/reporter.presenter.d.ts.map +1 -0
  210. package/dist/lib/mirror/presentation/{reporter.js → reporter.presenter.js} +2 -2
  211. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts +11 -0
  212. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts.map +1 -0
  213. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.js +27 -0
  214. package/dist/lib/shared/source-code/domain/{text-edit.d.ts → text-edit.model.d.ts} +1 -1
  215. package/dist/lib/shared/source-code/domain/text-edit.model.d.ts.map +1 -0
  216. package/dist/lib/shared/source-code/infra/{tsx-file-walk.d.ts → tsx-file-walk.adapter.d.ts} +1 -1
  217. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts.map +1 -0
  218. package/dist/lib/tag/application/ports/target-resolver.port.d.ts +1 -1
  219. package/dist/lib/tag/application/ports/target-resolver.port.d.ts.map +1 -1
  220. package/dist/lib/tag/application/{engine.d.ts → use-cases/run-tag-sync.use-case.d.ts} +4 -4
  221. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts.map +1 -0
  222. package/dist/lib/tag/application/{engine.js → use-cases/run-tag-sync.use-case.js} +4 -4
  223. package/dist/lib/tag/domain/{types.d.ts → types.domain.d.ts} +1 -1
  224. package/dist/lib/tag/domain/types.domain.d.ts.map +1 -0
  225. package/dist/lib/tag/index.d.ts +8 -8
  226. package/dist/lib/tag/index.d.ts.map +1 -1
  227. package/dist/lib/tag/index.js +3 -3
  228. package/dist/lib/tag/infra/{tag-sync-cli-options.d.ts → tag-sync-cli-options.adapter.d.ts} +4 -4
  229. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts.map +1 -0
  230. package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts +4 -0
  231. package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts.map +1 -0
  232. package/dist/lib/tag/infra/{target-resolver.js → tag-target-candidates.adapter.js} +1 -1
  233. package/dist/lib/tag/infra/tag-target-resolver.adapter.js +1 -1
  234. package/dist/lib/tag/infra/typescript-tree-walk.adapter.js +1 -1
  235. package/dist/lib/tag/presentation/{colors.d.ts → colors.presenter.d.ts} +1 -1
  236. package/dist/lib/tag/presentation/colors.presenter.d.ts.map +1 -0
  237. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts +8 -0
  238. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts.map +1 -0
  239. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.js +10 -0
  240. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts +8 -0
  241. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts.map +1 -0
  242. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.js +10 -0
  243. package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts +15 -0
  244. package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts.map +1 -0
  245. package/dist/lib/tag/presentation/tag-prelude.presenter.js +31 -0
  246. package/dist/lib/tag/presentation/{tag-presenter.d.ts → tag-sync.presenter.d.ts} +2 -2
  247. package/dist/lib/tag/presentation/tag-sync.presenter.d.ts.map +1 -0
  248. package/dist/lib/tag/presentation/{tag-presenter.js → tag-sync.presenter.js} +1 -1
  249. package/package.json +3 -3
  250. package/dist/lib/arrange/application/analyze.d.ts.map +0 -1
  251. package/dist/lib/arrange/application/group-file-preview.d.ts.map +0 -1
  252. package/dist/lib/arrange/application/group-file.d.ts.map +0 -1
  253. package/dist/lib/arrange/application/run-target.d.ts.map +0 -1
  254. package/dist/lib/arrange/domain/ast/ast-helpers.d.ts.map +0 -1
  255. package/dist/lib/arrange/domain/ast/collectors-cn.d.ts.map +0 -1
  256. package/dist/lib/arrange/domain/ast/collectors-jsx.d.ts.map +0 -1
  257. package/dist/lib/arrange/domain/ast/collectors-tv.d.ts.map +0 -1
  258. package/dist/lib/arrange/domain/ast/targets.d.ts.map +0 -1
  259. package/dist/lib/arrange/domain/constants.d.ts.map +0 -1
  260. package/dist/lib/arrange/domain/errors.d.ts.map +0 -1
  261. package/dist/lib/arrange/domain/grouping.d.ts.map +0 -1
  262. package/dist/lib/arrange/domain/imports.d.ts.map +0 -1
  263. package/dist/lib/arrange/domain/source-text-formatters.d.ts.map +0 -1
  264. package/dist/lib/arrange/domain/tokenizer.d.ts.map +0 -1
  265. package/dist/lib/arrange/domain/types.d.ts.map +0 -1
  266. package/dist/lib/arrange/domain/types.js +0 -7
  267. package/dist/lib/arrange/infra/arrange-sync-cli-options.d.ts.map +0 -1
  268. package/dist/lib/arrange/infra/ensure-cn-import.d.ts.map +0 -1
  269. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.d.ts.map +0 -1
  270. package/dist/lib/arrange/infra/ts-ast-translator.d.ts.map +0 -1
  271. package/dist/lib/arrange/presentation/formatters.d.ts.map +0 -1
  272. package/dist/lib/arrange/presentation/report.d.ts +0 -4
  273. package/dist/lib/arrange/presentation/report.d.ts.map +0 -1
  274. package/dist/lib/config/domain/schema.d.ts.map +0 -1
  275. package/dist/lib/config/infra/loader.d.ts.map +0 -1
  276. package/dist/lib/core/application/architecture-boundaries.d.ts.map +0 -1
  277. package/dist/lib/core/application/schema-parse.d.ts.map +0 -1
  278. package/dist/lib/core/application/utils/caught-unknown-message.d.ts.map +0 -1
  279. package/dist/lib/core/application/utils/verbose-diagnostics.d.ts.map +0 -1
  280. package/dist/lib/core/domain/errors.d.ts.map +0 -1
  281. package/dist/lib/core/domain/result.d.ts.map +0 -1
  282. package/dist/lib/core/infra/container.d.ts +0 -34
  283. package/dist/lib/core/infra/container.d.ts.map +0 -1
  284. package/dist/lib/core/infra/logging-decorator.d.ts.map +0 -1
  285. package/dist/lib/core/presentation/cli-executor.d.ts.map +0 -1
  286. package/dist/lib/core/presentation/create-command-handler.d.ts +0 -20
  287. package/dist/lib/core/presentation/create-command-handler.d.ts.map +0 -1
  288. package/dist/lib/core/presentation/create-command-handler.js +0 -70
  289. package/dist/lib/core/presentation/format-app-error.d.ts.map +0 -1
  290. package/dist/lib/infra/caught-unknown-message.d.ts +0 -2
  291. package/dist/lib/infra/caught-unknown-message.d.ts.map +0 -1
  292. package/dist/lib/infra/caught-unknown-message.js +0 -1
  293. package/dist/lib/infra/config-reporter.d.ts.map +0 -1
  294. package/dist/lib/infra/fs-contract.d.ts.map +0 -1
  295. package/dist/lib/infra/node-io.d.ts.map +0 -1
  296. package/dist/lib/infra/workspace/repo-root.d.ts.map +0 -1
  297. package/dist/lib/mirror/application/engine.d.ts.map +0 -1
  298. package/dist/lib/mirror/application/sync.d.ts.map +0 -1
  299. package/dist/lib/mirror/domain/constants.d.ts.map +0 -1
  300. package/dist/lib/mirror/domain/errors.d.ts.map +0 -1
  301. package/dist/lib/mirror/domain/types.d.ts.map +0 -1
  302. package/dist/lib/mirror/infra/dirent-list.d.ts.map +0 -1
  303. package/dist/lib/mirror/infra/mirror-sync-cli-options.d.ts.map +0 -1
  304. package/dist/lib/mirror/infra/package-filter.d.ts.map +0 -1
  305. package/dist/lib/mirror/infra/path-normalizer.d.ts.map +0 -1
  306. package/dist/lib/mirror/infra/update-pkg.d.ts.map +0 -1
  307. package/dist/lib/mirror/infra/workspace-packages.d.ts.map +0 -1
  308. package/dist/lib/mirror/presentation/reporter.d.ts.map +0 -1
  309. package/dist/lib/shared/source-code/domain/text-edit.d.ts.map +0 -1
  310. package/dist/lib/shared/source-code/infra/tsx-file-walk.d.ts.map +0 -1
  311. package/dist/lib/tag/application/engine.d.ts.map +0 -1
  312. package/dist/lib/tag/domain/types.d.ts.map +0 -1
  313. package/dist/lib/tag/infra/tag-sync-cli-options.d.ts.map +0 -1
  314. package/dist/lib/tag/infra/target-resolver.d.ts +0 -4
  315. package/dist/lib/tag/infra/target-resolver.d.ts.map +0 -1
  316. package/dist/lib/tag/presentation/colors.d.ts.map +0 -1
  317. package/dist/lib/tag/presentation/tag-presenter.d.ts.map +0 -1
  318. /package/dist/lib/arrange/domain/ast/{collectors-jsx.js → collectors-jsx.collector.js} +0 -0
  319. /package/dist/lib/arrange/domain/{errors.js → errors.domain.js} +0 -0
  320. /package/dist/lib/arrange/domain/{imports.js → imports.domain.js} +0 -0
  321. /package/dist/lib/arrange/infra/{arrange-sync-cli-options.js → arrange-sync-cli-options.adapter.js} +0 -0
  322. /package/dist/lib/arrange/infra/{ts-ast-translator.js → ts-ast-translator.adapter.js} +0 -0
  323. /package/dist/lib/config/domain/{schema.js → schema.domain.js} +0 -0
  324. /package/dist/lib/core/application/utils/{caught-unknown-message.js → caught-unknown-message.util.js} +0 -0
  325. /package/dist/lib/core/application/utils/{verbose-diagnostics.js → verbose-diagnostics.util.js} +0 -0
  326. /package/dist/lib/core/domain/{errors.js → errors.domain.js} +0 -0
  327. /package/dist/lib/core/infra/{logging-decorator.js → logging-decorator.adapter.js} +0 -0
  328. /package/dist/lib/core/presentation/{format-app-error.js → format-app-error.presenter.js} +0 -0
  329. /package/dist/lib/infra/{config-reporter.js → config-reporter.adapter.js} +0 -0
  330. /package/dist/lib/infra/{fs-contract.js → fs-contract.port.js} +0 -0
  331. /package/dist/lib/infra/workspace/{repo-root.js → repo-root.adapter.js} +0 -0
  332. /package/dist/lib/mirror/domain/{constants.js → constants.domain.js} +0 -0
  333. /package/dist/lib/mirror/domain/{errors.js → errors.domain.js} +0 -0
  334. /package/dist/lib/mirror/domain/{types.js → types.domain.js} +0 -0
  335. /package/dist/lib/mirror/infra/{dirent-list.js → dirent-list.adapter.js} +0 -0
  336. /package/dist/lib/mirror/infra/{mirror-sync-cli-options.js → mirror-sync-cli-options.adapter.js} +0 -0
  337. /package/dist/lib/mirror/infra/{path-normalizer.js → path-normalizer.adapter.js} +0 -0
  338. /package/dist/lib/shared/source-code/domain/{text-edit.js → text-edit.model.js} +0 -0
  339. /package/dist/lib/shared/source-code/infra/{tsx-file-walk.js → tsx-file-walk.adapter.js} +0 -0
  340. /package/dist/lib/tag/domain/{types.js → types.domain.js} +0 -0
  341. /package/dist/lib/tag/infra/{tag-sync-cli-options.js → tag-sync-cli-options.adapter.js} +0 -0
  342. /package/dist/lib/tag/presentation/{colors.js → colors.presenter.js} +0 -0
package/README.md CHANGED
@@ -221,7 +221,7 @@ The `<version>` value is read from the nearest `package.json` found by walking u
221
221
 
222
222
  Adjacent buckets may be merged into one string literal when declared _compatible_ (e.g. `layout` + `sizing`). This keeps `cn()` calls readable without flattening unrelated concerns into a single undifferentiated blob.
223
223
 
224
- To change a placement, edit `classifyBareUtility` in `src/lib/arrange/tokenizer.ts` and add a corresponding `classifyToken` test in `src/lib/arrange.test.ts`.
224
+ To change a placement, edit `classifyBareUtility` in `src/lib/arrange/domain/tokenizer.util.ts` and add a corresponding `classifyToken` test in `src/lib/arrange/domain/tokenizer.util.test.ts`.
225
225
 
226
226
  ---
227
227
 
@@ -1 +1 @@
1
- {"version":3,"file":"arrange.d.ts","sourceRoot":"","sources":["../../src/commands/arrange.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkI7D"}
1
+ {"version":3,"file":"arrange.d.ts","sourceRoot":"","sources":["../../src/commands/arrange.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgH7D"}
@@ -1,20 +1,15 @@
1
- import path from "node:path";
2
1
  import process from "node:process";
3
2
  import { Option } from "commander";
4
3
  import { ArrangeAnalyzeDirectoryRequestSchema } from "#lib/arrange/application/requests/analyze-directory.request";
5
4
  import { ArrangeSyncRunRequestSchema } from "#lib/arrange/application/requests/arrange-sync.request";
6
- import { DEFAULT_ARRANGE_TARGET } from "#lib/arrange/domain/constants";
7
- import { suggestCnGroups, summarizeGroupBucketLabels } from "#lib/arrange/domain/grouping";
8
- import { formatArray, formatCnCall } from "#lib/arrange/domain/source-text-formatters";
9
- import { printAnalyzeReport } from "#lib/arrange/presentation/report";
10
- import { consumeCliAppError } from "#lib/core/presentation/cli-executor";
11
- import { assertPathExistsOrExit, createCliContext, parseWithCliSchema, resolveWorkspaceRoot, runAsyncExitCodeUseCaseAfterParse, runSyncUseCaseAfterParse, tryLoadCodefastConfig, } from "#lib/core/presentation/create-command-handler";
5
+ import { ArrangeSuggestGroupsRequestSchema } from "#lib/arrange/application/requests/suggest-groups.request";
6
+ import { createCliContainer } from "#lib/core/infra/container.adapter";
7
+ import { consumeCliAppError } from "#lib/core/presentation/cli-executor.presenter";
8
+ import { parseWithCliSchema } from "#lib/core/presentation/parse-cli-schema.presenter";
9
+ import { runAsyncExitCodeUseCaseAfterParse, runSyncUseCaseAfterParse, } from "#lib/core/presentation/run-cli-use-case-after-parse.presenter";
12
10
  function withClassNameOption() {
13
11
  return new Option("--with-classname, --with-class-name", "Append className as final cn() argument").default(false);
14
12
  }
15
- function defaultTargetPath() {
16
- return path.resolve(process.cwd(), DEFAULT_ARRANGE_TARGET);
17
- }
18
13
  export function registerArrangeCommand(program) {
19
14
  const arrange = program
20
15
  .command("arrange")
@@ -24,24 +19,19 @@ export function registerArrangeCommand(program) {
24
19
  .description("Report long strings, nested cn in tv(), and related findings")
25
20
  .argument("[target]", "Directory or file (default: packages/ui/src/components)")
26
21
  .action(async (target) => {
27
- const cli = createCliContext();
28
- const resolved = target ? path.resolve(target) : defaultTargetPath();
29
- if (!assertPathExistsOrExit(resolved, cli)) {
30
- return;
31
- }
32
- const rootOutcome = resolveWorkspaceRoot(cli);
33
- if (!consumeCliAppError(cli.logger, rootOutcome)) {
34
- return;
35
- }
36
- const rootDir = rootOutcome.value;
37
- const loadedOutcome = await tryLoadCodefastConfig(cli, rootDir);
38
- if (!consumeCliAppError(cli.logger, loadedOutcome)) {
22
+ const cli = createCliContainer();
23
+ const prelude = await cli.arrange.prepareTargetWorkspaceAndConfig({
24
+ currentWorkingDirectory: process.cwd(),
25
+ rawTarget: target,
26
+ });
27
+ if (!consumeCliAppError(cli.logger, prelude)) {
39
28
  return;
40
29
  }
30
+ const { resolvedTarget } = prelude.value;
41
31
  const parsed = parseWithCliSchema(ArrangeAnalyzeDirectoryRequestSchema, {
42
- analyzeRootPath: resolved,
32
+ analyzeRootPath: resolvedTarget,
43
33
  });
44
- runSyncUseCaseAfterParse(cli, parsed, (input) => cli.arrange.analyzeDirectory(input), (report) => printAnalyzeReport(resolved, report, cli.logger));
34
+ runSyncUseCaseAfterParse(cli, parsed, (input) => cli.arrange.analyzeDirectory(input), (report) => cli.arrange.presentAnalyzeReport(resolvedTarget, report));
45
35
  });
46
36
  arrange
47
37
  .command("preview")
@@ -50,27 +40,22 @@ export function registerArrangeCommand(program) {
50
40
  .addOption(withClassNameOption())
51
41
  .option("--cn-import <spec>", "Override module specifier when adding cn import")
52
42
  .action(async (target, opts) => {
53
- const cli = createCliContext();
54
- const resolved = target ? path.resolve(target) : defaultTargetPath();
55
- if (!assertPathExistsOrExit(resolved, cli)) {
56
- return;
57
- }
58
- const rootOutcome = resolveWorkspaceRoot(cli);
59
- if (!consumeCliAppError(cli.logger, rootOutcome)) {
60
- return;
61
- }
62
- const rootDir = rootOutcome.value;
63
- const loadedOutcome = await tryLoadCodefastConfig(cli, rootDir);
64
- if (!consumeCliAppError(cli.logger, loadedOutcome)) {
43
+ const cli = createCliContainer();
44
+ const prelude = await cli.arrange.prepareTargetWorkspaceAndConfig({
45
+ currentWorkingDirectory: process.cwd(),
46
+ rawTarget: target,
47
+ });
48
+ if (!consumeCliAppError(cli.logger, prelude)) {
65
49
  return;
66
50
  }
51
+ const { resolvedTarget, rootDir, config } = prelude.value;
67
52
  const parsed = parseWithCliSchema(ArrangeSyncRunRequestSchema, {
68
53
  rootDir,
69
- targetPath: resolved,
54
+ targetPath: resolvedTarget,
70
55
  write: false,
71
56
  withClassName: opts.withClassName,
72
57
  cnImport: opts.cnImport,
73
- config: loadedOutcome.value.config.arrange ?? {},
58
+ config: config.arrange ?? {},
74
59
  });
75
60
  await runAsyncExitCodeUseCaseAfterParse(cli, parsed, (input) => cli.arrange.runArrangeSync(input));
76
61
  });
@@ -81,27 +66,22 @@ export function registerArrangeCommand(program) {
81
66
  .addOption(withClassNameOption())
82
67
  .option("--cn-import <spec>", "Override module specifier when adding cn import")
83
68
  .action(async (target, opts) => {
84
- const cli = createCliContext();
85
- const resolved = target ? path.resolve(target) : defaultTargetPath();
86
- if (!assertPathExistsOrExit(resolved, cli)) {
87
- return;
88
- }
89
- const rootOutcome = resolveWorkspaceRoot(cli);
90
- if (!consumeCliAppError(cli.logger, rootOutcome)) {
91
- return;
92
- }
93
- const rootDir = rootOutcome.value;
94
- const loadedOutcome = await tryLoadCodefastConfig(cli, rootDir);
95
- if (!consumeCliAppError(cli.logger, loadedOutcome)) {
69
+ const cli = createCliContainer();
70
+ const prelude = await cli.arrange.prepareTargetWorkspaceAndConfig({
71
+ currentWorkingDirectory: process.cwd(),
72
+ rawTarget: target,
73
+ });
74
+ if (!consumeCliAppError(cli.logger, prelude)) {
96
75
  return;
97
76
  }
77
+ const { resolvedTarget, rootDir, config } = prelude.value;
98
78
  const parsed = parseWithCliSchema(ArrangeSyncRunRequestSchema, {
99
79
  rootDir,
100
- targetPath: resolved,
80
+ targetPath: resolvedTarget,
101
81
  write: true,
102
82
  withClassName: opts.withClassName,
103
83
  cnImport: opts.cnImport,
104
- config: loadedOutcome.value.config.arrange ?? {},
84
+ config: config.arrange ?? {},
105
85
  });
106
86
  await runAsyncExitCodeUseCaseAfterParse(cli, parsed, (input) => cli.arrange.runArrangeSync(input));
107
87
  });
@@ -112,18 +92,17 @@ export function registerArrangeCommand(program) {
112
92
  .option("--tv", "Emit tv()-style array instead of cn() call", false)
113
93
  .addOption(withClassNameOption())
114
94
  .action((tokens, opts) => {
115
- const cli = createCliContext();
116
- const inlineClasses = tokens.join(" ").trim();
117
- if (!inlineClasses) {
118
- cli.logger.err('Pass a class string. Example: codefast arrange group "flex gap-2 text-sm rounded-md"\n');
119
- process.exitCode = 1;
95
+ const cli = createCliContainer();
96
+ const parsed = parseWithCliSchema(ArrangeSuggestGroupsRequestSchema, {
97
+ inlineClasses: tokens.join(" ").trim(),
98
+ emitTvStyleArray: !!opts.tv,
99
+ trailingClassName: !!opts.withClassName,
100
+ });
101
+ if (!consumeCliAppError(cli.logger, parsed)) {
120
102
  return;
121
103
  }
122
- const groups = suggestCnGroups(inlineClasses);
123
- const result = opts.tv
124
- ? formatArray(groups)
125
- : formatCnCall(groups, { trailingClassName: !!opts.withClassName });
126
- cli.logger.out(result);
127
- cli.logger.out(`// Buckets: ${JSON.stringify(summarizeGroupBucketLabels(groups))}`);
104
+ const output = cli.arrange.suggestCnGroups(parsed.value);
105
+ cli.logger.out(output.primaryLine);
106
+ cli.logger.out(output.bucketsCommentLine);
128
107
  });
129
108
  }
@@ -1,4 +1,3 @@
1
1
  import { Command } from "commander";
2
- export declare function packageArgToRelative(rootDir: string, arg: string | undefined): string | undefined;
3
2
  export declare function registerMirrorCommand(program: Command): void;
4
3
  //# sourceMappingURL=mirror.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/commands/mirror.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAmBjG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4C5D"}
1
+ {"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/commands/mirror.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoC5D"}
@@ -1,39 +1,9 @@
1
- import { realpathSync } from "node:fs";
2
- import path from "node:path";
3
1
  import process from "node:process";
4
- import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message";
5
- import { consumeCliAppError } from "#lib/core/presentation/cli-executor";
6
- import { createCliContext, parseWithCliSchema, resolveWorkspaceRoot, runAsyncExitCodeUseCaseAfterParse, tryLoadCodefastConfig, } from "#lib/core/presentation/create-command-handler";
2
+ import { createCliContainer } from "#lib/core/infra/container.adapter";
3
+ import { consumeCliAppError } from "#lib/core/presentation/cli-executor.presenter";
4
+ import { parseWithCliSchema } from "#lib/core/presentation/parse-cli-schema.presenter";
5
+ import { runAsyncExitCodeUseCaseAfterParse } from "#lib/core/presentation/run-cli-use-case-after-parse.presenter";
7
6
  import { MirrorSyncRunRequestSchema } from "#lib/mirror/application/requests/mirror-sync.request";
8
- function tryRealpath(entryPath) {
9
- try {
10
- return realpathSync.native(entryPath);
11
- }
12
- catch {
13
- return path.resolve(entryPath);
14
- }
15
- }
16
- function normalizePath(relPath) {
17
- return relPath.split(path.sep).join("/").replace(/\\/g, "/");
18
- }
19
- export function packageArgToRelative(rootDir, arg) {
20
- if (!arg) {
21
- return undefined;
22
- }
23
- const rootReal = tryRealpath(path.resolve(rootDir));
24
- const cwdReal = tryRealpath(process.cwd());
25
- const resolved = path.isAbsolute(arg) ? path.resolve(arg) : path.resolve(cwdReal, arg);
26
- const targetReal = tryRealpath(resolved);
27
- const rel = path.relative(rootReal, targetReal);
28
- const normalized = normalizePath(rel);
29
- if (normalized.startsWith("..") ||
30
- path.isAbsolute(normalized) ||
31
- normalized === "" ||
32
- normalized === ".") {
33
- throw new Error(`Package path must be a subdirectory under monorepo root: ${rootDir}`);
34
- }
35
- return normalized;
36
- }
37
7
  export function registerMirrorCommand(program) {
38
8
  const mirror = program
39
9
  .command("mirror")
@@ -44,28 +14,19 @@ export function registerMirrorCommand(program) {
44
14
  .argument("[package]", "Optional package path relative to repo root (e.g. packages/ui)")
45
15
  .option("-v, --verbose", "Print extra diagnostics", false)
46
16
  .action(async function (pkg, options) {
47
- const globals = this.optsWithGlobals();
48
- const cli = createCliContext();
49
- const rootOutcome = resolveWorkspaceRoot(cli);
50
- if (!consumeCliAppError(cli.logger, rootOutcome)) {
51
- return;
52
- }
53
- const rootDir = rootOutcome.value;
54
- let packageFilter;
55
- try {
56
- packageFilter = packageArgToRelative(rootDir, pkg);
57
- }
58
- catch (caughtPathError) {
59
- this.error(messageFromCaughtUnknown(caughtPathError));
60
- return;
61
- }
62
- const loadedOutcome = await tryLoadCodefastConfig(cli, rootDir);
63
- if (!consumeCliAppError(cli.logger, loadedOutcome)) {
17
+ const cli = createCliContainer();
18
+ const prelude = await cli.mirror.prepareMirrorSync({
19
+ currentWorkingDirectory: process.cwd(),
20
+ packageArg: pkg,
21
+ globalCliRaw: this.optsWithGlobals(),
22
+ });
23
+ if (!consumeCliAppError(cli.logger, prelude)) {
64
24
  return;
65
25
  }
26
+ const { rootDir, config, packageFilter, globals } = prelude.value;
66
27
  const parsed = parseWithCliSchema(MirrorSyncRunRequestSchema, {
67
28
  rootDir,
68
- config: loadedOutcome.value.config.mirror ?? {},
29
+ config: config.mirror ?? {},
69
30
  verbose: options.verbose,
70
31
  noColor: globals.color === false,
71
32
  packageFilter,
@@ -1 +1 @@
1
- {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqCzD"}
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/commands/tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6CzD"}
@@ -1,9 +1,8 @@
1
- import path from "node:path";
2
1
  import process from "node:process";
3
- import { consumeCliAppError } from "#lib/core/presentation/cli-executor";
4
- import { createCliContext, parseWithCliSchema, resolveTagWorkspaceRoot, tryLoadCodefastConfig, } from "#lib/core/presentation/create-command-handler";
2
+ import { createCliContainer } from "#lib/core/infra/container.adapter";
3
+ import { consumeCliAppError } from "#lib/core/presentation/cli-executor.presenter";
4
+ import { parseWithCliSchema } from "#lib/core/presentation/parse-cli-schema.presenter";
5
5
  import { TagSyncRunRequestSchema } from "#lib/tag/application/requests/tag-sync.request";
6
- import { createTagProgressListener, presentTagSyncCliResult, } from "#lib/tag/presentation/tag-presenter";
7
6
  export function registerTagCommand(program) {
8
7
  program
9
8
  .command("tag")
@@ -11,18 +10,22 @@ export function registerTagCommand(program) {
11
10
  .description("Add @since <version> JSDoc tags to exported declarations")
12
11
  .argument("[target]", "Directory or file to annotate (default: auto-discover workspace packages)")
13
12
  .option("--dry-run", "Show summary without writing files", false)
14
- .action(async (target, options) => {
15
- const cli = createCliContext();
16
- const rootDir = resolveTagWorkspaceRoot(cli);
17
- const loadedOutcome = await tryLoadCodefastConfig(cli, rootDir);
18
- if (!consumeCliAppError(cli.logger, loadedOutcome)) {
13
+ .action(async function (target, options) {
14
+ const cli = createCliContainer();
15
+ const prelude = await cli.tag.prepareTagSync({
16
+ currentWorkingDirectory: process.cwd(),
17
+ rawTarget: target,
18
+ globalCliRaw: this.optsWithGlobals(),
19
+ });
20
+ if (!consumeCliAppError(cli.logger, prelude)) {
19
21
  return;
20
22
  }
21
- const tagConfig = loadedOutcome.value.config.tag ?? {};
23
+ const { rootDir, config, resolvedTargetPath } = prelude.value;
24
+ const tagConfig = config.tag ?? {};
22
25
  const parsed = parseWithCliSchema(TagSyncRunRequestSchema, {
23
26
  rootDir,
24
27
  write: !options.dryRun,
25
- targetPath: target ? path.resolve(target) : undefined,
28
+ targetPath: resolvedTargetPath,
26
29
  skipPackages: tagConfig.skipPackages,
27
30
  config: tagConfig,
28
31
  });
@@ -31,11 +34,11 @@ export function registerTagCommand(program) {
31
34
  }
32
35
  const tagOutcome = await cli.tag.runTagSync({
33
36
  ...parsed.value,
34
- listener: createTagProgressListener((line) => cli.logger.out(line)),
37
+ listener: cli.tag.createProgressListener((line) => cli.logger.out(line)),
35
38
  });
36
39
  if (!consumeCliAppError(cli.logger, tagOutcome)) {
37
40
  return;
38
41
  }
39
- process.exitCode = presentTagSyncCliResult(cli.logger, tagOutcome.value, rootDir);
42
+ process.exitCode = cli.tag.presentSyncCliResult(tagOutcome.value, rootDir);
40
43
  });
41
44
  }
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ export declare const ArrangeSuggestGroupsRequestSchema: z.ZodObject<{
3
+ inlineClasses: z.ZodString;
4
+ emitTvStyleArray: z.ZodBoolean;
5
+ trailingClassName: z.ZodBoolean;
6
+ }, z.core.$strip>;
7
+ export type ArrangeSuggestGroupsRequest = z.infer<typeof ArrangeSuggestGroupsRequestSchema>;
8
+ //# sourceMappingURL=suggest-groups.request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest-groups.request.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/requests/suggest-groups.request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iCAAiC;;;;iBAM5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ export const ArrangeSuggestGroupsRequestSchema = z.object({
3
+ inlineClasses: z
4
+ .string()
5
+ .min(1, 'Pass a class string. Example: codefast arrange group "flex gap-2 text-sm rounded-md"'),
6
+ emitTvStyleArray: z.boolean(),
7
+ trailingClassName: z.boolean(),
8
+ });
@@ -1,10 +1,10 @@
1
- import { type AppError } from "#lib/core/domain/errors";
2
- import { type Result } from "#lib/core/domain/result";
1
+ import { type AppError } from "#lib/core/domain/errors.domain";
2
+ import { type Result } from "#lib/core/domain/result.model";
3
3
  import type { CliFs } from "#lib/core/application/ports/cli-io.port";
4
4
  import type { DomainSourceParserPort } from "#lib/arrange/application/ports/domain-source-parser.port";
5
5
  import type { ArrangeAnalyzeDirectoryRequest } from "#lib/arrange/application/requests/analyze-directory.request";
6
6
  import type { FileWalkerPort } from "#lib/arrange/application/ports/file-walker.port";
7
- import type { AnalyzeReport } from "#lib/arrange/domain/types";
7
+ import type { AnalyzeReport } from "#lib/arrange/domain/types.domain";
8
8
  export type AnalyzeDirectoryDeps = {
9
9
  readonly fs: CliFs;
10
10
  readonly fileWalker: FileWalkerPort;
@@ -14,4 +14,4 @@ export type AnalyzeDirectoryDeps = {
14
14
  * Orchestrates filesystem + parse ports, delegates analysis rules to the domain service.
15
15
  */
16
16
  export declare function analyzeDirectory(request: ArrangeAnalyzeDirectoryRequest, deps: AnalyzeDirectoryDeps): Result<AnalyzeReport, AppError>;
17
- //# sourceMappingURL=analyze.d.ts.map
17
+ //# sourceMappingURL=analyze-directory.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-directory.use-case.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/use-cases/analyze-directory.use-case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yCAAyC,CAAC;AAErE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AACvG,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6DAA6D,CAAC;AAClH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAMtE,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,8BAA8B,EACvC,IAAI,EAAE,oBAAoB,GACzB,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAiBjC"}
@@ -1,6 +1,6 @@
1
- import { appError } from "#lib/core/domain/errors";
2
- import { err, ok } from "#lib/core/domain/result";
3
- import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message";
1
+ import { appError } from "#lib/core/domain/errors.domain";
2
+ import { err, ok } from "#lib/core/domain/result.model";
3
+ import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message.util";
4
4
  import { accumulateAnalyzeReportForSourceFile, createEmptyAnalyzeReport, } from "#lib/arrange/domain/arrange-analyze.service";
5
5
  /**
6
6
  * Orchestrates filesystem + parse ports, delegates analysis rules to the domain service.
@@ -1,7 +1,7 @@
1
1
  import type { CliLogger } from "#lib/core/application/ports/cli-io.port";
2
2
  import type { GroupFileUnwrapPlan, GroupFileWorkPlan } from "#lib/arrange/domain/arrange-grouping.service";
3
3
  import type { DomainCallExpression, DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
4
- import type { PlannedGroupEdit } from "#lib/arrange/domain/types";
4
+ import type { PlannedGroupEdit } from "#lib/arrange/domain/types.domain";
5
5
  export declare function printGroupFilePreview(logger: CliLogger, args: {
6
6
  filePath: string;
7
7
  reportTotal: number;
@@ -14,4 +14,4 @@ export declare function printGroupFilePreview(logger: CliLogger, args: {
14
14
  plannedGroupEdits: readonly PlannedGroupEdit[];
15
15
  }): void;
16
16
  export declare function printGroupFilePreviewFromWork(logger: CliLogger, work: GroupFileWorkPlan): void;
17
- //# sourceMappingURL=group-file-preview.d.ts.map
17
+ //# sourceMappingURL=group-file-preview.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-file-preview.use-case.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/use-cases/group-file-preview.use-case.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC7C,uBAAuB,EAAE,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC5C,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAChD,GACA,IAAI,CA6CN;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAY9F"}
@@ -1,4 +1,4 @@
1
- import { lineOf } from "#lib/arrange/domain/ast/ast-helpers";
1
+ import { lineOf } from "#lib/arrange/domain/ast/ast-helpers.helper";
2
2
  export function printGroupFilePreview(logger, args) {
3
3
  const { out } = logger;
4
4
  const { filePath, reportTotal, cnInTvNoReplacement, cnInTvCalls, unwrapReplacementByCall, sourceText, domainSf, unwrapEdits, plannedGroupEdits, } = args;
@@ -1,5 +1,5 @@
1
1
  import type { CliFs, CliLogger } from "#lib/core/application/ports/cli-io.port";
2
2
  import type { DomainSourceParserPort } from "#lib/arrange/application/ports/domain-source-parser.port";
3
- import type { ArrangeGroupFileOptions, GroupFileResult } from "#lib/arrange/domain/types";
3
+ import type { ArrangeGroupFileOptions, GroupFileResult } from "#lib/arrange/domain/types.domain";
4
4
  export declare function groupFile(filePath: string, options: ArrangeGroupFileOptions, fs: CliFs, logger: CliLogger, domainSourceParser: DomainSourceParserPort): GroupFileResult;
5
- //# sourceMappingURL=group-file.d.ts.map
5
+ //# sourceMappingURL=group-file.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-file.use-case.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/use-cases/group-file.use-case.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AAEvG,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAajG,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uBAAuB,EAChC,EAAE,EAAE,KAAK,EACT,MAAM,EAAE,SAAS,EACjB,kBAAkB,EAAE,sBAAsB,GACzC,eAAe,CAgDjB"}
@@ -1,6 +1,6 @@
1
+ import { printGroupFilePreviewFromWork } from "#lib/arrange/application/use-cases/group-file-preview.use-case";
1
2
  import { buildGroupFileUnwrapState, countPersistedGroupFileEdits, groupFileDryRunNoEdits, groupFileEditsTouchJsxCn, groupFilePreviewTotals, groupFileWorkHasNothingToReport, mergeGroupFileBodyText, tryBuildGroupFileWorkPlan, } from "#lib/arrange/domain/arrange-grouping.service";
2
- import { ensureCnImport } from "#lib/arrange/domain/imports";
3
- import { printGroupFilePreviewFromWork } from "#lib/arrange/application/group-file-preview";
3
+ import { ensureCnImport } from "#lib/arrange/domain/imports.domain";
4
4
  export function groupFile(filePath, options, fs, logger, domainSourceParser) {
5
5
  const sourceText = fs.readFileSync(filePath, "utf8");
6
6
  const domainSfInitial = domainSourceParser.parseDomainSourceFile(filePath, sourceText);
@@ -1,10 +1,10 @@
1
- import { type AppError } from "#lib/core/domain/errors";
2
- import { type Result } from "#lib/core/domain/result";
1
+ import { type AppError } from "#lib/core/domain/errors.domain";
2
+ import { type Result } from "#lib/core/domain/result.model";
3
3
  import type { CliFs, CliLogger } from "#lib/core/application/ports/cli-io.port";
4
4
  import type { DomainSourceParserPort } from "#lib/arrange/application/ports/domain-source-parser.port";
5
5
  import type { FileWalkerPort } from "#lib/arrange/application/ports/file-walker.port";
6
6
  import type { ArrangeRunTargetRequest, ArrangeSyncRunRequest } from "#lib/arrange/application/requests/arrange-sync.request";
7
- import type { ArrangeRunResult } from "#lib/arrange/domain/types";
7
+ import type { ArrangeRunResult } from "#lib/arrange/domain/types.domain";
8
8
  export type ArrangeSyncDeps = {
9
9
  readonly fs: CliFs;
10
10
  readonly logger: CliLogger;
@@ -16,4 +16,4 @@ export declare function runOnTarget(request: ArrangeRunTargetRequest, deps: Arra
16
16
  * Preview/apply orchestration: resolves target path, runs grouping pipeline, optional hook.
17
17
  */
18
18
  export declare function runArrangeSync(request: ArrangeSyncRunRequest, deps: ArrangeSyncDeps): Promise<Result<number, AppError>>;
19
- //# sourceMappingURL=run-target.d.ts.map
19
+ //# sourceMappingURL=run-arrange-sync.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-arrange-sync.use-case.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/use-cases/run-arrange-sync.use-case.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGhF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AACvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;CACrD,CAAC;AAEF,wBAAgB,WAAW,CACzB,OAAO,EAAE,uBAAuB,EAChC,IAAI,EAAE,eAAe,GACpB,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAsDpC;AAiBD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CA+BnC"}
@@ -1,8 +1,8 @@
1
1
  import path from "node:path";
2
- import { appError } from "#lib/core/domain/errors";
3
- import { err, ok } from "#lib/core/domain/result";
4
- import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message";
5
- import { groupFile } from "#lib/arrange/application/group-file";
2
+ import { appError } from "#lib/core/domain/errors.domain";
3
+ import { err, ok } from "#lib/core/domain/result.model";
4
+ import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message.util";
5
+ import { groupFile } from "#lib/arrange/application/use-cases/group-file.use-case";
6
6
  export function runOnTarget(request, deps) {
7
7
  const { out } = deps.logger;
8
8
  const { fs, fileWalker, domainSourceParser } = deps;
@@ -0,0 +1,7 @@
1
+ import type { ArrangeSuggestGroupsRequest } from "#lib/arrange/application/requests/suggest-groups.request";
2
+ export type ArrangeSuggestGroupsOutput = {
3
+ readonly primaryLine: string;
4
+ readonly bucketsCommentLine: string;
5
+ };
6
+ export declare function suggestCnGroupsForCli(request: ArrangeSuggestGroupsRequest): ArrangeSuggestGroupsOutput;
7
+ //# sourceMappingURL=suggest-cn-groups.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest-cn-groups.use-case.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/use-cases/suggest-cn-groups.use-case.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0DAA0D,CAAC;AAI5G,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,2BAA2B,GACnC,0BAA0B,CAO5B"}
@@ -0,0 +1,10 @@
1
+ import { suggestCnGroups, summarizeGroupBucketLabels } from "#lib/arrange/domain/grouping.domain";
2
+ import { formatArray, formatCnCall } from "#lib/arrange/domain/source-text-formatters.formatter";
3
+ export function suggestCnGroupsForCli(request) {
4
+ const groups = suggestCnGroups(request.inlineClasses);
5
+ const primaryLine = request.emitTvStyleArray
6
+ ? formatArray(groups)
7
+ : formatCnCall(groups, { trailingClassName: request.trailingClassName });
8
+ const bucketsCommentLine = `// Buckets: ${JSON.stringify(summarizeGroupBucketLabels(groups))}`;
9
+ return { primaryLine, bucketsCommentLine };
10
+ }
@@ -2,7 +2,7 @@
2
2
  * Rich domain: Tailwind/cn/tv analysis rules (counts, long literals, nested cn in tv).
3
3
  * Pure orchestration of domain collectors and invariants — no I/O.
4
4
  */
5
- import type { AnalyzeReport } from "#lib/arrange/domain/types";
5
+ import type { AnalyzeReport } from "#lib/arrange/domain/types.domain";
6
6
  import { type DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
7
7
  export declare function createEmptyAnalyzeReport(): AnalyzeReport;
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"arrange-analyze.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/domain/arrange-analyze.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAU/D,OAAO,EAIL,KAAK,gBAAgB,EAKtB,MAAM,wCAAwC,CAAC;AAQhD,wBAAgB,wBAAwB,IAAI,aAAa,CAUxD;AAmGD;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,IAAI,CAeN"}
1
+ {"version":3,"file":"arrange-analyze.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/domain/arrange-analyze.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAatE,OAAO,EAIL,KAAK,gBAAgB,EAKtB,MAAM,wCAAwC,CAAC;AAQhD,wBAAgB,wBAAwB,IAAI,aAAa,CAUxD;AAmGD;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,IAAI,CAeN"}
@@ -2,12 +2,12 @@
2
2
  * Rich domain: Tailwind/cn/tv analysis rules (counts, long literals, nested cn in tv).
3
3
  * Pure orchestration of domain collectors and invariants — no I/O.
4
4
  */
5
- import { LONG_STRING_TOKEN_THRESHOLD } from "#lib/arrange/domain/constants";
6
- import { tokenizeClassString } from "#lib/arrange/domain/tokenizer";
7
- import { forEachStringLiteralInClassExpression } from "#lib/arrange/domain/ast/collectors-cn";
8
- import { jsxClassNameStaticLiteral } from "#lib/arrange/domain/ast/collectors-jsx";
9
- import { collectCnCallsInsideTv, traverseTvObject } from "#lib/arrange/domain/ast/collectors-tv";
10
- import { buildKnownCnTvBindings, isCnOrTvIdentifier, lineOf, } from "#lib/arrange/domain/ast/ast-helpers";
5
+ import { LONG_STRING_TOKEN_THRESHOLD } from "#lib/arrange/domain/constants.domain";
6
+ import { tokenizeClassString } from "#lib/arrange/domain/tokenizer.util";
7
+ import { forEachStringLiteralInClassExpression } from "#lib/arrange/domain/ast/collectors-cn.collector";
8
+ import { jsxClassNameStaticLiteral } from "#lib/arrange/domain/ast/collectors-jsx.collector";
9
+ import { collectCnCallsInsideTv, traverseTvObject, } from "#lib/arrange/domain/ast/collectors-tv.collector";
10
+ import { buildKnownCnTvBindings, isCnOrTvIdentifier, lineOf, } from "#lib/arrange/domain/ast/ast-helpers.helper";
11
11
  import { isDomainCallExpression, isDomainJsxAttribute, isDomainObjectLiteralExpression, forEachDomainChild, } from "#lib/arrange/domain/ast/ast-node.model";
12
12
  const PREVIEW_MAX_LENGTH = 72;
13
13
  function previewText(text) {
@@ -2,7 +2,7 @@
2
2
  * Rich domain: plan Tailwind class grouping / cn-in-tv unwrap for a single file.
3
3
  * Pure: only DomainSourceFile, source strings, and options — no I/O.
4
4
  */
5
- import type { GroupFileResult, PlannedGroupEdit } from "#lib/arrange/domain/types";
5
+ import type { GroupFileResult, PlannedGroupEdit } from "#lib/arrange/domain/types.domain";
6
6
  import type { DomainCallExpression, DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
7
7
  export type GroupFileUnwrapPlan = {
8
8
  readonly start: number;
@@ -1 +1 @@
1
- {"version":3,"file":"arrange-grouping.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/domain/arrange-grouping.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAYnF,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC5E,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;IAClD,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC5E,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACxD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAiBF,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,gBAAgB,EACjC,UAAU,EAAE,MAAM,GACjB,oBAAoB,CAoBtB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC,GAAG,iBAAiB,GAAG,IAAI,CA+C3B;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAExE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,CAM/E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAWtE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEzE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAE5E;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEhF"}
1
+ {"version":3,"file":"arrange-grouping.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/domain/arrange-grouping.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAY1F,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC5E,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;IAClD,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC5E,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACxD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAiBF,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,gBAAgB,EACjC,UAAU,EAAE,MAAM,GACjB,oBAAoB,CAoBtB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC,GAAG,iBAAiB,GAAG,IAAI,CA+C3B;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAExE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,CAM/E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAWtE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEzE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAE5E;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEhF"}
@@ -2,9 +2,9 @@
2
2
  * Rich domain: plan Tailwind class grouping / cn-in-tv unwrap for a single file.
3
3
  * Pure: only DomainSourceFile, source strings, and options — no I/O.
4
4
  */
5
- import { applyEditsDescending, buildKnownCnTvBindings, unwrapCnInsideTvCallReplacement, } from "#lib/arrange/domain/ast/ast-helpers";
6
- import { listAllCnCallsInsideTvInSourceFile } from "#lib/arrange/domain/ast/collectors-tv";
7
- import { collectGroupTargets, planGroupEditForTarget, targetReplaceStart, } from "#lib/arrange/domain/ast/targets";
5
+ import { applyEditsDescending, buildKnownCnTvBindings, unwrapCnInsideTvCallReplacement, } from "#lib/arrange/domain/ast/ast-helpers.helper";
6
+ import { listAllCnCallsInsideTvInSourceFile } from "#lib/arrange/domain/ast/collectors-tv.collector";
7
+ import { collectGroupTargets, planGroupEditForTarget, targetReplaceStart, } from "#lib/arrange/domain/ast/targets.model";
8
8
  function toUnwrapPlans(cnInTvCalls, sourceText) {
9
9
  return cnInTvCalls
10
10
  .map((call) => {
@@ -1,4 +1,4 @@
1
- import { applyEditsDescending, indentOfLineContaining } from "#lib/shared/source-code/domain/text-edit";
1
+ import { applyEditsDescending, indentOfLineContaining } from "#lib/shared/source-code/domain/text-edit.model";
2
2
  import { type DomainAstNode, type DomainCallExpression, type DomainPropertyAssignment, type DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
3
3
  /** Known module specifiers that export `cn` / `tv`. */
4
4
  export declare const KNOWN_CN_TV_MODULES: Set<string>;
@@ -25,4 +25,4 @@ export { applyEditsDescending, indentOfLineContaining };
25
25
  * array (multiple args). Returns undefined when there are zero arguments.
26
26
  */
27
27
  export declare function unwrapCnInsideTvCallReplacement(call: DomainCallExpression, sourceText: string): string | undefined;
28
- //# sourceMappingURL=ast-helpers.d.ts.map
28
+ //# sourceMappingURL=ast-helpers.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-helpers.helper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/ast-helpers.helper.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EAQtB,MAAM,wCAAwC,CAAC;AAEhD,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,aAU9B,CAAC;AAEH;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAY5E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,CAsChF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,aAAa,GAAE,GAAG,CAAC,MAAM,CAAwB,GAChD,OAAO,CAWT;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,GAAG,SAAS,CAQ7F;AAED,wBAAgB,MAAM,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CAEhF;AAED,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,CAAC;AAExD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,oBAAoB,EAC1B,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAsBpB"}