couchloop-eq-mcp 1.0.4 → 1.1.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 (282) hide show
  1. package/README.md +24 -11
  2. package/dist/developer/analyzers/bloat-detector.d.ts +89 -0
  3. package/dist/developer/analyzers/bloat-detector.d.ts.map +1 -0
  4. package/dist/developer/analyzers/bloat-detector.js +483 -0
  5. package/dist/developer/analyzers/bloat-detector.js.map +1 -0
  6. package/dist/developer/backup/auto-backup.d.ts +96 -0
  7. package/dist/developer/backup/auto-backup.d.ts.map +1 -0
  8. package/dist/developer/backup/auto-backup.js +346 -0
  9. package/dist/developer/backup/auto-backup.js.map +1 -0
  10. package/dist/developer/blockers/package-blocker.d.ts +33 -0
  11. package/dist/developer/blockers/package-blocker.d.ts.map +1 -0
  12. package/dist/developer/blockers/package-blocker.js +224 -0
  13. package/dist/developer/blockers/package-blocker.js.map +1 -0
  14. package/dist/developer/evaluators/ai-error-preventer.d.ts +54 -0
  15. package/dist/developer/evaluators/ai-error-preventer.d.ts.map +1 -0
  16. package/dist/developer/evaluators/ai-error-preventer.js +270 -0
  17. package/dist/developer/evaluators/ai-error-preventer.js.map +1 -0
  18. package/dist/developer/evaluators/build-context-detector.d.ts +44 -0
  19. package/dist/developer/evaluators/build-context-detector.d.ts.map +1 -0
  20. package/dist/developer/evaluators/build-context-detector.js +258 -0
  21. package/dist/developer/evaluators/build-context-detector.js.map +1 -0
  22. package/dist/developer/evaluators/package-evaluator.d.ts +37 -0
  23. package/dist/developer/evaluators/package-evaluator.d.ts.map +1 -0
  24. package/dist/developer/evaluators/package-evaluator.js +278 -0
  25. package/dist/developer/evaluators/package-evaluator.js.map +1 -0
  26. package/dist/developer/guards/file-guardian.d.ts +79 -0
  27. package/dist/developer/guards/file-guardian.d.ts.map +1 -0
  28. package/dist/developer/guards/file-guardian.js +309 -0
  29. package/dist/developer/guards/file-guardian.js.map +1 -0
  30. package/dist/developer/managers/context-manager.d.ts +61 -0
  31. package/dist/developer/managers/context-manager.d.ts.map +1 -0
  32. package/dist/developer/managers/context-manager.js +302 -0
  33. package/dist/developer/managers/context-manager.js.map +1 -0
  34. package/dist/developer/metrics/complexity-calculator.d.ts +52 -0
  35. package/dist/developer/metrics/complexity-calculator.d.ts.map +1 -0
  36. package/dist/developer/metrics/complexity-calculator.js +259 -0
  37. package/dist/developer/metrics/complexity-calculator.js.map +1 -0
  38. package/dist/developer/reports/review-summary.d.ts +49 -0
  39. package/dist/developer/reports/review-summary.d.ts.map +1 -0
  40. package/dist/developer/reports/review-summary.js +249 -0
  41. package/dist/developer/reports/review-summary.js.map +1 -0
  42. package/dist/developer/scanners/review-assistant.d.ts +41 -0
  43. package/dist/developer/scanners/review-assistant.d.ts.map +1 -0
  44. package/dist/developer/scanners/review-assistant.js +374 -0
  45. package/dist/developer/scanners/review-assistant.js.map +1 -0
  46. package/dist/developer/scanners/secret-scanner.d.ts +66 -0
  47. package/dist/developer/scanners/secret-scanner.d.ts.map +1 -0
  48. package/dist/developer/scanners/secret-scanner.js +287 -0
  49. package/dist/developer/scanners/secret-scanner.js.map +1 -0
  50. package/dist/developer/scanners/sql-injection-detector.d.ts +54 -0
  51. package/dist/developer/scanners/sql-injection-detector.d.ts.map +1 -0
  52. package/dist/developer/scanners/sql-injection-detector.js +174 -0
  53. package/dist/developer/scanners/sql-injection-detector.js.map +1 -0
  54. package/dist/developer/scanners/xss-detector.d.ts +60 -0
  55. package/dist/developer/scanners/xss-detector.d.ts.map +1 -0
  56. package/dist/developer/scanners/xss-detector.js +229 -0
  57. package/dist/developer/scanners/xss-detector.js.map +1 -0
  58. package/dist/developer/types/ai-errors.d.ts +34 -0
  59. package/dist/developer/types/ai-errors.d.ts.map +1 -0
  60. package/dist/developer/types/ai-errors.js +271 -0
  61. package/dist/developer/types/ai-errors.js.map +1 -0
  62. package/dist/developer/types/package.d.ts +32 -0
  63. package/dist/developer/types/package.d.ts.map +1 -0
  64. package/dist/developer/types/package.js +5 -0
  65. package/dist/developer/types/package.js.map +1 -0
  66. package/dist/developer/updaters/dependency-updater.d.ts +102 -0
  67. package/dist/developer/updaters/dependency-updater.d.ts.map +1 -0
  68. package/dist/developer/updaters/dependency-updater.js +472 -0
  69. package/dist/developer/updaters/dependency-updater.js.map +1 -0
  70. package/dist/developer/validators/cargo.d.ts +14 -0
  71. package/dist/developer/validators/cargo.d.ts.map +1 -0
  72. package/dist/developer/validators/cargo.js +132 -0
  73. package/dist/developer/validators/cargo.js.map +1 -0
  74. package/dist/developer/validators/gem.d.ts +14 -0
  75. package/dist/developer/validators/gem.d.ts.map +1 -0
  76. package/dist/developer/validators/gem.js +85 -0
  77. package/dist/developer/validators/gem.js.map +1 -0
  78. package/dist/developer/validators/go.d.ts +14 -0
  79. package/dist/developer/validators/go.d.ts.map +1 -0
  80. package/dist/developer/validators/go.js +138 -0
  81. package/dist/developer/validators/go.js.map +1 -0
  82. package/dist/developer/validators/maven.d.ts +14 -0
  83. package/dist/developer/validators/maven.d.ts.map +1 -0
  84. package/dist/developer/validators/maven.js +99 -0
  85. package/dist/developer/validators/maven.js.map +1 -0
  86. package/dist/developer/validators/npm.d.ts +14 -0
  87. package/dist/developer/validators/npm.d.ts.map +1 -0
  88. package/dist/developer/validators/npm.js +96 -0
  89. package/dist/developer/validators/npm.js.map +1 -0
  90. package/dist/developer/validators/nuget.d.ts +15 -0
  91. package/dist/developer/validators/nuget.d.ts.map +1 -0
  92. package/dist/developer/validators/nuget.js +107 -0
  93. package/dist/developer/validators/nuget.js.map +1 -0
  94. package/dist/developer/validators/pypi.d.ts +14 -0
  95. package/dist/developer/validators/pypi.d.ts.map +1 -0
  96. package/dist/developer/validators/pypi.js +118 -0
  97. package/dist/developer/validators/pypi.js.map +1 -0
  98. package/dist/developer/validators/registry-manager.d.ts +37 -0
  99. package/dist/developer/validators/registry-manager.d.ts.map +1 -0
  100. package/dist/developer/validators/registry-manager.js +89 -0
  101. package/dist/developer/validators/registry-manager.js.map +1 -0
  102. package/dist/developer/validators/version-checker.d.ts +145 -0
  103. package/dist/developer/validators/version-checker.d.ts.map +1 -0
  104. package/dist/developer/validators/version-checker.js +529 -0
  105. package/dist/developer/validators/version-checker.js.map +1 -0
  106. package/dist/server/index.js.map +1 -1
  107. package/dist/server/middleware/auth.d.ts +7 -9
  108. package/dist/server/middleware/auth.d.ts.map +1 -1
  109. package/dist/server/middleware/auth.js.map +1 -1
  110. package/dist/tools/check-versions.d.ts +100 -0
  111. package/dist/tools/check-versions.d.ts.map +1 -0
  112. package/dist/tools/check-versions.js +328 -0
  113. package/dist/tools/check-versions.js.map +1 -0
  114. package/dist/tools/detect-code-smell.d.ts +9 -0
  115. package/dist/tools/detect-code-smell.d.ts.map +1 -0
  116. package/dist/tools/detect-code-smell.js +231 -0
  117. package/dist/tools/detect-code-smell.js.map +1 -0
  118. package/dist/tools/index.d.ts +471 -0
  119. package/dist/tools/index.d.ts.map +1 -1
  120. package/dist/tools/index.js +178 -0
  121. package/dist/tools/index.js.map +1 -1
  122. package/dist/tools/journey.js +1 -1
  123. package/dist/tools/journey.js.map +1 -1
  124. package/dist/tools/pre-review-code.d.ts +71 -0
  125. package/dist/tools/pre-review-code.d.ts.map +1 -0
  126. package/dist/tools/pre-review-code.js +159 -0
  127. package/dist/tools/pre-review-code.js.map +1 -0
  128. package/dist/tools/preserve-context.d.ts +27 -0
  129. package/dist/tools/preserve-context.d.ts.map +1 -0
  130. package/dist/tools/preserve-context.js +98 -0
  131. package/dist/tools/preserve-context.js.map +1 -0
  132. package/dist/tools/protect-files.d.ts +224 -0
  133. package/dist/tools/protect-files.d.ts.map +1 -0
  134. package/dist/tools/protect-files.js +286 -0
  135. package/dist/tools/protect-files.js.map +1 -0
  136. package/dist/tools/scan-security.d.ts +38 -0
  137. package/dist/tools/scan-security.d.ts.map +1 -0
  138. package/dist/tools/scan-security.js +237 -0
  139. package/dist/tools/scan-security.js.map +1 -0
  140. package/dist/tools/validate_packages.d.ts +8 -0
  141. package/dist/tools/validate_packages.d.ts.map +1 -0
  142. package/dist/tools/validate_packages.js +159 -0
  143. package/dist/tools/validate_packages.js.map +1 -0
  144. package/dist/types/auth.d.ts.map +1 -1
  145. package/dist/types/auth.js +1 -2
  146. package/dist/types/auth.js.map +1 -1
  147. package/dist/types/context.d.ts +46 -0
  148. package/dist/types/context.d.ts.map +1 -0
  149. package/dist/types/context.js +17 -0
  150. package/dist/types/context.js.map +1 -0
  151. package/dist/types/file-protection.d.ts +50 -0
  152. package/dist/types/file-protection.d.ts.map +1 -0
  153. package/dist/types/file-protection.js +9 -0
  154. package/dist/types/file-protection.js.map +1 -0
  155. package/dist/utils/errorHandler.d.ts.map +1 -1
  156. package/dist/utils/errorHandler.js +2 -1
  157. package/dist/utils/errorHandler.js.map +1 -1
  158. package/package.json +30 -4
  159. package/dist/db/migrate.d.ts +0 -4
  160. package/dist/db/migrate.d.ts.map +0 -1
  161. package/dist/db/migrate.js +0 -34
  162. package/dist/db/migrate.js.map +0 -1
  163. package/dist/db/migrations/schema.d.ts +0 -1074
  164. package/dist/db/migrations/schema.d.ts.map +0 -1
  165. package/dist/db/migrations/schema.js +0 -160
  166. package/dist/db/migrations/schema.js.map +0 -1
  167. package/dist/db/schema.d.ts +0 -1576
  168. package/dist/db/schema.d.ts.map +0 -1
  169. package/dist/db/schema.js +0 -204
  170. package/dist/db/schema.js.map +0 -1
  171. package/dist/db/seed.d.ts +0 -4
  172. package/dist/db/seed.d.ts.map +0 -1
  173. package/dist/db/seed.js +0 -57
  174. package/dist/db/seed.js.map +0 -1
  175. package/dist/db/seedOAuth.d.ts +0 -4
  176. package/dist/db/seedOAuth.d.ts.map +0 -1
  177. package/dist/db/seedOAuth.js +0 -76
  178. package/dist/db/seedOAuth.js.map +0 -1
  179. package/dist/governance/config.d.ts +0 -66
  180. package/dist/governance/config.d.ts.map +0 -1
  181. package/dist/governance/config.js +0 -238
  182. package/dist/governance/config.js.map +0 -1
  183. package/dist/governance/detectors/hallucination.d.ts +0 -61
  184. package/dist/governance/detectors/hallucination.d.ts.map +0 -1
  185. package/dist/governance/detectors/hallucination.js +0 -338
  186. package/dist/governance/detectors/hallucination.js.map +0 -1
  187. package/dist/governance/detectors/inconsistency.d.ts +0 -99
  188. package/dist/governance/detectors/inconsistency.d.ts.map +0 -1
  189. package/dist/governance/detectors/inconsistency.js +0 -548
  190. package/dist/governance/detectors/inconsistency.js.map +0 -1
  191. package/dist/governance/detectors/toneDrift.d.ts +0 -63
  192. package/dist/governance/detectors/toneDrift.d.ts.map +0 -1
  193. package/dist/governance/detectors/toneDrift.js +0 -421
  194. package/dist/governance/detectors/toneDrift.js.map +0 -1
  195. package/dist/governance/detectors/unsafeReasoning.d.ts +0 -54
  196. package/dist/governance/detectors/unsafeReasoning.d.ts.map +0 -1
  197. package/dist/governance/detectors/unsafeReasoning.js +0 -473
  198. package/dist/governance/detectors/unsafeReasoning.js.map +0 -1
  199. package/dist/governance/evaluationEngine.d.ts +0 -112
  200. package/dist/governance/evaluationEngine.d.ts.map +0 -1
  201. package/dist/governance/evaluationEngine.js +0 -265
  202. package/dist/governance/evaluationEngine.js.map +0 -1
  203. package/dist/governance/intervention.d.ts +0 -81
  204. package/dist/governance/intervention.d.ts.map +0 -1
  205. package/dist/governance/intervention.js +0 -405
  206. package/dist/governance/intervention.js.map +0 -1
  207. package/dist/server/oauth/anomalyDetection.d.ts +0 -146
  208. package/dist/server/oauth/anomalyDetection.d.ts.map +0 -1
  209. package/dist/server/oauth/anomalyDetection.js +0 -405
  210. package/dist/server/oauth/anomalyDetection.js.map +0 -1
  211. package/dist/server/oauth/authServer.d.ts +0 -61
  212. package/dist/server/oauth/authServer.d.ts.map +0 -1
  213. package/dist/server/oauth/authServer.js +0 -283
  214. package/dist/server/oauth/authServer.js.map +0 -1
  215. package/dist/server/oauth/dpop.d.ts +0 -135
  216. package/dist/server/oauth/dpop.d.ts.map +0 -1
  217. package/dist/server/oauth/dpop.js +0 -338
  218. package/dist/server/oauth/dpop.js.map +0 -1
  219. package/dist/server/oauth/gdpr/consent.d.ts +0 -173
  220. package/dist/server/oauth/gdpr/consent.d.ts.map +0 -1
  221. package/dist/server/oauth/gdpr/consent.js +0 -388
  222. package/dist/server/oauth/gdpr/consent.js.map +0 -1
  223. package/dist/server/oauth/gdpr/dataPortability.d.ts +0 -214
  224. package/dist/server/oauth/gdpr/dataPortability.d.ts.map +0 -1
  225. package/dist/server/oauth/gdpr/dataPortability.js +0 -486
  226. package/dist/server/oauth/gdpr/dataPortability.js.map +0 -1
  227. package/dist/server/oauth/gdpr/index.d.ts +0 -103
  228. package/dist/server/oauth/gdpr/index.d.ts.map +0 -1
  229. package/dist/server/oauth/gdpr/index.js +0 -273
  230. package/dist/server/oauth/gdpr/index.js.map +0 -1
  231. package/dist/server/oauth/gdpr/rightToErasure.d.ts +0 -184
  232. package/dist/server/oauth/gdpr/rightToErasure.d.ts.map +0 -1
  233. package/dist/server/oauth/gdpr/rightToErasure.js +0 -527
  234. package/dist/server/oauth/gdpr/rightToErasure.js.map +0 -1
  235. package/dist/server/oauth/monitoring/securityMonitor.d.ts +0 -218
  236. package/dist/server/oauth/monitoring/securityMonitor.d.ts.map +0 -1
  237. package/dist/server/oauth/monitoring/securityMonitor.js +0 -615
  238. package/dist/server/oauth/monitoring/securityMonitor.js.map +0 -1
  239. package/dist/server/oauth/pkce.d.ts +0 -61
  240. package/dist/server/oauth/pkce.d.ts.map +0 -1
  241. package/dist/server/oauth/pkce.js +0 -157
  242. package/dist/server/oauth/pkce.js.map +0 -1
  243. package/dist/server/oauth/providers/base.d.ts +0 -147
  244. package/dist/server/oauth/providers/base.d.ts.map +0 -1
  245. package/dist/server/oauth/providers/base.js +0 -312
  246. package/dist/server/oauth/providers/base.js.map +0 -1
  247. package/dist/server/oauth/providers/github.d.ts +0 -55
  248. package/dist/server/oauth/providers/github.d.ts.map +0 -1
  249. package/dist/server/oauth/providers/github.js +0 -225
  250. package/dist/server/oauth/providers/github.js.map +0 -1
  251. package/dist/server/oauth/providers/google.d.ts +0 -49
  252. package/dist/server/oauth/providers/google.d.ts.map +0 -1
  253. package/dist/server/oauth/providers/google.js +0 -153
  254. package/dist/server/oauth/providers/google.js.map +0 -1
  255. package/dist/server/oauth/providers/index.d.ts +0 -9
  256. package/dist/server/oauth/providers/index.d.ts.map +0 -1
  257. package/dist/server/oauth/providers/index.js +0 -24
  258. package/dist/server/oauth/providers/index.js.map +0 -1
  259. package/dist/server/oauth/refreshTokenRotation.d.ts +0 -114
  260. package/dist/server/oauth/refreshTokenRotation.d.ts.map +0 -1
  261. package/dist/server/oauth/refreshTokenRotation.js +0 -344
  262. package/dist/server/oauth/refreshTokenRotation.js.map +0 -1
  263. package/dist/server/oauth/security.d.ts +0 -101
  264. package/dist/server/oauth/security.d.ts.map +0 -1
  265. package/dist/server/oauth/security.js +0 -268
  266. package/dist/server/oauth/security.js.map +0 -1
  267. package/dist/server/oauth/tokenEncryption.d.ts +0 -80
  268. package/dist/server/oauth/tokenEncryption.d.ts.map +0 -1
  269. package/dist/server/oauth/tokenEncryption.js +0 -218
  270. package/dist/server/oauth/tokenEncryption.js.map +0 -1
  271. package/dist/tools/sendMessage-complex-backup.d.ts +0 -6
  272. package/dist/tools/sendMessage-complex-backup.d.ts.map +0 -1
  273. package/dist/tools/sendMessage-complex-backup.js +0 -545
  274. package/dist/tools/sendMessage-complex-backup.js.map +0 -1
  275. package/dist/tools/sendMessage-revised.d.ts +0 -11
  276. package/dist/tools/sendMessage-revised.d.ts.map +0 -1
  277. package/dist/tools/sendMessage-revised.js +0 -429
  278. package/dist/tools/sendMessage-revised.js.map +0 -1
  279. package/dist/tools/sendMessage-truly-simple.d.ts +0 -8
  280. package/dist/tools/sendMessage-truly-simple.d.ts.map +0 -1
  281. package/dist/tools/sendMessage-truly-simple.js +0 -299
  282. package/dist/tools/sendMessage-truly-simple.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../../src/developer/validators/npm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * NuGet Registry Validator
3
+ * Validates .NET/C# package existence from nuget.org
4
+ */
5
+ import type { PackageInfo, RegistryValidator } from '../types/package.js';
6
+ export declare class NuGetValidator implements RegistryValidator {
7
+ private readonly registryUrl;
8
+ private readonly searchUrl;
9
+ private cache;
10
+ private readonly cacheTimeout;
11
+ validate(packageName: string, version?: string): Promise<PackageInfo>;
12
+ search(query: string, limit?: number): Promise<PackageInfo[]>;
13
+ clearCache(): void;
14
+ }
15
+ //# sourceMappingURL=nuget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nuget.d.ts","sourceRoot":"","sources":["../../../src/developer/validators/nuget.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,qBAAa,cAAe,YAAW,iBAAiB;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAExC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAqFrE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA2B/D,UAAU,IAAI,IAAI;CAGnB"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * NuGet Registry Validator
3
+ * Validates .NET/C# package existence from nuget.org
4
+ */
5
+ export class NuGetValidator {
6
+ registryUrl = 'https://api.nuget.org/v3-flatcontainer';
7
+ searchUrl = 'https://api-v2v3search-0.nuget.org/query';
8
+ cache = new Map();
9
+ cacheTimeout = 5 * 60 * 1000; // 5 minutes
10
+ async validate(packageName, version) {
11
+ const normalizedName = packageName.toLowerCase();
12
+ const cacheKey = `${normalizedName}${version ? `@${version}` : ''}`;
13
+ const cached = this.cache.get(cacheKey);
14
+ if (cached && Date.now() - cached.timestamp < this.cacheTimeout) {
15
+ return cached.data;
16
+ }
17
+ try {
18
+ // NuGet uses a specific URL structure
19
+ const indexUrl = `${this.registryUrl}/${normalizedName}/index.json`;
20
+ const response = await fetch(indexUrl);
21
+ if (response.status === 404) {
22
+ const result = {
23
+ name: packageName,
24
+ version,
25
+ registry: 'nuget',
26
+ exists: false,
27
+ lastChecked: new Date()
28
+ };
29
+ this.cache.set(cacheKey, { data: result, timestamp: Date.now() });
30
+ return result;
31
+ }
32
+ if (!response.ok) {
33
+ throw new Error(`Registry returned ${response.status}`);
34
+ }
35
+ const data = await response.json();
36
+ const versions = data.versions || [];
37
+ if (versions.length === 0) {
38
+ const result = {
39
+ name: packageName,
40
+ version,
41
+ registry: 'nuget',
42
+ exists: false,
43
+ lastChecked: new Date()
44
+ };
45
+ this.cache.set(cacheKey, { data: result, timestamp: Date.now() });
46
+ return result;
47
+ }
48
+ // Check if specific version exists
49
+ if (version && !versions.includes(version)) {
50
+ return {
51
+ name: packageName,
52
+ version,
53
+ registry: 'nuget',
54
+ exists: false,
55
+ latestVersion: versions[versions.length - 1],
56
+ lastChecked: new Date()
57
+ };
58
+ }
59
+ const result = {
60
+ name: packageName,
61
+ version: version || versions[versions.length - 1],
62
+ registry: 'nuget',
63
+ exists: true,
64
+ latestVersion: versions[versions.length - 1],
65
+ lastChecked: new Date()
66
+ };
67
+ this.cache.set(cacheKey, { data: result, timestamp: Date.now() });
68
+ return result;
69
+ }
70
+ catch (error) {
71
+ console.error(`Failed to validate NuGet package ${packageName}:`, error);
72
+ return {
73
+ name: packageName,
74
+ version,
75
+ registry: 'nuget',
76
+ exists: false,
77
+ warning: 'Could not verify package existence',
78
+ lastChecked: new Date()
79
+ };
80
+ }
81
+ }
82
+ async search(query, limit = 10) {
83
+ try {
84
+ const response = await fetch(`${this.searchUrl}?q=${encodeURIComponent(query)}&take=${limit}`);
85
+ if (!response.ok) {
86
+ return [];
87
+ }
88
+ const data = await response.json();
89
+ return (data.data || []).map((pkg) => ({
90
+ name: pkg.id,
91
+ version: pkg.version,
92
+ registry: 'nuget',
93
+ exists: true,
94
+ latestVersion: pkg.version,
95
+ lastChecked: new Date()
96
+ }));
97
+ }
98
+ catch (error) {
99
+ console.error(`Failed to search NuGet for ${query}:`, error);
100
+ return [];
101
+ }
102
+ }
103
+ clearCache() {
104
+ this.cache.clear();
105
+ }
106
+ }
107
+ //# sourceMappingURL=nuget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nuget.js","sourceRoot":"","sources":["../../../src/developer/validators/nuget.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,cAAc;IACR,WAAW,GAAG,wCAAwC,CAAC;IACvD,SAAS,GAAG,0CAA0C,CAAC;IAChE,KAAK,GAAG,IAAI,GAAG,EAAoD,CAAC;IAC3D,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;IAE3D,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,OAAgB;QAClD,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,GAAG,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChE,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,cAAc,aAAa,CAAC;YACpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAgB;oBAC1B,IAAI,EAAE,WAAW;oBACjB,OAAO;oBACP,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,IAAI,IAAI,EAAE;iBACxB,CAAC;gBAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClE,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAgB;oBAC1B,IAAI,EAAE,WAAW;oBACjB,OAAO;oBACP,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,IAAI,IAAI,EAAE;iBACxB,CAAC;gBAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClE,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,mCAAmC;YACnC,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,OAAO;oBACL,IAAI,EAAE,WAAW;oBACjB,OAAO;oBACP,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,KAAK;oBACb,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC5C,WAAW,EAAE,IAAI,IAAI,EAAE;iBACxB,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAgB;gBAC1B,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;gBACjD,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C,WAAW,EAAE,IAAI,IAAI,EAAE;aACxB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC;QAEhB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC;YAEzE,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,OAAO;gBACP,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,oCAAoC;gBAC7C,WAAW,EAAE,IAAI,IAAI,EAAE;aACT,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,SAAS,MAAM,kBAAkB,CAAC,KAAK,CAAC,SAAS,KAAK,EAAE,CACjE,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;YAE1C,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,GAAG,CAAC,EAAE;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,OAAgB;gBAC1B,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE,GAAG,CAAC,OAAO;gBAC1B,WAAW,EAAE,IAAI,IAAI,EAAE;aACxB,CAAC,CAAC,CAAC;QAEN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * PyPI Registry Validator
3
+ * Validates Python package existence from PyPI registry
4
+ */
5
+ import type { PackageInfo, RegistryValidator } from '../types/package.js';
6
+ export declare class PyPiValidator implements RegistryValidator {
7
+ private readonly registryUrl;
8
+ private cache;
9
+ private readonly cacheTimeout;
10
+ validate(packageName: string, version?: string): Promise<PackageInfo>;
11
+ search(query: string, limit?: number): Promise<PackageInfo[]>;
12
+ clearCache(): void;
13
+ }
14
+ //# sourceMappingURL=pypi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pypi.d.ts","sourceRoot":"","sources":["../../../src/developer/validators/pypi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,qBAAa,aAAc,YAAW,iBAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAExC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAyErE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA+C/D,UAAU,IAAI,IAAI;CAGnB"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * PyPI Registry Validator
3
+ * Validates Python package existence from PyPI registry
4
+ */
5
+ export class PyPiValidator {
6
+ registryUrl = 'https://pypi.org/pypi';
7
+ cache = new Map();
8
+ cacheTimeout = 5 * 60 * 1000; // 5 minutes
9
+ async validate(packageName, version) {
10
+ // Normalize package name (PyPI uses hyphens, but allows underscores)
11
+ const normalizedName = packageName.toLowerCase().replace(/_/g, '-');
12
+ const cacheKey = `${normalizedName}${version ? `@${version}` : ''}`;
13
+ const cached = this.cache.get(cacheKey);
14
+ if (cached && Date.now() - cached.timestamp < this.cacheTimeout) {
15
+ return cached.data;
16
+ }
17
+ try {
18
+ const url = version
19
+ ? `${this.registryUrl}/${normalizedName}/${version}/json`
20
+ : `${this.registryUrl}/${normalizedName}/json`;
21
+ const response = await fetch(url);
22
+ if (response.status === 404) {
23
+ const result = {
24
+ name: packageName,
25
+ version,
26
+ registry: 'pypi',
27
+ exists: false,
28
+ lastChecked: new Date()
29
+ };
30
+ this.cache.set(cacheKey, { data: result, timestamp: Date.now() });
31
+ return result;
32
+ }
33
+ if (!response.ok) {
34
+ throw new Error(`Registry returned ${response.status}`);
35
+ }
36
+ const data = await response.json();
37
+ const result = {
38
+ name: packageName,
39
+ version: version || data.info.version,
40
+ registry: 'pypi',
41
+ exists: true,
42
+ latestVersion: data.info.version,
43
+ deprecated: data.info.yanked || false,
44
+ lastChecked: new Date()
45
+ };
46
+ // Check for vulnerabilities if available
47
+ if (data.vulnerabilities?.length > 0) {
48
+ result.securityIssues = data.vulnerabilities.map((vuln) => ({
49
+ severity: vuln.severity || 'medium',
50
+ description: vuln.description,
51
+ cve: vuln.cve,
52
+ fixedIn: vuln.fixed_in?.[0]
53
+ }));
54
+ }
55
+ this.cache.set(cacheKey, { data: result, timestamp: Date.now() });
56
+ return result;
57
+ }
58
+ catch (error) {
59
+ console.error(`Failed to validate PyPI package ${packageName}:`, error);
60
+ return {
61
+ name: packageName,
62
+ version,
63
+ registry: 'pypi',
64
+ exists: false,
65
+ warning: 'Could not verify package existence',
66
+ lastChecked: new Date()
67
+ };
68
+ }
69
+ }
70
+ async search(query, limit = 10) {
71
+ try {
72
+ // PyPI doesn't have a great search API, but we can try exact matches
73
+ // and common variations
74
+ const variations = [
75
+ query,
76
+ query.replace(/_/g, '-'),
77
+ query.replace(/-/g, '_'),
78
+ query.toLowerCase(),
79
+ query.toLowerCase().replace(/_/g, '-'),
80
+ ];
81
+ const results = [];
82
+ const seen = new Set();
83
+ for (const variant of variations) {
84
+ if (results.length >= limit)
85
+ break;
86
+ try {
87
+ const response = await fetch(`${this.registryUrl}/${variant}/json`);
88
+ if (response.ok) {
89
+ const data = await response.json();
90
+ if (!seen.has(data.info.name)) {
91
+ seen.add(data.info.name);
92
+ results.push({
93
+ name: data.info.name,
94
+ version: data.info.version,
95
+ registry: 'pypi',
96
+ exists: true,
97
+ latestVersion: data.info.version,
98
+ lastChecked: new Date()
99
+ });
100
+ }
101
+ }
102
+ }
103
+ catch {
104
+ // Ignore individual failures
105
+ }
106
+ }
107
+ return results.slice(0, limit);
108
+ }
109
+ catch (error) {
110
+ console.error(`Failed to search PyPI registry:`, error);
111
+ return [];
112
+ }
113
+ }
114
+ clearCache() {
115
+ this.cache.clear();
116
+ }
117
+ }
118
+ //# sourceMappingURL=pypi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pypi.js","sourceRoot":"","sources":["../../../src/developer/validators/pypi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Registry Manager - Unified interface for all package validators
3
+ */
4
+ import type { PackageInfo } from '../types/package.js';
5
+ export declare class RegistryManager {
6
+ private validators;
7
+ constructor();
8
+ /**
9
+ * Detect registry type from package reference
10
+ */
11
+ detectRegistry(packageRef: string): string;
12
+ /**
13
+ * Validate a package across registries
14
+ */
15
+ validate(packageName: string, registry?: string, version?: string): Promise<PackageInfo>;
16
+ /**
17
+ * Validate multiple packages in parallel
18
+ */
19
+ validateBatch(packages: Array<{
20
+ name: string;
21
+ registry?: string;
22
+ version?: string;
23
+ }>): Promise<PackageInfo[]>;
24
+ /**
25
+ * Search for packages across a specific registry
26
+ */
27
+ search(query: string, registry: string, limit?: number): Promise<PackageInfo[]>;
28
+ /**
29
+ * Find similar package names (for typo correction)
30
+ */
31
+ findSimilar(packageName: string, registry: string): Promise<string[]>;
32
+ /**
33
+ * Clear all caches
34
+ */
35
+ clearCaches(): void;
36
+ }
37
+ //# sourceMappingURL=registry-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-manager.d.ts","sourceRoot":"","sources":["../../../src/developer/validators/registry-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,qBAAqB,CAAC;AAS1E,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAiC;;IAanD;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAY1C;;OAEG;IACG,QAAQ,CACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC;IAkBvB;;OAEG;IACG,aAAa,CACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACrE,OAAO,CAAC,WAAW,EAAE,CAAC;IAQzB;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,GACT,OAAO,CAAC,WAAW,EAAE,CAAC;IASzB;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC;IAMpB;;OAEG;IACH,WAAW,IAAI,IAAI;CAOpB"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Registry Manager - Unified interface for all package validators
3
+ */
4
+ import { NpmValidator } from './npm.js';
5
+ import { PyPiValidator } from './pypi.js';
6
+ import { MavenValidator } from './maven.js';
7
+ import { CargoValidator } from './cargo.js';
8
+ import { GemValidator } from './gem.js';
9
+ import { NuGetValidator } from './nuget.js';
10
+ import { GoValidator } from './go.js';
11
+ export class RegistryManager {
12
+ validators;
13
+ constructor() {
14
+ this.validators = new Map();
15
+ this.validators.set('npm', new NpmValidator());
16
+ this.validators.set('pypi', new PyPiValidator());
17
+ this.validators.set('maven', new MavenValidator());
18
+ this.validators.set('cargo', new CargoValidator());
19
+ this.validators.set('gem', new GemValidator());
20
+ this.validators.set('nuget', new NuGetValidator());
21
+ this.validators.set('go', new GoValidator());
22
+ }
23
+ /**
24
+ * Detect registry type from package reference
25
+ */
26
+ detectRegistry(packageRef) {
27
+ // Maven packages contain colons
28
+ if (packageRef.includes(':')) {
29
+ return 'maven';
30
+ }
31
+ // Python packages often have hyphens or underscores
32
+ // But this is not definitive, so we need context
33
+ // For now, default to npm for JavaScript context
34
+ return 'npm';
35
+ }
36
+ /**
37
+ * Validate a package across registries
38
+ */
39
+ async validate(packageName, registry, version) {
40
+ const targetRegistry = registry || this.detectRegistry(packageName);
41
+ const validator = this.validators.get(targetRegistry);
42
+ if (!validator) {
43
+ return {
44
+ name: packageName,
45
+ version,
46
+ registry: targetRegistry,
47
+ exists: false,
48
+ warning: `Unknown registry: ${targetRegistry}`,
49
+ lastChecked: new Date()
50
+ };
51
+ }
52
+ return validator.validate(packageName, version);
53
+ }
54
+ /**
55
+ * Validate multiple packages in parallel
56
+ */
57
+ async validateBatch(packages) {
58
+ return Promise.all(packages.map(pkg => this.validate(pkg.name, pkg.registry, pkg.version)));
59
+ }
60
+ /**
61
+ * Search for packages across a specific registry
62
+ */
63
+ async search(query, registry, limit = 10) {
64
+ const validator = this.validators.get(registry);
65
+ if (!validator) {
66
+ return [];
67
+ }
68
+ return validator.search(query, limit);
69
+ }
70
+ /**
71
+ * Find similar package names (for typo correction)
72
+ */
73
+ async findSimilar(packageName, registry) {
74
+ // Simple approach: search for the package name
75
+ const results = await this.search(packageName, registry, 5);
76
+ return results.map(r => r.name);
77
+ }
78
+ /**
79
+ * Clear all caches
80
+ */
81
+ clearCaches() {
82
+ this.validators.forEach(validator => {
83
+ if ('clearCache' in validator) {
84
+ validator.clearCache();
85
+ }
86
+ });
87
+ }
88
+ }
89
+ //# sourceMappingURL=registry-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-manager.js","sourceRoot":"","sources":["../../../src/developer/validators/registry-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Version Checker - Validates library versions against latest and detects deprecated APIs
3
+ * Supports npm, pypi, maven, cargo, gem, nuget, and go registries
4
+ */
5
+ export interface VersionInfo {
6
+ packageName: string;
7
+ currentVersion?: string;
8
+ latestVersion?: string;
9
+ isOutdated: boolean;
10
+ isDeprecated: boolean;
11
+ majorVersionsBehind?: number;
12
+ minorVersionsBehind?: number;
13
+ securityVulnerabilities: SecurityVulnerability[];
14
+ breakingChanges?: BreakingChange[];
15
+ deprecationNotice?: DeprecationNotice;
16
+ updateComplexity: 'low' | 'medium' | 'high';
17
+ migrationPath?: string[];
18
+ lastChecked: Date;
19
+ registry: string;
20
+ }
21
+ export interface SecurityVulnerability {
22
+ id: string;
23
+ severity: 'low' | 'medium' | 'high' | 'critical';
24
+ description: string;
25
+ fixedIn: string;
26
+ cve?: string;
27
+ affectedVersions: string[];
28
+ }
29
+ export interface BreakingChange {
30
+ fromVersion: string;
31
+ toVersion: string;
32
+ description: string;
33
+ impact: string;
34
+ migrationGuide?: string;
35
+ }
36
+ export interface DeprecationNotice {
37
+ deprecatedSince: string;
38
+ removedIn?: string;
39
+ replacement?: string;
40
+ reason: string;
41
+ timeline: 'immediate' | 'soon' | 'planned';
42
+ }
43
+ export interface DeprecatedAPIPattern {
44
+ pattern: string;
45
+ regex: RegExp;
46
+ replacement: string;
47
+ library: string;
48
+ deprecatedSince: string;
49
+ removedIn?: string;
50
+ reason: string;
51
+ }
52
+ export declare class VersionChecker {
53
+ private npmValidator;
54
+ private pypiValidator;
55
+ private mavenValidator;
56
+ private cargoValidator;
57
+ private gemValidator;
58
+ private nugetValidator;
59
+ private goValidator;
60
+ private versionCache;
61
+ private readonly cacheTimeout;
62
+ private deprecatedAPIs;
63
+ constructor();
64
+ /**
65
+ * Check version information for a package
66
+ */
67
+ checkVersion(packageName: string, currentVersion?: string, registry?: 'npm' | 'pypi' | 'maven' | 'cargo' | 'gem' | 'nuget' | 'go'): Promise<VersionInfo>;
68
+ /**
69
+ * Check multiple packages at once
70
+ */
71
+ checkVersionsBatch(packages: Array<{
72
+ name: string;
73
+ version?: string;
74
+ registry?: string;
75
+ }>): Promise<VersionInfo[]>;
76
+ /**
77
+ * Detect deprecated API patterns in code
78
+ */
79
+ detectDeprecatedAPIs(code: string, language: string): DeprecatedAPIPattern[];
80
+ /**
81
+ * Get migration path from current to target version
82
+ */
83
+ getMigrationPath(packageName: string, fromVersion: string, toVersion: string, registry?: string): Promise<string[]>;
84
+ /**
85
+ * Check for security vulnerabilities in a specific version
86
+ */
87
+ checkSecurityVulnerabilities(packageName: string, version: string, registry?: string): Promise<SecurityVulnerability[]>;
88
+ /**
89
+ * Get recommended version based on compatibility and security
90
+ */
91
+ getRecommendedVersion(packageName: string, _minCompatibility?: string, registry?: string): Promise<string | null>;
92
+ /**
93
+ * Extract version from package.json or requirements.txt style strings
94
+ */
95
+ extractPackagesWithVersions(content: string, language: 'npm' | 'python' | 'maven' | 'cargo' | 'ruby' | 'dotnet' | 'go'): Array<{
96
+ name: string;
97
+ version?: string;
98
+ }>;
99
+ /**
100
+ * Compare two semantic versions
101
+ * Returns: -1 if v1 < v2, 0 if equal, 1 if v1 > v2
102
+ */
103
+ private compareVersions;
104
+ /**
105
+ * Find a safe version without critical vulnerabilities
106
+ */
107
+ private findSafeVersion;
108
+ /**
109
+ * Fetch version information from registry
110
+ */
111
+ private fetchVersionInfo;
112
+ /**
113
+ * Fetch release history and changelog
114
+ */
115
+ private fetchReleaseHistory;
116
+ /**
117
+ * Calculate how many major/minor versions behind
118
+ */
119
+ private calculateVersionsBehind;
120
+ /**
121
+ * Calculate update complexity based on version distance
122
+ */
123
+ private calculateUpdateComplexity;
124
+ /**
125
+ * Get appropriate validator for registry
126
+ */
127
+ private getValidator;
128
+ /**
129
+ * Detect registry from package name patterns
130
+ */
131
+ private detectRegistry;
132
+ /**
133
+ * Check if deprecated API pattern is for a specific language
134
+ */
135
+ private isApiForLanguage;
136
+ /**
137
+ * Initialize common deprecated API patterns
138
+ */
139
+ private initializeDeprecatedAPIs;
140
+ /**
141
+ * Clear all caches
142
+ */
143
+ clearCache(): void;
144
+ }
145
+ //# sourceMappingURL=version-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../../src/developer/validators/version-checker.ts"],"names":[],"mappings":"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"}