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 @@
1
+ {"version":3,"file":"unified-file-repository.js","sourceRoot":"","sources":["../../../src/patterns/impl/unified-file-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Unified Pattern System
3
+ *
4
+ * This module provides the consolidated pattern system for Drift.
5
+ * It includes:
6
+ * - Unified Pattern type (single source of truth)
7
+ * - IPatternRepository interface (storage abstraction)
8
+ * - IPatternService interface (consumer API)
9
+ * - Multiple repository implementations (file, memory, cached)
10
+ *
11
+ * @module patterns
12
+ * @see PATTERN-SYSTEM-CONSOLIDATION.md
13
+ */
14
+ export type { Pattern, PatternCategory, PatternStatus, ConfidenceLevel, Severity, DetectionMethod, PatternLocation, OutlierLocation, PatternMetadata, DetectorConfig, PatternSummary, CreatePatternInput, } from './types.js';
15
+ export { PATTERN_CATEGORIES, VALID_STATUS_TRANSITIONS, CONFIDENCE_THRESHOLDS, SEVERITY_ORDER, computeConfidenceLevel, toPatternSummary, createPattern, } from './types.js';
16
+ export type { IPatternRepository, PatternFilter, PatternSort, PatternPagination, PatternQueryOptions, PatternQueryResult, PatternRepositoryEventType, PatternRepositoryEventHandler, PatternRepositoryConfig, } from './repository.js';
17
+ export { DEFAULT_REPOSITORY_CONFIG } from './repository.js';
18
+ export type { IPatternService, PatternSystemStatus, CategorySummary, PatternWithExamples, CodeExample, ListOptions, PaginatedResult, SearchOptions, PatternServiceConfig, } from './service.js';
19
+ export { DEFAULT_SERVICE_CONFIG } from './service.js';
20
+ export { FilePatternRepository, PatternNotFoundError, InvalidStatusTransitionError, PatternAlreadyExistsError, UnifiedFilePatternRepository, createUnifiedFilePatternRepository, createPatternRepository, createPatternRepositorySync, detectStorageFormat, InMemoryPatternRepository, CachedPatternRepository, PatternService, createPatternService, } from './impl/index.js';
21
+ export type { UnifiedRepositoryConfig, StorageFormat, RepositoryFactoryConfig, } from './impl/index.js';
22
+ export { PatternStoreAdapter, createPatternStoreAdapter, createPatternServiceFromStore, } from './adapters/index.js';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/patterns/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,YAAY,EAEV,OAAO,EACP,eAAe,EACf,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EAGf,eAAe,EACf,eAAe,EAGf,eAAe,EACf,cAAc,EAGd,cAAc,EAGd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAEL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EAGd,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC;AAMpB,YAAY,EAEV,kBAAkB,EAGlB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAGlB,0BAA0B,EAC1B,6BAA6B,EAG7B,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAM5D,YAAY,EAEV,eAAe,EAGf,mBAAmB,EACnB,eAAe,EAGf,mBAAmB,EACnB,WAAW,EAGX,WAAW,EACX,eAAe,EACf,aAAa,EAGb,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtD,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EAGzB,4BAA4B,EAC5B,kCAAkC,EAGlC,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,EAGnB,yBAAyB,EAGzB,uBAAuB,EAGvB,cAAc,EACd,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,uBAAuB,EACvB,aAAa,EACb,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Unified Pattern System
3
+ *
4
+ * This module provides the consolidated pattern system for Drift.
5
+ * It includes:
6
+ * - Unified Pattern type (single source of truth)
7
+ * - IPatternRepository interface (storage abstraction)
8
+ * - IPatternService interface (consumer API)
9
+ * - Multiple repository implementations (file, memory, cached)
10
+ *
11
+ * @module patterns
12
+ * @see PATTERN-SYSTEM-CONSOLIDATION.md
13
+ */
14
+ export {
15
+ // Constants
16
+ PATTERN_CATEGORIES, VALID_STATUS_TRANSITIONS, CONFIDENCE_THRESHOLDS, SEVERITY_ORDER,
17
+ // Utility functions
18
+ computeConfidenceLevel, toPatternSummary, createPattern, } from './types.js';
19
+ export { DEFAULT_REPOSITORY_CONFIG } from './repository.js';
20
+ export { DEFAULT_SERVICE_CONFIG } from './service.js';
21
+ // ============================================================================
22
+ // Implementations
23
+ // ============================================================================
24
+ export {
25
+ // File repository (legacy - deprecated)
26
+ FilePatternRepository, PatternNotFoundError, InvalidStatusTransitionError, PatternAlreadyExistsError,
27
+ // Unified file repository (P3 - recommended)
28
+ UnifiedFilePatternRepository, createUnifiedFilePatternRepository,
29
+ // Repository factory (auto-detects format - recommended)
30
+ createPatternRepository, createPatternRepositorySync, detectStorageFormat,
31
+ // Memory repository
32
+ InMemoryPatternRepository,
33
+ // Cached repository
34
+ CachedPatternRepository,
35
+ // Pattern service
36
+ PatternService, createPatternService, } from './impl/index.js';
37
+ // ============================================================================
38
+ // Adapters (for backward compatibility)
39
+ // ============================================================================
40
+ export { PatternStoreAdapter, createPatternStoreAdapter, createPatternServiceFromStore, } from './adapters/index.js';
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/patterns/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA8BH,OAAO;AACL,YAAY;AACZ,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,cAAc;AAEd,oBAAoB;AACpB,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC;AAyBpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AA2B5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO;AACL,wCAAwC;AACxC,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB;AAEzB,6CAA6C;AAC7C,4BAA4B,EAC5B,kCAAkC;AAElC,yDAAyD;AACzD,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB;AAEnB,oBAAoB;AACpB,yBAAyB;AAEzB,oBAAoB;AACpB,uBAAuB;AAEvB,kBAAkB;AAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAQzB,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Pattern Repository Interface
3
+ *
4
+ * Defines the storage abstraction layer for patterns. All pattern storage
5
+ * implementations must implement this interface, enabling:
6
+ * - Swappable storage backends (file, sharded, in-memory, etc.)
7
+ * - Consistent API for all consumers
8
+ * - Easy testing with mock implementations
9
+ * - Caching decorators
10
+ *
11
+ * @module patterns/repository
12
+ * @see PATTERN-SYSTEM-CONSOLIDATION.md
13
+ */
14
+ import type { Pattern, PatternCategory, PatternStatus, ConfidenceLevel, Severity, PatternSummary } from './types.js';
15
+ /**
16
+ * Filter options for pattern queries
17
+ */
18
+ export interface PatternFilter {
19
+ /** Filter by pattern IDs */
20
+ ids?: string[] | undefined;
21
+ /** Filter by categories */
22
+ categories?: PatternCategory[] | undefined;
23
+ /** Filter by statuses */
24
+ statuses?: PatternStatus[] | undefined;
25
+ /** Filter by minimum confidence score */
26
+ minConfidence?: number | undefined;
27
+ /** Filter by maximum confidence score */
28
+ maxConfidence?: number | undefined;
29
+ /** Filter by confidence levels */
30
+ confidenceLevels?: ConfidenceLevel[] | undefined;
31
+ /** Filter by severities */
32
+ severities?: Severity[] | undefined;
33
+ /** Filter by files (patterns that have locations in any of these files) */
34
+ files?: string[] | undefined;
35
+ /** Filter patterns with outliers */
36
+ hasOutliers?: boolean | undefined;
37
+ /** Filter by tags */
38
+ tags?: string[] | undefined;
39
+ /** Search in name and description */
40
+ search?: string | undefined;
41
+ /** Filter by date range (firstSeen after) */
42
+ createdAfter?: Date | undefined;
43
+ /** Filter by date range (firstSeen before) */
44
+ createdBefore?: Date | undefined;
45
+ }
46
+ /**
47
+ * Sort options for pattern queries
48
+ */
49
+ export interface PatternSort {
50
+ /** Field to sort by */
51
+ field: 'name' | 'confidence' | 'severity' | 'firstSeen' | 'lastSeen' | 'locationCount';
52
+ /** Sort direction */
53
+ direction: 'asc' | 'desc';
54
+ }
55
+ /**
56
+ * Pagination options
57
+ */
58
+ export interface PatternPagination {
59
+ /** Number of results to skip */
60
+ offset: number;
61
+ /** Maximum number of results to return */
62
+ limit: number;
63
+ }
64
+ /**
65
+ * Complete query options
66
+ */
67
+ export interface PatternQueryOptions {
68
+ /** Filter criteria */
69
+ filter?: PatternFilter | undefined;
70
+ /** Sort options */
71
+ sort?: PatternSort | undefined;
72
+ /** Pagination options */
73
+ pagination?: PatternPagination | undefined;
74
+ }
75
+ /**
76
+ * Result of a pattern query
77
+ */
78
+ export interface PatternQueryResult {
79
+ /** Matching patterns */
80
+ patterns: Pattern[];
81
+ /** Total count (before pagination) */
82
+ total: number;
83
+ /** Whether there are more results */
84
+ hasMore: boolean;
85
+ }
86
+ /**
87
+ * Pattern repository event types
88
+ */
89
+ export type PatternRepositoryEventType = 'pattern:added' | 'pattern:updated' | 'pattern:deleted' | 'pattern:approved' | 'pattern:ignored' | 'patterns:loaded' | 'patterns:saved';
90
+ /**
91
+ * Pattern repository event handler
92
+ */
93
+ export type PatternRepositoryEventHandler = (pattern?: Pattern, metadata?: Record<string, unknown>) => void;
94
+ /**
95
+ * Pattern Repository Interface
96
+ *
97
+ * Defines the contract for pattern storage implementations.
98
+ * All storage backends (file, sharded, in-memory, cached) must implement this interface.
99
+ */
100
+ export interface IPatternRepository {
101
+ /**
102
+ * Initialize the repository.
103
+ * Creates necessary directories/structures and loads existing data.
104
+ */
105
+ initialize(): Promise<void>;
106
+ /**
107
+ * Close the repository and release resources.
108
+ */
109
+ close(): Promise<void>;
110
+ /**
111
+ * Add a new pattern to the repository.
112
+ * @param pattern The pattern to add
113
+ * @throws If pattern with same ID already exists
114
+ */
115
+ add(pattern: Pattern): Promise<void>;
116
+ /**
117
+ * Add multiple patterns to the repository.
118
+ * @param patterns The patterns to add
119
+ */
120
+ addMany(patterns: Pattern[]): Promise<void>;
121
+ /**
122
+ * Get a pattern by ID.
123
+ * @param id The pattern ID
124
+ * @returns The pattern or null if not found
125
+ */
126
+ get(id: string): Promise<Pattern | null>;
127
+ /**
128
+ * Update an existing pattern.
129
+ * @param id The pattern ID
130
+ * @param updates Partial pattern updates
131
+ * @returns The updated pattern
132
+ * @throws If pattern not found
133
+ */
134
+ update(id: string, updates: Partial<Pattern>): Promise<Pattern>;
135
+ /**
136
+ * Delete a pattern by ID.
137
+ * @param id The pattern ID
138
+ * @returns True if deleted, false if not found
139
+ */
140
+ delete(id: string): Promise<boolean>;
141
+ /**
142
+ * Query patterns with filtering, sorting, and pagination.
143
+ * @param options Query options
144
+ * @returns Query result with patterns and metadata
145
+ */
146
+ query(options: PatternQueryOptions): Promise<PatternQueryResult>;
147
+ /**
148
+ * Get all patterns in a category.
149
+ * @param category The category to filter by
150
+ * @returns Patterns in the category
151
+ */
152
+ getByCategory(category: PatternCategory): Promise<Pattern[]>;
153
+ /**
154
+ * Get all patterns with a specific status.
155
+ * @param status The status to filter by
156
+ * @returns Patterns with the status
157
+ */
158
+ getByStatus(status: PatternStatus): Promise<Pattern[]>;
159
+ /**
160
+ * Get all patterns that have locations in a specific file.
161
+ * @param file The file path to filter by
162
+ * @returns Patterns with locations in the file
163
+ */
164
+ getByFile(file: string): Promise<Pattern[]>;
165
+ /**
166
+ * Get all patterns.
167
+ * @returns All patterns in the repository
168
+ */
169
+ getAll(): Promise<Pattern[]>;
170
+ /**
171
+ * Count patterns matching a filter.
172
+ * @param filter Optional filter criteria
173
+ * @returns Count of matching patterns
174
+ */
175
+ count(filter?: PatternFilter): Promise<number>;
176
+ /**
177
+ * Approve a pattern.
178
+ * @param id The pattern ID
179
+ * @param approvedBy Optional user who approved
180
+ * @returns The updated pattern
181
+ * @throws If pattern not found or invalid transition
182
+ */
183
+ approve(id: string, approvedBy?: string): Promise<Pattern>;
184
+ /**
185
+ * Ignore a pattern.
186
+ * @param id The pattern ID
187
+ * @returns The updated pattern
188
+ * @throws If pattern not found or invalid transition
189
+ */
190
+ ignore(id: string): Promise<Pattern>;
191
+ /**
192
+ * Save all pending changes to persistent storage.
193
+ */
194
+ saveAll(): Promise<void>;
195
+ /**
196
+ * Clear all patterns from the repository.
197
+ */
198
+ clear(): Promise<void>;
199
+ /**
200
+ * Subscribe to repository events.
201
+ * @param event The event type
202
+ * @param handler The event handler
203
+ */
204
+ on(event: PatternRepositoryEventType, handler: PatternRepositoryEventHandler): void;
205
+ /**
206
+ * Unsubscribe from repository events.
207
+ * @param event The event type
208
+ * @param handler The event handler
209
+ */
210
+ off(event: PatternRepositoryEventType, handler: PatternRepositoryEventHandler): void;
211
+ /**
212
+ * Check if a pattern exists.
213
+ * @param id The pattern ID
214
+ * @returns True if exists
215
+ */
216
+ exists(id: string): Promise<boolean>;
217
+ /**
218
+ * Get pattern summaries (lightweight listing).
219
+ * @param options Query options
220
+ * @returns Pattern summaries
221
+ */
222
+ getSummaries(options?: PatternQueryOptions): Promise<PatternSummary[]>;
223
+ }
224
+ /**
225
+ * Base configuration for pattern repositories
226
+ */
227
+ export interface PatternRepositoryConfig {
228
+ /** Root directory for storage */
229
+ rootDir: string;
230
+ /** Enable auto-save on changes */
231
+ autoSave?: boolean;
232
+ /** Auto-save debounce delay in milliseconds */
233
+ autoSaveDelayMs?: number;
234
+ /** Enable schema validation */
235
+ validateSchema?: boolean;
236
+ }
237
+ /**
238
+ * Default repository configuration
239
+ */
240
+ export declare const DEFAULT_REPOSITORY_CONFIG: Required<PatternRepositoryConfig>;
241
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/patterns/repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Pattern Repository Interface
3
+ *
4
+ * Defines the storage abstraction layer for patterns. All pattern storage
5
+ * implementations must implement this interface, enabling:
6
+ * - Swappable storage backends (file, sharded, in-memory, etc.)
7
+ * - Consistent API for all consumers
8
+ * - Easy testing with mock implementations
9
+ * - Caching decorators
10
+ *
11
+ * @module patterns/repository
12
+ * @see PATTERN-SYSTEM-CONSOLIDATION.md
13
+ */
14
+ /**
15
+ * Default repository configuration
16
+ */
17
+ export const DEFAULT_REPOSITORY_CONFIG = {
18
+ rootDir: '.',
19
+ autoSave: true,
20
+ autoSaveDelayMs: 1000,
21
+ validateSchema: true,
22
+ };
23
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/patterns/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgUH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsC;IAC1E,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;CACrB,CAAC"}
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Pattern Service Interface
3
+ *
4
+ * Defines the consumer-facing API for pattern operations. This is the
5
+ * recommended interface for all consumers (MCP tools, CLI, Dashboard).
6
+ *
7
+ * The service layer provides:
8
+ * - Higher-level operations than the repository
9
+ * - Business logic (validation, enrichment)
10
+ * - Caching integration
11
+ * - Metrics collection
12
+ *
13
+ * @module patterns/service
14
+ * @see PATTERN-SYSTEM-CONSOLIDATION.md
15
+ */
16
+ import type { Pattern, PatternCategory, PatternStatus, ConfidenceLevel, PatternSummary } from './types.js';
17
+ import type { PatternQueryOptions, PatternQueryResult } from './repository.js';
18
+ /**
19
+ * Overall pattern system status
20
+ */
21
+ export interface PatternSystemStatus {
22
+ /** Total number of patterns */
23
+ totalPatterns: number;
24
+ /** Patterns by status */
25
+ byStatus: Record<PatternStatus, number>;
26
+ /** Patterns by category */
27
+ byCategory: Record<PatternCategory, number>;
28
+ /** Patterns by confidence level */
29
+ byConfidence: Record<ConfidenceLevel, number>;
30
+ /** Last scan timestamp */
31
+ lastScanAt: Date | null;
32
+ /** Overall health score (0-100) */
33
+ healthScore: number;
34
+ }
35
+ /**
36
+ * Category summary for exploration
37
+ */
38
+ export interface CategorySummary {
39
+ /** Category name */
40
+ category: PatternCategory;
41
+ /** Total patterns in category */
42
+ count: number;
43
+ /** Approved patterns */
44
+ approvedCount: number;
45
+ /** Discovered patterns */
46
+ discoveredCount: number;
47
+ /** High confidence patterns */
48
+ highConfidenceCount: number;
49
+ }
50
+ /**
51
+ * Code example from a pattern location
52
+ */
53
+ export interface CodeExample {
54
+ /** File path */
55
+ file: string;
56
+ /** Start line */
57
+ startLine: number;
58
+ /** End line */
59
+ endLine: number;
60
+ /** Code content */
61
+ code: string;
62
+ /** Programming language */
63
+ language: string;
64
+ }
65
+ /**
66
+ * Pattern with enriched code examples
67
+ */
68
+ export interface PatternWithExamples extends Pattern {
69
+ /** Code examples from pattern locations */
70
+ codeExamples: CodeExample[];
71
+ /** Related patterns */
72
+ relatedPatterns: PatternSummary[];
73
+ }
74
+ /**
75
+ * Options for listing patterns
76
+ */
77
+ export interface ListOptions {
78
+ /** Number of results to skip */
79
+ offset?: number;
80
+ /** Maximum number of results */
81
+ limit?: number;
82
+ /** Sort field */
83
+ sortBy?: 'name' | 'confidence' | 'severity' | 'firstSeen' | 'lastSeen' | 'locationCount';
84
+ /** Sort direction */
85
+ sortDirection?: 'asc' | 'desc';
86
+ }
87
+ /**
88
+ * Paginated result
89
+ */
90
+ export interface PaginatedResult<T> {
91
+ /** Items in this page */
92
+ items: T[];
93
+ /** Total count */
94
+ total: number;
95
+ /** Whether there are more results */
96
+ hasMore: boolean;
97
+ /** Current offset */
98
+ offset: number;
99
+ /** Current limit */
100
+ limit: number;
101
+ }
102
+ /**
103
+ * Search options
104
+ */
105
+ export interface SearchOptions {
106
+ /** Categories to search in */
107
+ categories?: PatternCategory[];
108
+ /** Statuses to include */
109
+ statuses?: PatternStatus[];
110
+ /** Minimum confidence */
111
+ minConfidence?: number;
112
+ /** Maximum results */
113
+ limit?: number;
114
+ }
115
+ /**
116
+ * Pattern Service Interface
117
+ *
118
+ * High-level API for pattern operations. All consumers should use this
119
+ * interface instead of directly accessing the repository.
120
+ */
121
+ export interface IPatternService {
122
+ /**
123
+ * Get overall pattern system status.
124
+ * Optimized for instant response.
125
+ */
126
+ getStatus(): Promise<PatternSystemStatus>;
127
+ /**
128
+ * Get category summaries.
129
+ * Optimized for instant response.
130
+ */
131
+ getCategories(): Promise<CategorySummary[]>;
132
+ /**
133
+ * List patterns with pagination.
134
+ * @param options List options
135
+ */
136
+ listPatterns(options?: ListOptions): Promise<PaginatedResult<PatternSummary>>;
137
+ /**
138
+ * List patterns in a category.
139
+ * @param category The category
140
+ * @param options List options
141
+ */
142
+ listByCategory(category: PatternCategory, options?: ListOptions): Promise<PaginatedResult<PatternSummary>>;
143
+ /**
144
+ * List patterns with a specific status.
145
+ * @param status The status
146
+ * @param options List options
147
+ */
148
+ listByStatus(status: PatternStatus, options?: ListOptions): Promise<PaginatedResult<PatternSummary>>;
149
+ /**
150
+ * Get a pattern by ID.
151
+ * @param id The pattern ID
152
+ */
153
+ getPattern(id: string): Promise<Pattern | null>;
154
+ /**
155
+ * Get a pattern with code examples.
156
+ * @param id The pattern ID
157
+ * @param maxExamples Maximum examples to include
158
+ */
159
+ getPatternWithExamples(id: string, maxExamples?: number): Promise<PatternWithExamples | null>;
160
+ /**
161
+ * Get patterns in a specific file.
162
+ * @param file The file path
163
+ */
164
+ getPatternsByFile(file: string): Promise<Pattern[]>;
165
+ /**
166
+ * Approve a pattern.
167
+ * @param id The pattern ID
168
+ * @param approvedBy Optional user who approved
169
+ */
170
+ approvePattern(id: string, approvedBy?: string): Promise<Pattern>;
171
+ /**
172
+ * Ignore a pattern.
173
+ * @param id The pattern ID
174
+ */
175
+ ignorePattern(id: string): Promise<Pattern>;
176
+ /**
177
+ * Approve multiple patterns.
178
+ * @param ids The pattern IDs
179
+ * @param approvedBy Optional user who approved
180
+ */
181
+ approveMany(ids: string[], approvedBy?: string): Promise<Pattern[]>;
182
+ /**
183
+ * Ignore multiple patterns.
184
+ * @param ids The pattern IDs
185
+ */
186
+ ignoreMany(ids: string[]): Promise<Pattern[]>;
187
+ /**
188
+ * Search patterns by name/description.
189
+ * @param query Search query
190
+ * @param options Search options
191
+ */
192
+ search(query: string, options?: SearchOptions): Promise<PatternSummary[]>;
193
+ /**
194
+ * Execute a custom query.
195
+ * @param options Query options
196
+ */
197
+ query(options: PatternQueryOptions): Promise<PatternQueryResult>;
198
+ /**
199
+ * Add a new pattern.
200
+ * @param pattern The pattern to add
201
+ */
202
+ addPattern(pattern: Pattern): Promise<void>;
203
+ /**
204
+ * Add multiple patterns.
205
+ * @param patterns The patterns to add
206
+ */
207
+ addPatterns(patterns: Pattern[]): Promise<void>;
208
+ /**
209
+ * Update an existing pattern.
210
+ * @param id The pattern ID
211
+ * @param updates Partial pattern updates
212
+ */
213
+ updatePattern(id: string, updates: Partial<Pattern>): Promise<Pattern>;
214
+ /**
215
+ * Delete a pattern.
216
+ * @param id The pattern ID
217
+ */
218
+ deletePattern(id: string): Promise<boolean>;
219
+ /**
220
+ * Save all pending changes.
221
+ */
222
+ save(): Promise<void>;
223
+ /**
224
+ * Clear all patterns.
225
+ */
226
+ clear(): Promise<void>;
227
+ }
228
+ /**
229
+ * Pattern service configuration
230
+ */
231
+ export interface PatternServiceConfig {
232
+ /** Enable caching */
233
+ enableCache?: boolean;
234
+ /** Cache TTL in milliseconds */
235
+ cacheTtlMs?: number;
236
+ /** Enable metrics collection */
237
+ enableMetrics?: boolean;
238
+ /** Context lines for code examples */
239
+ codeExampleContextLines?: number;
240
+ }
241
+ /**
242
+ * Default service configuration
243
+ */
244
+ export declare const DEFAULT_SERVICE_CONFIG: Required<PatternServiceConfig>;
245
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/patterns/service.ts"],"names":[],"mappings":"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"}