driftdetect-core 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/LICENSE +21 -0
  2. package/dist/boundaries/boundary-scanner.d.ts.map +1 -1
  3. package/dist/boundaries/boundary-scanner.js +184 -18
  4. package/dist/boundaries/boundary-scanner.js.map +1 -1
  5. package/dist/boundaries/types.d.ts +34 -2
  6. package/dist/boundaries/types.d.ts.map +1 -1
  7. package/dist/call-graph/analysis/graph-builder.d.ts +3 -0
  8. package/dist/call-graph/analysis/graph-builder.d.ts.map +1 -1
  9. package/dist/call-graph/analysis/graph-builder.js +81 -18
  10. package/dist/call-graph/analysis/graph-builder.js.map +1 -1
  11. package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts +8 -0
  12. package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts.map +1 -1
  13. package/dist/call-graph/extractors/csharp-data-access-extractor.js +18 -5
  14. package/dist/call-graph/extractors/csharp-data-access-extractor.js.map +1 -1
  15. package/dist/call-graph/extractors/csharp-extractor.d.ts +35 -0
  16. package/dist/call-graph/extractors/csharp-extractor.d.ts.map +1 -1
  17. package/dist/call-graph/extractors/csharp-extractor.js +362 -4
  18. package/dist/call-graph/extractors/csharp-extractor.js.map +1 -1
  19. package/dist/call-graph/extractors/csharp-hybrid-extractor.d.ts +37 -0
  20. package/dist/call-graph/extractors/csharp-hybrid-extractor.d.ts.map +1 -0
  21. package/dist/call-graph/extractors/csharp-hybrid-extractor.js +408 -0
  22. package/dist/call-graph/extractors/csharp-hybrid-extractor.js.map +1 -0
  23. package/dist/call-graph/extractors/data-access-extractor.d.ts +16 -2
  24. package/dist/call-graph/extractors/data-access-extractor.d.ts.map +1 -1
  25. package/dist/call-graph/extractors/data-access-extractor.js +114 -5
  26. package/dist/call-graph/extractors/data-access-extractor.js.map +1 -1
  27. package/dist/call-graph/extractors/hybrid-extractor-base.d.ts +102 -0
  28. package/dist/call-graph/extractors/hybrid-extractor-base.d.ts.map +1 -0
  29. package/dist/call-graph/extractors/hybrid-extractor-base.js +289 -0
  30. package/dist/call-graph/extractors/hybrid-extractor-base.js.map +1 -0
  31. package/dist/call-graph/extractors/index.d.ts +17 -13
  32. package/dist/call-graph/extractors/index.d.ts.map +1 -1
  33. package/dist/call-graph/extractors/index.js +24 -23
  34. package/dist/call-graph/extractors/index.js.map +1 -1
  35. package/dist/call-graph/extractors/java-data-access-extractor.d.ts +8 -0
  36. package/dist/call-graph/extractors/java-data-access-extractor.d.ts.map +1 -1
  37. package/dist/call-graph/extractors/java-data-access-extractor.js +20 -6
  38. package/dist/call-graph/extractors/java-data-access-extractor.js.map +1 -1
  39. package/dist/call-graph/extractors/java-extractor.d.ts +15 -0
  40. package/dist/call-graph/extractors/java-extractor.d.ts.map +1 -1
  41. package/dist/call-graph/extractors/java-extractor.js +120 -4
  42. package/dist/call-graph/extractors/java-extractor.js.map +1 -1
  43. package/dist/call-graph/extractors/java-hybrid-extractor.d.ts +36 -0
  44. package/dist/call-graph/extractors/java-hybrid-extractor.d.ts.map +1 -0
  45. package/dist/call-graph/extractors/java-hybrid-extractor.js +426 -0
  46. package/dist/call-graph/extractors/java-hybrid-extractor.js.map +1 -0
  47. package/dist/call-graph/extractors/php-data-access-extractor.d.ts +8 -0
  48. package/dist/call-graph/extractors/php-data-access-extractor.d.ts.map +1 -1
  49. package/dist/call-graph/extractors/php-data-access-extractor.js +20 -6
  50. package/dist/call-graph/extractors/php-data-access-extractor.js.map +1 -1
  51. package/dist/call-graph/extractors/php-extractor.d.ts +48 -1
  52. package/dist/call-graph/extractors/php-extractor.d.ts.map +1 -1
  53. package/dist/call-graph/extractors/php-extractor.js +460 -6
  54. package/dist/call-graph/extractors/php-extractor.js.map +1 -1
  55. package/dist/call-graph/extractors/php-hybrid-extractor.d.ts +35 -0
  56. package/dist/call-graph/extractors/php-hybrid-extractor.d.ts.map +1 -0
  57. package/dist/call-graph/extractors/php-hybrid-extractor.js +393 -0
  58. package/dist/call-graph/extractors/php-hybrid-extractor.js.map +1 -0
  59. package/dist/call-graph/extractors/python-data-access-extractor.d.ts +8 -0
  60. package/dist/call-graph/extractors/python-data-access-extractor.d.ts.map +1 -1
  61. package/dist/call-graph/extractors/python-data-access-extractor.js +20 -6
  62. package/dist/call-graph/extractors/python-data-access-extractor.js.map +1 -1
  63. package/dist/call-graph/extractors/python-hybrid-extractor.d.ts +85 -0
  64. package/dist/call-graph/extractors/python-hybrid-extractor.d.ts.map +1 -0
  65. package/dist/call-graph/extractors/python-hybrid-extractor.js +462 -0
  66. package/dist/call-graph/extractors/python-hybrid-extractor.js.map +1 -0
  67. package/dist/call-graph/extractors/regex/base-regex-extractor.d.ts +154 -0
  68. package/dist/call-graph/extractors/regex/base-regex-extractor.d.ts.map +1 -0
  69. package/dist/call-graph/extractors/regex/base-regex-extractor.js +346 -0
  70. package/dist/call-graph/extractors/regex/base-regex-extractor.js.map +1 -0
  71. package/dist/call-graph/extractors/regex/csharp-regex.d.ts +34 -0
  72. package/dist/call-graph/extractors/regex/csharp-regex.d.ts.map +1 -0
  73. package/dist/call-graph/extractors/regex/csharp-regex.js +393 -0
  74. package/dist/call-graph/extractors/regex/csharp-regex.js.map +1 -0
  75. package/dist/call-graph/extractors/regex/index.d.ts +25 -0
  76. package/dist/call-graph/extractors/regex/index.d.ts.map +1 -0
  77. package/dist/call-graph/extractors/regex/index.js +66 -0
  78. package/dist/call-graph/extractors/regex/index.js.map +1 -0
  79. package/dist/call-graph/extractors/regex/java-regex.d.ts +34 -0
  80. package/dist/call-graph/extractors/regex/java-regex.d.ts.map +1 -0
  81. package/dist/call-graph/extractors/regex/java-regex.js +327 -0
  82. package/dist/call-graph/extractors/regex/java-regex.js.map +1 -0
  83. package/dist/call-graph/extractors/regex/php-regex.d.ts +30 -0
  84. package/dist/call-graph/extractors/regex/php-regex.d.ts.map +1 -0
  85. package/dist/call-graph/extractors/regex/php-regex.js +333 -0
  86. package/dist/call-graph/extractors/regex/php-regex.js.map +1 -0
  87. package/dist/call-graph/extractors/regex/python-regex.d.ts +46 -0
  88. package/dist/call-graph/extractors/regex/python-regex.d.ts.map +1 -0
  89. package/dist/call-graph/extractors/regex/python-regex.js +380 -0
  90. package/dist/call-graph/extractors/regex/python-regex.js.map +1 -0
  91. package/dist/call-graph/extractors/regex/typescript-regex.d.ts +27 -0
  92. package/dist/call-graph/extractors/regex/typescript-regex.d.ts.map +1 -0
  93. package/dist/call-graph/extractors/regex/typescript-regex.js +349 -0
  94. package/dist/call-graph/extractors/regex/typescript-regex.js.map +1 -0
  95. package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts +11 -0
  96. package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts.map +1 -1
  97. package/dist/call-graph/extractors/semantic-data-access-scanner.js +53 -2
  98. package/dist/call-graph/extractors/semantic-data-access-scanner.js.map +1 -1
  99. package/dist/call-graph/extractors/types.d.ts +111 -0
  100. package/dist/call-graph/extractors/types.d.ts.map +1 -0
  101. package/dist/call-graph/extractors/types.js +68 -0
  102. package/dist/call-graph/extractors/types.js.map +1 -0
  103. package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts +8 -0
  104. package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts.map +1 -1
  105. package/dist/call-graph/extractors/typescript-data-access-extractor.js +31 -10
  106. package/dist/call-graph/extractors/typescript-data-access-extractor.js.map +1 -1
  107. package/dist/call-graph/extractors/typescript-hybrid-extractor.d.ts +116 -0
  108. package/dist/call-graph/extractors/typescript-hybrid-extractor.d.ts.map +1 -0
  109. package/dist/call-graph/extractors/typescript-hybrid-extractor.js +635 -0
  110. package/dist/call-graph/extractors/typescript-hybrid-extractor.js.map +1 -0
  111. package/dist/call-graph/index.d.ts +2 -4
  112. package/dist/call-graph/index.d.ts.map +1 -1
  113. package/dist/call-graph/index.js +5 -6
  114. package/dist/call-graph/index.js.map +1 -1
  115. package/dist/error-handling/error-handling-analyzer.d.ts +73 -0
  116. package/dist/error-handling/error-handling-analyzer.d.ts.map +1 -0
  117. package/dist/error-handling/error-handling-analyzer.js +706 -0
  118. package/dist/error-handling/error-handling-analyzer.js.map +1 -0
  119. package/dist/error-handling/index.d.ts +8 -0
  120. package/dist/error-handling/index.d.ts.map +1 -0
  121. package/dist/error-handling/index.js +8 -0
  122. package/dist/error-handling/index.js.map +1 -0
  123. package/dist/error-handling/types.d.ts +307 -0
  124. package/dist/error-handling/types.d.ts.map +1 -0
  125. package/dist/error-handling/types.js +7 -0
  126. package/dist/error-handling/types.js.map +1 -0
  127. package/dist/index.d.ts +18 -2
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +44 -5
  130. package/dist/index.js.map +1 -1
  131. package/dist/lake/pattern-shard-store.d.ts +6 -0
  132. package/dist/lake/pattern-shard-store.d.ts.map +1 -1
  133. package/dist/lake/pattern-shard-store.js +6 -0
  134. package/dist/lake/pattern-shard-store.js.map +1 -1
  135. package/dist/language-intelligence/base-normalizer.d.ts +68 -0
  136. package/dist/language-intelligence/base-normalizer.d.ts.map +1 -0
  137. package/dist/language-intelligence/base-normalizer.js +210 -0
  138. package/dist/language-intelligence/base-normalizer.js.map +1 -0
  139. package/dist/language-intelligence/framework-registry.d.ts +89 -0
  140. package/dist/language-intelligence/framework-registry.d.ts.map +1 -0
  141. package/dist/language-intelligence/framework-registry.js +165 -0
  142. package/dist/language-intelligence/framework-registry.js.map +1 -0
  143. package/dist/language-intelligence/frameworks/aspnet.d.ts +11 -0
  144. package/dist/language-intelligence/frameworks/aspnet.d.ts.map +1 -0
  145. package/dist/language-intelligence/frameworks/aspnet.js +325 -0
  146. package/dist/language-intelligence/frameworks/aspnet.js.map +1 -0
  147. package/dist/language-intelligence/frameworks/fastapi.d.ts +11 -0
  148. package/dist/language-intelligence/frameworks/fastapi.d.ts.map +1 -0
  149. package/dist/language-intelligence/frameworks/fastapi.js +188 -0
  150. package/dist/language-intelligence/frameworks/fastapi.js.map +1 -0
  151. package/dist/language-intelligence/frameworks/index.d.ts +32 -0
  152. package/dist/language-intelligence/frameworks/index.d.ts.map +1 -0
  153. package/dist/language-intelligence/frameworks/index.js +51 -0
  154. package/dist/language-intelligence/frameworks/index.js.map +1 -0
  155. package/dist/language-intelligence/frameworks/laravel.d.ts +12 -0
  156. package/dist/language-intelligence/frameworks/laravel.d.ts.map +1 -0
  157. package/dist/language-intelligence/frameworks/laravel.js +194 -0
  158. package/dist/language-intelligence/frameworks/laravel.js.map +1 -0
  159. package/dist/language-intelligence/frameworks/nestjs.d.ts +11 -0
  160. package/dist/language-intelligence/frameworks/nestjs.d.ts.map +1 -0
  161. package/dist/language-intelligence/frameworks/nestjs.js +307 -0
  162. package/dist/language-intelligence/frameworks/nestjs.js.map +1 -0
  163. package/dist/language-intelligence/frameworks/spring.d.ts +11 -0
  164. package/dist/language-intelligence/frameworks/spring.d.ts.map +1 -0
  165. package/dist/language-intelligence/frameworks/spring.js +369 -0
  166. package/dist/language-intelligence/frameworks/spring.js.map +1 -0
  167. package/dist/language-intelligence/index.d.ts +33 -0
  168. package/dist/language-intelligence/index.d.ts.map +1 -0
  169. package/dist/language-intelligence/index.js +37 -0
  170. package/dist/language-intelligence/index.js.map +1 -0
  171. package/dist/language-intelligence/language-intelligence.d.ts +99 -0
  172. package/dist/language-intelligence/language-intelligence.d.ts.map +1 -0
  173. package/dist/language-intelligence/language-intelligence.js +239 -0
  174. package/dist/language-intelligence/language-intelligence.js.map +1 -0
  175. package/dist/language-intelligence/normalizers/csharp-normalizer.d.ts +39 -0
  176. package/dist/language-intelligence/normalizers/csharp-normalizer.d.ts.map +1 -0
  177. package/dist/language-intelligence/normalizers/csharp-normalizer.js +86 -0
  178. package/dist/language-intelligence/normalizers/csharp-normalizer.js.map +1 -0
  179. package/dist/language-intelligence/normalizers/index.d.ts +25 -0
  180. package/dist/language-intelligence/normalizers/index.d.ts.map +1 -0
  181. package/dist/language-intelligence/normalizers/index.js +60 -0
  182. package/dist/language-intelligence/normalizers/index.js.map +1 -0
  183. package/dist/language-intelligence/normalizers/java-normalizer.d.ts +39 -0
  184. package/dist/language-intelligence/normalizers/java-normalizer.d.ts.map +1 -0
  185. package/dist/language-intelligence/normalizers/java-normalizer.js +96 -0
  186. package/dist/language-intelligence/normalizers/java-normalizer.js.map +1 -0
  187. package/dist/language-intelligence/normalizers/php-normalizer.d.ts +39 -0
  188. package/dist/language-intelligence/normalizers/php-normalizer.d.ts.map +1 -0
  189. package/dist/language-intelligence/normalizers/php-normalizer.js +86 -0
  190. package/dist/language-intelligence/normalizers/php-normalizer.js.map +1 -0
  191. package/dist/language-intelligence/normalizers/python-normalizer.d.ts +39 -0
  192. package/dist/language-intelligence/normalizers/python-normalizer.d.ts.map +1 -0
  193. package/dist/language-intelligence/normalizers/python-normalizer.js +95 -0
  194. package/dist/language-intelligence/normalizers/python-normalizer.js.map +1 -0
  195. package/dist/language-intelligence/normalizers/typescript-normalizer.d.ts +39 -0
  196. package/dist/language-intelligence/normalizers/typescript-normalizer.d.ts.map +1 -0
  197. package/dist/language-intelligence/normalizers/typescript-normalizer.js +84 -0
  198. package/dist/language-intelligence/normalizers/typescript-normalizer.js.map +1 -0
  199. package/dist/language-intelligence/types.d.ts +270 -0
  200. package/dist/language-intelligence/types.d.ts.map +1 -0
  201. package/dist/language-intelligence/types.js +9 -0
  202. package/dist/language-intelligence/types.js.map +1 -0
  203. package/dist/module-coupling/coupling-analyzer.d.ts +73 -0
  204. package/dist/module-coupling/coupling-analyzer.d.ts.map +1 -0
  205. package/dist/module-coupling/coupling-analyzer.js +668 -0
  206. package/dist/module-coupling/coupling-analyzer.js.map +1 -0
  207. package/dist/module-coupling/index.d.ts +9 -0
  208. package/dist/module-coupling/index.d.ts.map +1 -0
  209. package/dist/module-coupling/index.js +9 -0
  210. package/dist/module-coupling/index.js.map +1 -0
  211. package/dist/module-coupling/types.d.ts +273 -0
  212. package/dist/module-coupling/types.d.ts.map +1 -0
  213. package/dist/module-coupling/types.js +8 -0
  214. package/dist/module-coupling/types.js.map +1 -0
  215. package/dist/patterns/adapters/index.d.ts +11 -0
  216. package/dist/patterns/adapters/index.d.ts.map +1 -0
  217. package/dist/patterns/adapters/index.js +11 -0
  218. package/dist/patterns/adapters/index.js.map +1 -0
  219. package/dist/patterns/adapters/pattern-store-adapter.d.ts +59 -0
  220. package/dist/patterns/adapters/pattern-store-adapter.d.ts.map +1 -0
  221. package/dist/patterns/adapters/pattern-store-adapter.js +468 -0
  222. package/dist/patterns/adapters/pattern-store-adapter.js.map +1 -0
  223. package/dist/patterns/adapters/service-factory.d.ts +40 -0
  224. package/dist/patterns/adapters/service-factory.d.ts.map +1 -0
  225. package/dist/patterns/adapters/service-factory.js +144 -0
  226. package/dist/patterns/adapters/service-factory.js.map +1 -0
  227. package/dist/patterns/errors.d.ts +32 -0
  228. package/dist/patterns/errors.d.ts.map +1 -0
  229. package/dist/patterns/errors.js +45 -0
  230. package/dist/patterns/errors.js.map +1 -0
  231. package/dist/patterns/impl/cached-repository.d.ts +79 -0
  232. package/dist/patterns/impl/cached-repository.d.ts.map +1 -0
  233. package/dist/patterns/impl/cached-repository.js +296 -0
  234. package/dist/patterns/impl/cached-repository.js.map +1 -0
  235. package/dist/patterns/impl/file-repository.d.ts +75 -0
  236. package/dist/patterns/impl/file-repository.d.ts.map +1 -0
  237. package/dist/patterns/impl/file-repository.js +507 -0
  238. package/dist/patterns/impl/file-repository.js.map +1 -0
  239. package/dist/patterns/impl/index.d.ts +16 -0
  240. package/dist/patterns/impl/index.d.ts.map +1 -0
  241. package/dist/patterns/impl/index.js +21 -0
  242. package/dist/patterns/impl/index.js.map +1 -0
  243. package/dist/patterns/impl/memory-repository.d.ts +56 -0
  244. package/dist/patterns/impl/memory-repository.d.ts.map +1 -0
  245. package/dist/patterns/impl/memory-repository.js +323 -0
  246. package/dist/patterns/impl/memory-repository.js.map +1 -0
  247. package/dist/patterns/impl/pattern-service.d.ts +52 -0
  248. package/dist/patterns/impl/pattern-service.d.ts.map +1 -0
  249. package/dist/patterns/impl/pattern-service.js +382 -0
  250. package/dist/patterns/impl/pattern-service.js.map +1 -0
  251. package/dist/patterns/impl/repository-factory.d.ts +44 -0
  252. package/dist/patterns/impl/repository-factory.d.ts.map +1 -0
  253. package/dist/patterns/impl/repository-factory.js +140 -0
  254. package/dist/patterns/impl/repository-factory.js.map +1 -0
  255. package/dist/patterns/impl/unified-file-repository.d.ts +111 -0
  256. package/dist/patterns/impl/unified-file-repository.d.ts.map +1 -0
  257. package/dist/patterns/impl/unified-file-repository.js +677 -0
  258. package/dist/patterns/impl/unified-file-repository.js.map +1 -0
  259. package/dist/patterns/index.d.ts +23 -0
  260. package/dist/patterns/index.d.ts.map +1 -0
  261. package/dist/patterns/index.js +41 -0
  262. package/dist/patterns/index.js.map +1 -0
  263. package/dist/patterns/repository.d.ts +241 -0
  264. package/dist/patterns/repository.d.ts.map +1 -0
  265. package/dist/patterns/repository.js +23 -0
  266. package/dist/patterns/repository.js.map +1 -0
  267. package/dist/patterns/service.d.ts +245 -0
  268. package/dist/patterns/service.d.ts.map +1 -0
  269. package/dist/patterns/service.js +25 -0
  270. package/dist/patterns/service.js.map +1 -0
  271. package/dist/patterns/types.d.ts +227 -0
  272. package/dist/patterns/types.d.ts.map +1 -0
  273. package/dist/patterns/types.js +117 -0
  274. package/dist/patterns/types.js.map +1 -0
  275. package/dist/scanner/file-processor-worker.d.ts +66 -0
  276. package/dist/scanner/file-processor-worker.d.ts.map +1 -0
  277. package/dist/scanner/file-processor-worker.js +189 -0
  278. package/dist/scanner/file-processor-worker.js.map +1 -0
  279. package/dist/scanner/index.d.ts +2 -0
  280. package/dist/scanner/index.d.ts.map +1 -1
  281. package/dist/scanner/index.js +2 -0
  282. package/dist/scanner/index.js.map +1 -1
  283. package/dist/scanner/threaded-worker-pool.d.ts +182 -0
  284. package/dist/scanner/threaded-worker-pool.d.ts.map +1 -0
  285. package/dist/scanner/threaded-worker-pool.js +243 -0
  286. package/dist/scanner/threaded-worker-pool.js.map +1 -0
  287. package/dist/store/pattern-store.d.ts +6 -0
  288. package/dist/store/pattern-store.d.ts.map +1 -1
  289. package/dist/store/pattern-store.js +6 -0
  290. package/dist/store/pattern-store.js.map +1 -1
  291. package/dist/store/types.d.ts +6 -3
  292. package/dist/store/types.d.ts.map +1 -1
  293. package/dist/store/types.js.map +1 -1
  294. package/dist/test-topology/extractors/base-test-extractor.d.ts +89 -0
  295. package/dist/test-topology/extractors/base-test-extractor.d.ts.map +1 -0
  296. package/dist/test-topology/extractors/base-test-extractor.js +187 -0
  297. package/dist/test-topology/extractors/base-test-extractor.js.map +1 -0
  298. package/dist/test-topology/extractors/csharp-test-extractor.d.ts +23 -0
  299. package/dist/test-topology/extractors/csharp-test-extractor.d.ts.map +1 -0
  300. package/dist/test-topology/extractors/csharp-test-extractor.js +367 -0
  301. package/dist/test-topology/extractors/csharp-test-extractor.js.map +1 -0
  302. package/dist/test-topology/extractors/index.d.ts +12 -0
  303. package/dist/test-topology/extractors/index.d.ts.map +1 -0
  304. package/dist/test-topology/extractors/index.js +12 -0
  305. package/dist/test-topology/extractors/index.js.map +1 -0
  306. package/dist/test-topology/extractors/java-test-extractor.d.ts +20 -0
  307. package/dist/test-topology/extractors/java-test-extractor.d.ts.map +1 -0
  308. package/dist/test-topology/extractors/java-test-extractor.js +275 -0
  309. package/dist/test-topology/extractors/java-test-extractor.js.map +1 -0
  310. package/dist/test-topology/extractors/php-test-extractor.d.ts +24 -0
  311. package/dist/test-topology/extractors/php-test-extractor.d.ts.map +1 -0
  312. package/dist/test-topology/extractors/php-test-extractor.js +409 -0
  313. package/dist/test-topology/extractors/php-test-extractor.js.map +1 -0
  314. package/dist/test-topology/extractors/python-test-extractor.d.ts +23 -0
  315. package/dist/test-topology/extractors/python-test-extractor.d.ts.map +1 -0
  316. package/dist/test-topology/extractors/python-test-extractor.js +342 -0
  317. package/dist/test-topology/extractors/python-test-extractor.js.map +1 -0
  318. package/dist/test-topology/extractors/regex/csharp-test-regex.d.ts +51 -0
  319. package/dist/test-topology/extractors/regex/csharp-test-regex.d.ts.map +1 -0
  320. package/dist/test-topology/extractors/regex/csharp-test-regex.js +383 -0
  321. package/dist/test-topology/extractors/regex/csharp-test-regex.js.map +1 -0
  322. package/dist/test-topology/extractors/regex/index.d.ts +18 -0
  323. package/dist/test-topology/extractors/regex/index.d.ts.map +1 -0
  324. package/dist/test-topology/extractors/regex/index.js +43 -0
  325. package/dist/test-topology/extractors/regex/index.js.map +1 -0
  326. package/dist/test-topology/extractors/regex/java-test-regex.d.ts +50 -0
  327. package/dist/test-topology/extractors/regex/java-test-regex.d.ts.map +1 -0
  328. package/dist/test-topology/extractors/regex/java-test-regex.js +370 -0
  329. package/dist/test-topology/extractors/regex/java-test-regex.js.map +1 -0
  330. package/dist/test-topology/extractors/regex/php-test-regex.d.ts +56 -0
  331. package/dist/test-topology/extractors/regex/php-test-regex.d.ts.map +1 -0
  332. package/dist/test-topology/extractors/regex/php-test-regex.js +503 -0
  333. package/dist/test-topology/extractors/regex/php-test-regex.js.map +1 -0
  334. package/dist/test-topology/extractors/regex/python-test-regex.d.ts +57 -0
  335. package/dist/test-topology/extractors/regex/python-test-regex.d.ts.map +1 -0
  336. package/dist/test-topology/extractors/regex/python-test-regex.js +381 -0
  337. package/dist/test-topology/extractors/regex/python-test-regex.js.map +1 -0
  338. package/dist/test-topology/extractors/regex/typescript-test-regex.d.ts +60 -0
  339. package/dist/test-topology/extractors/regex/typescript-test-regex.d.ts.map +1 -0
  340. package/dist/test-topology/extractors/regex/typescript-test-regex.js +368 -0
  341. package/dist/test-topology/extractors/regex/typescript-test-regex.js.map +1 -0
  342. package/dist/test-topology/extractors/typescript-test-extractor.d.ts +24 -0
  343. package/dist/test-topology/extractors/typescript-test-extractor.d.ts.map +1 -0
  344. package/dist/test-topology/extractors/typescript-test-extractor.js +266 -0
  345. package/dist/test-topology/extractors/typescript-test-extractor.js.map +1 -0
  346. package/dist/test-topology/hybrid-test-topology-analyzer.d.ts +98 -0
  347. package/dist/test-topology/hybrid-test-topology-analyzer.d.ts.map +1 -0
  348. package/dist/test-topology/hybrid-test-topology-analyzer.js +555 -0
  349. package/dist/test-topology/hybrid-test-topology-analyzer.js.map +1 -0
  350. package/dist/test-topology/index.d.ts +16 -0
  351. package/dist/test-topology/index.d.ts.map +1 -0
  352. package/dist/test-topology/index.js +19 -0
  353. package/dist/test-topology/index.js.map +1 -0
  354. package/dist/test-topology/test-topology-analyzer.d.ts +85 -0
  355. package/dist/test-topology/test-topology-analyzer.d.ts.map +1 -0
  356. package/dist/test-topology/test-topology-analyzer.js +538 -0
  357. package/dist/test-topology/test-topology-analyzer.js.map +1 -0
  358. package/dist/test-topology/types.d.ts +300 -0
  359. package/dist/test-topology/types.d.ts.map +1 -0
  360. package/dist/test-topology/types.js +7 -0
  361. package/dist/test-topology/types.js.map +1 -0
  362. package/dist/unified-provider/compat/index.d.ts +11 -0
  363. package/dist/unified-provider/compat/index.d.ts.map +1 -0
  364. package/dist/unified-provider/compat/index.js +13 -0
  365. package/dist/unified-provider/compat/index.js.map +1 -0
  366. package/dist/unified-provider/compat/legacy-extractors.d.ts +63 -0
  367. package/dist/unified-provider/compat/legacy-extractors.d.ts.map +1 -0
  368. package/dist/unified-provider/compat/legacy-extractors.js +80 -0
  369. package/dist/unified-provider/compat/legacy-extractors.js.map +1 -0
  370. package/dist/unified-provider/compat/legacy-scanner.d.ts +28 -0
  371. package/dist/unified-provider/compat/legacy-scanner.d.ts.map +1 -0
  372. package/dist/unified-provider/compat/legacy-scanner.js +31 -0
  373. package/dist/unified-provider/compat/legacy-scanner.js.map +1 -0
  374. package/dist/unified-provider/index.d.ts +28 -0
  375. package/dist/unified-provider/index.d.ts.map +1 -0
  376. package/dist/unified-provider/index.js +47 -0
  377. package/dist/unified-provider/index.js.map +1 -0
  378. package/dist/unified-provider/integration/index.d.ts +9 -0
  379. package/dist/unified-provider/integration/index.d.ts.map +1 -0
  380. package/dist/unified-provider/integration/index.js +11 -0
  381. package/dist/unified-provider/integration/index.js.map +1 -0
  382. package/dist/unified-provider/integration/unified-data-access-adapter.d.ts +75 -0
  383. package/dist/unified-provider/integration/unified-data-access-adapter.d.ts.map +1 -0
  384. package/dist/unified-provider/integration/unified-data-access-adapter.js +210 -0
  385. package/dist/unified-provider/integration/unified-data-access-adapter.js.map +1 -0
  386. package/dist/unified-provider/integration/unified-scanner.d.ts +90 -0
  387. package/dist/unified-provider/integration/unified-scanner.d.ts.map +1 -0
  388. package/dist/unified-provider/integration/unified-scanner.js +369 -0
  389. package/dist/unified-provider/integration/unified-scanner.js.map +1 -0
  390. package/dist/unified-provider/matching/base-matcher.d.ts +80 -0
  391. package/dist/unified-provider/matching/base-matcher.d.ts.map +1 -0
  392. package/dist/unified-provider/matching/base-matcher.js +196 -0
  393. package/dist/unified-provider/matching/base-matcher.js.map +1 -0
  394. package/dist/unified-provider/matching/django-matcher.d.ts +32 -0
  395. package/dist/unified-provider/matching/django-matcher.d.ts.map +1 -0
  396. package/dist/unified-provider/matching/django-matcher.js +107 -0
  397. package/dist/unified-provider/matching/django-matcher.js.map +1 -0
  398. package/dist/unified-provider/matching/drizzle-matcher.d.ts +25 -0
  399. package/dist/unified-provider/matching/drizzle-matcher.d.ts.map +1 -0
  400. package/dist/unified-provider/matching/drizzle-matcher.js +123 -0
  401. package/dist/unified-provider/matching/drizzle-matcher.js.map +1 -0
  402. package/dist/unified-provider/matching/efcore-matcher.d.ts +27 -0
  403. package/dist/unified-provider/matching/efcore-matcher.d.ts.map +1 -0
  404. package/dist/unified-provider/matching/efcore-matcher.js +88 -0
  405. package/dist/unified-provider/matching/efcore-matcher.js.map +1 -0
  406. package/dist/unified-provider/matching/eloquent-matcher.d.ts +32 -0
  407. package/dist/unified-provider/matching/eloquent-matcher.d.ts.map +1 -0
  408. package/dist/unified-provider/matching/eloquent-matcher.js +162 -0
  409. package/dist/unified-provider/matching/eloquent-matcher.js.map +1 -0
  410. package/dist/unified-provider/matching/index.d.ts +19 -0
  411. package/dist/unified-provider/matching/index.d.ts.map +1 -0
  412. package/dist/unified-provider/matching/index.js +24 -0
  413. package/dist/unified-provider/matching/index.js.map +1 -0
  414. package/dist/unified-provider/matching/knex-matcher.d.ts +26 -0
  415. package/dist/unified-provider/matching/knex-matcher.d.ts.map +1 -0
  416. package/dist/unified-provider/matching/knex-matcher.js +109 -0
  417. package/dist/unified-provider/matching/knex-matcher.js.map +1 -0
  418. package/dist/unified-provider/matching/matcher-registry.d.ts +55 -0
  419. package/dist/unified-provider/matching/matcher-registry.d.ts.map +1 -0
  420. package/dist/unified-provider/matching/matcher-registry.js +130 -0
  421. package/dist/unified-provider/matching/matcher-registry.js.map +1 -0
  422. package/dist/unified-provider/matching/mongoose-matcher.d.ts +30 -0
  423. package/dist/unified-provider/matching/mongoose-matcher.d.ts.map +1 -0
  424. package/dist/unified-provider/matching/mongoose-matcher.js +132 -0
  425. package/dist/unified-provider/matching/mongoose-matcher.js.map +1 -0
  426. package/dist/unified-provider/matching/prisma-matcher.d.ts +31 -0
  427. package/dist/unified-provider/matching/prisma-matcher.d.ts.map +1 -0
  428. package/dist/unified-provider/matching/prisma-matcher.js +123 -0
  429. package/dist/unified-provider/matching/prisma-matcher.js.map +1 -0
  430. package/dist/unified-provider/matching/raw-sql-matcher.d.ts +31 -0
  431. package/dist/unified-provider/matching/raw-sql-matcher.d.ts.map +1 -0
  432. package/dist/unified-provider/matching/raw-sql-matcher.js +173 -0
  433. package/dist/unified-provider/matching/raw-sql-matcher.js.map +1 -0
  434. package/dist/unified-provider/matching/sequelize-matcher.d.ts +28 -0
  435. package/dist/unified-provider/matching/sequelize-matcher.d.ts.map +1 -0
  436. package/dist/unified-provider/matching/sequelize-matcher.js +132 -0
  437. package/dist/unified-provider/matching/sequelize-matcher.js.map +1 -0
  438. package/dist/unified-provider/matching/spring-data-matcher.d.ts +32 -0
  439. package/dist/unified-provider/matching/spring-data-matcher.d.ts.map +1 -0
  440. package/dist/unified-provider/matching/spring-data-matcher.js +112 -0
  441. package/dist/unified-provider/matching/spring-data-matcher.js.map +1 -0
  442. package/dist/unified-provider/matching/sqlalchemy-matcher.d.ts +32 -0
  443. package/dist/unified-provider/matching/sqlalchemy-matcher.d.ts.map +1 -0
  444. package/dist/unified-provider/matching/sqlalchemy-matcher.js +201 -0
  445. package/dist/unified-provider/matching/sqlalchemy-matcher.js.map +1 -0
  446. package/dist/unified-provider/matching/supabase-matcher.d.ts +27 -0
  447. package/dist/unified-provider/matching/supabase-matcher.d.ts.map +1 -0
  448. package/dist/unified-provider/matching/supabase-matcher.js +122 -0
  449. package/dist/unified-provider/matching/supabase-matcher.js.map +1 -0
  450. package/dist/unified-provider/matching/typeorm-matcher.d.ts +32 -0
  451. package/dist/unified-provider/matching/typeorm-matcher.d.ts.map +1 -0
  452. package/dist/unified-provider/matching/typeorm-matcher.js +169 -0
  453. package/dist/unified-provider/matching/typeorm-matcher.js.map +1 -0
  454. package/dist/unified-provider/migration/deprecated-extractors.d.ts +104 -0
  455. package/dist/unified-provider/migration/deprecated-extractors.d.ts.map +1 -0
  456. package/dist/unified-provider/migration/deprecated-extractors.js +129 -0
  457. package/dist/unified-provider/migration/deprecated-extractors.js.map +1 -0
  458. package/dist/unified-provider/migration/deprecated-scanner.d.ts +40 -0
  459. package/dist/unified-provider/migration/deprecated-scanner.d.ts.map +1 -0
  460. package/dist/unified-provider/migration/deprecated-scanner.js +49 -0
  461. package/dist/unified-provider/migration/deprecated-scanner.js.map +1 -0
  462. package/dist/unified-provider/migration/index.d.ts +41 -0
  463. package/dist/unified-provider/migration/index.d.ts.map +1 -0
  464. package/dist/unified-provider/migration/index.js +43 -0
  465. package/dist/unified-provider/migration/index.js.map +1 -0
  466. package/dist/unified-provider/normalization/base-normalizer.d.ts +188 -0
  467. package/dist/unified-provider/normalization/base-normalizer.d.ts.map +1 -0
  468. package/dist/unified-provider/normalization/base-normalizer.js +339 -0
  469. package/dist/unified-provider/normalization/base-normalizer.js.map +1 -0
  470. package/dist/unified-provider/normalization/csharp-normalizer.d.ts +58 -0
  471. package/dist/unified-provider/normalization/csharp-normalizer.d.ts.map +1 -0
  472. package/dist/unified-provider/normalization/csharp-normalizer.js +467 -0
  473. package/dist/unified-provider/normalization/csharp-normalizer.js.map +1 -0
  474. package/dist/unified-provider/normalization/index.d.ts +23 -0
  475. package/dist/unified-provider/normalization/index.d.ts.map +1 -0
  476. package/dist/unified-provider/normalization/index.js +62 -0
  477. package/dist/unified-provider/normalization/index.js.map +1 -0
  478. package/dist/unified-provider/normalization/java-normalizer.d.ts +54 -0
  479. package/dist/unified-provider/normalization/java-normalizer.d.ts.map +1 -0
  480. package/dist/unified-provider/normalization/java-normalizer.js +453 -0
  481. package/dist/unified-provider/normalization/java-normalizer.js.map +1 -0
  482. package/dist/unified-provider/normalization/php-normalizer.d.ts +54 -0
  483. package/dist/unified-provider/normalization/php-normalizer.d.ts.map +1 -0
  484. package/dist/unified-provider/normalization/php-normalizer.js +489 -0
  485. package/dist/unified-provider/normalization/php-normalizer.js.map +1 -0
  486. package/dist/unified-provider/normalization/python-normalizer.d.ts +61 -0
  487. package/dist/unified-provider/normalization/python-normalizer.d.ts.map +1 -0
  488. package/dist/unified-provider/normalization/python-normalizer.js +548 -0
  489. package/dist/unified-provider/normalization/python-normalizer.js.map +1 -0
  490. package/dist/unified-provider/normalization/typescript-normalizer.d.ts +60 -0
  491. package/dist/unified-provider/normalization/typescript-normalizer.d.ts.map +1 -0
  492. package/dist/unified-provider/normalization/typescript-normalizer.js +608 -0
  493. package/dist/unified-provider/normalization/typescript-normalizer.js.map +1 -0
  494. package/dist/unified-provider/parsing/index.d.ts +5 -0
  495. package/dist/unified-provider/parsing/index.d.ts.map +1 -0
  496. package/dist/unified-provider/parsing/index.js +5 -0
  497. package/dist/unified-provider/parsing/index.js.map +1 -0
  498. package/dist/unified-provider/parsing/parser-registry.d.ts +70 -0
  499. package/dist/unified-provider/parsing/parser-registry.d.ts.map +1 -0
  500. package/dist/unified-provider/parsing/parser-registry.js +260 -0
  501. package/dist/unified-provider/parsing/parser-registry.js.map +1 -0
  502. package/dist/unified-provider/provider/index.d.ts +5 -0
  503. package/dist/unified-provider/provider/index.d.ts.map +1 -0
  504. package/dist/unified-provider/provider/index.js +5 -0
  505. package/dist/unified-provider/provider/index.js.map +1 -0
  506. package/dist/unified-provider/provider/unified-language-provider.d.ts +56 -0
  507. package/dist/unified-provider/provider/unified-language-provider.d.ts.map +1 -0
  508. package/dist/unified-provider/provider/unified-language-provider.js +212 -0
  509. package/dist/unified-provider/provider/unified-language-provider.js.map +1 -0
  510. package/dist/unified-provider/types.d.ts +389 -0
  511. package/dist/unified-provider/types.d.ts.map +1 -0
  512. package/dist/unified-provider/types.js +9 -0
  513. package/dist/unified-provider/types.js.map +1 -0
  514. package/dist/wrappers/clustering/clusterer.d.ts +43 -0
  515. package/dist/wrappers/clustering/clusterer.d.ts.map +1 -0
  516. package/dist/wrappers/clustering/clusterer.js +374 -0
  517. package/dist/wrappers/clustering/clusterer.js.map +1 -0
  518. package/dist/wrappers/clustering/exclusions.d.ts +47 -0
  519. package/dist/wrappers/clustering/exclusions.d.ts.map +1 -0
  520. package/dist/wrappers/clustering/exclusions.js +318 -0
  521. package/dist/wrappers/clustering/exclusions.js.map +1 -0
  522. package/dist/wrappers/clustering/index.d.ts +6 -0
  523. package/dist/wrappers/clustering/index.d.ts.map +1 -0
  524. package/dist/wrappers/clustering/index.js +6 -0
  525. package/dist/wrappers/clustering/index.js.map +1 -0
  526. package/dist/wrappers/detection/detector.d.ts +69 -0
  527. package/dist/wrappers/detection/detector.d.ts.map +1 -0
  528. package/dist/wrappers/detection/detector.js +279 -0
  529. package/dist/wrappers/detection/detector.js.map +1 -0
  530. package/dist/wrappers/detection/index.d.ts +5 -0
  531. package/dist/wrappers/detection/index.d.ts.map +1 -0
  532. package/dist/wrappers/detection/index.js +5 -0
  533. package/dist/wrappers/detection/index.js.map +1 -0
  534. package/dist/wrappers/export/index.d.ts +5 -0
  535. package/dist/wrappers/export/index.d.ts.map +1 -0
  536. package/dist/wrappers/export/index.js +5 -0
  537. package/dist/wrappers/export/index.js.map +1 -0
  538. package/dist/wrappers/export/json.d.ts +127 -0
  539. package/dist/wrappers/export/json.d.ts.map +1 -0
  540. package/dist/wrappers/export/json.js +160 -0
  541. package/dist/wrappers/export/json.js.map +1 -0
  542. package/dist/wrappers/index.d.ts +56 -0
  543. package/dist/wrappers/index.d.ts.map +1 -0
  544. package/dist/wrappers/index.js +159 -0
  545. package/dist/wrappers/index.js.map +1 -0
  546. package/dist/wrappers/integration/adapter.d.ts +52 -0
  547. package/dist/wrappers/integration/adapter.d.ts.map +1 -0
  548. package/dist/wrappers/integration/adapter.js +209 -0
  549. package/dist/wrappers/integration/adapter.js.map +1 -0
  550. package/dist/wrappers/integration/index.d.ts +9 -0
  551. package/dist/wrappers/integration/index.d.ts.map +1 -0
  552. package/dist/wrappers/integration/index.js +12 -0
  553. package/dist/wrappers/integration/index.js.map +1 -0
  554. package/dist/wrappers/integration/pattern-adapter.d.ts +52 -0
  555. package/dist/wrappers/integration/pattern-adapter.d.ts.map +1 -0
  556. package/dist/wrappers/integration/pattern-adapter.js +192 -0
  557. package/dist/wrappers/integration/pattern-adapter.js.map +1 -0
  558. package/dist/wrappers/integration/scanner.d.ts +85 -0
  559. package/dist/wrappers/integration/scanner.d.ts.map +1 -0
  560. package/dist/wrappers/integration/scanner.js +367 -0
  561. package/dist/wrappers/integration/scanner.js.map +1 -0
  562. package/dist/wrappers/primitives/discovery.d.ts +57 -0
  563. package/dist/wrappers/primitives/discovery.d.ts.map +1 -0
  564. package/dist/wrappers/primitives/discovery.js +389 -0
  565. package/dist/wrappers/primitives/discovery.js.map +1 -0
  566. package/dist/wrappers/primitives/index.d.ts +6 -0
  567. package/dist/wrappers/primitives/index.d.ts.map +1 -0
  568. package/dist/wrappers/primitives/index.js +6 -0
  569. package/dist/wrappers/primitives/index.js.map +1 -0
  570. package/dist/wrappers/primitives/registry.d.ts +63 -0
  571. package/dist/wrappers/primitives/registry.d.ts.map +1 -0
  572. package/dist/wrappers/primitives/registry.js +447 -0
  573. package/dist/wrappers/primitives/registry.js.map +1 -0
  574. package/dist/wrappers/types.d.ts +137 -0
  575. package/dist/wrappers/types.d.ts.map +1 -0
  576. package/dist/wrappers/types.js +7 -0
  577. package/dist/wrappers/types.js.map +1 -0
  578. package/package.json +23 -18
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Hybrid Extractor Base
3
+ *
4
+ * Base class for extractors that combine tree-sitter (primary) with
5
+ * regex fallback for enterprise-grade extraction coverage.
6
+ *
7
+ * Pattern: Try tree-sitter first, fall back to regex on failure,
8
+ * merge results with confidence tracking.
9
+ */
10
+ import type { CallGraphLanguage, FileExtractionResult } from '../types.js';
11
+ import type { BaseRegexExtractor } from './regex/base-regex-extractor.js';
12
+ import { type ExtractionQuality, type HybridExtractorConfig } from './types.js';
13
+ /**
14
+ * Extended file extraction result with quality metrics
15
+ */
16
+ export interface HybridExtractionResult extends FileExtractionResult {
17
+ /** Extraction quality metrics */
18
+ quality: ExtractionQuality;
19
+ }
20
+ /**
21
+ * Abstract base class for hybrid extractors
22
+ */
23
+ export declare abstract class HybridExtractorBase {
24
+ /** Language this extractor handles */
25
+ abstract readonly language: CallGraphLanguage;
26
+ /** File extensions this extractor handles */
27
+ abstract readonly extensions: string[];
28
+ /** Configuration */
29
+ protected config: Required<HybridExtractorConfig>;
30
+ /** Regex fallback extractor */
31
+ protected abstract regexExtractor: BaseRegexExtractor;
32
+ constructor(config?: HybridExtractorConfig);
33
+ /**
34
+ * Check if this extractor can handle a file
35
+ */
36
+ canHandle(filePath: string): boolean;
37
+ /**
38
+ * Extract with hybrid approach: tree-sitter first, regex fallback
39
+ */
40
+ extract(source: string, filePath: string): HybridExtractionResult;
41
+ /**
42
+ * Extract using tree-sitter (implemented by subclass)
43
+ */
44
+ protected abstract extractWithTreeSitter(source: string, filePath: string): FileExtractionResult | null;
45
+ /**
46
+ * Check if tree-sitter is available for this language
47
+ */
48
+ protected abstract isTreeSitterAvailable(): boolean;
49
+ /**
50
+ * Extract with regex fallback, merging with tree-sitter results
51
+ */
52
+ private extractWithFallback;
53
+ /**
54
+ * Extract using regex only
55
+ */
56
+ private extractWithRegexOnly;
57
+ /**
58
+ * Merge tree-sitter and regex results
59
+ */
60
+ private mergeResults;
61
+ /**
62
+ * Merge functions, avoiding duplicates
63
+ */
64
+ private mergeUniqueFunctions;
65
+ /**
66
+ * Merge calls, avoiding duplicates
67
+ */
68
+ private mergeUniqueCalls;
69
+ /**
70
+ * Merge imports, avoiding duplicates
71
+ */
72
+ private mergeUniqueImports;
73
+ /**
74
+ * Merge exports, avoiding duplicates
75
+ */
76
+ private mergeUniqueExports;
77
+ /**
78
+ * Merge classes, avoiding duplicates
79
+ */
80
+ private mergeUniqueClasses;
81
+ /**
82
+ * Check if extraction result has good coverage
83
+ */
84
+ private hasGoodCoverage;
85
+ /**
86
+ * Create quality metrics for tree-sitter extraction
87
+ */
88
+ private createTreeSitterQuality;
89
+ /**
90
+ * Create error result
91
+ */
92
+ private createErrorResult;
93
+ /**
94
+ * Create empty result
95
+ */
96
+ private createEmptyResult;
97
+ /**
98
+ * Get file extension
99
+ */
100
+ protected getExtension(filePath: string): string;
101
+ }
102
+ //# sourceMappingURL=hybrid-extractor-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-extractor-base.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/hybrid-extractor-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EAMrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAK3B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,iCAAiC;IACjC,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED;;GAEG;AACH,8BAAsB,mBAAmB;IACvC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAE9C,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAEvC,oBAAoB;IACpB,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAElD,+BAA+B;IAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;gBAE1C,MAAM,CAAC,EAAE,qBAAqB;IAI1C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKpC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,sBAAsB;IAgDjE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,oBAAoB,GAAG,IAAI;IAE9B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,OAAO;IAEnD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,YAAY;IA0BpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAIjD"}
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Hybrid Extractor Base
3
+ *
4
+ * Base class for extractors that combine tree-sitter (primary) with
5
+ * regex fallback for enterprise-grade extraction coverage.
6
+ *
7
+ * Pattern: Try tree-sitter first, fall back to regex on failure,
8
+ * merge results with confidence tracking.
9
+ */
10
+ import { DEFAULT_HYBRID_CONFIG, EXTRACTION_CONFIDENCE, createDefaultQuality, mergeQualities, } from './types.js';
11
+ /**
12
+ * Abstract base class for hybrid extractors
13
+ */
14
+ export class HybridExtractorBase {
15
+ /** Configuration */
16
+ config;
17
+ constructor(config) {
18
+ this.config = { ...DEFAULT_HYBRID_CONFIG, ...config };
19
+ }
20
+ /**
21
+ * Check if this extractor can handle a file
22
+ */
23
+ canHandle(filePath) {
24
+ const ext = this.getExtension(filePath);
25
+ return this.extensions.includes(ext);
26
+ }
27
+ /**
28
+ * Extract with hybrid approach: tree-sitter first, regex fallback
29
+ */
30
+ extract(source, filePath) {
31
+ const startTime = performance.now();
32
+ // Try tree-sitter first if enabled
33
+ if (this.config.enableTreeSitter) {
34
+ try {
35
+ const treeSitterResult = this.extractWithTreeSitter(source, filePath);
36
+ // If tree-sitter succeeded with good results, return them
37
+ if (treeSitterResult && treeSitterResult.errors.length === 0) {
38
+ const quality = this.createTreeSitterQuality(treeSitterResult, startTime);
39
+ // Check if we got meaningful results
40
+ if (this.hasGoodCoverage(treeSitterResult)) {
41
+ return { ...treeSitterResult, quality };
42
+ }
43
+ }
44
+ // Tree-sitter had errors or poor coverage - try regex fallback
45
+ if (this.config.enableRegexFallback) {
46
+ return this.extractWithFallback(source, filePath, treeSitterResult, startTime);
47
+ }
48
+ // No fallback enabled, return tree-sitter result as-is
49
+ if (treeSitterResult) {
50
+ const quality = this.createTreeSitterQuality(treeSitterResult, startTime);
51
+ return { ...treeSitterResult, quality };
52
+ }
53
+ }
54
+ catch (error) {
55
+ // Tree-sitter failed completely - use regex fallback
56
+ if (this.config.enableRegexFallback) {
57
+ return this.extractWithRegexOnly(source, filePath, startTime, error);
58
+ }
59
+ // No fallback, return error result
60
+ return this.createErrorResult(filePath, error, startTime);
61
+ }
62
+ }
63
+ // Tree-sitter disabled - use regex only
64
+ if (this.config.enableRegexFallback) {
65
+ return this.extractWithRegexOnly(source, filePath, startTime);
66
+ }
67
+ // Nothing enabled - return empty result
68
+ return this.createEmptyResult(filePath, startTime);
69
+ }
70
+ /**
71
+ * Extract with regex fallback, merging with tree-sitter results
72
+ */
73
+ extractWithFallback(source, filePath, treeSitterResult, startTime) {
74
+ // Get regex results
75
+ const regexResult = this.regexExtractor.extract(source, filePath);
76
+ if (!treeSitterResult) {
77
+ // No tree-sitter result - use regex only
78
+ return regexResult;
79
+ }
80
+ // Merge results
81
+ const merged = this.mergeResults(treeSitterResult, regexResult);
82
+ // Create merged quality
83
+ const treeSitterQuality = this.createTreeSitterQuality(treeSitterResult, startTime);
84
+ const mergedQuality = mergeQualities(treeSitterQuality, regexResult.quality);
85
+ mergedQuality.extractionTimeMs = performance.now() - startTime;
86
+ return { ...merged, quality: mergedQuality };
87
+ }
88
+ /**
89
+ * Extract using regex only
90
+ */
91
+ extractWithRegexOnly(source, filePath, startTime, treeSitterError) {
92
+ const result = this.regexExtractor.extract(source, filePath);
93
+ // Add tree-sitter error to warnings if present
94
+ if (treeSitterError) {
95
+ const errorMsg = treeSitterError instanceof Error
96
+ ? treeSitterError.message
97
+ : 'Tree-sitter unavailable';
98
+ result.quality.warnings.push(`Tree-sitter fallback: ${errorMsg}`);
99
+ }
100
+ result.quality.usedFallback = true;
101
+ result.quality.extractionTimeMs = performance.now() - startTime;
102
+ return result;
103
+ }
104
+ /**
105
+ * Merge tree-sitter and regex results
106
+ */
107
+ mergeResults(primary, fallback) {
108
+ // Start with primary results
109
+ const merged = {
110
+ file: primary.file,
111
+ language: primary.language,
112
+ functions: [...primary.functions],
113
+ calls: [...primary.calls],
114
+ imports: [...primary.imports],
115
+ exports: [...primary.exports],
116
+ classes: [...primary.classes],
117
+ errors: [...primary.errors],
118
+ };
119
+ // Add unique items from fallback
120
+ merged.functions = this.mergeUniqueFunctions(merged.functions, fallback.functions);
121
+ merged.calls = this.mergeUniqueCalls(merged.calls, fallback.calls);
122
+ merged.imports = this.mergeUniqueImports(merged.imports, fallback.imports);
123
+ merged.exports = this.mergeUniqueExports(merged.exports, fallback.exports);
124
+ merged.classes = this.mergeUniqueClasses(merged.classes, fallback.classes);
125
+ return merged;
126
+ }
127
+ /**
128
+ * Merge functions, avoiding duplicates
129
+ */
130
+ mergeUniqueFunctions(primary, fallback) {
131
+ const seen = new Set(primary.map(f => `${f.name}:${f.startLine}`));
132
+ const result = [...primary];
133
+ for (const func of fallback) {
134
+ const key = `${func.name}:${func.startLine}`;
135
+ if (!seen.has(key)) {
136
+ seen.add(key);
137
+ result.push(func);
138
+ }
139
+ }
140
+ return result;
141
+ }
142
+ /**
143
+ * Merge calls, avoiding duplicates
144
+ */
145
+ mergeUniqueCalls(primary, fallback) {
146
+ const seen = new Set(primary.map(c => `${c.calleeName}:${c.line}`));
147
+ const result = [...primary];
148
+ for (const call of fallback) {
149
+ const key = `${call.calleeName}:${call.line}`;
150
+ if (!seen.has(key)) {
151
+ seen.add(key);
152
+ result.push(call);
153
+ }
154
+ }
155
+ return result;
156
+ }
157
+ /**
158
+ * Merge imports, avoiding duplicates
159
+ */
160
+ mergeUniqueImports(primary, fallback) {
161
+ const seen = new Set(primary.map(i => `${i.source}:${i.line}`));
162
+ const result = [...primary];
163
+ for (const imp of fallback) {
164
+ const key = `${imp.source}:${imp.line}`;
165
+ if (!seen.has(key)) {
166
+ seen.add(key);
167
+ result.push(imp);
168
+ }
169
+ }
170
+ return result;
171
+ }
172
+ /**
173
+ * Merge exports, avoiding duplicates
174
+ */
175
+ mergeUniqueExports(primary, fallback) {
176
+ const seen = new Set(primary.map(e => `${e.name}:${e.line}`));
177
+ const result = [...primary];
178
+ for (const exp of fallback) {
179
+ const key = `${exp.name}:${exp.line}`;
180
+ if (!seen.has(key)) {
181
+ seen.add(key);
182
+ result.push(exp);
183
+ }
184
+ }
185
+ return result;
186
+ }
187
+ /**
188
+ * Merge classes, avoiding duplicates
189
+ */
190
+ mergeUniqueClasses(primary, fallback) {
191
+ const seen = new Set(primary.map(c => `${c.name}:${c.startLine}`));
192
+ const result = [...primary];
193
+ for (const cls of fallback) {
194
+ const key = `${cls.name}:${cls.startLine}`;
195
+ if (!seen.has(key)) {
196
+ seen.add(key);
197
+ result.push(cls);
198
+ }
199
+ }
200
+ return result;
201
+ }
202
+ /**
203
+ * Check if extraction result has good coverage
204
+ */
205
+ hasGoodCoverage(result) {
206
+ // Consider it good if we found at least some functions or classes
207
+ return result.functions.length > 0 || result.classes.length > 0;
208
+ }
209
+ /**
210
+ * Create quality metrics for tree-sitter extraction
211
+ */
212
+ createTreeSitterQuality(result, startTime) {
213
+ const quality = createDefaultQuality();
214
+ quality.method = 'tree-sitter';
215
+ quality.confidence = result.errors.length === 0
216
+ ? EXTRACTION_CONFIDENCE.TREE_SITTER
217
+ : EXTRACTION_CONFIDENCE.REGEX;
218
+ quality.itemsExtracted =
219
+ result.functions.length +
220
+ result.classes.length +
221
+ result.imports.length +
222
+ result.exports.length +
223
+ result.calls.length;
224
+ quality.parseErrors = result.errors.length;
225
+ quality.coveragePercent = result.errors.length === 0 ? 95 : 70;
226
+ quality.extractionTimeMs = performance.now() - startTime;
227
+ quality.usedFallback = false;
228
+ return quality;
229
+ }
230
+ /**
231
+ * Create error result
232
+ */
233
+ createErrorResult(filePath, error, startTime) {
234
+ const errorMsg = error instanceof Error ? error.message : 'Unknown extraction error';
235
+ return {
236
+ file: filePath,
237
+ language: this.language,
238
+ functions: [],
239
+ calls: [],
240
+ imports: [],
241
+ exports: [],
242
+ classes: [],
243
+ errors: [errorMsg],
244
+ quality: {
245
+ confidence: EXTRACTION_CONFIDENCE.UNKNOWN,
246
+ method: 'tree-sitter',
247
+ coveragePercent: 0,
248
+ itemsExtracted: 0,
249
+ parseErrors: 1,
250
+ warnings: [],
251
+ usedFallback: false,
252
+ extractionTimeMs: performance.now() - startTime,
253
+ },
254
+ };
255
+ }
256
+ /**
257
+ * Create empty result
258
+ */
259
+ createEmptyResult(filePath, startTime) {
260
+ return {
261
+ file: filePath,
262
+ language: this.language,
263
+ functions: [],
264
+ calls: [],
265
+ imports: [],
266
+ exports: [],
267
+ classes: [],
268
+ errors: ['No extraction method available'],
269
+ quality: {
270
+ confidence: 0,
271
+ method: 'tree-sitter',
272
+ coveragePercent: 0,
273
+ itemsExtracted: 0,
274
+ parseErrors: 0,
275
+ warnings: ['No extraction method enabled'],
276
+ usedFallback: false,
277
+ extractionTimeMs: performance.now() - startTime,
278
+ },
279
+ };
280
+ }
281
+ /**
282
+ * Get file extension
283
+ */
284
+ getExtension(filePath) {
285
+ const lastDot = filePath.lastIndexOf('.');
286
+ return lastDot >= 0 ? filePath.slice(lastDot) : '';
287
+ }
288
+ }
289
+ //# sourceMappingURL=hybrid-extractor-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-extractor-base.js","sourceRoot":"","sources":["../../../src/call-graph/extractors/hybrid-extractor-base.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,13 @@
2
2
  * Call Graph Extractors
3
3
  *
4
4
  * Language-specific extractors for building call graphs.
5
+ *
6
+ * NOTE: Data access extraction now uses the unified provider system.
7
+ * The legacy *DataAccessExtractor classes are re-exported from the compat layer
8
+ * for backward compatibility, but internally delegate to UnifiedLanguageProvider.
9
+ *
10
+ * ENTERPRISE FALLBACK: All extractors now support regex fallback when tree-sitter
11
+ * is unavailable. Use the hybrid extractors for maximum extraction coverage.
5
12
  */
6
13
  export { BaseCallGraphExtractor } from './base-extractor.js';
7
14
  export { TypeScriptCallGraphExtractor } from './typescript-extractor.js';
@@ -9,18 +16,15 @@ export { PythonCallGraphExtractor } from './python-extractor.js';
9
16
  export { CSharpCallGraphExtractor } from './csharp-extractor.js';
10
17
  export { JavaCallGraphExtractor } from './java-extractor.js';
11
18
  export { PhpCallGraphExtractor } from './php-extractor.js';
19
+ export { HybridExtractorBase, type HybridExtractionResult } from './hybrid-extractor-base.js';
20
+ export { PythonHybridExtractor, createPythonHybridExtractor } from './python-hybrid-extractor.js';
21
+ export { TypeScriptHybridExtractor, createTypeScriptHybridExtractor } from './typescript-hybrid-extractor.js';
22
+ export { PhpHybridExtractor, createPhpHybridExtractor } from './php-hybrid-extractor.js';
23
+ export { JavaHybridExtractor, createJavaHybridExtractor } from './java-hybrid-extractor.js';
24
+ export { CSharpHybridExtractor, createCSharpHybridExtractor } from './csharp-hybrid-extractor.js';
25
+ export { BaseRegexExtractor, TypeScriptRegexExtractor, PythonRegexExtractor, PhpRegexExtractor, JavaRegexExtractor, CSharpRegexExtractor, getRegexExtractor, getRegexExtractorForFile, } from './regex/index.js';
26
+ export { type ExtractionQuality, type ExtractionMethod, type RegexPattern, type LanguagePatterns, type HybridExtractorConfig, EXTRACTION_CONFIDENCE, DEFAULT_HYBRID_CONFIG, createDefaultQuality, mergeQualities, } from './types.js';
12
27
  export { BaseDataAccessExtractor, type DataAccessExtractionResult, } from './data-access-extractor.js';
13
- export { TypeScriptDataAccessExtractor, createTypeScriptDataAccessExtractor, } from './typescript-data-access-extractor.js';
14
- export { PythonDataAccessExtractor, createPythonDataAccessExtractor, } from './python-data-access-extractor.js';
15
- export { CSharpDataAccessExtractor, createCSharpDataAccessExtractor, } from './csharp-data-access-extractor.js';
16
- export { JavaDataAccessExtractor, createJavaDataAccessExtractor, } from './java-data-access-extractor.js';
17
- export { PhpDataAccessExtractor, createPhpDataAccessExtractor, } from './php-data-access-extractor.js';
18
- export { SemanticDataAccessScanner, createSemanticDataAccessScanner, detectProjectStack, type SemanticScannerConfig, type SemanticScanResult, type DetectedStack, } from './semantic-data-access-scanner.js';
19
- export declare function createDataAccessExtractors(): {
20
- typescript: import("./typescript-data-access-extractor.js").TypeScriptDataAccessExtractor;
21
- python: import("./python-data-access-extractor.js").PythonDataAccessExtractor;
22
- csharp: import("./csharp-data-access-extractor.js").CSharpDataAccessExtractor;
23
- java: import("./java-data-access-extractor.js").JavaDataAccessExtractor;
24
- php: import("./php-data-access-extractor.js").PhpDataAccessExtractor;
25
- };
28
+ export { TypeScriptDataAccessExtractor, createTypeScriptDataAccessExtractor, PythonDataAccessExtractor, createPythonDataAccessExtractor, CSharpDataAccessExtractor, createCSharpDataAccessExtractor, JavaDataAccessExtractor, createJavaDataAccessExtractor, PhpDataAccessExtractor, createPhpDataAccessExtractor, createDataAccessExtractors, SemanticDataAccessScanner, createSemanticDataAccessScanner, type SemanticScannerConfig, type SemanticScanResult, type DetectedStack, } from '../../unified-provider/compat/index.js';
29
+ export { detectProjectStack } from '../../unified-provider/integration/unified-scanner.js';
26
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EACL,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,mCAAmC,CAAC;AAS3C,wBAAgB,0BAA0B;;;;;;EAQzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAGlG,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,EACnC,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,uBAAuB,EACvB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC"}
@@ -2,35 +2,36 @@
2
2
  * Call Graph Extractors
3
3
  *
4
4
  * Language-specific extractors for building call graphs.
5
+ *
6
+ * NOTE: Data access extraction now uses the unified provider system.
7
+ * The legacy *DataAccessExtractor classes are re-exported from the compat layer
8
+ * for backward compatibility, but internally delegate to UnifiedLanguageProvider.
9
+ *
10
+ * ENTERPRISE FALLBACK: All extractors now support regex fallback when tree-sitter
11
+ * is unavailable. Use the hybrid extractors for maximum extraction coverage.
5
12
  */
13
+ // Call Graph Extractors (still language-specific - needed for function/call extraction)
6
14
  export { BaseCallGraphExtractor } from './base-extractor.js';
7
15
  export { TypeScriptCallGraphExtractor } from './typescript-extractor.js';
8
16
  export { PythonCallGraphExtractor } from './python-extractor.js';
9
17
  export { CSharpCallGraphExtractor } from './csharp-extractor.js';
10
18
  export { JavaCallGraphExtractor } from './java-extractor.js';
11
19
  export { PhpCallGraphExtractor } from './php-extractor.js';
12
- // Data Access Extractors (semantic parsing with tree-sitter)
20
+ // Hybrid Extractors (tree-sitter + regex fallback)
21
+ export { HybridExtractorBase } from './hybrid-extractor-base.js';
22
+ export { PythonHybridExtractor, createPythonHybridExtractor } from './python-hybrid-extractor.js';
23
+ export { TypeScriptHybridExtractor, createTypeScriptHybridExtractor } from './typescript-hybrid-extractor.js';
24
+ export { PhpHybridExtractor, createPhpHybridExtractor } from './php-hybrid-extractor.js';
25
+ export { JavaHybridExtractor, createJavaHybridExtractor } from './java-hybrid-extractor.js';
26
+ export { CSharpHybridExtractor, createCSharpHybridExtractor } from './csharp-hybrid-extractor.js';
27
+ // Regex Fallback Extractors
28
+ export { BaseRegexExtractor, TypeScriptRegexExtractor, PythonRegexExtractor, PhpRegexExtractor, JavaRegexExtractor, CSharpRegexExtractor, getRegexExtractor, getRegexExtractorForFile, } from './regex/index.js';
29
+ // Extraction Types
30
+ export { EXTRACTION_CONFIDENCE, DEFAULT_HYBRID_CONFIG, createDefaultQuality, mergeQualities, } from './types.js';
31
+ // Data Access Extractors - now use unified provider via compat layer
13
32
  export { BaseDataAccessExtractor, } from './data-access-extractor.js';
14
- export { TypeScriptDataAccessExtractor, createTypeScriptDataAccessExtractor, } from './typescript-data-access-extractor.js';
15
- export { PythonDataAccessExtractor, createPythonDataAccessExtractor, } from './python-data-access-extractor.js';
16
- export { CSharpDataAccessExtractor, createCSharpDataAccessExtractor, } from './csharp-data-access-extractor.js';
17
- export { JavaDataAccessExtractor, createJavaDataAccessExtractor, } from './java-data-access-extractor.js';
18
- export { PhpDataAccessExtractor, createPhpDataAccessExtractor, } from './php-data-access-extractor.js';
19
- // Semantic Data Access Scanner (unified scanner using tree-sitter extractors)
20
- export { SemanticDataAccessScanner, createSemanticDataAccessScanner, detectProjectStack, } from './semantic-data-access-scanner.js';
21
- // Convenience factory for all data access extractors
22
- import { createTypeScriptDataAccessExtractor } from './typescript-data-access-extractor.js';
23
- import { createPythonDataAccessExtractor } from './python-data-access-extractor.js';
24
- import { createCSharpDataAccessExtractor } from './csharp-data-access-extractor.js';
25
- import { createJavaDataAccessExtractor } from './java-data-access-extractor.js';
26
- import { createPhpDataAccessExtractor } from './php-data-access-extractor.js';
27
- export function createDataAccessExtractors() {
28
- return {
29
- typescript: createTypeScriptDataAccessExtractor(),
30
- python: createPythonDataAccessExtractor(),
31
- csharp: createCSharpDataAccessExtractor(),
32
- java: createJavaDataAccessExtractor(),
33
- php: createPhpDataAccessExtractor(),
34
- };
35
- }
33
+ // Re-export from compat layer (delegates to UnifiedLanguageProvider)
34
+ export { TypeScriptDataAccessExtractor, createTypeScriptDataAccessExtractor, PythonDataAccessExtractor, createPythonDataAccessExtractor, CSharpDataAccessExtractor, createCSharpDataAccessExtractor, JavaDataAccessExtractor, createJavaDataAccessExtractor, PhpDataAccessExtractor, createPhpDataAccessExtractor, createDataAccessExtractors, SemanticDataAccessScanner, createSemanticDataAccessScanner, } from '../../unified-provider/compat/index.js';
35
+ // Also export detectProjectStack from unified provider
36
+ export { detectProjectStack } from '../../unified-provider/integration/unified-scanner.js';
36
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/call-graph/extractors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,6DAA6D;AAC7D,OAAO,EACL,uBAAuB,GAExB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAExC,8EAA8E;AAC9E,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,kBAAkB,GAInB,MAAM,mCAAmC,CAAC;AAE3C,qDAAqD;AACrD,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,UAAU,EAAE,mCAAmC,EAAE;QACjD,MAAM,EAAE,+BAA+B,EAAE;QACzC,MAAM,EAAE,+BAA+B,EAAE;QACzC,IAAI,EAAE,6BAA6B,EAAE;QACrC,GAAG,EAAE,4BAA4B,EAAE;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/call-graph/extractors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,wFAAwF;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,mDAAmD;AACnD,OAAO,EAAE,mBAAmB,EAA+B,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAElG,4BAA4B;AAC5B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO,EAML,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,qEAAqE;AACrE,OAAO,EACL,uBAAuB,GAExB,MAAM,4BAA4B,CAAC;AAEpC,qEAAqE;AACrE,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,EACnC,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,uBAAuB,EACvB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,GAIhC,MAAM,wCAAwC,CAAC;AAEhD,uDAAuD;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC"}
@@ -1,6 +1,13 @@
1
1
  /**
2
2
  * Java Semantic Data Access Extractor
3
3
  *
4
+ * @deprecated This file is deprecated. Use the unified provider system instead:
5
+ * - Import from 'driftdetect-core' or '../unified-provider/compat/index.js'
6
+ * - The compat layer provides the same API but delegates to UnifiedLanguageProvider
7
+ *
8
+ * This file is kept for reference but is no longer exported from the main index.
9
+ * All data access extraction should go through the unified provider.
10
+ *
4
11
  * Extracts data access points from Java using tree-sitter.
5
12
  * Provides accurate, semantic-aware detection of database operations.
6
13
  *
@@ -15,6 +22,7 @@ import { BaseDataAccessExtractor, type DataAccessExtractionResult } from './data
15
22
  import type { CallGraphLanguage } from '../types.js';
16
23
  /**
17
24
  * Java data access extractor using tree-sitter
25
+ * @deprecated Use UnifiedDataAccessAdapter from unified-provider instead
18
26
  */
19
27
  export declare class JavaDataAccessExtractor extends BaseDataAccessExtractor {
20
28
  readonly language: CallGraphLanguage;
@@ -1 +1 @@
1
- {"version":3,"file":"java-data-access-extractor.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/java-data-access-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,uBAAuB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQrD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,uBAAuB;IAClE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAU;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAa;IAE1C,OAAO,CAAC,MAAM,CAAiC;IAE/C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;IAI7B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,0BAA0B;IAuBrE;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmDtB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkF5B;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAiCrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA8DlC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA6DlC;;;OAGG;IACH,OAAO,CAAC,cAAc;IA4DtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgEtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA2EzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAUpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAsB1B;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE"}
1
+ {"version":3,"file":"java-data-access-extractor.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/java-data-access-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,uBAAuB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQrD;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,uBAAuB;IAClE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAU;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAa;IAE1C,OAAO,CAAC,MAAM,CAAiC;IAE/C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;IAI7B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,0BAA0B;IAuBrE;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmDtB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAmF5B;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAiCrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA+DlC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA8DlC;;;OAGG;IACH,OAAO,CAAC,cAAc;IA6DtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAiEtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA4EzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAUpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAsB1B;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE"}
@@ -1,6 +1,13 @@
1
1
  /**
2
2
  * Java Semantic Data Access Extractor
3
3
  *
4
+ * @deprecated This file is deprecated. Use the unified provider system instead:
5
+ * - Import from 'driftdetect-core' or '../unified-provider/compat/index.js'
6
+ * - The compat layer provides the same API but delegates to UnifiedLanguageProvider
7
+ *
8
+ * This file is kept for reference but is no longer exported from the main index.
9
+ * All data access extraction should go through the unified provider.
10
+ *
4
11
  * Extracts data access points from Java using tree-sitter.
5
12
  * Provides accurate, semantic-aware detection of database operations.
6
13
  *
@@ -15,6 +22,7 @@ import { BaseDataAccessExtractor } from './data-access-extractor.js';
15
22
  import { isJavaTreeSitterAvailable, createJavaParser, } from '../../parsers/tree-sitter/java-loader.js';
16
23
  /**
17
24
  * Java data access extractor using tree-sitter
25
+ * @deprecated Use UnifiedDataAccessAdapter from unified-provider instead
18
26
  */
19
27
  export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
20
28
  language = 'java';
@@ -207,7 +215,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
207
215
  line: node.startPosition.row + 1,
208
216
  column: node.startPosition.column,
209
217
  context: node.text.slice(0, 200),
210
- confidence: 0.95,
218
+ framework: 'spring-data',
219
+ tableFromLiteral: false, // Table name inferred from repository name
211
220
  });
212
221
  }
213
222
  /**
@@ -294,7 +303,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
294
303
  line: node.startPosition.row + 1,
295
304
  column: node.startPosition.column,
296
305
  context: node.text.slice(0, 200),
297
- confidence: 0.9,
306
+ framework: 'hibernate',
307
+ tableFromLiteral: false, // Table name inferred from entity class
298
308
  });
299
309
  }
300
310
  /**
@@ -350,7 +360,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
350
360
  line: node.startPosition.row + 1,
351
361
  column: node.startPosition.column,
352
362
  context: node.text.slice(0, 200),
353
- confidence: 0.9,
363
+ framework: 'hibernate',
364
+ tableFromLiteral: false, // Table name inferred from entity class
354
365
  });
355
366
  }
356
367
  /**
@@ -405,7 +416,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
405
416
  column: node.startPosition.column,
406
417
  context: node.text.slice(0, 200),
407
418
  isRawSql: true,
408
- confidence: 0.85,
419
+ framework: 'raw-sql',
420
+ tableFromLiteral: true, // Table name extracted from SQL string
409
421
  });
410
422
  }
411
423
  /**
@@ -467,7 +479,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
467
479
  line: node.startPosition.row + 1,
468
480
  column: node.startPosition.column,
469
481
  context: node.text.slice(0, 200),
470
- confidence: 0.9,
482
+ framework: 'jooq',
483
+ tableFromLiteral: false, // Table name from jOOQ constant
471
484
  });
472
485
  }
473
486
  /**
@@ -533,7 +546,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
533
546
  column: node.startPosition.column,
534
547
  context: `@${annotationName}("${sqlText.slice(0, 100)}...")`,
535
548
  isRawSql: true,
536
- confidence: 0.9,
549
+ framework: 'raw-sql',
550
+ tableFromLiteral: true, // Table name extracted from SQL annotation
537
551
  });
538
552
  const exists = result.accessPoints.some(ap => ap.id === accessPoint.id);
539
553
  if (!exists) {