@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 @@
1
+ {"version":3,"file":"ast-node.model.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/ast-node.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Pure-domain AST shapes for arrange analysis. No TypeScript compiler types.
3
+ * Positions mirror `getStart(sourceFile)` / `getEnd()` semantics from translation.
4
+ */
5
+ export var DomainSyntaxKind;
6
+ (function (DomainSyntaxKind) {
7
+ DomainSyntaxKind[DomainSyntaxKind["Unknown"] = 1] = "Unknown";
8
+ DomainSyntaxKind[DomainSyntaxKind["Identifier"] = 2] = "Identifier";
9
+ DomainSyntaxKind[DomainSyntaxKind["StringLiteral"] = 3] = "StringLiteral";
10
+ DomainSyntaxKind[DomainSyntaxKind["NoSubstitutionTemplateLiteral"] = 4] = "NoSubstitutionTemplateLiteral";
11
+ DomainSyntaxKind[DomainSyntaxKind["ImportDeclaration"] = 5] = "ImportDeclaration";
12
+ DomainSyntaxKind[DomainSyntaxKind["ImportClause"] = 6] = "ImportClause";
13
+ DomainSyntaxKind[DomainSyntaxKind["NamedImports"] = 7] = "NamedImports";
14
+ DomainSyntaxKind[DomainSyntaxKind["NamespaceImport"] = 8] = "NamespaceImport";
15
+ DomainSyntaxKind[DomainSyntaxKind["ImportSpecifier"] = 9] = "ImportSpecifier";
16
+ DomainSyntaxKind[DomainSyntaxKind["CallExpression"] = 10] = "CallExpression";
17
+ DomainSyntaxKind[DomainSyntaxKind["PropertyAccessExpression"] = 11] = "PropertyAccessExpression";
18
+ DomainSyntaxKind[DomainSyntaxKind["ObjectLiteralExpression"] = 12] = "ObjectLiteralExpression";
19
+ DomainSyntaxKind[DomainSyntaxKind["PropertyAssignment"] = 13] = "PropertyAssignment";
20
+ DomainSyntaxKind[DomainSyntaxKind["ArrayLiteralExpression"] = 14] = "ArrayLiteralExpression";
21
+ DomainSyntaxKind[DomainSyntaxKind["SpreadElement"] = 15] = "SpreadElement";
22
+ DomainSyntaxKind[DomainSyntaxKind["ParenthesizedExpression"] = 16] = "ParenthesizedExpression";
23
+ DomainSyntaxKind[DomainSyntaxKind["AsExpression"] = 17] = "AsExpression";
24
+ DomainSyntaxKind[DomainSyntaxKind["SatisfiesExpression"] = 18] = "SatisfiesExpression";
25
+ DomainSyntaxKind[DomainSyntaxKind["NonNullExpression"] = 19] = "NonNullExpression";
26
+ DomainSyntaxKind[DomainSyntaxKind["ConditionalExpression"] = 20] = "ConditionalExpression";
27
+ DomainSyntaxKind[DomainSyntaxKind["BinaryExpression"] = 21] = "BinaryExpression";
28
+ DomainSyntaxKind[DomainSyntaxKind["ExpressionStatement"] = 22] = "ExpressionStatement";
29
+ DomainSyntaxKind[DomainSyntaxKind["JsxAttribute"] = 23] = "JsxAttribute";
30
+ DomainSyntaxKind[DomainSyntaxKind["JsxExpression"] = 24] = "JsxExpression";
31
+ })(DomainSyntaxKind || (DomainSyntaxKind = {}));
32
+ export var DomainBinaryOperator;
33
+ (function (DomainBinaryOperator) {
34
+ DomainBinaryOperator[DomainBinaryOperator["Plus"] = 0] = "Plus";
35
+ DomainBinaryOperator[DomainBinaryOperator["Other"] = 1] = "Other";
36
+ })(DomainBinaryOperator || (DomainBinaryOperator = {}));
37
+ export function isDomainIdentifier(node) {
38
+ return node.kind === DomainSyntaxKind.Identifier;
39
+ }
40
+ export function isDomainStringLiteral(node) {
41
+ return node.kind === DomainSyntaxKind.StringLiteral;
42
+ }
43
+ export function isDomainNoSubstitutionTemplateLiteral(node) {
44
+ return node.kind === DomainSyntaxKind.NoSubstitutionTemplateLiteral;
45
+ }
46
+ export function isDomainTailwindClassLiteral(node) {
47
+ return isDomainStringLiteral(node) || isDomainNoSubstitutionTemplateLiteral(node);
48
+ }
49
+ export function isDomainImportDeclaration(node) {
50
+ return node.kind === DomainSyntaxKind.ImportDeclaration;
51
+ }
52
+ export function isDomainImportClause(node) {
53
+ return node !== undefined && node.kind === DomainSyntaxKind.ImportClause;
54
+ }
55
+ export function isDomainNamedImports(node) {
56
+ return node.kind === DomainSyntaxKind.NamedImports;
57
+ }
58
+ export function isDomainNamespaceImport(node) {
59
+ return node.kind === DomainSyntaxKind.NamespaceImport;
60
+ }
61
+ export function isDomainCallExpression(node) {
62
+ return node.kind === DomainSyntaxKind.CallExpression;
63
+ }
64
+ export function isDomainObjectLiteralExpression(node) {
65
+ return node.kind === DomainSyntaxKind.ObjectLiteralExpression;
66
+ }
67
+ export function isDomainPropertyAssignment(node) {
68
+ return node.kind === DomainSyntaxKind.PropertyAssignment;
69
+ }
70
+ export function isDomainArrayLiteralExpression(node) {
71
+ return node.kind === DomainSyntaxKind.ArrayLiteralExpression;
72
+ }
73
+ export function isDomainSpreadElement(node) {
74
+ return node.kind === DomainSyntaxKind.SpreadElement;
75
+ }
76
+ export function isDomainPropertyAccessExpression(node) {
77
+ return node.kind === DomainSyntaxKind.PropertyAccessExpression;
78
+ }
79
+ export function isDomainJsxAttribute(node) {
80
+ return node.kind === DomainSyntaxKind.JsxAttribute;
81
+ }
82
+ export function isDomainJsxExpression(node) {
83
+ return node.kind === DomainSyntaxKind.JsxExpression;
84
+ }
85
+ export function isDomainExpressionStatement(node) {
86
+ return node.kind === DomainSyntaxKind.ExpressionStatement;
87
+ }
88
+ export function forEachDomainChild(node, visit) {
89
+ switch (node.kind) {
90
+ case DomainSyntaxKind.Unknown:
91
+ for (const child of node.children) {
92
+ visit(child);
93
+ }
94
+ return;
95
+ case DomainSyntaxKind.ImportDeclaration:
96
+ if (node.importClause) {
97
+ visit(node.importClause);
98
+ }
99
+ visit(node.moduleSpecifier);
100
+ return;
101
+ case DomainSyntaxKind.ImportClause:
102
+ if (node.name) {
103
+ visit(node.name);
104
+ }
105
+ if (node.namedBindings) {
106
+ visit(node.namedBindings);
107
+ }
108
+ return;
109
+ case DomainSyntaxKind.NamedImports:
110
+ for (const element of node.elements) {
111
+ visit(element);
112
+ }
113
+ return;
114
+ case DomainSyntaxKind.NamespaceImport:
115
+ visit(node.name);
116
+ return;
117
+ case DomainSyntaxKind.ImportSpecifier:
118
+ if (node.propertyName) {
119
+ visit(node.propertyName);
120
+ }
121
+ visit(node.name);
122
+ return;
123
+ case DomainSyntaxKind.CallExpression:
124
+ visit(node.expression);
125
+ for (const arg of node.arguments) {
126
+ visit(arg);
127
+ }
128
+ return;
129
+ case DomainSyntaxKind.PropertyAccessExpression:
130
+ visit(node.expression);
131
+ visit(node.name);
132
+ return;
133
+ case DomainSyntaxKind.ObjectLiteralExpression:
134
+ for (const prop of node.properties) {
135
+ visit(prop);
136
+ }
137
+ return;
138
+ case DomainSyntaxKind.PropertyAssignment:
139
+ visit(node.name);
140
+ visit(node.initializer);
141
+ return;
142
+ case DomainSyntaxKind.ArrayLiteralExpression:
143
+ for (const element of node.elements) {
144
+ visit(element);
145
+ }
146
+ return;
147
+ case DomainSyntaxKind.SpreadElement:
148
+ visit(node.expression);
149
+ return;
150
+ case DomainSyntaxKind.ParenthesizedExpression:
151
+ case DomainSyntaxKind.AsExpression:
152
+ case DomainSyntaxKind.SatisfiesExpression:
153
+ case DomainSyntaxKind.NonNullExpression:
154
+ visit(node.expression);
155
+ return;
156
+ case DomainSyntaxKind.ConditionalExpression:
157
+ visit(node.condition);
158
+ visit(node.whenTrue);
159
+ visit(node.whenFalse);
160
+ return;
161
+ case DomainSyntaxKind.BinaryExpression:
162
+ visit(node.left);
163
+ visit(node.right);
164
+ return;
165
+ case DomainSyntaxKind.ExpressionStatement:
166
+ visit(node.expression);
167
+ return;
168
+ case DomainSyntaxKind.JsxAttribute:
169
+ visit(node.name);
170
+ if (node.initializer) {
171
+ visit(node.initializer);
172
+ }
173
+ return;
174
+ case DomainSyntaxKind.JsxExpression:
175
+ if (node.expression) {
176
+ visit(node.expression);
177
+ }
178
+ return;
179
+ default:
180
+ return;
181
+ }
182
+ }
183
+ export function forEachDomainDescendant(node, visit) {
184
+ visit(node);
185
+ forEachDomainChild(node, (child) => forEachDomainDescendant(child, visit));
186
+ }
187
+ export function forEachDomainDescendantFromSourceFile(sourceFile, visit) {
188
+ for (const statement of sourceFile.statements) {
189
+ forEachDomainDescendant(statement, visit);
190
+ }
191
+ }
192
+ export function findFirstDomainDescendantWhere(sourceFile, predicate) {
193
+ let found;
194
+ forEachDomainDescendantFromSourceFile(sourceFile, (n) => {
195
+ if (found === undefined && predicate(n)) {
196
+ found = n;
197
+ }
198
+ });
199
+ return found;
200
+ }
201
+ export function lineOfSourcePosition(sourceText, pos) {
202
+ const boundedPos = Math.max(0, Math.min(pos, sourceText.length));
203
+ let line = 1;
204
+ for (let i = 0; i < boundedPos; i++) {
205
+ if (sourceText.charCodeAt(i) === 10) {
206
+ line++;
207
+ }
208
+ }
209
+ return line;
210
+ }
@@ -0,0 +1,7 @@
1
+ import type { ForEachStringLiteralInClassExpressionOptions, TailwindClassLiteral } from "#lib/arrange/domain/types.domain";
2
+ import { type DomainAstNode } from "#lib/arrange/domain/ast/ast-node.model";
3
+ export declare function forEachStringLiteralInClassExpression(expr: DomainAstNode, sink: (classLiteral: TailwindClassLiteral) => void, depth?: number, options?: ForEachStringLiteralInClassExpressionOptions): void;
4
+ export declare function isUnsafeLiteralForCnStyleApplySplit(classLiteral: TailwindClassLiteral): boolean;
5
+ export declare const CN_APPLY_LITERAL_WALK_OPTS: ForEachStringLiteralInClassExpressionOptions;
6
+ export declare function collectUnconditionalTailwindLiteralsFromCnArguments(args: readonly DomainAstNode[]): TailwindClassLiteral[];
7
+ //# sourceMappingURL=collectors-cn.collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectors-cn.collector.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/collectors-cn.collector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,4CAA4C,EAC5C,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,wCAAwC,CAAC;AAEhD,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,IAAI,EAClD,KAAK,SAAI,EACT,OAAO,CAAC,EAAE,4CAA4C,GACrD,IAAI,CAsDN;AAED,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAE/F;AAED,eAAO,MAAM,0BAA0B,EAAE,4CAExC,CAAC;AAEF,wBAAgB,mDAAmD,CACjE,IAAI,EAAE,SAAS,aAAa,EAAE,GAC7B,oBAAoB,EAAE,CAqBxB"}
@@ -0,0 +1,70 @@
1
+ import { MAX_CLASS_EXPR_DEPTH } from "#lib/arrange/domain/constants.domain";
2
+ import { DomainBinaryOperator, DomainSyntaxKind, isDomainArrayLiteralExpression, isDomainTailwindClassLiteral, } from "#lib/arrange/domain/ast/ast-node.model";
3
+ export function forEachStringLiteralInClassExpression(expr, sink, depth = 0, options) {
4
+ if (depth > MAX_CLASS_EXPR_DEPTH) {
5
+ return;
6
+ }
7
+ if (isDomainTailwindClassLiteral(expr)) {
8
+ sink(expr);
9
+ return;
10
+ }
11
+ if (expr.kind === DomainSyntaxKind.ParenthesizedExpression) {
12
+ forEachStringLiteralInClassExpression(expr.expression, sink, depth + 1, options);
13
+ return;
14
+ }
15
+ if (expr.kind === DomainSyntaxKind.AsExpression ||
16
+ expr.kind === DomainSyntaxKind.SatisfiesExpression) {
17
+ forEachStringLiteralInClassExpression(expr.expression, sink, depth + 1, options);
18
+ return;
19
+ }
20
+ if (expr.kind === DomainSyntaxKind.NonNullExpression) {
21
+ forEachStringLiteralInClassExpression(expr.expression, sink, depth + 1, options);
22
+ return;
23
+ }
24
+ if (expr.kind === DomainSyntaxKind.ConditionalExpression) {
25
+ if (options?.descendIntoConditional === false) {
26
+ return;
27
+ }
28
+ forEachStringLiteralInClassExpression(expr.whenTrue, sink, depth + 1, options);
29
+ forEachStringLiteralInClassExpression(expr.whenFalse, sink, depth + 1, options);
30
+ return;
31
+ }
32
+ if (expr.kind === DomainSyntaxKind.BinaryExpression &&
33
+ expr.operator === DomainBinaryOperator.Plus) {
34
+ forEachStringLiteralInClassExpression(expr.left, sink, depth + 1, options);
35
+ forEachStringLiteralInClassExpression(expr.right, sink, depth + 1, options);
36
+ return;
37
+ }
38
+ if (isDomainArrayLiteralExpression(expr)) {
39
+ for (const arrayElement of expr.elements) {
40
+ if (arrayElement.kind === DomainSyntaxKind.SpreadElement) {
41
+ continue;
42
+ }
43
+ forEachStringLiteralInClassExpression(arrayElement, sink, depth + 1, options);
44
+ }
45
+ }
46
+ }
47
+ export function isUnsafeLiteralForCnStyleApplySplit(classLiteral) {
48
+ return classLiteral.parent !== null && isDomainArrayLiteralExpression(classLiteral.parent);
49
+ }
50
+ export const CN_APPLY_LITERAL_WALK_OPTS = {
51
+ descendIntoConditional: false,
52
+ };
53
+ export function collectUnconditionalTailwindLiteralsFromCnArguments(args) {
54
+ const staticLits = [];
55
+ for (const arg of args) {
56
+ if (isDomainTailwindClassLiteral(arg)) {
57
+ if (!isUnsafeLiteralForCnStyleApplySplit(arg)) {
58
+ staticLits.push(arg);
59
+ }
60
+ }
61
+ else {
62
+ forEachStringLiteralInClassExpression(arg, (lit) => {
63
+ if (!isUnsafeLiteralForCnStyleApplySplit(lit)) {
64
+ staticLits.push(lit);
65
+ }
66
+ }, 0, CN_APPLY_LITERAL_WALK_OPTS);
67
+ }
68
+ }
69
+ return staticLits;
70
+ }
@@ -0,0 +1,4 @@
1
+ import { type DomainJsxAttribute } from "#lib/arrange/domain/ast/ast-node.model";
2
+ import type { JsxClassNameStatic } from "#lib/arrange/domain/types.domain";
3
+ export declare function jsxClassNameStaticLiteral(jsxClassNameAttribute: DomainJsxAttribute): JsxClassNameStatic | undefined;
4
+ //# sourceMappingURL=collectors-jsx.collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectors-jsx.collector.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/collectors-jsx.collector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,wBAAgB,yBAAyB,CACvC,qBAAqB,EAAE,kBAAkB,GACxC,kBAAkB,GAAG,SAAS,CAsBhC"}
@@ -0,0 +1,21 @@
1
+ import { isDomainIdentifier, isDomainJsxExpression, isDomainTailwindClassLiteral, } from "#lib/arrange/domain/ast/ast-node.model";
2
+ export function jsxClassNameStaticLiteral(jsxClassNameAttribute) {
3
+ if (!isDomainIdentifier(jsxClassNameAttribute.name) ||
4
+ jsxClassNameAttribute.name.text !== "className") {
5
+ return undefined;
6
+ }
7
+ const init = jsxClassNameAttribute.initializer;
8
+ if (!init) {
9
+ return undefined;
10
+ }
11
+ if (isDomainTailwindClassLiteral(init)) {
12
+ return { lit: init, valueNode: init };
13
+ }
14
+ if (isDomainJsxExpression(init) && init.expression) {
15
+ const jsxExpressionBody = init.expression;
16
+ if (isDomainTailwindClassLiteral(jsxExpressionBody)) {
17
+ return { lit: jsxExpressionBody, valueNode: init };
18
+ }
19
+ }
20
+ return undefined;
21
+ }
@@ -0,0 +1,13 @@
1
+ import { type DomainCallExpression, type DomainObjectLiteralExpression, type DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
2
+ import type { StringNode, TailwindClassLiteral } from "#lib/arrange/domain/types.domain";
3
+ type StringNodeVisitor = (classLiteral: TailwindClassLiteral, sourceFile: DomainSourceFile, cnCall?: DomainCallExpression) => void;
4
+ export declare function traverseTvObject(sourceFile: DomainSourceFile, obj: DomainObjectLiteralExpression, visitor: StringNodeVisitor, depth?: number, knownBindings?: Set<string>): void;
5
+ export declare function collectCnCallsInsideTv(sourceFile: DomainSourceFile, obj: DomainObjectLiteralExpression, knownBindings: Set<string>, depth?: number): DomainCallExpression[];
6
+ export declare function listAllCnCallsInsideTvInSourceFile(sourceFile: DomainSourceFile, knownBindings: Set<string>): DomainCallExpression[];
7
+ export declare function makeStringNode(nodes: TailwindClassLiteral[], sourceFile: DomainSourceFile, isTvContext: boolean, cnCall?: DomainCallExpression): StringNode;
8
+ export declare function slotClassString(stringNode: StringNode): string;
9
+ export declare function emitTvSlot(lits: TailwindClassLiteral[], sourceFile: DomainSourceFile, cnCall: DomainCallExpression | undefined, results: StringNode[], seenNodePos: Set<number>): void;
10
+ export declare function collectTvSlots(sourceFile: DomainSourceFile, obj: DomainObjectLiteralExpression, knownBindings: Set<string>, results: StringNode[], seenNodePos: Set<number>, depth?: number): void;
11
+ export declare function collectGroupableStringNodes(sourceFile: DomainSourceFile): StringNode[];
12
+ export {};
13
+ //# sourceMappingURL=collectors-tv.collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectors-tv.collector.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/collectors-tv.collector.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EAQtB,MAAM,wCAAwC,CAAC;AAOhD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAQzF,KAAK,iBAAiB,GAAG,CACvB,YAAY,EAAE,oBAAoB,EAClC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,CAAC,EAAE,oBAAoB,KAC1B,IAAI,CAAC;AAEV,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,gBAAgB,EAC5B,GAAG,EAAE,6BAA6B,EAClC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,SAAI,EACT,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,IAAI,CA2EN;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,gBAAgB,EAC5B,GAAG,EAAE,6BAA6B,EAClC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,KAAK,SAAI,GACR,oBAAoB,EAAE,CAkDxB;AAED,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,oBAAoB,EAAE,CAkBxB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,oBAAoB,EAAE,EAC7B,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE,oBAAoB,GAC5B,UAAU,CAUZ;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAE9D;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,oBAAoB,EAAE,EAC5B,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,OAAO,EAAE,UAAU,EAAE,EACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,IAAI,CAmBN;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,gBAAgB,EAC5B,GAAG,EAAE,6BAA6B,EAClC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,OAAO,EAAE,UAAU,EAAE,EACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,KAAK,SAAI,GACR,IAAI,CAiHN;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU,EAAE,CAuCtF"}
@@ -0,0 +1,302 @@
1
+ import { APPLY_MIN_TOKENS, MAX_OBJECT_DEPTH } from "#lib/arrange/domain/constants.domain";
2
+ import { isDomainArrayLiteralExpression, isDomainCallExpression, isDomainObjectLiteralExpression, isDomainPropertyAssignment, isDomainSpreadElement, isDomainTailwindClassLiteral, forEachDomainChild, } from "#lib/arrange/domain/ast/ast-node.model";
3
+ import { CN_APPLY_LITERAL_WALK_OPTS, collectUnconditionalTailwindLiteralsFromCnArguments, forEachStringLiteralInClassExpression, isUnsafeLiteralForCnStyleApplySplit, } from "#lib/arrange/domain/ast/collectors-cn.collector";
4
+ import { tokenizeClassString } from "#lib/arrange/domain/tokenizer.util";
5
+ import { buildKnownCnTvBindings, isCnOrTvIdentifier, propertyAssignmentNameText, } from "#lib/arrange/domain/ast/ast-helpers.helper";
6
+ export function traverseTvObject(sourceFile, obj, visitor, depth = 0, knownBindings) {
7
+ if (depth > MAX_OBJECT_DEPTH) {
8
+ return;
9
+ }
10
+ for (const prop of obj.properties) {
11
+ if (!isDomainPropertyAssignment(prop)) {
12
+ continue;
13
+ }
14
+ const init = prop.initializer;
15
+ if (isDomainTailwindClassLiteral(init)) {
16
+ visitor(init, sourceFile, undefined);
17
+ }
18
+ else if (isDomainArrayLiteralExpression(init)) {
19
+ for (const arrayElement of init.elements) {
20
+ if (isDomainSpreadElement(arrayElement)) {
21
+ continue;
22
+ }
23
+ if (isDomainTailwindClassLiteral(arrayElement)) {
24
+ visitor(arrayElement, sourceFile, undefined);
25
+ }
26
+ else if (isDomainCallExpression(arrayElement) &&
27
+ isCnOrTvIdentifier(arrayElement.expression, "cn", knownBindings)) {
28
+ for (const arg of arrayElement.arguments) {
29
+ forEachStringLiteralInClassExpression(arg, (lit) => {
30
+ visitor(lit, sourceFile, arrayElement);
31
+ });
32
+ }
33
+ }
34
+ else if (isDomainObjectLiteralExpression(arrayElement)) {
35
+ for (const objectProperty of arrayElement.properties) {
36
+ if (!isDomainPropertyAssignment(objectProperty)) {
37
+ continue;
38
+ }
39
+ const propName = propertyAssignmentNameText(objectProperty);
40
+ if (propName !== "className" && propName !== "class") {
41
+ continue;
42
+ }
43
+ const innerInit = objectProperty.initializer;
44
+ if (isDomainTailwindClassLiteral(innerInit)) {
45
+ visitor(innerInit, sourceFile, undefined);
46
+ }
47
+ else if (isDomainArrayLiteralExpression(innerInit)) {
48
+ for (const nestedArrayElement of innerInit.elements) {
49
+ if (isDomainSpreadElement(nestedArrayElement)) {
50
+ continue;
51
+ }
52
+ if (isDomainTailwindClassLiteral(nestedArrayElement)) {
53
+ visitor(nestedArrayElement, sourceFile, undefined);
54
+ }
55
+ }
56
+ }
57
+ else if (isDomainCallExpression(innerInit) &&
58
+ isCnOrTvIdentifier(innerInit.expression, "cn", knownBindings)) {
59
+ for (const arg of innerInit.arguments) {
60
+ forEachStringLiteralInClassExpression(arg, (lit) => {
61
+ visitor(lit, sourceFile, innerInit);
62
+ });
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ else if (isDomainObjectLiteralExpression(init)) {
70
+ traverseTvObject(sourceFile, init, visitor, depth + 1, knownBindings);
71
+ }
72
+ else if (isDomainCallExpression(init) &&
73
+ isCnOrTvIdentifier(init.expression, "cn", knownBindings)) {
74
+ for (const arg of init.arguments) {
75
+ forEachStringLiteralInClassExpression(arg, (lit) => {
76
+ visitor(lit, sourceFile, init);
77
+ });
78
+ }
79
+ }
80
+ }
81
+ }
82
+ export function collectCnCallsInsideTv(sourceFile, obj, knownBindings, depth = 0) {
83
+ if (depth > MAX_OBJECT_DEPTH) {
84
+ return [];
85
+ }
86
+ const calls = [];
87
+ for (const prop of obj.properties) {
88
+ if (!isDomainPropertyAssignment(prop)) {
89
+ continue;
90
+ }
91
+ const init = prop.initializer;
92
+ if (isDomainArrayLiteralExpression(init)) {
93
+ for (const arrayElement of init.elements) {
94
+ if (isDomainSpreadElement(arrayElement)) {
95
+ continue;
96
+ }
97
+ if (isDomainCallExpression(arrayElement) &&
98
+ isCnOrTvIdentifier(arrayElement.expression, "cn", knownBindings)) {
99
+ calls.push(arrayElement);
100
+ }
101
+ else if (isDomainObjectLiteralExpression(arrayElement)) {
102
+ for (const objectProperty of arrayElement.properties) {
103
+ if (!isDomainPropertyAssignment(objectProperty)) {
104
+ continue;
105
+ }
106
+ const propName = propertyAssignmentNameText(objectProperty);
107
+ if (propName !== "className" && propName !== "class") {
108
+ continue;
109
+ }
110
+ const innerInit = objectProperty.initializer;
111
+ if (isDomainCallExpression(innerInit) &&
112
+ isCnOrTvIdentifier(innerInit.expression, "cn", knownBindings)) {
113
+ calls.push(innerInit);
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ else if (isDomainObjectLiteralExpression(init)) {
120
+ calls.push(...collectCnCallsInsideTv(sourceFile, init, knownBindings, depth + 1));
121
+ }
122
+ else if (isDomainCallExpression(init) &&
123
+ isCnOrTvIdentifier(init.expression, "cn", knownBindings)) {
124
+ calls.push(init);
125
+ }
126
+ }
127
+ return calls;
128
+ }
129
+ export function listAllCnCallsInsideTvInSourceFile(sourceFile, knownBindings) {
130
+ const calls = [];
131
+ const visitSubtree = (tsNode) => {
132
+ if (isDomainCallExpression(tsNode) &&
133
+ isCnOrTvIdentifier(tsNode.expression, "tv", knownBindings)) {
134
+ const arg0 = tsNode.arguments[0];
135
+ if (arg0 && isDomainObjectLiteralExpression(arg0)) {
136
+ calls.push(...collectCnCallsInsideTv(sourceFile, arg0, knownBindings, 0));
137
+ }
138
+ }
139
+ forEachDomainChild(tsNode, visitSubtree);
140
+ };
141
+ for (const stmt of sourceFile.statements) {
142
+ visitSubtree(stmt);
143
+ }
144
+ return calls;
145
+ }
146
+ export function makeStringNode(nodes, sourceFile, isTvContext, cnCall) {
147
+ return {
148
+ nodes,
149
+ sf: sourceFile,
150
+ isTvContext,
151
+ cnCall,
152
+ get primaryClassLiteral() {
153
+ return this.nodes[0];
154
+ },
155
+ };
156
+ }
157
+ export function slotClassString(stringNode) {
158
+ return stringNode.nodes.map((literal) => literal.text).join(" ");
159
+ }
160
+ export function emitTvSlot(lits, sourceFile, cnCall, results, seenNodePos) {
161
+ if (lits.length === 0) {
162
+ return;
163
+ }
164
+ const firstPos = lits[0].pos;
165
+ if (seenNodePos.has(firstPos)) {
166
+ return;
167
+ }
168
+ seenNodePos.add(firstPos);
169
+ const totalTokens = lits.reduce((accumulatedTokenCount, literal) => accumulatedTokenCount + tokenizeClassString(literal.text).length, 0);
170
+ if (totalTokens < APPLY_MIN_TOKENS) {
171
+ return;
172
+ }
173
+ results.push(makeStringNode(lits, sourceFile, true, cnCall));
174
+ }
175
+ export function collectTvSlots(sourceFile, obj, knownBindings, results, seenNodePos, depth = 0) {
176
+ if (depth > MAX_OBJECT_DEPTH) {
177
+ return;
178
+ }
179
+ for (const prop of obj.properties) {
180
+ if (!isDomainPropertyAssignment(prop)) {
181
+ continue;
182
+ }
183
+ const init = prop.initializer;
184
+ if (isDomainTailwindClassLiteral(init)) {
185
+ emitTvSlot([init], sourceFile, undefined, results, seenNodePos);
186
+ }
187
+ else if (isDomainArrayLiteralExpression(init)) {
188
+ const arrayPos = init.pos;
189
+ if (seenNodePos.has(arrayPos)) {
190
+ continue;
191
+ }
192
+ seenNodePos.add(arrayPos);
193
+ const staticLits = [];
194
+ for (const arrayElement of init.elements) {
195
+ if (isDomainSpreadElement(arrayElement)) {
196
+ continue;
197
+ }
198
+ if (isDomainTailwindClassLiteral(arrayElement)) {
199
+ staticLits.push(arrayElement);
200
+ }
201
+ else if (isDomainCallExpression(arrayElement) &&
202
+ isCnOrTvIdentifier(arrayElement.expression, "cn", knownBindings)) {
203
+ for (const arg of arrayElement.arguments) {
204
+ forEachStringLiteralInClassExpression(arg, (lit) => {
205
+ if (!isUnsafeLiteralForCnStyleApplySplit(lit)) {
206
+ staticLits.push(lit);
207
+ }
208
+ }, 0, CN_APPLY_LITERAL_WALK_OPTS);
209
+ }
210
+ }
211
+ else if (isDomainObjectLiteralExpression(arrayElement)) {
212
+ for (const objectProperty of arrayElement.properties) {
213
+ if (!isDomainPropertyAssignment(objectProperty)) {
214
+ continue;
215
+ }
216
+ const propName = propertyAssignmentNameText(objectProperty);
217
+ if (propName !== "className" && propName !== "class") {
218
+ continue;
219
+ }
220
+ const innerInit = objectProperty.initializer;
221
+ if (isDomainTailwindClassLiteral(innerInit)) {
222
+ emitTvSlot([innerInit], sourceFile, undefined, results, seenNodePos);
223
+ }
224
+ else if (isDomainArrayLiteralExpression(innerInit)) {
225
+ const innerLits = [];
226
+ for (const nestedArrayElement of innerInit.elements) {
227
+ if (!isDomainSpreadElement(nestedArrayElement) &&
228
+ isDomainTailwindClassLiteral(nestedArrayElement)) {
229
+ innerLits.push(nestedArrayElement);
230
+ }
231
+ }
232
+ emitTvSlot(innerLits, sourceFile, undefined, results, seenNodePos);
233
+ }
234
+ else if (isDomainCallExpression(innerInit) &&
235
+ isCnOrTvIdentifier(innerInit.expression, "cn", knownBindings)) {
236
+ const cnLits = [];
237
+ for (const arg of innerInit.arguments) {
238
+ forEachStringLiteralInClassExpression(arg, (lit) => {
239
+ if (!isUnsafeLiteralForCnStyleApplySplit(lit)) {
240
+ cnLits.push(lit);
241
+ }
242
+ }, 0, CN_APPLY_LITERAL_WALK_OPTS);
243
+ }
244
+ emitTvSlot(cnLits, sourceFile, innerInit, results, seenNodePos);
245
+ }
246
+ }
247
+ }
248
+ }
249
+ if (staticLits.length > 0) {
250
+ emitTvSlot(staticLits, sourceFile, undefined, results, seenNodePos);
251
+ }
252
+ }
253
+ else if (isDomainObjectLiteralExpression(init)) {
254
+ collectTvSlots(sourceFile, init, knownBindings, results, seenNodePos, depth + 1);
255
+ }
256
+ else if (isDomainCallExpression(init) &&
257
+ isCnOrTvIdentifier(init.expression, "cn", knownBindings)) {
258
+ const cnLits = [];
259
+ for (const arg of init.arguments) {
260
+ forEachStringLiteralInClassExpression(arg, (lit) => {
261
+ if (!isUnsafeLiteralForCnStyleApplySplit(lit)) {
262
+ cnLits.push(lit);
263
+ }
264
+ }, 0, CN_APPLY_LITERAL_WALK_OPTS);
265
+ }
266
+ emitTvSlot(cnLits, sourceFile, init, results, seenNodePos);
267
+ }
268
+ }
269
+ }
270
+ export function collectGroupableStringNodes(sourceFile) {
271
+ const results = [];
272
+ const seenNodePos = new Set();
273
+ const knownBindings = buildKnownCnTvBindings(sourceFile);
274
+ const visitTypeScriptSubtree = (tsNode) => {
275
+ if (isDomainCallExpression(tsNode)) {
276
+ if (isCnOrTvIdentifier(tsNode.expression, "cn", knownBindings)) {
277
+ const callPos = tsNode.pos;
278
+ if (seenNodePos.has(callPos)) {
279
+ forEachDomainChild(tsNode, visitTypeScriptSubtree);
280
+ return;
281
+ }
282
+ seenNodePos.add(callPos);
283
+ const staticLits = collectUnconditionalTailwindLiteralsFromCnArguments(tsNode.arguments);
284
+ const totalTokens = staticLits.reduce((accumulatedTokenCount, literal) => accumulatedTokenCount + tokenizeClassString(literal.text).length, 0);
285
+ if (staticLits.length > 0 && totalTokens >= APPLY_MIN_TOKENS) {
286
+ results.push(makeStringNode(staticLits, sourceFile, false, tsNode));
287
+ }
288
+ }
289
+ else if (isCnOrTvIdentifier(tsNode.expression, "tv", knownBindings)) {
290
+ const arg0 = tsNode.arguments[0];
291
+ if (arg0 && isDomainObjectLiteralExpression(arg0)) {
292
+ collectTvSlots(sourceFile, arg0, knownBindings, results, seenNodePos);
293
+ }
294
+ }
295
+ }
296
+ forEachDomainChild(tsNode, visitTypeScriptSubtree);
297
+ };
298
+ for (const stmt of sourceFile.statements) {
299
+ visitTypeScriptSubtree(stmt);
300
+ }
301
+ return results;
302
+ }