code-auditor-mcp 3.9.11 → 4.0.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 +200 -0
- package/dist/analyzers/analyzerUtils.js +2 -2
- package/dist/analyzers/analyzerUtils.js.map +1 -1
- package/dist/analyzers/applicability.d.ts.map +1 -1
- package/dist/analyzers/applicability.js +1 -0
- package/dist/analyzers/applicability.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +3 -3
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +2 -2
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +39 -15
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +14 -16
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.js +30 -25
- package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +34 -116
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/ruleRegistry.d.ts +5 -3
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +198 -54
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +2 -2
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +10 -17
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +6 -6
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +13 -13
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +22 -64
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +3 -2
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +14 -13
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +11 -11
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +18 -7
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -2
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +38 -26
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts +37 -13
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js +42 -54
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.js +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
- package/dist/analyzers/universal/schema/violations.d.ts +1 -1
- package/dist/analyzers/universal/schema/violations.d.ts.map +1 -1
- package/dist/auditRouter.js +7 -7
- package/dist/auditRouter.js.map +1 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +36 -6
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.js +23 -17
- package/dist/cli.js.map +1 -1
- package/dist/codeIndexDB.d.ts +1 -1
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +148 -18
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +89 -28
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/configLoader.js +1 -1
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.js +3 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.js +3 -10
- package/dist/conventions/conventionMiner.js.map +1 -1
- package/dist/daemon/core.d.ts.map +1 -1
- package/dist/daemon/core.js +33 -38
- package/dist/daemon/core.js.map +1 -1
- package/dist/daemon/lspServer.js +1 -1
- package/dist/daemon/lspServer.js.map +1 -1
- package/dist/daemon/main.d.ts.map +1 -1
- package/dist/daemon/main.js +14 -4
- package/dist/daemon/main.js.map +1 -1
- package/dist/enforcement/gate.js +2 -2
- package/dist/functionScanner.d.ts.map +1 -1
- package/dist/functionScanner.js +47 -42
- package/dist/functionScanner.js.map +1 -1
- package/dist/graph/importClassification.d.ts +76 -0
- package/dist/graph/importClassification.d.ts.map +1 -0
- package/dist/graph/importClassification.js +221 -0
- package/dist/graph/importClassification.js.map +1 -0
- package/dist/graph/importGraph.d.ts +1 -0
- package/dist/graph/importGraph.d.ts.map +1 -1
- package/dist/graph/importGraph.js +1 -1
- package/dist/graph/importGraph.js.map +1 -1
- package/dist/hooks/codex.d.ts.map +1 -1
- package/dist/hooks/codex.js +1 -1
- package/dist/hooks/codex.js.map +1 -1
- package/dist/hooks/core.d.ts +1 -1
- package/dist/hooks/core.d.ts.map +1 -1
- package/dist/hooks/core.js +4 -4
- package/dist/hooks/core.js.map +1 -1
- package/dist/hooks/cursor.d.ts.map +1 -1
- package/dist/hooks/cursor.js +2 -2
- package/dist/hooks/cursor.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installer.d.ts +20 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +58 -0
- package/dist/installer.js.map +1 -1
- package/dist/invariants/invariant-rules.schema.json +1 -1
- package/dist/invariants/ruleValidator.js +1 -1
- package/dist/invariants/ruleValidator.js.map +1 -1
- package/dist/invariants/types.d.ts +1 -1
- package/dist/invariants/types.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.d.ts +3 -2
- package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.js +1 -1
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/RuntimeManager.d.ts +20 -11
- package/dist/languages/RuntimeManager.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.js +151 -51
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +10 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -1
- package/dist/languages/adapterBridge.js +30 -7
- package/dist/languages/adapterBridge.js.map +1 -1
- package/dist/languages/go/GoAdapter.d.ts +1 -19
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +33 -116
- package/dist/languages/go/GoAdapter.js.map +1 -1
- package/dist/languages/go/analyzer +0 -0
- package/dist/languages/go/analyzer-src/analyzer.go +8 -8
- package/dist/languages/go/analyzer-src/solid.go +5 -5
- package/dist/languages/goBinary.d.ts +46 -0
- package/dist/languages/goBinary.d.ts.map +1 -0
- package/dist/languages/goBinary.js +169 -0
- package/dist/languages/goBinary.js.map +1 -0
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +1 -28
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +3 -42
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
- package/dist/languages/tree-sitter/converter.d.ts.map +1 -1
- package/dist/languages/tree-sitter/converter.js +2 -1
- package/dist/languages/tree-sitter/converter.js.map +1 -1
- package/dist/languages/tree-sitter/rawNode.d.ts +31 -0
- package/dist/languages/tree-sitter/rawNode.d.ts.map +1 -0
- package/dist/languages/tree-sitter/rawNode.js +38 -0
- package/dist/languages/tree-sitter/rawNode.js.map +1 -0
- package/dist/languages/types.d.ts +0 -21
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +1 -32
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +69 -203
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/ledger.d.ts +3 -0
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +45 -9
- package/dist/ledger.js.map +1 -1
- package/dist/mcp-tools/projectTasks.js +2 -2
- package/dist/mcp-tools/projectTasks.js.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +3 -3
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp-tools-shared.js +13 -13
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.js +7 -7
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.js +14 -14
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.js +7 -7
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpAutoIndex.js +1 -1
- package/dist/mcpAutoIndex.js.map +1 -1
- package/dist/nextFile.d.ts +2 -2
- package/dist/nextFile.d.ts.map +1 -1
- package/dist/nextFile.js +19 -5
- package/dist/nextFile.js.map +1 -1
- package/dist/nextFileIncremental.d.ts +3 -2
- package/dist/nextFileIncremental.d.ts.map +1 -1
- package/dist/nextFileIncremental.js +20 -7
- package/dist/nextFileIncremental.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +17 -0
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +279 -178
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/reporting/csvReportGenerator.js +6 -6
- package/dist/reporting/csvReportGenerator.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.js +11 -11
- package/dist/reporting/htmlReportGenerator.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +2 -2
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +1 -1
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/scripts/benchmarkWorkers.js +1 -1
- package/dist/scripts/benchmarkWorkers.js.map +1 -1
- package/dist/styles/cssAstExtractor.d.ts +2 -2
- package/dist/styles/cssAstExtractor.d.ts.map +1 -1
- package/dist/styles/cssAstExtractor.js +67 -111
- package/dist/styles/cssAstExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +19 -6
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/telemetry.d.ts +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/types/crossLanguage.d.ts +1 -1
- package/dist/types/crossLanguage.d.ts.map +1 -1
- package/dist/types.d.ts +59 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -5
- package/dist/types.js.map +1 -1
- package/dist/utils/astParser.d.ts +1 -17
- package/dist/utils/astParser.d.ts.map +1 -1
- package/dist/utils/astParser.js +18 -60
- package/dist/utils/astParser.js.map +1 -1
- package/dist/utils/astUtils.d.ts +12 -12
- package/dist/utils/astUtils.d.ts.map +1 -1
- package/dist/utils/astUtils.js +83 -82
- package/dist/utils/astUtils.js.map +1 -1
- package/dist/utils/componentResponsibility.d.ts +8 -8
- package/dist/utils/componentResponsibility.d.ts.map +1 -1
- package/dist/utils/componentResponsibility.js +33 -38
- package/dist/utils/componentResponsibility.js.map +1 -1
- package/dist/utils/dependencyExtractor.d.ts +3 -3
- package/dist/utils/dependencyExtractor.d.ts.map +1 -1
- package/dist/utils/dependencyExtractor.js +26 -30
- package/dist/utils/dependencyExtractor.js.map +1 -1
- package/dist/utils/fileDiscovery.d.ts.map +1 -1
- package/dist/utils/fileDiscovery.js +65 -0
- package/dist/utils/fileDiscovery.js.map +1 -1
- package/dist/utils/jsDocParser.d.ts +6 -6
- package/dist/utils/jsDocParser.d.ts.map +1 -1
- package/dist/utils/jsDocParser.js +18 -21
- package/dist/utils/jsDocParser.js.map +1 -1
- package/dist/utils/reactDetection.d.ts +7 -7
- package/dist/utils/reactDetection.d.ts.map +1 -1
- package/dist/utils/reactDetection.js +42 -49
- package/dist/utils/reactDetection.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.d.ts.map +1 -1
- package/dist/version.generated.js +1 -1
- package/dist/version.generated.js.map +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/README.md +5 -4
- package/plugin/hooks/hooks.json +11 -0
- package/plugin/scripts/hook-common.sh +129 -26
- package/plugin/scripts/hook-warm.sh +44 -0
- package/plugin/skills/code-auditor/SKILL-RULE-KINDS.md +28 -21
- package/plugin/skills/code-auditor/SKILL.md +10 -10
- package/server.json +2 -2
package/dist/utils/astParser.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* ts.SourceFile/ts.Node.
|
|
11
11
|
*/
|
|
12
12
|
import { promises as fs } from 'fs';
|
|
13
|
-
import { parseFile,
|
|
13
|
+
import { parseFile, getNodeText, getNodeName, } from '../languages/adapterBridge.js';
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
15
15
|
// Re-export adapter bridge functions for consumers that already import from here
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
@@ -27,7 +27,7 @@ export async function parseTypeScriptFile(filePath) {
|
|
|
27
27
|
const ast = parseFile(filePath, content);
|
|
28
28
|
if (!ast) {
|
|
29
29
|
return {
|
|
30
|
-
ast: { root: { type: 'program', range: [0, 0], location: { start: { line: 0, column: 0 }, end: { line: 0, column: 0 } }
|
|
30
|
+
ast: { root: { type: 'program', range: [0, 0], location: { start: { line: 0, column: 0 }, end: { line: 0, column: 0 } } }, language: 'typescript', filePath, errors: [] },
|
|
31
31
|
errors: [{ message: `Unsupported file type: ${filePath}` }],
|
|
32
32
|
};
|
|
33
33
|
}
|
|
@@ -43,96 +43,68 @@ export async function parseTypeScriptFile(filePath) {
|
|
|
43
43
|
}
|
|
44
44
|
catch (error) {
|
|
45
45
|
return {
|
|
46
|
-
ast: { root: { type: 'program', range: [0, 0], location: { start: { line: 0, column: 0 }, end: { line: 0, column: 0 } }
|
|
46
|
+
ast: { root: { type: 'program', range: [0, 0], location: { start: { line: 0, column: 0 }, end: { line: 0, column: 0 } } }, language: 'typescript', filePath, errors: [] },
|
|
47
47
|
errors: [{ message: `Failed to read file: ${error}` }],
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
// ---------------------------------------------------------------------------
|
|
52
|
-
// Extract imports
|
|
53
|
-
// ---------------------------------------------------------------------------
|
|
54
|
-
/**
|
|
55
|
-
* Extract import statements from an AST.
|
|
56
|
-
*/
|
|
57
|
-
export function getImports(ast) {
|
|
58
|
-
const results = [];
|
|
59
|
-
const content = getSourceContent(ast);
|
|
60
|
-
if (!content)
|
|
61
|
-
return results;
|
|
62
|
-
const rawImports = extractImports(ast.filePath, content);
|
|
63
|
-
for (const imp of rawImports) {
|
|
64
|
-
results.push({
|
|
65
|
-
moduleSpecifier: imp.moduleSpecifier,
|
|
66
|
-
importedNames: imp.importedNames,
|
|
67
|
-
isDefaultImport: imp.isDefaultImport,
|
|
68
|
-
isNamespaceImport: imp.isNamespaceImport,
|
|
69
|
-
line: imp.line,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
return results;
|
|
73
|
-
}
|
|
74
|
-
// ---------------------------------------------------------------------------
|
|
75
52
|
// Extract exports
|
|
76
53
|
// ---------------------------------------------------------------------------
|
|
77
54
|
/**
|
|
78
55
|
* Extract export statements from an AST.
|
|
79
56
|
*/
|
|
80
|
-
export function getExports(ast) {
|
|
57
|
+
export function getExports(ast, sourceCode) {
|
|
81
58
|
const exports = [];
|
|
82
59
|
// Walk the AST to find exported nodes
|
|
83
60
|
function visit(node) {
|
|
84
|
-
const raw = node.raw;
|
|
85
|
-
if (!raw)
|
|
86
|
-
return;
|
|
87
61
|
// export_statement — covers "export { x }", "export default X", "export const X"
|
|
88
62
|
if (node.type === 'export_statement') {
|
|
89
|
-
for (const child of
|
|
90
|
-
const line = child.
|
|
63
|
+
for (const child of node.children ?? []) {
|
|
64
|
+
const line = child.location?.start?.line ?? 1;
|
|
91
65
|
// export default expr
|
|
92
66
|
if (child.type === 'function_declaration') {
|
|
93
|
-
const name = child.
|
|
67
|
+
const name = child.children?.find((c) => c.type === 'identifier');
|
|
94
68
|
exports.push({
|
|
95
|
-
name: name
|
|
69
|
+
name: name ? getNodeText(name, sourceCode) : 'default',
|
|
96
70
|
type: 'function',
|
|
97
71
|
isDefault: true,
|
|
98
72
|
line,
|
|
99
73
|
});
|
|
100
74
|
}
|
|
101
75
|
else if (child.type === 'class_declaration') {
|
|
102
|
-
const name = child.
|
|
76
|
+
const name = child.children?.find((c) => c.type === 'identifier' || c.type === 'type_identifier');
|
|
103
77
|
exports.push({
|
|
104
|
-
name: name
|
|
78
|
+
name: name ? getNodeText(name, sourceCode) : 'default',
|
|
105
79
|
type: 'class',
|
|
106
80
|
isDefault: true,
|
|
107
81
|
line,
|
|
108
82
|
});
|
|
109
83
|
}
|
|
110
84
|
else if (child.type === 'lexical_declaration') {
|
|
111
|
-
for (const decl of child.
|
|
85
|
+
for (const decl of child.children ?? []) {
|
|
112
86
|
if (decl.type === 'variable_declarator') {
|
|
113
|
-
const name = decl.
|
|
87
|
+
const name = decl.children?.find((c) => c.type === 'identifier');
|
|
114
88
|
if (name) {
|
|
115
|
-
exports.push({ name: name
|
|
89
|
+
exports.push({ name: getNodeText(name, sourceCode), type: 'const', isDefault: false, line });
|
|
116
90
|
}
|
|
117
91
|
}
|
|
118
92
|
}
|
|
119
93
|
}
|
|
120
94
|
else if (child.type === 'export_clause') {
|
|
121
|
-
for (const spec of child.
|
|
95
|
+
for (const spec of child.children ?? []) {
|
|
122
96
|
if (spec.type === 'export_specifier') {
|
|
123
|
-
const name = spec.
|
|
97
|
+
const name = spec.children?.find((c) => c.type === 'identifier');
|
|
124
98
|
if (name) {
|
|
125
|
-
exports.push({ name: name
|
|
99
|
+
exports.push({ name: getNodeText(name, sourceCode), type: 'const', isDefault: false, line: child.location?.start?.line ?? 1 });
|
|
126
100
|
}
|
|
127
101
|
}
|
|
128
102
|
}
|
|
129
103
|
}
|
|
130
104
|
}
|
|
131
105
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
visit(c);
|
|
135
|
-
}
|
|
106
|
+
for (const c of node.children ?? [])
|
|
107
|
+
visit(c);
|
|
136
108
|
}
|
|
137
109
|
visit(ast.root);
|
|
138
110
|
return exports;
|
|
@@ -170,18 +142,4 @@ export function findNodesByKind(ast, kind) {
|
|
|
170
142
|
// ---------------------------------------------------------------------------
|
|
171
143
|
export { isExported } from '../languages/adapterBridge.js';
|
|
172
144
|
export { getNodeName };
|
|
173
|
-
// ---------------------------------------------------------------------------
|
|
174
|
-
// Source content cache
|
|
175
|
-
// ---------------------------------------------------------------------------
|
|
176
|
-
const sourceCache = new WeakMap();
|
|
177
|
-
function getSourceContent(ast) {
|
|
178
|
-
return sourceCache.get(ast);
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Store source content for an AST so getNodeText() can work without passing
|
|
182
|
-
* sourceCode each time.
|
|
183
|
-
*/
|
|
184
|
-
export function setSourceContent(ast, content) {
|
|
185
|
-
sourceCache.set(ast, content);
|
|
186
|
-
}
|
|
187
145
|
//# sourceMappingURL=astParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astParser.js","sourceRoot":"","sources":["../../src/utils/astParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"astParser.js","sourceRoot":"","sources":["../../src/utils/astParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EACL,SAAS,EACT,WAAW,EAKX,WAAW,GACZ,MAAM,+BAA+B,CAAC;AAIvC,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAsBhH,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO;gBACL,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;gBACzK,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,QAAQ,EAAE,EAAE,CAAC;aAC5D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG;YACH,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,iFAAiF;gBACjF,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;gBAC3B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;aAChC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;YACzK,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,wBAAwB,KAAK,EAAE,EAAE,CAAC;SACvD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,UAAkB;IACrD,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,sCAAsC;IACtC,SAAS,KAAK,CAAC,IAAa;QAC1B,iFAAiF;QACjF,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC;gBAE9C,sBAAsB;gBACtB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;oBAClE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;wBACtD,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,IAAI;wBACf,IAAI;qBACL,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;oBAClG,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;wBACtD,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,IAAI;wBACf,IAAI;qBACL,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAChD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;wBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;4BACxC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;4BACjE,IAAI,IAAI,EAAE,CAAC;gCACT,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;4BAC/F,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;wBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;4BACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;4BACjE,IAAI,IAAI,EAAE,CAAC;gCACT,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;4BACjI,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAY,EACZ,IAAY;IAEZ,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,SAAS,IAAI,CAAC,IAAa;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAY,EACZ,IAAY;IAEZ,OAAO,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/utils/astUtils.d.ts
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
* The `ts.SourceFile` parameter has been replaced with `ASTNode` (root node).
|
|
9
9
|
* For source-code-dependent operations, `sourceCode: string` is passed separately.
|
|
10
10
|
*/
|
|
11
|
-
import type { ASTNode, AST } from '../languages/types.js';
|
|
12
|
-
import {
|
|
13
|
-
import { getNodeText
|
|
11
|
+
import type { ASTNode, AST, ImportInfo } from '../languages/types.js';
|
|
12
|
+
import { ExportInfo, ImportMapping, UsageInfo } from '../types.js';
|
|
13
|
+
import { getNodeText, getLineAndColumn as bridgeGetLineAndColumn, isExported as bridgeIsExported, calculateComplexity as bridgeCalculateComplexity } from '../languages/adapterBridge.js';
|
|
14
14
|
/**
|
|
15
15
|
* Find all nodes matching a predicate in the AST subtree.
|
|
16
16
|
* Replacement for the old `findNodesByKind<T>(node, SyntaxKind)`.
|
|
@@ -20,7 +20,7 @@ export declare function findNodesByType(root: ASTNode, predicate: (node: ASTNode
|
|
|
20
20
|
* Get the text content of a node.
|
|
21
21
|
* Uses sourceCode if provided; falls back to raw tree-sitter text.
|
|
22
22
|
*/
|
|
23
|
-
export {
|
|
23
|
+
export { getNodeText };
|
|
24
24
|
/**
|
|
25
25
|
* Get line and column number for a tree-sitter ASTNode.
|
|
26
26
|
*/
|
|
@@ -32,12 +32,12 @@ export { bridgeCalculateComplexity as calculateComplexity };
|
|
|
32
32
|
* Uses tree-sitter import_statement structure:
|
|
33
33
|
* import_statement → import_clause? → (identifier | named_imports) → string
|
|
34
34
|
*/
|
|
35
|
-
export declare function getImports(root: ASTNode): ImportInfo[];
|
|
35
|
+
export declare function getImports(root: ASTNode, sourceCode: string): ImportInfo[];
|
|
36
36
|
/**
|
|
37
37
|
* Extract export statements from an AST root node.
|
|
38
38
|
* Uses tree-sitter export_statement structure.
|
|
39
39
|
*/
|
|
40
|
-
export declare function getExports(root: ASTNode): ExportInfo[];
|
|
40
|
+
export declare function getExports(root: ASTNode, sourceCode: string): ExportInfo[];
|
|
41
41
|
/**
|
|
42
42
|
* Find all function declarations in the AST.
|
|
43
43
|
*/
|
|
@@ -49,17 +49,17 @@ export declare function findClasses(root: ASTNode): ASTNode[];
|
|
|
49
49
|
/**
|
|
50
50
|
* Get AST node for inspection/debugging.
|
|
51
51
|
*/
|
|
52
|
-
export declare function getASTNode(node: ASTNode): any;
|
|
52
|
+
export declare function getASTNode(node: ASTNode, sourceCode: string): any;
|
|
53
53
|
/**
|
|
54
54
|
* Check if a node has a specific decorator.
|
|
55
55
|
* Tree-sitter parses decorators as `decorator` nodes.
|
|
56
56
|
*/
|
|
57
|
-
export declare function hasDecorator(node: ASTNode, decoratorName: string): boolean;
|
|
57
|
+
export declare function hasDecorator(node: ASTNode, decoratorName: string, sourceCode: string): boolean;
|
|
58
58
|
/**
|
|
59
59
|
* Get method names from a class declaration node.
|
|
60
60
|
* Tree-sitter: class_declaration → class_body → method_definition / public_field_definition
|
|
61
61
|
*/
|
|
62
|
-
export declare function getClassMethods(classNode: ASTNode): string[];
|
|
62
|
+
export declare function getClassMethods(classNode: ASTNode, sourceCode: string): string[];
|
|
63
63
|
/**
|
|
64
64
|
* Count lines of code (excluding comments and empty lines).
|
|
65
65
|
* Takes source text directly instead of ts.SourceFile.
|
|
@@ -105,12 +105,12 @@ export declare function parseTypeScriptFile(filePath: string): Promise<{
|
|
|
105
105
|
* Enhanced version of getImports that returns detailed ImportMapping[].
|
|
106
106
|
* Uses tree-sitter import_statement traversal.
|
|
107
107
|
*/
|
|
108
|
-
export declare function getImportsDetailed(root: ASTNode): ImportMapping[];
|
|
108
|
+
export declare function getImportsDetailed(root: ASTNode, sourceCode: string): ImportMapping[];
|
|
109
109
|
/**
|
|
110
110
|
* Get re-exports from a source file.
|
|
111
111
|
* Tree-sitter: export_statement → string (module specifier).
|
|
112
112
|
*/
|
|
113
|
-
export declare function getReExports(root: ASTNode): Array<{
|
|
113
|
+
export declare function getReExports(root: ASTNode, sourceCode: string): Array<{
|
|
114
114
|
name: string;
|
|
115
115
|
module: string;
|
|
116
116
|
}>;
|
|
@@ -123,7 +123,7 @@ export declare function extractIdentifierUsage(root: ASTNode, sourceCode: string
|
|
|
123
123
|
* Check if a function name is defined locally in the file.
|
|
124
124
|
* Uses tree-sitter instead of TS API.
|
|
125
125
|
*/
|
|
126
|
-
export declare function isLocalFunction(name: string, root: ASTNode): boolean;
|
|
126
|
+
export declare function isLocalFunction(name: string, root: ASTNode, sourceCode: string): boolean;
|
|
127
127
|
/**
|
|
128
128
|
* Normalize a function call target for consistent naming.
|
|
129
129
|
* No TypeScript dependency — pure string manipulation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astUtils.d.ts","sourceRoot":"","sources":["../../src/utils/astUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"astUtils.d.ts","sourceRoot":"","sources":["../../src/utils/astUtils.ts"],"names":[],"mappings":"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"}
|