@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,36 +0,0 @@
1
- import process from "node:process";
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";
6
- import { MirrorSyncRunRequestSchema } from "#lib/mirror/application/requests/mirror-sync.request";
7
- export function registerMirrorCommand(program) {
8
- const mirror = program
9
- .command("mirror")
10
- .description("Keep package manifests aligned with what you ship");
11
- mirror
12
- .command("sync")
13
- .description("Write package.json exports from dist/ for workspace packages")
14
- .argument("[package]", "Optional package path relative to repo root (e.g. packages/ui)")
15
- .option("-v, --verbose", "Print extra diagnostics", false)
16
- .action(async function (pkg, options) {
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)) {
24
- return;
25
- }
26
- const { rootDir, config, packageFilter, globals } = prelude.value;
27
- const parsed = parseWithCliSchema(MirrorSyncRunRequestSchema, {
28
- rootDir,
29
- config: config.mirror ?? {},
30
- verbose: options.verbose,
31
- noColor: globals.color === false,
32
- packageFilter,
33
- });
34
- await runAsyncExitCodeUseCaseAfterParse(cli, parsed, (input) => cli.mirror.runMirrorSync(input));
35
- });
36
- }
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function registerTagCommand(program: Command): void;
3
- //# sourceMappingURL=tag.d.ts.map
@@ -1 +0,0 @@
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,44 +0,0 @@
1
- import process from "node:process";
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 { TagSyncRunRequestSchema } from "#lib/tag/application/requests/tag-sync.request";
6
- export function registerTagCommand(program) {
7
- program
8
- .command("tag")
9
- .alias("annotate")
10
- .description("Add @since <version> JSDoc tags to exported declarations")
11
- .argument("[target]", "Directory or file to annotate (default: auto-discover workspace packages)")
12
- .option("--dry-run", "Show summary without writing files", false)
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)) {
21
- return;
22
- }
23
- const { rootDir, config, resolvedTargetPath } = prelude.value;
24
- const tagConfig = config.tag ?? {};
25
- const parsed = parseWithCliSchema(TagSyncRunRequestSchema, {
26
- rootDir,
27
- write: !options.dryRun,
28
- targetPath: resolvedTargetPath,
29
- skipPackages: tagConfig.skipPackages,
30
- config: tagConfig,
31
- });
32
- if (!consumeCliAppError(cli.logger, parsed)) {
33
- return;
34
- }
35
- const tagOutcome = await cli.tag.runTagSync({
36
- ...parsed.value,
37
- listener: cli.tag.createProgressListener((line) => cli.logger.out(line)),
38
- });
39
- if (!consumeCliAppError(cli.logger, tagOutcome)) {
40
- return;
41
- }
42
- process.exitCode = cli.tag.presentSyncCliResult(tagOutcome.value, rootDir);
43
- });
44
- }
@@ -1,5 +0,0 @@
1
- import type { DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
2
- export interface DomainSourceParserPort {
3
- parseDomainSourceFile(filePath: string, sourceText: string): DomainSourceFile;
4
- }
5
- //# sourceMappingURL=domain-source-parser.port.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domain-source-parser.port.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/ports/domain-source-parser.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC;CAC/E"}
@@ -1,5 +0,0 @@
1
- import type { CliFs } from "#lib/core/application/ports/cli-io.port";
2
- export interface FileWalkerPort {
3
- walkTypeScriptFiles(rootDirectoryPath: string, fs: CliFs): string[];
4
- }
5
- //# sourceMappingURL=file-walker.port.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-walker.port.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/ports/file-walker.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yCAAyC,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;CACrE"}
@@ -1,6 +0,0 @@
1
- import { z } from "zod";
2
- export declare const ArrangeAnalyzeDirectoryRequestSchema: z.ZodObject<{
3
- analyzeRootPath: z.ZodString;
4
- }, z.core.$strip>;
5
- export type ArrangeAnalyzeDirectoryRequest = z.infer<typeof ArrangeAnalyzeDirectoryRequestSchema>;
6
- //# sourceMappingURL=analyze-directory.request.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze-directory.request.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/requests/analyze-directory.request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oCAAoC;;iBAE/C,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { z } from "zod";
2
- export const ArrangeAnalyzeDirectoryRequestSchema = z.object({
3
- analyzeRootPath: z.string().min(1, "analyzeRootPath is required"),
4
- });
@@ -1,18 +0,0 @@
1
- import { z } from "zod";
2
- export declare const ArrangeSyncRunRequestSchema: z.ZodObject<{
3
- rootDir: z.ZodString;
4
- targetPath: z.ZodString;
5
- write: z.ZodBoolean;
6
- withClassName: z.ZodOptional<z.ZodBoolean>;
7
- cnImport: z.ZodOptional<z.ZodString>;
8
- config: z.ZodOptional<z.ZodUnknown>;
9
- }, z.core.$strip>;
10
- export type ArrangeSyncRunRequest = z.infer<typeof ArrangeSyncRunRequestSchema>;
11
- export declare const ArrangeRunTargetRequestSchema: z.ZodObject<{
12
- targetPath: z.ZodString;
13
- write: z.ZodBoolean;
14
- withClassName: z.ZodOptional<z.ZodBoolean>;
15
- cnImport: z.ZodOptional<z.ZodString>;
16
- }, z.core.$strip>;
17
- export type ArrangeRunTargetRequest = z.infer<typeof ArrangeRunTargetRequestSchema>;
18
- //# sourceMappingURL=arrange-sync.request.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"arrange-sync.request.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/application/requests/arrange-sync.request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,2BAA2B;;;;;;;iBAOtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,6BAA6B;;;;;iBAKxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import { z } from "zod";
2
- export const ArrangeSyncRunRequestSchema = z.object({
3
- rootDir: z.string().min(1),
4
- targetPath: z.string().min(1),
5
- write: z.boolean(),
6
- withClassName: z.boolean().optional(),
7
- cnImport: z.string().optional(),
8
- config: z.unknown().optional(),
9
- });
10
- export const ArrangeRunTargetRequestSchema = z.object({
11
- targetPath: z.string().min(1),
12
- write: z.boolean(),
13
- withClassName: z.boolean().optional(),
14
- cnImport: z.string().optional(),
15
- });
@@ -1,8 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,8 +0,0 @@
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,17 +0,0 @@
1
- import { type AppError } from "#lib/core/domain/errors.domain";
2
- import { type Result } from "#lib/core/domain/result.model";
3
- import type { CliFs } from "#lib/core/application/ports/cli-io.port";
4
- import type { DomainSourceParserPort } from "#lib/arrange/application/ports/domain-source-parser.port";
5
- import type { ArrangeAnalyzeDirectoryRequest } from "#lib/arrange/application/requests/analyze-directory.request";
6
- import type { FileWalkerPort } from "#lib/arrange/application/ports/file-walker.port";
7
- import type { AnalyzeReport } from "#lib/arrange/domain/types.domain";
8
- export type AnalyzeDirectoryDeps = {
9
- readonly fs: CliFs;
10
- readonly fileWalker: FileWalkerPort;
11
- readonly domainSourceParser: DomainSourceParserPort;
12
- };
13
- /**
14
- * Orchestrates filesystem + parse ports, delegates analysis rules to the domain service.
15
- */
16
- export declare function analyzeDirectory(request: ArrangeAnalyzeDirectoryRequest, deps: AnalyzeDirectoryDeps): Result<AnalyzeReport, AppError>;
17
- //# sourceMappingURL=analyze-directory.use-case.d.ts.map
@@ -1 +0,0 @@
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,24 +0,0 @@
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
- import { accumulateAnalyzeReportForSourceFile, createEmptyAnalyzeReport, } from "#lib/arrange/domain/arrange-analyze.service";
5
- /**
6
- * Orchestrates filesystem + parse ports, delegates analysis rules to the domain service.
7
- */
8
- export function analyzeDirectory(request, deps) {
9
- const report = createEmptyAnalyzeReport();
10
- try {
11
- const files = deps.fs.statSync(request.analyzeRootPath).isDirectory()
12
- ? deps.fileWalker.walkTypeScriptFiles(request.analyzeRootPath, deps.fs)
13
- : [request.analyzeRootPath];
14
- for (const filePath of files) {
15
- const sourceText = deps.fs.readFileSync(filePath, "utf8");
16
- const domainSf = deps.domainSourceParser.parseDomainSourceFile(filePath, sourceText);
17
- accumulateAnalyzeReportForSourceFile(report, domainSf, sourceText, filePath);
18
- }
19
- return ok(report);
20
- }
21
- catch (caughtError) {
22
- return err(appError("INFRA_FAILURE", messageFromCaughtUnknown(caughtError), caughtError));
23
- }
24
- }
@@ -1,17 +0,0 @@
1
- import type { CliLogger } from "#lib/core/application/ports/cli-io.port";
2
- import type { GroupFileUnwrapPlan, GroupFileWorkPlan } from "#lib/arrange/domain/arrange-grouping.service";
3
- import type { DomainCallExpression, DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
4
- import type { PlannedGroupEdit } from "#lib/arrange/domain/types.domain";
5
- export declare function printGroupFilePreview(logger: CliLogger, args: {
6
- filePath: string;
7
- reportTotal: number;
8
- cnInTvNoReplacement: number;
9
- cnInTvCalls: readonly DomainCallExpression[];
10
- unwrapReplacementByCall: ReadonlyMap<DomainCallExpression, string>;
11
- sourceText: string;
12
- domainSf: DomainSourceFile;
13
- unwrapEdits: readonly GroupFileUnwrapPlan[];
14
- plannedGroupEdits: readonly PlannedGroupEdit[];
15
- }): void;
16
- export declare function printGroupFilePreviewFromWork(logger: CliLogger, work: GroupFileWorkPlan): void;
17
- //# sourceMappingURL=group-file-preview.use-case.d.ts.map
@@ -1 +0,0 @@
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,46 +0,0 @@
1
- import { lineOf } from "#lib/arrange/domain/ast/ast-helpers.helper";
2
- export function printGroupFilePreview(logger, args) {
3
- const { out } = logger;
4
- const { filePath, reportTotal, cnInTvNoReplacement, cnInTvCalls, unwrapReplacementByCall, sourceText, domainSf, unwrapEdits, plannedGroupEdits, } = args;
5
- let header = `\n── ${filePath} (${reportTotal} site(s)`;
6
- if (cnInTvNoReplacement > 0) {
7
- header += `; plus ${cnInTvNoReplacement} cn() inside tv left unchanged (0 args)`;
8
- }
9
- header += `) ──`;
10
- out(header);
11
- for (const call of cnInTvCalls) {
12
- const replacement = unwrapReplacementByCall.get(call);
13
- if (replacement === undefined) {
14
- out(` Line ${lineOf(domainSf, call)} [tv \u2283 cn]: cn(...) has no arguments — skipped`);
15
- continue;
16
- }
17
- const start = call.pos;
18
- const end = call.end;
19
- if (sourceText.slice(start, end) === replacement) {
20
- continue;
21
- }
22
- out(` Line ${lineOf(domainSf, call)} [tv \u2283 cn \u2192 string/array]:`);
23
- out(` ${replacement.split("\n").join("\n ")}`);
24
- }
25
- if (unwrapEdits.length > 0 && plannedGroupEdits.length > 0) {
26
- out(" ([cn] / [tv] / [JSX className] lines below reflect content after unwrap of cn inside tv.)");
27
- }
28
- for (const plan of plannedGroupEdits) {
29
- out(` Line ${lineOf(plan.lineSf, plan.reportNode)} [${plan.label}]:`);
30
- out(` ${plan.replacement.split("\n").join("\n ")}`);
31
- out(` // Buckets: ${JSON.stringify(plan.bucketSummary)}`);
32
- }
33
- }
34
- export function printGroupFilePreviewFromWork(logger, work) {
35
- printGroupFilePreview(logger, {
36
- filePath: work.filePath,
37
- reportTotal: work.reportTotal,
38
- cnInTvNoReplacement: work.cnInTvNoReplacement,
39
- cnInTvCalls: work.cnInTvCalls,
40
- unwrapReplacementByCall: work.unwrapReplacementByCall,
41
- sourceText: work.sourceText,
42
- domainSf: work.domainSfForLineNumbers,
43
- unwrapEdits: work.unwrapEdits,
44
- plannedGroupEdits: work.plannedGroupEdits,
45
- });
46
- }
@@ -1,5 +0,0 @@
1
- import type { CliFs, CliLogger } from "#lib/core/application/ports/cli-io.port";
2
- import type { DomainSourceParserPort } from "#lib/arrange/application/ports/domain-source-parser.port";
3
- import type { ArrangeGroupFileOptions, GroupFileResult } from "#lib/arrange/domain/types.domain";
4
- export declare function groupFile(filePath: string, options: ArrangeGroupFileOptions, fs: CliFs, logger: CliLogger, domainSourceParser: DomainSourceParserPort): GroupFileResult;
5
- //# sourceMappingURL=group-file.use-case.d.ts.map
@@ -1 +0,0 @@
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,40 +0,0 @@
1
- import { printGroupFilePreviewFromWork } from "#lib/arrange/application/use-cases/group-file-preview.use-case";
2
- import { buildGroupFileUnwrapState, countPersistedGroupFileEdits, groupFileDryRunNoEdits, groupFileEditsTouchJsxCn, groupFilePreviewTotals, groupFileWorkHasNothingToReport, mergeGroupFileBodyText, tryBuildGroupFileWorkPlan, } from "#lib/arrange/domain/arrange-grouping.service";
3
- import { ensureCnImport } from "#lib/arrange/domain/imports.domain";
4
- export function groupFile(filePath, options, fs, logger, domainSourceParser) {
5
- const sourceText = fs.readFileSync(filePath, "utf8");
6
- const domainSfInitial = domainSourceParser.parseDomainSourceFile(filePath, sourceText);
7
- const unwrap = buildGroupFileUnwrapState(domainSfInitial, sourceText);
8
- const domainSfGrouped = domainSourceParser.parseDomainSourceFile(filePath, unwrap.textAfterUnwrap);
9
- const work = tryBuildGroupFileWorkPlan({
10
- filePath,
11
- sourceText,
12
- domainSfInitial,
13
- domainSfGrouped,
14
- withClassName: options.withClassName,
15
- unwrap,
16
- });
17
- if (work === null) {
18
- return groupFileDryRunNoEdits(filePath);
19
- }
20
- if (!options.write) {
21
- if (groupFileWorkHasNothingToReport(work)) {
22
- return groupFileDryRunNoEdits(filePath);
23
- }
24
- printGroupFilePreviewFromWork(logger, work);
25
- return groupFilePreviewTotals(work);
26
- }
27
- const persistedEditCount = countPersistedGroupFileEdits(work);
28
- let newText = mergeGroupFileBodyText(work);
29
- if (persistedEditCount > 0) {
30
- if (groupFileEditsTouchJsxCn(work)) {
31
- newText = ensureCnImport(domainSourceParser.parseDomainSourceFile(filePath, newText), options.cnImport);
32
- }
33
- fs.writeFileSync(filePath, newText, "utf8");
34
- }
35
- return {
36
- filePath,
37
- totalFound: persistedEditCount + work.cnInTvNoReplacement,
38
- changed: persistedEditCount,
39
- };
40
- }
@@ -1,19 +0,0 @@
1
- import { type AppError } from "#lib/core/domain/errors.domain";
2
- import { type Result } from "#lib/core/domain/result.model";
3
- import type { CliFs, CliLogger } from "#lib/core/application/ports/cli-io.port";
4
- import type { DomainSourceParserPort } from "#lib/arrange/application/ports/domain-source-parser.port";
5
- import type { FileWalkerPort } from "#lib/arrange/application/ports/file-walker.port";
6
- import type { ArrangeRunTargetRequest, ArrangeSyncRunRequest } from "#lib/arrange/application/requests/arrange-sync.request";
7
- import type { ArrangeRunResult } from "#lib/arrange/domain/types.domain";
8
- export type ArrangeSyncDeps = {
9
- readonly fs: CliFs;
10
- readonly logger: CliLogger;
11
- readonly fileWalker: FileWalkerPort;
12
- readonly domainSourceParser: DomainSourceParserPort;
13
- };
14
- export declare function runOnTarget(request: ArrangeRunTargetRequest, deps: ArrangeSyncDeps): Result<ArrangeRunResult, AppError>;
15
- /**
16
- * Preview/apply orchestration: resolves target path, runs grouping pipeline, optional hook.
17
- */
18
- export declare function runArrangeSync(request: ArrangeSyncRunRequest, deps: ArrangeSyncDeps): Promise<Result<number, AppError>>;
19
- //# sourceMappingURL=run-arrange-sync.use-case.d.ts.map
@@ -1 +0,0 @@
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,85 +0,0 @@
1
- import path from "node:path";
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
- export function runOnTarget(request, deps) {
7
- const { out } = deps.logger;
8
- const { fs, fileWalker, domainSourceParser } = deps;
9
- if (!fs.existsSync(request.targetPath)) {
10
- return err(appError("NOT_FOUND", `Not found: ${request.targetPath}`));
11
- }
12
- const filePaths = fs.statSync(request.targetPath).isDirectory()
13
- ? fileWalker.walkTypeScriptFiles(request.targetPath, fs)
14
- : [request.targetPath];
15
- const modifiedFiles = [];
16
- let totalFound = 0;
17
- let totalChanged = 0;
18
- const groupOptions = {
19
- write: request.write,
20
- withClassName: !!request.withClassName,
21
- cnImport: request.cnImport,
22
- };
23
- for (const filePath of filePaths) {
24
- const result = groupFile(filePath, groupOptions, fs, deps.logger, domainSourceParser);
25
- totalFound += result.totalFound;
26
- totalChanged += result.changed;
27
- if (result.changed > 0) {
28
- modifiedFiles.push(result.filePath);
29
- }
30
- }
31
- out(`\nTotal: ${filePaths.length} file(s), ${totalFound} site(s) (cn/tv/JSX className) to review.`);
32
- if (request.write) {
33
- out(`Applied: ${totalChanged} site(s) updated.`);
34
- }
35
- else {
36
- out(`(Run "apply" to write changes, or "pnpm cli:arrange-apply" / "pnpm exec codefast arrange apply")`);
37
- }
38
- const showCascadeHint = request.write ? totalChanged > 0 : totalFound > 0;
39
- if (showCascadeHint) {
40
- out("Note: class order may change across concern groups — smoke-test the UI if you rely on cascade order.");
41
- }
42
- return ok({
43
- filePaths,
44
- modifiedFiles,
45
- totalFound,
46
- totalChanged,
47
- });
48
- }
49
- async function runArrangeOnAfterWriteHook(logger, hook, modifiedFiles) {
50
- if (!hook || modifiedFiles.length === 0) {
51
- return;
52
- }
53
- try {
54
- await hook({ files: modifiedFiles });
55
- }
56
- catch (caughtHookError) {
57
- logger.err(`[arrange] onAfterWrite hook failed: ${messageFromCaughtUnknown(caughtHookError)}`);
58
- }
59
- }
60
- /**
61
- * Preview/apply orchestration: resolves target path, runs grouping pipeline, optional hook.
62
- */
63
- export async function runArrangeSync(request, deps) {
64
- void request.rootDir;
65
- const resolvedTarget = path.resolve(request.targetPath);
66
- const runTargetRequest = {
67
- targetPath: resolvedTarget,
68
- write: request.write,
69
- withClassName: request.withClassName,
70
- cnImport: request.cnImport,
71
- };
72
- const runOutcome = runOnTarget(runTargetRequest, deps);
73
- if (!runOutcome.ok) {
74
- if (runOutcome.error.code === "NOT_FOUND") {
75
- deps.logger.err(runOutcome.error.message);
76
- }
77
- return runOutcome;
78
- }
79
- const result = runOutcome.value;
80
- if (request.write && result.modifiedFiles.length > 0) {
81
- const arrangeConfig = request.config;
82
- await runArrangeOnAfterWriteHook(deps.logger, arrangeConfig?.onAfterWrite, result.modifiedFiles);
83
- }
84
- return ok(0);
85
- }
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,10 +0,0 @@
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
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Rich domain: Tailwind/cn/tv analysis rules (counts, long literals, nested cn in tv).
3
- * Pure orchestration of domain collectors and invariants — no I/O.
4
- */
5
- import type { AnalyzeReport } from "#lib/arrange/domain/types.domain";
6
- import { type DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
7
- export declare function createEmptyAnalyzeReport(): AnalyzeReport;
8
- /**
9
- * Accumulates findings for one parsed source file into `report` (mutates report).
10
- */
11
- export declare function accumulateAnalyzeReportForSourceFile(report: AnalyzeReport, domainSf: DomainSourceFile, sourceText: string, filePath: string): void;
12
- //# sourceMappingURL=arrange-analyze.service.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,116 +0,0 @@
1
- /**
2
- * Rich domain: Tailwind/cn/tv analysis rules (counts, long literals, nested cn in tv).
3
- * Pure orchestration of domain collectors and invariants — no I/O.
4
- */
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
- import { isDomainCallExpression, isDomainJsxAttribute, isDomainObjectLiteralExpression, forEachDomainChild, } from "#lib/arrange/domain/ast/ast-node.model";
12
- const PREVIEW_MAX_LENGTH = 72;
13
- function previewText(text) {
14
- return text.length > PREVIEW_MAX_LENGTH ? `${text.slice(0, PREVIEW_MAX_LENGTH)}…` : text;
15
- }
16
- export function createEmptyAnalyzeReport() {
17
- return {
18
- files: 0,
19
- cnCallExpressions: 0,
20
- tvCallExpressions: 0,
21
- cnInsideTvCalls: [],
22
- longCnStringLiterals: [],
23
- longTvStringLiterals: [],
24
- longJsxClassNameLiterals: [],
25
- };
26
- }
27
- function analyzeCnCall(domainSf, call, report) {
28
- for (const arg of call.arguments) {
29
- forEachStringLiteralInClassExpression(arg, (lit) => {
30
- const text = lit.text;
31
- const tokenCount = tokenizeClassString(text).length;
32
- if (tokenCount >= LONG_STRING_TOKEN_THRESHOLD) {
33
- report.longCnStringLiterals.push({
34
- file: domainSf.fileName,
35
- line: lineOf(domainSf, lit),
36
- tokenCount,
37
- preview: previewText(text),
38
- });
39
- }
40
- });
41
- }
42
- }
43
- function visitCallExpressionForArrangeAnalyze(callExpression, domainSf, sourceText, knownBindings, report) {
44
- if (isCnOrTvIdentifier(callExpression.expression, "cn", knownBindings)) {
45
- report.cnCallExpressions++;
46
- analyzeCnCall(domainSf, callExpression, report);
47
- return;
48
- }
49
- if (!isCnOrTvIdentifier(callExpression.expression, "tv", knownBindings)) {
50
- return;
51
- }
52
- report.tvCallExpressions++;
53
- const arg0 = callExpression.arguments[0];
54
- if (!arg0 || !isDomainObjectLiteralExpression(arg0)) {
55
- return;
56
- }
57
- for (const nestedCn of collectCnCallsInsideTv(domainSf, arg0, knownBindings, 0)) {
58
- const src = sourceText.slice(nestedCn.pos, nestedCn.end);
59
- report.cnInsideTvCalls.push({
60
- file: domainSf.fileName,
61
- line: lineOf(domainSf, nestedCn),
62
- argCount: nestedCn.arguments.length,
63
- preview: previewText(src),
64
- });
65
- }
66
- traverseTvObject(domainSf, arg0, (classLiteral) => {
67
- const text = classLiteral.text;
68
- const tokenCount = tokenizeClassString(text).length;
69
- if (tokenCount >= LONG_STRING_TOKEN_THRESHOLD) {
70
- report.longTvStringLiterals.push({
71
- file: domainSf.fileName,
72
- line: lineOf(domainSf, classLiteral),
73
- tokenCount,
74
- preview: previewText(text),
75
- });
76
- }
77
- }, 0, knownBindings);
78
- }
79
- function visitJsxAttributeForArrangeAnalyze(jsxClassAttribute, domainSf, filePath, report) {
80
- if (!filePath.endsWith(".tsx")) {
81
- return;
82
- }
83
- const parsed = jsxClassNameStaticLiteral(jsxClassAttribute);
84
- if (!parsed) {
85
- return;
86
- }
87
- const text = parsed.lit.text;
88
- const tokenCount = tokenizeClassString(text).length;
89
- if (tokenCount >= LONG_STRING_TOKEN_THRESHOLD) {
90
- report.longJsxClassNameLiterals.push({
91
- file: domainSf.fileName,
92
- line: lineOf(domainSf, parsed.lit),
93
- tokenCount,
94
- preview: previewText(text),
95
- });
96
- }
97
- }
98
- /**
99
- * Accumulates findings for one parsed source file into `report` (mutates report).
100
- */
101
- export function accumulateAnalyzeReportForSourceFile(report, domainSf, sourceText, filePath) {
102
- report.files++;
103
- const knownBindings = buildKnownCnTvBindings(domainSf);
104
- const visitTypeScriptSubtree = (tsNode) => {
105
- if (isDomainCallExpression(tsNode)) {
106
- visitCallExpressionForArrangeAnalyze(tsNode, domainSf, sourceText, knownBindings, report);
107
- }
108
- if (isDomainJsxAttribute(tsNode)) {
109
- visitJsxAttributeForArrangeAnalyze(tsNode, domainSf, filePath, report);
110
- }
111
- forEachDomainChild(tsNode, visitTypeScriptSubtree);
112
- };
113
- for (const stmt of domainSf.statements) {
114
- visitTypeScriptSubtree(stmt);
115
- }
116
- }