check-my-toolkit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +157 -1
  2. package/dist/cli.js +81 -27
  3. package/dist/cli.js.map +1 -1
  4. package/dist/code/index.d.ts.map +1 -1
  5. package/dist/code/index.js +10 -6
  6. package/dist/code/index.js.map +1 -1
  7. package/dist/code/tools/tsc.d.ts +1 -0
  8. package/dist/code/tools/tsc.d.ts.map +1 -1
  9. package/dist/code/tools/tsc.js +18 -14
  10. package/dist/code/tools/tsc.js.map +1 -1
  11. package/dist/config/loader.d.ts +2 -1
  12. package/dist/config/loader.d.ts.map +1 -1
  13. package/dist/config/loader.js +68 -62
  14. package/dist/config/loader.js.map +1 -1
  15. package/dist/config/schema.d.ts +0 -714
  16. package/dist/config/schema.d.ts.map +1 -1
  17. package/dist/config/schema.js +16 -16
  18. package/dist/config/schema.js.map +1 -1
  19. package/dist/output/index.d.ts.map +1 -1
  20. package/dist/output/index.js +33 -34
  21. package/dist/output/index.js.map +1 -1
  22. package/package.json +11 -2
  23. package/dist/code/audit.d.ts +0 -14
  24. package/dist/code/audit.d.ts.map +0 -1
  25. package/dist/code/audit.js +0 -130
  26. package/dist/code/audit.js.map +0 -1
  27. package/dist/code/linting.d.ts +0 -10
  28. package/dist/code/linting.d.ts.map +0 -1
  29. package/dist/code/linting.js +0 -233
  30. package/dist/code/linting.js.map +0 -1
  31. package/dist/code/types.d.ts +0 -6
  32. package/dist/code/types.d.ts.map +0 -1
  33. package/dist/code/types.js +0 -132
  34. package/dist/code/types.js.map +0 -1
  35. package/dist/src/cli.d.ts +0 -3
  36. package/dist/src/cli.d.ts.map +0 -1
  37. package/dist/src/cli.js +0 -116
  38. package/dist/src/cli.js.map +0 -1
  39. package/dist/src/code/index.d.ts +0 -13
  40. package/dist/src/code/index.d.ts.map +0 -1
  41. package/dist/src/code/index.js +0 -53
  42. package/dist/src/code/index.js.map +0 -1
  43. package/dist/src/code/tools/base.d.ts +0 -52
  44. package/dist/src/code/tools/base.d.ts.map +0 -1
  45. package/dist/src/code/tools/base.js +0 -83
  46. package/dist/src/code/tools/base.js.map +0 -1
  47. package/dist/src/code/tools/eslint.d.ts +0 -15
  48. package/dist/src/code/tools/eslint.d.ts.map +0 -1
  49. package/dist/src/code/tools/eslint.js +0 -79
  50. package/dist/src/code/tools/eslint.js.map +0 -1
  51. package/dist/src/code/tools/index.d.ts +0 -5
  52. package/dist/src/code/tools/index.d.ts.map +0 -1
  53. package/dist/src/code/tools/index.js +0 -5
  54. package/dist/src/code/tools/index.js.map +0 -1
  55. package/dist/src/code/tools/ruff.d.ts +0 -26
  56. package/dist/src/code/tools/ruff.d.ts.map +0 -1
  57. package/dist/src/code/tools/ruff.js +0 -149
  58. package/dist/src/code/tools/ruff.js.map +0 -1
  59. package/dist/src/code/tools/tsc.d.ts +0 -21
  60. package/dist/src/code/tools/tsc.d.ts.map +0 -1
  61. package/dist/src/code/tools/tsc.js +0 -94
  62. package/dist/src/code/tools/tsc.js.map +0 -1
  63. package/dist/src/config/index.d.ts +0 -3
  64. package/dist/src/config/index.d.ts.map +0 -1
  65. package/dist/src/config/index.js +0 -3
  66. package/dist/src/config/index.js.map +0 -1
  67. package/dist/src/config/loader.d.ts +0 -22
  68. package/dist/src/config/loader.d.ts.map +0 -1
  69. package/dist/src/config/loader.js +0 -124
  70. package/dist/src/config/loader.js.map +0 -1
  71. package/dist/src/config/schema.d.ts +0 -503
  72. package/dist/src/config/schema.d.ts.map +0 -1
  73. package/dist/src/config/schema.js +0 -190
  74. package/dist/src/config/schema.js.map +0 -1
  75. package/dist/src/index.d.ts +0 -8
  76. package/dist/src/index.d.ts.map +0 -1
  77. package/dist/src/index.js +0 -16
  78. package/dist/src/index.js.map +0 -1
  79. package/dist/src/output/index.d.ts +0 -15
  80. package/dist/src/output/index.d.ts.map +0 -1
  81. package/dist/src/output/index.js +0 -96
  82. package/dist/src/output/index.js.map +0 -1
  83. package/dist/src/types/index.d.ts +0 -96
  84. package/dist/src/types/index.d.ts.map +0 -1
  85. package/dist/src/types/index.js +0 -89
  86. package/dist/src/types/index.js.map +0 -1
  87. package/dist/tests/e2e/e2e.test.d.ts +0 -2
  88. package/dist/tests/e2e/e2e.test.d.ts.map +0 -1
  89. package/dist/tests/e2e/e2e.test.js +0 -398
  90. package/dist/tests/e2e/e2e.test.js.map +0 -1
@@ -23,48 +23,86 @@ export function findConfigFile(startDir = process.cwd()) {
23
23
  }
24
24
  // Check root directory too
25
25
  const rootConfig = path.join(root, "check.toml");
26
- if (fs.existsSync(rootConfig)) {
27
- return rootConfig;
28
- }
29
- return null;
26
+ return fs.existsSync(rootConfig) ? rootConfig : null;
30
27
  }
31
28
  /**
32
- * Load and parse check.toml configuration
29
+ * Resolve and validate config file path
33
30
  */
34
- export function loadConfig(configPath) {
35
- // Find config file if not specified
36
- const resolvedPath = configPath ?? findConfigFile();
37
- if (!resolvedPath) {
31
+ function resolveConfigPath(configPath) {
32
+ const resolved = configPath ?? findConfigFile();
33
+ if (!resolved) {
38
34
  throw new ConfigError("No check.toml found. Run 'cm init' to create one or specify --config path.");
39
35
  }
40
- if (!fs.existsSync(resolvedPath)) {
41
- throw new ConfigError(`Config file not found: ${resolvedPath}`);
36
+ if (!fs.existsSync(resolved)) {
37
+ throw new ConfigError(`Config file not found: ${resolved}`);
42
38
  }
43
- // Read and parse TOML
44
- let rawConfig;
39
+ return resolved;
40
+ }
41
+ /**
42
+ * Parse TOML file content
43
+ */
44
+ function parseTomlFile(filePath) {
45
45
  try {
46
- const content = fs.readFileSync(resolvedPath, "utf-8");
47
- rawConfig = TOML.parse(content);
46
+ const content = fs.readFileSync(filePath, "utf-8");
47
+ return TOML.parse(content);
48
48
  }
49
49
  catch (error) {
50
- if (error instanceof Error) {
51
- throw new ConfigError(`Failed to parse check.toml: ${error.message}`);
52
- }
53
- throw new ConfigError("Failed to parse check.toml");
50
+ const message = error instanceof Error ? error.message : "Unknown error";
51
+ throw new ConfigError(`Failed to parse check.toml: ${message}`);
54
52
  }
55
- // Validate with Zod
53
+ }
54
+ /**
55
+ * Validate config against schema
56
+ */
57
+ function validateConfig(rawConfig) {
56
58
  const result = configSchema.safeParse(rawConfig);
57
59
  if (!result.success) {
58
- const errors = result.error.errors
59
- .map((e) => ` - ${e.path.join(".")}: ${e.message}`)
60
- .join("\n");
60
+ const errors = result.error.errors.map((e) => ` - ${e.path.join(".")}: ${e.message}`).join("\n");
61
61
  throw new ConfigError(`Invalid check.toml configuration:\n${errors}`);
62
62
  }
63
- // Merge with defaults
64
- const config = mergeWithDefaults(result.data);
63
+ return result.data;
64
+ }
65
+ /**
66
+ * Load and parse check.toml configuration
67
+ */
68
+ export function loadConfig(configPath) {
69
+ const resolvedPath = resolveConfigPath(configPath);
70
+ const rawConfig = parseTomlFile(resolvedPath);
71
+ const validatedConfig = validateConfig(rawConfig);
72
+ const config = mergeWithDefaults(validatedConfig);
73
+ return { config, configPath: resolvedPath };
74
+ }
75
+ /** Merge two optional objects, with right side taking precedence */
76
+ function merge(a, b) {
77
+ return { ...a, ...b };
78
+ }
79
+ /** Get array value with fallback */
80
+ function arr(a, b) {
81
+ return a ?? b ?? [];
82
+ }
83
+ function mergeLinting(c, dc) {
84
+ const cl = c.code?.linting;
85
+ const dl = dc.code?.linting;
86
+ return { eslint: merge(dl?.eslint, cl?.eslint), ruff: merge(dl?.ruff, cl?.ruff) };
87
+ }
88
+ function mergeFiles(c, dc) {
89
+ const cf = c.code?.files;
90
+ const df = dc.code?.files;
91
+ return { repo: arr(cf?.repo, df?.repo), tooling: arr(cf?.tooling, df?.tooling), docs: arr(cf?.docs, df?.docs) };
92
+ }
93
+ function mergeCode(c, dc) {
94
+ return {
95
+ linting: mergeLinting(c, dc),
96
+ types: { tsc: merge(dc.code?.types?.tsc, c.code?.types?.tsc) },
97
+ complexity: merge(dc.code?.complexity, c.code?.complexity),
98
+ files: mergeFiles(c, dc),
99
+ };
100
+ }
101
+ function mergeProcess(c, dc) {
65
102
  return {
66
- config,
67
- configPath: resolvedPath,
103
+ pr: merge(dc.process?.pr, c.process?.pr),
104
+ branches: merge(dc.process?.branches, c.process?.branches),
105
+ tickets: merge(dc.process?.tickets, c.process?.tickets),
68
106
  };
69
107
  }
70
108
  /**
@@ -72,41 +110,9 @@ export function loadConfig(configPath) {
72
110
  */
73
111
  function mergeWithDefaults(config) {
74
112
  return {
75
- code: {
76
- linting: {
77
- eslint: {
78
- enabled: config.code?.linting?.eslint?.enabled ?? defaultConfig.code?.linting?.eslint?.enabled ?? false,
79
- rules: config.code?.linting?.eslint?.rules,
80
- },
81
- ruff: {
82
- enabled: config.code?.linting?.ruff?.enabled ?? defaultConfig.code?.linting?.ruff?.enabled ?? false,
83
- "line-length": config.code?.linting?.ruff?.["line-length"],
84
- lint: config.code?.linting?.ruff?.lint,
85
- },
86
- },
87
- types: {
88
- tsc: {
89
- enabled: config.code?.types?.tsc?.enabled ?? defaultConfig.code?.types?.tsc?.enabled ?? false,
90
- strict: config.code?.types?.tsc?.strict,
91
- noImplicitAny: config.code?.types?.tsc?.noImplicitAny,
92
- strictNullChecks: config.code?.types?.tsc?.strictNullChecks,
93
- },
94
- },
95
- complexity: config.code?.complexity ?? defaultConfig.code?.complexity ?? {},
96
- files: {
97
- repo: config.code?.files?.repo ?? defaultConfig.code?.files?.repo ?? [],
98
- tooling: config.code?.files?.tooling ?? defaultConfig.code?.files?.tooling ?? [],
99
- docs: config.code?.files?.docs ?? defaultConfig.code?.files?.docs ?? [],
100
- },
101
- },
102
- process: {
103
- pr: config.process?.pr ?? defaultConfig.process?.pr ?? {},
104
- branches: config.process?.branches ?? defaultConfig.process?.branches ?? {},
105
- tickets: config.process?.tickets ?? defaultConfig.process?.tickets ?? {},
106
- },
107
- stack: {
108
- tools: config.stack?.tools ?? defaultConfig.stack?.tools ?? {},
109
- },
113
+ code: mergeCode(config, defaultConfig),
114
+ process: mergeProcess(config, defaultConfig),
115
+ stack: { tools: merge(defaultConfig.stack?.tools, config.stack?.tools) },
110
116
  };
111
117
  }
112
118
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}