code-auditor-mcp 3.1.1 → 3.4.1

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 (361) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +724 -1
  3. package/README.md +85 -11
  4. package/dist/__test_tmp__/spec18_test.d.ts +2 -0
  5. package/dist/__test_tmp__/spec18_test.d.ts.map +1 -0
  6. package/dist/__test_tmp__/spec18_test.js +5 -0
  7. package/dist/__test_tmp__/spec18_test.js.map +1 -0
  8. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +6 -0
  9. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +1 -0
  10. package/dist/__tests__/fixtures/spec-20/scripts/tool.js +12 -0
  11. package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +1 -0
  12. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +7 -0
  13. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +1 -0
  14. package/dist/__tests__/fixtures/spec-20/src/demo-module.js +13 -0
  15. package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +1 -0
  16. package/dist/analyzers/analyzerUtils.js +2 -2
  17. package/dist/analyzers/analyzerUtils.js.map +1 -1
  18. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +1 -1
  19. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  20. package/dist/analyzers/cross-language/APIContractAnalyzer.js +2 -2
  21. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  22. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts +3 -0
  23. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
  24. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js +3 -3
  25. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
  26. package/dist/analyzers/cross-language/SchemaValidator.d.ts +1 -1
  27. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  28. package/dist/analyzers/cross-language/SchemaValidator.js +2 -2
  29. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  30. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +83 -0
  31. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -0
  32. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +611 -0
  33. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -0
  34. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  35. package/dist/analyzers/documentationAnalyzer.js +8 -4
  36. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  37. package/dist/analyzers/orm/adapterRegistry.d.ts +41 -0
  38. package/dist/analyzers/orm/adapterRegistry.d.ts.map +1 -0
  39. package/dist/analyzers/orm/adapterRegistry.js +73 -0
  40. package/dist/analyzers/orm/adapterRegistry.js.map +1 -0
  41. package/dist/analyzers/orm/drizzleAdapter.d.ts +42 -0
  42. package/dist/analyzers/orm/drizzleAdapter.d.ts.map +1 -0
  43. package/dist/analyzers/orm/drizzleAdapter.js +166 -0
  44. package/dist/analyzers/orm/drizzleAdapter.js.map +1 -0
  45. package/dist/analyzers/orm/index.d.ts +14 -0
  46. package/dist/analyzers/orm/index.d.ts.map +1 -0
  47. package/dist/analyzers/orm/index.js +24 -0
  48. package/dist/analyzers/orm/index.js.map +1 -0
  49. package/dist/analyzers/orm/prismaAdapter.d.ts +45 -0
  50. package/dist/analyzers/orm/prismaAdapter.d.ts.map +1 -0
  51. package/dist/analyzers/orm/prismaAdapter.js +170 -0
  52. package/dist/analyzers/orm/prismaAdapter.js.map +1 -0
  53. package/dist/analyzers/orm/types.d.ts +63 -0
  54. package/dist/analyzers/orm/types.d.ts.map +1 -0
  55. package/dist/analyzers/orm/types.js +10 -0
  56. package/dist/analyzers/orm/types.js.map +1 -0
  57. package/dist/analyzers/provenance.d.ts +133 -0
  58. package/dist/analyzers/provenance.d.ts.map +1 -0
  59. package/dist/analyzers/provenance.js +1041 -0
  60. package/dist/analyzers/provenance.js.map +1 -0
  61. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  62. package/dist/analyzers/reactAnalyzer.js +117 -1
  63. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  64. package/dist/analyzers/ruleRegistry.d.ts +38 -0
  65. package/dist/analyzers/ruleRegistry.d.ts.map +1 -0
  66. package/dist/analyzers/ruleRegistry.js +123 -0
  67. package/dist/analyzers/ruleRegistry.js.map +1 -0
  68. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +58 -0
  69. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -0
  70. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +445 -0
  71. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -0
  72. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +52 -0
  73. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  74. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +108 -26
  75. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  76. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +64 -0
  77. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  78. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +259 -53
  79. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  80. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  81. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +5 -15
  82. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  83. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  84. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +10 -10
  85. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  86. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +25 -0
  87. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  88. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +250 -59
  89. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  90. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +103 -0
  91. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -0
  92. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +750 -0
  93. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -0
  94. package/dist/auditRunner.d.ts.map +1 -1
  95. package/dist/auditRunner.js +499 -4
  96. package/dist/auditRunner.js.map +1 -1
  97. package/dist/baseline.d.ts +98 -0
  98. package/dist/baseline.d.ts.map +1 -0
  99. package/dist/baseline.js +184 -0
  100. package/dist/baseline.js.map +1 -0
  101. package/dist/churn/churnExtractor.d.ts +32 -0
  102. package/dist/churn/churnExtractor.d.ts.map +1 -0
  103. package/dist/churn/churnExtractor.js +264 -0
  104. package/dist/churn/churnExtractor.js.map +1 -0
  105. package/dist/cli.js +1218 -11
  106. package/dist/cli.js.map +1 -1
  107. package/dist/codeIndexDB-enhanced.js +1 -1
  108. package/dist/codeIndexDB-enhanced.js.map +1 -1
  109. package/dist/codeIndexDB.d.ts +101 -0
  110. package/dist/codeIndexDB.d.ts.map +1 -1
  111. package/dist/codeIndexDB.js +665 -5
  112. package/dist/codeIndexDB.js.map +1 -1
  113. package/dist/config/configLoader.d.ts.map +1 -1
  114. package/dist/config/configLoader.js +104 -7
  115. package/dist/config/configLoader.js.map +1 -1
  116. package/dist/config/defaults.d.ts +72 -1
  117. package/dist/config/defaults.d.ts.map +1 -1
  118. package/dist/config/defaults.js +146 -15
  119. package/dist/config/defaults.js.map +1 -1
  120. package/dist/config/pathProfiles.d.ts +38 -0
  121. package/dist/config/pathProfiles.d.ts.map +1 -0
  122. package/dist/config/pathProfiles.js +47 -0
  123. package/dist/config/pathProfiles.js.map +1 -0
  124. package/dist/conventions/conventionMiner.d.ts +63 -0
  125. package/dist/conventions/conventionMiner.d.ts.map +1 -0
  126. package/dist/conventions/conventionMiner.js +696 -0
  127. package/dist/conventions/conventionMiner.js.map +1 -0
  128. package/dist/coverage/coverageService.d.ts +49 -0
  129. package/dist/coverage/coverageService.d.ts.map +1 -0
  130. package/dist/coverage/coverageService.js +117 -0
  131. package/dist/coverage/coverageService.js.map +1 -0
  132. package/dist/coverage/istanbulParser.d.ts +84 -0
  133. package/dist/coverage/istanbulParser.d.ts.map +1 -0
  134. package/dist/coverage/istanbulParser.js +120 -0
  135. package/dist/coverage/istanbulParser.js.map +1 -0
  136. package/dist/coverage/lcovParser.d.ts +40 -0
  137. package/dist/coverage/lcovParser.d.ts.map +1 -0
  138. package/dist/coverage/lcovParser.js +168 -0
  139. package/dist/coverage/lcovParser.js.map +1 -0
  140. package/dist/fingerprint.d.ts +17 -0
  141. package/dist/fingerprint.d.ts.map +1 -1
  142. package/dist/fingerprint.js +42 -0
  143. package/dist/fingerprint.js.map +1 -1
  144. package/dist/grammars/tree-sitter-css.wasm +0 -0
  145. package/dist/graph/blastRadius.d.ts +27 -0
  146. package/dist/graph/blastRadius.d.ts.map +1 -0
  147. package/dist/graph/blastRadius.js +150 -0
  148. package/dist/graph/blastRadius.js.map +1 -0
  149. package/dist/graph/callGraph.d.ts +78 -0
  150. package/dist/graph/callGraph.d.ts.map +1 -0
  151. package/dist/graph/callGraph.js +484 -0
  152. package/dist/graph/callGraph.js.map +1 -0
  153. package/dist/graph/importGraph.d.ts +91 -0
  154. package/dist/graph/importGraph.d.ts.map +1 -0
  155. package/dist/graph/importGraph.js +602 -0
  156. package/dist/graph/importGraph.js.map +1 -0
  157. package/dist/graph/outputFormatter.d.ts +55 -0
  158. package/dist/graph/outputFormatter.d.ts.map +1 -0
  159. package/dist/graph/outputFormatter.js +283 -0
  160. package/dist/graph/outputFormatter.js.map +1 -0
  161. package/dist/hooks/codex.d.ts +36 -1
  162. package/dist/hooks/codex.d.ts.map +1 -1
  163. package/dist/hooks/codex.js +88 -54
  164. package/dist/hooks/codex.js.map +1 -1
  165. package/dist/hotspots/hotspotScorer.d.ts +20 -0
  166. package/dist/hotspots/hotspotScorer.d.ts.map +1 -0
  167. package/dist/hotspots/hotspotScorer.js +202 -0
  168. package/dist/hotspots/hotspotScorer.js.map +1 -0
  169. package/dist/invariants/invariant-rules.schema.json +42 -1
  170. package/dist/invariants/ruleEngine.d.ts +4 -1
  171. package/dist/invariants/ruleEngine.d.ts.map +1 -1
  172. package/dist/invariants/ruleEngine.js +141 -5
  173. package/dist/invariants/ruleEngine.js.map +1 -1
  174. package/dist/invariants/ruleValidator.d.ts.map +1 -1
  175. package/dist/invariants/ruleValidator.js +62 -1
  176. package/dist/invariants/ruleValidator.js.map +1 -1
  177. package/dist/invariants/types.d.ts +23 -2
  178. package/dist/invariants/types.d.ts.map +1 -1
  179. package/dist/languages/UniversalAnalyzer.d.ts +1 -1
  180. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
  181. package/dist/languages/UniversalAnalyzer.js +61 -4
  182. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  183. package/dist/languages/index.d.ts +1 -0
  184. package/dist/languages/index.d.ts.map +1 -1
  185. package/dist/languages/index.js +3 -0
  186. package/dist/languages/index.js.map +1 -1
  187. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +59 -0
  188. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -0
  189. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +236 -0
  190. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -0
  191. package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
  192. package/dist/languages/tree-sitter/parser.js +2 -0
  193. package/dist/languages/tree-sitter/parser.js.map +1 -1
  194. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  195. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +61 -10
  196. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  197. package/dist/ledger.d.ts +128 -0
  198. package/dist/ledger.d.ts.map +1 -0
  199. package/dist/ledger.js +345 -0
  200. package/dist/ledger.js.map +1 -0
  201. package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
  202. package/dist/mcp-tools/projectTasks.js +9 -14
  203. package/dist/mcp-tools/projectTasks.js.map +1 -1
  204. package/dist/mcp.js +0 -0
  205. package/dist/mcpAuditJobs.d.ts.map +1 -1
  206. package/dist/mcpAuditJobs.js +3 -0
  207. package/dist/mcpAuditJobs.js.map +1 -1
  208. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  209. package/dist/reporting/csvReportGenerator.js +7 -1
  210. package/dist/reporting/csvReportGenerator.js.map +1 -1
  211. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  212. package/dist/reporting/htmlReportGenerator.js +5 -1
  213. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  214. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  215. package/dist/reporting/jsonReportGenerator.js +10 -2
  216. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  217. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  218. package/dist/reporting/sarifReportGenerator.js +17 -17
  219. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  220. package/dist/scripts/runBench.d.ts +94 -0
  221. package/dist/scripts/runBench.d.ts.map +1 -0
  222. package/dist/scripts/runBench.js +1559 -0
  223. package/dist/scripts/runBench.js.map +1 -0
  224. package/dist/search/QueryParser.d.ts.map +1 -1
  225. package/dist/search/QueryParser.js +51 -4
  226. package/dist/search/QueryParser.js.map +1 -1
  227. package/dist/services/CodeMapGenerator.d.ts +33 -0
  228. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  229. package/dist/services/CodeMapGenerator.js +404 -0
  230. package/dist/services/CodeMapGenerator.js.map +1 -1
  231. package/dist/styles/normalizer.d.ts +37 -0
  232. package/dist/styles/normalizer.d.ts.map +1 -0
  233. package/dist/styles/normalizer.js +301 -0
  234. package/dist/styles/normalizer.js.map +1 -0
  235. package/dist/styles/styleExtractor.d.ts +38 -0
  236. package/dist/styles/styleExtractor.d.ts.map +1 -0
  237. package/dist/styles/styleExtractor.js +630 -0
  238. package/dist/styles/styleExtractor.js.map +1 -0
  239. package/dist/styles/styleIndexer.d.ts +35 -0
  240. package/dist/styles/styleIndexer.d.ts.map +1 -0
  241. package/dist/styles/styleIndexer.js +266 -0
  242. package/dist/styles/styleIndexer.js.map +1 -0
  243. package/dist/styles/tailwindConfigLoader.d.ts +38 -0
  244. package/dist/styles/tailwindConfigLoader.d.ts.map +1 -0
  245. package/dist/styles/tailwindConfigLoader.js +374 -0
  246. package/dist/styles/tailwindConfigLoader.js.map +1 -0
  247. package/dist/styles/tailwindExpander.d.ts +38 -0
  248. package/dist/styles/tailwindExpander.d.ts.map +1 -0
  249. package/dist/styles/tailwindExpander.js +637 -0
  250. package/dist/styles/tailwindExpander.js.map +1 -0
  251. package/dist/styles/types.d.ts +92 -0
  252. package/dist/styles/types.d.ts.map +1 -0
  253. package/dist/styles/types.js +10 -0
  254. package/dist/styles/types.js.map +1 -0
  255. package/dist/symbols.d.ts +21 -0
  256. package/dist/symbols.d.ts.map +1 -0
  257. package/dist/symbols.js +31 -0
  258. package/dist/symbols.js.map +1 -0
  259. package/dist/types.d.ts +326 -3
  260. package/dist/types.d.ts.map +1 -1
  261. package/dist/types.js.map +1 -1
  262. package/dist/utils/fileDiscovery.d.ts +1 -0
  263. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  264. package/dist/utils/fileDiscovery.js +8 -2
  265. package/dist/utils/fileDiscovery.js.map +1 -1
  266. package/package.json +9 -5
  267. package/plugin/.claude-plugin/plugin.json +1 -1
  268. package/plugin/scripts/hook-audit.sh +5 -1
  269. package/plugin/skills/code-auditor/SKILL.md +51 -0
  270. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts +0 -21
  271. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts.map +0 -1
  272. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js +0 -21
  273. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js.map +0 -1
  274. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts +0 -13
  275. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts.map +0 -1
  276. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js +0 -12
  277. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js.map +0 -1
  278. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts +0 -11
  279. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts.map +0 -1
  280. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js +0 -22
  281. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js.map +0 -1
  282. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts +0 -9
  283. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts.map +0 -1
  284. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js +0 -13
  285. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js.map +0 -1
  286. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts +0 -13
  287. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts.map +0 -1
  288. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js +0 -18
  289. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js.map +0 -1
  290. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts +0 -10
  291. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts.map +0 -1
  292. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js +0 -16
  293. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js.map +0 -1
  294. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts +0 -14
  295. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts.map +0 -1
  296. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js +0 -18
  297. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js.map +0 -1
  298. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts +0 -13
  299. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts.map +0 -1
  300. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js +0 -22
  301. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js.map +0 -1
  302. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts +0 -10
  303. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts.map +0 -1
  304. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js +0 -20
  305. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js.map +0 -1
  306. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts +0 -18
  307. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts.map +0 -1
  308. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js +0 -28
  309. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js.map +0 -1
  310. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts +0 -11
  311. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts.map +0 -1
  312. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js +0 -31
  313. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js.map +0 -1
  314. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts +0 -11
  315. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts.map +0 -1
  316. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js +0 -18
  317. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js.map +0 -1
  318. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts +0 -13
  319. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts.map +0 -1
  320. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js +0 -61
  321. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js.map +0 -1
  322. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts +0 -10
  323. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts.map +0 -1
  324. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js +0 -15
  325. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js.map +0 -1
  326. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts +0 -11
  327. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts.map +0 -1
  328. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js +0 -49
  329. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js.map +0 -1
  330. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts +0 -10
  331. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts.map +0 -1
  332. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js +0 -19
  333. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js.map +0 -1
  334. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts +0 -37
  335. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts.map +0 -1
  336. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js +0 -73
  337. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js.map +0 -1
  338. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts +0 -12
  339. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts.map +0 -1
  340. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js +0 -82
  341. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js.map +0 -1
  342. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts +0 -10
  343. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts.map +0 -1
  344. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js +0 -15
  345. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js.map +0 -1
  346. package/dist/analyzers/dataAccessAnalyzer.d.ts +0 -46
  347. package/dist/analyzers/dataAccessAnalyzer.d.ts.map +0 -1
  348. package/dist/analyzers/dataAccessAnalyzer.js +0 -474
  349. package/dist/analyzers/dataAccessAnalyzer.js.map +0 -1
  350. package/dist/analyzers/dryAnalyzer.d.ts +0 -31
  351. package/dist/analyzers/dryAnalyzer.d.ts.map +0 -1
  352. package/dist/analyzers/dryAnalyzer.js +0 -734
  353. package/dist/analyzers/dryAnalyzer.js.map +0 -1
  354. package/dist/analyzers/schemaAnalyzer.d.ts +0 -23
  355. package/dist/analyzers/schemaAnalyzer.d.ts.map +0 -1
  356. package/dist/analyzers/schemaAnalyzer.js +0 -564
  357. package/dist/analyzers/schemaAnalyzer.js.map +0 -1
  358. package/dist/analyzers/solidAnalyzer.d.ts +0 -33
  359. package/dist/analyzers/solidAnalyzer.d.ts.map +0 -1
  360. package/dist/analyzers/solidAnalyzer.js +0 -847
  361. package/dist/analyzers/solidAnalyzer.js.map +0 -1
@@ -1,14 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 2: jsx-event-handler
3
- * Report section: R1.1 — Skip anonymous/inline callables
4
- *
5
- * JSX event-handler arrow functions should produce ZERO documentation findings.
6
- */
7
- export declare function Button({ label, onAction }: {
8
- label: string;
9
- onAction: () => void;
10
- }): any;
11
- export declare function List({ items }: {
12
- items: string[];
13
- }): any;
14
- //# sourceMappingURL=jsx-event-handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx-event-handler.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAE,OASlF;AAED,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,OAQlD"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 2: jsx-event-handler
3
- * Report section: R1.1 — Skip anonymous/inline callables
4
- *
5
- * JSX event-handler arrow functions should produce ZERO documentation findings.
6
- */
7
- import React from "react";
8
- export function Button({ label, onAction }) {
9
- return (<button onClick={() => onAction()} onFocus={(e) => e.currentTarget.classList.add("focused")}>
10
- {label}
11
- </button>);
12
- }
13
- export function List({ items }) {
14
- return (<ul>
15
- {items.map((item) => (<li key={item}>{item}</li>))}
16
- </ul>);
17
- }
18
- //# sourceMappingURL=jsx-event-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx-event-handler.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAA2C;IACjF,OAAO,CACL,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC1B,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAEzD;MAAA,CAAC,KAAK,CACR;IAAA,EAAE,MAAM,CAAC,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,EAAE,KAAK,EAAuB;IACjD,OAAO,CACL,CAAC,EAAE,CACD;MAAA,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAC3B,CAAC,CACJ;IAAA,EAAE,EAAE,CAAC,CACN,CAAC;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 16: nested-loops-query
3
- * Report section: R4.2 — Nested-loop attribution
4
- *
5
- * A query inside nested loops should produce a `loop-query` finding where:
6
- * - The innermost enclosing loop is cited
7
- * - The nesting depth (>1) is noted in the message
8
- * - The location is the query-call line, never line 1
9
- */
10
- export declare function checkPermissions(db: {
11
- query(sql: string, params: unknown[]): unknown[];
12
- }): void;
13
- //# sourceMappingURL=nested-loops-query.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nested-loops-query.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/nested-loops-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE;IACnC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;CAClD,GAAG,IAAI,CAeP"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 16: nested-loops-query
3
- * Report section: R4.2 — Nested-loop attribution
4
- *
5
- * A query inside nested loops should produce a `loop-query` finding where:
6
- * - The innermost enclosing loop is cited
7
- * - The nesting depth (>1) is noted in the message
8
- * - The location is the query-call line, never line 1
9
- */
10
- export function checkPermissions(db) {
11
- const users = ["admin", "editor"];
12
- const resources = ["page:home", "page:settings", "api:users"];
13
- for (const user of users) {
14
- for (const resource of resources) {
15
- // Query inside nested loops — should cite innermost loop (line ~18)
16
- // and note depth 2 in the message
17
- const result = db.query("SELECT * FROM permissions WHERE username = ? AND resource = ?", [user, resource]);
18
- console.log(result);
19
- }
20
- }
21
- }
22
- //# sourceMappingURL=nested-loops-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nested-loops-query.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/nested-loops-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,UAAU,gBAAgB,CAAC,EAEhC;IACC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IAE9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,oEAAoE;YACpE,kCAAkC;YAClC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CACrB,+DAA+D,EAC/D,CAAC,IAAI,EAAE,QAAQ,CAAC,CACjB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 14: nine-line-repeated
3
- * Report section: R3.2 — Minimum block size 5 → 15
4
- *
5
- * A 9-line code pattern repeated twice should produce ZERO findings
6
- * because it is below the 15-line minimum threshold.
7
- */
8
- export declare function calcA(x: number): number;
9
- export declare function calcB(y: number): number;
10
- //# sourceMappingURL=nine-line-repeated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nine-line-repeated.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKvC;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKvC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 14: nine-line-repeated
3
- * Report section: R3.2 — Minimum block size 5 → 15
4
- *
5
- * A 9-line code pattern repeated twice should produce ZERO findings
6
- * because it is below the 15-line minimum threshold.
7
- */
8
- export function calcA(x) {
9
- const a = x * 2;
10
- const b = a + 10;
11
- const c = b / 3;
12
- return Math.round(c);
13
- }
14
- export function calcB(y) {
15
- const a = y * 2;
16
- const b = a + 10;
17
- const c = b / 3;
18
- return Math.round(c);
19
- }
20
- //# sourceMappingURL=nine-line-repeated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nine-line-repeated.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 4: private-methods
3
- * Report section: R1.2 — Default scope is public API surface only
4
- *
5
- * Private, protected, and underscore-prefixed methods should produce ZERO
6
- * documentation findings at default scope. Public methods in exported
7
- * classes SHOULD produce findings.
8
- */
9
- export declare class UserService {
10
- /**
11
- * Public API — should be flagged if undocumented.
12
- */
13
- getActiveUsers(): string[];
14
- private validateInput;
15
- protected normalizeName(name: string): string;
16
- _internalHelper(value: number): number;
17
- }
18
- //# sourceMappingURL=private-methods.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"private-methods.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/private-methods.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qBAAa,WAAW;IACtB;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE,CAEhC;IAED,OAAO,CAAC,aAAa;IAKrB,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;IAED,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErC;CACF"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 4: private-methods
3
- * Report section: R1.2 — Default scope is public API surface only
4
- *
5
- * Private, protected, and underscore-prefixed methods should produce ZERO
6
- * documentation findings at default scope. Public methods in exported
7
- * classes SHOULD produce findings.
8
- */
9
- export class UserService {
10
- /**
11
- * Public API — should be flagged if undocumented.
12
- */
13
- getActiveUsers() {
14
- return ["Alice", "Bob"];
15
- }
16
- validateInput(data) {
17
- if (typeof data !== "object" || data === null)
18
- return false;
19
- return true;
20
- }
21
- normalizeName(name) {
22
- return name.trim().toLowerCase();
23
- }
24
- _internalHelper(value) {
25
- return Math.abs(value);
26
- }
27
- }
28
- //# sourceMappingURL=private-methods.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"private-methods.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/private-methods.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,OAAO,WAAW;IACtB;;OAEG;IACI,cAAc;QACnB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEO,aAAa,CAAC,IAAa;QACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAES,aAAa,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 19: scope-all-config
3
- * Report section: R1.4 — scope: "all" restores coverage minus callbacks
4
- *
5
- * With scope: "all", anonymous callbacks are still skipped (R1.1),
6
- * but NAMED internal functions (not exported, not methods) ARE flagged.
7
- *
8
- * Assert: internalFunction → finding, callback arrows → no findings.
9
- */
10
- export declare function getFormattedAge(age: number): string;
11
- //# sourceMappingURL=scope-all-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope-all-config.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/scope-all-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuBH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 19: scope-all-config
3
- * Report section: R1.4 — scope: "all" restores coverage minus callbacks
4
- *
5
- * With scope: "all", anonymous callbacks are still skipped (R1.1),
6
- * but NAMED internal functions (not exported, not methods) ARE flagged.
7
- *
8
- * Assert: internalFunction → finding, callback arrows → no findings.
9
- */
10
- // Callback — always skipped regardless of scope (R1.1)
11
- const items = [1, 2, 3].map((x) => x * 2);
12
- // Named internal function — should be flagged under scope: "all"
13
- function internalFunction(a, b) {
14
- const product = a * b;
15
- const sum = a + b;
16
- if (product > sum) {
17
- return product;
18
- }
19
- return sum;
20
- }
21
- // Another named internal — should be flagged
22
- function helper(name, age) {
23
- const greeting = `Hello, ${name}`;
24
- const years = age > 1 ? `${age} years` : "1 year";
25
- return `${greeting}. Age: ${years}.`;
26
- }
27
- // Named function exported — always flagged (was already in scope)
28
- export function getFormattedAge(age) {
29
- return helper("User", age);
30
- }
31
- //# sourceMappingURL=scope-all-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope-all-config.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/scope-all-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,uDAAuD;AACvD,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1C,iEAAiE;AACjE,SAAS,gBAAgB,CAAC,CAAS,EAAE,CAAS;IAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,6CAA6C;AAC7C,SAAS,MAAM,CAAC,IAAY,EAAE,GAAW;IACvC,MAAM,QAAQ,GAAG,UAAU,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,OAAO,GAAG,QAAQ,UAAU,KAAK,GAAG,CAAC;AACvC,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 8: sql-tagged-template
3
- * Report section: R2.1 — SQL-context-only extraction
4
- *
5
- * sql`SELECT * FROM heroes` should produce EXACTLY ONE unknown-table
6
- * finding ("heroes" is not a known table), and the finding should be
7
- * on the correct line (where the SQL template is, not line 1).
8
- */
9
- export declare function getHeroes(): Promise<unknown[]>;
10
- export declare function getVillains(): Promise<unknown[]>;
11
- //# sourceMappingURL=sql-tagged-template.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-tagged-template.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,wBAAgB,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAE9C;AAED,wBAAgB,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAIhD"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 8: sql-tagged-template
3
- * Report section: R2.1 — SQL-context-only extraction
4
- *
5
- * sql`SELECT * FROM heroes` should produce EXACTLY ONE unknown-table
6
- * finding ("heroes" is not a known table), and the finding should be
7
- * on the correct line (where the SQL template is, not line 1).
8
- */
9
- import { sql } from "drizzle-orm";
10
- export function getHeroes() {
11
- return sql `SELECT * FROM heroes`;
12
- }
13
- export function getVillains() {
14
- // This line should also produce a finding — "villains" is unknown
15
- const query = sql `SELECT name, power FROM villains WHERE active = true`;
16
- return query;
17
- }
18
- //# sourceMappingURL=sql-tagged-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-tagged-template.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,UAAU,SAAS;IACvB,OAAO,GAAG,CAAA,sBAAsB,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,kEAAkE;IAClE,MAAM,KAAK,GAAG,GAAG,CAAA,sDAAsD,CAAC;IACxE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 12: structural-similar-methods
3
- * Report section: R3.3 — dry/structural-similarity rule-id split
4
- *
5
- * These two functions have the same structure (token-kind pattern) but
6
- * different identifiers and literal values. They should produce:
7
- * - ZERO `dry/duplicate` findings (not token-identical)
8
- * - `dry/structural-similarity` findings (same token-kind sequence)
9
- * per the structural similarity rules.
10
- */
11
- export declare function processUserOrders(userId: number): string[];
12
- export declare function processAdminTasks(adminId: number): string[];
13
- //# sourceMappingURL=structural-similar-methods.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"structural-similar-methods.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB1D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB3D"}
@@ -1,61 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 12: structural-similar-methods
3
- * Report section: R3.3 — dry/structural-similarity rule-id split
4
- *
5
- * These two functions have the same structure (token-kind pattern) but
6
- * different identifiers and literal values. They should produce:
7
- * - ZERO `dry/duplicate` findings (not token-identical)
8
- * - `dry/structural-similarity` findings (same token-kind sequence)
9
- * per the structural similarity rules.
10
- */
11
- export function processUserOrders(userId) {
12
- const results = [];
13
- const connection = createConnection("orders_db");
14
- try {
15
- const query = "SELECT order_id, status FROM orders WHERE user_id = ?";
16
- const rows = connection.execute(query, [userId]);
17
- for (const row of rows) {
18
- if (row.status === "active") {
19
- results.push(`Order ${row.order_id}: pending`);
20
- }
21
- else if (row.status === "shipped") {
22
- results.push(`Order ${row.order_id}: delivered`);
23
- }
24
- else {
25
- results.push(`Order ${row.order_id}: unknown`);
26
- }
27
- }
28
- }
29
- finally {
30
- connection.close();
31
- }
32
- return results;
33
- }
34
- export function processAdminTasks(adminId) {
35
- const results = [];
36
- const connection = createConnection("tasks_db");
37
- try {
38
- const query = "SELECT task_id, priority FROM tasks WHERE admin_id = ?";
39
- const rows = connection.execute(query, [adminId]);
40
- for (const row of rows) {
41
- if (row.priority === "high") {
42
- results.push(`Task ${row.task_id}: urgent`);
43
- }
44
- else if (row.priority === "medium") {
45
- results.push(`Task ${row.task_id}: scheduled`);
46
- }
47
- else {
48
- results.push(`Task ${row.task_id}: backlog`);
49
- }
50
- }
51
- }
52
- finally {
53
- connection.close();
54
- }
55
- return results;
56
- }
57
- // Helper to satisfy compilation
58
- function createConnection(name) {
59
- throw new Error("stub");
60
- }
61
- //# sourceMappingURL=structural-similar-methods.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"structural-similar-methods.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,uDAAuD,CAAC;QACtE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,QAAQ,WAAW,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,QAAQ,aAAa,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,QAAQ,WAAW,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,wDAAwD,CAAC;QACvE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAElD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gCAAgC;AAChC,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 9: template-prefix-table
3
- * Report section: R2.3 — Template expressions resolve to wildcards
4
- *
5
- * Dynamic table references like `${prefix}_builds` should produce ZERO
6
- * unknown-table findings. The dynamic segment resolves to a wildcard
7
- * for known-table matching, and unknown-with-dynamic is never flagged.
8
- */
9
- export declare function getBuilds(): string;
10
- //# sourceMappingURL=template-prefix-table.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-prefix-table.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/template-prefix-table.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,wBAAgB,SAAS,IAAI,MAAM,CAIlC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 9: template-prefix-table
3
- * Report section: R2.3 — Template expressions resolve to wildcards
4
- *
5
- * Dynamic table references like `${prefix}_builds` should produce ZERO
6
- * unknown-table findings. The dynamic segment resolves to a wildcard
7
- * for known-table matching, and unknown-with-dynamic is never flagged.
8
- */
9
- const prefix = "user";
10
- export function getBuilds() {
11
- // Template expression table — should NOT be flagged
12
- const tableName = `${prefix}_builds`;
13
- return `SELECT * FROM ${tableName}`;
14
- }
15
- //# sourceMappingURL=template-prefix-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-prefix-table.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/template-prefix-table.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,MAAM,UAAU,SAAS;IACvB,oDAAoD;IACpD,MAAM,SAAS,GAAG,GAAG,MAAM,SAAS,CAAC;IACrC,OAAO,iBAAiB,SAAS,EAAE,CAAC;AACtC,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 13: token-identical-20-lines
3
- * Report section: R3.3 — dry/duplicate rule (exact token match)
4
- *
5
- * Two 20+ line identical methods should produce EXACTLY ONE `dry/duplicate`
6
- * finding, and the "first occurrence" should cite the EARLIER method
7
- * (by file+line), never the later one's own location.
8
- */
9
- export declare function formatPriceA(cents: number): string;
10
- export declare function formatPriceB(cents: number): string;
11
- //# sourceMappingURL=token-identical-20-lines.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-identical-20-lines.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBlD;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBlD"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 13: token-identical-20-lines
3
- * Report section: R3.3 — dry/duplicate rule (exact token match)
4
- *
5
- * Two 20+ line identical methods should produce EXACTLY ONE `dry/duplicate`
6
- * finding, and the "first occurrence" should cite the EARLIER method
7
- * (by file+line), never the later one's own location.
8
- */
9
- export function formatPriceA(cents) {
10
- // Convert cents to dollars with formatting
11
- const dollars = Math.floor(cents / 100);
12
- const remaining = cents % 100;
13
- const padded = remaining.toString().padStart(2, "0");
14
- // Handle negative values
15
- if (cents < 0) {
16
- const absDollars = Math.abs(dollars);
17
- const absCents = Math.abs(remaining).toString().padStart(2, "0");
18
- return `-$${absDollars}.${absCents}`;
19
- }
20
- // Format with currency symbol
21
- const formatted = `$${dollars}.${padded}`;
22
- // Include thousands separators for large amounts
23
- if (dollars >= 1000) {
24
- return formatted.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
25
- }
26
- return formatted;
27
- }
28
- // This second function is intentionally identical to formatPriceA
29
- // to test the dry/duplicate detection:
30
- export function formatPriceB(cents) {
31
- // Convert cents to dollars with formatting
32
- const dollars = Math.floor(cents / 100);
33
- const remaining = cents % 100;
34
- const padded = remaining.toString().padStart(2, "0");
35
- // Handle negative values
36
- if (cents < 0) {
37
- const absDollars = Math.abs(dollars);
38
- const absCents = Math.abs(remaining).toString().padStart(2, "0");
39
- return `-$${absDollars}.${absCents}`;
40
- }
41
- // Format with currency symbol
42
- const formatted = `$${dollars}.${padded}`;
43
- // Include thousands separators for large amounts
44
- if (dollars >= 1000) {
45
- return formatted.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
46
- }
47
- return formatted;
48
- }
49
- //# sourceMappingURL=token-identical-20-lines.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-identical-20-lines.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,2CAA2C;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAErD,yBAAyB;IACzB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjE,OAAO,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED,8BAA8B;IAC9B,MAAM,SAAS,GAAG,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;IAE1C,iDAAiD;IACjD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kEAAkE;AAClE,uCAAuC;AACvC,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,2CAA2C;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAErD,yBAAyB;IACzB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjE,OAAO,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED,8BAA8B;IAC9B,MAAM,SAAS,GAAG,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;IAE1C,iDAAiD;IACjD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 10: tsx-no-db-usage
3
- * Report section: R2.2 — File gate
4
- *
5
- * A .tsx file with no database usage and SQL-looking strings in JSX
6
- * should produce ZERO schema findings. The file gate (R2.2) should
7
- * prevent this file from being scanned for table references.
8
- */
9
- export declare function DatabaseView(): any;
10
- //# sourceMappingURL=tsx-no-db-usage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsx-no-db-usage.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,wBAAgB,YAAY,QAU3B"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 10: tsx-no-db-usage
3
- * Report section: R2.2 — File gate
4
- *
5
- * A .tsx file with no database usage and SQL-looking strings in JSX
6
- * should produce ZERO schema findings. The file gate (R2.2) should
7
- * prevent this file from being scanned for table references.
8
- */
9
- import React from "react";
10
- export function DatabaseView() {
11
- return (<div>
12
- <h1>Database Overview</h1>
13
- <pre>SELECT * FROM users</pre>
14
- <pre>INSERT INTO orders</pre>
15
- <code>DROP TABLE temp</code>
16
- <p>The quick brown fox</p>
17
- </div>);
18
- }
19
- //# sourceMappingURL=tsx-no-db-usage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsx-no-db-usage.js","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,YAAY;IAC1B,OAAO,CACL,CAAC,GAAG,CACF;MAAA,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CACzB;MAAA,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAC7B;MAAA,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAC5B;MAAA,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAC3B;MAAA,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAC3B;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 17: twenty-methods-vs-complex
3
- * Report section: R5.1/R5.2 — method-complexity vs class-size
4
- *
5
- * A class with 20 small methods (≤5 complexity each) should trigger
6
- * `solid/class-size` (suggestion) because 20 > classMethodsThreshold (15).
7
- *
8
- * A standalone function with complexity > 50 should trigger
9
- * `solid/method-complexity` (warning).
10
- *
11
- * The method-complexity warning must OUTRANK the class-size suggestion,
12
- * and the class must appear ONLY under class-size (not method-complexity).
13
- */
14
- export declare class DataProcessor {
15
- m1(n: number): number;
16
- m2(n: number): number;
17
- m3(n: number): number;
18
- m4(n: number): number;
19
- m5(n: number): number;
20
- m6(n: number): number;
21
- m7(n: number): number;
22
- m8(n: number): number;
23
- m9(n: number): number;
24
- m10(n: number): number;
25
- m11(n: number): number;
26
- m12(n: number): number;
27
- m13(n: number): number;
28
- m14(n: number): number;
29
- m15(n: number): number;
30
- m16(n: number): number;
31
- m17(n: number): number;
32
- m18(n: number): number;
33
- m19(n: number): number;
34
- m20(n: number): number;
35
- }
36
- export declare function classifyValue(value: number): string;
37
- //# sourceMappingURL=twenty-methods-vs-complex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"twenty-methods-vs-complex.d.ts","sourceRoot":"","sources":["../../../../../src/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,qBAAa,aAAa;IACxB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;IACvC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;IACzC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAmB;CAC1C;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsCnD"}
@@ -1,73 +0,0 @@
1
- /**
2
- * Spec-17 R8 Fixture 17: twenty-methods-vs-complex
3
- * Report section: R5.1/R5.2 — method-complexity vs class-size
4
- *
5
- * A class with 20 small methods (≤5 complexity each) should trigger
6
- * `solid/class-size` (suggestion) because 20 > classMethodsThreshold (15).
7
- *
8
- * A standalone function with complexity > 50 should trigger
9
- * `solid/method-complexity` (warning).
10
- *
11
- * The method-complexity warning must OUTRANK the class-size suggestion,
12
- * and the class must appear ONLY under class-size (not method-complexity).
13
- */
14
- export class DataProcessor {
15
- m1(n) { return n + 1; }
16
- m2(n) { return n + 2; }
17
- m3(n) { return n + 3; }
18
- m4(n) { return n + 4; }
19
- m5(n) { return n + 5; }
20
- m6(n) { return n + 6; }
21
- m7(n) { return n + 7; }
22
- m8(n) { return n + 8; }
23
- m9(n) { return n + 9; }
24
- m10(n) { return n + 10; }
25
- m11(n) { return n + 11; }
26
- m12(n) { return n + 12; }
27
- m13(n) { return n + 13; }
28
- m14(n) { return n + 14; }
29
- m15(n) { return n + 15; }
30
- m16(n) { return n + 16; }
31
- m17(n) { return n + 17; }
32
- m18(n) { return n + 18; }
33
- m19(n) { return n + 19; }
34
- m20(n) { return n + 20; }
35
- }
36
- // This function has high cyclomatic complexity (60+ paths)
37
- // to test solid/method-complexity detection:
38
- export function classifyValue(value) {
39
- if (value < 0) {
40
- if (value < -100) {
41
- if (value < -1000) {
42
- return value % 2 === 0 ? "very-low-even" : "very-low-odd";
43
- }
44
- return value % 2 === 0 ? "low-even" : "low-odd";
45
- }
46
- if (value % 3 === 0) {
47
- return value > -50 ? "neg-div3-high" : "neg-div3-low";
48
- }
49
- return "negative";
50
- }
51
- if (value === 0)
52
- return "zero";
53
- if (value < 100) {
54
- if (value < 50) {
55
- return value % 2 === 0 ? "small-even" : "small-odd";
56
- }
57
- return value % 5 === 0 ? "mid-div5" : "mid";
58
- }
59
- if (value < 1000) {
60
- if (value < 500) {
61
- return value % 10 === 0 ? "large-round" : "large";
62
- }
63
- if (value % 100 === 0) {
64
- return "century";
65
- }
66
- return "big";
67
- }
68
- if (value > 10000) {
69
- return value % 1000 === 0 ? "huge-round" : "huge";
70
- }
71
- return "default";
72
- }
73
- //# sourceMappingURL=twenty-methods-vs-complex.js.map