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

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 (426) hide show
  1. package/README.md +30 -4
  2. package/dist/{bin.js → bin.mjs} +4 -1
  3. package/dist/commands/arrange.mjs +325 -0
  4. package/dist/commands/mirror.mjs +267 -0
  5. package/dist/commands/tag.mjs +283 -0
  6. package/dist/lib/arrange/application/arrange-analyze-json.format.mjs +10 -0
  7. package/dist/lib/arrange/application/arrange-group-json.format.mjs +11 -0
  8. package/dist/lib/arrange/application/arrange-sync-cli-result.mjs +7 -0
  9. package/dist/lib/arrange/application/arrange-sync-json.format.mjs +12 -0
  10. package/dist/lib/arrange/application/services/arrange-file-processor.service.mjs +242 -0
  11. package/dist/lib/arrange/application/services/arrange-target-scanner.service.mjs +237 -0
  12. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.mjs +258 -0
  13. package/dist/lib/arrange/application/use-cases/group-file.use-case.mjs +35 -0
  14. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.mjs +283 -0
  15. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.mjs +233 -0
  16. package/dist/lib/arrange/arrange.feature.module.mjs +19 -0
  17. package/dist/lib/arrange/arrange.module.mjs +27 -0
  18. package/dist/lib/arrange/arrange.presentation.module.mjs +13 -0
  19. package/dist/lib/arrange/contracts/tokens.mjs +14 -0
  20. package/dist/lib/arrange/domain/arrange-analyze.service.mjs +95 -0
  21. package/dist/lib/arrange/domain/arrange-grouping.service.mjs +100 -0
  22. package/dist/lib/arrange/domain/ast/ast-helpers.helper.mjs +89 -0
  23. package/dist/lib/arrange/domain/ast/ast-node.model.mjs +181 -0
  24. package/dist/lib/arrange/domain/ast/collectors-cn.collector.mjs +52 -0
  25. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.mjs +20 -0
  26. package/dist/lib/arrange/domain/ast/collectors-tv.collector.mjs +174 -0
  27. package/dist/lib/arrange/domain/ast/targets.model.mjs +110 -0
  28. package/dist/lib/arrange/domain/constants.domain.mjs +154 -0
  29. package/dist/lib/arrange/domain/errors.domain.mjs +18 -0
  30. package/dist/lib/arrange/domain/grouping.domain.mjs +306 -0
  31. package/dist/lib/arrange/domain/imports.domain.mjs +55 -0
  32. package/dist/lib/arrange/domain/source-text-formatters.formatter.mjs +54 -0
  33. package/dist/lib/arrange/domain/tokenizer.util.mjs +209 -0
  34. package/dist/lib/arrange/infra/domain-source-parser.adapter.mjs +240 -0
  35. package/dist/lib/arrange/infra/ensure-cn-import.adapter.mjs +8 -0
  36. package/dist/lib/arrange/infra/file-walker.adapter.mjs +239 -0
  37. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.mjs +18 -0
  38. package/dist/lib/arrange/infra/ts-ast-translator.adapter.mjs +355 -0
  39. package/dist/lib/arrange/presentation/arrange-cli-schema.presenter.mjs +29 -0
  40. package/dist/lib/arrange/presentation/arrange-sync.presenter.mjs +12 -0
  41. package/dist/lib/arrange/presentation/formatters.presenter.mjs +2 -0
  42. package/dist/lib/arrange/presentation/group-file-preview.presenter.mjs +275 -0
  43. package/dist/lib/arrange/presentation/prepare-arrange.orchestrator.mjs +258 -0
  44. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.mjs +7 -0
  45. package/dist/lib/arrange/presentation/present-analyze-report.presenter.mjs +233 -0
  46. package/dist/lib/arrange/presentation/report.presenter.mjs +24 -0
  47. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.mjs +21 -0
  48. package/dist/lib/config/application/use-cases/load-config.use-case.mjs +17 -0
  49. package/dist/lib/config/contracts/tokens.mjs +5 -0
  50. package/dist/lib/config/infra/config-schema.adapter.mjs +25 -0
  51. package/dist/lib/config/infra/loader.adapter.mjs +84 -0
  52. package/dist/lib/core/application/architecture-boundaries.policy.mjs +311 -0
  53. package/dist/lib/core/application/ports/path.port.mjs +1 -0
  54. package/dist/lib/core/application/schema-parse.util.mjs +17 -0
  55. package/dist/lib/core/application/utils/caught-unknown-message.util.mjs +19 -0
  56. package/dist/lib/core/application/utils/verbose-diagnostics.util.mjs +9 -0
  57. package/dist/lib/core/contracts/presentation.contract.mjs +1 -0
  58. package/dist/lib/core/contracts/tokens.mjs +5 -0
  59. package/dist/lib/core/core.module.mjs +9 -0
  60. package/dist/lib/core/domain/cli-exit-codes.domain.mjs +11 -0
  61. package/dist/lib/core/domain/errors.domain.mjs +16 -0
  62. package/dist/lib/core/domain/result.model.mjs +23 -0
  63. package/dist/lib/core/infra/composition-root.mjs +21 -0
  64. package/dist/lib/core/infra/infra.module.mjs +23 -0
  65. package/dist/lib/core/infra/logging-decorator.adapter.mjs +62 -0
  66. package/dist/lib/core/infra/path.adapter.mjs +13 -0
  67. package/dist/lib/core/operational/contracts/tokens.mjs +7 -0
  68. package/dist/lib/core/presentation/cli-executor.presenter.mjs +57 -0
  69. package/dist/lib/core/presentation/command.interface.mjs +1 -0
  70. package/dist/lib/core/presentation/format-app-error.presenter.mjs +17 -0
  71. package/dist/lib/core/presentation/global-cli-options.presenter.mjs +9 -0
  72. package/dist/lib/core/presentation/load-codefast-config.presenter.mjs +18 -0
  73. package/dist/lib/core/presentation/parse-cli-schema.presenter.mjs +7 -0
  74. package/dist/lib/core/presentation/presentation.module.mjs +11 -0
  75. package/dist/lib/core/presentation/try-load-codefast-config.presenter.mjs +245 -0
  76. package/dist/lib/infra/config-reporter.adapter.mjs +9 -0
  77. package/dist/lib/infra/fs-contract.port.mjs +1 -0
  78. package/dist/lib/infra/node-io.adapter.mjs +266 -0
  79. package/dist/lib/infra/workspace/repo-root.adapter.mjs +21 -0
  80. package/dist/lib/kernel/di/command.token.mjs +5 -0
  81. package/dist/lib/mirror/application/mirror-sync-json.format.mjs +12 -0
  82. package/dist/lib/mirror/application/ports/file-system-service.port.mjs +1 -0
  83. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.mjs +1 -0
  84. package/dist/lib/mirror/application/ports/package-repository.port.mjs +1 -0
  85. package/dist/lib/mirror/application/ports/sync-workspace-package.port.mjs +1 -0
  86. package/dist/lib/mirror/application/ports/workspace-service.port.mjs +1 -0
  87. package/dist/lib/mirror/application/requests/mirror-sync.request.mjs +1 -0
  88. package/dist/lib/mirror/application/services/sync-workspace-package.service.mjs +351 -0
  89. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.mjs +219 -0
  90. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.mjs +302 -0
  91. package/dist/lib/mirror/contracts/models.mjs +1 -0
  92. package/dist/lib/mirror/contracts/presentation.contract.mjs +1 -0
  93. package/dist/lib/mirror/contracts/tokens.mjs +11 -0
  94. package/dist/lib/mirror/contracts/use-cases.contract.mjs +1 -0
  95. package/dist/lib/mirror/domain/constants.domain.mjs +16 -0
  96. package/dist/lib/mirror/domain/errors.domain.mjs +15 -0
  97. package/dist/lib/mirror/domain/types.domain.mjs +1 -0
  98. package/dist/lib/mirror/infra/dirent-list.adapter.mjs +13 -0
  99. package/dist/lib/mirror/infra/file-system-service.adapter.mjs +256 -0
  100. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.mjs +1 -0
  101. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.mjs +236 -0
  102. package/dist/lib/mirror/infra/package-filter.adapter.mjs +25 -0
  103. package/dist/lib/mirror/infra/package-repository.adapter.mjs +235 -0
  104. package/dist/lib/mirror/infra/path-normalizer.adapter.mjs +7 -0
  105. package/dist/lib/mirror/infra/update-pkg.adapter.mjs +102 -0
  106. package/dist/lib/mirror/infra/workspace-packages.adapter.mjs +154 -0
  107. package/dist/lib/mirror/infra/workspace-service.adapter.mjs +232 -0
  108. package/dist/lib/mirror/mirror.feature.module.mjs +19 -0
  109. package/dist/lib/mirror/mirror.module.mjs +23 -0
  110. package/dist/lib/mirror/mirror.presentation.module.mjs +11 -0
  111. package/dist/lib/mirror/presentation/mirror-cli-schema.presenter.mjs +12 -0
  112. package/dist/lib/mirror/presentation/prepare-mirror.orchestrator.mjs +263 -0
  113. package/dist/lib/mirror/presentation/reporter.presenter.mjs +111 -0
  114. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.mjs +20 -0
  115. package/dist/lib/shared/source-code/domain/text-edit.model.mjs +28 -0
  116. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.mjs +33 -0
  117. package/dist/lib/tag/application/ports/tag-since-writer.port.mjs +1 -0
  118. package/dist/lib/tag/application/ports/tag-version-resolver.port.mjs +1 -0
  119. package/dist/lib/tag/application/ports/target-resolver.port.mjs +1 -0
  120. package/dist/lib/tag/application/ports/typescript-tree-walk.port.mjs +1 -0
  121. package/dist/lib/tag/application/requests/tag-sync.request.mjs +1 -0
  122. package/dist/lib/tag/application/tag-sync-cli-result.mjs +11 -0
  123. package/dist/lib/tag/application/tag-sync-json.format.mjs +14 -0
  124. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.mjs +398 -0
  125. package/dist/lib/tag/contracts/models.mjs +1 -0
  126. package/dist/lib/tag/contracts/presentation.contract.mjs +1 -0
  127. package/dist/lib/tag/contracts/tokens.mjs +12 -0
  128. package/dist/lib/tag/contracts/use-cases.contract.mjs +1 -0
  129. package/dist/lib/tag/domain/types.domain.mjs +1 -0
  130. package/dist/lib/tag/infra/tag-since-writer.adapter.mjs +343 -0
  131. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.mjs +1 -0
  132. package/dist/lib/tag/infra/tag-target-candidates.adapter.mjs +170 -0
  133. package/dist/lib/tag/infra/tag-target-resolver.adapter.mjs +226 -0
  134. package/dist/lib/tag/infra/tag-version-resolver.adapter.mjs +247 -0
  135. package/dist/lib/tag/infra/typescript-tree-walk.adapter.mjs +226 -0
  136. package/dist/lib/tag/presentation/colors.presenter.mjs +12 -0
  137. package/dist/lib/tag/presentation/create-tag-progress-listener.presenter.mjs +228 -0
  138. package/dist/lib/tag/presentation/prepare-tag.orchestrator.mjs +264 -0
  139. package/dist/lib/tag/presentation/present-tag-sync-result.presenter.mjs +233 -0
  140. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.mjs +9 -0
  141. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.mjs +12 -0
  142. package/dist/lib/tag/presentation/tag-cli-schema.presenter.mjs +12 -0
  143. package/dist/lib/tag/presentation/tag-sync.presenter.mjs +78 -0
  144. package/dist/lib/tag/tag.feature.module.mjs +19 -0
  145. package/dist/lib/tag/tag.module.mjs +21 -0
  146. package/dist/lib/tag/tag.presentation.module.mjs +15 -0
  147. package/dist/program.mjs +39 -0
  148. package/package.json +16 -19
  149. package/dist/bin.d.ts +0 -3
  150. package/dist/bin.d.ts.map +0 -1
  151. package/dist/commands/arrange.d.ts +0 -3
  152. package/dist/commands/arrange.d.ts.map +0 -1
  153. package/dist/commands/arrange.js +0 -129
  154. package/dist/commands/mirror.d.ts +0 -4
  155. package/dist/commands/mirror.d.ts.map +0 -1
  156. package/dist/commands/mirror.js +0 -75
  157. package/dist/commands/tag.d.ts +0 -3
  158. package/dist/commands/tag.d.ts.map +0 -1
  159. package/dist/commands/tag.js +0 -41
  160. package/dist/lib/arrange/application/analyze.d.ts +0 -17
  161. package/dist/lib/arrange/application/analyze.d.ts.map +0 -1
  162. package/dist/lib/arrange/application/analyze.js +0 -24
  163. package/dist/lib/arrange/application/group-file-preview.d.ts +0 -17
  164. package/dist/lib/arrange/application/group-file-preview.d.ts.map +0 -1
  165. package/dist/lib/arrange/application/group-file-preview.js +0 -46
  166. package/dist/lib/arrange/application/group-file.d.ts +0 -5
  167. package/dist/lib/arrange/application/group-file.d.ts.map +0 -1
  168. package/dist/lib/arrange/application/group-file.js +0 -40
  169. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts +0 -5
  170. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts.map +0 -1
  171. package/dist/lib/arrange/application/ports/file-walker.port.d.ts +0 -5
  172. package/dist/lib/arrange/application/ports/file-walker.port.d.ts.map +0 -1
  173. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts +0 -6
  174. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts.map +0 -1
  175. package/dist/lib/arrange/application/requests/analyze-directory.request.js +0 -4
  176. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts +0 -18
  177. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts.map +0 -1
  178. package/dist/lib/arrange/application/requests/arrange-sync.request.js +0 -15
  179. package/dist/lib/arrange/application/run-target.d.ts +0 -19
  180. package/dist/lib/arrange/application/run-target.d.ts.map +0 -1
  181. package/dist/lib/arrange/application/run-target.js +0 -85
  182. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts +0 -12
  183. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts.map +0 -1
  184. package/dist/lib/arrange/domain/arrange-analyze.service.js +0 -116
  185. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts +0 -53
  186. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts.map +0 -1
  187. package/dist/lib/arrange/domain/arrange-grouping.service.js +0 -106
  188. package/dist/lib/arrange/domain/ast/ast-helpers.d.ts +0 -28
  189. package/dist/lib/arrange/domain/ast/ast-helpers.d.ts.map +0 -1
  190. package/dist/lib/arrange/domain/ast/ast-helpers.js +0 -130
  191. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts +0 -179
  192. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts.map +0 -1
  193. package/dist/lib/arrange/domain/ast/ast-node.model.js +0 -210
  194. package/dist/lib/arrange/domain/ast/collectors-cn.d.ts +0 -7
  195. package/dist/lib/arrange/domain/ast/collectors-cn.d.ts.map +0 -1
  196. package/dist/lib/arrange/domain/ast/collectors-cn.js +0 -70
  197. package/dist/lib/arrange/domain/ast/collectors-jsx.d.ts +0 -4
  198. package/dist/lib/arrange/domain/ast/collectors-jsx.d.ts.map +0 -1
  199. package/dist/lib/arrange/domain/ast/collectors-jsx.js +0 -21
  200. package/dist/lib/arrange/domain/ast/collectors-tv.d.ts +0 -13
  201. package/dist/lib/arrange/domain/ast/collectors-tv.d.ts.map +0 -1
  202. package/dist/lib/arrange/domain/ast/collectors-tv.js +0 -302
  203. package/dist/lib/arrange/domain/ast/targets.d.ts +0 -8
  204. package/dist/lib/arrange/domain/ast/targets.d.ts.map +0 -1
  205. package/dist/lib/arrange/domain/ast/targets.js +0 -147
  206. package/dist/lib/arrange/domain/constants.d.ts +0 -68
  207. package/dist/lib/arrange/domain/constants.d.ts.map +0 -1
  208. package/dist/lib/arrange/domain/constants.js +0 -180
  209. package/dist/lib/arrange/domain/errors.d.ts +0 -14
  210. package/dist/lib/arrange/domain/errors.d.ts.map +0 -1
  211. package/dist/lib/arrange/domain/errors.js +0 -16
  212. package/dist/lib/arrange/domain/grouping.d.ts +0 -41
  213. package/dist/lib/arrange/domain/grouping.d.ts.map +0 -1
  214. package/dist/lib/arrange/domain/grouping.js +0 -307
  215. package/dist/lib/arrange/domain/imports.d.ts +0 -7
  216. package/dist/lib/arrange/domain/imports.d.ts.map +0 -1
  217. package/dist/lib/arrange/domain/imports.js +0 -80
  218. package/dist/lib/arrange/domain/source-text-formatters.d.ts +0 -16
  219. package/dist/lib/arrange/domain/source-text-formatters.d.ts.map +0 -1
  220. package/dist/lib/arrange/domain/source-text-formatters.js +0 -55
  221. package/dist/lib/arrange/domain/tokenizer.d.ts +0 -45
  222. package/dist/lib/arrange/domain/tokenizer.d.ts.map +0 -1
  223. package/dist/lib/arrange/domain/tokenizer.js +0 -466
  224. package/dist/lib/arrange/domain/types.d.ts +0 -112
  225. package/dist/lib/arrange/domain/types.d.ts.map +0 -1
  226. package/dist/lib/arrange/domain/types.js +0 -7
  227. package/dist/lib/arrange/index.d.ts +0 -45
  228. package/dist/lib/arrange/index.d.ts.map +0 -1
  229. package/dist/lib/arrange/index.js +0 -41
  230. package/dist/lib/arrange/infra/arrange-sync-cli-options.d.ts +0 -14
  231. package/dist/lib/arrange/infra/arrange-sync-cli-options.d.ts.map +0 -1
  232. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts +0 -11
  233. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts.map +0 -1
  234. package/dist/lib/arrange/infra/domain-source-parser.adapter.js +0 -19
  235. package/dist/lib/arrange/infra/ensure-cn-import.d.ts +0 -3
  236. package/dist/lib/arrange/infra/ensure-cn-import.d.ts.map +0 -1
  237. package/dist/lib/arrange/infra/ensure-cn-import.js +0 -6
  238. package/dist/lib/arrange/infra/file-walker.adapter.d.ts +0 -8
  239. package/dist/lib/arrange/infra/file-walker.adapter.d.ts.map +0 -1
  240. package/dist/lib/arrange/infra/file-walker.adapter.js +0 -17
  241. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.d.ts +0 -8
  242. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.d.ts.map +0 -1
  243. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.js +0 -25
  244. package/dist/lib/arrange/infra/ts-ast-translator.d.ts +0 -10
  245. package/dist/lib/arrange/infra/ts-ast-translator.d.ts.map +0 -1
  246. package/dist/lib/arrange/infra/ts-ast-translator.js +0 -363
  247. package/dist/lib/arrange/presentation/formatters.d.ts +0 -3
  248. package/dist/lib/arrange/presentation/formatters.d.ts.map +0 -1
  249. package/dist/lib/arrange/presentation/formatters.js +0 -2
  250. package/dist/lib/arrange/presentation/report.d.ts +0 -4
  251. package/dist/lib/arrange/presentation/report.d.ts.map +0 -1
  252. package/dist/lib/arrange/presentation/report.js +0 -37
  253. package/dist/lib/config/domain/schema.d.ts +0 -50
  254. package/dist/lib/config/domain/schema.d.ts.map +0 -1
  255. package/dist/lib/config/domain/schema.js +0 -43
  256. package/dist/lib/config/index.d.ts +0 -4
  257. package/dist/lib/config/index.d.ts.map +0 -1
  258. package/dist/lib/config/index.js +0 -2
  259. package/dist/lib/config/infra/loader.d.ts +0 -11
  260. package/dist/lib/config/infra/loader.d.ts.map +0 -1
  261. package/dist/lib/config/infra/loader.js +0 -90
  262. package/dist/lib/core/application/architecture-boundaries.d.ts +0 -19
  263. package/dist/lib/core/application/architecture-boundaries.d.ts.map +0 -1
  264. package/dist/lib/core/application/architecture-boundaries.js +0 -263
  265. package/dist/lib/core/application/ports/cli-io.port.d.ts +0 -27
  266. package/dist/lib/core/application/ports/cli-io.port.d.ts.map +0 -1
  267. package/dist/lib/core/application/schema-parse.d.ts +0 -8
  268. package/dist/lib/core/application/schema-parse.d.ts.map +0 -1
  269. package/dist/lib/core/application/schema-parse.js +0 -20
  270. package/dist/lib/core/application/utils/caught-unknown-message.d.ts +0 -6
  271. package/dist/lib/core/application/utils/caught-unknown-message.d.ts.map +0 -1
  272. package/dist/lib/core/application/utils/caught-unknown-message.js +0 -34
  273. package/dist/lib/core/application/utils/verbose-diagnostics.d.ts +0 -5
  274. package/dist/lib/core/application/utils/verbose-diagnostics.d.ts.map +0 -1
  275. package/dist/lib/core/application/utils/verbose-diagnostics.js +0 -7
  276. package/dist/lib/core/domain/errors.d.ts +0 -11
  277. package/dist/lib/core/domain/errors.d.ts.map +0 -1
  278. package/dist/lib/core/domain/errors.js +0 -9
  279. package/dist/lib/core/domain/result.d.ts +0 -15
  280. package/dist/lib/core/domain/result.d.ts.map +0 -1
  281. package/dist/lib/core/domain/result.js +0 -9
  282. package/dist/lib/core/infra/container.d.ts +0 -34
  283. package/dist/lib/core/infra/container.d.ts.map +0 -1
  284. package/dist/lib/core/infra/container.js +0 -65
  285. package/dist/lib/core/infra/logging-decorator.d.ts +0 -12
  286. package/dist/lib/core/infra/logging-decorator.d.ts.map +0 -1
  287. package/dist/lib/core/infra/logging-decorator.js +0 -75
  288. package/dist/lib/core/presentation/cli-executor.d.ts +0 -33
  289. package/dist/lib/core/presentation/cli-executor.d.ts.map +0 -1
  290. package/dist/lib/core/presentation/cli-executor.js +0 -73
  291. package/dist/lib/core/presentation/create-command-handler.d.ts +0 -20
  292. package/dist/lib/core/presentation/create-command-handler.d.ts.map +0 -1
  293. package/dist/lib/core/presentation/create-command-handler.js +0 -70
  294. package/dist/lib/core/presentation/format-app-error.d.ts +0 -6
  295. package/dist/lib/core/presentation/format-app-error.d.ts.map +0 -1
  296. package/dist/lib/core/presentation/format-app-error.js +0 -19
  297. package/dist/lib/infra/caught-unknown-message.d.ts +0 -2
  298. package/dist/lib/infra/caught-unknown-message.d.ts.map +0 -1
  299. package/dist/lib/infra/caught-unknown-message.js +0 -1
  300. package/dist/lib/infra/config-reporter.d.ts +0 -4
  301. package/dist/lib/infra/config-reporter.d.ts.map +0 -1
  302. package/dist/lib/infra/config-reporter.js +0 -9
  303. package/dist/lib/infra/fs-contract.d.ts +0 -2
  304. package/dist/lib/infra/fs-contract.d.ts.map +0 -1
  305. package/dist/lib/infra/node-io.d.ts +0 -4
  306. package/dist/lib/infra/node-io.d.ts.map +0 -1
  307. package/dist/lib/infra/node-io.js +0 -27
  308. package/dist/lib/infra/workspace/repo-root.d.ts +0 -7
  309. package/dist/lib/infra/workspace/repo-root.d.ts.map +0 -1
  310. package/dist/lib/infra/workspace/repo-root.js +0 -23
  311. package/dist/lib/mirror/application/engine.d.ts +0 -10
  312. package/dist/lib/mirror/application/engine.d.ts.map +0 -1
  313. package/dist/lib/mirror/application/engine.js +0 -271
  314. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts +0 -6
  315. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts.map +0 -1
  316. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts +0 -27
  317. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts.map +0 -1
  318. package/dist/lib/mirror/application/ports/package-repository.port.d.ts +0 -16
  319. package/dist/lib/mirror/application/ports/package-repository.port.d.ts.map +0 -1
  320. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts +0 -7
  321. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts.map +0 -1
  322. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts +0 -10
  323. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts.map +0 -1
  324. package/dist/lib/mirror/application/requests/mirror-sync.request.js +0 -8
  325. package/dist/lib/mirror/application/sync.d.ts +0 -19
  326. package/dist/lib/mirror/application/sync.d.ts.map +0 -1
  327. package/dist/lib/mirror/application/sync.js +0 -168
  328. package/dist/lib/mirror/domain/constants.d.ts +0 -6
  329. package/dist/lib/mirror/domain/constants.d.ts.map +0 -1
  330. package/dist/lib/mirror/domain/constants.js +0 -5
  331. package/dist/lib/mirror/domain/errors.d.ts +0 -10
  332. package/dist/lib/mirror/domain/errors.d.ts.map +0 -1
  333. package/dist/lib/mirror/domain/errors.js +0 -12
  334. package/dist/lib/mirror/domain/types.d.ts +0 -65
  335. package/dist/lib/mirror/domain/types.d.ts.map +0 -1
  336. package/dist/lib/mirror/index.d.ts +0 -6
  337. package/dist/lib/mirror/index.d.ts.map +0 -1
  338. package/dist/lib/mirror/index.js +0 -1
  339. package/dist/lib/mirror/infra/dirent-list.d.ts +0 -9
  340. package/dist/lib/mirror/infra/dirent-list.d.ts.map +0 -1
  341. package/dist/lib/mirror/infra/dirent-list.js +0 -13
  342. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts +0 -7
  343. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts.map +0 -1
  344. package/dist/lib/mirror/infra/file-system-service.adapter.js +0 -47
  345. package/dist/lib/mirror/infra/mirror-sync-cli-options.d.ts +0 -14
  346. package/dist/lib/mirror/infra/mirror-sync-cli-options.d.ts.map +0 -1
  347. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts +0 -3
  348. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts.map +0 -1
  349. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.js +0 -13
  350. package/dist/lib/mirror/infra/package-filter.d.ts +0 -8
  351. package/dist/lib/mirror/infra/package-filter.d.ts.map +0 -1
  352. package/dist/lib/mirror/infra/package-filter.js +0 -33
  353. package/dist/lib/mirror/infra/package-repository.adapter.d.ts +0 -17
  354. package/dist/lib/mirror/infra/package-repository.adapter.d.ts.map +0 -1
  355. package/dist/lib/mirror/infra/package-repository.adapter.js +0 -17
  356. package/dist/lib/mirror/infra/path-normalizer.d.ts +0 -2
  357. package/dist/lib/mirror/infra/path-normalizer.d.ts.map +0 -1
  358. package/dist/lib/mirror/infra/path-normalizer.js +0 -4
  359. package/dist/lib/mirror/infra/update-pkg.d.ts +0 -19
  360. package/dist/lib/mirror/infra/update-pkg.d.ts.map +0 -1
  361. package/dist/lib/mirror/infra/update-pkg.js +0 -156
  362. package/dist/lib/mirror/infra/workspace-packages.d.ts +0 -26
  363. package/dist/lib/mirror/infra/workspace-packages.d.ts.map +0 -1
  364. package/dist/lib/mirror/infra/workspace-packages.js +0 -170
  365. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts +0 -8
  366. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts.map +0 -1
  367. package/dist/lib/mirror/infra/workspace-service.adapter.js +0 -10
  368. package/dist/lib/mirror/presentation/reporter.d.ts +0 -25
  369. package/dist/lib/mirror/presentation/reporter.d.ts.map +0 -1
  370. package/dist/lib/mirror/presentation/reporter.js +0 -140
  371. package/dist/lib/shared/source-code/domain/text-edit.d.ts +0 -14
  372. package/dist/lib/shared/source-code/domain/text-edit.d.ts.map +0 -1
  373. package/dist/lib/shared/source-code/domain/text-edit.js +0 -30
  374. package/dist/lib/shared/source-code/infra/tsx-file-walk.d.ts +0 -4
  375. package/dist/lib/shared/source-code/infra/tsx-file-walk.d.ts.map +0 -1
  376. package/dist/lib/shared/source-code/infra/tsx-file-walk.js +0 -37
  377. package/dist/lib/tag/application/engine.d.ts +0 -23
  378. package/dist/lib/tag/application/engine.d.ts.map +0 -1
  379. package/dist/lib/tag/application/engine.js +0 -357
  380. package/dist/lib/tag/application/ports/target-resolver.port.d.ts +0 -6
  381. package/dist/lib/tag/application/ports/target-resolver.port.d.ts.map +0 -1
  382. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts +0 -6
  383. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts.map +0 -1
  384. package/dist/lib/tag/application/requests/tag-sync.request.d.ts +0 -10
  385. package/dist/lib/tag/application/requests/tag-sync.request.d.ts.map +0 -1
  386. package/dist/lib/tag/application/requests/tag-sync.request.js +0 -8
  387. package/dist/lib/tag/domain/types.d.ts +0 -56
  388. package/dist/lib/tag/domain/types.d.ts.map +0 -1
  389. package/dist/lib/tag/index.d.ts +0 -14
  390. package/dist/lib/tag/index.d.ts.map +0 -1
  391. package/dist/lib/tag/index.js +0 -10
  392. package/dist/lib/tag/infra/tag-sync-cli-options.d.ts +0 -14
  393. package/dist/lib/tag/infra/tag-sync-cli-options.d.ts.map +0 -1
  394. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts +0 -3
  395. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts.map +0 -1
  396. package/dist/lib/tag/infra/tag-target-resolver.adapter.js +0 -4
  397. package/dist/lib/tag/infra/target-resolver.d.ts +0 -4
  398. package/dist/lib/tag/infra/target-resolver.d.ts.map +0 -1
  399. package/dist/lib/tag/infra/target-resolver.js +0 -200
  400. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts +0 -3
  401. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts.map +0 -1
  402. package/dist/lib/tag/infra/typescript-tree-walk.adapter.js +0 -4
  403. package/dist/lib/tag/presentation/colors.d.ts +0 -8
  404. package/dist/lib/tag/presentation/colors.d.ts.map +0 -1
  405. package/dist/lib/tag/presentation/colors.js +0 -9
  406. package/dist/lib/tag/presentation/tag-presenter.d.ts +0 -20
  407. package/dist/lib/tag/presentation/tag-presenter.d.ts.map +0 -1
  408. package/dist/lib/tag/presentation/tag-presenter.js +0 -92
  409. package/dist/program.d.ts +0 -4
  410. package/dist/program.d.ts.map +0 -1
  411. package/dist/program.js +0 -40
  412. /package/dist/lib/arrange/application/ports/{domain-source-parser.port.js → domain-source-parser.port.mjs} +0 -0
  413. /package/dist/lib/arrange/application/ports/{file-walker.port.js → file-walker.port.mjs} +0 -0
  414. /package/dist/lib/arrange/{infra/arrange-sync-cli-options.js → application/ports/group-file-preview.port.mjs} +0 -0
  415. /package/dist/lib/{core/application/ports/cli-io.port.js → arrange/application/requests/analyze-directory.request.mjs} +0 -0
  416. /package/dist/lib/{infra/fs-contract.js → arrange/application/requests/arrange-sync.request.mjs} +0 -0
  417. /package/dist/lib/{mirror/application/ports/file-system-service.port.js → arrange/application/requests/suggest-groups.request.mjs} +0 -0
  418. /package/dist/lib/{mirror/application/ports/mirror-sync-reporter.port.js → arrange/contracts/models.mjs} +0 -0
  419. /package/dist/lib/{mirror/application/ports/package-repository.port.js → arrange/contracts/presentation.contract.mjs} +0 -0
  420. /package/dist/lib/{mirror/application/ports/workspace-service.port.js → arrange/contracts/services.contract.mjs} +0 -0
  421. /package/dist/lib/{mirror/domain/types.js → arrange/contracts/use-cases.contract.mjs} +0 -0
  422. /package/dist/lib/{mirror/infra/mirror-sync-cli-options.js → arrange/domain/types.domain.mjs} +0 -0
  423. /package/dist/lib/{tag/application/ports/target-resolver.port.js → arrange/infra/arrange-sync-cli-options.adapter.mjs} +0 -0
  424. /package/dist/lib/{tag/application/ports/typescript-tree-walk.port.js → config/application/ports/config-loader.port.mjs} +0 -0
  425. /package/dist/lib/{tag/domain/types.js → config/domain/schema.domain.mjs} +0 -0
  426. /package/dist/lib/{tag/infra/tag-sync-cli-options.js → core/application/ports/cli-io.port.mjs} +0 -0
@@ -1,210 +0,0 @@
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
- }
@@ -1,7 +0,0 @@
1
- import type { ForEachStringLiteralInClassExpressionOptions, TailwindClassLiteral } from "#lib/arrange/domain/types";
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.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectors-cn.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/collectors-cn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,4CAA4C,EAC5C,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AACnC,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"}
@@ -1,70 +0,0 @@
1
- import { MAX_CLASS_EXPR_DEPTH } from "#lib/arrange/domain/constants";
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
- }
@@ -1,4 +0,0 @@
1
- import { type DomainJsxAttribute } from "#lib/arrange/domain/ast/ast-node.model";
2
- import type { JsxClassNameStatic } from "#lib/arrange/domain/types";
3
- export declare function jsxClassNameStaticLiteral(jsxClassNameAttribute: DomainJsxAttribute): JsxClassNameStatic | undefined;
4
- //# sourceMappingURL=collectors-jsx.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectors-jsx.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/collectors-jsx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wBAAgB,yBAAyB,CACvC,qBAAqB,EAAE,kBAAkB,GACxC,kBAAkB,GAAG,SAAS,CAsBhC"}
@@ -1,21 +0,0 @@
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
- }
@@ -1,13 +0,0 @@
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";
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.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectors-tv.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/collectors-tv.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,2BAA2B,CAAC;AAQlF,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"}
@@ -1,302 +0,0 @@
1
- import { APPLY_MIN_TOKENS, MAX_OBJECT_DEPTH } from "#lib/arrange/domain/constants";
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";
4
- import { tokenizeClassString } from "#lib/arrange/domain/tokenizer";
5
- import { buildKnownCnTvBindings, isCnOrTvIdentifier, propertyAssignmentNameText, } from "#lib/arrange/domain/ast/ast-helpers";
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
- }
@@ -1,8 +0,0 @@
1
- import type { GroupTarget, PlannedGroupEdit, StringNode } from "#lib/arrange/domain/types";
2
- import { type DomainSourceFile } from "#lib/arrange/domain/ast/ast-node.model";
3
- export declare function targetReplaceStart(target: GroupTarget): number;
4
- export declare function collectLongJsxClassNameTargets(sourceFile: DomainSourceFile): GroupTarget[];
5
- export declare function collectGroupTargets(sourceFile: DomainSourceFile, filePath: string): GroupTarget[];
6
- export declare function formatCnCallReplacement(stringNode: StringNode, sourceText: string, withClassName: boolean): string;
7
- export declare function planGroupEditForTarget(target: GroupTarget, textAfterUnwrap: string, withClassName: boolean): PlannedGroupEdit | undefined;
8
- //# sourceMappingURL=targets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../../../../src/lib/arrange/domain/ast/targets.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAS3F,OAAO,EAEL,KAAK,gBAAgB,EAKtB,MAAM,wCAAwC,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAK9D;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,gBAAgB,GAAG,WAAW,EAAE,CAoB1F;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CASjG;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,GACrB,MAAM,CAyCR;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,OAAO,GACrB,gBAAgB,GAAG,SAAS,CA6E9B"}