driftdetect-core 0.4.6 → 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 (325) hide show
  1. package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts +8 -0
  2. package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts.map +1 -1
  3. package/dist/call-graph/extractors/csharp-data-access-extractor.js +8 -0
  4. package/dist/call-graph/extractors/csharp-data-access-extractor.js.map +1 -1
  5. package/dist/call-graph/extractors/csharp-extractor.d.ts +35 -0
  6. package/dist/call-graph/extractors/csharp-extractor.d.ts.map +1 -1
  7. package/dist/call-graph/extractors/csharp-extractor.js +362 -4
  8. package/dist/call-graph/extractors/csharp-extractor.js.map +1 -1
  9. package/dist/call-graph/extractors/csharp-hybrid-extractor.d.ts +37 -0
  10. package/dist/call-graph/extractors/csharp-hybrid-extractor.d.ts.map +1 -0
  11. package/dist/call-graph/extractors/csharp-hybrid-extractor.js +408 -0
  12. package/dist/call-graph/extractors/csharp-hybrid-extractor.js.map +1 -0
  13. package/dist/call-graph/extractors/hybrid-extractor-base.d.ts +102 -0
  14. package/dist/call-graph/extractors/hybrid-extractor-base.d.ts.map +1 -0
  15. package/dist/call-graph/extractors/hybrid-extractor-base.js +289 -0
  16. package/dist/call-graph/extractors/hybrid-extractor-base.js.map +1 -0
  17. package/dist/call-graph/extractors/index.d.ts +17 -13
  18. package/dist/call-graph/extractors/index.d.ts.map +1 -1
  19. package/dist/call-graph/extractors/index.js +24 -23
  20. package/dist/call-graph/extractors/index.js.map +1 -1
  21. package/dist/call-graph/extractors/java-data-access-extractor.d.ts +8 -0
  22. package/dist/call-graph/extractors/java-data-access-extractor.d.ts.map +1 -1
  23. package/dist/call-graph/extractors/java-data-access-extractor.js +8 -0
  24. package/dist/call-graph/extractors/java-data-access-extractor.js.map +1 -1
  25. package/dist/call-graph/extractors/java-extractor.d.ts +15 -0
  26. package/dist/call-graph/extractors/java-extractor.d.ts.map +1 -1
  27. package/dist/call-graph/extractors/java-extractor.js +120 -4
  28. package/dist/call-graph/extractors/java-extractor.js.map +1 -1
  29. package/dist/call-graph/extractors/java-hybrid-extractor.d.ts +36 -0
  30. package/dist/call-graph/extractors/java-hybrid-extractor.d.ts.map +1 -0
  31. package/dist/call-graph/extractors/java-hybrid-extractor.js +426 -0
  32. package/dist/call-graph/extractors/java-hybrid-extractor.js.map +1 -0
  33. package/dist/call-graph/extractors/php-data-access-extractor.d.ts +8 -0
  34. package/dist/call-graph/extractors/php-data-access-extractor.d.ts.map +1 -1
  35. package/dist/call-graph/extractors/php-data-access-extractor.js +8 -0
  36. package/dist/call-graph/extractors/php-data-access-extractor.js.map +1 -1
  37. package/dist/call-graph/extractors/php-extractor.d.ts +48 -1
  38. package/dist/call-graph/extractors/php-extractor.d.ts.map +1 -1
  39. package/dist/call-graph/extractors/php-extractor.js +460 -6
  40. package/dist/call-graph/extractors/php-extractor.js.map +1 -1
  41. package/dist/call-graph/extractors/php-hybrid-extractor.d.ts +35 -0
  42. package/dist/call-graph/extractors/php-hybrid-extractor.d.ts.map +1 -0
  43. package/dist/call-graph/extractors/php-hybrid-extractor.js +393 -0
  44. package/dist/call-graph/extractors/php-hybrid-extractor.js.map +1 -0
  45. package/dist/call-graph/extractors/python-data-access-extractor.d.ts +8 -0
  46. package/dist/call-graph/extractors/python-data-access-extractor.d.ts.map +1 -1
  47. package/dist/call-graph/extractors/python-data-access-extractor.js +8 -0
  48. package/dist/call-graph/extractors/python-data-access-extractor.js.map +1 -1
  49. package/dist/call-graph/extractors/python-hybrid-extractor.d.ts +85 -0
  50. package/dist/call-graph/extractors/python-hybrid-extractor.d.ts.map +1 -0
  51. package/dist/call-graph/extractors/python-hybrid-extractor.js +462 -0
  52. package/dist/call-graph/extractors/python-hybrid-extractor.js.map +1 -0
  53. package/dist/call-graph/extractors/regex/base-regex-extractor.d.ts +154 -0
  54. package/dist/call-graph/extractors/regex/base-regex-extractor.d.ts.map +1 -0
  55. package/dist/call-graph/extractors/regex/base-regex-extractor.js +346 -0
  56. package/dist/call-graph/extractors/regex/base-regex-extractor.js.map +1 -0
  57. package/dist/call-graph/extractors/regex/csharp-regex.d.ts +34 -0
  58. package/dist/call-graph/extractors/regex/csharp-regex.d.ts.map +1 -0
  59. package/dist/call-graph/extractors/regex/csharp-regex.js +393 -0
  60. package/dist/call-graph/extractors/regex/csharp-regex.js.map +1 -0
  61. package/dist/call-graph/extractors/regex/index.d.ts +25 -0
  62. package/dist/call-graph/extractors/regex/index.d.ts.map +1 -0
  63. package/dist/call-graph/extractors/regex/index.js +66 -0
  64. package/dist/call-graph/extractors/regex/index.js.map +1 -0
  65. package/dist/call-graph/extractors/regex/java-regex.d.ts +34 -0
  66. package/dist/call-graph/extractors/regex/java-regex.d.ts.map +1 -0
  67. package/dist/call-graph/extractors/regex/java-regex.js +327 -0
  68. package/dist/call-graph/extractors/regex/java-regex.js.map +1 -0
  69. package/dist/call-graph/extractors/regex/php-regex.d.ts +30 -0
  70. package/dist/call-graph/extractors/regex/php-regex.d.ts.map +1 -0
  71. package/dist/call-graph/extractors/regex/php-regex.js +333 -0
  72. package/dist/call-graph/extractors/regex/php-regex.js.map +1 -0
  73. package/dist/call-graph/extractors/regex/python-regex.d.ts +46 -0
  74. package/dist/call-graph/extractors/regex/python-regex.d.ts.map +1 -0
  75. package/dist/call-graph/extractors/regex/python-regex.js +380 -0
  76. package/dist/call-graph/extractors/regex/python-regex.js.map +1 -0
  77. package/dist/call-graph/extractors/regex/typescript-regex.d.ts +27 -0
  78. package/dist/call-graph/extractors/regex/typescript-regex.d.ts.map +1 -0
  79. package/dist/call-graph/extractors/regex/typescript-regex.js +349 -0
  80. package/dist/call-graph/extractors/regex/typescript-regex.js.map +1 -0
  81. package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts +7 -0
  82. package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts.map +1 -1
  83. package/dist/call-graph/extractors/semantic-data-access-scanner.js +7 -0
  84. package/dist/call-graph/extractors/semantic-data-access-scanner.js.map +1 -1
  85. package/dist/call-graph/extractors/types.d.ts +111 -0
  86. package/dist/call-graph/extractors/types.d.ts.map +1 -0
  87. package/dist/call-graph/extractors/types.js +68 -0
  88. package/dist/call-graph/extractors/types.js.map +1 -0
  89. package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts +8 -0
  90. package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts.map +1 -1
  91. package/dist/call-graph/extractors/typescript-data-access-extractor.js +8 -0
  92. package/dist/call-graph/extractors/typescript-data-access-extractor.js.map +1 -1
  93. package/dist/call-graph/extractors/typescript-hybrid-extractor.d.ts +116 -0
  94. package/dist/call-graph/extractors/typescript-hybrid-extractor.d.ts.map +1 -0
  95. package/dist/call-graph/extractors/typescript-hybrid-extractor.js +635 -0
  96. package/dist/call-graph/extractors/typescript-hybrid-extractor.js.map +1 -0
  97. package/dist/error-handling/error-handling-analyzer.d.ts +73 -0
  98. package/dist/error-handling/error-handling-analyzer.d.ts.map +1 -0
  99. package/dist/error-handling/error-handling-analyzer.js +706 -0
  100. package/dist/error-handling/error-handling-analyzer.js.map +1 -0
  101. package/dist/error-handling/index.d.ts +8 -0
  102. package/dist/error-handling/index.d.ts.map +1 -0
  103. package/dist/error-handling/index.js +8 -0
  104. package/dist/error-handling/index.js.map +1 -0
  105. package/dist/error-handling/types.d.ts +307 -0
  106. package/dist/error-handling/types.d.ts.map +1 -0
  107. package/dist/error-handling/types.js +7 -0
  108. package/dist/error-handling/types.js.map +1 -0
  109. package/dist/index.d.ts +14 -0
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +29 -0
  112. package/dist/index.js.map +1 -1
  113. package/dist/lake/pattern-shard-store.d.ts +6 -0
  114. package/dist/lake/pattern-shard-store.d.ts.map +1 -1
  115. package/dist/lake/pattern-shard-store.js +6 -0
  116. package/dist/lake/pattern-shard-store.js.map +1 -1
  117. package/dist/module-coupling/coupling-analyzer.d.ts +73 -0
  118. package/dist/module-coupling/coupling-analyzer.d.ts.map +1 -0
  119. package/dist/module-coupling/coupling-analyzer.js +668 -0
  120. package/dist/module-coupling/coupling-analyzer.js.map +1 -0
  121. package/dist/module-coupling/index.d.ts +9 -0
  122. package/dist/module-coupling/index.d.ts.map +1 -0
  123. package/dist/module-coupling/index.js +9 -0
  124. package/dist/module-coupling/index.js.map +1 -0
  125. package/dist/module-coupling/types.d.ts +273 -0
  126. package/dist/module-coupling/types.d.ts.map +1 -0
  127. package/dist/module-coupling/types.js +8 -0
  128. package/dist/module-coupling/types.js.map +1 -0
  129. package/dist/patterns/adapters/index.d.ts +11 -0
  130. package/dist/patterns/adapters/index.d.ts.map +1 -0
  131. package/dist/patterns/adapters/index.js +11 -0
  132. package/dist/patterns/adapters/index.js.map +1 -0
  133. package/dist/patterns/adapters/pattern-store-adapter.d.ts +59 -0
  134. package/dist/patterns/adapters/pattern-store-adapter.d.ts.map +1 -0
  135. package/dist/patterns/adapters/pattern-store-adapter.js +468 -0
  136. package/dist/patterns/adapters/pattern-store-adapter.js.map +1 -0
  137. package/dist/patterns/adapters/service-factory.d.ts +40 -0
  138. package/dist/patterns/adapters/service-factory.d.ts.map +1 -0
  139. package/dist/patterns/adapters/service-factory.js +144 -0
  140. package/dist/patterns/adapters/service-factory.js.map +1 -0
  141. package/dist/patterns/errors.d.ts +32 -0
  142. package/dist/patterns/errors.d.ts.map +1 -0
  143. package/dist/patterns/errors.js +45 -0
  144. package/dist/patterns/errors.js.map +1 -0
  145. package/dist/patterns/impl/cached-repository.d.ts +79 -0
  146. package/dist/patterns/impl/cached-repository.d.ts.map +1 -0
  147. package/dist/patterns/impl/cached-repository.js +296 -0
  148. package/dist/patterns/impl/cached-repository.js.map +1 -0
  149. package/dist/patterns/impl/file-repository.d.ts +75 -0
  150. package/dist/patterns/impl/file-repository.d.ts.map +1 -0
  151. package/dist/patterns/impl/file-repository.js +507 -0
  152. package/dist/patterns/impl/file-repository.js.map +1 -0
  153. package/dist/patterns/impl/index.d.ts +16 -0
  154. package/dist/patterns/impl/index.d.ts.map +1 -0
  155. package/dist/patterns/impl/index.js +21 -0
  156. package/dist/patterns/impl/index.js.map +1 -0
  157. package/dist/patterns/impl/memory-repository.d.ts +56 -0
  158. package/dist/patterns/impl/memory-repository.d.ts.map +1 -0
  159. package/dist/patterns/impl/memory-repository.js +323 -0
  160. package/dist/patterns/impl/memory-repository.js.map +1 -0
  161. package/dist/patterns/impl/pattern-service.d.ts +52 -0
  162. package/dist/patterns/impl/pattern-service.d.ts.map +1 -0
  163. package/dist/patterns/impl/pattern-service.js +382 -0
  164. package/dist/patterns/impl/pattern-service.js.map +1 -0
  165. package/dist/patterns/impl/repository-factory.d.ts +44 -0
  166. package/dist/patterns/impl/repository-factory.d.ts.map +1 -0
  167. package/dist/patterns/impl/repository-factory.js +140 -0
  168. package/dist/patterns/impl/repository-factory.js.map +1 -0
  169. package/dist/patterns/impl/unified-file-repository.d.ts +111 -0
  170. package/dist/patterns/impl/unified-file-repository.d.ts.map +1 -0
  171. package/dist/patterns/impl/unified-file-repository.js +677 -0
  172. package/dist/patterns/impl/unified-file-repository.js.map +1 -0
  173. package/dist/patterns/index.d.ts +23 -0
  174. package/dist/patterns/index.d.ts.map +1 -0
  175. package/dist/patterns/index.js +41 -0
  176. package/dist/patterns/index.js.map +1 -0
  177. package/dist/patterns/repository.d.ts +241 -0
  178. package/dist/patterns/repository.d.ts.map +1 -0
  179. package/dist/patterns/repository.js +23 -0
  180. package/dist/patterns/repository.js.map +1 -0
  181. package/dist/patterns/service.d.ts +245 -0
  182. package/dist/patterns/service.d.ts.map +1 -0
  183. package/dist/patterns/service.js +25 -0
  184. package/dist/patterns/service.js.map +1 -0
  185. package/dist/patterns/types.d.ts +227 -0
  186. package/dist/patterns/types.d.ts.map +1 -0
  187. package/dist/patterns/types.js +117 -0
  188. package/dist/patterns/types.js.map +1 -0
  189. package/dist/store/pattern-store.d.ts +6 -0
  190. package/dist/store/pattern-store.d.ts.map +1 -1
  191. package/dist/store/pattern-store.js +6 -0
  192. package/dist/store/pattern-store.js.map +1 -1
  193. package/dist/test-topology/extractors/base-test-extractor.d.ts +89 -0
  194. package/dist/test-topology/extractors/base-test-extractor.d.ts.map +1 -0
  195. package/dist/test-topology/extractors/base-test-extractor.js +187 -0
  196. package/dist/test-topology/extractors/base-test-extractor.js.map +1 -0
  197. package/dist/test-topology/extractors/csharp-test-extractor.d.ts +23 -0
  198. package/dist/test-topology/extractors/csharp-test-extractor.d.ts.map +1 -0
  199. package/dist/test-topology/extractors/csharp-test-extractor.js +367 -0
  200. package/dist/test-topology/extractors/csharp-test-extractor.js.map +1 -0
  201. package/dist/test-topology/extractors/index.d.ts +12 -0
  202. package/dist/test-topology/extractors/index.d.ts.map +1 -0
  203. package/dist/test-topology/extractors/index.js +12 -0
  204. package/dist/test-topology/extractors/index.js.map +1 -0
  205. package/dist/test-topology/extractors/java-test-extractor.d.ts +20 -0
  206. package/dist/test-topology/extractors/java-test-extractor.d.ts.map +1 -0
  207. package/dist/test-topology/extractors/java-test-extractor.js +275 -0
  208. package/dist/test-topology/extractors/java-test-extractor.js.map +1 -0
  209. package/dist/test-topology/extractors/php-test-extractor.d.ts +24 -0
  210. package/dist/test-topology/extractors/php-test-extractor.d.ts.map +1 -0
  211. package/dist/test-topology/extractors/php-test-extractor.js +409 -0
  212. package/dist/test-topology/extractors/php-test-extractor.js.map +1 -0
  213. package/dist/test-topology/extractors/python-test-extractor.d.ts +23 -0
  214. package/dist/test-topology/extractors/python-test-extractor.d.ts.map +1 -0
  215. package/dist/test-topology/extractors/python-test-extractor.js +342 -0
  216. package/dist/test-topology/extractors/python-test-extractor.js.map +1 -0
  217. package/dist/test-topology/extractors/regex/csharp-test-regex.d.ts +51 -0
  218. package/dist/test-topology/extractors/regex/csharp-test-regex.d.ts.map +1 -0
  219. package/dist/test-topology/extractors/regex/csharp-test-regex.js +383 -0
  220. package/dist/test-topology/extractors/regex/csharp-test-regex.js.map +1 -0
  221. package/dist/test-topology/extractors/regex/index.d.ts +18 -0
  222. package/dist/test-topology/extractors/regex/index.d.ts.map +1 -0
  223. package/dist/test-topology/extractors/regex/index.js +43 -0
  224. package/dist/test-topology/extractors/regex/index.js.map +1 -0
  225. package/dist/test-topology/extractors/regex/java-test-regex.d.ts +50 -0
  226. package/dist/test-topology/extractors/regex/java-test-regex.d.ts.map +1 -0
  227. package/dist/test-topology/extractors/regex/java-test-regex.js +370 -0
  228. package/dist/test-topology/extractors/regex/java-test-regex.js.map +1 -0
  229. package/dist/test-topology/extractors/regex/php-test-regex.d.ts +56 -0
  230. package/dist/test-topology/extractors/regex/php-test-regex.d.ts.map +1 -0
  231. package/dist/test-topology/extractors/regex/php-test-regex.js +503 -0
  232. package/dist/test-topology/extractors/regex/php-test-regex.js.map +1 -0
  233. package/dist/test-topology/extractors/regex/python-test-regex.d.ts +57 -0
  234. package/dist/test-topology/extractors/regex/python-test-regex.d.ts.map +1 -0
  235. package/dist/test-topology/extractors/regex/python-test-regex.js +381 -0
  236. package/dist/test-topology/extractors/regex/python-test-regex.js.map +1 -0
  237. package/dist/test-topology/extractors/regex/typescript-test-regex.d.ts +60 -0
  238. package/dist/test-topology/extractors/regex/typescript-test-regex.d.ts.map +1 -0
  239. package/dist/test-topology/extractors/regex/typescript-test-regex.js +368 -0
  240. package/dist/test-topology/extractors/regex/typescript-test-regex.js.map +1 -0
  241. package/dist/test-topology/extractors/typescript-test-extractor.d.ts +24 -0
  242. package/dist/test-topology/extractors/typescript-test-extractor.d.ts.map +1 -0
  243. package/dist/test-topology/extractors/typescript-test-extractor.js +266 -0
  244. package/dist/test-topology/extractors/typescript-test-extractor.js.map +1 -0
  245. package/dist/test-topology/hybrid-test-topology-analyzer.d.ts +98 -0
  246. package/dist/test-topology/hybrid-test-topology-analyzer.d.ts.map +1 -0
  247. package/dist/test-topology/hybrid-test-topology-analyzer.js +555 -0
  248. package/dist/test-topology/hybrid-test-topology-analyzer.js.map +1 -0
  249. package/dist/test-topology/index.d.ts +16 -0
  250. package/dist/test-topology/index.d.ts.map +1 -0
  251. package/dist/test-topology/index.js +19 -0
  252. package/dist/test-topology/index.js.map +1 -0
  253. package/dist/test-topology/test-topology-analyzer.d.ts +85 -0
  254. package/dist/test-topology/test-topology-analyzer.d.ts.map +1 -0
  255. package/dist/test-topology/test-topology-analyzer.js +538 -0
  256. package/dist/test-topology/test-topology-analyzer.js.map +1 -0
  257. package/dist/test-topology/types.d.ts +300 -0
  258. package/dist/test-topology/types.d.ts.map +1 -0
  259. package/dist/test-topology/types.js +7 -0
  260. package/dist/test-topology/types.js.map +1 -0
  261. package/dist/wrappers/clustering/clusterer.d.ts +43 -0
  262. package/dist/wrappers/clustering/clusterer.d.ts.map +1 -0
  263. package/dist/wrappers/clustering/clusterer.js +374 -0
  264. package/dist/wrappers/clustering/clusterer.js.map +1 -0
  265. package/dist/wrappers/clustering/exclusions.d.ts +47 -0
  266. package/dist/wrappers/clustering/exclusions.d.ts.map +1 -0
  267. package/dist/wrappers/clustering/exclusions.js +318 -0
  268. package/dist/wrappers/clustering/exclusions.js.map +1 -0
  269. package/dist/wrappers/clustering/index.d.ts +6 -0
  270. package/dist/wrappers/clustering/index.d.ts.map +1 -0
  271. package/dist/wrappers/clustering/index.js +6 -0
  272. package/dist/wrappers/clustering/index.js.map +1 -0
  273. package/dist/wrappers/detection/detector.d.ts +69 -0
  274. package/dist/wrappers/detection/detector.d.ts.map +1 -0
  275. package/dist/wrappers/detection/detector.js +279 -0
  276. package/dist/wrappers/detection/detector.js.map +1 -0
  277. package/dist/wrappers/detection/index.d.ts +5 -0
  278. package/dist/wrappers/detection/index.d.ts.map +1 -0
  279. package/dist/wrappers/detection/index.js +5 -0
  280. package/dist/wrappers/detection/index.js.map +1 -0
  281. package/dist/wrappers/export/index.d.ts +5 -0
  282. package/dist/wrappers/export/index.d.ts.map +1 -0
  283. package/dist/wrappers/export/index.js +5 -0
  284. package/dist/wrappers/export/index.js.map +1 -0
  285. package/dist/wrappers/export/json.d.ts +127 -0
  286. package/dist/wrappers/export/json.d.ts.map +1 -0
  287. package/dist/wrappers/export/json.js +160 -0
  288. package/dist/wrappers/export/json.js.map +1 -0
  289. package/dist/wrappers/index.d.ts +56 -0
  290. package/dist/wrappers/index.d.ts.map +1 -0
  291. package/dist/wrappers/index.js +159 -0
  292. package/dist/wrappers/index.js.map +1 -0
  293. package/dist/wrappers/integration/adapter.d.ts +52 -0
  294. package/dist/wrappers/integration/adapter.d.ts.map +1 -0
  295. package/dist/wrappers/integration/adapter.js +209 -0
  296. package/dist/wrappers/integration/adapter.js.map +1 -0
  297. package/dist/wrappers/integration/index.d.ts +9 -0
  298. package/dist/wrappers/integration/index.d.ts.map +1 -0
  299. package/dist/wrappers/integration/index.js +12 -0
  300. package/dist/wrappers/integration/index.js.map +1 -0
  301. package/dist/wrappers/integration/pattern-adapter.d.ts +52 -0
  302. package/dist/wrappers/integration/pattern-adapter.d.ts.map +1 -0
  303. package/dist/wrappers/integration/pattern-adapter.js +192 -0
  304. package/dist/wrappers/integration/pattern-adapter.js.map +1 -0
  305. package/dist/wrappers/integration/scanner.d.ts +85 -0
  306. package/dist/wrappers/integration/scanner.d.ts.map +1 -0
  307. package/dist/wrappers/integration/scanner.js +367 -0
  308. package/dist/wrappers/integration/scanner.js.map +1 -0
  309. package/dist/wrappers/primitives/discovery.d.ts +57 -0
  310. package/dist/wrappers/primitives/discovery.d.ts.map +1 -0
  311. package/dist/wrappers/primitives/discovery.js +389 -0
  312. package/dist/wrappers/primitives/discovery.js.map +1 -0
  313. package/dist/wrappers/primitives/index.d.ts +6 -0
  314. package/dist/wrappers/primitives/index.d.ts.map +1 -0
  315. package/dist/wrappers/primitives/index.js +6 -0
  316. package/dist/wrappers/primitives/index.js.map +1 -0
  317. package/dist/wrappers/primitives/registry.d.ts +63 -0
  318. package/dist/wrappers/primitives/registry.d.ts.map +1 -0
  319. package/dist/wrappers/primitives/registry.js +447 -0
  320. package/dist/wrappers/primitives/registry.js.map +1 -0
  321. package/dist/wrappers/types.d.ts +137 -0
  322. package/dist/wrappers/types.d.ts.map +1 -0
  323. package/dist/wrappers/types.js +7 -0
  324. package/dist/wrappers/types.js.map +1 -0
  325. package/package.json +5 -1
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Framework Wrapper Detection
3
+ *
4
+ * Automatically detect custom abstractions built on top of framework primitives.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { analyzeWrappers } from '@drift/core/wrappers';
9
+ *
10
+ * const result = await analyzeWrappers({
11
+ * projectPath: '/path/to/project',
12
+ * language: 'typescript',
13
+ * });
14
+ *
15
+ * console.log(`Found ${result.clusters.length} wrapper patterns`);
16
+ * ```
17
+ */
18
+ export type { PrimitiveSourceType, PrimitiveSource, DetectedPrimitive, SupportedLanguage, WrapperFunction, WrapperCategory, WrapperCluster, FactoryType, FactoryFunction, DecoratorWrapper, AsyncType, ErrorHandlingPattern, AsyncWrapper, WrapperAnalysisResult, FrameworkInfo, WrapperSummary, PrimitiveRegistry, FrameworkDetectionResult, } from './types.js';
19
+ export { REACT_PRIMITIVES, REACT_ECOSYSTEM_PRIMITIVES, VUE_PRIMITIVES, SVELTE_PRIMITIVES, ANGULAR_PRIMITIVES, EXPRESS_PRIMITIVES, JS_TESTING_PRIMITIVES, FASTAPI_PRIMITIVES, DJANGO_PRIMITIVES, FLASK_PRIMITIVES, SQLALCHEMY_PRIMITIVES, CELERY_PRIMITIVES, PYDANTIC_PRIMITIVES, PYTHON_TESTING_PRIMITIVES, SPRING_PRIMITIVES, JAVA_TESTING_PRIMITIVES, ASPNET_PRIMITIVES, EFCORE_PRIMITIVES, CSHARP_TESTING_PRIMITIVES, LARAVEL_PRIMITIVES, SYMFONY_PRIMITIVES, PHP_TESTING_PRIMITIVES, TYPESCRIPT_PRIMITIVES, PYTHON_PRIMITIVES, JAVA_PRIMITIVES, CSHARP_PRIMITIVES, PHP_PRIMITIVES, ALL_PRIMITIVES, getPrimitiveNames, getFrameworkNames, findPrimitiveFramework, looksLikePrimitive, getPrimitiveCount, getPrimitivesByCategory, } from './primitives/registry.js';
20
+ export { discoverPrimitives, detectFrameworks, filterByConfidence, groupByFramework, groupByCategory, type ImportInfo, type DecoratorUsage, type FunctionUsage, type DiscoveryContext, } from './primitives/discovery.js';
21
+ export { detectWrappers, getWrappersByDepth, getWrappersForPrimitive, getWrapperCallChain, calculateWrapperStats, type FunctionInfo, type ParameterInfo, type CallInfo, type DetectionContext, type DetectionOptions, } from './detection/detector.js';
22
+ export { clusterWrappers, inferCategory, calculateConfidence, detectNamingPatterns, getClustersByCategory, getMostCommonPrimitives, findRelatedClusters, type ClusteringOptions, } from './clustering/clusterer.js';
23
+ export { applyExclusions, applyClusterExclusions, getLanguageExclusions, createExclusionRule, excludeByName, excludeByFile, EXCLUSION_RULES, type ExclusionRule, type ExclusionResult, } from './clustering/exclusions.js';
24
+ export { exportToJson, buildExportResult, parseJsonExport, validateExport, type WrapperExportOptions, type WrapperExportResult, type ProjectMetadata, type FrameworkExport, type PrimitiveExport, type WrapperExport, type WrapperFlags, type ClusterExport, type ClusterMetrics, type SummaryExport, } from './export/index.js';
25
+ export { mapLanguage, convertFunction, convertImport, buildDiscoveryContext, buildDetectionContext, filterExtractions, calculateExtractionStats, type AdapterOptions, type ExtractionStats, WrapperScanner, createWrapperScanner, type WrapperScannerConfig, type WrapperScanResult, clusterToPattern, wrapperToLocation, clustersToPatterns, generatePatternId, extractPatternMetadata, isWrapperPattern, extractWrapperInfo, type WrapperToPatternOptions, } from './integration/index.js';
26
+ import type { WrapperAnalysisResult } from './types.js';
27
+ import { type DiscoveryContext } from './primitives/discovery.js';
28
+ import { type DetectionContext } from './detection/detector.js';
29
+ import { type ExclusionRule } from './clustering/exclusions.js';
30
+ export interface AnalysisOptions {
31
+ /** Minimum confidence for clusters (0-1) */
32
+ minConfidence?: number | undefined;
33
+ /** Minimum cluster size */
34
+ minClusterSize?: number | undefined;
35
+ /** Maximum wrapper depth to traverse */
36
+ maxDepth?: number | undefined;
37
+ /** Include test files in analysis */
38
+ includeTestFiles?: boolean | undefined;
39
+ /** Apply exclusion rules to filter false positives */
40
+ applyExclusions?: boolean | undefined;
41
+ /** Custom exclusion rules (in addition to built-in rules) */
42
+ customExclusions?: ExclusionRule[] | undefined;
43
+ }
44
+ /**
45
+ * Perform complete wrapper analysis on a codebase
46
+ */
47
+ export declare function analyzeWrappers(discoveryContext: DiscoveryContext, detectionContext: Omit<DetectionContext, 'primitives'>, options?: AnalysisOptions): WrapperAnalysisResult;
48
+ /**
49
+ * Quick analysis - just get clusters without full details
50
+ */
51
+ export declare function quickAnalyze(discoveryContext: DiscoveryContext, detectionContext: Omit<DetectionContext, 'primitives'>): {
52
+ clusterCount: number;
53
+ wrapperCount: number;
54
+ topPatterns: string[];
55
+ };
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wrappers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Framework Wrapper Detection
3
+ *
4
+ * Automatically detect custom abstractions built on top of framework primitives.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { analyzeWrappers } from '@drift/core/wrappers';
9
+ *
10
+ * const result = await analyzeWrappers({
11
+ * projectPath: '/path/to/project',
12
+ * language: 'typescript',
13
+ * });
14
+ *
15
+ * console.log(`Found ${result.clusters.length} wrapper patterns`);
16
+ * ```
17
+ */
18
+ // Primitive registry
19
+ export {
20
+ // Individual registries
21
+ REACT_PRIMITIVES, REACT_ECOSYSTEM_PRIMITIVES, VUE_PRIMITIVES, SVELTE_PRIMITIVES, ANGULAR_PRIMITIVES, EXPRESS_PRIMITIVES, JS_TESTING_PRIMITIVES, FASTAPI_PRIMITIVES, DJANGO_PRIMITIVES, FLASK_PRIMITIVES, SQLALCHEMY_PRIMITIVES, CELERY_PRIMITIVES, PYDANTIC_PRIMITIVES, PYTHON_TESTING_PRIMITIVES, SPRING_PRIMITIVES, JAVA_TESTING_PRIMITIVES, ASPNET_PRIMITIVES, EFCORE_PRIMITIVES, CSHARP_TESTING_PRIMITIVES, LARAVEL_PRIMITIVES, SYMFONY_PRIMITIVES, PHP_TESTING_PRIMITIVES,
22
+ // Combined registries
23
+ TYPESCRIPT_PRIMITIVES, PYTHON_PRIMITIVES, JAVA_PRIMITIVES, CSHARP_PRIMITIVES, PHP_PRIMITIVES, ALL_PRIMITIVES,
24
+ // Utility functions
25
+ getPrimitiveNames, getFrameworkNames, findPrimitiveFramework, looksLikePrimitive, getPrimitiveCount, getPrimitivesByCategory, } from './primitives/registry.js';
26
+ // Primitive discovery
27
+ export { discoverPrimitives, detectFrameworks, filterByConfidence, groupByFramework, groupByCategory, } from './primitives/discovery.js';
28
+ // Wrapper detection
29
+ export { detectWrappers, getWrappersByDepth, getWrappersForPrimitive, getWrapperCallChain, calculateWrapperStats, } from './detection/detector.js';
30
+ // Clustering
31
+ export { clusterWrappers, inferCategory, calculateConfidence, detectNamingPatterns, getClustersByCategory, getMostCommonPrimitives, findRelatedClusters, } from './clustering/clusterer.js';
32
+ // Exclusions
33
+ export { applyExclusions, applyClusterExclusions, getLanguageExclusions, createExclusionRule, excludeByName, excludeByFile, EXCLUSION_RULES, } from './clustering/exclusions.js';
34
+ // Export formats
35
+ export { exportToJson, buildExportResult, parseJsonExport, validateExport, } from './export/index.js';
36
+ // Integration with call graph
37
+ export {
38
+ // Adapter utilities
39
+ mapLanguage, convertFunction, convertImport, buildDiscoveryContext, buildDetectionContext, filterExtractions, calculateExtractionStats,
40
+ // Scanner
41
+ WrapperScanner, createWrapperScanner,
42
+ // Pattern adapter
43
+ clusterToPattern, wrapperToLocation, clustersToPatterns, generatePatternId, extractPatternMetadata, isWrapperPattern, extractWrapperInfo, } from './integration/index.js';
44
+ import { discoverPrimitives, detectFrameworks } from './primitives/discovery.js';
45
+ import { detectWrappers, calculateWrapperStats } from './detection/detector.js';
46
+ import { clusterWrappers, getMostCommonPrimitives } from './clustering/clusterer.js';
47
+ import { applyExclusions, applyClusterExclusions, getLanguageExclusions } from './clustering/exclusions.js';
48
+ /**
49
+ * Perform complete wrapper analysis on a codebase
50
+ */
51
+ export function analyzeWrappers(discoveryContext, detectionContext, options = {}) {
52
+ const { minConfidence = 0.3, minClusterSize = 2, maxDepth, includeTestFiles, applyExclusions: shouldApplyExclusions = true, customExclusions = [], } = options;
53
+ // 1. Discover primitives
54
+ const primitives = discoverPrimitives(discoveryContext);
55
+ // 2. Detect frameworks
56
+ const frameworkResults = detectFrameworks(discoveryContext);
57
+ const frameworks = frameworkResults.map((fw) => ({
58
+ name: fw.framework,
59
+ version: fw.version,
60
+ primitiveCount: primitives.filter((p) => p.framework === fw.framework).length,
61
+ language: discoveryContext.language,
62
+ }));
63
+ // 3. Detect wrappers
64
+ const fullDetectionContext = {
65
+ ...detectionContext,
66
+ primitives,
67
+ };
68
+ let wrappers = detectWrappers(fullDetectionContext, {
69
+ maxDepth,
70
+ includeTestFiles,
71
+ });
72
+ // 4. Apply exclusion rules to filter false positives
73
+ if (shouldApplyExclusions) {
74
+ const languageRules = getLanguageExclusions(discoveryContext.language);
75
+ const allRules = [...languageRules, ...customExclusions];
76
+ const exclusionResult = applyExclusions(wrappers, allRules);
77
+ wrappers = exclusionResult.included;
78
+ }
79
+ // 5. Cluster wrappers
80
+ let clusters = clusterWrappers(wrappers, primitives, {
81
+ minConfidence,
82
+ minClusterSize,
83
+ });
84
+ // 6. Apply cluster-level exclusions
85
+ if (shouldApplyExclusions) {
86
+ clusters = applyClusterExclusions(clusters, minClusterSize, minConfidence);
87
+ }
88
+ // 7. Calculate summary
89
+ const stats = calculateWrapperStats(wrappers);
90
+ const mostCommon = getMostCommonPrimitives(clusters, 1);
91
+ const wrappersByLanguage = {
92
+ typescript: 0,
93
+ python: 0,
94
+ java: 0,
95
+ csharp: 0,
96
+ php: 0,
97
+ };
98
+ wrappersByLanguage[discoveryContext.language] = wrappers.length;
99
+ const wrappersByCategory = {
100
+ 'state-management': 0,
101
+ 'data-fetching': 0,
102
+ 'side-effects': 0,
103
+ 'authentication': 0,
104
+ 'authorization': 0,
105
+ 'validation': 0,
106
+ 'dependency-injection': 0,
107
+ 'middleware': 0,
108
+ 'testing': 0,
109
+ 'logging': 0,
110
+ 'caching': 0,
111
+ 'error-handling': 0,
112
+ 'async-utilities': 0,
113
+ 'form-handling': 0,
114
+ 'routing': 0,
115
+ 'factory': 0,
116
+ 'decorator': 0,
117
+ 'utility': 0,
118
+ 'other': 0,
119
+ };
120
+ for (const cluster of clusters) {
121
+ wrappersByCategory[cluster.category] += cluster.wrappers.length;
122
+ }
123
+ const mostUsedWrapper = wrappers.reduce((max, w) => (w.calledBy.length > (max?.calledBy.length ?? 0) ? w : max), wrappers[0]);
124
+ const summary = {
125
+ totalWrappers: stats.totalWrappers,
126
+ totalClusters: clusters.length,
127
+ avgDepth: stats.avgDepth,
128
+ maxDepth: stats.maxDepth,
129
+ mostWrappedPrimitive: mostCommon[0]?.primitive ?? 'N/A',
130
+ mostUsedWrapper: mostUsedWrapper?.name ?? 'N/A',
131
+ wrappersByLanguage,
132
+ wrappersByCategory,
133
+ };
134
+ return {
135
+ frameworks,
136
+ primitives,
137
+ wrappers,
138
+ clusters,
139
+ factories: [], // TODO: Implement factory detection
140
+ decoratorWrappers: [], // TODO: Implement decorator wrapper detection
141
+ asyncWrappers: [], // TODO: Implement async wrapper detection
142
+ summary,
143
+ };
144
+ }
145
+ /**
146
+ * Quick analysis - just get clusters without full details
147
+ */
148
+ export function quickAnalyze(discoveryContext, detectionContext) {
149
+ const result = analyzeWrappers(discoveryContext, detectionContext, {
150
+ minConfidence: 0.7,
151
+ minClusterSize: 2,
152
+ });
153
+ return {
154
+ clusterCount: result.clusters.length,
155
+ wrapperCount: result.wrappers.length,
156
+ topPatterns: result.clusters.slice(0, 5).map((c) => c.name),
157
+ };
158
+ }
159
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wrappers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Call Graph to Wrapper Detection Adapter
3
+ *
4
+ * Bridges the call graph infrastructure with wrapper detection.
5
+ * Converts FileExtractionResult to DiscoveryContext and DetectionContext.
6
+ */
7
+ import type { FileExtractionResult, FunctionExtraction, CallExtraction, ImportExtraction, CallGraphLanguage } from '../../call-graph/types.js';
8
+ import type { SupportedLanguage, DetectedPrimitive } from '../types.js';
9
+ import type { FunctionInfo, DetectionContext } from '../detection/detector.js';
10
+ import type { ImportInfo, DiscoveryContext } from '../primitives/discovery.js';
11
+ /**
12
+ * Map call graph language to wrapper supported language
13
+ */
14
+ export declare function mapLanguage(lang: CallGraphLanguage): SupportedLanguage | null;
15
+ /**
16
+ * Convert FunctionExtraction to FunctionInfo for wrapper detection
17
+ */
18
+ export declare function convertFunction(func: FunctionExtraction, file: string, language: SupportedLanguage, calls: CallExtraction[]): FunctionInfo;
19
+ /**
20
+ * Convert ImportExtraction to ImportInfo for primitive discovery
21
+ */
22
+ export declare function convertImport(imp: ImportExtraction): ImportInfo;
23
+ /**
24
+ * Build DiscoveryContext from FileExtractionResult(s)
25
+ */
26
+ export declare function buildDiscoveryContext(extractions: FileExtractionResult[], language: SupportedLanguage): DiscoveryContext;
27
+ /**
28
+ * Build DetectionContext from FileExtractionResult(s)
29
+ */
30
+ export declare function buildDetectionContext(extractions: FileExtractionResult[], primitives: DetectedPrimitive[], language: SupportedLanguage): DetectionContext;
31
+ export interface AdapterOptions {
32
+ /** Include test files in analysis */
33
+ includeTestFiles?: boolean | undefined;
34
+ /** Filter to specific file patterns */
35
+ filePatterns?: string[] | undefined;
36
+ }
37
+ /**
38
+ * Filter extractions based on options
39
+ */
40
+ export declare function filterExtractions(extractions: FileExtractionResult[], options?: AdapterOptions): FileExtractionResult[];
41
+ export interface ExtractionStats {
42
+ totalFiles: number;
43
+ totalFunctions: number;
44
+ totalCalls: number;
45
+ totalImports: number;
46
+ byLanguage: Record<string, number>;
47
+ }
48
+ /**
49
+ * Calculate statistics from extractions
50
+ */
51
+ export declare function calculateExtractionStats(extractions: FileExtractionResult[]): ExtractionStats;
52
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/wrappers/integration/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EACV,YAAY,EAGZ,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAMpC;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,IAAI,CAU7E;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,cAAc,EAAE,GACtB,YAAY,CAmBd;AA+BD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAW/D;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,oBAAoB,EAAE,EACnC,QAAQ,EAAE,iBAAiB,GAC1B,gBAAgB,CAwClB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,oBAAoB,EAAE,EACnC,UAAU,EAAE,iBAAiB,EAAE,EAC/B,QAAQ,EAAE,iBAAiB,GAC1B,gBAAgB,CAmBlB;AAMD,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,oBAAoB,EAAE,EACnC,OAAO,GAAE,cAAmB,GAC3B,oBAAoB,EAAE,CAgBxB;AA8BD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,oBAAoB,EAAE,GAClC,eAAe,CAsBjB"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Call Graph to Wrapper Detection Adapter
3
+ *
4
+ * Bridges the call graph infrastructure with wrapper detection.
5
+ * Converts FileExtractionResult to DiscoveryContext and DetectionContext.
6
+ */
7
+ import { minimatch } from 'minimatch';
8
+ // =============================================================================
9
+ // Language Mapping
10
+ // =============================================================================
11
+ /**
12
+ * Map call graph language to wrapper supported language
13
+ */
14
+ export function mapLanguage(lang) {
15
+ const mapping = {
16
+ typescript: 'typescript',
17
+ javascript: 'typescript', // Treat JS as TS for wrapper detection
18
+ python: 'python',
19
+ java: 'java',
20
+ csharp: 'csharp',
21
+ php: 'php',
22
+ };
23
+ return mapping[lang];
24
+ }
25
+ // =============================================================================
26
+ // Function Conversion
27
+ // =============================================================================
28
+ /**
29
+ * Convert FunctionExtraction to FunctionInfo for wrapper detection
30
+ */
31
+ export function convertFunction(func, file, language, calls) {
32
+ // Filter calls that belong to this function (by line range)
33
+ const functionCalls = calls.filter((c) => c.line >= func.startLine && c.line <= func.endLine);
34
+ return {
35
+ name: func.name,
36
+ qualifiedName: func.qualifiedName,
37
+ file,
38
+ startLine: func.startLine,
39
+ endLine: func.endLine,
40
+ language,
41
+ isAsync: func.isAsync,
42
+ returnType: func.returnType,
43
+ parameters: func.parameters.map((p) => convertParameter(p)),
44
+ decorators: func.decorators,
45
+ calls: functionCalls.map(convertCall),
46
+ };
47
+ }
48
+ /**
49
+ * Convert parameter info
50
+ */
51
+ function convertParameter(param) {
52
+ return {
53
+ name: param.name,
54
+ type: param.type,
55
+ defaultValue: param.hasDefault ? 'default' : undefined,
56
+ };
57
+ }
58
+ /**
59
+ * Convert call extraction to call info
60
+ */
61
+ function convertCall(call) {
62
+ return {
63
+ calleeName: call.calleeName,
64
+ calleeQualifiedName: call.receiver
65
+ ? `${call.receiver}.${call.calleeName}`
66
+ : call.calleeName,
67
+ line: call.line,
68
+ isCallback: false, // Could be enhanced with more analysis
69
+ };
70
+ }
71
+ // =============================================================================
72
+ // Import Conversion
73
+ // =============================================================================
74
+ /**
75
+ * Convert ImportExtraction to ImportInfo for primitive discovery
76
+ */
77
+ export function convertImport(imp) {
78
+ return {
79
+ source: imp.source,
80
+ names: imp.names.map((n) => ({
81
+ imported: n.imported,
82
+ local: n.local,
83
+ isDefault: n.isDefault,
84
+ })),
85
+ line: imp.line,
86
+ isTypeOnly: imp.isTypeOnly,
87
+ };
88
+ }
89
+ // =============================================================================
90
+ // Context Builders
91
+ // =============================================================================
92
+ /**
93
+ * Build DiscoveryContext from FileExtractionResult(s)
94
+ */
95
+ export function buildDiscoveryContext(extractions, language) {
96
+ const imports = [];
97
+ const decorators = [];
98
+ const functionUsages = [];
99
+ for (const extraction of extractions) {
100
+ // Collect imports
101
+ for (const imp of extraction.imports) {
102
+ imports.push(convertImport(imp));
103
+ }
104
+ // Collect decorators from functions
105
+ for (const func of extraction.functions) {
106
+ for (const decorator of func.decorators) {
107
+ decorators.push({
108
+ name: decorator,
109
+ file: extraction.file,
110
+ line: func.startLine,
111
+ });
112
+ }
113
+ }
114
+ // Collect function usages (calls)
115
+ for (const call of extraction.calls) {
116
+ functionUsages.push({
117
+ name: call.calleeName,
118
+ file: extraction.file,
119
+ line: call.line,
120
+ isMethodCall: call.isMethodCall,
121
+ receiver: call.receiver,
122
+ });
123
+ }
124
+ }
125
+ return {
126
+ imports,
127
+ decorators,
128
+ functionUsages,
129
+ language,
130
+ };
131
+ }
132
+ /**
133
+ * Build DetectionContext from FileExtractionResult(s)
134
+ */
135
+ export function buildDetectionContext(extractions, primitives, language) {
136
+ const functions = [];
137
+ for (const extraction of extractions) {
138
+ const mappedLang = mapLanguage(extraction.language);
139
+ if (!mappedLang)
140
+ continue;
141
+ for (const func of extraction.functions) {
142
+ functions.push(convertFunction(func, extraction.file, mappedLang, extraction.calls));
143
+ }
144
+ }
145
+ return {
146
+ functions,
147
+ primitives,
148
+ language,
149
+ };
150
+ }
151
+ /**
152
+ * Filter extractions based on options
153
+ */
154
+ export function filterExtractions(extractions, options = {}) {
155
+ let filtered = extractions;
156
+ // Filter test files if requested
157
+ if (!options.includeTestFiles) {
158
+ filtered = filtered.filter((e) => !isTestFile(e.file));
159
+ }
160
+ // Filter by file patterns if specified
161
+ if (options.filePatterns && options.filePatterns.length > 0) {
162
+ filtered = filtered.filter((e) => options.filePatterns.some((pattern) => matchesPattern(e.file, pattern)));
163
+ }
164
+ return filtered;
165
+ }
166
+ /**
167
+ * Check if file is a test file
168
+ */
169
+ function isTestFile(filePath) {
170
+ const testPatterns = [
171
+ /\.test\.[jt]sx?$/,
172
+ /\.spec\.[jt]sx?$/,
173
+ /_test\.(py|go|java|cs|php)$/,
174
+ /Test\.(java|cs)$/,
175
+ /Tests?\//,
176
+ /__tests__\//,
177
+ /test_.*\.py$/,
178
+ ];
179
+ return testPatterns.some((pattern) => pattern.test(filePath));
180
+ }
181
+ /**
182
+ * Simple glob-like pattern matching using minimatch
183
+ */
184
+ function matchesPattern(filePath, pattern) {
185
+ return minimatch(filePath, pattern);
186
+ }
187
+ /**
188
+ * Calculate statistics from extractions
189
+ */
190
+ export function calculateExtractionStats(extractions) {
191
+ const byLanguage = {};
192
+ let totalFunctions = 0;
193
+ let totalCalls = 0;
194
+ let totalImports = 0;
195
+ for (const extraction of extractions) {
196
+ totalFunctions += extraction.functions.length;
197
+ totalCalls += extraction.calls.length;
198
+ totalImports += extraction.imports.length;
199
+ byLanguage[extraction.language] = (byLanguage[extraction.language] || 0) + 1;
200
+ }
201
+ return {
202
+ totalFiles: extractions.length,
203
+ totalFunctions,
204
+ totalCalls,
205
+ totalImports,
206
+ byLanguage,
207
+ };
208
+ }
209
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/wrappers/integration/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Wrapper Detection Integration
3
+ *
4
+ * Bridges wrapper detection with the call graph infrastructure.
5
+ */
6
+ export { mapLanguage, convertFunction, convertImport, buildDiscoveryContext, buildDetectionContext, filterExtractions, calculateExtractionStats, type AdapterOptions, type ExtractionStats, } from './adapter.js';
7
+ export { WrapperScanner, createWrapperScanner, type WrapperScannerConfig, type WrapperScanResult, } from './scanner.js';
8
+ export { clusterToPattern, wrapperToLocation, clustersToPatterns, generatePatternId, extractPatternMetadata, isWrapperPattern, extractWrapperInfo, type WrapperToPatternOptions, } from './pattern-adapter.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wrappers/integration/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Wrapper Detection Integration
3
+ *
4
+ * Bridges wrapper detection with the call graph infrastructure.
5
+ */
6
+ // Adapter - type conversions between call graph and wrapper detection
7
+ export { mapLanguage, convertFunction, convertImport, buildDiscoveryContext, buildDetectionContext, filterExtractions, calculateExtractionStats, } from './adapter.js';
8
+ // Scanner - high-level scanning API
9
+ export { WrapperScanner, createWrapperScanner, } from './scanner.js';
10
+ // Pattern adapter - convert wrapper clusters to Drift patterns
11
+ export { clusterToPattern, wrapperToLocation, clustersToPatterns, generatePatternId, extractPatternMetadata, isWrapperPattern, extractWrapperInfo, } from './pattern-adapter.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wrappers/integration/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sEAAsE;AACtE,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,GAGzB,MAAM,cAAc,CAAC;AAEtB,oCAAoC;AACpC,OAAO,EACL,cAAc,EACd,oBAAoB,GAGrB,MAAM,cAAc,CAAC;AAEtB,+DAA+D;AAC/D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Pattern System Integration
3
+ *
4
+ * Converts wrapper clusters to Drift patterns for integration with
5
+ * the existing pattern detection and management system.
6
+ */
7
+ import type { WrapperCluster, WrapperFunction } from '../types.js';
8
+ import type { Pattern, PatternLocation, Severity } from '../../patterns/types.js';
9
+ export interface WrapperToPatternOptions {
10
+ /** Minimum confidence to convert (default: 0.5) */
11
+ minConfidence?: number | undefined;
12
+ /** Default severity for wrapper patterns (default: 'info') */
13
+ defaultSeverity?: Severity | undefined;
14
+ /** Prefix for pattern IDs (default: 'wrapper-') */
15
+ idPrefix?: string | undefined;
16
+ /** Include wrapper details in pattern description */
17
+ includeDetails?: boolean | undefined;
18
+ }
19
+ /**
20
+ * Convert a wrapper cluster to a Drift pattern
21
+ */
22
+ export declare function clusterToPattern(cluster: WrapperCluster, options?: WrapperToPatternOptions): Pattern;
23
+ /**
24
+ * Convert a wrapper function to a pattern location
25
+ */
26
+ export declare function wrapperToLocation(wrapper: WrapperFunction): PatternLocation;
27
+ /**
28
+ * Convert multiple clusters to patterns
29
+ */
30
+ export declare function clustersToPatterns(clusters: WrapperCluster[], options?: WrapperToPatternOptions): Pattern[];
31
+ /**
32
+ * Generate a unique pattern ID for a wrapper cluster
33
+ */
34
+ export declare function generatePatternId(cluster: WrapperCluster): string;
35
+ /**
36
+ * Extract pattern metadata from a wrapper cluster
37
+ */
38
+ export declare function extractPatternMetadata(cluster: WrapperCluster): Record<string, unknown>;
39
+ /**
40
+ * Check if a pattern was created from a wrapper cluster
41
+ */
42
+ export declare function isWrapperPattern(pattern: Pattern): boolean;
43
+ /**
44
+ * Extract wrapper info from a pattern (if it's a wrapper pattern)
45
+ */
46
+ export declare function extractWrapperInfo(pattern: Pattern): {
47
+ primitiveSignature: string[];
48
+ wrapperCategory: string;
49
+ avgDepth: number;
50
+ maxDepth: number;
51
+ } | null;
52
+ //# sourceMappingURL=pattern-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-adapter.d.ts","sourceRoot":"","sources":["../../../src/wrappers/integration/pattern-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EACV,OAAO,EAEP,eAAe,EAEf,QAAQ,EACT,MAAM,yBAAyB,CAAC;AA6DjC,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACvC,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAqDT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAW3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,EAAE,CAMX;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CASjE;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYvF;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAM1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG;IACpD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,CAWP"}