code-auditor-mcp 4.0.4 → 4.1.0
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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +96 -0
- package/README.md +5 -5
- package/configs/hhra-compat.json +2 -2
- package/dist/analyzers/applicability.d.ts +25 -2
- package/dist/analyzers/applicability.d.ts.map +1 -1
- package/dist/analyzers/applicability.js +44 -50
- package/dist/analyzers/applicability.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +18 -49
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.js +22 -240
- package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts +2 -14
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +0 -104
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/orgFilterTiers.d.ts +89 -0
- package/dist/analyzers/orgFilterTiers.d.ts.map +1 -0
- package/dist/analyzers/orgFilterTiers.js +96 -0
- package/dist/analyzers/orgFilterTiers.js.map +1 -0
- package/dist/analyzers/ruleRegistry.d.ts +15 -0
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +139 -185
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +39 -0
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +62 -41
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +2 -2
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +2 -2
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts +86 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.js +606 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.js.map +1 -0
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts +14 -0
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js +35 -18
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
- package/dist/analyzers/universal/schema/migrations.d.ts +14 -1
- package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/migrations.js +58 -14
- package/dist/analyzers/universal/schema/migrations.js.map +1 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +70 -13
- package/dist/auditRunner.js.map +1 -1
- package/dist/churn/churnExtractor.js +5 -5
- package/dist/churn/churnExtractor.js.map +1 -1
- package/dist/cli.js +21 -9
- package/dist/cli.js.map +1 -1
- package/dist/codeIndexDB.d.ts +6 -0
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +33 -1
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/config/configGeneratePath.d.ts +19 -0
- package/dist/config/configGeneratePath.d.ts.map +1 -0
- package/dist/config/configGeneratePath.js +29 -0
- package/dist/config/configGeneratePath.js.map +1 -0
- package/dist/config/configLoader.d.ts +36 -4
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +136 -15
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/lintConfigReader.d.ts +4 -0
- package/dist/config/lintConfigReader.d.ts.map +1 -1
- package/dist/config/lintConfigReader.js +35 -36
- package/dist/config/lintConfigReader.js.map +1 -1
- package/dist/config/staticObjectExtract.d.ts +35 -0
- package/dist/config/staticObjectExtract.d.ts.map +1 -0
- package/dist/config/staticObjectExtract.js +312 -0
- package/dist/config/staticObjectExtract.js.map +1 -0
- package/dist/constants.d.ts +1 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -2
- package/dist/constants.js.map +1 -1
- package/dist/daemon/core.js +1 -1
- package/dist/daemon/core.js.map +1 -1
- package/dist/daemon/main.js +1 -1
- package/dist/daemon/main.js.map +1 -1
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +11 -2
- package/dist/dataPaths.js.map +1 -1
- package/dist/generators/BaseConfigGenerator.d.ts +0 -4
- package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
- package/dist/generators/BaseConfigGenerator.js +1 -7
- package/dist/generators/BaseConfigGenerator.js.map +1 -1
- package/dist/installConfig.d.ts +3 -1
- package/dist/installConfig.d.ts.map +1 -1
- package/dist/installConfig.js +15 -2
- package/dist/installConfig.js.map +1 -1
- package/dist/installer.d.ts +10 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +14 -2
- package/dist/installer.js.map +1 -1
- package/dist/languages/LanguageOrchestrator.js +6 -6
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/RuntimeManager.js +13 -10
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +7 -2
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.d.ts +5 -1
- package/dist/mcp-ui-simple.d.ts.map +1 -1
- package/dist/mcp-ui-simple.js +81 -29
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.js +19 -4
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +1 -0
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/nextFileIncremental.js +1 -1
- package/dist/nextFileIncremental.js.map +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +13 -2
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +15 -0
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +140 -6
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.js +2 -2
- package/dist/reporting/htmlReportGenerator.js.map +1 -1
- package/dist/ruleAliases.d.ts.map +1 -1
- package/dist/ruleAliases.js +45 -0
- package/dist/ruleAliases.js.map +1 -1
- package/dist/styles/tailwindConfigLoader.d.ts +4 -0
- package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
- package/dist/styles/tailwindConfigLoader.js +54 -36
- package/dist/styles/tailwindConfigLoader.js.map +1 -1
- package/dist/types.d.ts +55 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/examples/.auditrc.example.json +2 -2
- package/examples/.auditrc.json +3 -3
- package/examples/nextjs.auditrc.json +1 -1
- package/examples/node-api.auditrc.json +1 -1
- package/examples/react.auditrc.json +2 -2
- package/examples/tolerant-solid.auditrc.json +1 -1
- package/package.json +2 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/scripts/hook-common.sh +27 -27
- package/plugin/skills/code-auditor/SKILL.md +1 -1
- package/server.json +2 -2
|
@@ -2,10 +2,118 @@
|
|
|
2
2
|
* Configuration Loader (Functional)
|
|
3
3
|
* Handles loading and merging configuration from multiple sources
|
|
4
4
|
*/
|
|
5
|
-
import { promises as fs } from 'fs';
|
|
5
|
+
import { promises as fs, realpathSync } from 'fs';
|
|
6
6
|
import path from 'path';
|
|
7
|
+
import { PROJECT_FILE_CONFIG_KEYS } from '../types.js';
|
|
7
8
|
import { getDefaultConfig, DEFAULT_CODE_INDEX_CONFIG, mergePathProfiles } from './defaults.js';
|
|
8
|
-
import {
|
|
9
|
+
import { RUNNABLE_ANALYZERS } from '../analyzers/ruleRegistry.js';
|
|
10
|
+
/** Realpath that falls back to `path.resolve` when the path does not exist
|
|
11
|
+
* (globs, not-yet-created output dirs). */
|
|
12
|
+
function realpathIfExists(p) {
|
|
13
|
+
try {
|
|
14
|
+
return realpathSync.native(p);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return path.resolve(p);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Realpath the deepest *existing ancestor* of `p`, rejoining the non-existent
|
|
22
|
+
* (glob) suffix. A containment check must compare the candidate against the
|
|
23
|
+
* realpath'd project root on the same canonical basis: `path.resolve` alone
|
|
24
|
+
* leaves `/var` (symlinked to `/private/var` on macOS) unresolved, so a glob
|
|
25
|
+
* like `src/**` would otherwise be misread as outside the root. Realpathing the
|
|
26
|
+
* existing prefix still resolves any symlink in the path, so a symlink pointing
|
|
27
|
+
* out of the tree is caught.
|
|
28
|
+
*/
|
|
29
|
+
function realpathExistingAncestor(p) {
|
|
30
|
+
let cur = p;
|
|
31
|
+
const suffix = [];
|
|
32
|
+
for (;;) {
|
|
33
|
+
try {
|
|
34
|
+
const real = realpathSync.native(cur);
|
|
35
|
+
return suffix.length === 0 ? real : path.join(real, ...suffix.reverse());
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
const parent = path.dirname(cur);
|
|
39
|
+
if (parent === cur)
|
|
40
|
+
return path.resolve(p); // nothing above exists
|
|
41
|
+
suffix.push(path.basename(cur));
|
|
42
|
+
cur = parent;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** True when `candidate` is `projectRootReal` or beneath it. Comparison is on
|
|
47
|
+
* resolved real paths, so a symlink pointing out of the tree is caught. */
|
|
48
|
+
function isWithinProjectRoot(candidate, projectRootReal) {
|
|
49
|
+
return candidate === projectRootReal || candidate.startsWith(projectRootReal + path.sep);
|
|
50
|
+
}
|
|
51
|
+
function safeStringify(value) {
|
|
52
|
+
try {
|
|
53
|
+
const s = JSON.stringify(value);
|
|
54
|
+
return s === undefined ? String(value) : s;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return String(value);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Spec 61 R1.2 — strip every key not in `PROJECT_FILE_CONFIG_KEYS` and contain
|
|
62
|
+
* path-valued keys to the project root. `raw` is the untrusted `JSON.parse`
|
|
63
|
+
* result of a `.codeauditor.json` found inside the project being audited.
|
|
64
|
+
*
|
|
65
|
+
* `scope` is the canonical example of what this drops: it was never declared on
|
|
66
|
+
* `AuditConfig`, reached `execSync(\`git diff --name-only ${ref}\`)` only
|
|
67
|
+
* because `mergeConfig` iterated raw JSON keys, and is absent from
|
|
68
|
+
* `PROJECT_FILE_CONFIG_KEYS`.
|
|
69
|
+
*/
|
|
70
|
+
export function sanitizeProjectFileConfig(raw, configPath, projectRoot) {
|
|
71
|
+
const rejected = [];
|
|
72
|
+
if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
73
|
+
return { config: {}, rejected };
|
|
74
|
+
}
|
|
75
|
+
const configDir = path.dirname(configPath);
|
|
76
|
+
const projectRootReal = realpathIfExists(projectRoot);
|
|
77
|
+
const config = {};
|
|
78
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
79
|
+
if (!PROJECT_FILE_CONFIG_KEYS.includes(key)) {
|
|
80
|
+
rejected.push({ key, value: safeStringify(value), reason: 'unknown-key' });
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (value === undefined)
|
|
84
|
+
continue;
|
|
85
|
+
if (key === 'includePaths' || key === 'excludePaths') {
|
|
86
|
+
if (!Array.isArray(value))
|
|
87
|
+
continue;
|
|
88
|
+
const kept = [];
|
|
89
|
+
for (const entry of value) {
|
|
90
|
+
if (typeof entry !== 'string')
|
|
91
|
+
continue;
|
|
92
|
+
const resolved = path.resolve(configDir, entry);
|
|
93
|
+
if (!isWithinProjectRoot(realpathExistingAncestor(resolved), projectRootReal)) {
|
|
94
|
+
rejected.push({ key, value: entry, reason: 'outside-project-root' });
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
kept.push(resolved);
|
|
98
|
+
}
|
|
99
|
+
config[key] = kept;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (key === 'outputDir' || key === 'outputDirectory') {
|
|
103
|
+
if (typeof value !== 'string')
|
|
104
|
+
continue;
|
|
105
|
+
const resolved = path.resolve(configDir, value);
|
|
106
|
+
if (!isWithinProjectRoot(realpathExistingAncestor(resolved), projectRootReal)) {
|
|
107
|
+
rejected.push({ key, value, reason: 'outside-project-root' });
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
config[key] = resolved;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
config[key] = value;
|
|
114
|
+
}
|
|
115
|
+
return { config, rejected };
|
|
116
|
+
}
|
|
9
117
|
/**
|
|
10
118
|
* Load configuration from multiple sources
|
|
11
119
|
*/
|
|
@@ -14,25 +122,36 @@ export async function loadConfig(options) {
|
|
|
14
122
|
let config = getDefaultConfig();
|
|
15
123
|
// Add code index defaults
|
|
16
124
|
config.codeIndex = DEFAULT_CODE_INDEX_CONFIG;
|
|
125
|
+
// Rejected file-sourced keys, surfaced to the CLI (Spec 61 R1.4).
|
|
126
|
+
let rejected = [];
|
|
17
127
|
// Load from config file if specified
|
|
18
|
-
if (options
|
|
19
|
-
|
|
128
|
+
if (options.configPath) {
|
|
129
|
+
const loaded = await loadFromFile(config, options.configPath, options.projectRoot);
|
|
130
|
+
config = loaded.config;
|
|
131
|
+
rejected = loaded.rejected;
|
|
20
132
|
}
|
|
21
133
|
// Load from environment variables
|
|
22
|
-
if (options
|
|
134
|
+
if (options.environmentPrefix) {
|
|
23
135
|
config = loadFromEnvironment(config, options.environmentPrefix);
|
|
24
136
|
}
|
|
25
137
|
// Apply CLI arguments (highest priority)
|
|
26
|
-
if (options
|
|
138
|
+
if (options.cliArgs) {
|
|
27
139
|
config = { ...config, ...options.cliArgs };
|
|
28
140
|
}
|
|
29
141
|
// Normalize paths — resolve relative paths against the config file's directory
|
|
30
142
|
// (or cwd when loading defaults only, which is the CLI's typical invocation)
|
|
31
|
-
const baseDir = options
|
|
143
|
+
const baseDir = options.configPath ? path.dirname(options.configPath) : undefined;
|
|
32
144
|
config = normalizePaths(config, baseDir);
|
|
33
145
|
// Merge built-in path profiles with user-configured profiles (Spec-20)
|
|
34
146
|
config.pathProfiles = mergePathProfiles(config.pathProfiles, config.builtin);
|
|
35
|
-
|
|
147
|
+
// Spec 61 R1.5 — validateConfig was exported and never called in the run
|
|
148
|
+
// path; a bad config failed the audit only if a downstream reader noticed.
|
|
149
|
+
// Fail loudly here instead of silently skipping a misconfigured rule.
|
|
150
|
+
const errors = validateConfig(config);
|
|
151
|
+
if (errors.length > 0) {
|
|
152
|
+
throw new Error(`Invalid configuration:\n${errors.map((e) => ` - ${e}`).join('\n')}`);
|
|
153
|
+
}
|
|
154
|
+
return { config, rejected };
|
|
36
155
|
}
|
|
37
156
|
/**
|
|
38
157
|
* Find the nearest `.codeauditor.json` by walking up from `startDir` to the
|
|
@@ -62,15 +181,16 @@ export async function findConfigFileUp(startDir) {
|
|
|
62
181
|
/**
|
|
63
182
|
* Load configuration from a JSON file
|
|
64
183
|
*/
|
|
65
|
-
async function loadFromFile(baseConfig, configPath) {
|
|
184
|
+
async function loadFromFile(baseConfig, configPath, projectRoot) {
|
|
66
185
|
try {
|
|
67
186
|
const content = await fs.readFile(configPath, 'utf-8');
|
|
68
187
|
const fileConfig = JSON.parse(content);
|
|
69
|
-
|
|
188
|
+
const { config: sanitized, rejected } = sanitizeProjectFileConfig(fileConfig, configPath, projectRoot);
|
|
189
|
+
return { config: mergeConfig(baseConfig, sanitized), rejected };
|
|
70
190
|
}
|
|
71
191
|
catch (error) {
|
|
72
192
|
console.warn(`Failed to load config from ${configPath}:`, error);
|
|
73
|
-
return baseConfig;
|
|
193
|
+
return { config: baseConfig, rejected: [] };
|
|
74
194
|
}
|
|
75
195
|
}
|
|
76
196
|
/**
|
|
@@ -161,10 +281,11 @@ export function validateConfig(config) {
|
|
|
161
281
|
if (config.minSeverity && !['critical', 'severe', 'high'].includes(config.minSeverity)) {
|
|
162
282
|
errors.push(`Invalid severity: ${config.minSeverity}`);
|
|
163
283
|
}
|
|
164
|
-
// Validate analyzers against the canonical
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
|
|
284
|
+
// Validate analyzers against the canonical runnable set (registry rule
|
|
285
|
+
// emitters plus pipeline-only analyzers like `invariants`), so a user naming
|
|
286
|
+
// any analyzer the pipeline can actually run is never rejected for an analyzer
|
|
287
|
+
// that is valid but was missing from a hand-typed list.
|
|
288
|
+
const validAnalyzers = RUNNABLE_ANALYZERS;
|
|
168
289
|
if (config.enabledAnalyzers) {
|
|
169
290
|
const invalid = config.enabledAnalyzers.filter(a => !validAnalyzers.includes(a));
|
|
170
291
|
if (invalid.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configLoader.js","sourceRoot":"","sources":["../../src/config/configLoader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"configLoader.js","sourceRoot":"","sources":["../../src/config/configLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* Precedence (highest wins), enforced upstream in `auditRunner.ts`:
|
|
26
26
|
* `.codeauditor.json` (`analyzerConfigs`) > project lint config > presets > defaults
|
|
27
27
|
*/
|
|
28
|
+
import type { CoverageDiagnostic } from '../types.js';
|
|
28
29
|
export interface LintThresholdResult {
|
|
29
30
|
/** Absolute path to the config file that supplied thresholds, or null. */
|
|
30
31
|
configPath: string | null;
|
|
@@ -39,6 +40,9 @@ export interface LintThresholdResult {
|
|
|
39
40
|
}>;
|
|
40
41
|
/** The raw rules object, for transparency in coverage output. */
|
|
41
42
|
rawRules: Record<string, unknown>;
|
|
43
|
+
/** When the config exists but could not be read statically (Spec 61 R3.2),
|
|
44
|
+
* a `cannot-fire` coverage diagnostic naming the file and the reason. */
|
|
45
|
+
diagnostic?: CoverageDiagnostic;
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
48
|
* Read the project's own lint-config size thresholds.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lintConfigReader.d.ts","sourceRoot":"","sources":["../../src/config/lintConfigReader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"lintConfigReader.d.ts","sourceRoot":"","sources":["../../src/config/lintConfigReader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOtD,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+EAA+E;IAC/E,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;IACrC,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,4DAA4D;IAC5D,kBAAkB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;8EAC0E;IAC1E,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAkCD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAkDrC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASxC"}
|
|
@@ -27,8 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import { existsSync, readFileSync } from 'node:fs';
|
|
29
29
|
import { extname, join } from 'node:path';
|
|
30
|
-
import {
|
|
31
|
-
import { pathToFileURL } from 'node:url';
|
|
30
|
+
import { extractModuleExport } from './staticObjectExtract.js';
|
|
32
31
|
/** ESLint rule → dot-notation code-auditor threshold key. */
|
|
33
32
|
const ESLINT_RULE_TO_THRESHOLD = {
|
|
34
33
|
'max-lines-per-function': 'solid.maxLinesPerMethod',
|
|
@@ -68,12 +67,15 @@ export async function readProjectLintThresholds(projectRoot) {
|
|
|
68
67
|
if (!configPath)
|
|
69
68
|
return null;
|
|
70
69
|
let loaded;
|
|
70
|
+
let diagnostic;
|
|
71
71
|
try {
|
|
72
|
-
|
|
72
|
+
const result = await loadConfigModule(configPath, projectRoot);
|
|
73
|
+
loaded = result.value;
|
|
74
|
+
diagnostic = result.diagnostic;
|
|
73
75
|
}
|
|
74
76
|
catch {
|
|
75
|
-
// Fail-open: an
|
|
76
|
-
//
|
|
77
|
+
// Fail-open: an unreadable config (e.g. the file was deleted between
|
|
78
|
+
// discovery and read) is treated as absent.
|
|
77
79
|
return null;
|
|
78
80
|
}
|
|
79
81
|
const rawRules = extractRules(loaded);
|
|
@@ -84,6 +86,7 @@ export async function readProjectLintThresholds(projectRoot) {
|
|
|
84
86
|
thresholds: {},
|
|
85
87
|
recognizedUnmapped: [],
|
|
86
88
|
rawRules: {},
|
|
89
|
+
...(diagnostic ? { diagnostic } : {}),
|
|
87
90
|
};
|
|
88
91
|
}
|
|
89
92
|
const thresholds = {};
|
|
@@ -106,6 +109,7 @@ export async function readProjectLintThresholds(projectRoot) {
|
|
|
106
109
|
thresholds,
|
|
107
110
|
recognizedUnmapped,
|
|
108
111
|
rawRules,
|
|
112
|
+
...(diagnostic ? { diagnostic } : {}),
|
|
109
113
|
};
|
|
110
114
|
}
|
|
111
115
|
/**
|
|
@@ -147,47 +151,42 @@ function configKind(configPath) {
|
|
|
147
151
|
// Loading
|
|
148
152
|
// ---------------------------------------------------------------------------
|
|
149
153
|
/**
|
|
150
|
-
* Load a lint config
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
+
* Load a lint config from disk **without executing it** (Spec 61 R3.2).
|
|
155
|
+
*
|
|
156
|
+
* A config file inside a cloned repository is data, not code. JSON is parsed;
|
|
157
|
+
* `.js` / `.cjs` / `.mjs` / `.ts` are reduced to a plain value by
|
|
158
|
+
* `extractModuleExport` — never `require()`d, never `import()`ed, never invoked
|
|
159
|
+
* as a factory. A config whose export is not a literal (a call, a computed key,
|
|
160
|
+
* an imported spread, a template substitution) yields `{ value: null,
|
|
161
|
+
* diagnostic }` naming the file and the reason; the caller surfaces that as a
|
|
162
|
+
* `cannot-fire` coverage diagnostic rather than silently reading "absent".
|
|
154
163
|
*/
|
|
155
164
|
async function loadConfigModule(configPath, projectRoot) {
|
|
156
165
|
const ext = extname(configPath);
|
|
157
166
|
if (ext === '.json') {
|
|
158
|
-
return JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
167
|
+
return { value: JSON.parse(readFileSync(configPath, 'utf-8')) };
|
|
159
168
|
}
|
|
160
169
|
if (ext === '.yaml' || ext === '.yml') {
|
|
161
170
|
// No YAML dependency is bundled; a legacy .eslintrc.yaml is rare and
|
|
162
171
|
// fails open here rather than pulling a parser.
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
// .cjs is always CommonJS; .mjs is always ESM.
|
|
166
|
-
if (ext === '.cjs') {
|
|
167
|
-
return createRequire(join(projectRoot, 'package.json'))(configPath);
|
|
168
|
-
}
|
|
169
|
-
let loaded;
|
|
170
|
-
if (ext === '.mjs' || readPackageType(projectRoot) === 'module') {
|
|
171
|
-
const mod = await import(pathToFileURL(configPath).href);
|
|
172
|
-
loaded = mod.default ?? mod;
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
loaded = createRequire(join(projectRoot, 'package.json'))(configPath);
|
|
176
|
-
}
|
|
177
|
-
// Some flat configs export a factory function that returns the array.
|
|
178
|
-
if (typeof loaded === 'function') {
|
|
179
|
-
loaded = await loaded();
|
|
172
|
+
return { value: null };
|
|
180
173
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
174
|
+
const sourceText = readFileSync(configPath, 'utf-8');
|
|
175
|
+
const extracted = extractModuleExport(configPath, sourceText);
|
|
176
|
+
if (!extracted.resolved) {
|
|
177
|
+
return {
|
|
178
|
+
value: null,
|
|
179
|
+
diagnostic: {
|
|
180
|
+
analyzerName: 'config',
|
|
181
|
+
kind: 'cannot-fire',
|
|
182
|
+
message: `Config ${configPath} could not be read statically: ${extracted.reason}`,
|
|
183
|
+
file: configPath,
|
|
184
|
+
line: extracted.node?.line ?? 0,
|
|
185
|
+
details: { reason: extracted.reason },
|
|
186
|
+
},
|
|
187
|
+
};
|
|
190
188
|
}
|
|
189
|
+
return { value: extracted.value };
|
|
191
190
|
}
|
|
192
191
|
// ---------------------------------------------------------------------------
|
|
193
192
|
// Rule extraction + value parsing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lintConfigReader.js","sourceRoot":"","sources":["../../src/config/lintConfigReader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"lintConfigReader.js","sourceRoot":"","sources":["../../src/config/lintConfigReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static config extraction (Spec 61 R3.1).
|
|
3
|
+
*
|
|
4
|
+
* Reads a project-supplied JS/TS config and evaluates only its literal export —
|
|
5
|
+
* without `require()`, `import()`, `createRequire(...)()` or a factory
|
|
6
|
+
* invocation. A config file inside a cloned repository is data, not code; the
|
|
7
|
+
* tool must be able to read it without executing the untrusted module.
|
|
8
|
+
*
|
|
9
|
+
* The extractor never runs the file. It parses it with tree-sitter and reduces
|
|
10
|
+
* the export expression to a plain value. Anything it cannot prove is a literal
|
|
11
|
+
* (a call, a computed key, an imported spread, a template substitution) is an
|
|
12
|
+
* unresolved result — a first-class value, not an exception — that the caller
|
|
13
|
+
* surfaces as a `cannot-fire` coverage diagnostic.
|
|
14
|
+
*/
|
|
15
|
+
export type StaticExtractResult = {
|
|
16
|
+
resolved: true;
|
|
17
|
+
value: unknown;
|
|
18
|
+
} | {
|
|
19
|
+
resolved: false;
|
|
20
|
+
reason: string;
|
|
21
|
+
node?: {
|
|
22
|
+
line: number;
|
|
23
|
+
column: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Extract the module export of `filePath` as a static value.
|
|
28
|
+
*
|
|
29
|
+
* Returns `{ resolved: true, value }` when the export reduces to a literal, or
|
|
30
|
+
* `{ resolved: false, reason, node? }` naming why it could not. Reasons are the
|
|
31
|
+
* spec's vocabulary: `call-expression`, `imported-spread`, `computed-key`,
|
|
32
|
+
* `function-value`, `template-substitution`, `dynamic-export`, `parse-error`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function extractModuleExport(filePath: string, sourceText: string): StaticExtractResult;
|
|
35
|
+
//# sourceMappingURL=staticObjectExtract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staticObjectExtract.d.ts","sourceRoot":"","sources":["../../src/config/staticObjectExtract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAejF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,mBAAmB,CA4B7F"}
|