code-auditor-mcp 3.4.11 → 3.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +119 -1
  3. package/dist/analyzers/__verify_self_probe.d.ts +2 -0
  4. package/dist/analyzers/__verify_self_probe.d.ts.map +1 -0
  5. package/dist/analyzers/__verify_self_probe.js +5 -0
  6. package/dist/analyzers/__verify_self_probe.js.map +1 -0
  7. package/dist/analyzers/analyzerUtils.d.ts +34 -1
  8. package/dist/analyzers/analyzerUtils.d.ts.map +1 -1
  9. package/dist/analyzers/analyzerUtils.js +61 -22
  10. package/dist/analyzers/analyzerUtils.js.map +1 -1
  11. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +18 -23
  12. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  13. package/dist/analyzers/cross-language/APIContractAnalyzer.js +198 -186
  14. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  15. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +78 -55
  16. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  17. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +244 -243
  18. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  19. package/dist/analyzers/cross-language/SchemaValidator.d.ts +27 -37
  20. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  21. package/dist/analyzers/cross-language/SchemaValidator.js +314 -275
  22. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  23. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +17 -46
  24. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  25. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +620 -523
  26. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  27. package/dist/analyzers/documentationAnalyzer.d.ts +7 -2
  28. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  29. package/dist/analyzers/documentationAnalyzer.js +259 -198
  30. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  31. package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/invariantsAnalyzer.js +59 -46
  33. package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
  34. package/dist/analyzers/orm/adapterRegistry.d.ts +10 -0
  35. package/dist/analyzers/orm/adapterRegistry.d.ts.map +1 -1
  36. package/dist/analyzers/orm/adapterRegistry.js +10 -0
  37. package/dist/analyzers/orm/adapterRegistry.js.map +1 -1
  38. package/dist/analyzers/orm/drizzleAdapter.d.ts +22 -0
  39. package/dist/analyzers/orm/drizzleAdapter.d.ts.map +1 -1
  40. package/dist/analyzers/orm/drizzleAdapter.js +42 -44
  41. package/dist/analyzers/orm/drizzleAdapter.js.map +1 -1
  42. package/dist/analyzers/orm/prismaAdapter.d.ts +30 -0
  43. package/dist/analyzers/orm/prismaAdapter.d.ts.map +1 -1
  44. package/dist/analyzers/orm/prismaAdapter.js +30 -0
  45. package/dist/analyzers/orm/prismaAdapter.js.map +1 -1
  46. package/dist/analyzers/provenance.d.ts +72 -2
  47. package/dist/analyzers/provenance.d.ts.map +1 -1
  48. package/dist/analyzers/provenance.js +462 -338
  49. package/dist/analyzers/provenance.js.map +1 -1
  50. package/dist/analyzers/reactAnalyzer.d.ts +11 -0
  51. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  52. package/dist/analyzers/reactAnalyzer.js +188 -125
  53. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  54. package/dist/analyzers/ruleRegistry.d.ts +118 -1
  55. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  56. package/dist/analyzers/ruleRegistry.js +1717 -104
  57. package/dist/analyzers/ruleRegistry.js.map +1 -1
  58. package/dist/analyzers/ruleTiming.d.ts +54 -0
  59. package/dist/analyzers/ruleTiming.d.ts.map +1 -0
  60. package/dist/analyzers/ruleTiming.js +71 -0
  61. package/dist/analyzers/ruleTiming.js.map +1 -0
  62. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +13 -0
  63. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  64. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +362 -283
  65. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  66. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +26 -68
  67. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  68. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +430 -391
  69. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  70. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +24 -186
  71. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  72. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +1081 -1061
  73. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  74. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +3 -49
  75. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  76. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +414 -340
  77. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  78. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +48 -5
  79. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  80. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +262 -134
  81. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  82. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +23 -212
  83. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  84. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +139 -1518
  85. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  86. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +78 -79
  87. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  88. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +613 -472
  89. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  90. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +307 -0
  91. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -0
  92. package/dist/analyzers/universal/schema/codeAnalysis.js +965 -0
  93. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -0
  94. package/dist/analyzers/universal/schema/config.d.ts +31 -0
  95. package/dist/analyzers/universal/schema/config.d.ts.map +1 -0
  96. package/dist/analyzers/universal/schema/config.js +57 -0
  97. package/dist/analyzers/universal/schema/config.js.map +1 -0
  98. package/dist/analyzers/universal/schema/discovery.d.ts +167 -0
  99. package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -0
  100. package/dist/analyzers/universal/schema/discovery.js +616 -0
  101. package/dist/analyzers/universal/schema/discovery.js.map +1 -0
  102. package/dist/analyzers/universal/schema/jsonSchema.d.ts +27 -0
  103. package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -0
  104. package/dist/analyzers/universal/schema/jsonSchema.js +368 -0
  105. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -0
  106. package/dist/analyzers/universal/schema/migrations.d.ts +90 -0
  107. package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -0
  108. package/dist/analyzers/universal/schema/migrations.js +238 -0
  109. package/dist/analyzers/universal/schema/migrations.js.map +1 -0
  110. package/dist/analyzers/universal/schema/types.d.ts +131 -0
  111. package/dist/analyzers/universal/schema/types.d.ts.map +1 -0
  112. package/dist/analyzers/universal/schema/types.js +10 -0
  113. package/dist/analyzers/universal/schema/types.js.map +1 -0
  114. package/dist/analyzers/universal/schema/violations.d.ts +44 -0
  115. package/dist/analyzers/universal/schema/violations.d.ts.map +1 -0
  116. package/dist/analyzers/universal/schema/violations.js +54 -0
  117. package/dist/analyzers/universal/schema/violations.js.map +1 -0
  118. package/dist/auditRunner.d.ts.map +1 -1
  119. package/dist/auditRunner.js +101 -39
  120. package/dist/auditRunner.js.map +1 -1
  121. package/dist/cli.js +348 -40
  122. package/dist/cli.js.map +1 -1
  123. package/dist/config/configLoader.d.ts.map +1 -1
  124. package/dist/config/configLoader.js +9 -7
  125. package/dist/config/configLoader.js.map +1 -1
  126. package/dist/config/defaults.d.ts +12 -3
  127. package/dist/config/defaults.d.ts.map +1 -1
  128. package/dist/config/defaults.js +15 -5
  129. package/dist/config/defaults.js.map +1 -1
  130. package/dist/config/effectiveConfig.d.ts +75 -0
  131. package/dist/config/effectiveConfig.d.ts.map +1 -0
  132. package/dist/config/effectiveConfig.js +213 -0
  133. package/dist/config/effectiveConfig.js.map +1 -0
  134. package/dist/config/pathProfiles.d.ts +7 -4
  135. package/dist/config/pathProfiles.d.ts.map +1 -1
  136. package/dist/config/pathProfiles.js +8 -10
  137. package/dist/config/pathProfiles.js.map +1 -1
  138. package/dist/config/thresholdRationales.d.ts +45 -0
  139. package/dist/config/thresholdRationales.d.ts.map +1 -0
  140. package/dist/config/thresholdRationales.js +67 -0
  141. package/dist/config/thresholdRationales.js.map +1 -0
  142. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  143. package/dist/conventions/conventionMiner.js +6 -2
  144. package/dist/conventions/conventionMiner.js.map +1 -1
  145. package/dist/enforcement/diffGate.d.ts +55 -0
  146. package/dist/enforcement/diffGate.d.ts.map +1 -0
  147. package/dist/enforcement/diffGate.js +136 -0
  148. package/dist/enforcement/diffGate.js.map +1 -0
  149. package/dist/enforcement/gate.d.ts +36 -0
  150. package/dist/enforcement/gate.d.ts.map +1 -0
  151. package/dist/enforcement/gate.js +72 -0
  152. package/dist/enforcement/gate.js.map +1 -0
  153. package/dist/enforcement/suppressions.d.ts +41 -0
  154. package/dist/enforcement/suppressions.d.ts.map +1 -0
  155. package/dist/enforcement/suppressions.js +170 -0
  156. package/dist/enforcement/suppressions.js.map +1 -0
  157. package/dist/fingerprint.d.ts.map +1 -1
  158. package/dist/fingerprint.js +4 -1
  159. package/dist/fingerprint.js.map +1 -1
  160. package/dist/grammars/tree-sitter-scss.wasm +0 -0
  161. package/dist/invariants/ruleEngine.d.ts +3 -4
  162. package/dist/invariants/ruleEngine.d.ts.map +1 -1
  163. package/dist/invariants/ruleEngine.js +2 -2
  164. package/dist/invariants/ruleEngine.js.map +1 -1
  165. package/dist/languages/LanguageOrchestrator.d.ts +14 -0
  166. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  167. package/dist/languages/LanguageOrchestrator.js +93 -55
  168. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  169. package/dist/languages/LanguageRegistry.d.ts +8 -0
  170. package/dist/languages/LanguageRegistry.d.ts.map +1 -1
  171. package/dist/languages/LanguageRegistry.js +8 -0
  172. package/dist/languages/LanguageRegistry.js.map +1 -1
  173. package/dist/languages/RuntimeManager.d.ts +82 -60
  174. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  175. package/dist/languages/RuntimeManager.js +404 -349
  176. package/dist/languages/RuntimeManager.js.map +1 -1
  177. package/dist/languages/UniversalAnalyzer.d.ts +51 -6
  178. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
  179. package/dist/languages/UniversalAnalyzer.js +127 -88
  180. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  181. package/dist/languages/adapterBridge.d.ts +36 -0
  182. package/dist/languages/adapterBridge.d.ts.map +1 -1
  183. package/dist/languages/adapterBridge.js +89 -35
  184. package/dist/languages/adapterBridge.js.map +1 -1
  185. package/dist/languages/go/GoAdapter.d.ts +66 -23
  186. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  187. package/dist/languages/go/GoAdapter.js +553 -474
  188. package/dist/languages/go/GoAdapter.js.map +1 -1
  189. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +38 -9
  190. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -1
  191. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +111 -74
  192. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
  193. package/dist/languages/tree-sitter/converter.d.ts +18 -0
  194. package/dist/languages/tree-sitter/converter.d.ts.map +1 -1
  195. package/dist/languages/tree-sitter/converter.js +18 -0
  196. package/dist/languages/tree-sitter/converter.js.map +1 -1
  197. package/dist/languages/tree-sitter/parser.d.ts +39 -2
  198. package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
  199. package/dist/languages/tree-sitter/parser.js +95 -12
  200. package/dist/languages/tree-sitter/parser.js.map +1 -1
  201. package/dist/languages/types.d.ts +67 -2
  202. package/dist/languages/types.d.ts.map +1 -1
  203. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +253 -62
  204. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  205. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +1461 -791
  206. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  207. package/dist/mcp-tools/whitelistTools.d.ts +1 -1
  208. package/dist/mcp-tools-shared.d.ts.map +1 -1
  209. package/dist/mcp-tools-shared.js +1 -0
  210. package/dist/mcp-tools-shared.js.map +1 -1
  211. package/dist/mcpAuditJobs.d.ts.map +1 -1
  212. package/dist/mcpAuditJobs.js +1 -0
  213. package/dist/mcpAuditJobs.js.map +1 -1
  214. package/dist/pipeline.d.ts +30 -1
  215. package/dist/pipeline.d.ts.map +1 -1
  216. package/dist/pipeline.js +527 -203
  217. package/dist/pipeline.js.map +1 -1
  218. package/dist/pipelineAdapters.d.ts +5 -12
  219. package/dist/pipelineAdapters.d.ts.map +1 -1
  220. package/dist/pipelineAdapters.js +175 -100
  221. package/dist/pipelineAdapters.js.map +1 -1
  222. package/dist/presets/presets.d.ts +54 -0
  223. package/dist/presets/presets.d.ts.map +1 -0
  224. package/dist/presets/presets.js +181 -0
  225. package/dist/presets/presets.js.map +1 -0
  226. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  227. package/dist/reporting/sarifReportGenerator.js +0 -2
  228. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  229. package/dist/ruleAliases.d.ts +67 -0
  230. package/dist/ruleAliases.d.ts.map +1 -0
  231. package/dist/ruleAliases.js +79 -0
  232. package/dist/ruleAliases.js.map +1 -0
  233. package/dist/styles/cssAstExtractor.d.ts +20 -5
  234. package/dist/styles/cssAstExtractor.d.ts.map +1 -1
  235. package/dist/styles/cssAstExtractor.js +247 -9
  236. package/dist/styles/cssAstExtractor.js.map +1 -1
  237. package/dist/styles/styleIndexer.js +13 -4
  238. package/dist/styles/styleIndexer.js.map +1 -1
  239. package/dist/styles/tailwindConfigLoader.d.ts +8 -6
  240. package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
  241. package/dist/styles/tailwindConfigLoader.js +61 -15
  242. package/dist/styles/tailwindConfigLoader.js.map +1 -1
  243. package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
  244. package/dist/styles/tailwindUtilityExpander.js +13 -1
  245. package/dist/styles/tailwindUtilityExpander.js.map +1 -1
  246. package/dist/types.d.ts +201 -1
  247. package/dist/types.d.ts.map +1 -1
  248. package/dist/types.js +8 -0
  249. package/dist/types.js.map +1 -1
  250. package/package.json +7 -4
  251. package/plugin/.claude-plugin/plugin.json +1 -1
  252. package/plugin/hooks/hooks.json +1 -1
  253. package/plugin/scripts/hook-audit.sh +25 -7
  254. package/plugin/skills/code-auditor/SKILL.md +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/analyzers/provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/analyzers/provenance.ts"],"names":[],"mappings":"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"}
@@ -9,14 +9,22 @@ import { ReactViolation, ReactAnalyzerConfig, ComponentMetadata, ComponentScanRe
9
9
  export declare const DEFAULT_REACT_CONFIG: ReactAnalyzerConfig;
10
10
  /**
11
11
  * Analyze a single component for violations
12
+ * @param component
13
+ * @param config
14
+ * @param scanResult
15
+ * @returns
12
16
  */
13
17
  export declare function analyzeComponent(component: ComponentMetadata, config: ReactAnalyzerConfig, scanResult: ComponentScanResult): ReactViolation[];
14
18
  /**
15
19
  * Check for circular dependencies between components
20
+ * @param componentTree
21
+ * @returns
16
22
  */
17
23
  export declare function checkCircularDependencies(componentTree: Map<string, Set<string>>): ReactViolation[];
18
24
  /**
19
25
  * Check for proper error boundary usage
26
+ * @param scanResults
27
+ * @returns
20
28
  */
21
29
  export declare function checkErrorBoundaryUsage(scanResults: ComponentScanResult[]): ReactViolation[];
22
30
  /**
@@ -26,6 +34,9 @@ export declare function checkErrorBoundaryUsage(scanResults: ComponentScanResult
26
34
  * intrinsic element from the watch list) and flags raw usages of that element outside
27
35
  * the wrapper's definition. A {@link ReactAnalyzerConfig.componentMap} overrides
28
36
  * auto-detection, making every raw usage a warning.
37
+ * @param config
38
+ * @param scanResults
39
+ * @returns
29
40
  */
30
41
  export declare function checkRawElements(scanResults: ComponentScanResult[], config: ReactAnalyzerConfig): ReactViolation[];
31
42
  //# sourceMappingURL=reactAnalyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/reactAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAyBlC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,mBAAmB,GAC9B,cAAc,EAAE,CAsElB;AAwLD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACtC,cAAc,EAAE,CAkDlB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,cAAc,EAAE,CA+B5F;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,mBAAmB,EAAE,EAClC,MAAM,EAAE,mBAAmB,GAC1B,cAAc,EAAE,CAiHlB"}
1
+ {"version":3,"file":"reactAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/reactAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAyBlC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,mBAAmB,GAC9B,cAAc,EAAE,CAgClB;AA8RD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACtC,cAAc,EAAE,CA2BlB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,cAAc,EAAE,CA+B5F;AAyID;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,mBAAmB,EAAE,EAClC,MAAM,EAAE,mBAAmB,GAC1B,cAAc,EAAE,CA4ClB"}
@@ -2,6 +2,7 @@
2
2
  * React Component Analyzer
3
3
  * Analyzes React components for best practices, performance issues, and common violations
4
4
  */
5
+ import { withRuleTiming } from './ruleTiming.js';
5
6
  /**
6
7
  * Default configuration for React analyzer
7
8
  */
@@ -29,12 +30,42 @@ export const DEFAULT_REACT_CONFIG = {
29
30
  };
30
31
  /**
31
32
  * Analyze a single component for violations
33
+ * @param component
34
+ * @param config
35
+ * @param scanResult
36
+ * @returns
32
37
  */
33
38
  export function analyzeComponent(component, config, scanResult) {
34
39
  const violations = [];
35
- // Check component complexity
36
- if (component.complexity && component.complexity > config.maxComponentComplexity) {
37
- violations.push({
40
+ violations.push(...checkComponentComplexity(component, config));
41
+ // Check hooks rules for functional components
42
+ if (config.checkHooksRules && component.hooks && component.hooks.length > 0) {
43
+ violations.push(...checkHooksRules(component));
44
+ }
45
+ // Check for missing props validation (TypeScript users might skip this)
46
+ violations.push(...checkPropsValidation(component, config));
47
+ // Check for missing error boundary in complex components
48
+ violations.push(...checkErrorBoundary(component, config));
49
+ // Check for performance issues
50
+ if (config.checkUnnecessaryRerenders) {
51
+ violations.push(...checkPerformanceIssues(component, config));
52
+ }
53
+ // Check for accessibility issues
54
+ if (config.checkAccessibility && component.jsxElements) {
55
+ violations.push(...checkAccessibility(component));
56
+ }
57
+ // Check for missing keys in lists
58
+ if (config.requireKeyProps && component.jsxElements) {
59
+ violations.push(...checkMissingKeys(component));
60
+ }
61
+ return violations;
62
+ }
63
+ /** Check component complexity and push a violation when over threshold. */
64
+ function checkComponentComplexity(component, config) {
65
+ if (!(component.complexity && component.complexity > config.maxComponentComplexity)) {
66
+ return [];
67
+ }
68
+ return [{
38
69
  file: component.filePath,
39
70
  line: component.lineNumber,
40
71
  severity: 'warning',
@@ -47,15 +78,14 @@ export function analyzeComponent(component, config, scanResult) {
47
78
  maxComplexity: config.maxComponentComplexity
48
79
  },
49
80
  suggestion: 'Consider breaking this component into smaller, more focused components'
50
- });
51
- }
52
- // Check hooks rules for functional components
53
- if (config.checkHooksRules && component.hooks && component.hooks.length > 0) {
54
- violations.push(...checkHooksRules(component));
81
+ }];
82
+ }
83
+ /** Check for missing props validation and push a violation when absent. */
84
+ function checkPropsValidation(component, config) {
85
+ if (!config.requirePropTypes || hasPropsValidation(component)) {
86
+ return [];
55
87
  }
56
- // Check for missing props validation (TypeScript users might skip this)
57
- if (config.requirePropTypes && !hasPropsValidation(component)) {
58
- violations.push({
88
+ return [{
59
89
  file: component.filePath,
60
90
  line: component.lineNumber,
61
91
  severity: 'warning',
@@ -64,11 +94,14 @@ export function analyzeComponent(component, config, scanResult) {
64
94
  rule: 'missing-props',
65
95
  violationType: 'missing-props',
66
96
  suggestion: 'Add TypeScript interface or PropTypes for component props'
67
- });
97
+ }];
98
+ }
99
+ /** Check for a missing error boundary on complex components. */
100
+ function checkErrorBoundary(component, config) {
101
+ if (!config.requireErrorBoundaries || !shouldHaveErrorBoundary(component)) {
102
+ return [];
68
103
  }
69
- // Check for missing error boundary in complex components
70
- if (config.requireErrorBoundaries && shouldHaveErrorBoundary(component)) {
71
- violations.push({
104
+ return [{
72
105
  file: component.filePath,
73
106
  line: component.lineNumber,
74
107
  severity: 'warning',
@@ -77,21 +110,7 @@ export function analyzeComponent(component, config, scanResult) {
77
110
  rule: 'no-error-boundary',
78
111
  violationType: 'no-error-boundary',
79
112
  suggestion: 'Wrap this component in an error boundary to handle runtime errors gracefully'
80
- });
81
- }
82
- // Check for performance issues
83
- if (config.checkUnnecessaryRerenders) {
84
- violations.push(...checkPerformanceIssues(component, config));
85
- }
86
- // Check for accessibility issues
87
- if (config.checkAccessibility && component.jsxElements) {
88
- violations.push(...checkAccessibility(component));
89
- }
90
- // Check for missing keys in lists
91
- if (config.requireKeyProps && component.jsxElements) {
92
- violations.push(...checkMissingKeys(component));
93
- }
94
- return violations;
113
+ }];
95
114
  }
96
115
  /**
97
116
  * Check React hooks rules
@@ -251,37 +270,43 @@ function checkMissingKeys(component) {
251
270
  }
252
271
  return violations;
253
272
  }
273
+ /** Recursively search for a cycle reachable from `component`. */
274
+ function findCycle(ctx, component, path = []) {
275
+ if (ctx.recursionStack.has(component)) {
276
+ return path.concat(component);
277
+ }
278
+ if (ctx.visited.has(component)) {
279
+ return null;
280
+ }
281
+ ctx.visited.add(component);
282
+ ctx.recursionStack.add(component);
283
+ const dependencies = ctx.componentTree.get(component);
284
+ if (dependencies) {
285
+ for (const dep of dependencies) {
286
+ const cycle = findCycle(ctx, dep, path.concat(component));
287
+ if (cycle) {
288
+ return cycle;
289
+ }
290
+ }
291
+ }
292
+ ctx.recursionStack.delete(component);
293
+ return null;
294
+ }
254
295
  /**
255
296
  * Check for circular dependencies between components
297
+ * @param componentTree
298
+ * @returns
256
299
  */
257
300
  export function checkCircularDependencies(componentTree) {
258
301
  const violations = [];
259
- const visited = new Set();
260
- const recursionStack = new Set();
261
- function hasCycle(component, path = []) {
262
- if (recursionStack.has(component)) {
263
- return path.concat(component);
264
- }
265
- if (visited.has(component)) {
266
- return null;
267
- }
268
- visited.add(component);
269
- recursionStack.add(component);
270
- const dependencies = componentTree.get(component);
271
- if (dependencies) {
272
- for (const dep of dependencies) {
273
- const cycle = hasCycle(dep, path.concat(component));
274
- if (cycle) {
275
- return cycle;
276
- }
277
- }
278
- }
279
- recursionStack.delete(component);
280
- return null;
281
- }
302
+ const ctx = {
303
+ componentTree,
304
+ visited: new Set(),
305
+ recursionStack: new Set(),
306
+ };
282
307
  // Check each component for cycles
283
308
  for (const [component] of componentTree) {
284
- const cycle = hasCycle(component);
309
+ const cycle = findCycle(ctx, component);
285
310
  if (cycle) {
286
311
  violations.push({
287
312
  file: 'component-dependencies',
@@ -292,13 +317,15 @@ export function checkCircularDependencies(componentTree) {
292
317
  suggestion: 'Refactor components to remove circular dependencies'
293
318
  });
294
319
  // Mark all components in cycle as visited to avoid duplicate reports
295
- cycle.forEach(c => visited.add(c));
320
+ cycle.forEach(c => ctx.visited.add(c));
296
321
  }
297
322
  }
298
323
  return violations;
299
324
  }
300
325
  /**
301
326
  * Check for proper error boundary usage
327
+ * @param scanResults
328
+ * @returns
302
329
  */
303
330
  export function checkErrorBoundaryUsage(scanResults) {
304
331
  const violations = [];
@@ -329,67 +356,71 @@ export function checkErrorBoundaryUsage(scanResults) {
329
356
  return violations;
330
357
  }
331
358
  /**
332
- * Check for raw intrinsic element usage when project-defined wrappers exist (Spec 10 R4).
333
- *
334
- * Auto-detects wrapper components (exported components whose rendered root is a single
335
- * intrinsic element from the watch list) and flags raw usages of that element outside
336
- * the wrapper's definition. A {@link ReactAnalyzerConfig.componentMap} overrides
337
- * auto-detection, making every raw usage a warning.
359
+ * Build the intrinsic-element wrapper map, either from the user-provided
360
+ * {@link ReactAnalyzerConfig.componentMap} or by auto-detecting exported
361
+ * components whose rendered root is a single watch-list intrinsic element.
338
362
  */
339
- export function checkRawElements(scanResults, config) {
340
- const violations = [];
341
- const watchList = config.rawElementWatchList ?? ['button', 'input', 'select', 'textarea', 'table'];
342
- const watchSet = new Set(watchList);
343
- // Map: intrinsic element → { wrapperName, wrapperFile }
344
- const wrapperMap = new Map();
345
- // ── Phase 1: Build wrapper map ─────────────────────────────────────────
363
+ function buildRawElementWrapperMap(scanResults, config, watchSet) {
346
364
  if (config.componentMap) {
347
365
  // User-provided overrides — trust them unconditionally
348
- for (const [element, wrapperName] of Object.entries(config.componentMap)) {
349
- // Try to locate the wrapper component's file in scan results
350
- let wrapperFile = 'unknown';
351
- for (const result of scanResults) {
352
- const match = result.components.find(c => c.name === wrapperName);
353
- if (match) {
354
- wrapperFile = match.filePath;
355
- break;
356
- }
366
+ return buildWrapperMapFromConfig(scanResults, config.componentMap);
367
+ }
368
+ // Auto-detect: an exported component whose jsxElements contains exactly one
369
+ // watch-list intrinsic element (the thing being wrapped).
370
+ return autoDetectWrapperMap(scanResults, watchSet);
371
+ }
372
+ /** Build the wrapper map from user-provided {@link ReactAnalyzerConfig.componentMap}. */
373
+ function buildWrapperMapFromConfig(scanResults, componentMap) {
374
+ const wrapperMap = new Map();
375
+ for (const [element, wrapperName] of Object.entries(componentMap)) {
376
+ // Try to locate the wrapper component's file in scan results
377
+ let wrapperFile = 'unknown';
378
+ for (const result of scanResults) {
379
+ const match = result.components.find(c => c.name === wrapperName);
380
+ if (match) {
381
+ wrapperFile = match.filePath;
382
+ break;
357
383
  }
358
- wrapperMap.set(element, { wrapperName, wrapperFile });
359
384
  }
385
+ wrapperMap.set(element, { wrapperName, wrapperFile });
360
386
  }
361
- else {
362
- // Auto-detect: an exported component whose jsxElements contains exactly one
363
- // watch-list intrinsic element (the thing being wrapped).
364
- for (const result of scanResults) {
365
- for (const component of result.components) {
366
- if (!component.isExported)
367
- continue;
368
- if (!component.jsxElements || component.jsxElements.length === 0)
369
- continue;
370
- // Filter to intrinsic elements (lowercase-first-character tag names)
371
- const intrinsicElements = component.jsxElements.filter(el => {
372
- const firstChar = el.charAt(0);
373
- return firstChar === firstChar.toLowerCase() && firstChar !== firstChar.toUpperCase();
374
- });
375
- // A single intrinsic from the watch list → wrapper candidate
376
- if (intrinsicElements.length === 1 && watchSet.has(intrinsicElements[0])) {
377
- const element = intrinsicElements[0];
378
- // Pick the shortest-name wrapper when multiple candidates exist
379
- const existing = wrapperMap.get(element);
380
- if (!existing || component.name.length < existing.wrapperName.length) {
381
- wrapperMap.set(element, {
382
- wrapperName: component.name,
383
- wrapperFile: result.filePath
384
- });
385
- }
387
+ return wrapperMap;
388
+ }
389
+ /** Auto-detect wrappers from exported components rendering a single watch-list element. */
390
+ function autoDetectWrapperMap(scanResults, watchSet) {
391
+ const wrapperMap = new Map();
392
+ for (const result of scanResults) {
393
+ for (const component of result.components) {
394
+ if (!component.isExported)
395
+ continue;
396
+ if (!component.jsxElements || component.jsxElements.length === 0)
397
+ continue;
398
+ // Filter to intrinsic elements (lowercase-first-character tag names)
399
+ const intrinsicElements = component.jsxElements.filter(el => {
400
+ const firstChar = el.charAt(0);
401
+ return firstChar === firstChar.toLowerCase() && firstChar !== firstChar.toUpperCase();
402
+ });
403
+ // A single intrinsic from the watch list → wrapper candidate
404
+ if (intrinsicElements.length === 1 && watchSet.has(intrinsicElements[0])) {
405
+ const element = intrinsicElements[0];
406
+ // Pick the shortest-name wrapper when multiple candidates exist
407
+ const existing = wrapperMap.get(element);
408
+ if (!existing || component.name.length < existing.wrapperName.length) {
409
+ wrapperMap.set(element, {
410
+ wrapperName: component.name,
411
+ wrapperFile: result.filePath
412
+ });
386
413
  }
387
414
  }
388
415
  }
389
416
  }
390
- if (wrapperMap.size === 0)
391
- return violations;
392
- // ── Phase 2: Count raw usages and collect locations ────────────────────
417
+ return wrapperMap;
418
+ }
419
+ /**
420
+ * Count raw intrinsic-element usages across components and collect their
421
+ * locations, skipping the wrapper component's own definition.
422
+ */
423
+ function collectRawElementUsages(scanResults, watchSet, wrapperMap) {
393
424
  const rawUsageCounts = new Map();
394
425
  const rawUsageLocations = [];
395
426
  for (const result of scanResults) {
@@ -417,24 +448,56 @@ export function checkRawElements(scanResults, config) {
417
448
  }
418
449
  }
419
450
  }
420
- // ── Phase 3: Emit violations ──────────────────────────────────────────
421
- const minUsages = config.wrapperMinUsages ?? 5;
422
- const severity = config.componentMap ? 'warning' : 'suggestion';
423
- for (const loc of rawUsageLocations) {
424
- const count = rawUsageCounts.get(loc.element) || 0;
425
- if (count < minUsages)
426
- continue;
427
- violations.push({
428
- file: loc.filePath,
429
- line: loc.line,
430
- severity,
431
- message: `raw \`<${loc.element}>\` — this project uses \`${loc.wrapperName}\` (${loc.wrapperFile})`,
432
- componentName: loc.componentName,
433
- rule: 'raw-element',
434
- violationType: 'raw-element',
435
- suggestion: `Replace raw <${loc.element}> with the project's <${loc.wrapperName}> component`
436
- });
437
- }
438
- return violations;
451
+ return { rawUsageCounts, rawUsageLocations };
452
+ }
453
+ /**
454
+ * Check for raw intrinsic element usage when project-defined wrappers exist (Spec 10 R4).
455
+ *
456
+ * Auto-detects wrapper components (exported components whose rendered root is a single
457
+ * intrinsic element from the watch list) and flags raw usages of that element outside
458
+ * the wrapper's definition. A {@link ReactAnalyzerConfig.componentMap} overrides
459
+ * auto-detection, making every raw usage a warning.
460
+ * @param config
461
+ * @param scanResults
462
+ * @returns
463
+ */
464
+ export function checkRawElements(scanResults, config) {
465
+ return withRuleTiming('raw-element', () => {
466
+ const violations = [];
467
+ const watchList = config.rawElementWatchList ?? ['button', 'input', 'select', 'textarea', 'table'];
468
+ const watchSet = new Set(watchList);
469
+ // ── Phase 1: Build wrapper map ─────────────────────────────────────────
470
+ const wrapperMap = buildRawElementWrapperMap(scanResults, config, watchSet);
471
+ if (wrapperMap.size === 0)
472
+ return violations;
473
+ // ── Phase 2: Count raw usages and collect locations ────────────────────
474
+ const { rawUsageCounts, rawUsageLocations } = collectRawElementUsages(scanResults, watchSet, wrapperMap);
475
+ // ── Phase 3: Emit violations ──────────────────────────────────────────
476
+ const minUsages = config.wrapperMinUsages ?? 5;
477
+ const severity = config.componentMap ? 'warning' : 'suggestion';
478
+ for (const loc of rawUsageLocations) {
479
+ const count = rawUsageCounts.get(loc.element) || 0;
480
+ if (count < minUsages)
481
+ continue;
482
+ violations.push({
483
+ file: loc.filePath,
484
+ line: loc.line,
485
+ severity,
486
+ message: `raw \`<${loc.element}>\` — this project uses \`${loc.wrapperName}\` (${loc.wrapperFile})`,
487
+ componentName: loc.componentName,
488
+ rule: 'raw-element',
489
+ violationType: 'raw-element',
490
+ suggestion: `Replace raw <${loc.element}> with the project's <${loc.wrapperName}> component`,
491
+ resolution: {
492
+ action: 'use-wrapper',
493
+ summary: `Replace raw <${loc.element}> in ${loc.componentName} with the project's <${loc.wrapperName}> component (${loc.wrapperFile}).`,
494
+ symbols: [loc.wrapperName],
495
+ files: [loc.filePath, loc.wrapperFile],
496
+ lines: [loc.line],
497
+ },
498
+ });
499
+ }
500
+ return violations;
501
+ });
439
502
  }
440
503
  //# sourceMappingURL=reactAnalyzer.js.map