@skillsmith/core 0.1.2 → 0.2.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/.tsbuildinfo +1 -1
  2. package/dist/src/analysis/CodebaseAnalyzer.d.ts +4 -134
  3. package/dist/src/analysis/CodebaseAnalyzer.d.ts.map +1 -1
  4. package/dist/src/analysis/CodebaseAnalyzer.js +7 -315
  5. package/dist/src/analysis/CodebaseAnalyzer.js.map +1 -1
  6. package/dist/src/analysis/framework-detector.d.ts +47 -0
  7. package/dist/src/analysis/framework-detector.d.ts.map +1 -0
  8. package/dist/src/analysis/framework-detector.js +151 -0
  9. package/dist/src/analysis/framework-detector.js.map +1 -0
  10. package/dist/src/analysis/index.d.ts +6 -1
  11. package/dist/src/analysis/index.d.ts.map +1 -1
  12. package/dist/src/analysis/index.js +10 -1
  13. package/dist/src/analysis/index.js.map +1 -1
  14. package/dist/src/analysis/parsers.d.ts +43 -0
  15. package/dist/src/analysis/parsers.d.ts.map +1 -0
  16. package/dist/src/analysis/parsers.js +219 -0
  17. package/dist/src/analysis/parsers.js.map +1 -0
  18. package/dist/src/analysis/types.d.ts +138 -0
  19. package/dist/src/analysis/types.d.ts.map +1 -0
  20. package/dist/src/analysis/types.js +25 -0
  21. package/dist/src/analysis/types.js.map +1 -0
  22. package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
  23. package/dist/src/analytics/AnalyticsRepository.js +4 -4
  24. package/dist/src/analytics/AnalyticsRepository.js.map +1 -1
  25. package/dist/src/api/cache.d.ts +108 -0
  26. package/dist/src/api/cache.d.ts.map +1 -0
  27. package/dist/src/api/cache.js +216 -0
  28. package/dist/src/api/cache.js.map +1 -0
  29. package/dist/src/api/client.d.ts +152 -0
  30. package/dist/src/api/client.d.ts.map +1 -0
  31. package/dist/src/api/client.js +221 -0
  32. package/dist/src/api/client.js.map +1 -0
  33. package/dist/src/api/index.d.ts +10 -0
  34. package/dist/src/api/index.d.ts.map +1 -0
  35. package/dist/src/api/index.js +10 -0
  36. package/dist/src/api/index.js.map +1 -0
  37. package/dist/src/benchmarks/BenchmarkRunner.d.ts +6 -175
  38. package/dist/src/benchmarks/BenchmarkRunner.d.ts.map +1 -1
  39. package/dist/src/benchmarks/BenchmarkRunner.js +6 -123
  40. package/dist/src/benchmarks/BenchmarkRunner.js.map +1 -1
  41. package/dist/src/benchmarks/MemoryProfiler.d.ts +4 -262
  42. package/dist/src/benchmarks/MemoryProfiler.d.ts.map +1 -1
  43. package/dist/src/benchmarks/MemoryProfiler.js +4 -400
  44. package/dist/src/benchmarks/MemoryProfiler.js.map +1 -1
  45. package/dist/src/benchmarks/comparator.d.ts +38 -0
  46. package/dist/src/benchmarks/comparator.d.ts.map +1 -0
  47. package/dist/src/benchmarks/comparator.js +81 -0
  48. package/dist/src/benchmarks/comparator.js.map +1 -0
  49. package/dist/src/benchmarks/formatters.d.ts +30 -0
  50. package/dist/src/benchmarks/formatters.d.ts.map +1 -0
  51. package/dist/src/benchmarks/formatters.js +88 -0
  52. package/dist/src/benchmarks/formatters.js.map +1 -0
  53. package/dist/src/benchmarks/index.d.ts +5 -1
  54. package/dist/src/benchmarks/index.d.ts.map +1 -1
  55. package/dist/src/benchmarks/index.js +9 -2
  56. package/dist/src/benchmarks/index.js.map +1 -1
  57. package/dist/src/benchmarks/memory/MemoryProfiler.d.ts +165 -0
  58. package/dist/src/benchmarks/memory/MemoryProfiler.d.ts.map +1 -0
  59. package/dist/src/benchmarks/memory/MemoryProfiler.js +312 -0
  60. package/dist/src/benchmarks/memory/MemoryProfiler.js.map +1 -0
  61. package/dist/src/benchmarks/memory/baseline-manager.d.ts +64 -0
  62. package/dist/src/benchmarks/memory/baseline-manager.d.ts.map +1 -0
  63. package/dist/src/benchmarks/memory/baseline-manager.js +95 -0
  64. package/dist/src/benchmarks/memory/baseline-manager.js.map +1 -0
  65. package/dist/src/benchmarks/memory/index.d.ts +12 -0
  66. package/dist/src/benchmarks/memory/index.d.ts.map +1 -0
  67. package/dist/src/benchmarks/memory/index.js +12 -0
  68. package/dist/src/benchmarks/memory/index.js.map +1 -0
  69. package/dist/src/benchmarks/memory/leak-detector.d.ts +23 -0
  70. package/dist/src/benchmarks/memory/leak-detector.d.ts.map +1 -0
  71. package/dist/src/benchmarks/memory/leak-detector.js +46 -0
  72. package/dist/src/benchmarks/memory/leak-detector.js.map +1 -0
  73. package/dist/src/benchmarks/memory/regression-detector.d.ts +17 -0
  74. package/dist/src/benchmarks/memory/regression-detector.d.ts.map +1 -0
  75. package/dist/src/benchmarks/memory/regression-detector.js +56 -0
  76. package/dist/src/benchmarks/memory/regression-detector.js.map +1 -0
  77. package/dist/src/benchmarks/memory/types.d.ts +111 -0
  78. package/dist/src/benchmarks/memory/types.d.ts.map +1 -0
  79. package/dist/src/benchmarks/memory/types.js +7 -0
  80. package/dist/src/benchmarks/memory/types.js.map +1 -0
  81. package/dist/src/benchmarks/memory/utils.d.ts +17 -0
  82. package/dist/src/benchmarks/memory/utils.d.ts.map +1 -0
  83. package/dist/src/benchmarks/memory/utils.js +29 -0
  84. package/dist/src/benchmarks/memory/utils.js.map +1 -0
  85. package/dist/src/benchmarks/types.d.ts +175 -0
  86. package/dist/src/benchmarks/types.d.ts.map +1 -0
  87. package/dist/src/benchmarks/types.js +20 -0
  88. package/dist/src/benchmarks/types.js.map +1 -0
  89. package/dist/src/index.d.ts +4 -2
  90. package/dist/src/index.d.ts.map +1 -1
  91. package/dist/src/index.js +7 -3
  92. package/dist/src/index.js.map +1 -1
  93. package/dist/src/repositories/QuarantineRepository.d.ts +4 -251
  94. package/dist/src/repositories/QuarantineRepository.d.ts.map +1 -1
  95. package/dist/src/repositories/QuarantineRepository.js +4 -441
  96. package/dist/src/repositories/QuarantineRepository.js.map +1 -1
  97. package/dist/src/repositories/quarantine/QuarantineRepository.d.ts +168 -0
  98. package/dist/src/repositories/quarantine/QuarantineRepository.d.ts.map +1 -0
  99. package/dist/src/repositories/quarantine/QuarantineRepository.js +341 -0
  100. package/dist/src/repositories/quarantine/QuarantineRepository.js.map +1 -0
  101. package/dist/src/repositories/quarantine/index.d.ts +10 -0
  102. package/dist/src/repositories/quarantine/index.d.ts.map +1 -0
  103. package/dist/src/repositories/quarantine/index.js +10 -0
  104. package/dist/src/repositories/quarantine/index.js.map +1 -0
  105. package/dist/src/repositories/quarantine/queries.d.ts +58 -0
  106. package/dist/src/repositories/quarantine/queries.d.ts.map +1 -0
  107. package/dist/src/repositories/quarantine/queries.js +88 -0
  108. package/dist/src/repositories/quarantine/queries.js.map +1 -0
  109. package/dist/src/repositories/quarantine/query-builder.d.ts +44 -0
  110. package/dist/src/repositories/quarantine/query-builder.d.ts.map +1 -0
  111. package/dist/src/repositories/quarantine/query-builder.js +87 -0
  112. package/dist/src/repositories/quarantine/query-builder.js.map +1 -0
  113. package/dist/src/repositories/quarantine/types.d.ts +155 -0
  114. package/dist/src/repositories/quarantine/types.d.ts.map +1 -0
  115. package/dist/src/repositories/quarantine/types.js +13 -0
  116. package/dist/src/repositories/quarantine/types.js.map +1 -0
  117. package/dist/src/scripts/__tests__/scan-imported-skills.test.d.ts +1 -0
  118. package/dist/src/scripts/__tests__/scan-imported-skills.test.d.ts.map +1 -1
  119. package/dist/src/scripts/__tests__/scan-imported-skills.test.js +7 -43
  120. package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
  121. package/dist/src/scripts/github-import/checkpoint.d.ts +21 -0
  122. package/dist/src/scripts/github-import/checkpoint.d.ts.map +1 -0
  123. package/dist/src/scripts/github-import/checkpoint.js +52 -0
  124. package/dist/src/scripts/github-import/checkpoint.js.map +1 -0
  125. package/dist/src/scripts/github-import/deduplication.d.ts +15 -0
  126. package/dist/src/scripts/github-import/deduplication.d.ts.map +1 -0
  127. package/dist/src/scripts/github-import/deduplication.js +33 -0
  128. package/dist/src/scripts/github-import/deduplication.js.map +1 -0
  129. package/dist/src/scripts/github-import/github-client.d.ts +29 -0
  130. package/dist/src/scripts/github-import/github-client.d.ts.map +1 -0
  131. package/dist/src/scripts/github-import/github-client.js +184 -0
  132. package/dist/src/scripts/github-import/github-client.js.map +1 -0
  133. package/dist/src/scripts/github-import/index.d.ts +29 -0
  134. package/dist/src/scripts/github-import/index.d.ts.map +1 -0
  135. package/dist/src/scripts/github-import/index.js +198 -0
  136. package/dist/src/scripts/github-import/index.js.map +1 -0
  137. package/dist/src/scripts/github-import/output.d.ts +12 -0
  138. package/dist/src/scripts/github-import/output.d.ts.map +1 -0
  139. package/dist/src/scripts/github-import/output.js +34 -0
  140. package/dist/src/scripts/github-import/output.js.map +1 -0
  141. package/dist/src/scripts/github-import/types.d.ts +108 -0
  142. package/dist/src/scripts/github-import/types.d.ts.map +1 -0
  143. package/dist/src/scripts/github-import/types.js +44 -0
  144. package/dist/src/scripts/github-import/types.js.map +1 -0
  145. package/dist/src/scripts/github-import/utils.d.ts +13 -0
  146. package/dist/src/scripts/github-import/utils.d.ts.map +1 -0
  147. package/dist/src/scripts/github-import/utils.js +28 -0
  148. package/dist/src/scripts/github-import/utils.js.map +1 -0
  149. package/dist/src/scripts/import-github-skills.d.ts +3 -12
  150. package/dist/src/scripts/import-github-skills.d.ts.map +1 -1
  151. package/dist/src/scripts/import-github-skills.js +18 -398
  152. package/dist/src/scripts/import-github-skills.js.map +1 -1
  153. package/dist/src/scripts/scan-imported-skills.d.ts +7 -7
  154. package/dist/src/scripts/scan-imported-skills.d.ts.map +1 -1
  155. package/dist/src/scripts/scan-imported-skills.js +8 -397
  156. package/dist/src/scripts/scan-imported-skills.js.map +1 -1
  157. package/dist/src/scripts/skill-scanner/categorizer.d.ts +43 -0
  158. package/dist/src/scripts/skill-scanner/categorizer.d.ts.map +1 -0
  159. package/dist/src/scripts/skill-scanner/categorizer.js +61 -0
  160. package/dist/src/scripts/skill-scanner/categorizer.js.map +1 -0
  161. package/dist/src/scripts/skill-scanner/file-scanner.d.ts +43 -0
  162. package/dist/src/scripts/skill-scanner/file-scanner.d.ts.map +1 -0
  163. package/dist/src/scripts/skill-scanner/file-scanner.js +90 -0
  164. package/dist/src/scripts/skill-scanner/file-scanner.js.map +1 -0
  165. package/dist/src/scripts/skill-scanner/index.d.ts +22 -0
  166. package/dist/src/scripts/skill-scanner/index.d.ts.map +1 -0
  167. package/dist/src/scripts/skill-scanner/index.js +43 -0
  168. package/dist/src/scripts/skill-scanner/index.js.map +1 -0
  169. package/dist/src/scripts/skill-scanner/logger.d.ts +59 -0
  170. package/dist/src/scripts/skill-scanner/logger.d.ts.map +1 -0
  171. package/dist/src/scripts/skill-scanner/logger.js +104 -0
  172. package/dist/src/scripts/skill-scanner/logger.js.map +1 -0
  173. package/dist/src/scripts/skill-scanner/reporter.d.ts +56 -0
  174. package/dist/src/scripts/skill-scanner/reporter.d.ts.map +1 -0
  175. package/dist/src/scripts/skill-scanner/reporter.js +166 -0
  176. package/dist/src/scripts/skill-scanner/reporter.js.map +1 -0
  177. package/dist/src/scripts/skill-scanner/scanner.d.ts +44 -0
  178. package/dist/src/scripts/skill-scanner/scanner.d.ts.map +1 -0
  179. package/dist/src/scripts/skill-scanner/scanner.js +140 -0
  180. package/dist/src/scripts/skill-scanner/scanner.js.map +1 -0
  181. package/dist/src/scripts/skill-scanner/trust-scorer.d.ts +59 -0
  182. package/dist/src/scripts/skill-scanner/trust-scorer.d.ts.map +1 -0
  183. package/dist/src/scripts/skill-scanner/trust-scorer.js +62 -0
  184. package/dist/src/scripts/skill-scanner/trust-scorer.js.map +1 -0
  185. package/dist/src/scripts/skill-scanner/types.d.ts +98 -0
  186. package/dist/src/scripts/skill-scanner/types.d.ts.map +1 -0
  187. package/dist/src/scripts/skill-scanner/types.js +7 -0
  188. package/dist/src/scripts/skill-scanner/types.js.map +1 -0
  189. package/dist/src/scripts/validate-skills.d.ts +3 -172
  190. package/dist/src/scripts/validate-skills.d.ts.map +1 -1
  191. package/dist/src/scripts/validate-skills.js +6 -519
  192. package/dist/src/scripts/validate-skills.js.map +1 -1
  193. package/dist/src/scripts/validation/deduplication.d.ts +23 -0
  194. package/dist/src/scripts/validation/deduplication.d.ts.map +1 -0
  195. package/dist/src/scripts/validation/deduplication.js +127 -0
  196. package/dist/src/scripts/validation/deduplication.js.map +1 -0
  197. package/dist/src/scripts/validation/field-validators.d.ts +9 -0
  198. package/dist/src/scripts/validation/field-validators.d.ts.map +1 -0
  199. package/dist/src/scripts/validation/field-validators.js +135 -0
  200. package/dist/src/scripts/validation/field-validators.js.map +1 -0
  201. package/dist/src/scripts/validation/index.d.ts +29 -0
  202. package/dist/src/scripts/validation/index.d.ts.map +1 -0
  203. package/dist/src/scripts/validation/index.js +84 -0
  204. package/dist/src/scripts/validation/index.js.map +1 -0
  205. package/dist/src/scripts/validation/normalizers.d.ts +29 -0
  206. package/dist/src/scripts/validation/normalizers.d.ts.map +1 -0
  207. package/dist/src/scripts/validation/normalizers.js +79 -0
  208. package/dist/src/scripts/validation/normalizers.js.map +1 -0
  209. package/dist/src/scripts/validation/pipeline.d.ts +13 -0
  210. package/dist/src/scripts/validation/pipeline.d.ts.map +1 -0
  211. package/dist/src/scripts/validation/pipeline.js +126 -0
  212. package/dist/src/scripts/validation/pipeline.js.map +1 -0
  213. package/dist/src/scripts/validation/types.d.ts +128 -0
  214. package/dist/src/scripts/validation/types.d.ts.map +1 -0
  215. package/dist/src/scripts/validation/types.js +43 -0
  216. package/dist/src/scripts/validation/types.js.map +1 -0
  217. package/dist/src/security/index.d.ts +5 -4
  218. package/dist/src/security/index.d.ts.map +1 -1
  219. package/dist/src/security/index.js +8 -2
  220. package/dist/src/security/index.js.map +1 -1
  221. package/dist/src/security/rate-limiter/RateLimiter.d.ts +86 -0
  222. package/dist/src/security/rate-limiter/RateLimiter.d.ts.map +1 -0
  223. package/dist/src/security/rate-limiter/RateLimiter.js +260 -0
  224. package/dist/src/security/rate-limiter/RateLimiter.js.map +1 -0
  225. package/dist/src/security/rate-limiter/constants.d.ts +15 -0
  226. package/dist/src/security/rate-limiter/constants.d.ts.map +1 -0
  227. package/dist/src/security/rate-limiter/constants.js +15 -0
  228. package/dist/src/security/rate-limiter/constants.js.map +1 -0
  229. package/dist/src/security/rate-limiter/errors.d.ts +22 -0
  230. package/dist/src/security/rate-limiter/errors.d.ts.map +1 -0
  231. package/dist/src/security/rate-limiter/errors.js +32 -0
  232. package/dist/src/security/rate-limiter/errors.js.map +1 -0
  233. package/dist/src/security/rate-limiter/index.d.ts +12 -0
  234. package/dist/src/security/rate-limiter/index.d.ts.map +1 -0
  235. package/dist/src/security/rate-limiter/index.js +16 -0
  236. package/dist/src/security/rate-limiter/index.js.map +1 -0
  237. package/dist/src/security/rate-limiter/metrics-manager.d.ts +55 -0
  238. package/dist/src/security/rate-limiter/metrics-manager.d.ts.map +1 -0
  239. package/dist/src/security/rate-limiter/metrics-manager.js +144 -0
  240. package/dist/src/security/rate-limiter/metrics-manager.js.map +1 -0
  241. package/dist/src/security/rate-limiter/presets.d.ts +52 -0
  242. package/dist/src/security/rate-limiter/presets.d.ts.map +1 -0
  243. package/dist/src/security/rate-limiter/presets.js +53 -0
  244. package/dist/src/security/rate-limiter/presets.js.map +1 -0
  245. package/dist/src/security/rate-limiter/queue-manager.d.ts +59 -0
  246. package/dist/src/security/rate-limiter/queue-manager.d.ts.map +1 -0
  247. package/dist/src/security/rate-limiter/queue-manager.js +189 -0
  248. package/dist/src/security/rate-limiter/queue-manager.js.map +1 -0
  249. package/dist/src/security/rate-limiter/storage.d.ts +34 -0
  250. package/dist/src/security/rate-limiter/storage.d.ts.map +1 -0
  251. package/dist/src/security/rate-limiter/storage.js +80 -0
  252. package/dist/src/security/rate-limiter/storage.js.map +1 -0
  253. package/dist/src/security/rate-limiter/token-bucket.d.ts +44 -0
  254. package/dist/src/security/rate-limiter/token-bucket.d.ts.map +1 -0
  255. package/dist/src/security/rate-limiter/token-bucket.js +99 -0
  256. package/dist/src/security/rate-limiter/token-bucket.js.map +1 -0
  257. package/dist/src/security/rate-limiter/types.d.ts +104 -0
  258. package/dist/src/security/rate-limiter/types.d.ts.map +1 -0
  259. package/dist/src/security/rate-limiter/types.js +7 -0
  260. package/dist/src/security/rate-limiter/types.js.map +1 -0
  261. package/dist/src/security/scanner/SecurityScanner.d.ts +94 -0
  262. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -0
  263. package/dist/src/security/scanner/SecurityScanner.js +403 -0
  264. package/dist/src/security/scanner/SecurityScanner.js.map +1 -0
  265. package/dist/src/security/scanner/index.d.ts +11 -0
  266. package/dist/src/security/scanner/index.d.ts.map +1 -0
  267. package/dist/src/security/scanner/index.js +14 -0
  268. package/dist/src/security/scanner/index.js.map +1 -0
  269. package/dist/src/security/scanner/patterns.d.ts +14 -0
  270. package/dist/src/security/scanner/patterns.d.ts.map +1 -0
  271. package/dist/src/security/scanner/patterns.js +147 -0
  272. package/dist/src/security/scanner/patterns.js.map +1 -0
  273. package/dist/src/security/scanner/regex-utils.d.ts +33 -0
  274. package/dist/src/security/scanner/regex-utils.d.ts.map +1 -0
  275. package/dist/src/security/scanner/regex-utils.js +41 -0
  276. package/dist/src/security/scanner/regex-utils.js.map +1 -0
  277. package/dist/src/security/scanner/types.d.ts +63 -0
  278. package/dist/src/security/scanner/types.d.ts.map +1 -0
  279. package/dist/src/security/scanner/types.js +7 -0
  280. package/dist/src/security/scanner/types.js.map +1 -0
  281. package/dist/src/security/scanner/weights.d.ts +15 -0
  282. package/dist/src/security/scanner/weights.d.ts.map +1 -0
  283. package/dist/src/security/scanner/weights.js +28 -0
  284. package/dist/src/security/scanner/weights.js.map +1 -0
  285. package/dist/src/session/SessionHealthMonitor.d.ts +5 -168
  286. package/dist/src/session/SessionHealthMonitor.d.ts.map +1 -1
  287. package/dist/src/session/SessionHealthMonitor.js +22 -91
  288. package/dist/src/session/SessionHealthMonitor.js.map +1 -1
  289. package/dist/src/session/health-checks.d.ts +37 -0
  290. package/dist/src/session/health-checks.d.ts.map +1 -0
  291. package/dist/src/session/health-checks.js +64 -0
  292. package/dist/src/session/health-checks.js.map +1 -0
  293. package/dist/src/session/health-types.d.ts +78 -0
  294. package/dist/src/session/health-types.d.ts.map +1 -0
  295. package/dist/src/session/health-types.js +16 -0
  296. package/dist/src/session/health-types.js.map +1 -0
  297. package/dist/src/session/index.d.ts +5 -1
  298. package/dist/src/session/index.d.ts.map +1 -1
  299. package/dist/src/session/index.js +9 -0
  300. package/dist/src/session/index.js.map +1 -1
  301. package/dist/src/session/metrics-collector.d.ts +23 -0
  302. package/dist/src/session/metrics-collector.d.ts.map +1 -0
  303. package/dist/src/session/metrics-collector.js +44 -0
  304. package/dist/src/session/metrics-collector.js.map +1 -0
  305. package/dist/src/session/typed-event-emitter.d.ts +70 -0
  306. package/dist/src/session/typed-event-emitter.d.ts.map +1 -0
  307. package/dist/src/session/typed-event-emitter.js +79 -0
  308. package/dist/src/session/typed-event-emitter.js.map +1 -0
  309. package/dist/src/sources/BaseSourceAdapter.d.ts +1 -1
  310. package/dist/src/sources/BaseSourceAdapter.d.ts.map +1 -1
  311. package/dist/src/sources/BaseSourceAdapter.js +2 -2
  312. package/dist/src/sources/BaseSourceAdapter.js.map +1 -1
  313. package/dist/src/telemetry/index.d.ts +1 -0
  314. package/dist/src/telemetry/index.d.ts.map +1 -1
  315. package/dist/src/telemetry/index.js +2 -0
  316. package/dist/src/telemetry/index.js.map +1 -1
  317. package/dist/src/telemetry/posthog.d.ts +125 -0
  318. package/dist/src/telemetry/posthog.d.ts.map +1 -0
  319. package/dist/src/telemetry/posthog.js +198 -0
  320. package/dist/src/telemetry/posthog.js.map +1 -0
  321. package/dist/tests/RateLimiter.test.js +4 -4
  322. package/dist/tests/RateLimiter.test.js.map +1 -1
  323. package/dist/tests/e2e/security/security.e2e.test.js +3 -3
  324. package/dist/tests/e2e/security/security.e2e.test.js.map +1 -1
  325. package/package.json +2 -1
@@ -1,125 +1,15 @@
1
1
  /**
2
2
  * SMI-600: CodebaseAnalyzer
3
- * Analyzes TypeScript/JavaScript codebases to extract structure and patterns.
3
+ * SMI-1189: Refactored to use extracted modules
4
4
  *
5
+ * Analyzes TypeScript/JavaScript codebases to extract structure and patterns.
5
6
  * Uses TypeScript compiler API for accurate AST parsing.
6
7
  * Focuses on TS/JS only per ADR-010.
7
8
  *
8
9
  * @see ADR-010: Codebase Analysis Scope
9
10
  */
10
- /**
11
- * Import information extracted from source files
12
- */
13
- export interface ImportInfo {
14
- /** Module specifier (e.g., 'react', './utils') */
15
- module: string;
16
- /** Named imports (e.g., ['useState', 'useEffect']) */
17
- namedImports: string[];
18
- /** Default import name if present */
19
- defaultImport?: string;
20
- /** Namespace import name if present (import * as X) */
21
- namespaceImport?: string;
22
- /** Whether this is a type-only import */
23
- isTypeOnly: boolean;
24
- /** Source file where import was found */
25
- sourceFile: string;
26
- }
27
- /**
28
- * Export information extracted from source files
29
- */
30
- export interface ExportInfo {
31
- /** Exported name */
32
- name: string;
33
- /** Kind of export (function, class, variable, type, interface) */
34
- kind: 'function' | 'class' | 'variable' | 'type' | 'interface' | 'enum' | 'unknown';
35
- /** Whether this is a default export */
36
- isDefault: boolean;
37
- /** Source file where export was found */
38
- sourceFile: string;
39
- }
40
- /**
41
- * Function information extracted from source files
42
- */
43
- export interface FunctionInfo {
44
- /** Function name */
45
- name: string;
46
- /** Number of parameters */
47
- parameterCount: number;
48
- /** Whether function is async */
49
- isAsync: boolean;
50
- /** Whether function is exported */
51
- isExported: boolean;
52
- /** Source file where function was found */
53
- sourceFile: string;
54
- /** Line number */
55
- line: number;
56
- }
57
- /**
58
- * Detected framework information
59
- */
60
- export interface FrameworkInfo {
61
- /** Framework name */
62
- name: string;
63
- /** Confidence level (0-1) */
64
- confidence: number;
65
- /** Evidence for detection */
66
- evidence: string[];
67
- }
68
- /**
69
- * Package.json dependency information
70
- */
71
- export interface DependencyInfo {
72
- /** Package name */
73
- name: string;
74
- /** Version specifier */
75
- version: string;
76
- /** Whether this is a dev dependency */
77
- isDev: boolean;
78
- }
79
- /**
80
- * Complete codebase context for skill recommendations
81
- */
82
- export interface CodebaseContext {
83
- /** Root directory analyzed */
84
- rootPath: string;
85
- /** All imports found in the codebase */
86
- imports: ImportInfo[];
87
- /** All exports found in the codebase */
88
- exports: ExportInfo[];
89
- /** All functions found in the codebase */
90
- functions: FunctionInfo[];
91
- /** Detected frameworks */
92
- frameworks: FrameworkInfo[];
93
- /** Dependencies from package.json */
94
- dependencies: DependencyInfo[];
95
- /** File statistics */
96
- stats: {
97
- /** Total files analyzed */
98
- totalFiles: number;
99
- /** Files by extension */
100
- filesByExtension: Record<string, number>;
101
- /** Total lines of code (approximate) */
102
- totalLines: number;
103
- };
104
- /** Analysis metadata */
105
- metadata: {
106
- /** Analysis duration in ms */
107
- durationMs: number;
108
- /** Analyzer version */
109
- version: string;
110
- };
111
- }
112
- /**
113
- * Options for codebase analysis
114
- */
115
- export interface AnalyzeOptions {
116
- /** Maximum files to analyze (default: 1000) */
117
- maxFiles?: number;
118
- /** Directories to exclude (default: node_modules, dist, .git) */
119
- excludeDirs?: string[];
120
- /** Include dev dependencies in analysis */
121
- includeDevDeps?: boolean;
122
- }
11
+ import { type CodebaseContext, type AnalyzeOptions } from './types.js';
12
+ export type { ImportInfo, ExportInfo, FunctionInfo, FrameworkInfo, DependencyInfo, CodebaseContext, AnalyzeOptions, } from './types.js';
123
13
  /**
124
14
  * CodebaseAnalyzer - Analyzes TypeScript/JavaScript codebases
125
15
  *
@@ -142,30 +32,10 @@ export declare class CodebaseAnalyzer {
142
32
  * Find all source files in directory
143
33
  */
144
34
  private findSourceFiles;
145
- /**
146
- * Parse a single file and extract information
147
- */
148
- private parseFile;
149
- /**
150
- * Extract import information from an import declaration
151
- */
152
- private extractImport;
153
- /**
154
- * Extract export information from an export declaration
155
- */
156
- private extractExport;
157
- /**
158
- * Extract function information from a function declaration
159
- */
160
- private extractFunction;
161
35
  /**
162
36
  * Read dependencies from package.json
163
37
  */
164
38
  private readDependencies;
165
- /**
166
- * Detect frameworks based on imports and dependencies
167
- */
168
- private detectFrameworks;
169
39
  /**
170
40
  * Get a summary of the codebase for skill matching
171
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CodebaseAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/CodebaseAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodebaseAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/CodebaseAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAA;AAKnB,YAAY,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAElC;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsEvF;;OAEG;IACH,OAAO,CAAC,eAAe;IAoCvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;CAiC7C;AAED,eAAe,gBAAgB,CAAA"}
@@ -1,20 +1,18 @@
1
1
  /**
2
2
  * SMI-600: CodebaseAnalyzer
3
- * Analyzes TypeScript/JavaScript codebases to extract structure and patterns.
3
+ * SMI-1189: Refactored to use extracted modules
4
4
  *
5
+ * Analyzes TypeScript/JavaScript codebases to extract structure and patterns.
5
6
  * Uses TypeScript compiler API for accurate AST parsing.
6
7
  * Focuses on TS/JS only per ADR-010.
7
8
  *
8
9
  * @see ADR-010: Codebase Analysis Scope
9
10
  */
10
- import * as ts from 'typescript';
11
11
  import * as fs from 'fs';
12
12
  import * as path from 'path';
13
- /**
14
- * Supported file extensions for analysis
15
- */
16
- const SUPPORTED_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'];
17
- const DEFAULT_EXCLUDE_DIRS = ['node_modules', 'dist', 'build', '.git', 'coverage', '.next', '.nuxt'];
13
+ import { SUPPORTED_EXTENSIONS, DEFAULT_EXCLUDE_DIRS, } from './types.js';
14
+ import { parseFile } from './parsers.js';
15
+ import { detectFrameworks } from './framework-detector.js';
18
16
  /**
19
17
  * CodebaseAnalyzer - Analyzes TypeScript/JavaScript codebases
20
18
  *
@@ -56,7 +54,7 @@ export class CodebaseAnalyzer {
56
54
  const content = fs.readFileSync(filePath, 'utf-8');
57
55
  totalLines += content.split('\n').length;
58
56
  const relativePath = path.relative(absolutePath, filePath);
59
- const fileInfo = this.parseFile(content, relativePath);
57
+ const fileInfo = parseFile(content, relativePath);
60
58
  imports.push(...fileInfo.imports);
61
59
  exports.push(...fileInfo.exports);
62
60
  functions.push(...fileInfo.functions);
@@ -69,7 +67,7 @@ export class CodebaseAnalyzer {
69
67
  // Read dependencies from package.json
70
68
  const dependencies = this.readDependencies(absolutePath, includeDevDeps);
71
69
  // Detect frameworks
72
- const frameworks = this.detectFrameworks(imports, dependencies);
70
+ const frameworks = detectFrameworks(imports, dependencies);
73
71
  const endTime = performance.now();
74
72
  return {
75
73
  rootPath: absolutePath,
@@ -125,199 +123,6 @@ export class CodebaseAnalyzer {
125
123
  walk(dir);
126
124
  return files;
127
125
  }
128
- /**
129
- * Parse a single file and extract information
130
- */
131
- parseFile(content, relativePath) {
132
- const imports = [];
133
- const exports = [];
134
- const functions = [];
135
- // Create source file
136
- const sourceFile = ts.createSourceFile(relativePath, content, ts.ScriptTarget.Latest, true, relativePath.endsWith('.tsx') || relativePath.endsWith('.jsx')
137
- ? ts.ScriptKind.TSX
138
- : ts.ScriptKind.TS);
139
- // Walk the AST
140
- const visit = (node) => {
141
- // Import declarations
142
- if (ts.isImportDeclaration(node)) {
143
- const importInfo = this.extractImport(node, relativePath);
144
- if (importInfo) {
145
- imports.push(importInfo);
146
- }
147
- }
148
- // Export declarations
149
- if (ts.isExportDeclaration(node) || ts.isExportAssignment(node)) {
150
- const exportInfos = this.extractExport(node, relativePath);
151
- exports.push(...exportInfos);
152
- }
153
- // Function declarations
154
- if (ts.isFunctionDeclaration(node) && node.name) {
155
- const funcInfo = this.extractFunction(node, relativePath, sourceFile);
156
- if (funcInfo) {
157
- functions.push(funcInfo);
158
- // Also track as export if exported
159
- if (funcInfo.isExported) {
160
- const isDefault = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.DefaultKeyword);
161
- exports.push({
162
- name: node.name.text,
163
- kind: 'function',
164
- isDefault: isDefault ?? false,
165
- sourceFile: relativePath,
166
- });
167
- }
168
- }
169
- }
170
- // Arrow functions assigned to variables
171
- if (ts.isVariableStatement(node)) {
172
- for (const decl of node.declarationList.declarations) {
173
- if (decl.initializer &&
174
- ts.isArrowFunction(decl.initializer) &&
175
- ts.isIdentifier(decl.name)) {
176
- const isExported = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword);
177
- const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
178
- functions.push({
179
- name: decl.name.text,
180
- parameterCount: decl.initializer.parameters.length,
181
- isAsync: decl.initializer.modifiers?.some((m) => m.kind === ts.SyntaxKind.AsyncKeyword) ??
182
- false,
183
- isExported: isExported ?? false,
184
- sourceFile: relativePath,
185
- line: line + 1,
186
- });
187
- // Also track as export if exported
188
- if (isExported) {
189
- exports.push({
190
- name: decl.name.text,
191
- kind: 'function',
192
- isDefault: false,
193
- sourceFile: relativePath,
194
- });
195
- }
196
- }
197
- }
198
- }
199
- // Class declarations
200
- if (ts.isClassDeclaration(node) && node.name) {
201
- const isExported = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword);
202
- const isDefault = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.DefaultKeyword);
203
- if (isExported) {
204
- exports.push({
205
- name: node.name.text,
206
- kind: 'class',
207
- isDefault: isDefault ?? false,
208
- sourceFile: relativePath,
209
- });
210
- }
211
- }
212
- // Interface declarations
213
- if (ts.isInterfaceDeclaration(node)) {
214
- const isExported = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword);
215
- if (isExported) {
216
- exports.push({
217
- name: node.name.text,
218
- kind: 'interface',
219
- isDefault: false,
220
- sourceFile: relativePath,
221
- });
222
- }
223
- }
224
- // Type alias declarations
225
- if (ts.isTypeAliasDeclaration(node)) {
226
- const isExported = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword);
227
- if (isExported) {
228
- exports.push({
229
- name: node.name.text,
230
- kind: 'type',
231
- isDefault: false,
232
- sourceFile: relativePath,
233
- });
234
- }
235
- }
236
- ts.forEachChild(node, visit);
237
- };
238
- visit(sourceFile);
239
- return { imports, exports, functions };
240
- }
241
- /**
242
- * Extract import information from an import declaration
243
- */
244
- extractImport(node, sourceFile) {
245
- const moduleSpecifier = node.moduleSpecifier;
246
- if (!ts.isStringLiteral(moduleSpecifier)) {
247
- return null;
248
- }
249
- const importInfo = {
250
- module: moduleSpecifier.text,
251
- namedImports: [],
252
- isTypeOnly: node.importClause?.isTypeOnly ?? false,
253
- sourceFile,
254
- };
255
- const importClause = node.importClause;
256
- if (importClause) {
257
- // Default import
258
- if (importClause.name) {
259
- importInfo.defaultImport = importClause.name.text;
260
- }
261
- // Named imports
262
- const namedBindings = importClause.namedBindings;
263
- if (namedBindings) {
264
- if (ts.isNamespaceImport(namedBindings)) {
265
- importInfo.namespaceImport = namedBindings.name.text;
266
- }
267
- else if (ts.isNamedImports(namedBindings)) {
268
- for (const element of namedBindings.elements) {
269
- importInfo.namedImports.push(element.name.text);
270
- }
271
- }
272
- }
273
- }
274
- return importInfo;
275
- }
276
- /**
277
- * Extract export information from an export declaration
278
- */
279
- extractExport(node, sourceFile) {
280
- const exports = [];
281
- if (ts.isExportAssignment(node)) {
282
- // export default X
283
- exports.push({
284
- name: 'default',
285
- kind: 'unknown',
286
- isDefault: true,
287
- sourceFile,
288
- });
289
- }
290
- else if (node.exportClause && ts.isNamedExports(node.exportClause)) {
291
- // export { X, Y }
292
- for (const element of node.exportClause.elements) {
293
- exports.push({
294
- name: element.name.text,
295
- kind: 'unknown',
296
- isDefault: false,
297
- sourceFile,
298
- });
299
- }
300
- }
301
- return exports;
302
- }
303
- /**
304
- * Extract function information from a function declaration
305
- */
306
- extractFunction(node, relativePath, sourceFile) {
307
- if (!node.name)
308
- return null;
309
- const isExported = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword);
310
- const isAsync = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.AsyncKeyword);
311
- const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
312
- return {
313
- name: node.name.text,
314
- parameterCount: node.parameters.length,
315
- isAsync: isAsync ?? false,
316
- isExported: isExported ?? false,
317
- sourceFile: relativePath,
318
- line: line + 1,
319
- };
320
- }
321
126
  /**
322
127
  * Read dependencies from package.json
323
128
  */
@@ -346,119 +151,6 @@ export class CodebaseAnalyzer {
346
151
  }
347
152
  return dependencies;
348
153
  }
349
- /**
350
- * Detect frameworks based on imports and dependencies
351
- */
352
- detectFrameworks(imports, dependencies) {
353
- const frameworks = [];
354
- const depNames = new Set(dependencies.map((d) => d.name));
355
- const importModules = new Set(imports.map((i) => i.module));
356
- // Framework detection rules
357
- const frameworkRules = [
358
- {
359
- name: 'React',
360
- depIndicators: ['react', 'react-dom'],
361
- importIndicators: ['react', 'react-dom'],
362
- },
363
- {
364
- name: 'Next.js',
365
- depIndicators: ['next'],
366
- importIndicators: ['next', 'next/router', 'next/link', 'next/image'],
367
- },
368
- {
369
- name: 'Vue',
370
- depIndicators: ['vue'],
371
- importIndicators: ['vue'],
372
- },
373
- {
374
- name: 'Nuxt',
375
- depIndicators: ['nuxt'],
376
- importIndicators: ['nuxt', '#app', '#imports'],
377
- },
378
- {
379
- name: 'Angular',
380
- depIndicators: ['@angular/core'],
381
- importIndicators: ['@angular/core', '@angular/common'],
382
- },
383
- {
384
- name: 'Express',
385
- depIndicators: ['express'],
386
- importIndicators: ['express'],
387
- },
388
- {
389
- name: 'Fastify',
390
- depIndicators: ['fastify'],
391
- importIndicators: ['fastify'],
392
- },
393
- {
394
- name: 'NestJS',
395
- depIndicators: ['@nestjs/core'],
396
- importIndicators: ['@nestjs/core', '@nestjs/common'],
397
- },
398
- {
399
- name: 'Jest',
400
- depIndicators: ['jest'],
401
- importIndicators: ['@jest/globals', 'jest'],
402
- },
403
- {
404
- name: 'Vitest',
405
- depIndicators: ['vitest'],
406
- importIndicators: ['vitest'],
407
- },
408
- {
409
- name: 'Playwright',
410
- depIndicators: ['@playwright/test', 'playwright'],
411
- importIndicators: ['@playwright/test', 'playwright'],
412
- },
413
- {
414
- name: 'Prisma',
415
- depIndicators: ['@prisma/client', 'prisma'],
416
- importIndicators: ['@prisma/client'],
417
- },
418
- {
419
- name: 'TypeORM',
420
- depIndicators: ['typeorm'],
421
- importIndicators: ['typeorm'],
422
- },
423
- {
424
- name: 'Tailwind CSS',
425
- depIndicators: ['tailwindcss'],
426
- importIndicators: [],
427
- },
428
- {
429
- name: 'Electron',
430
- depIndicators: ['electron'],
431
- importIndicators: ['electron'],
432
- },
433
- ];
434
- for (const rule of frameworkRules) {
435
- const evidence = [];
436
- // Check dependencies
437
- for (const dep of rule.depIndicators) {
438
- if (depNames.has(dep)) {
439
- evidence.push(`Dependency: ${dep}`);
440
- }
441
- }
442
- // Check imports
443
- for (const imp of rule.importIndicators) {
444
- if (importModules.has(imp)) {
445
- evidence.push(`Import: ${imp}`);
446
- }
447
- }
448
- if (evidence.length > 0) {
449
- // Calculate confidence based on evidence
450
- const confidence = Math.min(1, evidence.length * 0.4);
451
- frameworks.push({
452
- name: rule.name,
453
- confidence,
454
- evidence,
455
- });
456
- }
457
- }
458
- // Sort by confidence
459
- frameworks.sort((a, b) => b.confidence - a.confidence);
460
- return frameworks;
461
- }
462
154
  /**
463
155
  * Get a summary of the codebase for skill matching
464
156
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CodebaseAnalyzer.js","sourceRoot":"","sources":["../../../src/analysis/CodebaseAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodebaseAnalyzer.js","sourceRoot":"","sources":["../../../src/analysis/CodebaseAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * SMI-600: Framework Detection
3
+ * SMI-1189: Extracted from CodebaseAnalyzer.ts
4
+ *
5
+ * Detects frameworks and libraries used in a codebase
6
+ * based on imports and dependencies.
7
+ */
8
+ import type { ImportInfo, DependencyInfo, FrameworkInfo } from './types.js';
9
+ /**
10
+ * Framework detection rule
11
+ */
12
+ export interface FrameworkRule {
13
+ name: string;
14
+ depIndicators: string[];
15
+ importIndicators: string[];
16
+ }
17
+ /**
18
+ * Built-in framework detection rules
19
+ */
20
+ export declare const FRAMEWORK_RULES: FrameworkRule[];
21
+ /**
22
+ * Detect frameworks based on imports and dependencies
23
+ *
24
+ * @param imports - All imports found in the codebase
25
+ * @param dependencies - Dependencies from package.json
26
+ * @param rules - Optional custom framework rules (defaults to FRAMEWORK_RULES)
27
+ * @returns Array of detected frameworks sorted by confidence
28
+ */
29
+ export declare function detectFrameworks(imports: ImportInfo[], dependencies: DependencyInfo[], rules?: FrameworkRule[]): FrameworkInfo[];
30
+ /**
31
+ * Check if a specific framework is detected
32
+ *
33
+ * @param frameworkName - Name of the framework to check
34
+ * @param imports - All imports found in the codebase
35
+ * @param dependencies - Dependencies from package.json
36
+ * @returns True if the framework is detected
37
+ */
38
+ export declare function hasFramework(frameworkName: string, imports: ImportInfo[], dependencies: DependencyInfo[]): boolean;
39
+ /**
40
+ * Get the primary framework (highest confidence)
41
+ *
42
+ * @param imports - All imports found in the codebase
43
+ * @param dependencies - Dependencies from package.json
44
+ * @returns The primary framework or null if none detected
45
+ */
46
+ export declare function getPrimaryFramework(imports: ImportInfo[], dependencies: DependencyInfo[]): FrameworkInfo | null;
47
+ //# sourceMappingURL=framework-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework-detector.d.ts","sourceRoot":"","sources":["../../../src/analysis/framework-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE3E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EA4E1C,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EAAE,EACrB,YAAY,EAAE,cAAc,EAAE,EAC9B,KAAK,GAAE,aAAa,EAAoB,GACvC,aAAa,EAAE,CAqCjB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,UAAU,EAAE,EACrB,YAAY,EAAE,cAAc,EAAE,GAC7B,OAAO,CAGT;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,UAAU,EAAE,EACrB,YAAY,EAAE,cAAc,EAAE,GAC7B,aAAa,GAAG,IAAI,CAGtB"}