@codefast/cli 0.3.13-canary.1 → 0.3.13-canary.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/README.md +1 -1
  2. package/dist/bin.d.ts +3 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/{bin.mjs → bin.js} +1 -4
  5. package/dist/commands/arrange.d.ts +3 -0
  6. package/dist/commands/arrange.d.ts.map +1 -0
  7. package/dist/commands/arrange.js +108 -0
  8. package/dist/commands/mirror.d.ts +3 -0
  9. package/dist/commands/mirror.d.ts.map +1 -0
  10. package/dist/commands/mirror.js +36 -0
  11. package/dist/commands/tag.d.ts +3 -0
  12. package/dist/commands/tag.d.ts.map +1 -0
  13. package/dist/commands/tag.js +44 -0
  14. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts +5 -0
  15. package/dist/lib/arrange/application/ports/domain-source-parser.port.d.ts.map +1 -0
  16. package/dist/lib/arrange/application/ports/file-walker.port.d.ts +5 -0
  17. package/dist/lib/arrange/application/ports/file-walker.port.d.ts.map +1 -0
  18. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts +6 -0
  19. package/dist/lib/arrange/application/requests/analyze-directory.request.d.ts.map +1 -0
  20. package/dist/lib/arrange/application/requests/analyze-directory.request.js +4 -0
  21. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts +18 -0
  22. package/dist/lib/arrange/application/requests/arrange-sync.request.d.ts.map +1 -0
  23. package/dist/lib/arrange/application/requests/arrange-sync.request.js +15 -0
  24. package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts +8 -0
  25. package/dist/lib/arrange/application/requests/suggest-groups.request.d.ts.map +1 -0
  26. package/dist/lib/arrange/application/requests/suggest-groups.request.js +8 -0
  27. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts +17 -0
  28. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.d.ts.map +1 -0
  29. package/dist/lib/arrange/application/use-cases/analyze-directory.use-case.js +24 -0
  30. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts +17 -0
  31. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.d.ts.map +1 -0
  32. package/dist/lib/arrange/application/use-cases/group-file-preview.use-case.js +46 -0
  33. package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts +5 -0
  34. package/dist/lib/arrange/application/use-cases/group-file.use-case.d.ts.map +1 -0
  35. package/dist/lib/arrange/application/use-cases/group-file.use-case.js +40 -0
  36. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts +19 -0
  37. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.d.ts.map +1 -0
  38. package/dist/lib/arrange/application/use-cases/run-arrange-sync.use-case.js +85 -0
  39. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts +7 -0
  40. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.d.ts.map +1 -0
  41. package/dist/lib/arrange/application/use-cases/suggest-cn-groups.use-case.js +10 -0
  42. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts +12 -0
  43. package/dist/lib/arrange/domain/arrange-analyze.service.d.ts.map +1 -0
  44. package/dist/lib/arrange/domain/arrange-analyze.service.js +116 -0
  45. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts +53 -0
  46. package/dist/lib/arrange/domain/arrange-grouping.service.d.ts.map +1 -0
  47. package/dist/lib/arrange/domain/arrange-grouping.service.js +106 -0
  48. package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts +28 -0
  49. package/dist/lib/arrange/domain/ast/ast-helpers.helper.d.ts.map +1 -0
  50. package/dist/lib/arrange/domain/ast/ast-helpers.helper.js +130 -0
  51. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts +179 -0
  52. package/dist/lib/arrange/domain/ast/ast-node.model.d.ts.map +1 -0
  53. package/dist/lib/arrange/domain/ast/ast-node.model.js +210 -0
  54. package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts +7 -0
  55. package/dist/lib/arrange/domain/ast/collectors-cn.collector.d.ts.map +1 -0
  56. package/dist/lib/arrange/domain/ast/collectors-cn.collector.js +70 -0
  57. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts +4 -0
  58. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.d.ts.map +1 -0
  59. package/dist/lib/arrange/domain/ast/collectors-jsx.collector.js +21 -0
  60. package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts +13 -0
  61. package/dist/lib/arrange/domain/ast/collectors-tv.collector.d.ts.map +1 -0
  62. package/dist/lib/arrange/domain/ast/collectors-tv.collector.js +302 -0
  63. package/dist/lib/arrange/domain/ast/targets.model.d.ts +8 -0
  64. package/dist/lib/arrange/domain/ast/targets.model.d.ts.map +1 -0
  65. package/dist/lib/arrange/domain/ast/targets.model.js +147 -0
  66. package/dist/lib/arrange/domain/constants.domain.d.ts +70 -0
  67. package/dist/lib/arrange/domain/constants.domain.d.ts.map +1 -0
  68. package/dist/lib/arrange/domain/constants.domain.js +182 -0
  69. package/dist/lib/arrange/domain/errors.domain.d.ts +14 -0
  70. package/dist/lib/arrange/domain/errors.domain.d.ts.map +1 -0
  71. package/dist/lib/arrange/domain/errors.domain.js +16 -0
  72. package/dist/lib/arrange/domain/grouping.domain.d.ts +41 -0
  73. package/dist/lib/arrange/domain/grouping.domain.d.ts.map +1 -0
  74. package/dist/lib/arrange/domain/grouping.domain.js +371 -0
  75. package/dist/lib/arrange/domain/imports.domain.d.ts +7 -0
  76. package/dist/lib/arrange/domain/imports.domain.d.ts.map +1 -0
  77. package/dist/lib/arrange/domain/imports.domain.js +80 -0
  78. package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts +16 -0
  79. package/dist/lib/arrange/domain/source-text-formatters.formatter.d.ts.map +1 -0
  80. package/dist/lib/arrange/domain/source-text-formatters.formatter.js +55 -0
  81. package/dist/lib/arrange/domain/tokenizer.util.d.ts +45 -0
  82. package/dist/lib/arrange/domain/tokenizer.util.d.ts.map +1 -0
  83. package/dist/lib/arrange/domain/tokenizer.util.js +469 -0
  84. package/dist/lib/arrange/domain/types.domain.d.ts +115 -0
  85. package/dist/lib/arrange/domain/types.domain.d.ts.map +1 -0
  86. package/dist/lib/arrange/domain/types.domain.js +10 -0
  87. package/dist/lib/arrange/index.d.ts +45 -0
  88. package/dist/lib/arrange/index.d.ts.map +1 -0
  89. package/dist/lib/arrange/index.js +41 -0
  90. package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts +14 -0
  91. package/dist/lib/arrange/infra/arrange-sync-cli-options.adapter.d.ts.map +1 -0
  92. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts +11 -0
  93. package/dist/lib/arrange/infra/domain-source-parser.adapter.d.ts.map +1 -0
  94. package/dist/lib/arrange/infra/domain-source-parser.adapter.js +19 -0
  95. package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts +3 -0
  96. package/dist/lib/arrange/infra/ensure-cn-import.adapter.d.ts.map +1 -0
  97. package/dist/lib/arrange/infra/ensure-cn-import.adapter.js +6 -0
  98. package/dist/lib/arrange/infra/file-walker.adapter.d.ts +8 -0
  99. package/dist/lib/arrange/infra/file-walker.adapter.d.ts.map +1 -0
  100. package/dist/lib/arrange/infra/file-walker.adapter.js +17 -0
  101. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts +8 -0
  102. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.d.ts.map +1 -0
  103. package/dist/lib/arrange/infra/merge-cn-literal-pool-for-test.test-helper.js +25 -0
  104. package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts +10 -0
  105. package/dist/lib/arrange/infra/ts-ast-translator.adapter.d.ts.map +1 -0
  106. package/dist/lib/arrange/infra/ts-ast-translator.adapter.js +363 -0
  107. package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts +14 -0
  108. package/dist/lib/arrange/presentation/arrange-prelude.presenter.d.ts.map +1 -0
  109. package/dist/lib/arrange/presentation/arrange-prelude.presenter.js +24 -0
  110. package/dist/lib/arrange/presentation/formatters.presenter.d.ts +3 -0
  111. package/dist/lib/arrange/presentation/formatters.presenter.d.ts.map +1 -0
  112. package/dist/lib/arrange/presentation/formatters.presenter.js +2 -0
  113. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts +4 -0
  114. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.d.ts.map +1 -0
  115. package/dist/lib/arrange/presentation/present-analyze-cli.presenter.js +4 -0
  116. package/dist/lib/arrange/presentation/report.presenter.d.ts +4 -0
  117. package/dist/lib/arrange/presentation/report.presenter.d.ts.map +1 -0
  118. package/dist/lib/arrange/presentation/report.presenter.js +37 -0
  119. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts +2 -0
  120. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.d.ts.map +1 -0
  121. package/dist/lib/arrange/presentation/resolve-arrange-cli-target.presenter.js +7 -0
  122. package/dist/lib/config/domain/schema.domain.d.ts +50 -0
  123. package/dist/lib/config/domain/schema.domain.d.ts.map +1 -0
  124. package/dist/lib/config/domain/schema.domain.js +43 -0
  125. package/dist/lib/config/index.d.ts +4 -0
  126. package/dist/lib/config/index.d.ts.map +1 -0
  127. package/dist/lib/config/index.js +2 -0
  128. package/dist/lib/config/infra/loader.adapter.d.ts +11 -0
  129. package/dist/lib/config/infra/loader.adapter.d.ts.map +1 -0
  130. package/dist/lib/config/infra/loader.adapter.js +90 -0
  131. package/dist/lib/core/application/architecture-boundaries.policy.d.ts +19 -0
  132. package/dist/lib/core/application/architecture-boundaries.policy.d.ts.map +1 -0
  133. package/dist/lib/core/application/architecture-boundaries.policy.js +370 -0
  134. package/dist/lib/core/application/ports/cli-io.port.d.ts +31 -0
  135. package/dist/lib/core/application/ports/cli-io.port.d.ts.map +1 -0
  136. package/dist/lib/core/application/schema-parse.util.d.ts +8 -0
  137. package/dist/lib/core/application/schema-parse.util.d.ts.map +1 -0
  138. package/dist/lib/core/application/schema-parse.util.js +20 -0
  139. package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts +6 -0
  140. package/dist/lib/core/application/utils/caught-unknown-message.util.d.ts.map +1 -0
  141. package/dist/lib/core/application/utils/caught-unknown-message.util.js +34 -0
  142. package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts +5 -0
  143. package/dist/lib/core/application/utils/verbose-diagnostics.util.d.ts.map +1 -0
  144. package/dist/lib/core/application/utils/verbose-diagnostics.util.js +7 -0
  145. package/dist/lib/core/domain/errors.domain.d.ts +11 -0
  146. package/dist/lib/core/domain/errors.domain.d.ts.map +1 -0
  147. package/dist/lib/core/domain/errors.domain.js +9 -0
  148. package/dist/lib/core/domain/result.model.d.ts +17 -0
  149. package/dist/lib/core/domain/result.model.d.ts.map +1 -0
  150. package/dist/lib/core/domain/result.model.js +15 -0
  151. package/dist/lib/core/infra/container.adapter.d.ts +58 -0
  152. package/dist/lib/core/infra/container.adapter.d.ts.map +1 -0
  153. package/dist/lib/core/infra/container.adapter.js +80 -0
  154. package/dist/lib/core/infra/logging-decorator.adapter.d.ts +12 -0
  155. package/dist/lib/core/infra/logging-decorator.adapter.d.ts.map +1 -0
  156. package/dist/lib/core/infra/logging-decorator.adapter.js +75 -0
  157. package/dist/lib/core/presentation/cli-executor.presenter.d.ts +33 -0
  158. package/dist/lib/core/presentation/cli-executor.presenter.d.ts.map +1 -0
  159. package/dist/lib/core/presentation/cli-executor.presenter.js +73 -0
  160. package/dist/lib/core/presentation/format-app-error.presenter.d.ts +6 -0
  161. package/dist/lib/core/presentation/format-app-error.presenter.d.ts.map +1 -0
  162. package/dist/lib/core/presentation/format-app-error.presenter.js +19 -0
  163. package/dist/lib/core/presentation/global-cli-options.presenter.d.ts +9 -0
  164. package/dist/lib/core/presentation/global-cli-options.presenter.d.ts.map +1 -0
  165. package/dist/lib/core/presentation/global-cli-options.presenter.js +8 -0
  166. package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts +8 -0
  167. package/dist/lib/core/presentation/load-codefast-config.presenter.d.ts.map +1 -0
  168. package/dist/lib/core/presentation/load-codefast-config.presenter.js +15 -0
  169. package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts +5 -0
  170. package/dist/lib/core/presentation/parse-cli-schema.presenter.d.ts.map +1 -0
  171. package/dist/lib/core/presentation/parse-cli-schema.presenter.js +4 -0
  172. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts +6 -0
  173. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.d.ts.map +1 -0
  174. package/dist/lib/core/presentation/run-cli-use-case-after-parse.presenter.js +17 -0
  175. package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts +5 -0
  176. package/dist/lib/core/presentation/workspace-root-strict.presenter.d.ts.map +1 -0
  177. package/dist/lib/core/presentation/workspace-root-strict.presenter.js +12 -0
  178. package/dist/lib/infra/config-reporter.adapter.d.ts +4 -0
  179. package/dist/lib/infra/config-reporter.adapter.d.ts.map +1 -0
  180. package/dist/lib/infra/config-reporter.adapter.js +9 -0
  181. package/dist/lib/infra/fs-contract.port.d.ts +2 -0
  182. package/dist/lib/infra/fs-contract.port.d.ts.map +1 -0
  183. package/dist/lib/infra/fs-contract.port.js +1 -0
  184. package/dist/lib/infra/node-io.adapter.d.ts +4 -0
  185. package/dist/lib/infra/node-io.adapter.d.ts.map +1 -0
  186. package/dist/lib/infra/node-io.adapter.js +37 -0
  187. package/dist/lib/infra/workspace/repo-root.adapter.d.ts +7 -0
  188. package/dist/lib/infra/workspace/repo-root.adapter.d.ts.map +1 -0
  189. package/dist/lib/infra/workspace/repo-root.adapter.js +23 -0
  190. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts +6 -0
  191. package/dist/lib/mirror/application/ports/file-system-service.port.d.ts.map +1 -0
  192. package/dist/lib/mirror/application/ports/file-system-service.port.js +1 -0
  193. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts +27 -0
  194. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.d.ts.map +1 -0
  195. package/dist/lib/mirror/application/ports/mirror-sync-reporter.port.js +1 -0
  196. package/dist/lib/mirror/application/ports/package-repository.port.d.ts +16 -0
  197. package/dist/lib/mirror/application/ports/package-repository.port.d.ts.map +1 -0
  198. package/dist/lib/mirror/application/ports/package-repository.port.js +1 -0
  199. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts +7 -0
  200. package/dist/lib/mirror/application/ports/workspace-service.port.d.ts.map +1 -0
  201. package/dist/lib/mirror/application/ports/workspace-service.port.js +1 -0
  202. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts +10 -0
  203. package/dist/lib/mirror/application/requests/mirror-sync.request.d.ts.map +1 -0
  204. package/dist/lib/mirror/application/requests/mirror-sync.request.js +8 -0
  205. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts +10 -0
  206. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.d.ts.map +1 -0
  207. package/dist/lib/mirror/application/use-cases/generate-mirror-exports.use-case.js +271 -0
  208. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts +19 -0
  209. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.d.ts.map +1 -0
  210. package/dist/lib/mirror/application/use-cases/run-mirror-sync.use-case.js +168 -0
  211. package/dist/lib/mirror/domain/constants.domain.d.ts +6 -0
  212. package/dist/lib/mirror/domain/constants.domain.d.ts.map +1 -0
  213. package/dist/lib/mirror/domain/constants.domain.js +5 -0
  214. package/dist/lib/mirror/domain/errors.domain.d.ts +10 -0
  215. package/dist/lib/mirror/domain/errors.domain.d.ts.map +1 -0
  216. package/dist/lib/mirror/domain/errors.domain.js +12 -0
  217. package/dist/lib/mirror/domain/types.domain.d.ts +65 -0
  218. package/dist/lib/mirror/domain/types.domain.d.ts.map +1 -0
  219. package/dist/lib/mirror/domain/types.domain.js +1 -0
  220. package/dist/lib/mirror/index.d.ts +6 -0
  221. package/dist/lib/mirror/index.d.ts.map +1 -0
  222. package/dist/lib/mirror/index.js +1 -0
  223. package/dist/lib/mirror/infra/dirent-list.adapter.d.ts +9 -0
  224. package/dist/lib/mirror/infra/dirent-list.adapter.d.ts.map +1 -0
  225. package/dist/lib/mirror/infra/dirent-list.adapter.js +13 -0
  226. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts +7 -0
  227. package/dist/lib/mirror/infra/file-system-service.adapter.d.ts.map +1 -0
  228. package/dist/lib/mirror/infra/file-system-service.adapter.js +47 -0
  229. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts +14 -0
  230. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.d.ts.map +1 -0
  231. package/dist/lib/mirror/infra/mirror-sync-cli-options.adapter.js +1 -0
  232. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts +3 -0
  233. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.d.ts.map +1 -0
  234. package/dist/lib/mirror/infra/mirror-sync-reporter.adapter.js +13 -0
  235. package/dist/lib/mirror/infra/package-filter.adapter.d.ts +8 -0
  236. package/dist/lib/mirror/infra/package-filter.adapter.d.ts.map +1 -0
  237. package/dist/lib/mirror/infra/package-filter.adapter.js +33 -0
  238. package/dist/lib/mirror/infra/package-repository.adapter.d.ts +17 -0
  239. package/dist/lib/mirror/infra/package-repository.adapter.d.ts.map +1 -0
  240. package/dist/lib/mirror/infra/package-repository.adapter.js +17 -0
  241. package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts +2 -0
  242. package/dist/lib/mirror/infra/path-normalizer.adapter.d.ts.map +1 -0
  243. package/dist/lib/mirror/infra/path-normalizer.adapter.js +4 -0
  244. package/dist/lib/mirror/infra/update-pkg.adapter.d.ts +19 -0
  245. package/dist/lib/mirror/infra/update-pkg.adapter.d.ts.map +1 -0
  246. package/dist/lib/mirror/infra/update-pkg.adapter.js +156 -0
  247. package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts +26 -0
  248. package/dist/lib/mirror/infra/workspace-packages.adapter.d.ts.map +1 -0
  249. package/dist/lib/mirror/infra/workspace-packages.adapter.js +170 -0
  250. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts +8 -0
  251. package/dist/lib/mirror/infra/workspace-service.adapter.d.ts.map +1 -0
  252. package/dist/lib/mirror/infra/workspace-service.adapter.js +10 -0
  253. package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts +17 -0
  254. package/dist/lib/mirror/presentation/mirror-prelude.presenter.d.ts.map +1 -0
  255. package/dist/lib/mirror/presentation/mirror-prelude.presenter.js +35 -0
  256. package/dist/lib/mirror/presentation/reporter.presenter.d.ts +25 -0
  257. package/dist/lib/mirror/presentation/reporter.presenter.d.ts.map +1 -0
  258. package/dist/lib/mirror/presentation/reporter.presenter.js +140 -0
  259. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts +11 -0
  260. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.d.ts.map +1 -0
  261. package/dist/lib/mirror/presentation/resolve-mirror-package-arg.presenter.js +27 -0
  262. package/dist/lib/shared/source-code/domain/text-edit.model.d.ts +14 -0
  263. package/dist/lib/shared/source-code/domain/text-edit.model.d.ts.map +1 -0
  264. package/dist/lib/shared/source-code/domain/text-edit.model.js +30 -0
  265. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts +4 -0
  266. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.d.ts.map +1 -0
  267. package/dist/lib/shared/source-code/infra/tsx-file-walk.adapter.js +37 -0
  268. package/dist/lib/tag/application/ports/target-resolver.port.d.ts +6 -0
  269. package/dist/lib/tag/application/ports/target-resolver.port.d.ts.map +1 -0
  270. package/dist/lib/tag/application/ports/target-resolver.port.js +1 -0
  271. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts +6 -0
  272. package/dist/lib/tag/application/ports/typescript-tree-walk.port.d.ts.map +1 -0
  273. package/dist/lib/tag/application/ports/typescript-tree-walk.port.js +1 -0
  274. package/dist/lib/tag/application/requests/tag-sync.request.d.ts +10 -0
  275. package/dist/lib/tag/application/requests/tag-sync.request.d.ts.map +1 -0
  276. package/dist/lib/tag/application/requests/tag-sync.request.js +8 -0
  277. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts +23 -0
  278. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.d.ts.map +1 -0
  279. package/dist/lib/tag/application/use-cases/run-tag-sync.use-case.js +357 -0
  280. package/dist/lib/tag/domain/types.domain.d.ts +56 -0
  281. package/dist/lib/tag/domain/types.domain.d.ts.map +1 -0
  282. package/dist/lib/tag/domain/types.domain.js +1 -0
  283. package/dist/lib/tag/index.d.ts +14 -0
  284. package/dist/lib/tag/index.d.ts.map +1 -0
  285. package/dist/lib/tag/index.js +10 -0
  286. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts +14 -0
  287. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.d.ts.map +1 -0
  288. package/dist/lib/tag/infra/tag-sync-cli-options.adapter.js +1 -0
  289. package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts +4 -0
  290. package/dist/lib/tag/infra/tag-target-candidates.adapter.d.ts.map +1 -0
  291. package/dist/lib/tag/infra/tag-target-candidates.adapter.js +200 -0
  292. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts +3 -0
  293. package/dist/lib/tag/infra/tag-target-resolver.adapter.d.ts.map +1 -0
  294. package/dist/lib/tag/infra/tag-target-resolver.adapter.js +4 -0
  295. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts +3 -0
  296. package/dist/lib/tag/infra/typescript-tree-walk.adapter.d.ts.map +1 -0
  297. package/dist/lib/tag/infra/typescript-tree-walk.adapter.js +4 -0
  298. package/dist/lib/tag/presentation/colors.presenter.d.ts +8 -0
  299. package/dist/lib/tag/presentation/colors.presenter.d.ts.map +1 -0
  300. package/dist/lib/tag/presentation/colors.presenter.js +9 -0
  301. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts +8 -0
  302. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.d.ts.map +1 -0
  303. package/dist/lib/tag/presentation/resolve-tag-cli-target.presenter.js +10 -0
  304. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts +8 -0
  305. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.d.ts.map +1 -0
  306. package/dist/lib/tag/presentation/resolve-tag-workspace-root.presenter.js +10 -0
  307. package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts +15 -0
  308. package/dist/lib/tag/presentation/tag-prelude.presenter.d.ts.map +1 -0
  309. package/dist/lib/tag/presentation/tag-prelude.presenter.js +31 -0
  310. package/dist/lib/tag/presentation/tag-sync.presenter.d.ts +20 -0
  311. package/dist/lib/tag/presentation/tag-sync.presenter.d.ts.map +1 -0
  312. package/dist/lib/tag/presentation/tag-sync.presenter.js +92 -0
  313. package/dist/program.d.ts +4 -0
  314. package/dist/program.d.ts.map +1 -0
  315. package/dist/program.js +40 -0
  316. package/package.json +8 -5
  317. package/dist/commands/arrange.mjs +0 -107
  318. package/dist/commands/mirror.mjs +0 -66
  319. package/dist/commands/tag.mjs +0 -58
  320. package/dist/lib/arrange/application/analyze.mjs +0 -92
  321. package/dist/lib/arrange/application/group-file.mjs +0 -113
  322. package/dist/lib/arrange/application/run-target.mjs +0 -65
  323. package/dist/lib/arrange/domain/ast/ast-helpers.mjs +0 -115
  324. package/dist/lib/arrange/domain/ast/collectors-cn.mjs +0 -61
  325. package/dist/lib/arrange/domain/ast/collectors-jsx.mjs +0 -20
  326. package/dist/lib/arrange/domain/ast/collectors-tv.mjs +0 -170
  327. package/dist/lib/arrange/domain/ast/targets.mjs +0 -106
  328. package/dist/lib/arrange/domain/constants.mjs +0 -169
  329. package/dist/lib/arrange/domain/errors.mjs +0 -19
  330. package/dist/lib/arrange/domain/grouping.mjs +0 -235
  331. package/dist/lib/arrange/domain/imports.mjs +0 -54
  332. package/dist/lib/arrange/domain/tokenizer.mjs +0 -216
  333. package/dist/lib/arrange/index.mjs +0 -15
  334. package/dist/lib/arrange/infra/walk.mjs +0 -33
  335. package/dist/lib/arrange/presentation/formatters.mjs +0 -52
  336. package/dist/lib/arrange/presentation/report.mjs +0 -24
  337. package/dist/lib/config/domain/schema.mjs +0 -25
  338. package/dist/lib/config/index.mjs +0 -3
  339. package/dist/lib/config/infra/loader.mjs +0 -78
  340. package/dist/lib/infra/caught-unknown-message.mjs +0 -20
  341. package/dist/lib/infra/config-reporter.mjs +0 -10
  342. package/dist/lib/infra/node-io.mjs +0 -30
  343. package/dist/lib/infra/workspace/repo-root.mjs +0 -22
  344. package/dist/lib/mirror/application/engine.mjs +0 -248
  345. package/dist/lib/mirror/application/sync.mjs +0 -162
  346. package/dist/lib/mirror/domain/constants.mjs +0 -12
  347. package/dist/lib/mirror/domain/errors.mjs +0 -15
  348. package/dist/lib/mirror/index.mjs +0 -2
  349. package/dist/lib/mirror/infra/dirent-list.mjs +0 -14
  350. package/dist/lib/mirror/infra/package-filter.mjs +0 -26
  351. package/dist/lib/mirror/infra/path-normalizer.mjs +0 -7
  352. package/dist/lib/mirror/infra/update-pkg.mjs +0 -105
  353. package/dist/lib/mirror/infra/workspace-packages.mjs +0 -159
  354. package/dist/lib/mirror/presentation/reporter.mjs +0 -111
  355. package/dist/lib/tag/application/engine.mjs +0 -287
  356. package/dist/lib/tag/index.mjs +0 -4
  357. package/dist/lib/tag/infra/target-resolver.mjs +0 -170
  358. package/dist/lib/tag/presentation/colors.mjs +0 -12
  359. package/dist/lib/tag/presentation/tag-presenter.mjs +0 -63
  360. package/dist/program.mjs +0 -34
  361. /package/dist/lib/arrange/{domain/types.mjs → application/ports/domain-source-parser.port.js} +0 -0
  362. /package/dist/lib/{infra/fs-contract.mjs → arrange/application/ports/file-walker.port.js} +0 -0
  363. /package/dist/lib/{mirror/domain/types.mjs → arrange/infra/arrange-sync-cli-options.adapter.js} +0 -0
  364. /package/dist/lib/{tag/domain/types.mjs → core/application/ports/cli-io.port.js} +0 -0
@@ -0,0 +1,168 @@
1
+ import path from "node:path";
2
+ import { appError } from "#lib/core/domain/errors.domain";
3
+ import { err, ok } from "#lib/core/domain/result.model";
4
+ import { messageFromCaughtUnknown } from "#lib/core/application/utils/caught-unknown-message.util";
5
+ import { DIST_DIR, PACKAGE_JSON } from "#lib/mirror/domain/constants.domain";
6
+ import { createPathTransform, generateExports, } from "#lib/mirror/application/use-cases/generate-mirror-exports.use-case";
7
+ function resolvePackageScopedConfig(configMap, pkgMeta) {
8
+ if (!configMap) {
9
+ return undefined;
10
+ }
11
+ return configMap[pkgMeta.packageName];
12
+ }
13
+ function isPackageSkipped(skipPackagesArray, pkgMeta) {
14
+ if (!skipPackagesArray) {
15
+ return false;
16
+ }
17
+ return skipPackagesArray.includes(pkgMeta.packageName);
18
+ }
19
+ async function syncExportsForWorkspacePackage(fs, packageRepository, fileSystemService, logger, mirrorReporter, rootDir, packagePathStr, index, total, config, verbose, stats) {
20
+ const packageDir = path.resolve(rootDir, packagePathStr);
21
+ const distDir = path.join(packageDir, DIST_DIR);
22
+ const packageJsonPath = path.join(packageDir, PACKAGE_JSON);
23
+ const folderBasename = path.basename(packageDir);
24
+ const pkgStats = {
25
+ name: folderBasename,
26
+ path: packageDir,
27
+ jsModules: 0,
28
+ cssExports: 0,
29
+ customExports: 0,
30
+ totalExports: 0,
31
+ hasTransform: false,
32
+ cssConfigStatus: "",
33
+ skipped: false,
34
+ skipReason: "",
35
+ error: null,
36
+ };
37
+ if (!fs.existsSync(packageJsonPath)) {
38
+ pkgStats.skipped = true;
39
+ pkgStats.skipReason = "package.json not found";
40
+ stats.packagesSkipped++;
41
+ mirrorReporter.logSkippedWorkspacePackage(logger, index, total, folderBasename, pkgStats.skipReason);
42
+ return pkgStats;
43
+ }
44
+ let packageJsonParseError;
45
+ try {
46
+ const pkgContent = await fs.readFile(packageJsonPath, "utf8");
47
+ const raw = JSON.parse(pkgContent);
48
+ const parsedPackageJson = packageRepository.parsePackageJsonShape(raw);
49
+ pkgStats.name = packageRepository.resolvePackageDisplayName(parsedPackageJson, folderBasename);
50
+ }
51
+ catch (caughtError) {
52
+ pkgStats.name = folderBasename;
53
+ packageJsonParseError = caughtError;
54
+ }
55
+ const pkgMeta = { packageName: pkgStats.name };
56
+ if (isPackageSkipped(config.skipPackages, pkgMeta)) {
57
+ pkgStats.skipped = true;
58
+ pkgStats.skipReason = "configured to skip";
59
+ stats.packagesSkipped++;
60
+ mirrorReporter.logSkippedWorkspacePackage(logger, index, total, pkgStats.name, pkgStats.skipReason);
61
+ return pkgStats;
62
+ }
63
+ if (packageJsonParseError !== undefined) {
64
+ if (!fs.existsSync(distDir)) {
65
+ pkgStats.skipped = true;
66
+ pkgStats.skipReason = "dist/ not found";
67
+ stats.packagesSkipped++;
68
+ mirrorReporter.logSkippedWorkspacePackage(logger, index, total, pkgStats.name, pkgStats.skipReason);
69
+ return pkgStats;
70
+ }
71
+ pkgStats.error = messageFromCaughtUnknown(packageJsonParseError);
72
+ stats.packagesErrored++;
73
+ mirrorReporter.logPackageError(logger, index, total, pkgStats.name, packageJsonParseError, verbose);
74
+ return pkgStats;
75
+ }
76
+ if (!fs.existsSync(distDir)) {
77
+ pkgStats.skipped = true;
78
+ pkgStats.skipReason = "dist/ not found";
79
+ stats.packagesSkipped++;
80
+ mirrorReporter.logSkippedWorkspacePackage(logger, index, total, pkgStats.name, pkgStats.skipReason);
81
+ return pkgStats;
82
+ }
83
+ try {
84
+ const pathTransform = createPathTransform(config, pkgMeta);
85
+ pkgStats.hasTransform = !!pathTransform;
86
+ const cssConfig = resolvePackageScopedConfig(config.cssExports, pkgMeta);
87
+ if (cssConfig === false) {
88
+ pkgStats.cssConfigStatus = "disabled";
89
+ }
90
+ else if (cssConfig !== undefined) {
91
+ pkgStats.cssConfigStatus = "configured";
92
+ }
93
+ const customExports = resolvePackageScopedConfig(config.customExports, pkgMeta) || {};
94
+ const generatedExports = await generateExports(fs, fileSystemService, distDir, pathTransform, cssConfig, customExports);
95
+ const { prunedKeys } = await packageRepository.writePackageJsonExportsAtomic(fs, packageJsonPath, {
96
+ generatedExports: generatedExports.exports,
97
+ managedExportSpecifiers: Object.keys(generatedExports.exports),
98
+ originalPathBySpecifier: generatedExports.originalPathBySpecifier,
99
+ });
100
+ for (const exportSpecifier of prunedKeys) {
101
+ mirrorReporter.logPrunedStaleExport(logger, exportSpecifier);
102
+ }
103
+ pkgStats.jsModules = generatedExports.jsCount;
104
+ pkgStats.cssExports = generatedExports.cssCount;
105
+ pkgStats.customExports = Object.keys(customExports).length;
106
+ pkgStats.totalExports = Object.keys(generatedExports.exports).length;
107
+ stats.packagesProcessed++;
108
+ stats.totalExports += pkgStats.totalExports;
109
+ stats.totalJsModules += pkgStats.jsModules;
110
+ stats.totalCssExports += pkgStats.cssExports;
111
+ mirrorReporter.logPackageSuccess(logger, index, total, pkgStats, generatedExports, verbose);
112
+ }
113
+ catch (caughtError) {
114
+ pkgStats.error = messageFromCaughtUnknown(caughtError);
115
+ stats.packagesErrored++;
116
+ mirrorReporter.logPackageError(logger, index, total, pkgStats.name, caughtError, verbose);
117
+ }
118
+ return pkgStats;
119
+ }
120
+ /** @returns Process exit code (0 or 1) on success, or a structured application error. */
121
+ export async function runMirrorSync(request, deps) {
122
+ const { fs, logger, workspaceService, packageRepository, fileSystemService, mirrorReporter } = deps;
123
+ const config = (request.config ?? {});
124
+ mirrorReporter.configureMirrorColors(!!request.noColor);
125
+ mirrorReporter.mirrorBanner(logger);
126
+ const startTime = performance.now();
127
+ const verbose = !!request.verbose;
128
+ try {
129
+ const stats = {
130
+ packagesFound: 0,
131
+ packagesProcessed: 0,
132
+ packagesSkipped: 0,
133
+ packagesErrored: 0,
134
+ totalExports: 0,
135
+ totalJsModules: 0,
136
+ totalCssExports: 0,
137
+ packageDetails: [],
138
+ };
139
+ let targetPackages = [];
140
+ if (request.packageFilter) {
141
+ const safe = workspaceService.resolvePackageFilterUnderRoot(request.rootDir, request.packageFilter);
142
+ targetPackages = [safe];
143
+ mirrorReporter.mirrorProcessingMode(logger, { kind: "single" });
144
+ }
145
+ else {
146
+ const { relPaths, multiSource } = await workspaceService.findWorkspacePackageRelPaths(request.rootDir, fs, logger);
147
+ targetPackages = relPaths;
148
+ mirrorReporter.mirrorProcessingMode(logger, { kind: "multi", source: multiSource });
149
+ }
150
+ stats.packagesFound = targetPackages.length;
151
+ if (targetPackages.length === 0) {
152
+ mirrorReporter.mirrorNoPackages(logger);
153
+ return ok(0);
154
+ }
155
+ let nextPackageOrdinal = 1;
156
+ for (const pkgPath of targetPackages) {
157
+ const pkgStats = await syncExportsForWorkspacePackage(fs, packageRepository, fileSystemService, logger, mirrorReporter, request.rootDir, pkgPath, nextPackageOrdinal++, targetPackages.length, config, verbose, stats);
158
+ stats.packageDetails.push(pkgStats);
159
+ }
160
+ const elapsed = (performance.now() - startTime) / 1000;
161
+ mirrorReporter.mirrorSummarySeparator(logger);
162
+ mirrorReporter.mirrorSummary(logger, stats, elapsed);
163
+ return ok(stats.packagesErrored > 0 ? 1 : 0);
164
+ }
165
+ catch (caughtError) {
166
+ return err(appError("INFRA_FAILURE", messageFromCaughtUnknown(caughtError), caughtError));
167
+ }
168
+ }
@@ -0,0 +1,6 @@
1
+ export declare const DIST_DIR = "dist";
2
+ export declare const PACKAGE_JSON = "package.json";
3
+ export declare const VALID_JS_EXTENSIONS: Set<string>;
4
+ export declare const DTS_EXTENSION = ".d.ts";
5
+ export declare const PACKAGE_JSON_EXPORT = "./package.json";
6
+ //# sourceMappingURL=constants.domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.domain.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/domain/constants.domain.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAE3C,eAAO,MAAM,mBAAmB,aAAmC,CAAC;AACpE,eAAO,MAAM,aAAa,UAAU,CAAC;AACrC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const DIST_DIR = "dist";
2
+ export const PACKAGE_JSON = "package.json";
3
+ export const VALID_JS_EXTENSIONS = new Set([".js", ".mjs", ".cjs"]);
4
+ export const DTS_EXTENSION = ".d.ts";
5
+ export const PACKAGE_JSON_EXPORT = "./package.json";
@@ -0,0 +1,10 @@
1
+ export declare const MirrorErrorCode: {
2
+ readonly FATAL: "FATAL";
3
+ readonly PACKAGE_WRITE: "PACKAGE_WRITE";
4
+ };
5
+ export type MirrorErrorCode = (typeof MirrorErrorCode)[keyof typeof MirrorErrorCode];
6
+ export declare class MirrorError extends Error {
7
+ readonly code: MirrorErrorCode;
8
+ constructor(code: MirrorErrorCode, message: string, options?: ErrorOptions);
9
+ }
10
+ //# sourceMappingURL=errors.domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.domain.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/domain/errors.domain.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;aAC1B,KAAK,EAAE,OAAO;aACd,aAAa,EAAE,eAAe;CACtB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B,YAAY,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAIzE;CACF"}
@@ -0,0 +1,12 @@
1
+ export const MirrorErrorCode = {
2
+ FATAL: "FATAL",
3
+ PACKAGE_WRITE: "PACKAGE_WRITE",
4
+ };
5
+ export class MirrorError extends Error {
6
+ code;
7
+ constructor(code, message, options) {
8
+ super(message, options);
9
+ this.name = "MirrorError";
10
+ this.code = code;
11
+ }
12
+ }
@@ -0,0 +1,65 @@
1
+ export interface ExportEntry {
2
+ types: string;
3
+ import?: string;
4
+ require?: string;
5
+ }
6
+ /** Final `package.json#exports` map (conditional exports + string shims + `./package.json`). */
7
+ export type ExportMapData = Record<string, ExportEntry | string>;
8
+ export type ExportOriginalPathBySpecifier = Record<string, string>;
9
+ /** Alias for the exports object shape produced by the mirror engine. */
10
+ export type ExportMap = ExportMapData;
11
+ export interface ModuleFiles {
12
+ js: string | null;
13
+ mjs: string | null;
14
+ cjs: string | null;
15
+ dts: string | null;
16
+ }
17
+ export interface Module {
18
+ path: string;
19
+ files: ModuleFiles;
20
+ }
21
+ export interface MirrorPackageMeta {
22
+ packageName: string;
23
+ }
24
+ /** Parsed `package.json` — only fields mirror reads/writes are typed strictly. */
25
+ export type PackageJsonShape = {
26
+ name?: unknown;
27
+ exports?: unknown;
28
+ [key: string]: unknown;
29
+ };
30
+ export interface GenerateExportsResult {
31
+ exports: ExportMapData;
32
+ originalPathBySpecifier: ExportOriginalPathBySpecifier;
33
+ jsCount: number;
34
+ cssCount: number;
35
+ }
36
+ export interface PackageStats {
37
+ name: string;
38
+ path: string;
39
+ jsModules: number;
40
+ cssExports: number;
41
+ customExports: number;
42
+ totalExports: number;
43
+ hasTransform: boolean;
44
+ cssConfigStatus: "disabled" | "configured" | "";
45
+ skipped: boolean;
46
+ skipReason: string;
47
+ error: string | null;
48
+ }
49
+ export interface GlobalStats {
50
+ packagesFound: number;
51
+ packagesProcessed: number;
52
+ packagesSkipped: number;
53
+ packagesErrored: number;
54
+ totalExports: number;
55
+ totalJsModules: number;
56
+ totalCssExports: number;
57
+ packageDetails: PackageStats[];
58
+ }
59
+ /** How workspace packages were resolved when scanning the repo (for logging / UX). */
60
+ export type WorkspaceMultiDiscoverySource = "default-patterns" | "pnpm-workspace-yaml" | "declared-empty";
61
+ export type FindWorkspacePackagesResult = {
62
+ relPaths: string[];
63
+ multiSource: WorkspaceMultiDiscoverySource;
64
+ };
65
+ //# sourceMappingURL=types.domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.domain.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/domain/types.domain.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gGAAgG;AAChG,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnE,wEAAwE;AACxE,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,uBAAuB,EAAE,6BAA6B,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,UAAU,GAAG,YAAY,GAAG,EAAE,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,sFAAsF;AACtF,MAAM,MAAM,6BAA6B,GACrC,kBAAkB,GAClB,qBAAqB,GACrB,gBAAgB,CAAC;AAErB,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,6BAA6B,CAAC;CAC5C,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export { runMirrorSync } from "#lib/mirror/application/use-cases/run-mirror-sync.use-case";
2
+ export type { MirrorSyncRunDeps } from "#lib/mirror/application/use-cases/run-mirror-sync.use-case";
3
+ export type { MirrorSyncRunRequest } from "#lib/mirror/application/requests/mirror-sync.request";
4
+ export type { FindWorkspacePackagesResult, GenerateExportsResult, GlobalStats, MirrorPackageMeta, PackageStats, WorkspaceMultiDiscoverySource, } from "#lib/mirror/domain/types.domain";
5
+ export type { MirrorOptions } from "#lib/mirror/infra/mirror-sync-cli-options.adapter";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/mirror/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAC3F,YAAY,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AACpG,YAAY,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AACjG,YAAY,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC"}
@@ -0,0 +1 @@
1
+ export { runMirrorSync } from "#lib/mirror/application/use-cases/run-mirror-sync.use-case";
@@ -0,0 +1,9 @@
1
+ import type { Dirent } from "node:fs";
2
+ /**
3
+ * Narrow `fs.promises.readdir` overload result to `Dirent[]` when `withFileTypes: true`.
4
+ * Accepts both historical checks (`isFile` / `isDirectory`) in one guard.
5
+ * Returning `true` for an empty array is intentional: callers treat empty lists
6
+ * the same regardless of the element type, so `[]` is safely accepted as `Dirent[]`.
7
+ */
8
+ export declare function isDirentList(x: string[] | Dirent[]): x is Dirent[];
9
+ //# sourceMappingURL=dirent-list.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirent-list.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/infra/dirent-list.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAMlE"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Narrow `fs.promises.readdir` overload result to `Dirent[]` when `withFileTypes: true`.
3
+ * Accepts both historical checks (`isFile` / `isDirectory`) in one guard.
4
+ * Returning `true` for an empty array is intentional: callers treat empty lists
5
+ * the same regardless of the element type, so `[]` is safely accepted as `Dirent[]`.
6
+ */
7
+ export function isDirentList(x) {
8
+ if (x.length === 0) {
9
+ return true;
10
+ }
11
+ const first = x[0];
12
+ return typeof first === "object" && first !== null && "isFile" in first && "isDirectory" in first;
13
+ }
@@ -0,0 +1,7 @@
1
+ import type { CliFs } from "#lib/infra/fs-contract.port";
2
+ import type { FileSystemServicePort } from "#lib/mirror/application/ports/file-system-service.port";
3
+ export declare class FileSystemServiceAdapter implements FileSystemServicePort {
4
+ listRelativeFilesRecursively(fs: CliFs, dirPath: string): Promise<string[]>;
5
+ isDirectoryCssOnly(fs: CliFs, distDir: string, dirPath: string): Promise<boolean>;
6
+ }
7
+ //# sourceMappingURL=file-system-service.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system-service.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/infra/file-system-service.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAapG,qBAAa,wBAAyB,YAAW,qBAAqB;IAC9D,4BAA4B,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBhF;IAEK,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAatF;CACF"}
@@ -0,0 +1,47 @@
1
+ import path from "node:path";
2
+ import { isDirentList } from "#lib/mirror/infra/dirent-list.adapter";
3
+ import { normalizePath } from "#lib/mirror/infra/path-normalizer.adapter";
4
+ function isKnownReadDirError(caughtError) {
5
+ return (typeof caughtError === "object" &&
6
+ caughtError !== null &&
7
+ "code" in caughtError &&
8
+ (caughtError.code === "ENOENT" || caughtError.code === "EACCES"));
9
+ }
10
+ export class FileSystemServiceAdapter {
11
+ async listRelativeFilesRecursively(fs, dirPath) {
12
+ try {
13
+ const raw = await fs.readdir(dirPath, { recursive: true, withFileTypes: true });
14
+ if (!isDirentList(raw)) {
15
+ return [];
16
+ }
17
+ return raw
18
+ .filter((dirent) => dirent.isFile())
19
+ .map((dirent) => {
20
+ const fullPath = path.join(dirent.parentPath, dirent.name);
21
+ const relPath = path.relative(dirPath, fullPath);
22
+ return normalizePath(relPath);
23
+ });
24
+ }
25
+ catch (caughtError) {
26
+ if (isKnownReadDirError(caughtError)) {
27
+ return [];
28
+ }
29
+ throw caughtError;
30
+ }
31
+ }
32
+ async isDirectoryCssOnly(fs, distDir, dirPath) {
33
+ try {
34
+ const raw = await fs.readdir(path.join(distDir, dirPath), { withFileTypes: true });
35
+ if (!isDirentList(raw)) {
36
+ return false;
37
+ }
38
+ if (raw.length === 0) {
39
+ return true;
40
+ }
41
+ return raw.every((dirent) => dirent.isFile() && dirent.name.endsWith(".css"));
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,14 @@
1
+ import type { MirrorConfig } from "#lib/config/domain/schema.domain";
2
+ import type { CliFs, CliLogger } from "#lib/infra/fs-contract.port";
3
+ /** CLI / container wiring: filesystem and logger injected at the boundary. */
4
+ export interface MirrorOptions {
5
+ rootDir: string;
6
+ config?: MirrorConfig;
7
+ verbose?: boolean;
8
+ noColor?: boolean;
9
+ /** Path under `rootDir` (relative or absolute within the repo), e.g. `packages/ui`. */
10
+ packageFilter?: string;
11
+ fs: CliFs;
12
+ logger: CliLogger;
13
+ }
14
+ //# sourceMappingURL=mirror-sync-cli-options.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror-sync-cli-options.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/infra/mirror-sync-cli-options.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAEpE,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,SAAS,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ import type { MirrorSyncReporterPort } from "#lib/mirror/application/ports/mirror-sync-reporter.port";
2
+ export declare const mirrorSyncReporterAdapter: MirrorSyncReporterPort;
3
+ //# sourceMappingURL=mirror-sync-reporter.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror-sync-reporter.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/infra/mirror-sync-reporter.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AAGtG,eAAO,MAAM,yBAAyB,EAAE,sBAWvC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import * as mirrorReporter from "#lib/mirror/presentation/reporter.presenter";
2
+ export const mirrorSyncReporterAdapter = {
3
+ configureMirrorColors: mirrorReporter.configureMirrorColors,
4
+ mirrorBanner: mirrorReporter.mirrorBanner,
5
+ mirrorProcessingMode: mirrorReporter.mirrorProcessingMode,
6
+ mirrorNoPackages: mirrorReporter.mirrorNoPackages,
7
+ logSkippedWorkspacePackage: mirrorReporter.logSkippedWorkspacePackage,
8
+ logPackageSuccess: mirrorReporter.logPackageSuccess,
9
+ logPrunedStaleExport: mirrorReporter.logPrunedStaleExport,
10
+ logPackageError: mirrorReporter.logPackageError,
11
+ mirrorSummarySeparator: mirrorReporter.mirrorSummarySeparator,
12
+ mirrorSummary: mirrorReporter.mirrorSummary,
13
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Resolve `packageFilter` to a POSIX-ish path relative to `rootDir`, without using
3
+ * `process.cwd()`. Use for programmatic `runMirrorSync` calls.
4
+ *
5
+ * @throws If the resolved path is not a strict subdirectory of `rootDir`.
6
+ */
7
+ export declare function resolvePackageFilterUnderRoot(rootDir: string, packageFilter: string): string;
8
+ //# sourceMappingURL=package-filter.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-filter.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/infra/package-filter.adapter.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAiB5F"}
@@ -0,0 +1,33 @@
1
+ import { realpathSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { normalizePath } from "#lib/mirror/infra/path-normalizer.adapter";
4
+ function tryRealpath(entryPath) {
5
+ try {
6
+ return realpathSync.native(entryPath);
7
+ }
8
+ catch {
9
+ return path.resolve(entryPath);
10
+ }
11
+ }
12
+ /**
13
+ * Resolve `packageFilter` to a POSIX-ish path relative to `rootDir`, without using
14
+ * `process.cwd()`. Use for programmatic `runMirrorSync` calls.
15
+ *
16
+ * @throws If the resolved path is not a strict subdirectory of `rootDir`.
17
+ */
18
+ export function resolvePackageFilterUnderRoot(rootDir, packageFilter) {
19
+ const rootResolved = path.resolve(rootDir);
20
+ const rootReal = tryRealpath(rootResolved);
21
+ const resolved = path.isAbsolute(packageFilter)
22
+ ? tryRealpath(path.resolve(packageFilter))
23
+ : tryRealpath(path.join(rootReal, packageFilter));
24
+ const rel = path.relative(rootReal, resolved);
25
+ const normalized = normalizePath(rel);
26
+ if (normalized.startsWith("..") ||
27
+ path.isAbsolute(normalized) ||
28
+ normalized === "" ||
29
+ normalized === ".") {
30
+ throw new Error(`Package path must be a subdirectory under monorepo root: ${rootDir}`);
31
+ }
32
+ return normalized;
33
+ }
@@ -0,0 +1,17 @@
1
+ import type { CliFs } from "#lib/infra/fs-contract.port";
2
+ import type { PackageRepositoryPort } from "#lib/mirror/application/ports/package-repository.port";
3
+ import type { ExportMapData, ExportOriginalPathBySpecifier, PackageJsonShape } from "#lib/mirror/domain/types.domain";
4
+ export declare class PackageRepositoryAdapter implements PackageRepositoryPort {
5
+ resolvePackageDisplayName(packageJson: {
6
+ name?: unknown;
7
+ }, folderBasename: string): string;
8
+ writePackageJsonExportsAtomic(fs: CliFs, packageJsonPath: string, mergeInput: {
9
+ generatedExports: ExportMapData;
10
+ managedExportSpecifiers: string[];
11
+ originalPathBySpecifier: ExportOriginalPathBySpecifier;
12
+ }): Promise<{
13
+ prunedKeys: string[];
14
+ }>;
15
+ parsePackageJsonShape(rawPackageJson: unknown): PackageJsonShape;
16
+ }
17
+ //# sourceMappingURL=package-repository.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-repository.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/infra/package-repository.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,KAAK,EACV,aAAa,EACb,6BAA6B,EAC7B,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAMzC,qBAAa,wBAAyB,YAAW,qBAAqB;IACpE,yBAAyB,CAAC,WAAW,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAEzF;IAED,6BAA6B,CAC3B,EAAE,EAAE,KAAK,EACT,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE;QACV,gBAAgB,EAAE,aAAa,CAAC;QAChC,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,6BAA6B,CAAC;KACxD,GACA,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAEnC;IAED,qBAAqB,CAAC,cAAc,EAAE,OAAO,GAAG,gBAAgB,CAS/D;CACF"}
@@ -0,0 +1,17 @@
1
+ import { resolvePackageDisplayName, writePackageJsonExportsAtomic, } from "#lib/mirror/infra/update-pkg.adapter";
2
+ export class PackageRepositoryAdapter {
3
+ resolvePackageDisplayName(packageJson, folderBasename) {
4
+ return resolvePackageDisplayName(packageJson, folderBasename);
5
+ }
6
+ writePackageJsonExportsAtomic(fs, packageJsonPath, mergeInput) {
7
+ return writePackageJsonExportsAtomic(fs, packageJsonPath, mergeInput);
8
+ }
9
+ parsePackageJsonShape(rawPackageJson) {
10
+ if (rawPackageJson === null ||
11
+ typeof rawPackageJson !== "object" ||
12
+ Array.isArray(rawPackageJson)) {
13
+ throw new SyntaxError("package.json root must be a JSON object");
14
+ }
15
+ return rawPackageJson;
16
+ }
17
+ }
@@ -0,0 +1,2 @@
1
+ export declare function normalizePath(pathString: string): string;
2
+ //# sourceMappingURL=path-normalizer.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-normalizer.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/infra/path-normalizer.adapter.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -0,0 +1,4 @@
1
+ import path from "node:path";
2
+ export function normalizePath(pathString) {
3
+ return pathString.split(path.sep).join("/").replace(/\\/g, "/");
4
+ }
@@ -0,0 +1,19 @@
1
+ import type { CliFs } from "#lib/infra/fs-contract.port";
2
+ import type { ExportMapData, ExportOriginalPathBySpecifier } from "#lib/mirror/domain/types.domain";
3
+ /** Shared rule: show `package.json#name` when it is a non-empty string; else folder basename. */
4
+ export declare function resolvePackageDisplayName(packageJson: {
5
+ name?: unknown;
6
+ }, folderBasename: string): string;
7
+ export declare function readPackageJsonDisplayName(fs: CliFs, packageJsonPath: string, folderBasename: string): Promise<string>;
8
+ /**
9
+ * Writes `exports` into `package.json` via a temp file + rename (atomic on same volume).
10
+ * Preserves a trailing newline after JSON.
11
+ */
12
+ export declare function writePackageJsonExportsAtomic(fs: CliFs, packageJsonPath: string, mergeInput: {
13
+ generatedExports: ExportMapData;
14
+ managedExportSpecifiers: string[];
15
+ originalPathBySpecifier: ExportOriginalPathBySpecifier;
16
+ }): Promise<{
17
+ prunedKeys: string[];
18
+ }>;
19
+ //# sourceMappingURL=update-pkg.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-pkg.adapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/mirror/infra/update-pkg.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAGzD,OAAO,KAAK,EACV,aAAa,EACb,6BAA6B,EAE9B,MAAM,iCAAiC,CAAC;AAqDzC,iGAAiG;AACjG,wBAAgB,yBAAyB,CACvC,WAAW,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EAC/B,cAAc,EAAE,MAAM,GACrB,MAAM,CAKR;AAED,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,KAAK,EACT,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,EAAE,EAAE,KAAK,EACT,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE;IACV,gBAAgB,EAAE,aAAa,CAAC;IAChC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,uBAAuB,EAAE,6BAA6B,CAAC;CACxD,GACA,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA8GnC"}