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
|
@@ -18,7 +18,7 @@ const INFORMATION_URI = 'https://github.com/BenAHammond/code-auditor-mcp';
|
|
|
18
18
|
const SEVERITY_TO_LEVEL = {
|
|
19
19
|
critical: 'error',
|
|
20
20
|
severe: 'error',
|
|
21
|
-
|
|
21
|
+
advisory: 'note',
|
|
22
22
|
};
|
|
23
23
|
// ── Rule ID resolution ──────────────────────────────────────────────────────
|
|
24
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sarifReportGenerator.js","sourceRoot":"","sources":["../../src/reporting/sarifReportGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,+EAA+E;AAE/E,MAAM,YAAY,GAChB,gGAAgG,CAAC;AACnG,MAAM,aAAa,GAAG,OAAO,CAAC;AAC9B,MAAM,SAAS,GAAG,kBAAkB,CAAC;AACrC,MAAM,eAAe,GAAG,iDAAiD,CAAC;AAE1E,8EAA8E;AAE9E,MAAM,iBAAiB,GAA2B;IAChD,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,OAAO;IACf,
|
|
1
|
+
{"version":3,"file":"sarifReportGenerator.js","sourceRoot":"","sources":["../../src/reporting/sarifReportGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import path from 'node:path';
|
|
|
2
2
|
import { startAuditJob, getAuditJobStatus, getAuditResultsPage } from '../mcpAuditJobs.js';
|
|
3
3
|
const defaults = {
|
|
4
4
|
defaultAnalyzers: ['solid', 'dry', 'react', 'documentation', 'data-access'],
|
|
5
|
-
defaultMinSeverity: '
|
|
5
|
+
defaultMinSeverity: 'advisory',
|
|
6
6
|
defaultGenerateCodeMap: false,
|
|
7
7
|
};
|
|
8
8
|
async function waitForResult(jobId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchmarkWorkers.js","sourceRoot":"","sources":["../../src/scripts/benchmarkWorkers.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAO3F,MAAM,QAAQ,GAAG;IACf,gBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC;IAC3E,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"benchmarkWorkers.js","sourceRoot":"","sources":["../../src/scripts/benchmarkWorkers.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export declare function extractDeclarationsFromCSSAst(ast: AST, adapter: Languag
|
|
|
43
43
|
* Finds declarations where the property starts with -- and extracts
|
|
44
44
|
* the token name and value.
|
|
45
45
|
*/
|
|
46
|
-
export declare function extractTokensFromCSSAst(ast: AST, adapter: LanguageAdapter, filePath: string): StyleToken[];
|
|
46
|
+
export declare function extractTokensFromCSSAst(ast: AST, adapter: LanguageAdapter, filePath: string, sourceCode: string): StyleToken[];
|
|
47
47
|
/**
|
|
48
48
|
* Extract CSS class usage from a parsed CSS AST.
|
|
49
49
|
*
|
|
@@ -57,5 +57,5 @@ export declare function extractTokensFromCSSAst(ast: AST, adapter: LanguageAdapt
|
|
|
57
57
|
* unresolvable rather than registered as standalone classes — registering
|
|
58
58
|
* them would produce false negatives in the undefined-class detector.
|
|
59
59
|
*/
|
|
60
|
-
export declare function extractClassUsageFromCSSAst(ast: AST, adapter: LanguageAdapter, filePath: string): StyleClassUsage[];
|
|
60
|
+
export declare function extractClassUsageFromCSSAst(ast: AST, adapter: LanguageAdapter, filePath: string, sourceCode: string): StyleClassUsage[];
|
|
61
61
|
//# sourceMappingURL=cssAstExtractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cssAstExtractor.d.ts","sourceRoot":"","sources":["../../src/styles/cssAstExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"cssAstExtractor.d.ts","sourceRoot":"","sources":["../../src/styles/cssAstExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAW,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA2LrF;;;GAGG;AACH,eAAO,IAAI,sBAAsB,QAAI,CAAC;AAEtC,2EAA2E;AAC3E,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAiOD;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,qBAAqB,EAAE,CAyKzB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,UAAU,EAAE,CAwBd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,eAAe,EAAE,CA2CnB"}
|
|
@@ -134,46 +134,30 @@ function extractApplyDirectives(blockNode, sourceCode, selector, variantContext,
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
// ---------------------------------------------------------------------------
|
|
137
|
-
//
|
|
137
|
+
// CSS Node Helpers
|
|
138
138
|
// ---------------------------------------------------------------------------
|
|
139
139
|
/**
|
|
140
|
-
*
|
|
141
|
-
* discovered by type via namedChild iteration on the raw TreeSitterNode.
|
|
142
|
-
* This grammar is distinct from the tree-sitter-typescript one.
|
|
143
|
-
*/
|
|
144
|
-
/**
|
|
145
|
-
* Find the first named child of a TreeSitterNode with the given type.
|
|
146
|
-
*/
|
|
147
|
-
function findNamedChild(node, type) {
|
|
148
|
-
for (let i = 0; i < node.namedChildCount; i++) {
|
|
149
|
-
const child = node.namedChild(i);
|
|
150
|
-
if (child?.type === type)
|
|
151
|
-
return child;
|
|
152
|
-
}
|
|
153
|
-
return null;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Get property and raw value from a declaration's raw TreeSitterNode.
|
|
140
|
+
* Get property and raw value from a declaration node.
|
|
157
141
|
* tree-sitter-css uses `property_name` for the property and various typed
|
|
158
142
|
* children for the value (color_value, integer_value, plain_value,
|
|
159
143
|
* call_expression, etc.). We extract the property from the property_name
|
|
160
144
|
* child and the raw value from the full declaration text after the colon.
|
|
161
145
|
*/
|
|
162
|
-
function getPropertyAndValue(
|
|
163
|
-
const propNode =
|
|
146
|
+
function getPropertyAndValue(decl, sourceCode) {
|
|
147
|
+
const propNode = decl.children?.find(c => c.type === 'property_name');
|
|
164
148
|
if (!propNode)
|
|
165
149
|
return null;
|
|
166
|
-
const property = propNode.
|
|
150
|
+
const property = sourceCode.slice(propNode.range[0], propNode.range[1]).trim();
|
|
167
151
|
if (!property)
|
|
168
152
|
return null;
|
|
169
153
|
// Extract raw value from the full declaration text after the property + colon
|
|
170
|
-
const fullText =
|
|
154
|
+
const fullText = sourceCode.slice(decl.range[0], decl.range[1]);
|
|
171
155
|
// Find the colon that separates property from value.
|
|
172
156
|
// Use indexOf on the full text — the property_name child's text tells us
|
|
173
157
|
// where the property ends, but the colon might be outside the child span
|
|
174
158
|
// (tree-sitter may or may not include it in property_name).
|
|
175
159
|
// Safe approach: scan from after the property_name child's end offset.
|
|
176
|
-
const propEndInDecl = propNode.
|
|
160
|
+
const propEndInDecl = propNode.range[1] - decl.range[0];
|
|
177
161
|
const afterProp = fullText.slice(propEndInDecl);
|
|
178
162
|
const colonIdx = afterProp.indexOf(':');
|
|
179
163
|
const rawValue = colonIdx !== -1 ? afterProp.slice(colonIdx + 1).replace(/;\s*$/, '').trim() : '';
|
|
@@ -189,28 +173,6 @@ function getPropertyAndValue(declRaw) {
|
|
|
189
173
|
function subtreeAST(ast, root) {
|
|
190
174
|
return { root, language: ast.language, filePath: ast.filePath, errors: [] };
|
|
191
175
|
}
|
|
192
|
-
/**
|
|
193
|
-
* Wrap a TreeSitterNode as an ASTNode for use with adapter methods that
|
|
194
|
-
* expect ASTNode input.
|
|
195
|
-
*/
|
|
196
|
-
function wrapAsASTNode(raw) {
|
|
197
|
-
return {
|
|
198
|
-
type: raw.type,
|
|
199
|
-
range: [raw.startIndex, raw.endIndex],
|
|
200
|
-
location: {
|
|
201
|
-
start: {
|
|
202
|
-
line: raw.startPosition.row + 1,
|
|
203
|
-
column: raw.startPosition.column + 1,
|
|
204
|
-
},
|
|
205
|
-
end: {
|
|
206
|
-
line: raw.endPosition.row + 1,
|
|
207
|
-
column: raw.endPosition.column + 1,
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
children: raw.namedChildren.map((c) => wrapAsASTNode(c)),
|
|
211
|
-
raw,
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
176
|
// ---------------------------------------------------------------------------
|
|
215
177
|
// SCSS & Nesting Resolution
|
|
216
178
|
// ---------------------------------------------------------------------------
|
|
@@ -228,30 +190,29 @@ export function resetUnresolvedNestingCount() {
|
|
|
228
190
|
* (skipping past the rule_set that directly contains this class_selector),
|
|
229
191
|
* then resolve its class name (handling nested & recursively).
|
|
230
192
|
*
|
|
231
|
-
* Uses
|
|
232
|
-
* for both adapter-discovered nodes and wrapAsASTNode-created synthetic nodes.
|
|
193
|
+
* Uses ASTNode.parent to walk up the parse tree.
|
|
233
194
|
*
|
|
234
195
|
* Returns null when the class_selector has no resolvable parent (e.g. it is at
|
|
235
196
|
* the top level, or the parent is another &-pattern that itself cannot resolve).
|
|
236
197
|
*/
|
|
237
|
-
function getParentClassName(classSelectorNode) {
|
|
238
|
-
let
|
|
198
|
+
function getParentClassName(classSelectorNode, sourceCode) {
|
|
199
|
+
let current = classSelectorNode;
|
|
239
200
|
// Step 1: walk up to find the containing (inner) rule_set
|
|
240
|
-
while (
|
|
241
|
-
|
|
201
|
+
while (current && current.type !== 'rule_set') {
|
|
202
|
+
current = current.parent ?? null;
|
|
242
203
|
}
|
|
243
|
-
if (!
|
|
204
|
+
if (!current || current.type !== 'rule_set')
|
|
244
205
|
return null;
|
|
245
206
|
// Step 2: walk up FROM the inner rule_set to find the OUTER rule_set
|
|
246
|
-
|
|
247
|
-
while (
|
|
248
|
-
|
|
207
|
+
current = current.parent ?? null; // block of outer rule_set, or stylesheet
|
|
208
|
+
while (current && current.type !== 'rule_set') {
|
|
209
|
+
current = current.parent ?? null;
|
|
249
210
|
}
|
|
250
|
-
if (!
|
|
211
|
+
if (!current || current.type !== 'rule_set')
|
|
251
212
|
return null;
|
|
252
213
|
// Step 3: resolve the outer rule_set's concrete class name (unwinding any
|
|
253
214
|
// nested `&` chains — see resolveRuleSetClassName).
|
|
254
|
-
return resolveRuleSetClassName(
|
|
215
|
+
return resolveRuleSetClassName(current, sourceCode);
|
|
255
216
|
}
|
|
256
217
|
/**
|
|
257
218
|
* Resolve a rule_set's selectors to a concrete parent class name, unwinding
|
|
@@ -265,34 +226,34 @@ function getParentClassName(classSelectorNode) {
|
|
|
265
226
|
*
|
|
266
227
|
* Returns null when no concrete parent class exists at or above this rule_set.
|
|
267
228
|
*/
|
|
268
|
-
function resolveRuleSetClassName(
|
|
269
|
-
const
|
|
270
|
-
if (!
|
|
229
|
+
function resolveRuleSetClassName(ruleSet, sourceCode) {
|
|
230
|
+
const selectors = ruleSet.children?.find(c => c.type === 'selectors');
|
|
231
|
+
if (!selectors)
|
|
271
232
|
return null;
|
|
272
233
|
// Plain or BEM-nested class_selector.
|
|
273
|
-
const classSelector =
|
|
234
|
+
const classSelector = selectors.children?.find(c => c.type === 'class_selector');
|
|
274
235
|
if (classSelector) {
|
|
275
|
-
const hasNesting = classSelector.
|
|
236
|
+
const hasNesting = (classSelector.children ?? []).some((c) => c.type === 'nesting_selector');
|
|
276
237
|
if (hasNesting) {
|
|
277
|
-
const resolved = resolveNestingSelector(
|
|
238
|
+
const resolved = resolveNestingSelector(classSelector, sourceCode);
|
|
278
239
|
if (resolved !== null && resolved.resolvable)
|
|
279
240
|
return resolved.className;
|
|
280
241
|
return null;
|
|
281
242
|
}
|
|
282
|
-
const cn =
|
|
243
|
+
const cn = classSelector.children?.find(c => c.type === 'class_name');
|
|
283
244
|
if (cn)
|
|
284
|
-
return cn.
|
|
245
|
+
return sourceCode.slice(cn.range[0], cn.range[1]);
|
|
285
246
|
}
|
|
286
247
|
// Bare `&` in a pseudo_class_selector / attribute_selector — no class name at
|
|
287
248
|
// this level; unwind one more rule_set.
|
|
288
|
-
const hasBareNesting =
|
|
289
|
-
&& c.
|
|
249
|
+
const hasBareNesting = (selectors.children ?? []).some(c => (c.type === 'pseudo_class_selector' || c.type === 'attribute_selector')
|
|
250
|
+
&& (c.children ?? []).some((cc) => cc.type === 'nesting_selector'));
|
|
290
251
|
if (hasBareNesting) {
|
|
291
|
-
let outer =
|
|
252
|
+
let outer = ruleSet.parent ?? null;
|
|
292
253
|
while (outer && outer.type !== 'rule_set')
|
|
293
|
-
outer = outer.parent;
|
|
254
|
+
outer = outer.parent ?? null;
|
|
294
255
|
if (outer && outer.type === 'rule_set')
|
|
295
|
-
return resolveRuleSetClassName(outer);
|
|
256
|
+
return resolveRuleSetClassName(outer, sourceCode);
|
|
296
257
|
}
|
|
297
258
|
return null;
|
|
298
259
|
}
|
|
@@ -314,7 +275,7 @@ function resolveRuleSetClassName(ruleSetRaw) {
|
|
|
314
275
|
* - &.modifier — chained class, can't register as standalone defined class
|
|
315
276
|
* - & .descendant — descendant combinator
|
|
316
277
|
*/
|
|
317
|
-
function resolveNestingSelector(classSelectorNode) {
|
|
278
|
+
function resolveNestingSelector(classSelectorNode, sourceCode) {
|
|
318
279
|
const children = classSelectorNode.children ?? [];
|
|
319
280
|
const hasNesting = children.some(c => c.type === 'nesting_selector');
|
|
320
281
|
if (!hasNesting)
|
|
@@ -324,10 +285,10 @@ function resolveNestingSelector(classSelectorNode) {
|
|
|
324
285
|
const nestedClassSelectors = children.filter(c => c.type === 'class_selector');
|
|
325
286
|
// Case 1: &-suffix or &__element or &--modifier or &.modifier
|
|
326
287
|
for (const cn of classNames) {
|
|
327
|
-
const raw = cn.
|
|
288
|
+
const raw = sourceCode.slice(cn.range[0], cn.range[1]);
|
|
328
289
|
// BEM no-separator concatenation: &-suffix, &__element, &--modifier
|
|
329
290
|
if (raw.startsWith('-') || raw.startsWith('_')) {
|
|
330
|
-
const parentName = getParentClassName(classSelectorNode);
|
|
291
|
+
const parentName = getParentClassName(classSelectorNode, sourceCode);
|
|
331
292
|
if (parentName) {
|
|
332
293
|
return { className: parentName + raw, resolvable: true };
|
|
333
294
|
}
|
|
@@ -347,7 +308,7 @@ function resolveNestingSelector(classSelectorNode) {
|
|
|
347
308
|
for (const nestedCS of nestedClassSelectors) {
|
|
348
309
|
const innerCN = nestedCS.children?.find(c => c.type === 'class_name');
|
|
349
310
|
if (innerCN) {
|
|
350
|
-
const raw = innerCN.
|
|
311
|
+
const raw = sourceCode.slice(innerCN.range[0], innerCN.range[1]);
|
|
351
312
|
unresolvedNestingCount++;
|
|
352
313
|
return { className: raw, resolvable: false };
|
|
353
314
|
}
|
|
@@ -366,7 +327,7 @@ function resolveNestingSelector(classSelectorNode) {
|
|
|
366
327
|
* e.g. "&-header" inside ".form-group" → "form-group-header"
|
|
367
328
|
* "&.selected" inside ".btn" stays "&.selected" (unresolvable chained class)
|
|
368
329
|
*/
|
|
369
|
-
function resolveSelectorContext(selectorsNode, rawText) {
|
|
330
|
+
function resolveSelectorContext(selectorsNode, rawText, sourceCode) {
|
|
370
331
|
const children = selectorsNode.children ?? [];
|
|
371
332
|
const classSelectors = children.filter(c => c.type === 'class_selector');
|
|
372
333
|
const hasNesting = classSelectors.some(cs => (cs.children ?? []).some(cc => cc.type === 'nesting_selector'));
|
|
@@ -380,17 +341,17 @@ function resolveSelectorContext(selectorsNode, rawText) {
|
|
|
380
341
|
return rawText;
|
|
381
342
|
let resolvedText = rawText;
|
|
382
343
|
for (const cs of classSelectors) {
|
|
383
|
-
const resolved = resolveNestingSelector(cs);
|
|
344
|
+
const resolved = resolveNestingSelector(cs, sourceCode);
|
|
384
345
|
if (resolved !== null && resolved.resolvable) {
|
|
385
|
-
const csRaw = cs.
|
|
346
|
+
const csRaw = sourceCode.slice(cs.range[0], cs.range[1]);
|
|
386
347
|
resolvedText = resolvedText.replace(csRaw, '.' + resolved.className);
|
|
387
348
|
}
|
|
388
349
|
}
|
|
389
350
|
for (const bs of bareNestingSelectors) {
|
|
390
|
-
const parentName = getParentClassNameFromSelectors(selectorsNode);
|
|
351
|
+
const parentName = getParentClassNameFromSelectors(selectorsNode, sourceCode);
|
|
391
352
|
const ns = (bs.children ?? []).find(cc => cc.type === 'nesting_selector');
|
|
392
353
|
if (parentName && ns) {
|
|
393
|
-
const nsRaw = ns.
|
|
354
|
+
const nsRaw = sourceCode.slice(ns.range[0], ns.range[1]); // '&'
|
|
394
355
|
resolvedText = resolvedText.replace(nsRaw, '.' + parentName);
|
|
395
356
|
}
|
|
396
357
|
else {
|
|
@@ -403,17 +364,16 @@ function resolveSelectorContext(selectorsNode, rawText) {
|
|
|
403
364
|
* Resolve the parent class name for a bare `&` nesting selector, starting from
|
|
404
365
|
* the rule_set's `selectors` node (whose parent is the rule_set itself).
|
|
405
366
|
*/
|
|
406
|
-
function getParentClassNameFromSelectors(selectorsNode) {
|
|
407
|
-
const
|
|
408
|
-
const innerRuleSet = raw?.parent;
|
|
367
|
+
function getParentClassNameFromSelectors(selectorsNode, sourceCode) {
|
|
368
|
+
const innerRuleSet = selectorsNode.parent ?? null;
|
|
409
369
|
if (!innerRuleSet || innerRuleSet.type !== 'rule_set')
|
|
410
370
|
return null;
|
|
411
|
-
let outer = innerRuleSet.parent;
|
|
371
|
+
let outer = innerRuleSet.parent ?? null;
|
|
412
372
|
while (outer && outer.type !== 'rule_set')
|
|
413
|
-
outer = outer.parent;
|
|
373
|
+
outer = outer.parent ?? null;
|
|
414
374
|
if (!outer || outer.type !== 'rule_set')
|
|
415
375
|
return null;
|
|
416
|
-
return resolveRuleSetClassName(outer);
|
|
376
|
+
return resolveRuleSetClassName(outer, sourceCode);
|
|
417
377
|
}
|
|
418
378
|
// ---------------------------------------------------------------------------
|
|
419
379
|
// Public API
|
|
@@ -435,17 +395,15 @@ export function extractDeclarationsFromCSSAst(ast, adapter, filePath, sourceCode
|
|
|
435
395
|
// Find all rule_sets
|
|
436
396
|
const ruleSets = adapter.findNodes(ast, { type: 'rule_set' });
|
|
437
397
|
for (const ruleSet of ruleSets) {
|
|
438
|
-
const rawNode = ruleSet.raw;
|
|
439
398
|
// tree-sitter-css: rule_set has named children 'selectors' and 'block'
|
|
440
|
-
const
|
|
441
|
-
if (!
|
|
399
|
+
const selectorsAst = ruleSet.children?.find(c => c.type === 'selectors');
|
|
400
|
+
if (!selectorsAst)
|
|
442
401
|
continue;
|
|
443
|
-
const selectorsAst = wrapAsASTNode(selectorsRaw);
|
|
444
402
|
let selector = getSelectorText(selectorsAst, sourceCode);
|
|
445
403
|
if (!selector)
|
|
446
404
|
continue;
|
|
447
405
|
// SCSS: resolve & nesting in selector context (Bug 2 fix)
|
|
448
|
-
selector = resolveSelectorContext(selectorsAst, selector);
|
|
406
|
+
selector = resolveSelectorContext(selectorsAst, selector, sourceCode);
|
|
449
407
|
// Get variant context from at_rule ancestors
|
|
450
408
|
const variantContext = getVariantContext(ruleSet, adapter, sourceCode);
|
|
451
409
|
// Find declarations inside this rule_set
|
|
@@ -459,10 +417,9 @@ export function extractDeclarationsFromCSSAst(ast, adapter, filePath, sourceCode
|
|
|
459
417
|
while (declAncestor && declAncestor.type !== 'rule_set') {
|
|
460
418
|
declAncestor = adapter.getParent(declAncestor);
|
|
461
419
|
}
|
|
462
|
-
if (declAncestor
|
|
420
|
+
if (declAncestor !== ruleSet)
|
|
463
421
|
continue;
|
|
464
|
-
const
|
|
465
|
-
const pv = getPropertyAndValue(raw);
|
|
422
|
+
const pv = getPropertyAndValue(decl, sourceCode);
|
|
466
423
|
if (!pv)
|
|
467
424
|
continue;
|
|
468
425
|
const { property, rawValue } = pv;
|
|
@@ -490,9 +447,8 @@ export function extractDeclarationsFromCSSAst(ast, adapter, filePath, sourceCode
|
|
|
490
447
|
}
|
|
491
448
|
}
|
|
492
449
|
// Handle @apply directives (Tailwind extension)
|
|
493
|
-
const
|
|
494
|
-
if (
|
|
495
|
-
const blockAst = wrapAsASTNode(blockRaw);
|
|
450
|
+
const blockAst = ruleSet.children?.find(c => c.type === 'block');
|
|
451
|
+
if (blockAst) {
|
|
496
452
|
extractApplyDirectives(blockAst, sourceCode, selector, variantContext, filePath, declarations);
|
|
497
453
|
}
|
|
498
454
|
}
|
|
@@ -500,8 +456,10 @@ export function extractDeclarationsFromCSSAst(ast, adapter, filePath, sourceCode
|
|
|
500
456
|
// keyframe_block_list children, not rule_set.
|
|
501
457
|
const keyframeStmts = adapter.findNodes(ast, { type: 'keyframes_statement' });
|
|
502
458
|
for (const kf of keyframeStmts) {
|
|
503
|
-
const
|
|
504
|
-
const kfName =
|
|
459
|
+
const kfNameNode = kf.children?.find(c => c.type === 'keyframes_name');
|
|
460
|
+
const kfName = kfNameNode
|
|
461
|
+
? sourceCode.slice(kfNameNode.range[0], kfNameNode.range[1])
|
|
462
|
+
: 'unknown';
|
|
505
463
|
const kfSubAST = subtreeAST(ast, kf);
|
|
506
464
|
const kfDeclNodes = adapter.findNodes(kfSubAST, { type: 'declaration' });
|
|
507
465
|
for (const decl of kfDeclNodes) {
|
|
@@ -510,14 +468,15 @@ export function extractDeclarationsFromCSSAst(ast, adapter, filePath, sourceCode
|
|
|
510
468
|
let kfSelector = '(unknown)';
|
|
511
469
|
while (parent && parent.type !== 'keyframes_statement') {
|
|
512
470
|
if (parent.type === 'keyframe_block') {
|
|
513
|
-
const selChild = parent.
|
|
514
|
-
kfSelector = selChild
|
|
471
|
+
const selChild = (parent.children ?? []).find((c) => c.type === 'from' || c.type === 'to' || c.type === 'integer_value');
|
|
472
|
+
kfSelector = selChild
|
|
473
|
+
? sourceCode.slice(selChild.range[0], selChild.range[1])
|
|
474
|
+
: '(unknown)';
|
|
515
475
|
break;
|
|
516
476
|
}
|
|
517
477
|
parent = adapter.getParent(parent);
|
|
518
478
|
}
|
|
519
|
-
const
|
|
520
|
-
const pv = getPropertyAndValue(raw);
|
|
479
|
+
const pv = getPropertyAndValue(decl, sourceCode);
|
|
521
480
|
if (!pv)
|
|
522
481
|
continue;
|
|
523
482
|
const { property, rawValue } = pv;
|
|
@@ -560,8 +519,7 @@ export function extractDeclarationsFromCSSAst(ast, adapter, filePath, sourceCode
|
|
|
560
519
|
}
|
|
561
520
|
if (parent?.type === 'rule_set' || parent?.type === 'block' || inKeyframe)
|
|
562
521
|
continue;
|
|
563
|
-
const
|
|
564
|
-
const pv = getPropertyAndValue(raw);
|
|
522
|
+
const pv = getPropertyAndValue(decl, sourceCode);
|
|
565
523
|
if (!pv)
|
|
566
524
|
continue;
|
|
567
525
|
const { property, rawValue } = pv;
|
|
@@ -595,12 +553,11 @@ export function extractDeclarationsFromCSSAst(ast, adapter, filePath, sourceCode
|
|
|
595
553
|
* Finds declarations where the property starts with -- and extracts
|
|
596
554
|
* the token name and value.
|
|
597
555
|
*/
|
|
598
|
-
export function extractTokensFromCSSAst(ast, adapter, filePath) {
|
|
556
|
+
export function extractTokensFromCSSAst(ast, adapter, filePath, sourceCode) {
|
|
599
557
|
const tokens = [];
|
|
600
558
|
const allDecls = adapter.findNodes(ast, { type: 'declaration' });
|
|
601
559
|
for (const decl of allDecls) {
|
|
602
|
-
const
|
|
603
|
-
const pv = getPropertyAndValue(raw);
|
|
560
|
+
const pv = getPropertyAndValue(decl, sourceCode);
|
|
604
561
|
if (!pv)
|
|
605
562
|
continue;
|
|
606
563
|
const { property, rawValue } = pv;
|
|
@@ -632,7 +589,7 @@ export function extractTokensFromCSSAst(ast, adapter, filePath) {
|
|
|
632
589
|
* unresolvable rather than registered as standalone classes — registering
|
|
633
590
|
* them would produce false negatives in the undefined-class detector.
|
|
634
591
|
*/
|
|
635
|
-
export function extractClassUsageFromCSSAst(ast, adapter, filePath) {
|
|
592
|
+
export function extractClassUsageFromCSSAst(ast, adapter, filePath, sourceCode) {
|
|
636
593
|
const usage = [];
|
|
637
594
|
// class_name nodes represent CSS class selectors like .my-class
|
|
638
595
|
// They can appear inside selectors, pseudo-class arguments, etc.
|
|
@@ -645,12 +602,11 @@ export function extractClassUsageFromCSSAst(ast, adapter, filePath) {
|
|
|
645
602
|
const parent = adapter.getParent(node);
|
|
646
603
|
if (!parent || parent.type !== 'class_selector')
|
|
647
604
|
continue;
|
|
648
|
-
const
|
|
649
|
-
const rawName = raw.text;
|
|
605
|
+
const rawName = sourceCode.slice(node.range[0], node.range[1]);
|
|
650
606
|
if (!rawName)
|
|
651
607
|
continue;
|
|
652
608
|
// SCSS nesting resolution: check if parent class_selector has a nesting_selector
|
|
653
|
-
const resolved = resolveNestingSelector(parent);
|
|
609
|
+
const resolved = resolveNestingSelector(parent, sourceCode);
|
|
654
610
|
if (resolved !== null) {
|
|
655
611
|
// &-pattern: register the resolved or dropped class name
|
|
656
612
|
usage.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cssAstExtractor.js","sourceRoot":"","sources":["../../src/styles/cssAstExtractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cssAstExtractor.js","sourceRoot":"","sources":["../../src/styles/cssAstExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styleIndexer.d.ts","sourceRoot":"","sources":["../../src/styles/styleIndexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAWzD,OAAO,KAAK,EAGV,eAAe,EAEhB,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAMD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"styleIndexer.d.ts","sourceRoot":"","sources":["../../src/styles/styleIndexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAWzD,OAAO,KAAK,EAGV,eAAe,EAEhB,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAMD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA4H1B;AAqCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,eAAe,EAAE,CA2DnB"}
|
|
@@ -36,9 +36,21 @@ export async function syncStyleIndex(rawDb, files, projectRoot, options = {}) {
|
|
|
36
36
|
// styles/undefined-class detector still fires and carries them as context
|
|
37
37
|
// rather than asserting a class is undefined against the whole project.
|
|
38
38
|
const unreadSources = [];
|
|
39
|
-
// Load Tailwind config
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
// Load Tailwind config only when a file will actually consume tokens. The load
|
|
40
|
+
// shells out to `git ls-files` (~50 ms), so on a run where every file is skipped
|
|
41
|
+
// by the two guards below (e.g. a diff-scoped `.ts` change — `changed:0`) it would
|
|
42
|
+
// be pure overhead on the `changed` gate. The load is memoized per process, so
|
|
43
|
+
// calling it lazily here costs nothing on full runs that do reach extraction.
|
|
44
|
+
const hasExtractableFile = files.some((filePath) => {
|
|
45
|
+
if (filePath.endsWith('.css') || filePath.endsWith('.scss'))
|
|
46
|
+
return false;
|
|
47
|
+
const ext = filePath.includes('.') ? filePath.slice(filePath.lastIndexOf('.')) : '';
|
|
48
|
+
return !PIPELINE_SOURCE_EXTENSIONS.has(ext);
|
|
49
|
+
});
|
|
50
|
+
let tailwindResult = null;
|
|
51
|
+
if (hasExtractableFile) {
|
|
52
|
+
tailwindResult = loadTailwindConfig(projectRoot);
|
|
53
|
+
}
|
|
42
54
|
// Process each file
|
|
43
55
|
for (const filePath of files) {
|
|
44
56
|
// Skip .css and .scss files — handled by styles-css pipeline visitor (Spec 26 Phase 2).
|
|
@@ -78,8 +90,9 @@ export async function syncStyleIndex(rawDb, files, projectRoot, options = {}) {
|
|
|
78
90
|
}
|
|
79
91
|
// Delete old entries for this file (both scoped and full)
|
|
80
92
|
deleteFileEntries(rawDb, filePath);
|
|
81
|
-
// Extract declarations
|
|
82
|
-
|
|
93
|
+
// Extract declarations. Only reachable for an extractable file, so
|
|
94
|
+
// `tailwindResult` is non-null here (loaded above when hasExtractableFile).
|
|
95
|
+
const declarations = extractForFile(filePath, content, tailwindResult.tokens, unreadSources);
|
|
83
96
|
// Whether this file contributed any style data (declaration, token, or
|
|
84
97
|
// class usage). Feeds `contributingFiles`, the scoped short-circuit signal
|
|
85
98
|
// for the styles reducer.
|
|
@@ -118,7 +131,7 @@ export async function syncStyleIndex(rawDb, files, projectRoot, options = {}) {
|
|
|
118
131
|
result.removed = removeStaleEntries(rawDb, files);
|
|
119
132
|
}
|
|
120
133
|
// Insert Tailwind theme tokens as style tokens
|
|
121
|
-
if (tailwindResult.source !== 'none' && result.changed > 0) {
|
|
134
|
+
if (tailwindResult && tailwindResult.source !== 'none' && result.changed > 0) {
|
|
122
135
|
const twTokens = tokensToStyleTokens(tailwindResult, projectRoot);
|
|
123
136
|
if (twTokens.length > 0) {
|
|
124
137
|
// Upsert each token individually (name is the unique key)
|