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

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 (390) hide show
  1. package/dist/bin.d.ts +3 -0
  2. package/dist/bin.d.ts.map +1 -0
  3. package/dist/{bin.mjs → bin.js} +1 -4
  4. package/dist/commands/arrange.d.ts +3 -0
  5. package/dist/commands/arrange.d.ts.map +1 -0
  6. package/dist/commands/arrange.js +129 -0
  7. package/dist/commands/mirror.d.ts +4 -0
  8. package/dist/commands/mirror.d.ts.map +1 -0
  9. package/dist/commands/mirror.js +75 -0
  10. package/dist/commands/tag.d.ts +3 -0
  11. package/dist/commands/tag.d.ts.map +1 -0
  12. package/dist/commands/tag.js +41 -0
  13. package/dist/lib/arrange/application/analyze.d.ts +17 -0
  14. package/dist/lib/arrange/application/analyze.d.ts.map +1 -0
  15. package/dist/lib/arrange/application/analyze.js +24 -0
  16. package/dist/lib/arrange/application/group-file-preview.d.ts +17 -0
  17. package/dist/lib/arrange/application/group-file-preview.d.ts.map +1 -0
  18. package/dist/lib/arrange/application/group-file-preview.js +46 -0
  19. package/dist/lib/arrange/application/group-file.d.ts +5 -0
  20. package/dist/lib/arrange/application/group-file.d.ts.map +1 -0
  21. package/dist/lib/arrange/application/group-file.js +40 -0
  22. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts +5 -0
  23. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts.map +1 -0
  24. package/dist/lib/arrange/application/ports/file-walker.port.d.ts +5 -0
  25. package/dist/lib/arrange/application/ports/file-walker.port.d.ts.map +1 -0
  26. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts +6 -0
  27. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts.map +1 -0
  28. package/dist/lib/arrange/application/requests/analyze-directory.request.js +4 -0
  29. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts +18 -0
  30. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts.map +1 -0
  31. package/dist/lib/arrange/application/requests/arrange-sync.request.js +15 -0
  32. package/dist/lib/arrange/application/run-target.d.ts +19 -0
  33. package/dist/lib/arrange/application/run-target.d.ts.map +1 -0
  34. package/dist/lib/arrange/application/run-target.js +85 -0
  35. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts +12 -0
  36. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts.map +1 -0
  37. package/dist/lib/arrange/domain/arrange-analyze.service.js +116 -0
  38. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts +53 -0
  39. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts.map +1 -0
  40. package/dist/lib/arrange/domain/arrange-grouping.service.js +106 -0
  41. package/dist/lib/arrange/domain/ast/ast-helpers.d.ts +28 -0
  42. package/dist/lib/arrange/domain/ast/ast-helpers.d.ts.map +1 -0
  43. package/dist/lib/arrange/domain/ast/ast-helpers.js +130 -0
  44. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts +179 -0
  45. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts.map +1 -0
  46. package/dist/lib/arrange/domain/ast/ast-node.model.js +210 -0
  47. package/dist/lib/arrange/domain/ast/collectors-cn.d.ts +7 -0
  48. package/dist/lib/arrange/domain/ast/collectors-cn.d.ts.map +1 -0
  49. package/dist/lib/arrange/domain/ast/collectors-cn.js +70 -0
  50. package/dist/lib/arrange/domain/ast/collectors-jsx.d.ts +4 -0
  51. package/dist/lib/arrange/domain/ast/collectors-jsx.d.ts.map +1 -0
  52. package/dist/lib/arrange/domain/ast/collectors-jsx.js +21 -0
  53. package/dist/lib/arrange/domain/ast/collectors-tv.d.ts +13 -0
  54. package/dist/lib/arrange/domain/ast/collectors-tv.d.ts.map +1 -0
  55. package/dist/lib/arrange/domain/ast/collectors-tv.js +302 -0
  56. package/dist/lib/arrange/domain/ast/targets.d.ts +8 -0
  57. package/dist/lib/arrange/domain/ast/targets.d.ts.map +1 -0
  58. package/dist/lib/arrange/domain/ast/targets.js +147 -0
  59. package/dist/lib/arrange/domain/constants.d.ts +68 -0
  60. package/dist/lib/arrange/domain/constants.d.ts.map +1 -0
  61. package/dist/lib/arrange/domain/constants.js +180 -0
  62. package/dist/lib/arrange/domain/errors.d.ts +14 -0
  63. package/dist/lib/arrange/domain/errors.d.ts.map +1 -0
  64. package/dist/lib/arrange/domain/errors.js +16 -0
  65. package/dist/lib/arrange/domain/grouping.d.ts +41 -0
  66. package/dist/lib/arrange/domain/grouping.d.ts.map +1 -0
  67. package/dist/lib/arrange/domain/grouping.js +307 -0
  68. package/dist/lib/arrange/domain/imports.d.ts +7 -0
  69. package/dist/lib/arrange/domain/imports.d.ts.map +1 -0
  70. package/dist/lib/arrange/domain/imports.js +80 -0
  71. package/dist/lib/arrange/domain/source-text-formatters.d.ts +16 -0
  72. package/dist/lib/arrange/domain/source-text-formatters.d.ts.map +1 -0
  73. package/dist/lib/arrange/domain/source-text-formatters.js +55 -0
  74. package/dist/lib/arrange/domain/tokenizer.d.ts +45 -0
  75. package/dist/lib/arrange/domain/tokenizer.d.ts.map +1 -0
  76. package/dist/lib/arrange/domain/tokenizer.js +466 -0
  77. package/dist/lib/arrange/domain/types.d.ts +112 -0
  78. package/dist/lib/arrange/domain/types.d.ts.map +1 -0
  79. package/dist/lib/arrange/domain/types.js +7 -0
  80. package/dist/lib/arrange/index.d.ts +45 -0
  81. package/dist/lib/arrange/index.d.ts.map +1 -0
  82. package/dist/lib/arrange/index.js +41 -0
  83. package/dist/lib/arrange/infra/arrange-sync-cli-options.d.ts +14 -0
  84. package/dist/lib/arrange/infra/arrange-sync-cli-options.d.ts.map +1 -0
  85. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts +11 -0
  86. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts.map +1 -0
  87. package/dist/lib/arrange/infra/domain-source-parser.adapter.js +19 -0
  88. package/dist/lib/arrange/infra/ensure-cn-import.d.ts +3 -0
  89. package/dist/lib/arrange/infra/ensure-cn-import.d.ts.map +1 -0
  90. package/dist/lib/arrange/infra/ensure-cn-import.js +6 -0
  91. package/dist/lib/arrange/infra/file-walker.adapter.d.ts +8 -0
  92. package/dist/lib/arrange/infra/file-walker.adapter.d.ts.map +1 -0
  93. package/dist/lib/arrange/infra/file-walker.adapter.js +17 -0
  94. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.d.ts +8 -0
  95. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.d.ts.map +1 -0
  96. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.js +25 -0
  97. package/dist/lib/arrange/infra/ts-ast-translator.d.ts +10 -0
  98. package/dist/lib/arrange/infra/ts-ast-translator.d.ts.map +1 -0
  99. package/dist/lib/arrange/infra/ts-ast-translator.js +363 -0
  100. package/dist/lib/arrange/presentation/formatters.d.ts +3 -0
  101. package/dist/lib/arrange/presentation/formatters.d.ts.map +1 -0
  102. package/dist/lib/arrange/presentation/formatters.js +2 -0
  103. package/dist/lib/arrange/presentation/report.d.ts +4 -0
  104. package/dist/lib/arrange/presentation/report.d.ts.map +1 -0
  105. package/dist/lib/arrange/presentation/report.js +37 -0
  106. package/dist/lib/config/domain/schema.d.ts +50 -0
  107. package/dist/lib/config/domain/schema.d.ts.map +1 -0
  108. package/dist/lib/config/domain/schema.js +43 -0
  109. package/dist/lib/config/index.d.ts +4 -0
  110. package/dist/lib/config/index.d.ts.map +1 -0
  111. package/dist/lib/config/index.js +2 -0
  112. package/dist/lib/config/infra/loader.d.ts +11 -0
  113. package/dist/lib/config/infra/loader.d.ts.map +1 -0
  114. package/dist/lib/config/infra/loader.js +90 -0
  115. package/dist/lib/core/application/architecture-boundaries.d.ts +19 -0
  116. package/dist/lib/core/application/architecture-boundaries.d.ts.map +1 -0
  117. package/dist/lib/core/application/architecture-boundaries.js +263 -0
  118. package/dist/lib/core/application/ports/cli-io.port.d.ts +27 -0
  119. package/dist/lib/core/application/ports/cli-io.port.d.ts.map +1 -0
  120. package/dist/lib/core/application/schema-parse.d.ts +8 -0
  121. package/dist/lib/core/application/schema-parse.d.ts.map +1 -0
  122. package/dist/lib/core/application/schema-parse.js +20 -0
  123. package/dist/lib/core/application/utils/caught-unknown-message.d.ts +6 -0
  124. package/dist/lib/core/application/utils/caught-unknown-message.d.ts.map +1 -0
  125. package/dist/lib/core/application/utils/caught-unknown-message.js +34 -0
  126. package/dist/lib/core/application/utils/verbose-diagnostics.d.ts +5 -0
  127. package/dist/lib/core/application/utils/verbose-diagnostics.d.ts.map +1 -0
  128. package/dist/lib/core/application/utils/verbose-diagnostics.js +7 -0
  129. package/dist/lib/core/domain/errors.d.ts +11 -0
  130. package/dist/lib/core/domain/errors.d.ts.map +1 -0
  131. package/dist/lib/core/domain/errors.js +9 -0
  132. package/dist/lib/core/domain/result.d.ts +15 -0
  133. package/dist/lib/core/domain/result.d.ts.map +1 -0
  134. package/dist/lib/core/domain/result.js +9 -0
  135. package/dist/lib/core/infra/container.d.ts +34 -0
  136. package/dist/lib/core/infra/container.d.ts.map +1 -0
  137. package/dist/lib/core/infra/container.js +65 -0
  138. package/dist/lib/core/infra/logging-decorator.d.ts +12 -0
  139. package/dist/lib/core/infra/logging-decorator.d.ts.map +1 -0
  140. package/dist/lib/core/infra/logging-decorator.js +75 -0
  141. package/dist/lib/core/presentation/cli-executor.d.ts +33 -0
  142. package/dist/lib/core/presentation/cli-executor.d.ts.map +1 -0
  143. package/dist/lib/core/presentation/cli-executor.js +73 -0
  144. package/dist/lib/core/presentation/create-command-handler.d.ts +20 -0
  145. package/dist/lib/core/presentation/create-command-handler.d.ts.map +1 -0
  146. package/dist/lib/core/presentation/create-command-handler.js +70 -0
  147. package/dist/lib/core/presentation/format-app-error.d.ts +6 -0
  148. package/dist/lib/core/presentation/format-app-error.d.ts.map +1 -0
  149. package/dist/lib/core/presentation/format-app-error.js +19 -0
  150. package/dist/lib/infra/caught-unknown-message.d.ts +2 -0
  151. package/dist/lib/infra/caught-unknown-message.d.ts.map +1 -0
  152. package/dist/lib/infra/caught-unknown-message.js +1 -0
  153. package/dist/lib/infra/config-reporter.d.ts +4 -0
  154. package/dist/lib/infra/config-reporter.d.ts.map +1 -0
  155. package/dist/lib/infra/config-reporter.js +9 -0
  156. package/dist/lib/infra/fs-contract.d.ts +2 -0
  157. package/dist/lib/infra/fs-contract.d.ts.map +1 -0
  158. package/dist/lib/infra/fs-contract.js +1 -0
  159. package/dist/lib/infra/node-io.d.ts +4 -0
  160. package/dist/lib/infra/node-io.d.ts.map +1 -0
  161. package/dist/lib/infra/node-io.js +27 -0
  162. package/dist/lib/infra/workspace/repo-root.d.ts +7 -0
  163. package/dist/lib/infra/workspace/repo-root.d.ts.map +1 -0
  164. package/dist/lib/infra/workspace/repo-root.js +23 -0
  165. package/dist/lib/mirror/application/engine.d.ts +10 -0
  166. package/dist/lib/mirror/application/engine.d.ts.map +1 -0
  167. package/dist/lib/mirror/application/engine.js +271 -0
  168. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts +6 -0
  169. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts.map +1 -0
  170. package/dist/lib/mirror/application/ports/file-system-service.port.js +1 -0
  171. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts +27 -0
  172. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts.map +1 -0
  173. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.js +1 -0
  174. package/dist/lib/mirror/application/ports/package-repository.port.d.ts +16 -0
  175. package/dist/lib/mirror/application/ports/package-repository.port.d.ts.map +1 -0
  176. package/dist/lib/mirror/application/ports/package-repository.port.js +1 -0
  177. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts +7 -0
  178. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts.map +1 -0
  179. package/dist/lib/mirror/application/ports/workspace-service.port.js +1 -0
  180. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts +10 -0
  181. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts.map +1 -0
  182. package/dist/lib/mirror/application/requests/mirror-sync.request.js +8 -0
  183. package/dist/lib/mirror/application/sync.d.ts +19 -0
  184. package/dist/lib/mirror/application/sync.d.ts.map +1 -0
  185. package/dist/lib/mirror/application/sync.js +168 -0
  186. package/dist/lib/mirror/domain/constants.d.ts +6 -0
  187. package/dist/lib/mirror/domain/constants.d.ts.map +1 -0
  188. package/dist/lib/mirror/domain/constants.js +5 -0
  189. package/dist/lib/mirror/domain/errors.d.ts +10 -0
  190. package/dist/lib/mirror/domain/errors.d.ts.map +1 -0
  191. package/dist/lib/mirror/domain/errors.js +12 -0
  192. package/dist/lib/mirror/domain/types.d.ts +65 -0
  193. package/dist/lib/mirror/domain/types.d.ts.map +1 -0
  194. package/dist/lib/mirror/domain/types.js +1 -0
  195. package/dist/lib/mirror/index.d.ts +6 -0
  196. package/dist/lib/mirror/index.d.ts.map +1 -0
  197. package/dist/lib/mirror/index.js +1 -0
  198. package/dist/lib/mirror/infra/dirent-list.d.ts +9 -0
  199. package/dist/lib/mirror/infra/dirent-list.d.ts.map +1 -0
  200. package/dist/lib/mirror/infra/dirent-list.js +13 -0
  201. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts +7 -0
  202. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts.map +1 -0
  203. package/dist/lib/mirror/infra/file-system-service.adapter.js +47 -0
  204. package/dist/lib/mirror/infra/mirror-sync-cli-options.d.ts +14 -0
  205. package/dist/lib/mirror/infra/mirror-sync-cli-options.d.ts.map +1 -0
  206. package/dist/lib/mirror/infra/mirror-sync-cli-options.js +1 -0
  207. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts +3 -0
  208. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts.map +1 -0
  209. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.js +13 -0
  210. package/dist/lib/mirror/infra/package-filter.d.ts +8 -0
  211. package/dist/lib/mirror/infra/package-filter.d.ts.map +1 -0
  212. package/dist/lib/mirror/infra/package-filter.js +33 -0
  213. package/dist/lib/mirror/infra/package-repository.adapter.d.ts +17 -0
  214. package/dist/lib/mirror/infra/package-repository.adapter.d.ts.map +1 -0
  215. package/dist/lib/mirror/infra/package-repository.adapter.js +17 -0
  216. package/dist/lib/mirror/infra/path-normalizer.d.ts +2 -0
  217. package/dist/lib/mirror/infra/path-normalizer.d.ts.map +1 -0
  218. package/dist/lib/mirror/infra/path-normalizer.js +4 -0
  219. package/dist/lib/mirror/infra/update-pkg.d.ts +19 -0
  220. package/dist/lib/mirror/infra/update-pkg.d.ts.map +1 -0
  221. package/dist/lib/mirror/infra/update-pkg.js +156 -0
  222. package/dist/lib/mirror/infra/workspace-packages.d.ts +26 -0
  223. package/dist/lib/mirror/infra/workspace-packages.d.ts.map +1 -0
  224. package/dist/lib/mirror/infra/workspace-packages.js +170 -0
  225. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts +8 -0
  226. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts.map +1 -0
  227. package/dist/lib/mirror/infra/workspace-service.adapter.js +10 -0
  228. package/dist/lib/mirror/presentation/reporter.d.ts +25 -0
  229. package/dist/lib/mirror/presentation/reporter.d.ts.map +1 -0
  230. package/dist/lib/mirror/presentation/reporter.js +140 -0
  231. package/dist/lib/shared/source-code/domain/text-edit.d.ts +14 -0
  232. package/dist/lib/shared/source-code/domain/text-edit.d.ts.map +1 -0
  233. package/dist/lib/shared/source-code/domain/text-edit.js +30 -0
  234. package/dist/lib/shared/source-code/infra/tsx-file-walk.d.ts +4 -0
  235. package/dist/lib/shared/source-code/infra/tsx-file-walk.d.ts.map +1 -0
  236. package/dist/lib/shared/source-code/infra/tsx-file-walk.js +37 -0
  237. package/dist/lib/tag/application/engine.d.ts +23 -0
  238. package/dist/lib/tag/application/engine.d.ts.map +1 -0
  239. package/dist/lib/tag/application/engine.js +357 -0
  240. package/dist/lib/tag/application/ports/target-resolver.port.d.ts +6 -0
  241. package/dist/lib/tag/application/ports/target-resolver.port.d.ts.map +1 -0
  242. package/dist/lib/tag/application/ports/target-resolver.port.js +1 -0
  243. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts +6 -0
  244. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts.map +1 -0
  245. package/dist/lib/tag/application/ports/typescript-tree-walk.port.js +1 -0
  246. package/dist/lib/tag/application/requests/tag-sync.request.d.ts +10 -0
  247. package/dist/lib/tag/application/requests/tag-sync.request.d.ts.map +1 -0
  248. package/dist/lib/tag/application/requests/tag-sync.request.js +8 -0
  249. package/dist/lib/tag/domain/types.d.ts +56 -0
  250. package/dist/lib/tag/domain/types.d.ts.map +1 -0
  251. package/dist/lib/tag/domain/types.js +1 -0
  252. package/dist/lib/tag/index.d.ts +14 -0
  253. package/dist/lib/tag/index.d.ts.map +1 -0
  254. package/dist/lib/tag/index.js +10 -0
  255. package/dist/lib/tag/infra/tag-sync-cli-options.d.ts +14 -0
  256. package/dist/lib/tag/infra/tag-sync-cli-options.d.ts.map +1 -0
  257. package/dist/lib/tag/infra/tag-sync-cli-options.js +1 -0
  258. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts +3 -0
  259. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts.map +1 -0
  260. package/dist/lib/tag/infra/tag-target-resolver.adapter.js +4 -0
  261. package/dist/lib/tag/infra/target-resolver.d.ts +4 -0
  262. package/dist/lib/tag/infra/target-resolver.d.ts.map +1 -0
  263. package/dist/lib/tag/infra/target-resolver.js +200 -0
  264. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts +3 -0
  265. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts.map +1 -0
  266. package/dist/lib/tag/infra/typescript-tree-walk.adapter.js +4 -0
  267. package/dist/lib/tag/presentation/colors.d.ts +8 -0
  268. package/dist/lib/tag/presentation/colors.d.ts.map +1 -0
  269. package/dist/lib/tag/presentation/colors.js +9 -0
  270. package/dist/lib/tag/presentation/tag-presenter.d.ts +20 -0
  271. package/dist/lib/tag/presentation/tag-presenter.d.ts.map +1 -0
  272. package/dist/lib/tag/presentation/tag-presenter.js +92 -0
  273. package/dist/program.d.ts +4 -0
  274. package/dist/program.d.ts.map +1 -0
  275. package/dist/program.js +40 -0
  276. package/package.json +8 -5
  277. package/dist/analyze-DvtJ3j9m.mjs +0 -92
  278. package/dist/arrange-Bbh62DrU.mjs +0 -107
  279. package/dist/arrange-BqP2DI3w.mjs +0 -8
  280. package/dist/ast-helpers-MDRYuIAk.mjs +0 -115
  281. package/dist/caught-unknown-message-CRhkDWO7.mjs +0 -20
  282. package/dist/collectors-cn-BS8TTQ8O.mjs +0 -61
  283. package/dist/collectors-jsx-D9tL2ZPM.mjs +0 -20
  284. package/dist/collectors-tv-D2PXZaRt.mjs +0 -170
  285. package/dist/colors-BjdkCfGK.mjs +0 -12
  286. package/dist/commands/arrange.mjs +0 -2
  287. package/dist/commands/mirror.mjs +0 -2
  288. package/dist/commands/mirror.test.mjs +0 -48
  289. package/dist/commands/tag.mjs +0 -2
  290. package/dist/config-DVia_f9a.mjs +0 -3
  291. package/dist/config-reporter-SCcWDZc1.mjs +0 -10
  292. package/dist/constants-AtPhF-Ct.mjs +0 -169
  293. package/dist/constants-Bq5wdyLC.mjs +0 -8
  294. package/dist/dirent-list-BSDeRG5i.mjs +0 -14
  295. package/dist/engine-CcWEHSCq.mjs +0 -287
  296. package/dist/engine-DRTdkc5u.mjs +0 -236
  297. package/dist/errors-CFH4w6ic.mjs +0 -15
  298. package/dist/errors-CpU1ogfA.mjs +0 -19
  299. package/dist/formatters-DGE8jJ53.mjs +0 -52
  300. package/dist/group-file-ClW7XdD6.mjs +0 -113
  301. package/dist/grouping-c1grpCQT.mjs +0 -235
  302. package/dist/imports-DSVq1xhB.mjs +0 -54
  303. package/dist/lib/arrange/application/analyze.mjs +0 -2
  304. package/dist/lib/arrange/application/analyze.test.mjs +0 -171
  305. package/dist/lib/arrange/application/group-file.mjs +0 -2
  306. package/dist/lib/arrange/application/group-file.test.mjs +0 -273
  307. package/dist/lib/arrange/application/run-target.mjs +0 -2
  308. package/dist/lib/arrange/application/run-target.test.mjs +0 -97
  309. package/dist/lib/arrange/domain/ast/ast-helpers.mjs +0 -2
  310. package/dist/lib/arrange/domain/ast/ast-helpers.test.mjs +0 -148
  311. package/dist/lib/arrange/domain/ast/collectors-cn.mjs +0 -2
  312. package/dist/lib/arrange/domain/ast/collectors-cn.test.mjs +0 -58
  313. package/dist/lib/arrange/domain/ast/collectors-jsx.mjs +0 -2
  314. package/dist/lib/arrange/domain/ast/collectors-jsx.test.mjs +0 -20
  315. package/dist/lib/arrange/domain/ast/collectors-tv.mjs +0 -2
  316. package/dist/lib/arrange/domain/ast/collectors-tv.test.mjs +0 -145
  317. package/dist/lib/arrange/domain/ast/targets.mjs +0 -2
  318. package/dist/lib/arrange/domain/ast/targets.test.mjs +0 -50
  319. package/dist/lib/arrange/domain/constants.mjs +0 -2
  320. package/dist/lib/arrange/domain/errors.mjs +0 -2
  321. package/dist/lib/arrange/domain/grouping.mjs +0 -2
  322. package/dist/lib/arrange/domain/grouping.test.mjs +0 -186
  323. package/dist/lib/arrange/domain/imports.mjs +0 -2
  324. package/dist/lib/arrange/domain/imports.test.mjs +0 -48
  325. package/dist/lib/arrange/domain/tokenizer.mjs +0 -2
  326. package/dist/lib/arrange/domain/tokenizer.test.mjs +0 -165
  327. package/dist/lib/arrange/index.mjs +0 -16
  328. package/dist/lib/arrange/infra/walk.mjs +0 -2
  329. package/dist/lib/arrange/infra/walk.test.mjs +0 -50
  330. package/dist/lib/arrange/presentation/formatters.mjs +0 -2
  331. package/dist/lib/arrange/presentation/formatters.test.mjs +0 -73
  332. package/dist/lib/arrange/presentation/report.mjs +0 -2
  333. package/dist/lib/config/domain/schema.mjs +0 -2
  334. package/dist/lib/config/index.mjs +0 -4
  335. package/dist/lib/config/infra/loader.mjs +0 -2
  336. package/dist/lib/config/infra/loader.test.mjs +0 -116
  337. package/dist/lib/infra/caught-unknown-message.mjs +0 -2
  338. package/dist/lib/infra/config-reporter.mjs +0 -2
  339. package/dist/lib/infra/node-io.mjs +0 -2
  340. package/dist/lib/infra/workspace/repo-root.mjs +0 -2
  341. package/dist/lib/infra/workspace/repo-root.test.mjs +0 -45
  342. package/dist/lib/mirror/application/engine.mjs +0 -2
  343. package/dist/lib/mirror/application/sync.mjs +0 -2
  344. package/dist/lib/mirror/application/sync.test.mjs +0 -482
  345. package/dist/lib/mirror/domain/constants.mjs +0 -2
  346. package/dist/lib/mirror/domain/errors.mjs +0 -2
  347. package/dist/lib/mirror/index.mjs +0 -3
  348. package/dist/lib/mirror/infra/dirent-list.mjs +0 -2
  349. package/dist/lib/mirror/infra/dirent-list.test.mjs +0 -18
  350. package/dist/lib/mirror/infra/package-filter.mjs +0 -2
  351. package/dist/lib/mirror/infra/package-filter.test.mjs +0 -32
  352. package/dist/lib/mirror/infra/path-normalizer.mjs +0 -2
  353. package/dist/lib/mirror/infra/update-pkg.mjs +0 -2
  354. package/dist/lib/mirror/infra/workspace-packages.mjs +0 -2
  355. package/dist/lib/mirror/infra/workspace-packages.test.mjs +0 -167
  356. package/dist/lib/mirror/presentation/reporter.mjs +0 -2
  357. package/dist/lib/tag/application/engine.mjs +0 -2
  358. package/dist/lib/tag/application/engine.test.mjs +0 -159
  359. package/dist/lib/tag/index.mjs +0 -5
  360. package/dist/lib/tag/infra/target-resolver.mjs +0 -2
  361. package/dist/lib/tag/presentation/colors.mjs +0 -2
  362. package/dist/lib/tag/presentation/tag-presenter.mjs +0 -2
  363. package/dist/lib/tag/presentation/tag-presenter.test.mjs +0 -29
  364. package/dist/loader-DpN-zl5g.mjs +0 -78
  365. package/dist/mirror-CbGiLXKT.mjs +0 -2
  366. package/dist/mirror-DqJE3ejL.mjs +0 -66
  367. package/dist/node-io-DFRbHO6m.mjs +0 -30
  368. package/dist/package-filter-C_8ryqvz.mjs +0 -26
  369. package/dist/path-normalizer-D4ceBO3l.mjs +0 -7
  370. package/dist/program-DR-H4tH3.mjs +0 -34
  371. package/dist/program.mjs +0 -2
  372. package/dist/repo-root-HmtIEm6J.mjs +0 -22
  373. package/dist/report-DYxvw34T.mjs +0 -24
  374. package/dist/reporter-CwIe_tAM.mjs +0 -108
  375. package/dist/run-target-CJWrqNT4.mjs +0 -65
  376. package/dist/schema-Or8RAARd.mjs +0 -25
  377. package/dist/sync-e1Sp-shi.mjs +0 -157
  378. package/dist/tag-Cd9JujU5.mjs +0 -2
  379. package/dist/tag-hEKVZ_-7.mjs +0 -58
  380. package/dist/tag-presenter-Cs66UBsH.mjs +0 -63
  381. package/dist/target-resolver-CR3FXMTy.mjs +0 -170
  382. package/dist/targets-pCTslnFh.mjs +0 -106
  383. package/dist/tokenizer-CeZx73Zu.mjs +0 -216
  384. package/dist/update-pkg-CnGfjWBy.mjs +0 -37
  385. package/dist/walk-DjgQn66n.mjs +0 -33
  386. package/dist/workspace-packages-K2NYTHJq.mjs +0 -159
  387. /package/dist/lib/arrange/{domain/types.mjs → application/ports/domain-source-parser.port.js} +0 -0
  388. /package/dist/lib/{infra/fs-contract.mjs → arrange/application/ports/file-walker.port.js} +0 -0
  389. /package/dist/lib/{mirror/domain/types.mjs → arrange/infra/arrange-sync-cli-options.js} +0 -0
  390. /package/dist/lib/{tag/domain/types.mjs → core/application/ports/cli-io.port.js} +0 -0
@@ -1,170 +0,0 @@
1
- import { t as messageFromCaughtUnknown } from "./caught-unknown-message-CRhkDWO7.mjs";
2
- import { globSync } from "node:fs";
3
- import path from "node:path";
4
- import { z } from "zod";
5
- import picomatch from "picomatch";
6
- import { parse } from "yaml";
7
- //#region src/lib/tag/infra/target-resolver.ts
8
- const PNPM_WORKSPACE_FILE = "pnpm-workspace.yaml";
9
- const PACKAGE_JSON_FILE = "package.json";
10
- const DEFAULT_WORKSPACE_PACKAGE_PATTERNS = ["packages/*"];
11
- const PnpmWorkspaceSchema = z.object({ packages: z.array(z.string()).optional() }).passthrough();
12
- const PackageNameSchema = z.object({ name: z.string().min(1).optional() }).passthrough();
13
- function toPosix(filePath) {
14
- return filePath.split(path.sep).join("/");
15
- }
16
- function workspacePatternToPackageJsonGlob(pattern) {
17
- const normalizedPattern = toPosix(pattern.trim()).replace(/\/+$/, "");
18
- if (!normalizedPattern) return `**/${PACKAGE_JSON_FILE}`;
19
- return `${normalizedPattern}/${PACKAGE_JSON_FILE}`;
20
- }
21
- function splitWorkspacePackagePatterns(rawPatterns) {
22
- const include = [];
23
- const exclude = [];
24
- for (const rawPattern of rawPatterns) {
25
- const trimmedPattern = rawPattern.trim();
26
- if (!trimmedPattern) continue;
27
- if (trimmedPattern.startsWith("!")) {
28
- exclude.push(trimmedPattern.slice(1).trim());
29
- continue;
30
- }
31
- include.push(trimmedPattern);
32
- }
33
- return {
34
- include,
35
- exclude
36
- };
37
- }
38
- async function readWorkspacePackagePatterns(rootDir, fs) {
39
- const workspaceYamlPath = path.join(rootDir, PNPM_WORKSPACE_FILE);
40
- if (!fs.existsSync(workspaceYamlPath)) return {
41
- patterns: [...DEFAULT_WORKSPACE_PACKAGE_PATTERNS],
42
- hasWorkspaceFile: false,
43
- declaredEmptyPackages: false
44
- };
45
- let workspaceYamlRaw = "";
46
- try {
47
- workspaceYamlRaw = await fs.readFile(workspaceYamlPath, "utf8");
48
- } catch (caughtReadError) {
49
- throw new Error(`Failed to read ${PNPM_WORKSPACE_FILE}: ${messageFromCaughtUnknown(caughtReadError)}`);
50
- }
51
- let parsedWorkspaceDoc;
52
- try {
53
- parsedWorkspaceDoc = parse(workspaceYamlRaw);
54
- } catch (caughtParseError) {
55
- throw new Error(`Failed to parse ${PNPM_WORKSPACE_FILE}: ${messageFromCaughtUnknown(caughtParseError)}`);
56
- }
57
- const parsedWorkspaceResult = PnpmWorkspaceSchema.safeParse(parsedWorkspaceDoc);
58
- if (!parsedWorkspaceResult.success) {
59
- const issuePath = parsedWorkspaceResult.error.issues[0]?.path.join(".") ?? "<root>";
60
- const issueMessage = parsedWorkspaceResult.error.issues[0]?.message ?? "Invalid value";
61
- throw new Error(`Invalid ${PNPM_WORKSPACE_FILE} schema at "${issuePath}": ${issueMessage}`);
62
- }
63
- const hasPackagesKey = typeof parsedWorkspaceDoc === "object" && parsedWorkspaceDoc !== null && Object.prototype.hasOwnProperty.call(parsedWorkspaceDoc, "packages");
64
- const workspacePackages = parsedWorkspaceResult.data.packages;
65
- if (!workspacePackages) return {
66
- patterns: [...DEFAULT_WORKSPACE_PACKAGE_PATTERNS],
67
- hasWorkspaceFile: true,
68
- declaredEmptyPackages: false
69
- };
70
- if (workspacePackages.length === 0 && hasPackagesKey) return {
71
- patterns: [],
72
- hasWorkspaceFile: true,
73
- declaredEmptyPackages: true
74
- };
75
- return {
76
- patterns: workspacePackages,
77
- hasWorkspaceFile: true,
78
- declaredEmptyPackages: false
79
- };
80
- }
81
- async function discoverWorkspacePackageDirs(rootDir, fs) {
82
- const workspacePackages = await readWorkspacePackagePatterns(rootDir, fs);
83
- const { include, exclude } = splitWorkspacePackagePatterns(workspacePackages.patterns);
84
- const includePatterns = include.length > 0 ? include : [...DEFAULT_WORKSPACE_PACKAGE_PATTERNS];
85
- const foundPackageDirs = /* @__PURE__ */ new Set();
86
- const globOptions = {
87
- cwd: rootDir,
88
- posix: true,
89
- ...path.sep === "\\" ? { windowsPathsNoEscape: true } : {}
90
- };
91
- for (const pattern of includePatterns) {
92
- const matches = globSync(workspacePatternToPackageJsonGlob(pattern), globOptions);
93
- for (const matchedPath of matches) {
94
- if (!matchedPath.endsWith(`/${PACKAGE_JSON_FILE}`)) continue;
95
- const packageRelDir = matchedPath.slice(0, -`/${PACKAGE_JSON_FILE}`.length);
96
- if (!packageRelDir) continue;
97
- foundPackageDirs.add(path.resolve(rootDir, packageRelDir));
98
- }
99
- }
100
- if (exclude.length === 0) return {
101
- packageDirs: [...foundPackageDirs].sort((leftDir, rightDir) => leftDir.localeCompare(rightDir)),
102
- hasWorkspaceFile: workspacePackages.hasWorkspaceFile,
103
- declaredEmptyPackages: workspacePackages.declaredEmptyPackages
104
- };
105
- const excludeMatchers = exclude.map((excludePattern) => picomatch(excludePattern, { dot: true }));
106
- const discoveredDirs = [...foundPackageDirs].filter((packageDir) => {
107
- const relativePackagePath = toPosix(path.relative(rootDir, packageDir));
108
- return !excludeMatchers.some((excludeMatcher) => excludeMatcher(relativePackagePath));
109
- });
110
- discoveredDirs.sort((leftDir, rightDir) => leftDir.localeCompare(rightDir));
111
- return {
112
- packageDirs: discoveredDirs,
113
- hasWorkspaceFile: workspacePackages.hasWorkspaceFile,
114
- declaredEmptyPackages: workspacePackages.declaredEmptyPackages
115
- };
116
- }
117
- function readPackageName(packageDir, fs) {
118
- const packageJsonPath = path.join(packageDir, PACKAGE_JSON_FILE);
119
- if (!fs.existsSync(packageJsonPath)) return null;
120
- try {
121
- const rawPackageJson = fs.readFileSync(packageJsonPath, "utf8");
122
- const parsedPackageJson = JSON.parse(rawPackageJson);
123
- const parsedPackageName = PackageNameSchema.safeParse(parsedPackageJson);
124
- if (!parsedPackageName.success) return null;
125
- return parsedPackageName.data.name ?? null;
126
- } catch {
127
- return null;
128
- }
129
- }
130
- function toRootRelativePath(rootDir, absolutePath) {
131
- const relativePath = path.relative(rootDir, absolutePath);
132
- return relativePath ? toPosix(relativePath) : ".";
133
- }
134
- function toPackageTargetCandidate(rootDir, packageDir, fs) {
135
- const packageName = readPackageName(packageDir, fs);
136
- return {
137
- candidatePath: packageDir,
138
- rootRelativeCandidatePath: toRootRelativePath(rootDir, packageDir),
139
- source: "workspace-package",
140
- packageDir,
141
- packageName
142
- };
143
- }
144
- async function resolveTagTargetCandidates(rootDir, explicitTarget, fs) {
145
- if (explicitTarget) {
146
- const resolvedExplicitTarget = path.resolve(explicitTarget);
147
- return [{
148
- candidatePath: resolvedExplicitTarget,
149
- rootRelativeCandidatePath: toRootRelativePath(rootDir, resolvedExplicitTarget),
150
- source: "explicit-target",
151
- packageDir: null,
152
- packageName: null
153
- }];
154
- }
155
- const workspaceDiscovery = await discoverWorkspacePackageDirs(rootDir, fs);
156
- if (workspaceDiscovery.packageDirs.length === 0) {
157
- if (workspaceDiscovery.hasWorkspaceFile) return [];
158
- const repoSourceDir = path.join(rootDir, "src");
159
- return [{
160
- candidatePath: repoSourceDir,
161
- rootRelativeCandidatePath: toRootRelativePath(rootDir, repoSourceDir),
162
- source: "repo-src-fallback",
163
- packageDir: null,
164
- packageName: null
165
- }];
166
- }
167
- return workspaceDiscovery.packageDirs.map((packageDir) => toPackageTargetCandidate(rootDir, packageDir, fs));
168
- }
169
- //#endregion
170
- export { resolveTagTargetCandidates as t };
@@ -1,106 +0,0 @@
1
- import "./constants-AtPhF-Ct.mjs";
2
- import { d as tokenizeClassString } from "./tokenizer-CeZx73Zu.mjs";
3
- import { i as isUnsafeLiteralForCnStyleApplySplit } from "./collectors-cn-BS8TTQ8O.mjs";
4
- import { t as jsxClassNameStaticLiteral } from "./collectors-jsx-D9tL2ZPM.mjs";
5
- import { i as indentOfLineContaining } from "./ast-helpers-MDRYuIAk.mjs";
6
- import { n as collectGroupableStringNodes, s as slotClassString } from "./collectors-tv-D2PXZaRt.mjs";
7
- import { a as suggestCnGroups, o as summarizeGroupBucketLabels, t as areCnTailwindPartitionsEquivalent } from "./grouping-c1grpCQT.mjs";
8
- import { a as formatJsxCnAttributeValue, n as formatArray, t as escapeTsStringLiteralContent } from "./formatters-DGE8jJ53.mjs";
9
- import ts from "typescript";
10
- //#region src/lib/arrange/domain/ast/targets.ts
11
- function targetReplaceStart(target) {
12
- if (target.kind === "cnArg") return target.item.cnCall ? target.item.cnCall.getStart(target.item.sf) : target.item.primaryClassLiteral.getStart(target.item.sf);
13
- return target.valueNode.getStart(target.sf);
14
- }
15
- function collectLongJsxClassNameTargets(sf) {
16
- const results = [];
17
- const visitTypeScriptSubtree = (tsNode) => {
18
- if (ts.isJsxAttribute(tsNode)) {
19
- const parsed = jsxClassNameStaticLiteral(tsNode);
20
- if (parsed && tokenizeClassString(parsed.lit.text).length >= 2) results.push({
21
- kind: "jsxClassName",
22
- sf,
23
- lit: parsed.lit,
24
- valueNode: parsed.valueNode
25
- });
26
- }
27
- ts.forEachChild(tsNode, visitTypeScriptSubtree);
28
- };
29
- visitTypeScriptSubtree(sf);
30
- return results;
31
- }
32
- function collectGroupTargets(sf, filePath) {
33
- const cnPart = collectGroupableStringNodes(sf).map((stringNode) => ({
34
- kind: "cnArg",
35
- item: stringNode
36
- }));
37
- if (!filePath.endsWith(".tsx")) return cnPart;
38
- return [...cnPart, ...collectLongJsxClassNameTargets(sf)];
39
- }
40
- function formatCnCallReplacement(stringNode, sourceText, withClassName) {
41
- const call = stringNode.cnCall;
42
- const sf = stringNode.sf;
43
- const baseIndent = indentOfLineContaining(sourceText, call.getStart(sf));
44
- const argIndent = `${baseIndent} `;
45
- const dynamicArgTexts = [];
46
- for (const arg of call.arguments) if (!((ts.isStringLiteral(arg) || ts.isNoSubstitutionTemplateLiteral(arg)) && !isUnsafeLiteralForCnStyleApplySplit(arg))) dynamicArgTexts.push(sourceText.slice(arg.getStart(sf), arg.getEnd()));
47
- const pool = slotClassString(stringNode);
48
- const groups = pool.trim() ? suggestCnGroups(pool) : [];
49
- const allArgs = [];
50
- if (groups.length > 1) for (const group of groups) allArgs.push(`${argIndent}"${escapeTsStringLiteralContent(group)}"`);
51
- else if (groups.length === 1) allArgs.push(`${argIndent}"${escapeTsStringLiteralContent(groups[0])}"`);
52
- for (const dynamicArgumentSource of dynamicArgTexts) allArgs.push(`${argIndent}${dynamicArgumentSource}`);
53
- if (withClassName) allArgs.push(`${argIndent}className`);
54
- const commaAfterLastArg = allArgs.length > 1;
55
- return `cn(\n${allArgs.map((argLine, lineIndex) => lineIndex < allArgs.length - 1 || commaAfterLastArg ? `${argLine},` : `${argLine}`).join("\n")}\n${baseIndent})`;
56
- }
57
- function planGroupEditForTarget(target, textAfterUnwrap, withClassName) {
58
- if (target.kind === "jsxClassName") {
59
- const groups = suggestCnGroups(target.lit.text);
60
- if (groups.length <= 1) return void 0;
61
- const start = target.valueNode.getStart(target.sf);
62
- return {
63
- start,
64
- end: target.valueNode.getEnd(),
65
- replacement: formatJsxCnAttributeValue(groups, textAfterUnwrap, start),
66
- bucketSummary: summarizeGroupBucketLabels(groups),
67
- jsxCn: true,
68
- lineSf: target.sf,
69
- reportNode: target.lit,
70
- label: "JSX className"
71
- };
72
- }
73
- const groups = suggestCnGroups(slotClassString(target.item));
74
- if (groups.length <= 1) return void 0;
75
- if (areCnTailwindPartitionsEquivalent(target.item.nodes.map((classLiteral) => classLiteral.text), groups)) return;
76
- if (!target.item.cnCall) {
77
- const anchorClassLiteral = target.item.primaryClassLiteral;
78
- const parentArray = target.item.nodes.length > 1 && ts.isArrayLiteralExpression(anchorClassLiteral.parent) ? anchorClassLiteral.parent : null;
79
- const start = parentArray ? parentArray.getStart(target.item.sf) : anchorClassLiteral.getStart(target.item.sf);
80
- const end = parentArray ? parentArray.getEnd() : anchorClassLiteral.getEnd();
81
- const baseIndent = indentOfLineContaining(textAfterUnwrap, start);
82
- return {
83
- start,
84
- end,
85
- replacement: formatArray(groups).split("\n").map((line, lineIndex) => lineIndex === 0 ? line : `${baseIndent}${line}`).join("\n"),
86
- bucketSummary: summarizeGroupBucketLabels(groups),
87
- jsxCn: false,
88
- lineSf: target.item.sf,
89
- reportNode: anchorClassLiteral,
90
- label: target.item.isTvContext ? "tv" : "cn"
91
- };
92
- }
93
- const call = target.item.cnCall;
94
- return {
95
- start: call.getStart(target.item.sf),
96
- end: call.getEnd(),
97
- replacement: formatCnCallReplacement(target.item, textAfterUnwrap, withClassName),
98
- bucketSummary: summarizeGroupBucketLabels(groups),
99
- jsxCn: false,
100
- lineSf: target.item.sf,
101
- reportNode: target.item.primaryClassLiteral,
102
- label: target.item.isTvContext ? "tv" : "cn"
103
- };
104
- }
105
- //#endregion
106
- export { targetReplaceStart as a, planGroupEditForTarget as i, collectLongJsxClassNameTargets as n, formatCnCallReplacement as r, collectGroupTargets as t };
@@ -1,216 +0,0 @@
1
- import { g as STATE_PREFIXES, h as RESPONSIVE_PREFIX, r as COMPATIBLE_BUCKET_SETS } from "./constants-AtPhF-Ct.mjs";
2
- //#region src/lib/arrange/domain/tokenizer.ts
3
- /**
4
- * Variant stems not covered by a single entry in STATE_PREFIXES (compound `has-*`,
5
- * numbered `nth-*`, media features, v4 `in-[…]`, child selectors `*` / `**`, …).
6
- * When these are missed, `isStateToken` is false and the variant is stripped — the
7
- * utility is then bucketed as if it were unconditional, which breaks preview grouping.
8
- */
9
- function isCompoundOrMediaVariantPrefix(prefix) {
10
- if (prefix === "*" || prefix === "**") return true;
11
- if (prefix === "inert") return true;
12
- if (prefix.startsWith("has-")) return true;
13
- if (prefix.startsWith("in-[")) return true;
14
- if (/^nth(?:-last)?(?:-of-type)?(?:-\d+|-\[)/.test(prefix) || /^nth-of-type-\d+$/.test(prefix) || /^nth-last-of-type-\d+$/.test(prefix)) return true;
15
- if (/^(?:user-valid|user-invalid|contrast-more|contrast-less|forced-colors|inverted-colors)$/.test(prefix)) return true;
16
- if (/^(?:any-)?pointer-(?:fine|coarse|none)$/.test(prefix)) return true;
17
- if (/^(?:portrait|landscape|noscript)$/.test(prefix)) return true;
18
- return false;
19
- }
20
- function tokenizeClassString(classString) {
21
- return classString.trim().split(/\s+/).filter(Boolean);
22
- }
23
- /**
24
- * Index of the first `:` that separates a Tailwind variant segment from the rest.
25
- * Colons inside `[...]` (at positive bracket depth) are ignored so selectors like
26
- * `[&_a:hover]:text-red-500` split as `[&_a:hover]:` + `text-red-500`.
27
- */
28
- function indexOfFirstVariantColon(text) {
29
- let depth = 0;
30
- for (let i = 0; i < text.length; i++) {
31
- const ch = text[i];
32
- if (ch === "[") depth++;
33
- else if (ch === "]") depth = Math.max(0, depth - 1);
34
- else if (ch === ":" && depth === 0) return i;
35
- }
36
- return -1;
37
- }
38
- function stripVariants(token) {
39
- let withoutVariants = token;
40
- const MAX_PASSES = 12;
41
- for (let i = 0; i < MAX_PASSES; i++) {
42
- const colonIdx = indexOfFirstVariantColon(withoutVariants);
43
- if (colonIdx === -1) break;
44
- withoutVariants = withoutVariants.slice(colonIdx + 1);
45
- }
46
- return withoutVariants;
47
- }
48
- /** Outermost variant segment: first `:` at bracket depth 0 → text before it. */
49
- function firstLeadingVariantPrefix(token) {
50
- const colonIdx = indexOfFirstVariantColon(token);
51
- if (colonIdx === -1) return void 0;
52
- return token.slice(0, colonIdx);
53
- }
54
- function isSelectorVariantToken(token) {
55
- const prefix = firstLeadingVariantPrefix(token);
56
- if (prefix === void 0) return false;
57
- if (prefix === "*" || prefix === "**") return true;
58
- if (prefix.startsWith("has-")) return true;
59
- if (prefix.startsWith("in-[")) return true;
60
- if (prefix.startsWith("group-[")) return true;
61
- if (prefix.startsWith("peer-[")) return true;
62
- if (prefix.startsWith("not-[")) return true;
63
- return false;
64
- }
65
- function isStateToken(token) {
66
- const prefix = firstLeadingVariantPrefix(token);
67
- if (prefix === void 0) return false;
68
- if (RESPONSIVE_PREFIX.test(token)) return true;
69
- if (STATE_PREFIXES.has(prefix)) return true;
70
- if (prefix.startsWith("data-[")) return true;
71
- if (prefix.startsWith("aria-[")) return true;
72
- if (prefix.startsWith("supports-[")) return true;
73
- if (prefix.startsWith("in-data-")) return true;
74
- if (/^data-(?!\[)/.test(prefix)) return true;
75
- if (/^aria-/.test(prefix)) return true;
76
- if (/^(group|peer)-/.test(prefix)) return true;
77
- if (/^not-/.test(prefix)) return true;
78
- if (isCompoundOrMediaVariantPrefix(prefix)) return true;
79
- if (prefix.startsWith("[") && prefix.endsWith("]")) return true;
80
- return false;
81
- }
82
- /**
83
- * Secondary sort inside the **composite** bucket: opacity / blend / isolation →
84
- * 3D context → 3D transforms → 2D transforms → filters → will-change.
85
- */
86
- function compositeSecondaryOrder(bareUtility) {
87
- const b = bareUtility;
88
- if (/^opacity(?:-|$)/.test(b) || /^mix-blend-/.test(b) || /^isolation(?:-|$)/.test(b) || b === "isolate") return 0;
89
- if (b === "transform-3d" || /^perspective(?:-|$)/.test(b)) return 10;
90
- if (/^rotate-[xyz](?:-|$)/.test(b) || /^translate-z(?:-|$)/.test(b) || /^scale-z(?:-|$)/.test(b)) return 20;
91
- if (/^translate(?:-|$)/.test(b) || /^scale(?:-|$)/.test(b) || /^rotate(?:-|$)/.test(b) || /^skew(?:-|$)/.test(b)) return 30;
92
- if (/^transform(?:-(?:gpu|cpu|none))?$/.test(b)) return 35;
93
- if (/^blur(?:-|$)/.test(b) || /^backdrop-/.test(b) || /^filter(?:-|$)/.test(b) || /^brightness-/.test(b) || /^contrast-/.test(b) || /^grayscale(?:-|$)/.test(b) || /^hue-rotate-/.test(b) || /^invert(?:-|$)/.test(b) || /^saturate-/.test(b) || /^sepia(?:-|$)/.test(b)) return 40;
94
- if (/^will-change/.test(b)) return 50;
95
- return 99;
96
- }
97
- /** Classify a **bare** utility (no `hover:` / `md:` / … prefixes). */
98
- function classifyBareUtility(bareUtility) {
99
- const b = bareUtility;
100
- if (/^@container(?:\/[a-z][a-z0-9-]*)?$/i.test(b)) return "existence";
101
- if (/^(?:hidden|contents|sr-only|not-sr-only|list-item|flow-root)$/.test(b) || /^(?:block|inline-block|inline)$/.test(b)) return "existence";
102
- if (/^table(?:$|-)/.test(b)) return "existence";
103
- if (/^contain-/.test(b)) return "existence";
104
- if (/^(?:group|peer)(?:\/[a-z][a-z0-9-]*)?$/.test(b)) return "existence";
105
- if (/^(?:static|relative|absolute|fixed|sticky)$/.test(b)) return "position";
106
- if (/^-?(?:inset|top|right|bottom|left|start|end)(?:-|\/|$)/.test(b) || /^-?(?:inset-x|inset-y|inset-s|inset-e)-/.test(b)) return "position";
107
- if (/^-?z-/.test(b) || b === "z-auto") return "position";
108
- if (/^(?:flex|inline-flex|grid|inline-grid|subgrid|masonry)(?:$|-)/.test(b) || /^(?:items|justify|justify-items|justify-self|content|self|place|place-content|place-items|place-self)-/.test(b) || /^-?(?:gap|space-[xy]|col-|row-|grid-|auto-cols|auto-rows|order-|order$)/.test(b) || /^-?(?:auto-flow|grid-flow)-/.test(b) || /^(?:columns-|break-after|break-before|break-inside)-/.test(b) || /^(?:float|clear)-/.test(b) || /^(?:wrap-|flex-wrap|flex-nowrap|flex-row|flex-col|flex-auto|flex-initial|flex-none|flex-1|flex-\[)/.test(b) || /^container$/.test(b)) return "layout";
109
- if (/^-?(?:w|h|min-w|max-w|min-h|max-h|size|aspect|shrink|grow|basis)-/.test(b) || /^(?:shrink|grow)(?:$|-)/.test(b) || /^-?overflow-/.test(b) || /^-?object-/.test(b)) return "sizing";
110
- if (/^-?(?:p|px|py|pt|pb|pl|pr|ps|pe|m|mx|my|mt|mb|ml|mr|ms|me)-/.test(b)) return "spacing";
111
- if (/^-?(?:rounded|border|ring|divide|inset-ring)(?:-|\/|$)/.test(b) || /^(?:rounded|border|ring|divide|inset-ring)$/.test(b) || /^ring-offset-/.test(b)) return "shape";
112
- if (/^-?bg-/.test(b) || /^(?:from|via|to)(?:-|\/|$)/.test(b) || /^bg-(?:linear|radial|conic)-/.test(b) || /^-?mask-/.test(b) || /^-?(?:fill|stroke)-/.test(b)) return "background";
113
- if (/^-?(?:shadow|inset-shadow|drop-shadow|text-shadow)(?:-|\/|$)/.test(b) || /^(?:shadow|inset-shadow)$/.test(b) || /^-?outline(?:-|\/|$)/.test(b) || /^outline$/.test(b)) return "shadow";
114
- if (/^-?(?:font|leading|tracking|list|indent|align|decoration|underline-offset|text-wrap|text-balance|text-pretty)-/.test(b) || /^-?(?:text-(?!shadow))/.test(b) || /^-?(?:whitespace|break|line-clamp|hyphens)-/.test(b) || /^(?:antialiased|subpixel-antialiased|italic|not-italic|overline|line-through|underline|no-underline|uppercase|lowercase|capitalize|normal-case|truncate|text-wrap|text-balance|text-pretty)$/.test(b) || /^text-wrap-/.test(b) || /^tabular-nums$|^slashed-zero$|^lining-nums$|^oldstyle-nums$|^proportional-nums$/.test(b)) return "typography";
115
- if (/^opacity(?:-|$)/.test(b) || /^mix-blend-/.test(b) || /^isolation(?:-|$)/.test(b) || b === "isolate" || /^transform(?:-(?:gpu|cpu|none))?$/.test(b) || /^-?(?:translate|scale|rotate|skew)-/.test(b) || /^perspective(?:-|$)/.test(b) || b === "transform-3d" || /^blur(?:-|$)/.test(b) || /^backdrop-/.test(b) || /^filter(?:-|$)/.test(b) || /^brightness-/.test(b) || /^contrast-/.test(b) || /^grayscale(?:-|$)/.test(b) || /^hue-rotate-/.test(b) || /^invert(?:-|$)/.test(b) || /^saturate-/.test(b) || /^sepia(?:-|$)/.test(b) || /^will-change/.test(b)) return "composite";
116
- if (/^(?:transition|duration|ease|delay|animate)(?:-|$)/.test(b) || /^ease-/.test(b)) return "motion";
117
- if (/^(?:cursor|pointer-events|select|touch|scroll|scroll-m|scroll-p|overscroll|snap|resize|field-sizing|appearance|scheme|color-scheme|accent|caret)(?:-|$)/.test(b) || /^(?:cursor|select|resize)$/.test(b) || /^scroll-behavior/.test(b) || /^scroll-snap/.test(b) || /^touch-action/.test(b) || b === "inert") return "behavior";
118
- return "other";
119
- }
120
- /**
121
- * Arbitrary **parent** selectors (`[&…]`, `[&>a]:…`, slot forms with `&` inside the bracket)
122
- * scope utilities to descendants — bucket as `selector` so they chunk apart from base layout/typography
123
- * and are labeled distinctly from interactive `state` variants (`hover:`, `data-[…]:`, …).
124
- * Pure arbitrary **properties** (`[--x]:`, `[color:red]`) have no `&` in the leading `[…]` segment.
125
- */
126
- function isArbitraryParentSelectorStateToken(token) {
127
- if (/^\[&/.test(token)) return true;
128
- if (!token.startsWith("[")) return false;
129
- const colonIdx = indexOfFirstVariantColon(token);
130
- if (colonIdx === -1 || colonIdx === 0 || token[colonIdx - 1] !== "]") return false;
131
- return token.slice(0, colonIdx).includes("&");
132
- }
133
- function classifyToken(token) {
134
- if (isArbitraryParentSelectorStateToken(token)) return "selector";
135
- if (isSelectorVariantToken(token)) return "selector";
136
- if (/^@container(?:\/[a-z][a-z0-9-]*)?$/i.test(token)) return "existence";
137
- if (token.startsWith("[")) {
138
- const splitIdx = indexOfFirstVariantColon(token);
139
- if (splitIdx === -1) return "arbitrary";
140
- if (splitIdx === 0 || token[splitIdx - 1] !== "]") return "arbitrary";
141
- }
142
- if (firstLeadingVariantPrefix(token) === "starting") return "starting";
143
- if (isStateToken(token)) return "state";
144
- return classifyBareUtility(stripVariants(token));
145
- }
146
- /**
147
- * Stable key for `data-[…]` variants so unrelated selectors stay split, while
148
- * **branching on the full bracket** (e.g. `data-[vaul-drawer-direction=bottom]`
149
- * vs `=left`) keeps direction-specific utilities in separate state groups.
150
- */
151
- function dataAttributeStem(token) {
152
- const match = token.match(/^data-\[([^\]]*)\]/);
153
- return match ? `data-[${match[1]}]` : "data";
154
- }
155
- /** Same idea as {@link dataAttributeStem} for `aria-[…]:` variants. */
156
- function ariaAttributeStem(token) {
157
- const match = token.match(/^aria-\[([^\]]*)\]/);
158
- return match ? `aria-[${match[1]}]` : "aria";
159
- }
160
- /** `in-data-[…]:` — normalize on the full bracket expression like {@link dataAttributeStem}. */
161
- function inDataAttributeStem(token) {
162
- const match = token.match(/^in-data-\[([^\]]*)\]/);
163
- return match ? `in-data-[${match[1]}]` : "in-data";
164
- }
165
- /**
166
- * Stable key for splitting adjacent `state` / `starting` tokens in {@link suggestCnGroups}
167
- * (`selector` uses {@link selectorKey}).
168
- * Uses the **full variant stack** (every `:` segment outside `[…]`), not only the
169
- * outermost prefix, so `@md/foo:[&>*]:w-auto` and `@md/foo:has-[…]:mt-px` stay in
170
- * separate groups while `hover:opacity` still keys as `hover` + `opacity`…
171
- *
172
- * `data-[…]` / `aria-[…]` normalize the first segment via {@link dataAttributeStem} /
173
- * {@link ariaAttributeStem} (full token required for bracket capture).
174
- */
175
- function stateKey(token) {
176
- const layers = [];
177
- let rest = token;
178
- while (rest.length > 0) {
179
- const colonIdx = indexOfFirstVariantColon(rest);
180
- if (colonIdx === -1) break;
181
- layers.push(rest.slice(0, colonIdx));
182
- rest = rest.slice(colonIdx + 1);
183
- }
184
- if (layers.length === 0) return token;
185
- if (layers[0].startsWith("data-[")) layers[0] = dataAttributeStem(token);
186
- else if (layers[0].startsWith("aria-[")) layers[0] = ariaAttributeStem(token);
187
- else if (layers[0].startsWith("in-data-[")) layers[0] = inDataAttributeStem(token);
188
- return layers.join("");
189
- }
190
- const SELECTOR_KEY_SEP = "";
191
- /**
192
- * Variant key for {@link Bucket} `"selector"` tokens in {@link suggestCnGroups}.
193
- * Reuses {@link stateKey} layer splitting, then normalizes common shadcn/Radix SVG patterns so
194
- * `[&_svg]:…` and `[&_svg:not([class*='size-'])]:…` stay in one chunk.
195
- */
196
- function selectorKey(token) {
197
- return stateKey(token).split(SELECTOR_KEY_SEP).map(normalizeSelectorVariantLayer).join(SELECTOR_KEY_SEP);
198
- }
199
- function normalizeSelectorVariantLayer(layer) {
200
- if (layer === "[&_svg:not([class*='size-'])]") return "[&_svg]";
201
- return layer;
202
- }
203
- function bucketsCompatible(a, b) {
204
- if (a === b) return true;
205
- return COMPATIBLE_BUCKET_SETS.some((bucketSet) => bucketSet.has(a) && bucketSet.has(b));
206
- }
207
- /** Like {@link bucketsCompatible}, but never merge two distinct state / starting / selector variant blobs. */
208
- function bucketsMergeCompatible(a, b) {
209
- if (a === "state" && b === "state") return false;
210
- if (a === "starting" && b === "starting") return false;
211
- if (a === "selector" && b === "selector") return false;
212
- if (a === "arbitrary" || b === "arbitrary") return false;
213
- return bucketsCompatible(a, b);
214
- }
215
- //#endregion
216
- export { compositeSecondaryOrder as a, selectorKey as c, tokenizeClassString as d, classifyToken as i, stateKey as l, bucketsMergeCompatible as n, indexOfFirstVariantColon as o, classifyBareUtility as r, isArbitraryParentSelectorStateToken as s, bucketsCompatible as t, stripVariants as u };
@@ -1,37 +0,0 @@
1
- import { t as messageFromCaughtUnknown } from "./caught-unknown-message-CRhkDWO7.mjs";
2
- import { n as MirrorErrorCode, t as MirrorError } from "./errors-CFH4w6ic.mjs";
3
- //#region src/lib/mirror/infra/update-pkg.ts
4
- /** Shared rule: show `package.json#name` when it is a non-empty string; else folder basename. */
5
- function resolvePackageDisplayName(packageJson, folderBasename) {
6
- const declaredName = packageJson.name;
7
- return typeof declaredName === "string" && declaredName.length > 0 ? declaredName : folderBasename;
8
- }
9
- async function readPackageJsonDisplayName(fs, packageJsonPath, folderBasename) {
10
- if (!fs.existsSync(packageJsonPath)) return folderBasename;
11
- try {
12
- const raw = await fs.readFile(packageJsonPath, "utf8");
13
- return resolvePackageDisplayName(JSON.parse(raw), folderBasename);
14
- } catch {
15
- return folderBasename;
16
- }
17
- }
18
- /**
19
- * Writes `exports` into `package.json` via a temp file + rename (atomic on same volume).
20
- * Preserves a trailing newline after JSON.
21
- */
22
- async function writePackageJsonExportsAtomic(fs, packageJsonPath, nextExports) {
23
- const raw = await fs.readFile(packageJsonPath, "utf8");
24
- const packageJson = JSON.parse(raw);
25
- packageJson.exports = nextExports;
26
- const serialized = JSON.stringify(packageJson, null, 2) + "\n";
27
- const tmpPath = `${packageJsonPath}.tmp`;
28
- await fs.writeFile(tmpPath, serialized, "utf8");
29
- try {
30
- await fs.rename(tmpPath, packageJsonPath);
31
- } catch (caughtRenameError) {
32
- await fs.unlink(tmpPath).catch(() => {});
33
- throw new MirrorError(MirrorErrorCode.PACKAGE_WRITE, `Failed to atomically update ${packageJsonPath}: ${messageFromCaughtUnknown(caughtRenameError)}`, caughtRenameError instanceof Error ? { cause: caughtRenameError } : void 0);
34
- }
35
- }
36
- //#endregion
37
- export { resolvePackageDisplayName as n, writePackageJsonExportsAtomic as r, readPackageJsonDisplayName as t };
@@ -1,33 +0,0 @@
1
- import path from "node:path";
2
- //#region src/lib/arrange/infra/walk.ts
3
- const DEFAULT_SKIP_DIRS = new Set([
4
- "node_modules",
5
- "dist",
6
- ".git",
7
- ".turbo",
8
- ".next",
9
- ".cache",
10
- "out",
11
- "build",
12
- "coverage",
13
- ".vercel",
14
- ".output"
15
- ]);
16
- function walkTsxFiles(rootDirectoryPath, fs) {
17
- const result = [];
18
- const visit = (entryPath) => {
19
- if (fs.statSync(entryPath).isDirectory()) {
20
- for (const childName of fs.readdirSync(entryPath)) {
21
- if (DEFAULT_SKIP_DIRS.has(childName)) continue;
22
- visit(path.join(entryPath, childName));
23
- }
24
- return;
25
- }
26
- if (entryPath.endsWith(".d.ts")) return;
27
- if (entryPath.endsWith(".tsx") || entryPath.endsWith(".ts")) result.push(entryPath);
28
- };
29
- visit(rootDirectoryPath);
30
- return result;
31
- }
32
- //#endregion
33
- export { walkTsxFiles as n, DEFAULT_SKIP_DIRS as t };