@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,69 @@
1
+ import process from "node:process";
2
+ import { formatAppError } from "#/core/cli/format-error";
3
+ import { CLI_EXIT_GENERAL_ERROR, CLI_EXIT_USAGE } from "#/core/exit-codes";
4
+ import { logger } from "#/core/logger";
5
+ import { isVerboseCliDiagnostics } from "#/core/verbose-diagnostics";
6
+ function exitCodeForAppError(error) {
7
+ switch (error.code) {
8
+ case "NOT_FOUND":
9
+ return CLI_EXIT_GENERAL_ERROR;
10
+ case "VALIDATION_ERROR":
11
+ return CLI_EXIT_USAGE;
12
+ case "INFRA_FAILURE":
13
+ return CLI_EXIT_GENERAL_ERROR;
14
+ default: {
15
+ const exhaustive = error.code;
16
+ return exhaustive;
17
+ }
18
+ }
19
+ }
20
+ /**
21
+ * @since 0.3.16-canary.0
22
+ */
23
+ export function handleResult(outcome, onSuccess) {
24
+ if (!outcome.ok) {
25
+ logger.err(formatAppError(outcome.error));
26
+ if (isVerboseCliDiagnostics() &&
27
+ outcome.error.code === "INFRA_FAILURE" &&
28
+ outcome.error.cause instanceof Error &&
29
+ outcome.error.cause.stack !== undefined) {
30
+ logger.err(outcome.error.cause.stack);
31
+ }
32
+ process.exitCode = exitCodeForAppError(outcome.error);
33
+ return false;
34
+ }
35
+ onSuccess(outcome.value);
36
+ return true;
37
+ }
38
+ /**
39
+ * @since 0.3.16-canary.0
40
+ */
41
+ export function consumeCliAppError(outcome, options) {
42
+ if (!outcome.ok) {
43
+ logger.err(formatAppError(outcome.error));
44
+ if (isVerboseCliDiagnostics() &&
45
+ outcome.error.code === "INFRA_FAILURE" &&
46
+ outcome.error.cause instanceof Error &&
47
+ outcome.error.cause.stack !== undefined) {
48
+ logger.err(outcome.error.cause.stack);
49
+ }
50
+ process.exitCode = exitCodeForAppError(outcome.error);
51
+ return false;
52
+ }
53
+ if (options?.successMessage !== undefined) {
54
+ logger.out(options.successMessage);
55
+ }
56
+ return true;
57
+ }
58
+ /**
59
+ * @since 0.3.16-canary.0
60
+ */
61
+ export async function runCliResultAsync(outcomePromise, onSuccess) {
62
+ const outcome = await outcomePromise;
63
+ if (!consumeCliAppError(outcome)) {
64
+ return;
65
+ }
66
+ const exit = await onSuccess(outcome.value);
67
+ process.exitCode = exit === undefined ? 0 : exit;
68
+ }
69
+ //# sourceMappingURL=result-handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-handle.js","sourceRoot":"","sources":["../../../src/core/cli/result-handle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import path from "node:path";
2
+ import jiti from "jiti";
3
+ import { codefastConfigRootSchema } from "#/core/config/schema";
4
+ function formatZodError(error, filePath) {
5
+ const formatted = error.issues
6
+ .map((issue) => {
7
+ const pathLabel = issue.path.length > 0 ? issue.path.join(".") : "<root>";
8
+ return ` - ${pathLabel}: ${issue.message}`;
9
+ })
10
+ .join("\n");
11
+ return `Invalid config schema in ${path.basename(filePath)}:\n${formatted}`;
12
+ }
13
+ function parseLoadedConfig(raw, filePath) {
14
+ const parsed = codefastConfigRootSchema.safeParse(raw);
15
+ if (!parsed.success) {
16
+ throw new Error(formatZodError(parsed.error, filePath));
17
+ }
18
+ return parsed.data;
19
+ }
20
+ const configJsPriority = ["codefast.config.mjs", "codefast.config.js", "codefast.config.cjs"];
21
+ const configJson = "codefast.config.json";
22
+ const cachedLoads = new Map();
23
+ function listConfigCandidates(startDir, fs) {
24
+ const candidates = [];
25
+ let current = path.resolve(startDir);
26
+ while (true) {
27
+ for (const name of configJsPriority) {
28
+ const candidate = path.join(current, name);
29
+ if (fs.existsSync(candidate)) {
30
+ candidates.push(candidate);
31
+ }
32
+ }
33
+ const jsonCandidate = path.join(current, configJson);
34
+ if (fs.existsSync(jsonCandidate)) {
35
+ candidates.push(jsonCandidate);
36
+ }
37
+ const parent = path.dirname(current);
38
+ if (parent === current) {
39
+ break;
40
+ }
41
+ current = parent;
42
+ }
43
+ return candidates;
44
+ }
45
+ async function readConfigFromPath(filePath, jitiBaseDir, fs) {
46
+ const ext = path.extname(filePath);
47
+ if (ext === ".json") {
48
+ const content = await fs.readFile(filePath, "utf8");
49
+ return parseLoadedConfig(JSON.parse(content), filePath);
50
+ }
51
+ const loadWithJiti = jiti(jitiBaseDir, {
52
+ interopDefault: true,
53
+ moduleCache: false,
54
+ });
55
+ const moduleConfig = loadWithJiti(filePath);
56
+ const unwrappedConfig = typeof moduleConfig === "object" && moduleConfig !== null && "default" in moduleConfig
57
+ ? moduleConfig.default
58
+ : moduleConfig;
59
+ return parseLoadedConfig(unwrappedConfig, filePath);
60
+ }
61
+ async function loadOnce(startDir, fs) {
62
+ const warnings = [];
63
+ const configPaths = listConfigCandidates(startDir, fs);
64
+ if (configPaths.length === 0) {
65
+ return { config: {}, warnings };
66
+ }
67
+ const configPath = configPaths[0];
68
+ if (configPath === undefined) {
69
+ return { config: {}, warnings };
70
+ }
71
+ const config = await readConfigFromPath(configPath, startDir, fs);
72
+ return { config, warnings, configPath };
73
+ }
74
+ /**
75
+ * @since 0.3.16-canary.0
76
+ */
77
+ export function loadConfigPayload(startDir, fs) {
78
+ const cacheKey = path.resolve(startDir);
79
+ if (!cachedLoads.has(cacheKey)) {
80
+ cachedLoads.set(cacheKey, loadOnce(cacheKey, fs));
81
+ }
82
+ const cached = cachedLoads.get(cacheKey);
83
+ if (cached === undefined) {
84
+ throw new Error("config loader cache invariant violated");
85
+ }
86
+ return cached;
87
+ }
88
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { z } from "zod";
2
+ const afterWriteHookSchema = z.custom((value) => typeof value === "function", {
3
+ message: "Expected a function",
4
+ });
5
+ const mirrorCssConfigSchema = z.union([
6
+ z.boolean(),
7
+ z
8
+ .object({
9
+ enabled: z.boolean().optional(),
10
+ customExports: z.record(z.string(), z.string()).optional(),
11
+ forceExportFiles: z.boolean().optional(),
12
+ })
13
+ .strict(),
14
+ ]);
15
+ /**
16
+ * Per-package mirror configuration. Setting a package to `false` skips it entirely.
17
+ *
18
+ * - `source` — include a `source` condition pointing to the original `.ts` file (default `true`).
19
+ * Pass a string to override the root-export source path explicitly.
20
+ * - `types` — include the `types` condition when `.d.ts` files exist (default `true`).
21
+ * - `import` — include the `import` condition (default `true`).
22
+ * - `css` — CSS export configuration (wildcard or per-file).
23
+ *
24
+ * @since 0.3.16-canary.0
25
+ */
26
+ export const mirrorPackageConfigSchema = z
27
+ .object({
28
+ /** Preserve the existing `package.json#exports` map and only add missing conditions
29
+ * (`source`, `types`, `import`). No dist/ scan is performed. */
30
+ preserve: z.boolean().optional(),
31
+ strip: z.string().optional(),
32
+ exports: z.record(z.string(), z.string()).optional(),
33
+ source: z.union([z.boolean(), z.string()]).default(true),
34
+ types: z.boolean().default(true),
35
+ import: z.boolean().default(true),
36
+ css: mirrorCssConfigSchema.optional(),
37
+ })
38
+ .strict();
39
+ /**
40
+ * Mirror config: a record keyed by package name. Set a package to `false` to skip it;
41
+ * omit it entirely to process it with default settings.
42
+ *
43
+ * @since 0.3.16-canary.0
44
+ */
45
+ export const mirrorConfigSchema = z.record(z.string(), z.union([z.literal(false), mirrorPackageConfigSchema]));
46
+ /**
47
+ * @since 0.3.16-canary.0
48
+ */
49
+ export const codefastTagConfigSchema = z
50
+ .object({
51
+ skipPackages: z.array(z.string()).optional(),
52
+ onAfterWrite: afterWriteHookSchema.optional(),
53
+ })
54
+ .strict();
55
+ /**
56
+ * @since 0.3.16-canary.0
57
+ */
58
+ export const codefastArrangeConfigSchema = z
59
+ .object({
60
+ onAfterWrite: afterWriteHookSchema.optional(),
61
+ })
62
+ .strict();
63
+ /**
64
+ * RTL audit defaults — `target` is relative to the repo root (where `codefast.config` lives).
65
+ *
66
+ * @since 0.3.16-canary.0
67
+ */
68
+ export const codefastAuditRtlConfigSchema = z
69
+ .object({
70
+ /** Directory or file to scan when no CLI target is passed. */
71
+ target: z.string().optional(),
72
+ /** Bare class tokens or `repo/relative/path.tsx:token` entries to ignore. */
73
+ allowlist: z.array(z.string()).optional(),
74
+ })
75
+ .strict();
76
+ /**
77
+ * @since 0.3.16-canary.0
78
+ */
79
+ export const codefastAuditConfigSchema = z
80
+ .object({
81
+ rtl: codefastAuditRtlConfigSchema.optional(),
82
+ })
83
+ .strict();
84
+ /**
85
+ * Root `codefast.config` Zod schema — single source of truth for both validation and TS types.
86
+ *
87
+ * @since 0.3.16-canary.0
88
+ */
89
+ export const codefastConfigRootSchema = z
90
+ .object({
91
+ mirror: mirrorConfigSchema.optional(),
92
+ tag: codefastTagConfigSchema.optional(),
93
+ arrange: codefastArrangeConfigSchema.optional(),
94
+ audit: codefastAuditConfigSchema.optional(),
95
+ })
96
+ .strict();
97
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { logger } from "#/core/logger";
2
+ const yellowAnsi = "\x1b[33m";
3
+ const resetAnsi = "\x1b[0m";
4
+ /**
5
+ * @since 0.3.16-canary.0
6
+ */
7
+ export function reportSchemaWarnings(warnings) {
8
+ for (const warningMessage of warnings) {
9
+ logger.out(`${yellowAnsi}⚠ ${warningMessage}${resetAnsi}`);
10
+ }
11
+ }
12
+ //# sourceMappingURL=warnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../src/core/config/warnings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,SAAS,GAAG,SAAS,CAAC;AAE5B;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA+B;IAClE,KAAK,MAAM,cAAc,IAAI,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,KAAK,cAAc,GAAG,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { loadConfigPayload } from "#/core/config/loader";
2
+ import { reportSchemaWarnings } from "#/core/config/warnings";
3
+ import { AppError, messageFrom } from "#/core/errors";
4
+ import { err, ok } from "#/core/result";
5
+ /**
6
+ * @since 0.3.16-canary.0
7
+ */
8
+ export async function loadCodefastConfig(rootDir, fs) {
9
+ try {
10
+ const { config, warnings } = await loadConfigPayload(rootDir, fs);
11
+ reportSchemaWarnings(warnings);
12
+ return ok({ config });
13
+ }
14
+ catch (caughtError) {
15
+ return err(new AppError("INFRA_FAILURE", messageFrom(caughtError), caughtError));
16
+ }
17
+ }
18
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,EAAkB;IAElB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,WAAoB,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Cross-context application errors for Result-based flows.
3
+ * Does not extend the global `Error` type — instances are carried in `Result` values, not thrown.
4
+ *
5
+ * @since 0.3.16-canary.0
6
+ */
7
+ /**
8
+ * @since 0.3.16-canary.0
9
+ */
10
+ export class AppError {
11
+ name = "AppError";
12
+ code;
13
+ message;
14
+ cause;
15
+ constructor(code, message, cause) {
16
+ this.code = code;
17
+ this.message = message;
18
+ if (cause !== undefined) {
19
+ this.cause = cause;
20
+ }
21
+ }
22
+ }
23
+ /**
24
+ * Stable, user-facing text for values caught as `unknown`.
25
+ *
26
+ * @since 0.3.16-canary.0
27
+ */
28
+ export function messageFrom(value) {
29
+ if (value instanceof Error) {
30
+ return value.message;
31
+ }
32
+ if (typeof value === "string") {
33
+ return value;
34
+ }
35
+ if (typeof value === "number" || typeof value === "bigint" || typeof value === "boolean") {
36
+ return String(value);
37
+ }
38
+ if (typeof value === "symbol") {
39
+ return String(value);
40
+ }
41
+ if (value === null) {
42
+ return "null";
43
+ }
44
+ if (value === undefined) {
45
+ return "undefined";
46
+ }
47
+ try {
48
+ const serialized = JSON.stringify(value);
49
+ if (typeof serialized === "string") {
50
+ return serialized;
51
+ }
52
+ }
53
+ catch {
54
+ // Circular structure, BigInt in tree, etc.
55
+ }
56
+ return "[unserializable non-Error value]";
57
+ }
58
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,OAAO,QAAQ;IACV,IAAI,GAAG,UAAmB,CAAC;IAC3B,IAAI,CAAe;IACnB,OAAO,CAAS;IAChB,KAAK,CAAW;IAEzB,YAAY,IAAkB,EAAE,OAAe,EAAE,KAAe;QAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IACD,OAAO,kCAAkC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Process exit codes for the `codefast` CLI.
3
+ *
4
+ * @since 0.3.16-canary.0
5
+ */
6
+ export const CLI_EXIT_SUCCESS = 0;
7
+ /**
8
+ * @since 0.3.16-canary.0
9
+ */
10
+ export const CLI_EXIT_GENERAL_ERROR = 1;
11
+ /**
12
+ * @since 0.3.16-canary.0
13
+ */
14
+ export const CLI_EXIT_USAGE = 2;
15
+ //# sourceMappingURL=exit-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/core/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import fsSync from "node:fs";
2
+ import fsPromises from "node:fs/promises";
3
+ import path from "node:path";
4
+ /**
5
+ * @since 0.3.16-canary.0
6
+ */
7
+ export const nodeFilesystem = {
8
+ existsSync: fsSync.existsSync,
9
+ statSync: fsSync.statSync,
10
+ readFileSync: fsSync.readFileSync,
11
+ writeFileSync: fsSync.writeFileSync,
12
+ readdirSync: fsSync.readdirSync,
13
+ canonicalPathSync(inputPath) {
14
+ try {
15
+ return fsSync.realpathSync.native(inputPath);
16
+ }
17
+ catch {
18
+ return path.resolve(inputPath);
19
+ }
20
+ },
21
+ readFile: (filePath, enc) => fsPromises.readFile(filePath, enc),
22
+ writeFile: (filePath, data, enc) => fsPromises.writeFile(filePath, data, enc),
23
+ readdir: async (filePath, opts) => {
24
+ const raw = await fsPromises.readdir(filePath, opts);
25
+ if (!opts?.withFileTypes) {
26
+ return raw;
27
+ }
28
+ return raw;
29
+ },
30
+ rename: (oldPath, newPath) => fsPromises.rename(oldPath, newPath),
31
+ unlink: (filePath) => fsPromises.unlink(filePath),
32
+ };
33
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/core/filesystem/node.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,UAAU,EAAE,MAAM,CAAC,UAAU;IAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,YAAY,EAAE,MAAM,CAAC,YAAY;IACjC,aAAa,EAAE,MAAM,CAAC,aAAa;IACnC,WAAW,EAAE,MAAM,CAAC,WAAW;IAE/B,iBAAiB,CAAC,SAAiB;QACjC,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,QAAQ,EAAE,CAAC,QAAgB,EAAE,GAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IAExF,SAAS,EAAE,CAAC,QAAgB,EAAE,IAAY,EAAE,GAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;IAE9G,OAAO,EAAE,KAAK,EAAE,QAAgB,EAAE,IAAuD,EAAE,EAAE;QAC3F,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAgD,CAAC,CAAC;QACjG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;YACzB,OAAO,GAA+B,CAAC;QACzC,CAAC;QACD,OAAO,GAAuC,CAAC;IACjD,CAAC;IAED,MAAM,EAAE,CAAC,OAAe,EAAE,OAAe,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;IAEjF,MAAM,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;CAC1D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port.js","sourceRoot":"","sources":["../../../src/core/filesystem/port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import picomatch from "picomatch";
2
+ /**
3
+ * Compile a list of glob patterns into a predicate that returns `true` when its
4
+ * argument matches **any** of them (picomatch semantics). Returns a never-match
5
+ * predicate when no patterns are supplied.
6
+ *
7
+ * Shared by every "match a name/path against a configured pattern list" use
8
+ * (workspace excludes, `tag.skipPackages`, …) so the compile-then-`some` logic
9
+ * lives in one place.
10
+ *
11
+ * @since 0.5.0-canary.0
12
+ */
13
+ export function createAnyGlobMatcher(patterns, options) {
14
+ if (!patterns || patterns.length === 0) {
15
+ return () => false;
16
+ }
17
+ const matchers = patterns.map((pattern) => picomatch(pattern, options));
18
+ return (value) => matchers.some((isMatch) => isMatch(value));
19
+ }
20
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/core/glob.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AASlC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAA2C,EAC3C,OAAyC;IAEzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import process from "node:process";
2
+ /**
3
+ * @since 0.3.16-canary.0
4
+ */
5
+ export const logger = {
6
+ out(line) {
7
+ process.stdout.write(`${line}\n`);
8
+ },
9
+ err(line) {
10
+ process.stderr.write(`${line}\n`);
11
+ },
12
+ };
13
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,GAAG,CAAC,IAAY;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,GAAG,CAAC,IAAY;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACpC,CAAC;CACF,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Lightweight functional Result type for CLI boundaries.
3
+ */
4
+ /**
5
+ * @since 0.3.16-canary.0
6
+ */
7
+ export function ok(value) {
8
+ return { ok: true, value };
9
+ }
10
+ /**
11
+ * @since 0.3.16-canary.0
12
+ */
13
+ export function err(error) {
14
+ return { ok: false, error };
15
+ }
16
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;GAEG;AACH,MAAM,UAAU,EAAE,CAAQ,KAAY;IACpC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAa,KAAiB;IAC/C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { AppError } from "#/core/errors";
2
+ import { err, ok } from "#/core/result";
3
+ function formatSchemaIssues(issues) {
4
+ return issues
5
+ .map((issue) => {
6
+ const pathLabel = issue.path.length > 0 ? `${issue.path.join(".")}: ` : "";
7
+ return `${pathLabel}${issue.message}`;
8
+ })
9
+ .join("; ");
10
+ }
11
+ /**
12
+ * @since 0.3.16-canary.0
13
+ */
14
+ export function parseWithSchema(schema, input) {
15
+ const parsed = schema.safeParse(input);
16
+ if (!parsed.success) {
17
+ return err(new AppError("VALIDATION_ERROR", formatSchemaIssues(parsed.error.issues)));
18
+ }
19
+ return ok(parsed.data);
20
+ }
21
+ //# sourceMappingURL=schema-parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-parse.js","sourceRoot":"","sources":["../../src/core/schema-parse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAOxC,SAAS,kBAAkB,CAAC,MAAkC;IAC5D,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAQ,MAAsB,EAAE,KAAc;IAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,IAAI,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Pure string utilities for applying non-overlapping text edits and reading line indentation.
3
+ */
4
+ function lineStartIndexContaining(source, pos) {
5
+ const searchPos = Math.max(0, Math.min(pos, source.length));
6
+ const prevLineBreak = Math.max(source.lastIndexOf("\n", searchPos - 1), source.lastIndexOf("\r", searchPos - 1));
7
+ return prevLineBreak === -1 ? 0 : prevLineBreak + 1;
8
+ }
9
+ /**
10
+ * @since 0.3.16-canary.0
11
+ */
12
+ export function indentOfLineContaining(source, pos) {
13
+ const lineStart = lineStartIndexContaining(source, pos);
14
+ let lineEnd = source.length;
15
+ for (let i = lineStart; i < source.length; i++) {
16
+ const ch = source[i];
17
+ if (ch === "\n" || ch === "\r") {
18
+ lineEnd = i;
19
+ break;
20
+ }
21
+ }
22
+ const line = source.slice(lineStart, lineEnd);
23
+ const indentMatch = /^[\t ]*/.exec(line);
24
+ return indentMatch?.[0] ?? "";
25
+ }
26
+ /**
27
+ * @since 0.3.16-canary.0
28
+ */
29
+ export function textPrefixFromLineStartToPosition(source, pos) {
30
+ const searchPos = Math.max(0, Math.min(pos, source.length));
31
+ return source.slice(lineStartIndexContaining(source, searchPos), searchPos);
32
+ }
33
+ /**
34
+ * @since 0.3.16-canary.0
35
+ */
36
+ export function endAfterOptionalCommaFollowingInSource(source, tokenEnd) {
37
+ let index = tokenEnd;
38
+ while (index < source.length) {
39
+ const ch = source[index];
40
+ if (ch === " " || ch === "\t" || ch === "\n" || ch === "\r") {
41
+ index += 1;
42
+ continue;
43
+ }
44
+ if (ch === ",") {
45
+ return index + 1;
46
+ }
47
+ break;
48
+ }
49
+ return tokenEnd;
50
+ }
51
+ /**
52
+ * @since 0.3.16-canary.0
53
+ */
54
+ export function applyEditsDescending(sourceText, edits) {
55
+ const sorted = [...edits].toSorted((editA, editB) => editB.start - editA.start);
56
+ let out = sourceText;
57
+ for (const edit of sorted) {
58
+ out = out.slice(0, edit.start) + edit.replacement + out.slice(edit.end);
59
+ }
60
+ return out;
61
+ }
62
+ //# sourceMappingURL=source-text-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-text-edit.js","sourceRoot":"","sources":["../../src/core/source-text-edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import process from "node:process";
2
+ /**
3
+ * @since 0.3.16-canary.0
4
+ */
5
+ export function isVerboseCliDiagnostics() {
6
+ const raw = process.env.CODEFAST_VERBOSE;
7
+ return raw === "1" || raw === "true";
8
+ }
9
+ //# sourceMappingURL=verbose-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verbose-diagnostics.js","sourceRoot":"","sources":["../../src/core/verbose-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACzC,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC;AACvC,CAAC"}