@codefast/cli 0.5.0-canary.5 → 1.0.0-canary.7

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 (274) hide show
  1. package/README.md +106 -480
  2. package/dist/arrange/analyze.js +25 -0
  3. package/dist/arrange/analyze.js.map +1 -0
  4. package/dist/arrange/cli-schema.js +29 -0
  5. package/dist/arrange/cli-schema.js.map +1 -0
  6. package/dist/arrange/command.js +170 -0
  7. package/dist/arrange/command.js.map +1 -0
  8. package/dist/arrange/domain/analyze-service.js +122 -0
  9. package/dist/arrange/domain/analyze-service.js.map +1 -0
  10. package/dist/arrange/domain/ast/ast-node.js +240 -0
  11. package/dist/arrange/domain/ast/ast-node.js.map +1 -0
  12. package/dist/arrange/domain/ast/collectors-cn.js +81 -0
  13. package/dist/arrange/domain/ast/collectors-cn.js.map +1 -0
  14. package/dist/arrange/domain/ast/collectors-jsx.js +24 -0
  15. package/dist/arrange/domain/ast/collectors-jsx.js.map +1 -0
  16. package/dist/arrange/domain/ast/collectors-tv.js +319 -0
  17. package/dist/arrange/domain/ast/collectors-tv.js.map +1 -0
  18. package/dist/arrange/domain/ast/helpers.js +151 -0
  19. package/dist/arrange/domain/ast/helpers.js.map +1 -0
  20. package/dist/arrange/domain/ast/simplify-targets.js +161 -0
  21. package/dist/arrange/domain/ast/simplify-targets.js.map +1 -0
  22. package/dist/arrange/domain/ast/targets.js +182 -0
  23. package/dist/arrange/domain/ast/targets.js.map +1 -0
  24. package/dist/arrange/domain/constants.js +225 -0
  25. package/dist/arrange/domain/constants.js.map +1 -0
  26. package/dist/arrange/domain/grouping-service.js +128 -0
  27. package/dist/arrange/domain/grouping-service.js.map +1 -0
  28. package/dist/arrange/domain/grouping.js +435 -0
  29. package/dist/arrange/domain/grouping.js.map +1 -0
  30. package/dist/arrange/domain/imports.js +160 -0
  31. package/dist/arrange/domain/imports.js.map +1 -0
  32. package/dist/arrange/domain/source-text-formatters.js +100 -0
  33. package/dist/arrange/domain/source-text-formatters.js.map +1 -0
  34. package/dist/arrange/domain/tailwind-token.js +50 -0
  35. package/dist/arrange/domain/tailwind-token.js.map +1 -0
  36. package/dist/arrange/domain/token-classifier.js +448 -0
  37. package/dist/arrange/domain/token-classifier.js.map +1 -0
  38. package/dist/arrange/domain/types.js +11 -0
  39. package/dist/arrange/domain/types.js.map +1 -0
  40. package/dist/arrange/output.js +120 -0
  41. package/dist/arrange/output.js.map +1 -0
  42. package/dist/arrange/process-file.js +44 -0
  43. package/dist/arrange/process-file.js.map +1 -0
  44. package/dist/arrange/resolve-target.js +33 -0
  45. package/dist/arrange/resolve-target.js.map +1 -0
  46. package/dist/arrange/scan-target.js +30 -0
  47. package/dist/arrange/scan-target.js.map +1 -0
  48. package/dist/arrange/simplify-process-file.js +29 -0
  49. package/dist/arrange/simplify-process-file.js.map +1 -0
  50. package/dist/arrange/simplify-sync.js +29 -0
  51. package/dist/arrange/simplify-sync.js.map +1 -0
  52. package/dist/arrange/source-parse.js +17 -0
  53. package/dist/arrange/source-parse.js.map +1 -0
  54. package/dist/arrange/suggest.js +14 -0
  55. package/dist/arrange/suggest.js.map +1 -0
  56. package/dist/arrange/sync.js +48 -0
  57. package/dist/arrange/sync.js.map +1 -0
  58. package/dist/arrange/typescript-ast-translator.js +455 -0
  59. package/dist/arrange/typescript-ast-translator.js.map +1 -0
  60. package/dist/arrange/workspace.js +31 -0
  61. package/dist/arrange/workspace.js.map +1 -0
  62. package/dist/audit/cli-schema.js +22 -0
  63. package/dist/audit/cli-schema.js.map +1 -0
  64. package/dist/audit/command.js +60 -0
  65. package/dist/audit/command.js.map +1 -0
  66. package/dist/audit/domain/audit-file.js +101 -0
  67. package/dist/audit/domain/audit-file.js.map +1 -0
  68. package/dist/audit/domain/mappings.js +103 -0
  69. package/dist/audit/domain/mappings.js.map +1 -0
  70. package/dist/audit/domain/tokenize.js +83 -0
  71. package/dist/audit/domain/tokenize.js.map +1 -0
  72. package/dist/audit/domain/types.js +2 -0
  73. package/dist/audit/domain/types.js.map +1 -0
  74. package/dist/audit/output.js +44 -0
  75. package/dist/audit/output.js.map +1 -0
  76. package/dist/audit/prepare.js +42 -0
  77. package/dist/audit/prepare.js.map +1 -0
  78. package/dist/audit/run.js +57 -0
  79. package/dist/audit/run.js.map +1 -0
  80. package/dist/{bin.mjs → bin.js} +2 -4
  81. package/dist/bin.js.map +1 -0
  82. package/dist/cli.js +45 -0
  83. package/dist/cli.js.map +1 -0
  84. package/dist/core/cli/format-error.js +19 -0
  85. package/dist/core/cli/format-error.js.map +1 -0
  86. package/dist/core/cli/global-options.js +10 -0
  87. package/dist/core/cli/global-options.js.map +1 -0
  88. package/dist/core/cli/positional.js +9 -0
  89. package/dist/core/cli/positional.js.map +1 -0
  90. package/dist/core/cli/result-handle.js +69 -0
  91. package/dist/core/cli/result-handle.js.map +1 -0
  92. package/dist/core/config/loader.js +88 -0
  93. package/dist/core/config/loader.js.map +1 -0
  94. package/dist/core/config/schema.js +97 -0
  95. package/dist/core/config/schema.js.map +1 -0
  96. package/dist/core/config/warnings.js +12 -0
  97. package/dist/core/config/warnings.js.map +1 -0
  98. package/dist/core/config.js +18 -0
  99. package/dist/core/config.js.map +1 -0
  100. package/dist/core/errors.js +58 -0
  101. package/dist/core/errors.js.map +1 -0
  102. package/dist/core/exit-codes.js +15 -0
  103. package/dist/core/exit-codes.js.map +1 -0
  104. package/dist/core/filesystem/node.js +33 -0
  105. package/dist/core/filesystem/node.js.map +1 -0
  106. package/dist/core/filesystem/port.js +2 -0
  107. package/dist/core/filesystem/port.js.map +1 -0
  108. package/dist/core/glob.js +20 -0
  109. package/dist/core/glob.js.map +1 -0
  110. package/dist/core/logger.js +13 -0
  111. package/dist/core/logger.js.map +1 -0
  112. package/dist/core/result.js +16 -0
  113. package/dist/core/result.js.map +1 -0
  114. package/dist/core/schema-parse.js +21 -0
  115. package/dist/core/schema-parse.js.map +1 -0
  116. package/dist/core/source-text-edit.js +62 -0
  117. package/dist/core/source-text-edit.js.map +1 -0
  118. package/dist/core/verbose-diagnostics.js +9 -0
  119. package/dist/core/verbose-diagnostics.js.map +1 -0
  120. package/dist/core/workspace/resolver.js +208 -0
  121. package/dist/core/workspace/resolver.js.map +1 -0
  122. package/dist/core/workspace/typescript-walk.js +41 -0
  123. package/dist/core/workspace/typescript-walk.js.map +1 -0
  124. package/dist/mirror/cli-result.js +20 -0
  125. package/dist/mirror/cli-result.js.map +1 -0
  126. package/dist/mirror/cli-schema.js +11 -0
  127. package/dist/mirror/cli-schema.js.map +1 -0
  128. package/dist/mirror/command.js +73 -0
  129. package/dist/mirror/command.js.map +1 -0
  130. package/dist/mirror/dist-filesystem-impl.js +53 -0
  131. package/dist/mirror/dist-filesystem-impl.js.map +1 -0
  132. package/dist/mirror/domain/constants.js +21 -0
  133. package/dist/mirror/domain/constants.js.map +1 -0
  134. package/dist/mirror/domain/dirent-guard.js +16 -0
  135. package/dist/mirror/domain/dirent-guard.js.map +1 -0
  136. package/dist/mirror/domain/dist-filesystem.js +2 -0
  137. package/dist/mirror/domain/dist-filesystem.js.map +1 -0
  138. package/dist/mirror/domain/errors.js +19 -0
  139. package/dist/mirror/domain/errors.js.map +1 -0
  140. package/dist/mirror/domain/exports.js +284 -0
  141. package/dist/mirror/domain/exports.js.map +1 -0
  142. package/dist/mirror/domain/package-display-name.js +10 -0
  143. package/dist/mirror/domain/package-display-name.js.map +1 -0
  144. package/dist/mirror/domain/path-normalizer.js +8 -0
  145. package/dist/mirror/domain/path-normalizer.js.map +1 -0
  146. package/dist/mirror/domain/types.js +2 -0
  147. package/dist/mirror/domain/types.js.map +1 -0
  148. package/dist/mirror/output.js +47 -0
  149. package/dist/mirror/output.js.map +1 -0
  150. package/dist/mirror/package-path.js +40 -0
  151. package/dist/mirror/package-path.js.map +1 -0
  152. package/dist/mirror/prepare.js +37 -0
  153. package/dist/mirror/prepare.js.map +1 -0
  154. package/dist/mirror/supplement-exports.js +157 -0
  155. package/dist/mirror/supplement-exports.js.map +1 -0
  156. package/dist/mirror/sync-reporter.js +125 -0
  157. package/dist/mirror/sync-reporter.js.map +1 -0
  158. package/dist/mirror/sync-types.js +2 -0
  159. package/dist/mirror/sync-types.js.map +1 -0
  160. package/dist/mirror/sync-workspace-package.js +117 -0
  161. package/dist/mirror/sync-workspace-package.js.map +1 -0
  162. package/dist/mirror/sync.js +90 -0
  163. package/dist/mirror/sync.js.map +1 -0
  164. package/dist/mirror/write-exports.js +145 -0
  165. package/dist/mirror/write-exports.js.map +1 -0
  166. package/dist/tag/cli-result.js +12 -0
  167. package/dist/tag/cli-result.js.map +1 -0
  168. package/dist/tag/cli-schema.js +13 -0
  169. package/dist/tag/cli-schema.js.map +1 -0
  170. package/dist/tag/command.js +69 -0
  171. package/dist/tag/command.js.map +1 -0
  172. package/dist/tag/domain/types.js +2 -0
  173. package/dist/tag/domain/types.js.map +1 -0
  174. package/dist/tag/output.js +101 -0
  175. package/dist/tag/output.js.map +1 -0
  176. package/dist/tag/prepare.js +30 -0
  177. package/dist/tag/prepare.js.map +1 -0
  178. package/dist/tag/resolve-target-path.js +14 -0
  179. package/dist/tag/resolve-target-path.js.map +1 -0
  180. package/dist/tag/since-writer.js +231 -0
  181. package/dist/tag/since-writer.js.map +1 -0
  182. package/dist/tag/sync.js +166 -0
  183. package/dist/tag/sync.js.map +1 -0
  184. package/dist/tag/target-candidates.js +79 -0
  185. package/dist/tag/target-candidates.js.map +1 -0
  186. package/dist/tag/target-runner.js +25 -0
  187. package/dist/tag/target-runner.js.map +1 -0
  188. package/dist/tag/version-resolver.js +28 -0
  189. package/dist/tag/version-resolver.js.map +1 -0
  190. package/package.json +27 -21
  191. package/dist/arrange/analyze.mjs +0 -24
  192. package/dist/arrange/cli-schema.mjs +0 -27
  193. package/dist/arrange/command.mjs +0 -130
  194. package/dist/arrange/domain/analyze-service.mjs +0 -102
  195. package/dist/arrange/domain/ast/ast-node.mjs +0 -215
  196. package/dist/arrange/domain/ast/collectors-cn.mjs +0 -64
  197. package/dist/arrange/domain/ast/collectors-jsx.mjs +0 -23
  198. package/dist/arrange/domain/ast/collectors-tv.mjs +0 -189
  199. package/dist/arrange/domain/ast/helpers.mjs +0 -108
  200. package/dist/arrange/domain/ast/simplify-targets.mjs +0 -109
  201. package/dist/arrange/domain/ast/targets.mjs +0 -134
  202. package/dist/arrange/domain/constants.mjs +0 -213
  203. package/dist/arrange/domain/grouping-service.mjs +0 -121
  204. package/dist/arrange/domain/grouping.mjs +0 -338
  205. package/dist/arrange/domain/imports.mjs +0 -107
  206. package/dist/arrange/domain/source-text-formatters.mjs +0 -88
  207. package/dist/arrange/domain/tailwind-token.mjs +0 -40
  208. package/dist/arrange/domain/token-classifier.mjs +0 -218
  209. package/dist/arrange/domain/types.mjs +0 -1
  210. package/dist/arrange/output.mjs +0 -87
  211. package/dist/arrange/process-file.mjs +0 -42
  212. package/dist/arrange/resolve-target.mjs +0 -24
  213. package/dist/arrange/scan-target.mjs +0 -29
  214. package/dist/arrange/simplify-process-file.mjs +0 -35
  215. package/dist/arrange/simplify-sync.mjs +0 -32
  216. package/dist/arrange/source-parse.mjs +0 -18
  217. package/dist/arrange/suggest.mjs +0 -15
  218. package/dist/arrange/sync.mjs +0 -51
  219. package/dist/arrange/typescript-ast-translator.mjs +0 -354
  220. package/dist/arrange/workspace.mjs +0 -31
  221. package/dist/cli.mjs +0 -34
  222. package/dist/core/cli/format-error.mjs +0 -15
  223. package/dist/core/cli/global-options.mjs +0 -10
  224. package/dist/core/cli/positional.mjs +0 -11
  225. package/dist/core/cli/result-handle.mjs +0 -51
  226. package/dist/core/config/loader.mjs +0 -79
  227. package/dist/core/config/schema.mjs +0 -60
  228. package/dist/core/config/warnings.mjs +0 -12
  229. package/dist/core/config.mjs +0 -19
  230. package/dist/core/errors.mjs +0 -35
  231. package/dist/core/exit-codes.mjs +0 -17
  232. package/dist/core/filesystem/node.mjs +0 -32
  233. package/dist/core/filesystem/port.mjs +0 -1
  234. package/dist/core/glob.mjs +0 -20
  235. package/dist/core/logger.mjs +0 -15
  236. package/dist/core/result.mjs +0 -21
  237. package/dist/core/schema-parse.mjs +0 -18
  238. package/dist/core/source-text-edit.mjs +0 -56
  239. package/dist/core/verbose-diagnostics.mjs +0 -11
  240. package/dist/core/workspace/resolver.mjs +0 -177
  241. package/dist/core/workspace/typescript-walk.mjs +0 -36
  242. package/dist/mirror/cli-result.mjs +0 -22
  243. package/dist/mirror/cli-schema.mjs +0 -13
  244. package/dist/mirror/command.mjs +0 -58
  245. package/dist/mirror/dist-filesystem-impl.mjs +0 -42
  246. package/dist/mirror/domain/constants.mjs +0 -31
  247. package/dist/mirror/domain/dirent-guard.mjs +0 -16
  248. package/dist/mirror/domain/dist-filesystem.mjs +0 -1
  249. package/dist/mirror/domain/errors.mjs +0 -21
  250. package/dist/mirror/domain/exports.mjs +0 -226
  251. package/dist/mirror/domain/package-display-name.mjs +0 -12
  252. package/dist/mirror/domain/path-normalizer.mjs +0 -10
  253. package/dist/mirror/domain/types.mjs +0 -1
  254. package/dist/mirror/output.mjs +0 -48
  255. package/dist/mirror/package-path.mjs +0 -32
  256. package/dist/mirror/prepare.mjs +0 -33
  257. package/dist/mirror/supplement-exports.mjs +0 -114
  258. package/dist/mirror/sync-reporter.mjs +0 -107
  259. package/dist/mirror/sync-types.mjs +0 -1
  260. package/dist/mirror/sync-workspace-package.mjs +0 -109
  261. package/dist/mirror/sync.mjs +0 -88
  262. package/dist/mirror/write-exports.mjs +0 -94
  263. package/dist/tag/cli-result.mjs +0 -11
  264. package/dist/tag/cli-schema.mjs +0 -15
  265. package/dist/tag/command.mjs +0 -56
  266. package/dist/tag/domain/types.mjs +0 -1
  267. package/dist/tag/output.mjs +0 -87
  268. package/dist/tag/prepare.mjs +0 -29
  269. package/dist/tag/resolve-target-path.mjs +0 -12
  270. package/dist/tag/since-writer.mjs +0 -131
  271. package/dist/tag/sync.mjs +0 -149
  272. package/dist/tag/target-candidates.mjs +0 -68
  273. package/dist/tag/target-runner.mjs +0 -26
  274. package/dist/tag/version-resolver.mjs +0 -25
@@ -0,0 +1,125 @@
1
+ import process from "node:process";
2
+ import { messageFrom } from "#/core/errors";
3
+ const ANSI = {
4
+ reset: "\x1b[0m",
5
+ bold: "\x1b[1m",
6
+ dim: "\x1b[2m",
7
+ green: "\x1b[32m",
8
+ yellow: "\x1b[33m",
9
+ cyan: "\x1b[36m",
10
+ gray: "\x1b[90m",
11
+ magenta: "\x1b[35m",
12
+ brightGreen: "\x1b[92m",
13
+ brightCyan: "\x1b[96m",
14
+ };
15
+ /**
16
+ * Console implementation: ANSI styling and layout for the mirror command.
17
+ *
18
+ * @since 0.3.16-canary.0
19
+ */
20
+ export class MirrorSyncReporter {
21
+ colorsAreEnabled = true;
22
+ configureMirrorColors(noColor) {
23
+ this.colorsAreEnabled = !!process.stdout.isTTY && !noColor;
24
+ }
25
+ mirrorBanner(logger) {
26
+ logger.out(`\n${this.paint("📦 Mirror — package exports", ANSI.bold + ANSI.cyan)}`);
27
+ logger.out(`${this.paint("═".repeat(60), ANSI.dim)}\n`);
28
+ }
29
+ mirrorDryRunNotice(logger) {
30
+ logger.out(`${this.paint("Dry run — no files will be written.", ANSI.yellow)}\n`);
31
+ }
32
+ mirrorProcessingMode(logger, mode) {
33
+ if (mode.kind === "single") {
34
+ logger.out(`${this.paint("Processing single package...", ANSI.dim)}\n`);
35
+ return;
36
+ }
37
+ if (mode.source === "default-patterns") {
38
+ logger.out(`${this.paint("Discovering workspace packages using default patterns (packages/*)…", ANSI.dim)}\n`);
39
+ return;
40
+ }
41
+ if (mode.source === "pnpm-workspace-yaml") {
42
+ logger.out(`${this.paint("Discovering workspace packages from pnpm-workspace.yaml…", ANSI.dim)}\n`);
43
+ return;
44
+ }
45
+ logger.out(`${this.paint("pnpm-workspace.yaml declares an empty workspace package list.", ANSI.dim)}\n`);
46
+ }
47
+ mirrorNoPackages(logger) {
48
+ logger.out(this.paint("⚠ No packages found", ANSI.yellow));
49
+ }
50
+ logSkippedWorkspacePackage(logger, index, total, displayName, reason) {
51
+ const progress = this.paint(`[${index}/${total}]`, ANSI.dim);
52
+ logger.out(`${progress} ${this.paint("○", ANSI.gray)} ${this.paint(displayName, ANSI.dim)}`);
53
+ logger.out(` ${this.paint("└─", ANSI.dim)} ${this.paint(`Skipped: ${reason}`, ANSI.gray)}`);
54
+ logger.out("");
55
+ }
56
+ logPackageSuccess(logger, index, total, pkgStats, generatedDistAssetCounts, verbose) {
57
+ const progress = this.paint(`[${index}/${total}]`, ANSI.dim);
58
+ logger.out(`${progress} ${this.paint("✓", ANSI.brightGreen)} ${this.paint(pkgStats.name, ANSI.bold)}`);
59
+ if (verbose) {
60
+ logger.out(` ${this.paint("├─", ANSI.dim)} Path: ${pkgStats.path}`);
61
+ if (pkgStats.hasTransform) {
62
+ logger.out(` ${this.paint("├─", ANSI.dim)} ${this.paint("Custom path transformation", ANSI.cyan)}`);
63
+ }
64
+ if (pkgStats.cssConfigStatus) {
65
+ const status = pkgStats.cssConfigStatus === "disabled" ? "CSS disabled" : "CSS configured";
66
+ logger.out(` ${this.paint("├─", ANSI.dim)} ${this.paint(status, ANSI.cyan)}`);
67
+ }
68
+ }
69
+ const breakdown = [];
70
+ if (generatedDistAssetCounts.jsCount > 0) {
71
+ breakdown.push(this.paint(`${generatedDistAssetCounts.jsCount} modules`, ANSI.green));
72
+ }
73
+ if (generatedDistAssetCounts.cssCount > 0) {
74
+ breakdown.push(this.paint(`${generatedDistAssetCounts.cssCount} CSS`, ANSI.magenta));
75
+ }
76
+ if (pkgStats.extraExports > 0) {
77
+ breakdown.push(this.paint(`${pkgStats.extraExports} custom`, ANSI.yellow));
78
+ }
79
+ const totalExportsText = this.paint(`${pkgStats.totalExports} exports`, ANSI.brightCyan);
80
+ if (breakdown.length === 0) {
81
+ logger.out(` ${this.paint("└─", ANSI.dim)} ${totalExportsText}`);
82
+ }
83
+ else {
84
+ logger.out(` ${this.paint("└─", ANSI.dim)} ${breakdown.join(" + ")} = ${totalExportsText}`);
85
+ }
86
+ logger.out("");
87
+ }
88
+ logPrunedStaleExport(logger, exportSpecifier) {
89
+ logger.out(` ${this.paint("└─", ANSI.dim)} ${this.paint(`Pruned stale export: ${exportSpecifier}`, ANSI.gray)}`);
90
+ }
91
+ logPackageError(logger, index, total, displayName, errorValue, verbose) {
92
+ logger.out(`${this.paint(`[${index}/${total}]`, ANSI.dim)} ${this.paint("✗", ANSI.yellow)} ${this.paint(displayName, ANSI.bold)}`);
93
+ logger.out(` ${this.paint("└─", ANSI.dim)} ${this.paint(`Error: ${messageFrom(errorValue)}`, ANSI.yellow)}\n`);
94
+ if (verbose) {
95
+ logger.err(errorValue instanceof Error && errorValue.stack ? errorValue.stack : messageFrom(errorValue));
96
+ }
97
+ }
98
+ mirrorSummarySeparator(logger) {
99
+ logger.out(this.paint("═".repeat(60), ANSI.dim));
100
+ }
101
+ mirrorSummary(logger, stats, elapsedSeconds) {
102
+ logger.out(`${this.paint("📊 Summary", ANSI.bold)} ${this.paint(`(completed in ${elapsedSeconds.toFixed(2)}s)`, ANSI.dim)}\n`);
103
+ logger.out(` ${this.paint("Packages:", ANSI.bold)}`);
104
+ logger.out(` ${this.paint("├─", ANSI.dim)} Processed: ${this.paint(String(stats.packagesProcessed), ANSI.green)}`);
105
+ if (stats.packagesSkipped > 0) {
106
+ logger.out(` ${this.paint("├─", ANSI.dim)} Skipped: ${this.paint(String(stats.packagesSkipped), ANSI.gray)}`);
107
+ }
108
+ if (stats.packagesErrored > 0) {
109
+ logger.out(` ${this.paint("├─", ANSI.dim)} Errors: ${this.paint(String(stats.packagesErrored), ANSI.yellow)}`);
110
+ }
111
+ logger.out(` ${this.paint("└─", ANSI.dim)} Total found: ${stats.packagesFound}\n`);
112
+ logger.out(` ${this.paint("Exports:", ANSI.bold)}`);
113
+ logger.out(` ${this.paint("├─", ANSI.dim)} JS Modules: ${this.paint(String(stats.totalJsModules), ANSI.cyan)}`);
114
+ logger.out(` ${this.paint("├─", ANSI.dim)} CSS Files: ${this.paint(String(stats.totalCssExports), ANSI.magenta)}`);
115
+ logger.out(` ${this.paint("└─", ANSI.dim)} Total: ${this.paint(String(stats.totalExports), ANSI.brightCyan)}\n`);
116
+ logger.out(`${this.paint("═".repeat(60), ANSI.dim)}\n`);
117
+ }
118
+ paint(text, openSequence) {
119
+ if (!this.colorsAreEnabled) {
120
+ return text;
121
+ }
122
+ return `${openSequence}${text}${ANSI.reset}`;
123
+ }
124
+ }
125
+ //# sourceMappingURL=sync-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-reporter.js","sourceRoot":"","sources":["../../src/mirror/sync-reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-types.js","sourceRoot":"","sources":["../../src/mirror/sync-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,117 @@
1
+ import path from "node:path";
2
+ import { messageFrom } from "#/core/errors";
3
+ import { createMirrorDistFilesystem } from "#/mirror/dist-filesystem-impl";
4
+ import { DIST_DIR, PACKAGE_JSON } from "#/mirror/domain/constants";
5
+ import { createPathTransform, generateExports } from "#/mirror/domain/exports";
6
+ import { resolvePackageDisplayName } from "#/mirror/domain/package-display-name";
7
+ import { buildSourcePathResolver, supplementExportsInPackageJson } from "#/mirror/supplement-exports";
8
+ import { writePackageJsonExportsAtomic } from "#/mirror/write-exports";
9
+ /**
10
+ * @since 0.3.16-canary.0
11
+ */
12
+ export async function syncExportsForWorkspacePackage(fs, rootDir, packagePathStr, config, write = true) {
13
+ const pathJoin = path.join;
14
+ const pathResolve = path.resolve;
15
+ const pathBasename = path.basename;
16
+ const packageDir = pathResolve(rootDir, packagePathStr);
17
+ const distDir = pathJoin(packageDir, DIST_DIR);
18
+ const packageJsonPath = pathJoin(packageDir, PACKAGE_JSON);
19
+ const folderBasename = pathBasename(packageDir);
20
+ const distFilesystem = createMirrorDistFilesystem(fs);
21
+ const pkgStats = {
22
+ name: folderBasename,
23
+ path: packageDir,
24
+ jsModules: 0,
25
+ cssExports: 0,
26
+ extraExports: 0,
27
+ totalExports: 0,
28
+ hasTransform: false,
29
+ cssConfigStatus: "",
30
+ skipped: false,
31
+ skipReason: "",
32
+ error: null,
33
+ prunedExportKeys: [],
34
+ };
35
+ if (!fs.existsSync(packageJsonPath)) {
36
+ pkgStats.skipped = true;
37
+ pkgStats.skipReason = "package.json not found";
38
+ return pkgStats;
39
+ }
40
+ let packageJsonParseError;
41
+ let parsedPackageJson;
42
+ try {
43
+ const packageContent = await fs.readFile(packageJsonPath, "utf8");
44
+ const rawPackageJson = JSON.parse(packageContent);
45
+ if (rawPackageJson === null || typeof rawPackageJson !== "object" || Array.isArray(rawPackageJson)) {
46
+ throw new SyntaxError("package.json root must be a JSON object");
47
+ }
48
+ parsedPackageJson = rawPackageJson;
49
+ pkgStats.name = resolvePackageDisplayName(parsedPackageJson, folderBasename);
50
+ }
51
+ catch (caughtError) {
52
+ pkgStats.name = folderBasename;
53
+ packageJsonParseError = caughtError;
54
+ }
55
+ const packageName = pkgStats.name;
56
+ const pkgConfig = config[packageName];
57
+ if (pkgConfig === false) {
58
+ pkgStats.skipped = true;
59
+ pkgStats.skipReason = "configured to skip";
60
+ return pkgStats;
61
+ }
62
+ if (packageJsonParseError !== undefined) {
63
+ if (!fs.existsSync(distDir)) {
64
+ pkgStats.skipped = true;
65
+ pkgStats.skipReason = "dist/ not found";
66
+ return pkgStats;
67
+ }
68
+ pkgStats.error = messageFrom(packageJsonParseError);
69
+ return pkgStats;
70
+ }
71
+ if (!fs.existsSync(distDir)) {
72
+ pkgStats.skipped = true;
73
+ pkgStats.skipReason = "dist/ not found";
74
+ return pkgStats;
75
+ }
76
+ try {
77
+ const resolveSourcePath = buildSourcePathResolver(fs, packageDir);
78
+ const exportOptions = {
79
+ source: pkgConfig?.source ?? true,
80
+ types: pkgConfig?.types ?? true,
81
+ import: pkgConfig?.import ?? true,
82
+ resolveSourcePath,
83
+ };
84
+ if (pkgConfig?.preserve) {
85
+ const { supplementedSpecifiers } = await supplementExportsInPackageJson(fs, packageJsonPath, packageDir, exportOptions, write);
86
+ pkgStats.totalExports = supplementedSpecifiers.length;
87
+ }
88
+ else {
89
+ const pathTransform = createPathTransform(pkgConfig?.strip);
90
+ pkgStats.hasTransform = !!pathTransform;
91
+ const cssConfig = pkgConfig?.css;
92
+ if (cssConfig === false) {
93
+ pkgStats.cssConfigStatus = "disabled";
94
+ }
95
+ else if (cssConfig !== undefined) {
96
+ pkgStats.cssConfigStatus = "configured";
97
+ }
98
+ const extraExports = pkgConfig?.exports ?? {};
99
+ const generatedExports = await generateExports(distFilesystem, distDir, pathTransform, cssConfig, extraExports, exportOptions);
100
+ const { prunedKeys } = await writePackageJsonExportsAtomic(fs, packageJsonPath, {
101
+ generatedExports: generatedExports.exports,
102
+ managedExportSpecifiers: Object.keys(generatedExports.exports),
103
+ originalPathBySpecifier: generatedExports.originalPathBySpecifier,
104
+ }, write);
105
+ pkgStats.jsModules = generatedExports.jsCount;
106
+ pkgStats.cssExports = generatedExports.cssCount;
107
+ pkgStats.extraExports = Object.keys(extraExports).length;
108
+ pkgStats.totalExports = Object.keys(generatedExports.exports).length;
109
+ pkgStats.prunedExportKeys = prunedKeys;
110
+ }
111
+ }
112
+ catch (caughtError) {
113
+ pkgStats.error = messageFrom(caughtError);
114
+ }
115
+ return pkgStats;
116
+ }
117
+ //# sourceMappingURL=sync-workspace-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-workspace-package.js","sourceRoot":"","sources":["../../src/mirror/sync-workspace-package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import path from "node:path";
2
+ import { AppError } from "#/core/errors";
3
+ import { messageFrom } from "#/core/errors";
4
+ import { err, ok } from "#/core/result";
5
+ import { listWorkspacePackageDirectories } from "#/core/workspace/resolver";
6
+ import { normalizePath } from "#/mirror/domain/path-normalizer";
7
+ import { resolvePackageFilterUnderRoot } from "#/mirror/package-path";
8
+ import { syncExportsForWorkspacePackage } from "#/mirror/sync-workspace-package";
9
+ /**
10
+ * @since 0.3.16-canary.0
11
+ */
12
+ export async function runMirrorSync(fs, input) {
13
+ const config = (input.config ?? {});
14
+ const { listener } = input;
15
+ const write = input.write ?? true;
16
+ listener?.onBanner();
17
+ const startTime = performance.now();
18
+ try {
19
+ let targetPackages = [];
20
+ if (input.packageFilter) {
21
+ const filterOutcome = resolvePackageFilterUnderRoot(fs, input.rootDir, input.packageFilter);
22
+ if (!filterOutcome.ok) {
23
+ return filterOutcome;
24
+ }
25
+ targetPackages = [filterOutcome.value];
26
+ listener?.onProcessingMode({ kind: "single" });
27
+ }
28
+ else {
29
+ const layoutOutcome = await listWorkspacePackageDirectories(input.rootDir, fs, false);
30
+ const { relPaths, multiSource } = mirrorTargetsFromWorkspaceLayout(input.rootDir, layoutOutcome);
31
+ targetPackages = relPaths;
32
+ listener?.onProcessingMode({ kind: "multi", source: multiSource });
33
+ }
34
+ const stats = {
35
+ packagesFound: targetPackages.length,
36
+ packagesProcessed: 0,
37
+ packagesSkipped: 0,
38
+ packagesErrored: 0,
39
+ totalExports: 0,
40
+ totalJsModules: 0,
41
+ totalCssExports: 0,
42
+ packageDetails: [],
43
+ };
44
+ if (targetPackages.length === 0) {
45
+ listener?.onNoPackages();
46
+ listener?.onComplete(stats, (performance.now() - startTime) / 1000);
47
+ return ok(stats);
48
+ }
49
+ let ordinal = 1;
50
+ for (const pkgPath of targetPackages) {
51
+ const pkgStats = await syncExportsForWorkspacePackage(fs, input.rootDir, pkgPath, config, write);
52
+ stats.packageDetails.push(pkgStats);
53
+ listener?.onPackageComplete(pkgStats, ordinal, targetPackages.length);
54
+ ordinal++;
55
+ accumulateStats(stats, pkgStats);
56
+ }
57
+ const elapsed = (performance.now() - startTime) / 1000;
58
+ listener?.onComplete(stats, elapsed);
59
+ return ok(stats);
60
+ }
61
+ catch (caughtError) {
62
+ return err(new AppError("INFRA_FAILURE", messageFrom(caughtError), caughtError));
63
+ }
64
+ }
65
+ function accumulateStats(stats, pkgStats) {
66
+ if (pkgStats.skipped) {
67
+ stats.packagesSkipped++;
68
+ }
69
+ else if (pkgStats.error !== null) {
70
+ stats.packagesErrored++;
71
+ }
72
+ else {
73
+ stats.packagesProcessed++;
74
+ stats.totalExports += pkgStats.totalExports;
75
+ stats.totalJsModules += pkgStats.jsModules;
76
+ stats.totalCssExports += pkgStats.cssExports;
77
+ }
78
+ }
79
+ function mirrorTargetsFromWorkspaceLayout(rootDir, layoutOutcome) {
80
+ if (layoutOutcome.layoutSource === "declared-empty") {
81
+ return { relPaths: [], multiSource: "declared-empty" };
82
+ }
83
+ const multiSource = layoutOutcome.layoutSource;
84
+ const relPaths = layoutOutcome.packageDirectoryPathsAbsolute
85
+ .map((absolutePath) => normalizePath(path.relative(rootDir, absolutePath)))
86
+ .filter((relativePath) => relativePath.length > 0);
87
+ relPaths.sort((left, right) => left.localeCompare(right));
88
+ return { relPaths, multiSource };
89
+ }
90
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/mirror/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { messageFrom } from "#/core/errors";
2
+ import { PACKAGE_JSON_EXPORT } from "#/mirror/domain/constants";
3
+ import { MirrorError, MirrorErrorCode } from "#/mirror/domain/errors";
4
+ /**
5
+ * Writes `exports` into `package.json` via a temp file + rename (atomic on same volume).
6
+ * Preserves a trailing newline after JSON.
7
+ *
8
+ * @since 0.3.16-canary.0
9
+ */
10
+ export async function writePackageJsonExportsAtomic(fs, packageJsonPath, mergeInput, write = true) {
11
+ function containsDistTarget(value) {
12
+ if (typeof value === "string") {
13
+ return value.startsWith("./dist/");
14
+ }
15
+ if (Array.isArray(value)) {
16
+ return value.some((entryValue) => containsDistTarget(entryValue));
17
+ }
18
+ if (value && typeof value === "object") {
19
+ return Object.values(value).some((entryValue) => containsDistTarget(entryValue));
20
+ }
21
+ return false;
22
+ }
23
+ /**
24
+ * Keep `./package.json` at the very end for aesthetics by default.
25
+ * If a catch-all `./*` exists, move `./package.json` before wildcards so it remains reachable.
26
+ */
27
+ function exportSpecifierRank(exportSpecifier, hasCatchAllWildcard) {
28
+ if (exportSpecifier === ".") {
29
+ return 0;
30
+ }
31
+ if (exportSpecifier === PACKAGE_JSON_EXPORT) {
32
+ return hasCatchAllWildcard ? 2 : 4;
33
+ }
34
+ if (exportSpecifier.includes("*")) {
35
+ return 3;
36
+ }
37
+ return 1;
38
+ }
39
+ function compareExportSpecifiers(leftSpecifier, rightSpecifier, pathBySpecifier, hasCatchAllWildcard) {
40
+ const leftRank = exportSpecifierRank(leftSpecifier, hasCatchAllWildcard);
41
+ const rightRank = exportSpecifierRank(rightSpecifier, hasCatchAllWildcard);
42
+ if (leftRank !== rightRank) {
43
+ return leftRank - rightRank;
44
+ }
45
+ const leftOriginalPath = pathBySpecifier[leftSpecifier] ?? leftSpecifier;
46
+ const rightOriginalPath = pathBySpecifier[rightSpecifier] ?? rightSpecifier;
47
+ const originalPathComparison = leftOriginalPath.localeCompare(rightOriginalPath);
48
+ if (originalPathComparison !== 0) {
49
+ return originalPathComparison;
50
+ }
51
+ return leftSpecifier.localeCompare(rightSpecifier);
52
+ }
53
+ const raw = await fs.readFile(packageJsonPath, "utf8");
54
+ const packageJson = JSON.parse(raw);
55
+ const existingExports = packageJson.exports;
56
+ const existingExportMap = existingExports && typeof existingExports === "object" && !Array.isArray(existingExports)
57
+ ? existingExports
58
+ : {};
59
+ const managedSpecifiers = new Set(mergeInput.managedExportSpecifiers);
60
+ const originalPathBySpecifier = {
61
+ ...mergeInput.originalPathBySpecifier,
62
+ };
63
+ const mergedExportMap = {};
64
+ const prunedKeys = [];
65
+ // Preserve unmanaged manual entries; drop unmanaged stale entries targeting dist/.
66
+ for (const [exportSpecifier, exportValue] of Object.entries(existingExportMap)) {
67
+ if (exportSpecifier === PACKAGE_JSON_EXPORT) {
68
+ mergedExportMap[exportSpecifier] = exportValue;
69
+ if (!(exportSpecifier in originalPathBySpecifier)) {
70
+ originalPathBySpecifier[exportSpecifier] = exportSpecifier;
71
+ }
72
+ continue;
73
+ }
74
+ if (!managedSpecifiers.has(exportSpecifier)) {
75
+ if (containsDistTarget(exportValue)) {
76
+ prunedKeys.push(exportSpecifier);
77
+ }
78
+ else {
79
+ mergedExportMap[exportSpecifier] = exportValue;
80
+ if (!(exportSpecifier in originalPathBySpecifier)) {
81
+ originalPathBySpecifier[exportSpecifier] = exportSpecifier;
82
+ }
83
+ }
84
+ }
85
+ }
86
+ // Generated entries always win for managed specifiers (including ".").
87
+ for (const [exportSpecifier, exportValue] of Object.entries(mergeInput.generatedExports)) {
88
+ mergedExportMap[exportSpecifier] = exportValue;
89
+ }
90
+ if (!(PACKAGE_JSON_EXPORT in mergedExportMap)) {
91
+ mergedExportMap[PACKAGE_JSON_EXPORT] = PACKAGE_JSON_EXPORT;
92
+ }
93
+ originalPathBySpecifier[PACKAGE_JSON_EXPORT] = PACKAGE_JSON_EXPORT;
94
+ const rootExport = mergedExportMap["."];
95
+ if (rootExport && typeof rootExport === "object" && !Array.isArray(rootExport)) {
96
+ const rootEntry = rootExport;
97
+ const requirePath = typeof rootEntry.require === "string" ? rootEntry.require : undefined;
98
+ const importPath = typeof rootEntry.import === "string" ? rootEntry.import : undefined;
99
+ const typesPath = typeof rootEntry.types === "string" ? rootEntry.types : undefined;
100
+ if (requirePath || importPath) {
101
+ packageJson.main = requirePath ?? importPath;
102
+ }
103
+ // The `import` condition is the ESM entry regardless of extension (`.js`
104
+ // under `type: module`, or `.mjs`). Mirror `module` to it either way.
105
+ if (importPath) {
106
+ packageJson.module = importPath;
107
+ }
108
+ if (typesPath) {
109
+ packageJson.types = typesPath;
110
+ }
111
+ }
112
+ const filesField = packageJson.files;
113
+ if (Array.isArray(filesField)) {
114
+ const normalizedFiles = filesField.filter((entry) => typeof entry === "string");
115
+ if (!normalizedFiles.includes("dist")) {
116
+ normalizedFiles.push("dist");
117
+ }
118
+ packageJson.files = normalizedFiles;
119
+ }
120
+ else {
121
+ packageJson.files = ["dist"];
122
+ }
123
+ const sortedExportMap = {};
124
+ const hasCatchAllWildcard = "./*" in mergedExportMap;
125
+ for (const exportSpecifier of Object.keys(mergedExportMap).toSorted((leftSpecifier, rightSpecifier) => compareExportSpecifiers(leftSpecifier, rightSpecifier, originalPathBySpecifier, hasCatchAllWildcard))) {
126
+ sortedExportMap[exportSpecifier] = mergedExportMap[exportSpecifier];
127
+ }
128
+ // Dry-run: skip the on-disk mutation but still report what would have been pruned.
129
+ if (!write) {
130
+ return { prunedKeys };
131
+ }
132
+ packageJson.exports = sortedExportMap;
133
+ const serialized = JSON.stringify(packageJson, null, 2) + "\n";
134
+ const tmpPath = `${packageJsonPath}.tmp`;
135
+ await fs.writeFile(tmpPath, serialized, "utf8");
136
+ try {
137
+ await fs.rename(tmpPath, packageJsonPath);
138
+ }
139
+ catch (caughtRenameError) {
140
+ await fs.unlink(tmpPath).catch(() => { });
141
+ throw new MirrorError(MirrorErrorCode.PACKAGE_WRITE, `Failed to atomically update ${packageJsonPath}: ${messageFrom(caughtRenameError)}`, caughtRenameError instanceof Error ? { cause: caughtRenameError } : undefined);
142
+ }
143
+ return { prunedKeys };
144
+ }
145
+ //# sourceMappingURL=write-exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-exports.js","sourceRoot":"","sources":["../../src/mirror/write-exports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CLI_EXIT_GENERAL_ERROR, CLI_EXIT_SUCCESS } from "#/core/exit-codes";
2
+ /**
3
+ * @since 0.3.16-canary.0
4
+ */
5
+ export function exitCodeForTagSyncResult(result) {
6
+ if (result.selectedTargets.length === 0) {
7
+ return CLI_EXIT_GENERAL_ERROR;
8
+ }
9
+ const hasRunErrors = result.targetResults.some((targetResult) => targetResult.runError !== null);
10
+ return hasRunErrors || result.hookError !== null ? CLI_EXIT_GENERAL_ERROR : CLI_EXIT_SUCCESS;
11
+ }
12
+ //# sourceMappingURL=cli-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-result.js","sourceRoot":"","sources":["../../src/tag/cli-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG7E;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAqB;IAC5D,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IACjG,OAAO,YAAY,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC/F,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * @since 0.3.16-canary.0
4
+ */
5
+ export const tagSyncRunRequestSchema = z.object({
6
+ rootDir: z.string().min(1),
7
+ write: z.boolean(),
8
+ json: z.boolean().optional(),
9
+ targetPath: z.string().optional(),
10
+ skipPackages: z.array(z.string()).optional(),
11
+ config: z.unknown().optional(),
12
+ });
13
+ //# sourceMappingURL=cli-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-schema.js","sourceRoot":"","sources":["../../src/tag/cli-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAiC,CAAC,CAAC,MAAM,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import process from "node:process";
2
+ import { Command } from "commander";
3
+ import { readOptionalPositionalArg } from "#/core/cli/positional";
4
+ import { consumeCliAppError } from "#/core/cli/result-handle";
5
+ import { nodeFilesystem } from "#/core/filesystem/node";
6
+ import { logger } from "#/core/logger";
7
+ import { parseWithSchema } from "#/core/schema-parse";
8
+ import { exitCodeForTagSyncResult } from "#/tag/cli-result";
9
+ import { tagSyncRunRequestSchema } from "#/tag/cli-schema";
10
+ import { presentTagSyncResult, TagSyncProgressPresenter } from "#/tag/output";
11
+ import { prepareTagSync } from "#/tag/prepare";
12
+ import { runTagSync } from "#/tag/sync";
13
+ /**
14
+ * @since 0.3.16-canary.0
15
+ */
16
+ export function createTagCommand() {
17
+ const cmd = new Command("tag")
18
+ .description("Add @since <version> JSDoc tags to exported declarations")
19
+ .argument("[target]", "Directory or file to tag (default: auto-discover workspace packages)")
20
+ .option("--dry-run", "Show summary without writing files", false)
21
+ .option("--json", "Print one JSON summary on stdout (suppresses human progress)", false)
22
+ .action(async (target, opts) => {
23
+ const prelude = await prepareTagSync(nodeFilesystem, {
24
+ currentWorkingDirectory: process.cwd(),
25
+ rawTarget: readOptionalPositionalArg(target),
26
+ });
27
+ if (!consumeCliAppError(prelude)) {
28
+ return;
29
+ }
30
+ const { rootDir, config, resolvedTargetPath } = prelude.value;
31
+ const tagConfig = config.tag ?? {};
32
+ const parsed = parseWithSchema(tagSyncRunRequestSchema, {
33
+ rootDir,
34
+ write: !opts.dryRun,
35
+ json: opts.json,
36
+ targetPath: resolvedTargetPath,
37
+ skipPackages: tagConfig.skipPackages,
38
+ config: tagConfig,
39
+ });
40
+ if (!consumeCliAppError(parsed)) {
41
+ return;
42
+ }
43
+ const progressPresenter = new TagSyncProgressPresenter();
44
+ const tagOutcome = await runTagSync(nodeFilesystem, {
45
+ ...parsed.value,
46
+ listener: parsed.value.json ? undefined : progressPresenter,
47
+ });
48
+ if (!consumeCliAppError(tagOutcome)) {
49
+ return;
50
+ }
51
+ if (parsed.value.json) {
52
+ logger.out(formatTagSyncJsonOutput(tagOutcome.value, rootDir));
53
+ process.exitCode = exitCodeForTagSyncResult(tagOutcome.value);
54
+ }
55
+ else {
56
+ process.exitCode = presentTagSyncResult(tagOutcome.value, rootDir);
57
+ }
58
+ });
59
+ return cmd;
60
+ }
61
+ function formatTagSyncJsonOutput(result, rootDir) {
62
+ return JSON.stringify({
63
+ schemaVersion: 1,
64
+ ok: result.hookError === null,
65
+ cwd: rootDir,
66
+ result,
67
+ });
68
+ }
69
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tag/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map