codereview-aia 0.1.3 → 0.1.4

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 (549) hide show
  1. package/dist/analysis/FindingsExtractor.d.ts +105 -0
  2. package/dist/analysis/FindingsExtractor.js +363 -0
  3. package/dist/analysis/FindingsExtractor.js.map +1 -0
  4. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
  5. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
  6. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
  7. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
  8. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
  9. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
  10. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
  11. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
  12. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
  13. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
  14. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
  15. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
  16. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
  17. package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
  18. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
  19. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
  20. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
  21. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
  22. package/dist/analysis/context/ReviewContext.d.ts +184 -0
  23. package/dist/analysis/context/ReviewContext.js +294 -0
  24. package/dist/analysis/context/ReviewContext.js.map +1 -0
  25. package/{src/analysis/context/index.ts → dist/analysis/context/index.d.ts} +0 -1
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/{src/analysis/index.ts → dist/analysis/index.d.ts} +0 -1
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/static/wpPhpcsRunner.d.ts +11 -0
  32. package/dist/analysis/static/wpPhpcsRunner.js +219 -0
  33. package/dist/analysis/static/wpPhpcsRunner.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  35. package/{src/analysis/tokens/TokenAnalysisFormatter.ts → dist/analysis/tokens/TokenAnalysisFormatter.js} +64 -75
  36. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  37. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  38. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  39. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  40. package/{src/analysis/tokens/index.ts → dist/analysis/tokens/index.d.ts} +0 -1
  41. package/dist/analysis/tokens/index.js +24 -0
  42. package/dist/analysis/tokens/index.js.map +1 -0
  43. package/dist/clients/base/abstractClient.d.ts +99 -0
  44. package/dist/clients/base/abstractClient.js +98 -0
  45. package/dist/clients/base/abstractClient.js.map +1 -0
  46. package/dist/clients/base/httpClient.d.ts +24 -0
  47. package/dist/clients/base/httpClient.js +147 -0
  48. package/dist/clients/base/httpClient.js.map +1 -0
  49. package/{src/clients/base/index.ts → dist/clients/base/index.d.ts} +0 -1
  50. package/dist/clients/base/index.js +28 -0
  51. package/dist/clients/base/index.js.map +1 -0
  52. package/dist/clients/base/modelDetection.d.ts +41 -0
  53. package/dist/clients/base/modelDetection.js +88 -0
  54. package/dist/clients/base/modelDetection.js.map +1 -0
  55. package/dist/clients/base/responseProcessor.d.ts +45 -0
  56. package/dist/clients/base/responseProcessor.js +495 -0
  57. package/dist/clients/base/responseProcessor.js.map +1 -0
  58. package/dist/clients/factory/clientFactory.d.ts +23 -0
  59. package/dist/clients/factory/clientFactory.js +50 -0
  60. package/dist/clients/factory/clientFactory.js.map +1 -0
  61. package/{src/clients/factory/index.ts → dist/clients/factory/index.d.ts} +0 -1
  62. package/dist/clients/factory/index.js +24 -0
  63. package/dist/clients/factory/index.js.map +1 -0
  64. package/{src/clients/implementations/index.ts → dist/clients/implementations/index.d.ts} +0 -1
  65. package/dist/clients/implementations/index.js +24 -0
  66. package/dist/clients/implementations/index.js.map +1 -0
  67. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  68. package/dist/clients/implementations/openRouterClient.js +294 -0
  69. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClient.d.ts +42 -0
  71. package/dist/clients/openRouterClient.js +738 -0
  72. package/dist/clients/openRouterClient.js.map +1 -0
  73. package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts} +2 -24
  74. package/dist/clients/openRouterClientWrapper.js +64 -0
  75. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  76. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  77. package/dist/clients/utils/directoryStructure.js +48 -0
  78. package/dist/clients/utils/directoryStructure.js.map +1 -0
  79. package/{src/clients/utils/index.ts → dist/clients/utils/index.d.ts} +0 -1
  80. package/dist/clients/utils/index.js +31 -0
  81. package/dist/clients/utils/index.js.map +1 -0
  82. package/dist/clients/utils/languageDetection.d.ts +13 -0
  83. package/dist/clients/utils/languageDetection.js +46 -0
  84. package/dist/clients/utils/languageDetection.js.map +1 -0
  85. package/dist/clients/utils/promptFormatter.d.ts +37 -0
  86. package/dist/clients/utils/promptFormatter.js +150 -0
  87. package/dist/clients/utils/promptFormatter.js.map +1 -0
  88. package/{src/clients/utils/promptLoader.ts → dist/clients/utils/promptLoader.d.ts} +1 -27
  89. package/dist/clients/utils/promptLoader.js +49 -0
  90. package/dist/clients/utils/promptLoader.js.map +1 -0
  91. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  92. package/dist/clients/utils/tokenCounter.js +209 -0
  93. package/dist/clients/utils/tokenCounter.js.map +1 -0
  94. package/dist/core/ApiClientSelector.d.ts +8 -0
  95. package/dist/core/ApiClientSelector.js +29 -0
  96. package/dist/core/ApiClientSelector.js.map +1 -0
  97. package/dist/core/ConfigurationService.d.ts +307 -0
  98. package/dist/core/ConfigurationService.js +516 -0
  99. package/dist/core/ConfigurationService.js.map +1 -0
  100. package/dist/core/ConsolidationService.d.ts +99 -0
  101. package/dist/core/ConsolidationService.js +341 -0
  102. package/dist/core/ConsolidationService.js.map +1 -0
  103. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  104. package/dist/core/InteractiveDisplayManager.js +70 -0
  105. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  106. package/dist/core/OutputManager.d.ts +26 -0
  107. package/dist/core/OutputManager.js +217 -0
  108. package/dist/core/OutputManager.js.map +1 -0
  109. package/dist/core/ReviewGenerator.d.ts +13 -0
  110. package/dist/core/ReviewGenerator.js +102 -0
  111. package/dist/core/ReviewGenerator.js.map +1 -0
  112. package/dist/core/fileDiscovery.d.ts +35 -0
  113. package/dist/core/fileDiscovery.js +202 -0
  114. package/dist/core/fileDiscovery.js.map +1 -0
  115. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  116. package/dist/core/handlers/EstimationHandler.js +110 -0
  117. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  118. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  119. package/dist/core/handlers/FileProcessingHandler.js +164 -0
  120. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  121. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  122. package/dist/core/handlers/OutputHandler.js +127 -0
  123. package/dist/core/handlers/OutputHandler.js.map +1 -0
  124. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  125. package/dist/core/handlers/ReviewExecutor.js +111 -0
  126. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  127. package/dist/core/reviewOrchestrator.d.ts +24 -0
  128. package/dist/core/reviewOrchestrator.js +354 -0
  129. package/dist/core/reviewOrchestrator.js.map +1 -0
  130. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  131. package/dist/core/utils/ModelInfoUtils.js +54 -0
  132. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  133. package/{src/formatters/outputFormatter.ts → dist/formatters/outputFormatter.d.ts} +2 -33
  134. package/dist/formatters/outputFormatter.js +65 -0
  135. package/dist/formatters/outputFormatter.js.map +1 -0
  136. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  137. package/dist/formatters/utils/IssueFormatters.js +67 -0
  138. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  139. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  140. package/dist/formatters/utils/JsonFormatter.js +57 -0
  141. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  142. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  143. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  144. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  145. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  146. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  147. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  148. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  149. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  150. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/plugins/PluginInterface.d.ts +44 -0
  154. package/dist/plugins/PluginInterface.js +9 -0
  155. package/dist/plugins/PluginInterface.js.map +1 -0
  156. package/dist/plugins/PluginManager.d.ts +51 -0
  157. package/dist/plugins/PluginManager.js +151 -0
  158. package/dist/plugins/PluginManager.js.map +1 -0
  159. package/dist/prompts/PromptManager.d.ts +30 -0
  160. package/dist/prompts/PromptManager.js +62 -0
  161. package/dist/prompts/PromptManager.js.map +1 -0
  162. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  163. package/dist/prompts/cache/PromptCache.js +48 -0
  164. package/dist/prompts/cache/PromptCache.js.map +1 -0
  165. package/dist/runtime/auth/service.d.ts +2 -0
  166. package/dist/runtime/auth/service.js +41 -0
  167. package/dist/runtime/auth/service.js.map +1 -0
  168. package/dist/runtime/auth/session.d.ts +5 -0
  169. package/dist/runtime/auth/session.js +87 -0
  170. package/dist/runtime/auth/session.js.map +1 -0
  171. package/dist/runtime/auth/types.d.ts +9 -0
  172. package/dist/runtime/auth/types.js +3 -0
  173. package/dist/runtime/auth/types.js.map +1 -0
  174. package/dist/runtime/cliEntry.d.ts +1 -0
  175. package/dist/runtime/cliEntry.js +266 -0
  176. package/dist/runtime/cliEntry.js.map +1 -0
  177. package/dist/runtime/debug/logManager.d.ts +5 -0
  178. package/dist/runtime/debug/logManager.js +31 -0
  179. package/dist/runtime/debug/logManager.js.map +1 -0
  180. package/dist/runtime/errors.d.ts +5 -0
  181. package/dist/runtime/errors.js +15 -0
  182. package/dist/runtime/errors.js.map +1 -0
  183. package/dist/runtime/fileCollector.d.ts +14 -0
  184. package/dist/runtime/fileCollector.js +382 -0
  185. package/dist/runtime/fileCollector.js.map +1 -0
  186. package/dist/runtime/manifest.d.ts +1 -0
  187. package/dist/runtime/manifest.js +65 -0
  188. package/dist/runtime/manifest.js.map +1 -0
  189. package/dist/runtime/openrouterProxy.d.ts +4 -0
  190. package/dist/runtime/openrouterProxy.js +43 -0
  191. package/dist/runtime/openrouterProxy.js.map +1 -0
  192. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  193. package/dist/runtime/preprod/webCheck.js +98 -0
  194. package/dist/runtime/preprod/webCheck.js.map +1 -0
  195. package/dist/runtime/proxyConfig.d.ts +6 -0
  196. package/dist/runtime/proxyConfig.js +86 -0
  197. package/dist/runtime/proxyConfig.js.map +1 -0
  198. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  199. package/dist/runtime/proxyEnvironment.js +63 -0
  200. package/dist/runtime/proxyEnvironment.js.map +1 -0
  201. package/dist/runtime/reportMerge.d.ts +30 -0
  202. package/dist/runtime/reportMerge.js +70 -0
  203. package/dist/runtime/reportMerge.js.map +1 -0
  204. package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
  205. package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
  206. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  207. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  208. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  209. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  210. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  211. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  212. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  213. package/dist/runtime/reviewPipeline.d.ts +47 -0
  214. package/dist/runtime/reviewPipeline.js +161 -0
  215. package/dist/runtime/reviewPipeline.js.map +1 -0
  216. package/dist/runtime/runAiCodeReview.d.ts +28 -0
  217. package/dist/runtime/runAiCodeReview.js +373 -0
  218. package/dist/runtime/runAiCodeReview.js.map +1 -0
  219. package/dist/runtime/runtimeConfig.d.ts +4 -0
  220. package/dist/runtime/runtimeConfig.js +7 -0
  221. package/dist/runtime/runtimeConfig.js.map +1 -0
  222. package/dist/runtime/ui/Layout.d.ts +11 -0
  223. package/dist/runtime/ui/Layout.js +47 -0
  224. package/dist/runtime/ui/Layout.js.map +1 -0
  225. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  226. package/dist/runtime/ui/RuntimeApp.js +172 -0
  227. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  228. package/dist/runtime/ui/inkModules.d.ts +10 -0
  229. package/dist/runtime/ui/inkModules.js +63 -0
  230. package/dist/runtime/ui/inkModules.js.map +1 -0
  231. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  232. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  233. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  234. package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
  235. package/dist/runtime/ui/screens/ModeSelection.js +100 -0
  236. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  237. package/dist/runtime/ui/screens/ProgressScreen.d.ts +12 -0
  238. package/dist/runtime/ui/screens/ProgressScreen.js +64 -0
  239. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  240. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  241. package/dist/runtime/ui/screens/ResultsScreen.js +29 -0
  242. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  243. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  244. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  245. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  246. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  247. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  248. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  249. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  250. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  251. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  252. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  253. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  254. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  255. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  256. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  257. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  258. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  259. package/dist/strategies/ReviewStrategy.js +24 -0
  260. package/dist/strategies/ReviewStrategy.js.map +1 -0
  261. package/dist/strategies/StrategyFactory.d.ts +19 -0
  262. package/dist/strategies/StrategyFactory.js +72 -0
  263. package/dist/strategies/StrategyFactory.js.map +1 -0
  264. package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
  265. package/dist/strategies/index.js +30 -0
  266. package/dist/strategies/index.js.map +1 -0
  267. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  268. package/dist/tokenizers/baseTokenizer.js +48 -0
  269. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  270. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  271. package/dist/tokenizers/gptTokenizer.js +28 -0
  272. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  273. package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
  274. package/dist/tokenizers/index.js +24 -0
  275. package/dist/tokenizers/index.js.map +1 -0
  276. package/dist/types/apiResponses.d.ts +39 -0
  277. package/dist/types/apiResponses.js +9 -0
  278. package/dist/types/apiResponses.js.map +1 -0
  279. package/dist/types/cli.d.ts +22 -0
  280. package/dist/types/cli.js +3 -0
  281. package/dist/types/cli.js.map +1 -0
  282. package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
  283. package/dist/types/common.js +14 -0
  284. package/dist/types/common.js.map +1 -0
  285. package/dist/types/configuration.d.ts +682 -0
  286. package/dist/types/configuration.js +65 -0
  287. package/dist/types/configuration.js.map +1 -0
  288. package/dist/types/review.d.ts +318 -0
  289. package/dist/types/review.js +8 -0
  290. package/dist/types/review.js.map +1 -0
  291. package/dist/types/reviewSchema.d.ts +543 -0
  292. package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
  293. package/dist/types/reviewSchema.js.map +1 -0
  294. package/dist/types/structuredReview.d.ts +119 -0
  295. package/dist/types/structuredReview.js +6 -0
  296. package/dist/types/structuredReview.js.map +1 -0
  297. package/dist/types/tokenAnalysis.d.ts +44 -0
  298. package/dist/types/tokenAnalysis.js +4 -0
  299. package/dist/types/tokenAnalysis.js.map +1 -0
  300. package/dist/utils/FileReader.d.ts +33 -0
  301. package/dist/utils/FileReader.js +88 -0
  302. package/dist/utils/FileReader.js.map +1 -0
  303. package/dist/utils/FileWriter.d.ts +26 -0
  304. package/dist/utils/FileWriter.js +76 -0
  305. package/dist/utils/FileWriter.js.map +1 -0
  306. package/dist/utils/PathGenerator.d.ts +30 -0
  307. package/dist/utils/PathGenerator.js +82 -0
  308. package/dist/utils/PathGenerator.js.map +1 -0
  309. package/dist/utils/api/apiUtils.d.ts +3 -0
  310. package/dist/utils/api/apiUtils.js +20 -0
  311. package/dist/utils/api/apiUtils.js.map +1 -0
  312. package/dist/utils/api/index.js +18 -0
  313. package/dist/utils/api/index.js.map +1 -0
  314. package/dist/utils/apiErrorHandler.d.ts +130 -0
  315. package/dist/utils/apiErrorHandler.js +256 -0
  316. package/dist/utils/apiErrorHandler.js.map +1 -0
  317. package/dist/utils/ciDataCollector.d.ts +51 -0
  318. package/dist/utils/ciDataCollector.js +197 -0
  319. package/dist/utils/ciDataCollector.js.map +1 -0
  320. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  321. package/dist/utils/codingTestConfigLoader.js +420 -0
  322. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  323. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  324. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  325. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  326. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  327. package/dist/utils/detection/frameworkDetector.js +850 -0
  328. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  329. package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
  330. package/dist/utils/detection/index.js +28 -0
  331. package/dist/utils/detection/index.js.map +1 -0
  332. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  333. package/dist/utils/detection/projectTypeDetector.js +469 -0
  334. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  335. package/dist/utils/diagramGenerator.d.ts +49 -0
  336. package/dist/utils/diagramGenerator.js +218 -0
  337. package/dist/utils/diagramGenerator.js.map +1 -0
  338. package/dist/utils/errorLogger.d.ts +24 -0
  339. package/dist/utils/errorLogger.js +59 -0
  340. package/dist/utils/errorLogger.js.map +1 -0
  341. package/dist/utils/estimationUtils.d.ts +139 -0
  342. package/dist/utils/estimationUtils.js +329 -0
  343. package/dist/utils/estimationUtils.js.map +1 -0
  344. package/dist/utils/fileFilters.d.ts +72 -0
  345. package/dist/utils/fileFilters.js +338 -0
  346. package/dist/utils/fileFilters.js.map +1 -0
  347. package/dist/utils/fileSystem.d.ts +22 -0
  348. package/dist/utils/fileSystem.js +45 -0
  349. package/dist/utils/fileSystem.js.map +1 -0
  350. package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
  351. package/dist/utils/index.js +52 -0
  352. package/dist/utils/index.js.map +1 -0
  353. package/dist/utils/logger.d.ts +77 -0
  354. package/dist/utils/logger.js +271 -0
  355. package/dist/utils/logger.js.map +1 -0
  356. package/dist/utils/pathValidator.d.ts +40 -0
  357. package/dist/utils/pathValidator.js +98 -0
  358. package/dist/utils/pathValidator.js.map +1 -0
  359. package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
  360. package/dist/utils/priorityFilter.js +54 -0
  361. package/dist/utils/priorityFilter.js.map +1 -0
  362. package/dist/utils/projectDocs.d.ts +47 -0
  363. package/dist/utils/projectDocs.js +158 -0
  364. package/dist/utils/projectDocs.js.map +1 -0
  365. package/dist/utils/promptPaths.d.ts +6 -0
  366. package/dist/utils/promptPaths.js +33 -0
  367. package/dist/utils/promptPaths.js.map +1 -0
  368. package/dist/utils/promptTemplateManager.d.ts +34 -0
  369. package/dist/utils/promptTemplateManager.js +141 -0
  370. package/dist/utils/promptTemplateManager.js.map +1 -0
  371. package/dist/utils/review/consolidateReview.d.ts +15 -0
  372. package/dist/utils/review/consolidateReview.js +481 -0
  373. package/dist/utils/review/consolidateReview.js.map +1 -0
  374. package/dist/utils/review/fixDisplay.d.ts +20 -0
  375. package/dist/utils/review/fixDisplay.js +84 -0
  376. package/dist/utils/review/fixDisplay.js.map +1 -0
  377. package/dist/utils/review/fixImplementation.d.ts +28 -0
  378. package/dist/utils/review/fixImplementation.js +60 -0
  379. package/dist/utils/review/fixImplementation.js.map +1 -0
  380. package/dist/utils/review/index.d.ts +13 -0
  381. package/dist/utils/review/index.js +50 -0
  382. package/dist/utils/review/index.js.map +1 -0
  383. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  384. package/dist/utils/review/interactiveProcessing.js +251 -0
  385. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  386. package/dist/utils/review/progressTracker.d.ts +106 -0
  387. package/dist/utils/review/progressTracker.js +227 -0
  388. package/dist/utils/review/progressTracker.js.map +1 -0
  389. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  390. package/dist/utils/review/reviewExtraction.js +324 -0
  391. package/dist/utils/review/reviewExtraction.js.map +1 -0
  392. package/dist/utils/review/types.d.ts +45 -0
  393. package/dist/utils/review/types.js +18 -0
  394. package/dist/utils/review/types.js.map +1 -0
  395. package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
  396. package/dist/utils/reviewActionHandler.js +34 -0
  397. package/dist/utils/reviewActionHandler.js.map +1 -0
  398. package/dist/utils/reviewParser.d.ts +34 -0
  399. package/dist/utils/reviewParser.js +218 -0
  400. package/dist/utils/reviewParser.js.map +1 -0
  401. package/dist/utils/sanitizer.d.ts +82 -0
  402. package/dist/utils/sanitizer.js +239 -0
  403. package/dist/utils/sanitizer.js.map +1 -0
  404. package/dist/utils/smartFileSelector.d.ts +50 -0
  405. package/dist/utils/smartFileSelector.js +261 -0
  406. package/dist/utils/smartFileSelector.js.map +1 -0
  407. package/dist/utils/templateLoader.d.ts +44 -0
  408. package/dist/utils/templateLoader.js +431 -0
  409. package/dist/utils/templateLoader.js.map +1 -0
  410. package/dist/utils/treeGenerator.d.ts +12 -0
  411. package/dist/utils/treeGenerator.js +133 -0
  412. package/dist/utils/treeGenerator.js.map +1 -0
  413. package/package.json +5 -2
  414. package/.cr-aia.yml +0 -23
  415. package/.crignore +0 -0
  416. package/docs/opt-in-full-context.md +0 -27
  417. package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
  418. package/src/analysis/FindingsExtractor.ts +0 -431
  419. package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
  420. package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
  421. package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
  422. package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
  423. package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
  424. package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
  425. package/src/analysis/context/ReviewContext.ts +0 -378
  426. package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
  427. package/src/clients/base/abstractClient.ts +0 -190
  428. package/src/clients/base/httpClient.ts +0 -160
  429. package/src/clients/base/modelDetection.ts +0 -107
  430. package/src/clients/base/responseProcessor.ts +0 -586
  431. package/src/clients/factory/clientFactory.ts +0 -55
  432. package/src/clients/implementations/openRouterClient.ts +0 -413
  433. package/src/clients/openRouterClient.ts +0 -870
  434. package/src/clients/utils/directoryStructure.ts +0 -52
  435. package/src/clients/utils/languageDetection.ts +0 -44
  436. package/src/clients/utils/promptFormatter.ts +0 -182
  437. package/src/clients/utils/tokenCounter.ts +0 -297
  438. package/src/core/ApiClientSelector.ts +0 -37
  439. package/src/core/ConfigurationService.ts +0 -591
  440. package/src/core/ConsolidationService.ts +0 -423
  441. package/src/core/InteractiveDisplayManager.ts +0 -81
  442. package/src/core/OutputManager.ts +0 -275
  443. package/src/core/ReviewGenerator.ts +0 -140
  444. package/src/core/fileDiscovery.ts +0 -237
  445. package/src/core/handlers/EstimationHandler.ts +0 -104
  446. package/src/core/handlers/FileProcessingHandler.ts +0 -210
  447. package/src/core/handlers/OutputHandler.ts +0 -125
  448. package/src/core/handlers/ReviewExecutor.ts +0 -104
  449. package/src/core/reviewOrchestrator.ts +0 -333
  450. package/src/core/utils/ModelInfoUtils.ts +0 -56
  451. package/src/formatters/utils/IssueFormatters.ts +0 -83
  452. package/src/formatters/utils/JsonFormatter.ts +0 -77
  453. package/src/formatters/utils/MarkdownFormatters.ts +0 -609
  454. package/src/formatters/utils/MetadataFormatter.ts +0 -269
  455. package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
  456. package/src/index.ts +0 -25
  457. package/src/plugins/PluginInterface.ts +0 -50
  458. package/src/plugins/PluginManager.ts +0 -126
  459. package/src/prompts/PromptManager.ts +0 -69
  460. package/src/prompts/cache/PromptCache.ts +0 -50
  461. package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
  462. package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
  463. package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
  464. package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
  465. package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
  466. package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
  467. package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
  468. package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
  469. package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
  470. package/src/runtime/auth/service.ts +0 -58
  471. package/src/runtime/auth/session.ts +0 -103
  472. package/src/runtime/auth/types.ts +0 -11
  473. package/src/runtime/cliEntry.ts +0 -214
  474. package/src/runtime/debug/logManager.ts +0 -37
  475. package/src/runtime/errors.ts +0 -13
  476. package/src/runtime/fileCollector.ts +0 -495
  477. package/src/runtime/manifest.ts +0 -64
  478. package/src/runtime/openrouterProxy.ts +0 -45
  479. package/src/runtime/preprod/webCheck.ts +0 -104
  480. package/src/runtime/proxyConfig.ts +0 -94
  481. package/src/runtime/proxyEnvironment.ts +0 -71
  482. package/src/runtime/reportMerge.ts +0 -102
  483. package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
  484. package/src/runtime/reporting/reportDataCollector.ts +0 -234
  485. package/src/runtime/reporting/summaryGenerator.ts +0 -86
  486. package/src/runtime/reviewPipeline.ts +0 -200
  487. package/src/runtime/runAiCodeReview.ts +0 -308
  488. package/src/runtime/runtimeConfig.ts +0 -5
  489. package/src/runtime/ui/Layout.tsx +0 -57
  490. package/src/runtime/ui/RuntimeApp.tsx +0 -262
  491. package/src/runtime/ui/inkModules.ts +0 -73
  492. package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
  493. package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
  494. package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
  495. package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
  496. package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
  497. package/src/strategies/CodingTestReviewStrategy.ts +0 -920
  498. package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
  499. package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
  500. package/src/strategies/MultiPassReviewStrategy.ts +0 -785
  501. package/src/strategies/ReviewStrategy.ts +0 -64
  502. package/src/strategies/StrategyFactory.ts +0 -79
  503. package/src/tokenizers/baseTokenizer.ts +0 -61
  504. package/src/tokenizers/gptTokenizer.ts +0 -27
  505. package/src/types/apiResponses.ts +0 -40
  506. package/src/types/cli.ts +0 -24
  507. package/src/types/configuration.ts +0 -201
  508. package/src/types/handlebars.d.ts +0 -5
  509. package/src/types/patch.d.ts +0 -25
  510. package/src/types/review.ts +0 -312
  511. package/src/types/reviewContext.d.ts +0 -65
  512. package/src/types/structuredReview.ts +0 -167
  513. package/src/types/tokenAnalysis.ts +0 -56
  514. package/src/utils/FileReader.ts +0 -93
  515. package/src/utils/FileWriter.ts +0 -76
  516. package/src/utils/PathGenerator.ts +0 -97
  517. package/src/utils/api/apiUtils.ts +0 -14
  518. package/src/utils/apiErrorHandler.ts +0 -287
  519. package/src/utils/ciDataCollector.ts +0 -252
  520. package/src/utils/codingTestConfigLoader.ts +0 -466
  521. package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
  522. package/src/utils/detection/frameworkDetector.ts +0 -879
  523. package/src/utils/detection/projectTypeDetector.ts +0 -518
  524. package/src/utils/diagramGenerator.ts +0 -206
  525. package/src/utils/errorLogger.ts +0 -60
  526. package/src/utils/estimationUtils.ts +0 -407
  527. package/src/utils/fileFilters.ts +0 -373
  528. package/src/utils/fileSystem.ts +0 -57
  529. package/src/utils/logger.ts +0 -290
  530. package/src/utils/pathValidator.ts +0 -98
  531. package/src/utils/projectDocs.ts +0 -189
  532. package/src/utils/promptPaths.ts +0 -29
  533. package/src/utils/promptTemplateManager.ts +0 -157
  534. package/src/utils/review/consolidateReview.ts +0 -553
  535. package/src/utils/review/fixDisplay.ts +0 -100
  536. package/src/utils/review/fixImplementation.ts +0 -61
  537. package/src/utils/review/index.ts +0 -36
  538. package/src/utils/review/interactiveProcessing.ts +0 -294
  539. package/src/utils/review/progressTracker.ts +0 -296
  540. package/src/utils/review/reviewExtraction.ts +0 -382
  541. package/src/utils/review/types.ts +0 -46
  542. package/src/utils/reviewParser.ts +0 -253
  543. package/src/utils/sanitizer.ts +0 -238
  544. package/src/utils/smartFileSelector.ts +0 -255
  545. package/src/utils/templateLoader.ts +0 -514
  546. package/src/utils/treeGenerator.ts +0 -153
  547. package/tsconfig.build.json +0 -14
  548. package/tsconfig.json +0 -59
  549. /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
@@ -1,238 +0,0 @@
1
- /**
2
- * @fileoverview Content sanitization utilities for preventing XSS attacks.
3
- *
4
- * This module provides sanitization functions to clean user-generated or AI-generated
5
- * content before rendering or storing it. It uses DOMPurify to remove potentially
6
- * malicious HTML, JavaScript, and other harmful content while preserving legitimate
7
- * formatting elements. It also includes utilities for sanitizing filenames to ensure
8
- * they are safe for use in file systems.
9
- */
10
-
11
- import createDOMPurify from 'dompurify';
12
- import { JSDOM } from 'jsdom';
13
- import logger from './logger';
14
-
15
- // Create a DOM window for DOMPurify
16
- const { window } = new JSDOM('');
17
- // Cast window for DOMPurify compatibility
18
- const DOMPurify = createDOMPurify(window);
19
-
20
- /**
21
- * Sanitizes HTML content to prevent Cross-Site Scripting (XSS) attacks.
22
- *
23
- * This function uses DOMPurify to clean HTML content by:
24
- * 1. Allowing only safe HTML tags (h1-h6, p, lists, tables, etc.)
25
- * 2. Allowing only safe attributes (href, class, id, etc.)
26
- * 3. Explicitly forbidding dangerous tags (script, iframe, svg, etc.)
27
- * 4. Explicitly forbidding dangerous attributes (onerror, onclick, etc.)
28
- *
29
- * If sanitization fails for any reason, it returns an empty string for safety.
30
- *
31
- * @param {string} content - The HTML content to sanitize
32
- * @returns {string} Sanitized HTML with potentially dangerous content removed
33
- *
34
- * @example
35
- * const unsafeHtml = '<div>Safe content</div><script>alert("XSS")</script>';
36
- * const safeHtml = sanitizeHtml(unsafeHtml);
37
- * // Returns: "<div>Safe content</div>"
38
- *
39
- * @throws Catches internally and returns empty string if DOMPurify fails
40
- */
41
- export function sanitizeHtml(content: string): string {
42
- try {
43
- // Configure DOMPurify to allow certain tags and attributes
44
- const sanitized = DOMPurify.sanitize(content, {
45
- ALLOWED_TAGS: [
46
- 'h1',
47
- 'h2',
48
- 'h3',
49
- 'h4',
50
- 'h5',
51
- 'h6',
52
- 'p',
53
- 'br',
54
- 'hr',
55
- 'ul',
56
- 'ol',
57
- 'li',
58
- 'b',
59
- 'i',
60
- 'strong',
61
- 'em',
62
- 'code',
63
- 'pre',
64
- 'a',
65
- 'span',
66
- 'div',
67
- 'table',
68
- 'thead',
69
- 'tbody',
70
- 'tr',
71
- 'th',
72
- 'td',
73
- ],
74
- ALLOWED_ATTR: ['href', 'target', 'rel', 'class', 'id', 'style'],
75
- FORBID_TAGS: [
76
- 'script',
77
- 'iframe',
78
- 'object',
79
- 'embed',
80
- 'form',
81
- 'input',
82
- 'button',
83
- 'style',
84
- 'link',
85
- 'meta',
86
- 'base',
87
- 'applet',
88
- 'math',
89
- 'svg',
90
- ],
91
- FORBID_ATTR: [
92
- 'onerror',
93
- 'onload',
94
- 'onclick',
95
- 'onmouseover',
96
- 'onmouseout',
97
- 'onmousedown',
98
- 'onmouseup',
99
- 'onkeydown',
100
- 'onkeyup',
101
- 'onkeypress',
102
- 'onfocus',
103
- 'onblur',
104
- 'onchange',
105
- 'onsubmit',
106
- 'onreset',
107
- 'javascript:',
108
- 'data:',
109
- 'vbscript:',
110
- ],
111
- });
112
-
113
- return sanitized;
114
- } catch (error) {
115
- logger.error('Error sanitizing HTML content:', error);
116
- // Return a safe fallback if sanitization fails
117
- return '';
118
- }
119
- }
120
-
121
- /**
122
- * Sanitize Markdown content
123
- * @param content Markdown content to sanitize
124
- * @returns Sanitized Markdown content
125
- */
126
- export function sanitizeMarkdown(content: string): string {
127
- try {
128
- // Remove potentially harmful content
129
- const sanitized = content
130
- // Remove HTML comments
131
- .replace(/<!--[\s\S]*?-->/g, '')
132
- // Remove script tags and their content
133
- .replace(/<script[\s\S]*?<\/script>/gi, '')
134
- // Remove iframe tags and their content
135
- .replace(/<iframe[\s\S]*?<\/iframe>/gi, '')
136
- // Remove style tags and their content
137
- .replace(/<style[\s\S]*?<\/style>/gi, '')
138
- // Remove event handlers
139
- .replace(/\son\w+\s*=\s*["']?[^"']*["']?/gi, '')
140
- // Remove javascript: URLs
141
- .replace(/javascript\s*:/gi, 'removed:')
142
- // Remove data: URLs
143
- .replace(/data\s*:/gi, 'removed:')
144
- // Remove vbscript: URLs
145
- .replace(/vbscript\s*:/gi, 'removed:');
146
-
147
- return sanitized;
148
- } catch (error) {
149
- logger.error('Error sanitizing Markdown content:', error);
150
- // Return a safe fallback if sanitization fails
151
- return '';
152
- }
153
- }
154
-
155
- /**
156
- * Sanitize JSON content
157
- * @param content JSON content to sanitize
158
- * @returns Sanitized JSON content
159
- */
160
- export function sanitizeJson(content: string): string {
161
- try {
162
- // Parse and stringify to ensure valid JSON
163
- const parsed = JSON.parse(content);
164
- return JSON.stringify(parsed);
165
- } catch (error) {
166
- logger.error('Error sanitizing JSON content:', error);
167
- // Return a safe fallback if sanitization fails
168
- return '{}';
169
- }
170
- }
171
-
172
- /**
173
- * Sanitizes content based on its type to prevent security vulnerabilities.
174
- *
175
- * This function acts as a dispatcher that routes the content to the appropriate
176
- * specialized sanitization function based on the content type. It supports
177
- * HTML, Markdown, JSON, and plain text formats, each with type-specific
178
- * sanitization rules.
179
- *
180
- * @param {string} content - The content to sanitize
181
- * @param {('html'|'markdown'|'json'|'text')} [contentType='text'] - The type of content
182
- * @returns {string} Sanitized content safe for rendering or storage
183
- *
184
- * @example
185
- * // Sanitize HTML content
186
- * const safeHtml = sanitizeContent('<script>alert("XSS")</script><p>Hello</p>', 'html');
187
- * // Returns: "<p>Hello</p>"
188
- *
189
- * @example
190
- * // Sanitize Markdown content
191
- * const safeMarkdown = sanitizeContent('# Title\n<script>alert("XSS")</script>', 'markdown');
192
- * // Returns: "# Title\n"
193
- *
194
- * @example
195
- * // Sanitize JSON content
196
- * const safeJson = sanitizeContent('{"key": "value"}', 'json');
197
- * // Returns: '{"key":"value"}'
198
- */
199
- export function sanitizeContent(
200
- content: string,
201
- contentType: 'html' | 'markdown' | 'json' | 'text' = 'text',
202
- ): string {
203
- switch (contentType) {
204
- case 'html':
205
- return sanitizeHtml(content);
206
- case 'markdown':
207
- return sanitizeMarkdown(content);
208
- case 'json':
209
- return sanitizeJson(content);
210
- default:
211
- // For plain text, just remove control characters except for newlines and tabs
212
- // eslint-disable-next-line no-control-regex
213
- return content.replace(/[\x00-\x09\x0B-\x1F\x7F]/g, '');
214
- }
215
- }
216
-
217
- /**
218
- * Sanitize a filename to ensure it's safe for use in file systems
219
- *
220
- * This function removes or replaces characters that are not safe for use in filenames
221
- * across different operating systems. It handles null/undefined inputs and preserves
222
- * spaces and non-ASCII characters that are generally safe for modern file systems.
223
- *
224
- * @param filename The filename to sanitize
225
- * @returns A sanitized filename safe for use in file systems
226
- */
227
- export function sanitizeFilename(filename: string | null | undefined): string {
228
- // Handle null or undefined
229
- if (filename === null || filename === undefined) {
230
- return '';
231
- }
232
-
233
- // Replace invalid characters with underscores
234
- // This regex matches characters that are generally unsafe in filenames across platforms:
235
- // / \ : * ? " < > | and control characters
236
- // eslint-disable-next-line no-control-regex
237
- return filename.replace(/[/\\:*?"<>|\x00-\x1F\x7F]/g, '_');
238
- }
@@ -1,255 +0,0 @@
1
- /**
2
- * @fileoverview Smart file selection module based on project configuration files.
3
- *
4
- * This module provides enhanced file selection functionality by respecting
5
- * project configuration files like tsconfig.json and .eslintignore in addition
6
- * to .gitignore patterns.
7
- */
8
-
9
- import * as fs from 'node:fs';
10
- import * as path from 'node:path';
11
- import { loadGitignorePatterns, shouldExcludeFile } from './fileFilters';
12
- import logger from './logger';
13
-
14
- /**
15
- * Interface for TypeScript configuration file
16
- */
17
- interface TsConfig {
18
- include?: string[];
19
- exclude?: string[];
20
- files?: string[];
21
- compilerOptions?: Record<string, unknown>;
22
- }
23
-
24
- /**
25
- * Load ESLint ignore patterns from a project directory
26
- * @param projectDir Project directory path
27
- * @returns Array of ESLint ignore patterns
28
- */
29
- export async function loadEslintIgnorePatterns(projectDir: string): Promise<string[]> {
30
- try {
31
- const eslintIgnorePath = path.join(projectDir, '.eslintignore');
32
-
33
- // Check if .eslintignore exists
34
- try {
35
- await fs.promises.access(eslintIgnorePath);
36
- } catch (_error) {
37
- // File doesn't exist
38
- logger.debug(`No .eslintignore file found at ${eslintIgnorePath}`);
39
- return [];
40
- }
41
-
42
- // Read and parse .eslintignore
43
- const content = await fs.promises.readFile(eslintIgnorePath, 'utf-8');
44
- if (!content) {
45
- return [];
46
- }
47
- return content
48
- .split('\n')
49
- .map((line) => line.trim())
50
- .filter((line) => line && !line.startsWith('#'));
51
- } catch (error) {
52
- // Only log as error if it's not just a file not found issue
53
- if (error instanceof Error && (error as NodeJS.ErrnoException).code !== 'ENOENT') {
54
- logger.error(`Error reading .eslintignore: ${error}`);
55
- } else {
56
- const eslintIgnorePath = path.join(projectDir, '.eslintignore');
57
- logger.debug(`No .eslintignore file found at ${eslintIgnorePath}`);
58
- }
59
- return [];
60
- }
61
- }
62
-
63
- /**
64
- * Load TypeScript configuration from a project directory
65
- * @param projectDir Project directory path
66
- * @returns TypeScript configuration or null if not found
67
- */
68
- export async function loadTsConfig(projectDir: string): Promise<TsConfig | null> {
69
- try {
70
- const tsConfigPath = path.join(projectDir, 'tsconfig.json');
71
-
72
- // Check if tsconfig.json exists
73
- try {
74
- await fs.promises.access(tsConfigPath);
75
- } catch (_error) {
76
- // File doesn't exist
77
- logger.debug(`No tsconfig.json file found at ${tsConfigPath}`);
78
- return null;
79
- }
80
-
81
- // Read and parse tsconfig.json
82
- const content = await fs.promises.readFile(tsConfigPath, 'utf-8');
83
- if (!content) {
84
- return null;
85
- }
86
- try {
87
- return JSON.parse(content) as TsConfig;
88
- } catch (parseError) {
89
- logger.error(`Error parsing tsconfig.json: ${parseError}`);
90
- return null;
91
- }
92
- } catch (error) {
93
- // Only log as error if it's not just a file not found issue
94
- if (error instanceof Error && (error as NodeJS.ErrnoException).code !== 'ENOENT') {
95
- logger.error(`Error reading tsconfig.json: ${error}`);
96
- } else {
97
- const tsConfigPath = path.join(projectDir, 'tsconfig.json');
98
- logger.debug(`No tsconfig.json file found at ${tsConfigPath}`);
99
- }
100
- return null;
101
- }
102
- }
103
-
104
- /**
105
- * Convert TypeScript glob patterns to regex patterns
106
- * @param pattern TypeScript glob pattern
107
- * @returns Regular expression pattern
108
- */
109
- function convertTsGlobToRegex(pattern: string): RegExp {
110
- // Escape special regex characters first, but preserve glob patterns
111
- let regexPattern = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\?/g, '[^/]');
112
-
113
- // Handle ** patterns (match zero or more directories)
114
- // **/ at the beginning means match any number of directories
115
- // /** at the end means match any number of directories
116
- // /**/ in the middle means match any number of directories
117
- regexPattern = regexPattern
118
- .replace(/\*\*\//g, '(?:.*/)?') // **/ matches zero or more directories
119
- .replace(/\/\*\*/g, '(?:/.*)?') // /** matches zero or more directories
120
- .replace(/\*\*/g, '.*'); // ** by itself matches anything
121
-
122
- // Handle single * patterns (match anything except directory separators)
123
- regexPattern = regexPattern.replace(/\*/g, '[^/]*');
124
-
125
- // Create regex that matches both full paths and relative paths
126
- // The pattern should match if:
127
- // 1. The full path matches the pattern
128
- // 2. The relative path matches the pattern
129
- // 3. The pattern matches from any directory level
130
- return new RegExp(`(^|/)${regexPattern}$`, 'i');
131
- }
132
-
133
- /**
134
- * Check if a file matches TypeScript configuration
135
- * @param filePath File path
136
- * @param tsConfig TypeScript configuration
137
- * @param projectDir Project directory path
138
- * @returns True if the file should be included based on TypeScript configuration
139
- */
140
- export function matchesTsConfig(filePath: string, tsConfig: TsConfig, projectDir: string): boolean {
141
- // If tsconfig.json doesn't exist, include all files
142
- if (!tsConfig) {
143
- return true;
144
- }
145
-
146
- // Convert Windows paths to Unix-style for consistent pattern matching
147
- const normalizedPath = filePath.replace(/\\/g, '/');
148
- const relativePath = path.relative(projectDir, filePath).replace(/\\/g, '/');
149
-
150
- // If files array is provided, only include files explicitly listed
151
- if (tsConfig.files && tsConfig.files.length > 0) {
152
- return tsConfig.files.some((file) => {
153
- const normalizedFile = file.replace(/\\/g, '/');
154
- return relativePath === normalizedFile;
155
- });
156
- }
157
-
158
- // Check exclude patterns first
159
- if (tsConfig.exclude && tsConfig.exclude.length > 0) {
160
- for (const pattern of tsConfig.exclude) {
161
- const regex = convertTsGlobToRegex(pattern);
162
- if (regex.test(normalizedPath) || regex.test(relativePath)) {
163
- // File matches an exclude pattern, so exclude it
164
- logger.debug(`File ${filePath} excluded by tsconfig.json pattern: ${pattern}`);
165
- return false;
166
- }
167
- }
168
- }
169
-
170
- // Then check include patterns
171
- if (tsConfig.include && tsConfig.include.length > 0) {
172
- // Find if file matches any include pattern
173
- for (const pattern of tsConfig.include) {
174
- const regex = convertTsGlobToRegex(pattern);
175
-
176
- // Test the pattern against different path representations
177
- const testPaths = [
178
- normalizedPath,
179
- relativePath,
180
- path.basename(filePath),
181
- // Also test with leading slash removed for relative paths
182
- relativePath.startsWith('/') ? relativePath.slice(1) : relativePath,
183
- ];
184
-
185
- for (const testPath of testPaths) {
186
- if (regex.test(testPath)) {
187
- logger.debug(
188
- `File ${filePath} matched by tsconfig.json pattern: ${pattern} (tested path: ${testPath})`,
189
- );
190
- return true;
191
- }
192
- }
193
- }
194
-
195
- logger.debug(
196
- `File ${filePath} not included by any tsconfig.json include pattern (patterns: ${tsConfig.include.join(', ')})`,
197
- );
198
- return false;
199
- }
200
-
201
- // If no include patterns are provided, include all files that weren't excluded
202
- return true;
203
- }
204
-
205
- /**
206
- * Apply smart filtering to a list of file paths
207
- * @param filePaths Array of file paths
208
- * @param projectDir Project directory path
209
- * @returns Array of filtered file paths
210
- */
211
- export async function applySmartFiltering(
212
- filePaths: string[],
213
- projectDir: string,
214
- ): Promise<string[]> {
215
- // Load ignore patterns
216
- const gitignorePatterns = await loadGitignorePatterns(projectDir);
217
- const eslintIgnorePatterns = await loadEslintIgnorePatterns(projectDir);
218
- const tsConfig = await loadTsConfig(projectDir);
219
-
220
- // Log patterns loaded
221
- logger.debug(`Loaded ${gitignorePatterns.length} .gitignore patterns`);
222
- logger.debug(`Loaded ${eslintIgnorePatterns.length} .eslintignore patterns`);
223
- logger.debug(`TypeScript config loaded: ${tsConfig ? 'Yes' : 'No'}`);
224
-
225
- // Apply filtering
226
- return filePaths.filter((filePath) => {
227
- // Apply .gitignore patterns
228
- if (shouldExcludeFile(filePath, gitignorePatterns)) {
229
- logger.debug(`File excluded by .gitignore: ${filePath}`);
230
- return false;
231
- }
232
-
233
- // Apply .eslintignore patterns
234
- if (shouldExcludeFile(filePath, eslintIgnorePatterns)) {
235
- logger.debug(`File excluded by .eslintignore: ${filePath}`);
236
- return false;
237
- }
238
-
239
- // Apply TypeScript configuration
240
- if (tsConfig && !matchesTsConfig(filePath, tsConfig, projectDir)) {
241
- logger.debug(`File excluded by tsconfig.json: ${filePath}`);
242
- return false;
243
- }
244
-
245
- // Include the file if it passed all filters
246
- return true;
247
- });
248
- }
249
-
250
- export default {
251
- loadEslintIgnorePatterns,
252
- loadTsConfig,
253
- matchesTsConfig,
254
- applySmartFiltering,
255
- };