@codefast/cli 0.3.13-canary.1 → 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 (364) hide show
  1. package/README.md +1 -1
  2. package/dist/bin.d.ts +3 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/{bin.mjs → bin.js} +1 -4
  5. package/dist/commands/arrange.d.ts +3 -0
  6. package/dist/commands/arrange.d.ts.map +1 -0
  7. package/dist/commands/arrange.js +108 -0
  8. package/dist/commands/mirror.d.ts +3 -0
  9. package/dist/commands/mirror.d.ts.map +1 -0
  10. package/dist/commands/mirror.js +36 -0
  11. package/dist/commands/tag.d.ts +3 -0
  12. package/dist/commands/tag.d.ts.map +1 -0
  13. package/dist/commands/tag.js +44 -0
  14. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts +5 -0
  15. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts.map +1 -0
  16. package/dist/lib/arrange/application/ports/file-walker.port.d.ts +5 -0
  17. package/dist/lib/arrange/application/ports/file-walker.port.d.ts.map +1 -0
  18. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts +6 -0
  19. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts.map +1 -0
  20. package/dist/lib/arrange/application/requests/analyze-directory.request.js +4 -0
  21. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts +18 -0
  22. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts.map +1 -0
  23. package/dist/lib/arrange/application/requests/arrange-sync.request.js +15 -0
  24. package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts +8 -0
  25. package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts.map +1 -0
  26. package/dist/lib/arrange/application/requests/suggest-groups.request.js +8 -0
  27. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts +17 -0
  28. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts.map +1 -0
  29. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.js +24 -0
  30. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts +17 -0
  31. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts.map +1 -0
  32. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.js +46 -0
  33. package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts +5 -0
  34. package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts.map +1 -0
  35. package/dist/lib/arrange/application/use-cases/group-file.use-case.js +40 -0
  36. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts +19 -0
  37. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts.map +1 -0
  38. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.js +85 -0
  39. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts +7 -0
  40. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts.map +1 -0
  41. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.js +10 -0
  42. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts +12 -0
  43. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts.map +1 -0
  44. package/dist/lib/arrange/domain/arrange-analyze.service.js +116 -0
  45. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts +53 -0
  46. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts.map +1 -0
  47. package/dist/lib/arrange/domain/arrange-grouping.service.js +106 -0
  48. package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts +28 -0
  49. package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts.map +1 -0
  50. package/dist/lib/arrange/domain/ast/ast-helpers.helper.js +130 -0
  51. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts +179 -0
  52. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts.map +1 -0
  53. package/dist/lib/arrange/domain/ast/ast-node.model.js +210 -0
  54. package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts +7 -0
  55. package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts.map +1 -0
  56. package/dist/lib/arrange/domain/ast/collectors-cn.collector.js +70 -0
  57. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts +4 -0
  58. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts.map +1 -0
  59. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.js +21 -0
  60. package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts +13 -0
  61. package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts.map +1 -0
  62. package/dist/lib/arrange/domain/ast/collectors-tv.collector.js +302 -0
  63. package/dist/lib/arrange/domain/ast/targets.model.d.ts +8 -0
  64. package/dist/lib/arrange/domain/ast/targets.model.d.ts.map +1 -0
  65. package/dist/lib/arrange/domain/ast/targets.model.js +147 -0
  66. package/dist/lib/arrange/domain/constants.domain.d.ts +70 -0
  67. package/dist/lib/arrange/domain/constants.domain.d.ts.map +1 -0
  68. package/dist/lib/arrange/domain/constants.domain.js +182 -0
  69. package/dist/lib/arrange/domain/errors.domain.d.ts +14 -0
  70. package/dist/lib/arrange/domain/errors.domain.d.ts.map +1 -0
  71. package/dist/lib/arrange/domain/errors.domain.js +16 -0
  72. package/dist/lib/arrange/domain/grouping.domain.d.ts +41 -0
  73. package/dist/lib/arrange/domain/grouping.domain.d.ts.map +1 -0
  74. package/dist/lib/arrange/domain/grouping.domain.js +371 -0
  75. package/dist/lib/arrange/domain/imports.domain.d.ts +7 -0
  76. package/dist/lib/arrange/domain/imports.domain.d.ts.map +1 -0
  77. package/dist/lib/arrange/domain/imports.domain.js +80 -0
  78. package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts +16 -0
  79. package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts.map +1 -0
  80. package/dist/lib/arrange/domain/source-text-formatters.formatter.js +55 -0
  81. package/dist/lib/arrange/domain/tokenizer.util.d.ts +45 -0
  82. package/dist/lib/arrange/domain/tokenizer.util.d.ts.map +1 -0
  83. package/dist/lib/arrange/domain/tokenizer.util.js +469 -0
  84. package/dist/lib/arrange/domain/types.domain.d.ts +115 -0
  85. package/dist/lib/arrange/domain/types.domain.d.ts.map +1 -0
  86. package/dist/lib/arrange/domain/types.domain.js +10 -0
  87. package/dist/lib/arrange/index.d.ts +45 -0
  88. package/dist/lib/arrange/index.d.ts.map +1 -0
  89. package/dist/lib/arrange/index.js +41 -0
  90. package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts +14 -0
  91. package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts.map +1 -0
  92. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts +11 -0
  93. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts.map +1 -0
  94. package/dist/lib/arrange/infra/domain-source-parser.adapter.js +19 -0
  95. package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts +3 -0
  96. package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts.map +1 -0
  97. package/dist/lib/arrange/infra/ensure-cn-import.adapter.js +6 -0
  98. package/dist/lib/arrange/infra/file-walker.adapter.d.ts +8 -0
  99. package/dist/lib/arrange/infra/file-walker.adapter.d.ts.map +1 -0
  100. package/dist/lib/arrange/infra/file-walker.adapter.js +17 -0
  101. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts +8 -0
  102. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts.map +1 -0
  103. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.js +25 -0
  104. package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts +10 -0
  105. package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts.map +1 -0
  106. package/dist/lib/arrange/infra/ts-ast-translator.adapter.js +363 -0
  107. package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts +14 -0
  108. package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts.map +1 -0
  109. package/dist/lib/arrange/presentation/arrange-prelude.presenter.js +24 -0
  110. package/dist/lib/arrange/presentation/formatters.presenter.d.ts +3 -0
  111. package/dist/lib/arrange/presentation/formatters.presenter.d.ts.map +1 -0
  112. package/dist/lib/arrange/presentation/formatters.presenter.js +2 -0
  113. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts +4 -0
  114. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts.map +1 -0
  115. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.js +4 -0
  116. package/dist/lib/arrange/presentation/report.presenter.d.ts +4 -0
  117. package/dist/lib/arrange/presentation/report.presenter.d.ts.map +1 -0
  118. package/dist/lib/arrange/presentation/report.presenter.js +37 -0
  119. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts +2 -0
  120. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts.map +1 -0
  121. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.js +7 -0
  122. package/dist/lib/config/domain/schema.domain.d.ts +50 -0
  123. package/dist/lib/config/domain/schema.domain.d.ts.map +1 -0
  124. package/dist/lib/config/domain/schema.domain.js +43 -0
  125. package/dist/lib/config/index.d.ts +4 -0
  126. package/dist/lib/config/index.d.ts.map +1 -0
  127. package/dist/lib/config/index.js +2 -0
  128. package/dist/lib/config/infra/loader.adapter.d.ts +11 -0
  129. package/dist/lib/config/infra/loader.adapter.d.ts.map +1 -0
  130. package/dist/lib/config/infra/loader.adapter.js +90 -0
  131. package/dist/lib/core/application/architecture-boundaries.policy.d.ts +19 -0
  132. package/dist/lib/core/application/architecture-boundaries.policy.d.ts.map +1 -0
  133. package/dist/lib/core/application/architecture-boundaries.policy.js +370 -0
  134. package/dist/lib/core/application/ports/cli-io.port.d.ts +31 -0
  135. package/dist/lib/core/application/ports/cli-io.port.d.ts.map +1 -0
  136. package/dist/lib/core/application/schema-parse.util.d.ts +8 -0
  137. package/dist/lib/core/application/schema-parse.util.d.ts.map +1 -0
  138. package/dist/lib/core/application/schema-parse.util.js +20 -0
  139. package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts +6 -0
  140. package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts.map +1 -0
  141. package/dist/lib/core/application/utils/caught-unknown-message.util.js +34 -0
  142. package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts +5 -0
  143. package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts.map +1 -0
  144. package/dist/lib/core/application/utils/verbose-diagnostics.util.js +7 -0
  145. package/dist/lib/core/domain/errors.domain.d.ts +11 -0
  146. package/dist/lib/core/domain/errors.domain.d.ts.map +1 -0
  147. package/dist/lib/core/domain/errors.domain.js +9 -0
  148. package/dist/lib/core/domain/result.model.d.ts +17 -0
  149. package/dist/lib/core/domain/result.model.d.ts.map +1 -0
  150. package/dist/lib/core/domain/result.model.js +15 -0
  151. package/dist/lib/core/infra/container.adapter.d.ts +58 -0
  152. package/dist/lib/core/infra/container.adapter.d.ts.map +1 -0
  153. package/dist/lib/core/infra/container.adapter.js +80 -0
  154. package/dist/lib/core/infra/logging-decorator.adapter.d.ts +12 -0
  155. package/dist/lib/core/infra/logging-decorator.adapter.d.ts.map +1 -0
  156. package/dist/lib/core/infra/logging-decorator.adapter.js +75 -0
  157. package/dist/lib/core/presentation/cli-executor.presenter.d.ts +33 -0
  158. package/dist/lib/core/presentation/cli-executor.presenter.d.ts.map +1 -0
  159. package/dist/lib/core/presentation/cli-executor.presenter.js +73 -0
  160. package/dist/lib/core/presentation/format-app-error.presenter.d.ts +6 -0
  161. package/dist/lib/core/presentation/format-app-error.presenter.d.ts.map +1 -0
  162. package/dist/lib/core/presentation/format-app-error.presenter.js +19 -0
  163. package/dist/lib/core/presentation/global-cli-options.presenter.d.ts +9 -0
  164. package/dist/lib/core/presentation/global-cli-options.presenter.d.ts.map +1 -0
  165. package/dist/lib/core/presentation/global-cli-options.presenter.js +8 -0
  166. package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts +8 -0
  167. package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts.map +1 -0
  168. package/dist/lib/core/presentation/load-codefast-config.presenter.js +15 -0
  169. package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts +5 -0
  170. package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts.map +1 -0
  171. package/dist/lib/core/presentation/parse-cli-schema.presenter.js +4 -0
  172. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts +6 -0
  173. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts.map +1 -0
  174. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.js +17 -0
  175. package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts +5 -0
  176. package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts.map +1 -0
  177. package/dist/lib/core/presentation/workspace-root-strict.presenter.js +12 -0
  178. package/dist/lib/infra/config-reporter.adapter.d.ts +4 -0
  179. package/dist/lib/infra/config-reporter.adapter.d.ts.map +1 -0
  180. package/dist/lib/infra/config-reporter.adapter.js +9 -0
  181. package/dist/lib/infra/fs-contract.port.d.ts +2 -0
  182. package/dist/lib/infra/fs-contract.port.d.ts.map +1 -0
  183. package/dist/lib/infra/fs-contract.port.js +1 -0
  184. package/dist/lib/infra/node-io.adapter.d.ts +4 -0
  185. package/dist/lib/infra/node-io.adapter.d.ts.map +1 -0
  186. package/dist/lib/infra/node-io.adapter.js +37 -0
  187. package/dist/lib/infra/workspace/repo-root.adapter.d.ts +7 -0
  188. package/dist/lib/infra/workspace/repo-root.adapter.d.ts.map +1 -0
  189. package/dist/lib/infra/workspace/repo-root.adapter.js +23 -0
  190. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts +6 -0
  191. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts.map +1 -0
  192. package/dist/lib/mirror/application/ports/file-system-service.port.js +1 -0
  193. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts +27 -0
  194. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts.map +1 -0
  195. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.js +1 -0
  196. package/dist/lib/mirror/application/ports/package-repository.port.d.ts +16 -0
  197. package/dist/lib/mirror/application/ports/package-repository.port.d.ts.map +1 -0
  198. package/dist/lib/mirror/application/ports/package-repository.port.js +1 -0
  199. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts +7 -0
  200. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts.map +1 -0
  201. package/dist/lib/mirror/application/ports/workspace-service.port.js +1 -0
  202. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts +10 -0
  203. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts.map +1 -0
  204. package/dist/lib/mirror/application/requests/mirror-sync.request.js +8 -0
  205. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts +10 -0
  206. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts.map +1 -0
  207. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.js +271 -0
  208. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts +19 -0
  209. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts.map +1 -0
  210. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.js +168 -0
  211. package/dist/lib/mirror/domain/constants.domain.d.ts +6 -0
  212. package/dist/lib/mirror/domain/constants.domain.d.ts.map +1 -0
  213. package/dist/lib/mirror/domain/constants.domain.js +5 -0
  214. package/dist/lib/mirror/domain/errors.domain.d.ts +10 -0
  215. package/dist/lib/mirror/domain/errors.domain.d.ts.map +1 -0
  216. package/dist/lib/mirror/domain/errors.domain.js +12 -0
  217. package/dist/lib/mirror/domain/types.domain.d.ts +65 -0
  218. package/dist/lib/mirror/domain/types.domain.d.ts.map +1 -0
  219. package/dist/lib/mirror/domain/types.domain.js +1 -0
  220. package/dist/lib/mirror/index.d.ts +6 -0
  221. package/dist/lib/mirror/index.d.ts.map +1 -0
  222. package/dist/lib/mirror/index.js +1 -0
  223. package/dist/lib/mirror/infra/dirent-list.adapter.d.ts +9 -0
  224. package/dist/lib/mirror/infra/dirent-list.adapter.d.ts.map +1 -0
  225. package/dist/lib/mirror/infra/dirent-list.adapter.js +13 -0
  226. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts +7 -0
  227. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts.map +1 -0
  228. package/dist/lib/mirror/infra/file-system-service.adapter.js +47 -0
  229. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts +14 -0
  230. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts.map +1 -0
  231. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.js +1 -0
  232. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts +3 -0
  233. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts.map +1 -0
  234. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.js +13 -0
  235. package/dist/lib/mirror/infra/package-filter.adapter.d.ts +8 -0
  236. package/dist/lib/mirror/infra/package-filter.adapter.d.ts.map +1 -0
  237. package/dist/lib/mirror/infra/package-filter.adapter.js +33 -0
  238. package/dist/lib/mirror/infra/package-repository.adapter.d.ts +17 -0
  239. package/dist/lib/mirror/infra/package-repository.adapter.d.ts.map +1 -0
  240. package/dist/lib/mirror/infra/package-repository.adapter.js +17 -0
  241. package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts +2 -0
  242. package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts.map +1 -0
  243. package/dist/lib/mirror/infra/path-normalizer.adapter.js +4 -0
  244. package/dist/lib/mirror/infra/update-pkg.adapter.d.ts +19 -0
  245. package/dist/lib/mirror/infra/update-pkg.adapter.d.ts.map +1 -0
  246. package/dist/lib/mirror/infra/update-pkg.adapter.js +156 -0
  247. package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts +26 -0
  248. package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts.map +1 -0
  249. package/dist/lib/mirror/infra/workspace-packages.adapter.js +170 -0
  250. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts +8 -0
  251. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts.map +1 -0
  252. package/dist/lib/mirror/infra/workspace-service.adapter.js +10 -0
  253. package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts +17 -0
  254. package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts.map +1 -0
  255. package/dist/lib/mirror/presentation/mirror-prelude.presenter.js +35 -0
  256. package/dist/lib/mirror/presentation/reporter.presenter.d.ts +25 -0
  257. package/dist/lib/mirror/presentation/reporter.presenter.d.ts.map +1 -0
  258. package/dist/lib/mirror/presentation/reporter.presenter.js +140 -0
  259. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts +11 -0
  260. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts.map +1 -0
  261. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.js +27 -0
  262. package/dist/lib/shared/source-code/domain/text-edit.model.d.ts +14 -0
  263. package/dist/lib/shared/source-code/domain/text-edit.model.d.ts.map +1 -0
  264. package/dist/lib/shared/source-code/domain/text-edit.model.js +30 -0
  265. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts +4 -0
  266. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts.map +1 -0
  267. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.js +37 -0
  268. package/dist/lib/tag/application/ports/target-resolver.port.d.ts +6 -0
  269. package/dist/lib/tag/application/ports/target-resolver.port.d.ts.map +1 -0
  270. package/dist/lib/tag/application/ports/target-resolver.port.js +1 -0
  271. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts +6 -0
  272. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts.map +1 -0
  273. package/dist/lib/tag/application/ports/typescript-tree-walk.port.js +1 -0
  274. package/dist/lib/tag/application/requests/tag-sync.request.d.ts +10 -0
  275. package/dist/lib/tag/application/requests/tag-sync.request.d.ts.map +1 -0
  276. package/dist/lib/tag/application/requests/tag-sync.request.js +8 -0
  277. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts +23 -0
  278. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts.map +1 -0
  279. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.js +357 -0
  280. package/dist/lib/tag/domain/types.domain.d.ts +56 -0
  281. package/dist/lib/tag/domain/types.domain.d.ts.map +1 -0
  282. package/dist/lib/tag/domain/types.domain.js +1 -0
  283. package/dist/lib/tag/index.d.ts +14 -0
  284. package/dist/lib/tag/index.d.ts.map +1 -0
  285. package/dist/lib/tag/index.js +10 -0
  286. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts +14 -0
  287. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts.map +1 -0
  288. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.js +1 -0
  289. package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts +4 -0
  290. package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts.map +1 -0
  291. package/dist/lib/tag/infra/tag-target-candidates.adapter.js +200 -0
  292. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts +3 -0
  293. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts.map +1 -0
  294. package/dist/lib/tag/infra/tag-target-resolver.adapter.js +4 -0
  295. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts +3 -0
  296. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts.map +1 -0
  297. package/dist/lib/tag/infra/typescript-tree-walk.adapter.js +4 -0
  298. package/dist/lib/tag/presentation/colors.presenter.d.ts +8 -0
  299. package/dist/lib/tag/presentation/colors.presenter.d.ts.map +1 -0
  300. package/dist/lib/tag/presentation/colors.presenter.js +9 -0
  301. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts +8 -0
  302. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts.map +1 -0
  303. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.js +10 -0
  304. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts +8 -0
  305. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts.map +1 -0
  306. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.js +10 -0
  307. package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts +15 -0
  308. package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts.map +1 -0
  309. package/dist/lib/tag/presentation/tag-prelude.presenter.js +31 -0
  310. package/dist/lib/tag/presentation/tag-sync.presenter.d.ts +20 -0
  311. package/dist/lib/tag/presentation/tag-sync.presenter.d.ts.map +1 -0
  312. package/dist/lib/tag/presentation/tag-sync.presenter.js +92 -0
  313. package/dist/program.d.ts +4 -0
  314. package/dist/program.d.ts.map +1 -0
  315. package/dist/program.js +40 -0
  316. package/package.json +8 -5
  317. package/dist/commands/arrange.mjs +0 -107
  318. package/dist/commands/mirror.mjs +0 -66
  319. package/dist/commands/tag.mjs +0 -58
  320. package/dist/lib/arrange/application/analyze.mjs +0 -92
  321. package/dist/lib/arrange/application/group-file.mjs +0 -113
  322. package/dist/lib/arrange/application/run-target.mjs +0 -65
  323. package/dist/lib/arrange/domain/ast/ast-helpers.mjs +0 -115
  324. package/dist/lib/arrange/domain/ast/collectors-cn.mjs +0 -61
  325. package/dist/lib/arrange/domain/ast/collectors-jsx.mjs +0 -20
  326. package/dist/lib/arrange/domain/ast/collectors-tv.mjs +0 -170
  327. package/dist/lib/arrange/domain/ast/targets.mjs +0 -106
  328. package/dist/lib/arrange/domain/constants.mjs +0 -169
  329. package/dist/lib/arrange/domain/errors.mjs +0 -19
  330. package/dist/lib/arrange/domain/grouping.mjs +0 -235
  331. package/dist/lib/arrange/domain/imports.mjs +0 -54
  332. package/dist/lib/arrange/domain/tokenizer.mjs +0 -216
  333. package/dist/lib/arrange/index.mjs +0 -15
  334. package/dist/lib/arrange/infra/walk.mjs +0 -33
  335. package/dist/lib/arrange/presentation/formatters.mjs +0 -52
  336. package/dist/lib/arrange/presentation/report.mjs +0 -24
  337. package/dist/lib/config/domain/schema.mjs +0 -25
  338. package/dist/lib/config/index.mjs +0 -3
  339. package/dist/lib/config/infra/loader.mjs +0 -78
  340. package/dist/lib/infra/caught-unknown-message.mjs +0 -20
  341. package/dist/lib/infra/config-reporter.mjs +0 -10
  342. package/dist/lib/infra/node-io.mjs +0 -30
  343. package/dist/lib/infra/workspace/repo-root.mjs +0 -22
  344. package/dist/lib/mirror/application/engine.mjs +0 -248
  345. package/dist/lib/mirror/application/sync.mjs +0 -162
  346. package/dist/lib/mirror/domain/constants.mjs +0 -12
  347. package/dist/lib/mirror/domain/errors.mjs +0 -15
  348. package/dist/lib/mirror/index.mjs +0 -2
  349. package/dist/lib/mirror/infra/dirent-list.mjs +0 -14
  350. package/dist/lib/mirror/infra/package-filter.mjs +0 -26
  351. package/dist/lib/mirror/infra/path-normalizer.mjs +0 -7
  352. package/dist/lib/mirror/infra/update-pkg.mjs +0 -105
  353. package/dist/lib/mirror/infra/workspace-packages.mjs +0 -159
  354. package/dist/lib/mirror/presentation/reporter.mjs +0 -111
  355. package/dist/lib/tag/application/engine.mjs +0 -287
  356. package/dist/lib/tag/index.mjs +0 -4
  357. package/dist/lib/tag/infra/target-resolver.mjs +0 -170
  358. package/dist/lib/tag/presentation/colors.mjs +0 -12
  359. package/dist/lib/tag/presentation/tag-presenter.mjs +0 -63
  360. package/dist/program.mjs +0 -34
  361. /package/dist/lib/arrange/{domain/types.mjs → application/ports/domain-source-parser.port.js} +0 -0
  362. /package/dist/lib/{infra/fs-contract.mjs → arrange/application/ports/file-walker.port.js} +0 -0
  363. /package/dist/lib/{mirror/domain/types.mjs → arrange/infra/arrange-sync-cli-options.adapter.js} +0 -0
  364. /package/dist/lib/{tag/domain/types.mjs → core/application/ports/cli-io.port.js} +0 -0
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Analyze and suggest Tailwind class grouping inside `cn(...)` / `tv(...)`.
3
+ *
4
+ * Detects literals in cn arguments: direct strings, ternaries, arrays, string concatenation.
5
+ * tv: compoundVariants[].className / class; nested cn literals use the same rules.
6
+ * Direct `cn(...)` inside tv config is discouraged — analyze/preview/apply may replace it with
7
+ * a string (one argument) or an array (≥2 arguments). Literals in bare tv arrays are not split
8
+ * by apply (avoids `[ [` artifacts).
9
+ *
10
+ * Tailwind CSS v4-oriented heuristics (class buckets follow **render-pipeline order**):
11
+ * existence → position → layout → sizing → spacing → shape → background → shadow
12
+ * → typography → composite → motion → starting → behavior → state (variants) → selector variants.
13
+ * - Container queries (@min-* / @max-* / @[…] / @sm / @md / @3xl / @max-3xs, md/sidebar:, …)
14
+ * - Logical properties (ps/pe/ms/me/start/end)
15
+ * - not-* modifier; has-*; in-[…]; * / **; nth-* (including numeric); media (pointer-*, contrast-* …)
16
+ * - Newer utilities: inset-shadow, field-sizing, mask-*, text-shadow-*, scheme-*, …
17
+ * - Arbitrary variants [&...] in general forms
18
+ *
19
+ * Usage (repo root):
20
+ * pnpm cli:arrange-analyze [dir|file]
21
+ * pnpm exec codefast arrange analyze [dir|file]
22
+ * pnpm exec codefast arrange group flex gap-2 rounded-md border px-3
23
+ * pnpm exec codefast arrange group -- … --tv
24
+ */
25
+ export { analyzeDirectory } from "#lib/arrange/application/use-cases/analyze-directory.use-case";
26
+ export { printAnalyzeReport } from "#lib/arrange/presentation/report.presenter";
27
+ export { groupFile } from "#lib/arrange/application/use-cases/group-file.use-case";
28
+ export { runOnTarget, runArrangeSync, } from "#lib/arrange/application/use-cases/run-arrange-sync.use-case";
29
+ export { createNodeCliFs, createNodeCliLogger } from "#lib/infra/node-io.adapter";
30
+ export { domainSourceParserAdapter } from "#lib/arrange/infra/domain-source-parser.adapter";
31
+ export { ArrangeError, ArrangeErrorCode } from "#lib/arrange/domain/errors.domain";
32
+ export { DEFAULT_ARRANGE_TARGET, LONG_STRING_TOKEN_THRESHOLD, MAX_STRIP_VARIANT_PASSES, } from "#lib/arrange/domain/constants.domain";
33
+ export { cnModuleSpecifierForFile } from "#lib/arrange/domain/imports.domain";
34
+ export { ensureCnImport } from "#lib/arrange/infra/ensure-cn-import.adapter";
35
+ export { areCnTailwindPartitionsEquivalent, capGroups, mergeEaseTimingIntoFollowingAnimatedState, mergeSingletons, suggestCnGroups, summarizeGroupBucketLabels, } from "#lib/arrange/domain/grouping.domain";
36
+ export { classifyToken, indexOfFirstVariantColon, stripVariants, tokenizeClassString, bucketsCompatible, bucketsMergeCompatible, selectorKey, stateKey, } from "#lib/arrange/domain/tokenizer.util";
37
+ export { forEachStringLiteralInClassExpression } from "#lib/arrange/domain/ast/collectors-cn.collector";
38
+ export { mergeCnUnconditionalLiteralPoolForTest } from "#lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper";
39
+ export { applyEditsDescending, buildKnownCnTvBindings, indentOfLineContaining, isCnOrTvIdentifier, KNOWN_CN_TV_MODULES, lineOf, moduleLooksLikeCnTvReexport, unwrapCnInsideTvCallReplacement, } from "#lib/arrange/domain/ast/ast-helpers.helper";
40
+ export { escapeTsStringLiteralContent, formatArray, formatCnArguments, formatCnCall, formatJsxCnAttributeValue, } from "#lib/arrange/domain/source-text-formatters.formatter";
41
+ export { DEFAULT_SKIP_DIRS, walkTsxFiles, } from "#lib/shared/source-code/infra/tsx-file-walk.adapter";
@@ -0,0 +1,14 @@
1
+ import type { CodefastArrangeConfig } from "#lib/config/domain/schema.domain";
2
+ import type { CliFs, CliLogger } from "#lib/infra/fs-contract.port";
3
+ /** CLI / container wiring: filesystem and logger injected at the boundary. */
4
+ export type ArrangeSyncOptions = {
5
+ rootDir: string;
6
+ config?: CodefastArrangeConfig;
7
+ targetPath: string;
8
+ write: boolean;
9
+ withClassName?: boolean;
10
+ cnImport?: string;
11
+ fs: CliFs;
12
+ logger: CliLogger;
13
+ };
14
+ //# sourceMappingURL=arrange-sync-cli-options.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrange-sync-cli-options.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/infra/arrange-sync-cli-options.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAEpE,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CliLogger } from "#lib/infra/fs-contract.port";
2
+ import type { DomainSourceParserPort } from "#lib/arrange/application/ports/domain-source-parser.port";
3
+ import type { DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
4
+ export declare class DomainSourceParserAdapter implements DomainSourceParserPort {
5
+ private readonly logger?;
6
+ constructor(logger?: CliLogger | undefined);
7
+ parseDomainSourceFile(filePath: string, sourceText: string): DomainSourceFile;
8
+ }
9
+ /** Default instance without diagnostics logging (tests and legacy imports). */
10
+ export declare const domainSourceParserAdapter: DomainSourceParserAdapter;
11
+ //# sourceMappingURL=domain-source-parser.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-source-parser.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/infra/domain-source-parser.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AACvG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG/E,qBAAa,yBAA0B,YAAW,sBAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAApC,YAA6B,MAAM,CAAC,EAAE,SAAS,YAAA,EAAI;IAEnD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAO5E;CACF;AAED,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,2BAAkC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message.util";
2
+ import { parseDomainSourceFile as parseDomainSourceFileFromTs } from "#lib/arrange/infra/ts-ast-translator.adapter";
3
+ export class DomainSourceParserAdapter {
4
+ logger;
5
+ constructor(logger) {
6
+ this.logger = logger;
7
+ }
8
+ parseDomainSourceFile(filePath, sourceText) {
9
+ try {
10
+ return parseDomainSourceFileFromTs(filePath, sourceText);
11
+ }
12
+ catch (caughtError) {
13
+ this.logger?.err(`[domain-source-parser] ${messageFromCaughtUnknown(caughtError)}`);
14
+ throw caughtError;
15
+ }
16
+ }
17
+ }
18
+ /** Default instance without diagnostics logging (tests and legacy imports). */
19
+ export const domainSourceParserAdapter = new DomainSourceParserAdapter();
@@ -0,0 +1,3 @@
1
+ /** Parses source then applies domain cn import injection rules (public CLI-style entry). */
2
+ export declare function ensureCnImport(sourceText: string, filePath: string, cnImportOverride?: string): string;
3
+ //# sourceMappingURL=ensure-cn-import.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-cn-import.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/infra/ensure-cn-import.adapter.ts"],"names":[],"mappings":"AAGA,4FAA4F;AAC5F,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,CAKR"}
@@ -0,0 +1,6 @@
1
+ import { ensureCnImport as ensureCnImportOnDomainSourceFile } from "#lib/arrange/domain/imports.domain";
2
+ import { parseDomainSourceFile } from "#lib/arrange/infra/ts-ast-translator.adapter";
3
+ /** Parses source then applies domain cn import injection rules (public CLI-style entry). */
4
+ export function ensureCnImport(sourceText, filePath, cnImportOverride) {
5
+ return ensureCnImportOnDomainSourceFile(parseDomainSourceFile(filePath, sourceText), cnImportOverride);
6
+ }
@@ -0,0 +1,8 @@
1
+ import type { CliFs, CliLogger } from "#lib/infra/fs-contract.port";
2
+ import type { FileWalkerPort } from "#lib/arrange/application/ports/file-walker.port";
3
+ export declare class FileWalkerAdapter implements FileWalkerPort {
4
+ private readonly logger?;
5
+ constructor(logger?: CliLogger | undefined);
6
+ walkTypeScriptFiles(rootDirectoryPath: string, fs: CliFs): string[];
7
+ }
8
+ //# sourceMappingURL=file-walker.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-walker.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/infra/file-walker.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAEtF,qBAAa,iBAAkB,YAAW,cAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAApC,YAA6B,MAAM,CAAC,EAAE,SAAS,YAAA,EAAI;IAEnD,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM,EAAE,CAOlE;CACF"}
@@ -0,0 +1,17 @@
1
+ import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message.util";
2
+ import { walkTsxFiles } from "#lib/shared/source-code/infra/tsx-file-walk.adapter";
3
+ export class FileWalkerAdapter {
4
+ logger;
5
+ constructor(logger) {
6
+ this.logger = logger;
7
+ }
8
+ walkTypeScriptFiles(rootDirectoryPath, fs) {
9
+ try {
10
+ return walkTsxFiles(rootDirectoryPath, fs);
11
+ }
12
+ catch (caughtError) {
13
+ this.logger?.err(`[file-walker] ${messageFromCaughtUnknown(caughtError)}`);
14
+ throw caughtError;
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Test / REPL helper: parse `callee(<snippet>)` and return merged unconditional literal text.
3
+ * Lives in infra because parsing uses the TypeScript-backed translator.
4
+ */
5
+ export declare function mergeCnUnconditionalLiteralPoolForTest(argsSnippet: string, options?: {
6
+ callee?: string;
7
+ }): string;
8
+ //# sourceMappingURL=merge-cn-literal-pool-for-test.test-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-cn-literal-pool-for-test.test-helper.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,wBAAgB,sCAAsC,CACpD,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,MAAM,CAmBR"}
@@ -0,0 +1,25 @@
1
+ import { isDomainCallExpression, isDomainExpressionStatement, isDomainIdentifier, } from "#lib/arrange/domain/ast/ast-node.model";
2
+ import { collectUnconditionalTailwindLiteralsFromCnArguments } from "#lib/arrange/domain/ast/collectors-cn.collector";
3
+ import { parseDomainSourceFile } from "#lib/arrange/infra/ts-ast-translator.adapter";
4
+ /**
5
+ * Test / REPL helper: parse `callee(<snippet>)` and return merged unconditional literal text.
6
+ * Lives in infra because parsing uses the TypeScript-backed translator.
7
+ */
8
+ export function mergeCnUnconditionalLiteralPoolForTest(argsSnippet, options) {
9
+ const callee = options?.callee ?? "cn";
10
+ const sourceText = `${callee}(${argsSnippet});`;
11
+ const domainSf = parseDomainSourceFile("mergeCnUnconditionalLiteralPoolForTest.ts", sourceText);
12
+ const stmt = domainSf.statements[0];
13
+ if (!isDomainExpressionStatement(stmt)) {
14
+ throw new Error("expected expression statement");
15
+ }
16
+ const call = stmt.expression;
17
+ if (!isDomainCallExpression(call) ||
18
+ !isDomainIdentifier(call.expression) ||
19
+ call.expression.text !== callee) {
20
+ throw new Error(`expected ${callee}(...) call`);
21
+ }
22
+ return collectUnconditionalTailwindLiteralsFromCnArguments(call.arguments)
23
+ .map((literal) => literal.text)
24
+ .join(" ");
25
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Anti-corruption layer: maps TypeScript compiler AST to arrange domain AST.
3
+ * This module is the only place that imports `typescript` for arrange AST translation.
4
+ */
5
+ import ts from "typescript";
6
+ import { type DomainAstNode, type DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
7
+ export declare function translateNode(n: ts.Node, parent: DomainAstNode | null, sf: ts.SourceFile): DomainAstNode;
8
+ export declare function translateTypeScriptSourceFile(tsSf: ts.SourceFile): DomainSourceFile;
9
+ export declare function parseDomainSourceFile(filePath: string, sourceText: string): DomainSourceFile;
10
+ //# sourceMappingURL=ts-ast-translator.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-ast-translator.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/infra/ts-ast-translator.adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAKL,KAAK,aAAa,EAoBlB,KAAK,gBAAgB,EAItB,MAAM,wCAAwC,CAAC;AAmChD,wBAAgB,aAAa,CAC3B,CAAC,EAAE,EAAE,CAAC,IAAI,EACV,MAAM,EAAE,aAAa,GAAG,IAAI,EAC5B,EAAE,EAAE,EAAE,CAAC,UAAU,GAChB,aAAa,CAuVf;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,gBAAgB,CAQnF;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAI5F"}
@@ -0,0 +1,363 @@
1
+ /**
2
+ * Anti-corruption layer: maps TypeScript compiler AST to arrange domain AST.
3
+ * This module is the only place that imports `typescript` for arrange AST translation.
4
+ */
5
+ import ts from "typescript";
6
+ import { DomainBinaryOperator, DomainSyntaxKind, } from "#lib/arrange/domain/ast/ast-node.model";
7
+ function translateUnknown(n, parent, sf) {
8
+ const pos = n.getStart(sf);
9
+ const end = n.getEnd();
10
+ const self = {
11
+ kind: DomainSyntaxKind.Unknown,
12
+ pos,
13
+ end,
14
+ parent,
15
+ children: [],
16
+ };
17
+ const childList = [];
18
+ ts.forEachChild(n, (child) => {
19
+ childList.push(translateNode(child, self, sf));
20
+ });
21
+ return { ...self, children: childList };
22
+ }
23
+ function mapBinaryOperator(operatorToken) {
24
+ if (operatorToken.kind === ts.SyntaxKind.PlusToken) {
25
+ return DomainBinaryOperator.Plus;
26
+ }
27
+ return DomainBinaryOperator.Other;
28
+ }
29
+ export function translateNode(n, parent, sf) {
30
+ const pos = n.getStart(sf);
31
+ const end = n.getEnd();
32
+ switch (n.kind) {
33
+ case ts.SyntaxKind.Identifier: {
34
+ const id = n;
35
+ return {
36
+ kind: DomainSyntaxKind.Identifier,
37
+ pos,
38
+ end,
39
+ parent,
40
+ text: id.text,
41
+ };
42
+ }
43
+ case ts.SyntaxKind.StringLiteral: {
44
+ const lit = n;
45
+ return {
46
+ kind: DomainSyntaxKind.StringLiteral,
47
+ pos,
48
+ end,
49
+ parent,
50
+ text: lit.text,
51
+ };
52
+ }
53
+ case ts.SyntaxKind.NoSubstitutionTemplateLiteral: {
54
+ const lit = n;
55
+ return {
56
+ kind: DomainSyntaxKind.NoSubstitutionTemplateLiteral,
57
+ pos,
58
+ end,
59
+ parent,
60
+ text: lit.text,
61
+ };
62
+ }
63
+ case ts.SyntaxKind.ImportDeclaration: {
64
+ const decl = n;
65
+ const self = {
66
+ kind: DomainSyntaxKind.ImportDeclaration,
67
+ pos,
68
+ end,
69
+ parent,
70
+ importClause: undefined,
71
+ moduleSpecifier: undefined,
72
+ };
73
+ if (decl.importClause) {
74
+ self.importClause = translateNode(decl.importClause, self, sf);
75
+ }
76
+ self.moduleSpecifier = translateNode(decl.moduleSpecifier, self, sf);
77
+ return self;
78
+ }
79
+ case ts.SyntaxKind.ImportClause: {
80
+ const clause = n;
81
+ const self = {
82
+ kind: DomainSyntaxKind.ImportClause,
83
+ pos,
84
+ end,
85
+ parent,
86
+ isTypeOnly: clause.isTypeOnly,
87
+ name: undefined,
88
+ namedBindings: undefined,
89
+ };
90
+ if (clause.name) {
91
+ self.name = translateNode(clause.name, self, sf);
92
+ }
93
+ if (clause.namedBindings) {
94
+ self.namedBindings = translateNode(clause.namedBindings, self, sf);
95
+ }
96
+ return self;
97
+ }
98
+ case ts.SyntaxKind.NamedImports: {
99
+ const named = n;
100
+ const self = {
101
+ kind: DomainSyntaxKind.NamedImports,
102
+ pos,
103
+ end,
104
+ parent,
105
+ elements: [],
106
+ };
107
+ const elements = [];
108
+ for (const element of named.elements) {
109
+ elements.push(translateNode(element, self, sf));
110
+ }
111
+ return { ...self, elements };
112
+ }
113
+ case ts.SyntaxKind.NamespaceImport: {
114
+ const ns = n;
115
+ const self = {
116
+ kind: DomainSyntaxKind.NamespaceImport,
117
+ pos,
118
+ end,
119
+ parent,
120
+ name: undefined,
121
+ };
122
+ self.name = translateNode(ns.name, self, sf);
123
+ return self;
124
+ }
125
+ case ts.SyntaxKind.ImportSpecifier: {
126
+ const spec = n;
127
+ const self = {
128
+ kind: DomainSyntaxKind.ImportSpecifier,
129
+ pos,
130
+ end,
131
+ parent,
132
+ propertyName: undefined,
133
+ name: undefined,
134
+ };
135
+ if (spec.propertyName) {
136
+ self.propertyName = translateNode(spec.propertyName, self, sf);
137
+ }
138
+ self.name = translateNode(spec.name, self, sf);
139
+ return self;
140
+ }
141
+ case ts.SyntaxKind.CallExpression: {
142
+ const call = n;
143
+ const self = {
144
+ kind: DomainSyntaxKind.CallExpression,
145
+ pos,
146
+ end,
147
+ parent,
148
+ expression: undefined,
149
+ arguments: [],
150
+ };
151
+ self.expression = translateNode(call.expression, self, sf);
152
+ self.arguments = call.arguments.map((arg) => translateNode(arg, self, sf));
153
+ return self;
154
+ }
155
+ case ts.SyntaxKind.PropertyAccessExpression: {
156
+ const pa = n;
157
+ const self = {
158
+ kind: DomainSyntaxKind.PropertyAccessExpression,
159
+ pos,
160
+ end,
161
+ parent,
162
+ expression: undefined,
163
+ name: undefined,
164
+ };
165
+ self.expression = translateNode(pa.expression, self, sf);
166
+ self.name = translateNode(pa.name, self, sf);
167
+ return self;
168
+ }
169
+ case ts.SyntaxKind.ObjectLiteralExpression: {
170
+ const obj = n;
171
+ const self = {
172
+ kind: DomainSyntaxKind.ObjectLiteralExpression,
173
+ pos,
174
+ end,
175
+ parent,
176
+ properties: [],
177
+ };
178
+ const properties = [];
179
+ for (const prop of obj.properties) {
180
+ properties.push(translateNode(prop, self, sf));
181
+ }
182
+ return { ...self, properties };
183
+ }
184
+ case ts.SyntaxKind.PropertyAssignment: {
185
+ const prop = n;
186
+ const self = {
187
+ kind: DomainSyntaxKind.PropertyAssignment,
188
+ pos,
189
+ end,
190
+ parent,
191
+ name: undefined,
192
+ initializer: undefined,
193
+ };
194
+ self.name = translateNode(prop.name, self, sf);
195
+ self.initializer = translateNode(prop.initializer, self, sf);
196
+ return self;
197
+ }
198
+ case ts.SyntaxKind.ArrayLiteralExpression: {
199
+ const arr = n;
200
+ const self = {
201
+ kind: DomainSyntaxKind.ArrayLiteralExpression,
202
+ pos,
203
+ end,
204
+ parent,
205
+ elements: [],
206
+ };
207
+ const elements = [];
208
+ for (const element of arr.elements) {
209
+ elements.push(translateNode(element, self, sf));
210
+ }
211
+ return { ...self, elements };
212
+ }
213
+ case ts.SyntaxKind.SpreadElement: {
214
+ const sp = n;
215
+ const self = {
216
+ kind: DomainSyntaxKind.SpreadElement,
217
+ pos,
218
+ end,
219
+ parent,
220
+ expression: undefined,
221
+ };
222
+ self.expression = translateNode(sp.expression, self, sf);
223
+ return self;
224
+ }
225
+ case ts.SyntaxKind.ParenthesizedExpression: {
226
+ const pe = n;
227
+ const self = {
228
+ kind: DomainSyntaxKind.ParenthesizedExpression,
229
+ pos,
230
+ end,
231
+ parent,
232
+ expression: undefined,
233
+ };
234
+ self.expression = translateNode(pe.expression, self, sf);
235
+ return self;
236
+ }
237
+ case ts.SyntaxKind.AsExpression: {
238
+ const ae = n;
239
+ const self = {
240
+ kind: DomainSyntaxKind.AsExpression,
241
+ pos,
242
+ end,
243
+ parent,
244
+ expression: undefined,
245
+ };
246
+ self.expression = translateNode(ae.expression, self, sf);
247
+ return self;
248
+ }
249
+ case ts.SyntaxKind.SatisfiesExpression: {
250
+ const se = n;
251
+ const self = {
252
+ kind: DomainSyntaxKind.SatisfiesExpression,
253
+ pos,
254
+ end,
255
+ parent,
256
+ expression: undefined,
257
+ };
258
+ self.expression = translateNode(se.expression, self, sf);
259
+ return self;
260
+ }
261
+ case ts.SyntaxKind.NonNullExpression: {
262
+ const nn = n;
263
+ const self = {
264
+ kind: DomainSyntaxKind.NonNullExpression,
265
+ pos,
266
+ end,
267
+ parent,
268
+ expression: undefined,
269
+ };
270
+ self.expression = translateNode(nn.expression, self, sf);
271
+ return self;
272
+ }
273
+ case ts.SyntaxKind.ConditionalExpression: {
274
+ const ce = n;
275
+ const self = {
276
+ kind: DomainSyntaxKind.ConditionalExpression,
277
+ pos,
278
+ end,
279
+ parent,
280
+ condition: undefined,
281
+ whenTrue: undefined,
282
+ whenFalse: undefined,
283
+ };
284
+ self.condition = translateNode(ce.condition, self, sf);
285
+ self.whenTrue = translateNode(ce.whenTrue, self, sf);
286
+ self.whenFalse = translateNode(ce.whenFalse, self, sf);
287
+ return self;
288
+ }
289
+ case ts.SyntaxKind.BinaryExpression: {
290
+ const be = n;
291
+ const self = {
292
+ kind: DomainSyntaxKind.BinaryExpression,
293
+ pos,
294
+ end,
295
+ parent,
296
+ left: undefined,
297
+ operator: mapBinaryOperator(be.operatorToken),
298
+ right: undefined,
299
+ };
300
+ self.left = translateNode(be.left, self, sf);
301
+ self.right = translateNode(be.right, self, sf);
302
+ return self;
303
+ }
304
+ case ts.SyntaxKind.ExpressionStatement: {
305
+ const es = n;
306
+ const self = {
307
+ kind: DomainSyntaxKind.ExpressionStatement,
308
+ pos,
309
+ end,
310
+ parent,
311
+ expression: undefined,
312
+ };
313
+ self.expression = translateNode(es.expression, self, sf);
314
+ return self;
315
+ }
316
+ case ts.SyntaxKind.JsxAttribute: {
317
+ const ja = n;
318
+ const self = {
319
+ kind: DomainSyntaxKind.JsxAttribute,
320
+ pos,
321
+ end,
322
+ parent,
323
+ name: undefined,
324
+ initializer: undefined,
325
+ };
326
+ self.name = translateNode(ja.name, self, sf);
327
+ if (ja.initializer) {
328
+ self.initializer = translateNode(ja.initializer, self, sf);
329
+ }
330
+ return self;
331
+ }
332
+ case ts.SyntaxKind.JsxExpression: {
333
+ const je = n;
334
+ const self = {
335
+ kind: DomainSyntaxKind.JsxExpression,
336
+ pos,
337
+ end,
338
+ parent,
339
+ expression: undefined,
340
+ };
341
+ if (je.expression) {
342
+ self.expression = translateNode(je.expression, self, sf);
343
+ }
344
+ return self;
345
+ }
346
+ default:
347
+ return translateUnknown(n, parent, sf);
348
+ }
349
+ }
350
+ export function translateTypeScriptSourceFile(tsSf) {
351
+ const text = tsSf.getFullText();
352
+ const statements = tsSf.statements.map((statement) => translateNode(statement, null, tsSf));
353
+ return {
354
+ fileName: tsSf.fileName,
355
+ text,
356
+ statements,
357
+ };
358
+ }
359
+ export function parseDomainSourceFile(filePath, sourceText) {
360
+ const scriptKind = filePath.endsWith(".tsx") ? ts.ScriptKind.TSX : ts.ScriptKind.TS;
361
+ const tsSf = ts.createSourceFile(filePath, sourceText, ts.ScriptTarget.Latest, true, scriptKind);
362
+ return translateTypeScriptSourceFile(tsSf);
363
+ }
@@ -0,0 +1,14 @@
1
+ import type { CodefastConfig } from "#lib/config/domain/schema.domain";
2
+ import { type AppError } from "#lib/core/domain/errors.domain";
3
+ import { type Result } from "#lib/core/domain/result.model";
4
+ import type { CliContainer } from "#lib/core/infra/container.adapter";
5
+ export type ArrangeTargetWorkspaceAndConfig = {
6
+ readonly resolvedTarget: string;
7
+ readonly rootDir: string;
8
+ readonly config: CodefastConfig;
9
+ };
10
+ export declare function prepareArrangeTargetWorkspaceAndConfig(cli: CliContainer, args: {
11
+ readonly currentWorkingDirectory: string;
12
+ readonly rawTarget: string | undefined;
13
+ }): Promise<Result<ArrangeTargetWorkspaceAndConfig, AppError>>;
14
+ //# sourceMappingURL=arrange-prelude.presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrange-prelude.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/presentation/arrange-prelude.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAKtE,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF,wBAAsB,sCAAsC,CAC1D,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IACJ,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC,GACA,OAAO,CAAC,MAAM,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC,CAkB5D"}
@@ -0,0 +1,24 @@
1
+ import { appError } from "#lib/core/domain/errors.domain";
2
+ import { err, ok } from "#lib/core/domain/result.model";
3
+ import { tryLoadCodefastConfig } from "#lib/core/presentation/load-codefast-config.presenter";
4
+ import { resolveCliWorkspaceRootStrict } from "#lib/core/presentation/workspace-root-strict.presenter";
5
+ import { resolveArrangeCliTargetPath } from "#lib/arrange/presentation/resolve-arrange-cli-target.presenter";
6
+ export async function prepareArrangeTargetWorkspaceAndConfig(cli, args) {
7
+ const resolvedTarget = resolveArrangeCliTargetPath(args.currentWorkingDirectory, args.rawTarget);
8
+ if (!cli.fs.existsSync(resolvedTarget)) {
9
+ return err(appError("NOT_FOUND", `Not found: ${resolvedTarget}`));
10
+ }
11
+ const rootOutcome = resolveCliWorkspaceRootStrict(cli);
12
+ if (!rootOutcome.ok) {
13
+ return rootOutcome;
14
+ }
15
+ const loadedOutcome = await tryLoadCodefastConfig(cli, rootOutcome.value);
16
+ if (!loadedOutcome.ok) {
17
+ return loadedOutcome;
18
+ }
19
+ return ok({
20
+ resolvedTarget,
21
+ rootDir: rootOutcome.value,
22
+ config: loadedOutcome.value.config,
23
+ });
24
+ }
@@ -0,0 +1,3 @@
1
+ /** @deprecated Import from `#lib/arrange/domain/source-text-formatters.formatter` — kept for stable public surface. */
2
+ export { escapeTsStringLiteralContent, formatArray, formatCnArguments, formatCnCall, formatJsxCnAttributeValue, } from "#lib/arrange/domain/source-text-formatters.formatter";
3
+ //# sourceMappingURL=formatters.presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/presentation/formatters.presenter.ts"],"names":[],"mappings":"AAAA,uHAAuH;AACvH,OAAO,EACL,4BAA4B,EAC5B,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,sDAAsD,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** @deprecated Import from `#lib/arrange/domain/source-text-formatters.formatter` — kept for stable public surface. */
2
+ export { escapeTsStringLiteralContent, formatArray, formatCnArguments, formatCnCall, formatJsxCnAttributeValue, } from "#lib/arrange/domain/source-text-formatters.formatter";
@@ -0,0 +1,4 @@
1
+ import type { CliLogger } from "#lib/core/application/ports/cli-io.port";
2
+ import { printAnalyzeReport } from "#lib/arrange/presentation/report.presenter";
3
+ export declare function presentAnalyzeCliReport(logger: CliLogger, resolvedTargetPath: string, report: Parameters<typeof printAnalyzeReport>[1]): void;
4
+ //# sourceMappingURL=present-analyze-cli.presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"present-analyze-cli.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/presentation/present-analyze-cli.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEhF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAC/C,IAAI,CAEN"}
@@ -0,0 +1,4 @@
1
+ import { printAnalyzeReport } from "#lib/arrange/presentation/report.presenter";
2
+ export function presentAnalyzeCliReport(logger, resolvedTargetPath, report) {
3
+ printAnalyzeReport(resolvedTargetPath, report, logger);
4
+ }
@@ -0,0 +1,4 @@
1
+ import type { CliLogger } from "#lib/infra/fs-contract.port";
2
+ import type { AnalyzeReport } from "#lib/arrange/domain/types.domain";
3
+ export declare function printAnalyzeReport(analyzeRootDirectoryPath: string, analyzeReport: AnalyzeReport, logger: CliLogger): void;
4
+ //# sourceMappingURL=report.presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.presenter.d.ts","sourceRoot":"","sources":["../../../../src/lib/arrange/presentation/report.presenter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE,wBAAgB,kBAAkB,CAChC,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,SAAS,GAChB,IAAI,CAkDN"}