@dollhousemcp/mcp-server 1.5.2 → 1.6.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 (272) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +494 -111
  3. package/data/agents/code-reviewer.md +8 -1
  4. package/data/agents/research-assistant.md +8 -1
  5. package/data/agents/task-manager.md +8 -1
  6. package/data/ensembles/business-advisor.md +8 -1
  7. package/data/ensembles/creative-studio.md +8 -1
  8. package/data/ensembles/development-team.md +8 -1
  9. package/data/ensembles/security-analysis-team.md +8 -1
  10. package/data/memories/conversation-history.md +8 -1
  11. package/data/memories/learning-progress.md +8 -1
  12. package/data/memories/project-context.md +8 -1
  13. package/data/personas/business-consultant.md +8 -1
  14. package/data/personas/creative-writer.md +8 -1
  15. package/data/personas/debug-detective.md +8 -1
  16. package/data/personas/eli5-explainer.md +8 -1
  17. package/data/personas/security-analyst.md +8 -1
  18. package/data/personas/technical-analyst.md +8 -1
  19. package/data/skills/code-review.md +8 -1
  20. package/data/skills/creative-writing.md +8 -1
  21. package/data/skills/data-analysis.md +8 -1
  22. package/data/skills/penetration-testing.md +8 -1
  23. package/data/skills/research.md +8 -1
  24. package/data/skills/threat-modeling.md +8 -1
  25. package/data/skills/translation.md +8 -1
  26. package/data/templates/code-documentation.md +8 -1
  27. package/data/templates/email-professional.md +8 -1
  28. package/data/templates/meeting-notes.md +8 -1
  29. package/data/templates/penetration-test-report.md +8 -1
  30. package/data/templates/project-brief.md +8 -1
  31. package/data/templates/report-executive.md +8 -1
  32. package/data/templates/security-vulnerability-report.md +8 -1
  33. package/data/templates/threat-assessment-report.md +8 -1
  34. package/dist/auth/GitHubAuthManager.d.ts +6 -1
  35. package/dist/auth/GitHubAuthManager.d.ts.map +1 -1
  36. package/dist/auth/GitHubAuthManager.js +45 -18
  37. package/dist/benchmarks/IndexPerformanceBenchmark.d.ts +98 -0
  38. package/dist/benchmarks/IndexPerformanceBenchmark.d.ts.map +1 -0
  39. package/dist/benchmarks/IndexPerformanceBenchmark.js +531 -0
  40. package/dist/cache/CollectionCache.d.ts.map +1 -1
  41. package/dist/cache/CollectionCache.js +13 -3
  42. package/dist/cache/CollectionIndexCache.d.ts +77 -0
  43. package/dist/cache/CollectionIndexCache.d.ts.map +1 -0
  44. package/dist/cache/CollectionIndexCache.js +349 -0
  45. package/dist/cache/LRUCache.d.ts +93 -0
  46. package/dist/cache/LRUCache.d.ts.map +1 -0
  47. package/dist/cache/LRUCache.js +299 -0
  48. package/dist/cache/index.d.ts +1 -0
  49. package/dist/cache/index.d.ts.map +1 -1
  50. package/dist/cache/index.js +2 -1
  51. package/dist/collection/CollectionBrowser.d.ts +21 -1
  52. package/dist/collection/CollectionBrowser.d.ts.map +1 -1
  53. package/dist/collection/CollectionBrowser.js +130 -10
  54. package/dist/collection/CollectionIndexManager.d.ts +151 -0
  55. package/dist/collection/CollectionIndexManager.d.ts.map +1 -0
  56. package/dist/collection/CollectionIndexManager.js +499 -0
  57. package/dist/collection/CollectionSearch.d.ts +55 -0
  58. package/dist/collection/CollectionSearch.d.ts.map +1 -1
  59. package/dist/collection/CollectionSearch.js +338 -13
  60. package/dist/collection/CollectionSeeder.d.ts.map +1 -1
  61. package/dist/collection/CollectionSeeder.js +38 -1
  62. package/dist/collection/ElementInstaller.d.ts +31 -0
  63. package/dist/collection/ElementInstaller.d.ts.map +1 -1
  64. package/dist/collection/ElementInstaller.js +77 -15
  65. package/dist/collection/PersonaSubmitter.d.ts +1 -1
  66. package/dist/collection/PersonaSubmitter.d.ts.map +1 -1
  67. package/dist/collection/PersonaSubmitter.js +2 -2
  68. package/dist/collection/index.d.ts +1 -0
  69. package/dist/collection/index.d.ts.map +1 -1
  70. package/dist/collection/index.js +2 -1
  71. package/dist/config/ConfigManager.d.ts +78 -0
  72. package/dist/config/ConfigManager.d.ts.map +1 -0
  73. package/dist/config/ConfigManager.js +216 -0
  74. package/dist/config/element-types.d.ts +135 -0
  75. package/dist/config/element-types.d.ts.map +1 -0
  76. package/dist/config/element-types.js +108 -0
  77. package/dist/config/index.d.ts +2 -0
  78. package/dist/config/index.d.ts.map +1 -1
  79. package/dist/config/index.js +3 -1
  80. package/dist/config/portfolio-constants.d.ts +83 -0
  81. package/dist/config/portfolio-constants.d.ts.map +1 -0
  82. package/dist/config/portfolio-constants.js +99 -0
  83. package/dist/elements/BaseElement.d.ts +14 -2
  84. package/dist/elements/BaseElement.d.ts.map +1 -1
  85. package/dist/elements/BaseElement.js +88 -6
  86. package/dist/elements/agents/Agent.d.ts +10 -1
  87. package/dist/elements/agents/Agent.d.ts.map +1 -1
  88. package/dist/elements/agents/Agent.js +66 -19
  89. package/dist/elements/agents/AgentManager.d.ts +2 -0
  90. package/dist/elements/agents/AgentManager.d.ts.map +1 -1
  91. package/dist/elements/agents/AgentManager.js +12 -10
  92. package/dist/elements/skills/Skill.d.ts +10 -1
  93. package/dist/elements/skills/Skill.d.ts.map +1 -1
  94. package/dist/elements/skills/Skill.js +40 -3
  95. package/dist/elements/skills/SkillManager.d.ts +1 -0
  96. package/dist/elements/skills/SkillManager.d.ts.map +1 -1
  97. package/dist/elements/skills/SkillManager.js +10 -4
  98. package/dist/elements/templates/Template.d.ts +10 -1
  99. package/dist/elements/templates/Template.d.ts.map +1 -1
  100. package/dist/elements/templates/Template.js +35 -18
  101. package/dist/elements/templates/TemplateManager.d.ts +1 -1
  102. package/dist/elements/templates/TemplateManager.d.ts.map +1 -1
  103. package/dist/elements/templates/TemplateManager.js +6 -5
  104. package/dist/generated/version.d.ts +2 -2
  105. package/dist/generated/version.js +3 -3
  106. package/dist/index.barrel.d.ts +1 -2
  107. package/dist/index.barrel.d.ts.map +1 -1
  108. package/dist/index.barrel.js +2 -4
  109. package/dist/index.d.ts +143 -25
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +1883 -310
  112. package/dist/persona/PersonaElement.d.ts +10 -0
  113. package/dist/persona/PersonaElement.d.ts.map +1 -1
  114. package/dist/persona/PersonaElement.js +55 -32
  115. package/dist/persona/PersonaElementManager.d.ts.map +1 -1
  116. package/dist/persona/PersonaElementManager.js +13 -11
  117. package/dist/persona/PersonaLoader.d.ts.map +1 -1
  118. package/dist/persona/PersonaLoader.js +8 -2
  119. package/dist/persona/export-import/PersonaImporter.d.ts.map +1 -1
  120. package/dist/persona/export-import/PersonaImporter.js +24 -5
  121. package/dist/persona/export-import/PersonaSharer.d.ts +21 -0
  122. package/dist/persona/export-import/PersonaSharer.d.ts.map +1 -1
  123. package/dist/persona/export-import/PersonaSharer.js +198 -22
  124. package/dist/portfolio/DefaultElementProvider.d.ts +90 -0
  125. package/dist/portfolio/DefaultElementProvider.d.ts.map +1 -1
  126. package/dist/portfolio/DefaultElementProvider.js +499 -7
  127. package/dist/portfolio/GitHubPortfolioIndexer.d.ts +129 -0
  128. package/dist/portfolio/GitHubPortfolioIndexer.d.ts.map +1 -0
  129. package/dist/portfolio/GitHubPortfolioIndexer.js +475 -0
  130. package/dist/portfolio/MigrationManager.d.ts.map +1 -1
  131. package/dist/portfolio/MigrationManager.js +136 -3
  132. package/dist/portfolio/PortfolioIndexManager.d.ts +130 -0
  133. package/dist/portfolio/PortfolioIndexManager.d.ts.map +1 -0
  134. package/dist/portfolio/PortfolioIndexManager.js +478 -0
  135. package/dist/portfolio/PortfolioManager.d.ts +5 -0
  136. package/dist/portfolio/PortfolioManager.d.ts.map +1 -1
  137. package/dist/portfolio/PortfolioManager.js +61 -20
  138. package/dist/portfolio/PortfolioRepoManager.d.ts +75 -0
  139. package/dist/portfolio/PortfolioRepoManager.d.ts.map +1 -0
  140. package/dist/portfolio/PortfolioRepoManager.js +337 -0
  141. package/dist/portfolio/UnifiedIndexManager.d.ts +388 -0
  142. package/dist/portfolio/UnifiedIndexManager.d.ts.map +1 -0
  143. package/dist/portfolio/UnifiedIndexManager.js +1434 -0
  144. package/dist/portfolio/index.d.ts +15 -0
  145. package/dist/portfolio/index.d.ts.map +1 -0
  146. package/dist/portfolio/index.js +15 -0
  147. package/dist/portfolio/types.d.ts +7 -0
  148. package/dist/portfolio/types.d.ts.map +1 -1
  149. package/dist/portfolio/types.js +6 -1
  150. package/dist/security/InputValidator.d.ts.map +1 -1
  151. package/dist/security/InputValidator.js +50 -48
  152. package/dist/security/audit/SecurityAuditor.d.ts.map +1 -1
  153. package/dist/security/audit/SecurityAuditor.js +17 -9
  154. package/dist/security/audit/config/suppressions.d.ts.map +1 -1
  155. package/dist/security/audit/config/suppressions.js +19 -3
  156. package/dist/security/contentValidator.d.ts +2 -0
  157. package/dist/security/contentValidator.d.ts.map +1 -1
  158. package/dist/security/contentValidator.js +115 -4
  159. package/dist/security/secureYamlParser.d.ts +1 -0
  160. package/dist/security/secureYamlParser.d.ts.map +1 -1
  161. package/dist/security/secureYamlParser.js +29 -7
  162. package/dist/security/securityMonitor.d.ts +1 -1
  163. package/dist/security/securityMonitor.d.ts.map +1 -1
  164. package/dist/security/securityMonitor.js +1 -1
  165. package/dist/security/tokenManager.d.ts +1 -1
  166. package/dist/security/tokenManager.d.ts.map +1 -1
  167. package/dist/security/tokenManager.js +30 -10
  168. package/dist/server/ServerSetup.d.ts +22 -2
  169. package/dist/server/ServerSetup.d.ts.map +1 -1
  170. package/dist/server/ServerSetup.js +77 -12
  171. package/dist/server/tools/AuthTools.d.ts.map +1 -1
  172. package/dist/server/tools/AuthTools.js +33 -1
  173. package/dist/server/tools/BuildInfoTools.d.ts +25 -0
  174. package/dist/server/tools/BuildInfoTools.d.ts.map +1 -0
  175. package/dist/server/tools/BuildInfoTools.js +36 -0
  176. package/dist/server/tools/CollectionTools.d.ts.map +1 -1
  177. package/dist/server/tools/CollectionTools.js +55 -46
  178. package/dist/server/tools/ConfigTools.d.ts.map +1 -1
  179. package/dist/server/tools/ConfigTools.js +29 -1
  180. package/dist/server/tools/PersonaTools.d.ts +4 -2
  181. package/dist/server/tools/PersonaTools.d.ts.map +1 -1
  182. package/dist/server/tools/PersonaTools.js +5 -152
  183. package/dist/server/tools/PortfolioTools.d.ts +12 -0
  184. package/dist/server/tools/PortfolioTools.d.ts.map +1 -0
  185. package/dist/server/tools/PortfolioTools.js +221 -0
  186. package/dist/server/tools/index.d.ts +3 -1
  187. package/dist/server/tools/index.d.ts.map +1 -1
  188. package/dist/server/tools/index.js +4 -2
  189. package/dist/server/types.d.ts +40 -5
  190. package/dist/server/types.d.ts.map +1 -1
  191. package/dist/server/types.js +1 -1
  192. package/dist/services/BuildInfoService.d.ts +84 -0
  193. package/dist/services/BuildInfoService.d.ts.map +1 -0
  194. package/dist/services/BuildInfoService.js +271 -0
  195. package/dist/tools/portfolio/PortfolioElementAdapter.d.ts +54 -0
  196. package/dist/tools/portfolio/PortfolioElementAdapter.d.ts.map +1 -0
  197. package/dist/tools/portfolio/PortfolioElementAdapter.js +229 -0
  198. package/dist/tools/portfolio/submitToPortfolioTool.d.ts +164 -0
  199. package/dist/tools/portfolio/submitToPortfolioTool.d.ts.map +1 -0
  200. package/dist/tools/portfolio/submitToPortfolioTool.js +1523 -0
  201. package/dist/tools/portfolio/types.d.ts +41 -0
  202. package/dist/tools/portfolio/types.d.ts.map +1 -0
  203. package/dist/tools/portfolio/types.js +15 -0
  204. package/dist/types/collection.d.ts +51 -0
  205. package/dist/types/collection.d.ts.map +1 -1
  206. package/dist/types/collection.js +1 -1
  207. package/dist/utils/EarlyTerminationSearch.d.ts +41 -0
  208. package/dist/utils/EarlyTerminationSearch.d.ts.map +1 -0
  209. package/dist/utils/EarlyTerminationSearch.js +164 -0
  210. package/dist/utils/ErrorHandler.d.ts +86 -0
  211. package/dist/utils/ErrorHandler.d.ts.map +1 -0
  212. package/dist/utils/ErrorHandler.js +201 -0
  213. package/dist/utils/FileDiscoveryUtil.d.ts +53 -0
  214. package/dist/utils/FileDiscoveryUtil.d.ts.map +1 -0
  215. package/dist/utils/FileDiscoveryUtil.js +169 -0
  216. package/dist/utils/GitHubRateLimiter.d.ts +88 -0
  217. package/dist/utils/GitHubRateLimiter.d.ts.map +1 -0
  218. package/dist/utils/GitHubRateLimiter.js +315 -0
  219. package/dist/utils/PerformanceMonitor.d.ts +134 -0
  220. package/dist/utils/PerformanceMonitor.d.ts.map +1 -0
  221. package/dist/utils/PerformanceMonitor.js +347 -0
  222. package/dist/utils/RateLimiter.d.ts.map +1 -0
  223. package/dist/utils/RateLimiter.js +172 -0
  224. package/dist/utils/SecureDownloader.d.ts +241 -0
  225. package/dist/utils/SecureDownloader.d.ts.map +1 -0
  226. package/dist/utils/SecureDownloader.js +759 -0
  227. package/dist/utils/ToolCache.d.ts +82 -0
  228. package/dist/utils/ToolCache.d.ts.map +1 -0
  229. package/dist/utils/ToolCache.js +196 -0
  230. package/dist/utils/errorCodes.d.ts +136 -0
  231. package/dist/utils/errorCodes.d.ts.map +1 -0
  232. package/dist/utils/errorCodes.js +87 -0
  233. package/dist/utils/index.d.ts +3 -0
  234. package/dist/utils/index.d.ts.map +1 -1
  235. package/dist/utils/index.js +4 -1
  236. package/dist/utils/installation.d.ts +1 -1
  237. package/dist/utils/installation.d.ts.map +1 -1
  238. package/dist/utils/installation.js +9 -8
  239. package/dist/utils/searchUtils.d.ts +31 -0
  240. package/dist/utils/searchUtils.d.ts.map +1 -1
  241. package/dist/utils/searchUtils.js +62 -1
  242. package/package.json +17 -7
  243. package/dist/config/updateConfig.d.ts +0 -84
  244. package/dist/config/updateConfig.d.ts.map +0 -1
  245. package/dist/config/updateConfig.js +0 -148
  246. package/dist/server/tools/UpdateTools.d.ts +0 -10
  247. package/dist/server/tools/UpdateTools.d.ts.map +0 -1
  248. package/dist/server/tools/UpdateTools.js +0 -85
  249. package/dist/update/BackupManager.d.ts +0 -63
  250. package/dist/update/BackupManager.d.ts.map +0 -1
  251. package/dist/update/BackupManager.js +0 -370
  252. package/dist/update/DependencyChecker.d.ts +0 -41
  253. package/dist/update/DependencyChecker.d.ts.map +0 -1
  254. package/dist/update/DependencyChecker.js +0 -132
  255. package/dist/update/RateLimiter.d.ts.map +0 -1
  256. package/dist/update/RateLimiter.js +0 -172
  257. package/dist/update/SignatureVerifier.d.ts +0 -71
  258. package/dist/update/SignatureVerifier.d.ts.map +0 -1
  259. package/dist/update/SignatureVerifier.js +0 -214
  260. package/dist/update/UpdateChecker.d.ts +0 -132
  261. package/dist/update/UpdateChecker.d.ts.map +0 -1
  262. package/dist/update/UpdateChecker.js +0 -506
  263. package/dist/update/UpdateManager.d.ts +0 -60
  264. package/dist/update/UpdateManager.d.ts.map +0 -1
  265. package/dist/update/UpdateManager.js +0 -730
  266. package/dist/update/VersionManager.d.ts +0 -31
  267. package/dist/update/VersionManager.d.ts.map +0 -1
  268. package/dist/update/VersionManager.js +0 -181
  269. package/dist/update/index.d.ts +0 -9
  270. package/dist/update/index.d.ts.map +0 -1
  271. package/dist/update/index.js +0 -9
  272. /package/dist/{update → utils}/RateLimiter.d.ts +0 -0
@@ -1,31 +0,0 @@
1
- /**
2
- * Version management and comparison utilities
3
- */
4
- export declare class VersionManager {
5
- /**
6
- * Get current version from package.json or embedded version
7
- */
8
- getCurrentVersion(): Promise<string>;
9
- /**
10
- * Enhanced semantic version comparison supporting pre-release versions
11
- * Returns: -1 if v1 < v2, 0 if v1 == v2, 1 if v1 > v2
12
- */
13
- compareVersions(version1: string, version2: string): number;
14
- /**
15
- * Parse version from dependency output
16
- */
17
- parseVersionFromOutput(output: string, tool: string): string | null;
18
- /**
19
- * Validate that a dependency version meets requirements
20
- */
21
- validateDependencyVersion(actualVersion: string, requirements: {
22
- minimum: string;
23
- maximum: string;
24
- recommended: string;
25
- }, toolName: string): {
26
- valid: boolean;
27
- warning?: string;
28
- error?: string;
29
- };
30
- }
31
- //# sourceMappingURL=VersionManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VersionManager.d.ts","sourceRoot":"","sources":["../../src/update/VersionManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,qBAAa,cAAc;IACzB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IA4E1C;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAgC3D;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA2BnE;;OAEG;IACH,yBAAyB,CACvB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EACvE,QAAQ,EAAE,MAAM,GACf;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CAgCxD"}
@@ -1,181 +0,0 @@
1
- /**
2
- * Version management and comparison utilities
3
- */
4
- import * as fs from 'fs/promises';
5
- import * as path from 'path';
6
- import { fileURLToPath } from 'url';
7
- import { logger } from '../utils/logger.js';
8
- import { InstallationDetector } from '../utils/installation.js';
9
- export class VersionManager {
10
- /**
11
- * Get current version from package.json or embedded version
12
- */
13
- async getCurrentVersion() {
14
- // First, try to import the generated version file
15
- try {
16
- const { PACKAGE_VERSION } = await import('../generated/version.js');
17
- if (PACKAGE_VERSION) {
18
- logger.debug(`[VersionManager] Using embedded version: ${PACKAGE_VERSION}`);
19
- return PACKAGE_VERSION;
20
- }
21
- }
22
- catch (error) {
23
- logger.debug('[VersionManager] No embedded version found, will search for package.json');
24
- }
25
- // Determine installation type
26
- const installationType = InstallationDetector.getInstallationType();
27
- // For npm installations, look relative to the module location
28
- if (installationType === 'npm') {
29
- const npmPath = InstallationDetector.getNpmGlobalPath();
30
- if (npmPath) {
31
- const packageJsonPath = path.join(npmPath, 'package.json');
32
- try {
33
- const packageContent = await fs.readFile(packageJsonPath, 'utf-8');
34
- const packageData = JSON.parse(packageContent);
35
- return packageData.version;
36
- }
37
- catch (error) {
38
- logger.error('[VersionManager] Error reading package.json from npm path:', error);
39
- }
40
- }
41
- }
42
- // For git installations, search from current file location
43
- if (installationType === 'git') {
44
- const currentFileUrl = import.meta.url;
45
- const currentFilePath = fileURLToPath(currentFileUrl);
46
- let currentDir = path.dirname(currentFilePath);
47
- // Search upward for package.json
48
- for (let i = 0; i < 5; i++) {
49
- const candidatePath = path.join(currentDir, 'package.json');
50
- try {
51
- await fs.access(candidatePath);
52
- const packageContent = await fs.readFile(candidatePath, 'utf-8');
53
- const packageData = JSON.parse(packageContent);
54
- return packageData.version;
55
- }
56
- catch {
57
- // File doesn't exist, try parent directory
58
- const parentDir = path.dirname(currentDir);
59
- if (parentDir === currentDir) {
60
- break;
61
- }
62
- currentDir = parentDir;
63
- }
64
- }
65
- }
66
- // Last resort: try process.cwd() (original behavior)
67
- let currentDir = process.cwd();
68
- for (let i = 0; i < 5; i++) {
69
- const candidatePath = path.join(currentDir, 'package.json');
70
- try {
71
- await fs.access(candidatePath);
72
- const packageContent = await fs.readFile(candidatePath, 'utf-8');
73
- const packageData = JSON.parse(packageContent);
74
- return packageData.version;
75
- }
76
- catch {
77
- const parentDir = path.dirname(currentDir);
78
- if (parentDir === currentDir) {
79
- break;
80
- }
81
- currentDir = parentDir;
82
- }
83
- }
84
- throw new Error('Could not determine version. Please ensure you have a valid installation.');
85
- }
86
- /**
87
- * Enhanced semantic version comparison supporting pre-release versions
88
- * Returns: -1 if v1 < v2, 0 if v1 == v2, 1 if v1 > v2
89
- */
90
- compareVersions(version1, version2) {
91
- // Normalize versions by removing 'v' prefix
92
- const v1 = version1.replace(/^v/, '');
93
- const v2 = version2.replace(/^v/, '');
94
- // Split version and pre-release parts
95
- const [v1main, v1pre] = v1.split('-');
96
- const [v2main, v2pre] = v2.split('-');
97
- // Compare main version parts (x.y.z)
98
- const v1parts = v1main.split('.').map(part => parseInt(part) || 0);
99
- const v2parts = v2main.split('.').map(part => parseInt(part) || 0);
100
- const maxLength = Math.max(v1parts.length, v2parts.length);
101
- for (let i = 0; i < maxLength; i++) {
102
- const v1part = v1parts[i] || 0;
103
- const v2part = v2parts[i] || 0;
104
- if (v1part < v2part)
105
- return -1;
106
- if (v1part > v2part)
107
- return 1;
108
- }
109
- // If main versions are equal, compare pre-release versions
110
- // Version without pre-release is greater than version with pre-release
111
- if (!v1pre && v2pre)
112
- return 1; // 1.0.0 > 1.0.0-beta
113
- if (v1pre && !v2pre)
114
- return -1; // 1.0.0-beta < 1.0.0
115
- if (!v1pre && !v2pre)
116
- return 0; // 1.0.0 == 1.0.0
117
- // Both have pre-release, compare lexicographically
118
- return v1pre.localeCompare(v2pre);
119
- }
120
- /**
121
- * Parse version from dependency output
122
- */
123
- parseVersionFromOutput(output, tool) {
124
- // Git version output: "git version 2.39.2"
125
- // npm version output: "8.19.2" or JSON with version info
126
- if (tool === 'git') {
127
- const match = output.match(/git version (\d+\.\d+\.\d+)/);
128
- return match ? match[1] : null;
129
- }
130
- else if (tool === 'npm') {
131
- // npm might return just the version number or JSON
132
- const cleanOutput = output.trim();
133
- if (cleanOutput.match(/^\d+\.\d+\.\d+/)) {
134
- return cleanOutput.split('\n')[0]; // First line if multiple lines
135
- }
136
- // Try to parse as JSON if it looks like JSON
137
- try {
138
- const parsed = JSON.parse(cleanOutput);
139
- return parsed.npm || parsed.version || null;
140
- }
141
- catch {
142
- // If not JSON, try to extract version pattern
143
- const match = cleanOutput.match(/(\d+\.\d+\.\d+)/);
144
- return match ? match[1] : null;
145
- }
146
- }
147
- return null;
148
- }
149
- /**
150
- * Validate that a dependency version meets requirements
151
- */
152
- validateDependencyVersion(actualVersion, requirements, toolName) {
153
- const minComparison = this.compareVersions(actualVersion, requirements.minimum);
154
- const maxComparison = this.compareVersions(actualVersion, requirements.maximum);
155
- // Check if version is below minimum
156
- if (minComparison < 0) {
157
- return {
158
- valid: false,
159
- error: `${toolName} version ${actualVersion} is below minimum required version ${requirements.minimum}. Please upgrade ${toolName}.`
160
- };
161
- }
162
- // Check if version is above maximum tested
163
- if (maxComparison > 0) {
164
- return {
165
- valid: true,
166
- warning: `${toolName} version ${actualVersion} is above maximum tested version ${requirements.maximum}. Some features may not work as expected.`
167
- };
168
- }
169
- // Check if not at recommended version
170
- const recComparison = this.compareVersions(actualVersion, requirements.recommended);
171
- if (recComparison !== 0) {
172
- return {
173
- valid: true,
174
- warning: `${toolName} version ${actualVersion} works but ${requirements.recommended} is recommended for optimal stability.`
175
- };
176
- }
177
- // Version is perfect
178
- return { valid: true };
179
- }
180
- }
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmVyc2lvbk1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXBkYXRlL1ZlcnNpb25NYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsTUFBTSxPQUFPLGNBQWM7SUFDekI7O09BRUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLGtEQUFrRDtRQUNsRCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNwRSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxlQUFlLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RSxPQUFPLGVBQWUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLENBQUMsS0FBSyxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUVELDhCQUE4QjtRQUM5QixNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFcEUsOERBQThEO1FBQzlELElBQUksZ0JBQWdCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDL0IsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4RCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxjQUFjLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDbkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDL0MsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDO2dCQUM3QixDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyw0REFBNEQsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDcEYsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsMkRBQTJEO1FBQzNELElBQUksZ0JBQWdCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDL0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDdkMsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3RELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFL0MsaUNBQWlDO1lBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQztvQkFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQy9CLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ2pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQy9DLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQztnQkFDN0IsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsMkNBQTJDO29CQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUMzQyxJQUFJLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQzt3QkFDN0IsTUFBTTtvQkFDUixDQUFDO29CQUNELFVBQVUsR0FBRyxTQUFTLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELHFEQUFxRDtRQUNyRCxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQztnQkFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQy9CLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUM3QixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzNDLElBQUksU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUM3QixNQUFNO2dCQUNSLENBQUM7Z0JBQ0QsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsMkVBQTJFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDaEQsNENBQTRDO1FBQzVDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXRDLHNDQUFzQztRQUN0QyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXRDLHFDQUFxQztRQUNyQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVuRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFL0IsSUFBSSxNQUFNLEdBQUcsTUFBTTtnQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQy9CLElBQUksTUFBTSxHQUFHLE1BQU07Z0JBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELDJEQUEyRDtRQUMzRCx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBRyxxQkFBcUI7UUFDdEQsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFFLHFCQUFxQjtRQUN0RCxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUUsaUJBQWlCO1FBRWxELG1EQUFtRDtRQUNuRCxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDakQsMkNBQTJDO1FBQzNDLHlEQUF5RDtRQUV6RCxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDMUQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2pDLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxQixtREFBbUQ7WUFDbkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtZQUNwRSxDQUFDO1lBQ0QsNkNBQTZDO1lBQzdDLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7WUFDOUMsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCw4Q0FBOEM7Z0JBQzlDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDbkQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx5QkFBeUIsQ0FDdkIsYUFBcUIsRUFDckIsWUFBdUUsRUFDdkUsUUFBZ0I7UUFFaEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVoRixvQ0FBb0M7UUFDcEMsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTztnQkFDTCxLQUFLLEVBQUUsS0FBSztnQkFDWixLQUFLLEVBQUUsR0FBRyxRQUFRLFlBQVksYUFBYSxzQ0FBc0MsWUFBWSxDQUFDLE9BQU8sb0JBQW9CLFFBQVEsR0FBRzthQUNySSxDQUFDO1FBQ0osQ0FBQztRQUVELDJDQUEyQztRQUMzQyxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJO2dCQUNYLE9BQU8sRUFBRSxHQUFHLFFBQVEsWUFBWSxhQUFhLG9DQUFvQyxZQUFZLENBQUMsT0FBTywyQ0FBMkM7YUFDakosQ0FBQztRQUNKLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BGLElBQUksYUFBYSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLEdBQUcsUUFBUSxZQUFZLGFBQWEsY0FBYyxZQUFZLENBQUMsV0FBVyx3Q0FBd0M7YUFDNUgsQ0FBQztRQUNKLENBQUM7UUFFRCxxQkFBcUI7UUFDckIsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZlcnNpb24gbWFuYWdlbWVudCBhbmQgY29tcGFyaXNvbiB1dGlsaXRpZXNcbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ3VybCc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuaW1wb3J0IHsgSW5zdGFsbGF0aW9uRGV0ZWN0b3IgfSBmcm9tICcuLi91dGlscy9pbnN0YWxsYXRpb24uanMnO1xuXG5leHBvcnQgY2xhc3MgVmVyc2lvbk1hbmFnZXIge1xuICAvKipcbiAgICogR2V0IGN1cnJlbnQgdmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvbiBvciBlbWJlZGRlZCB2ZXJzaW9uXG4gICAqL1xuICBhc3luYyBnZXRDdXJyZW50VmVyc2lvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIEZpcnN0LCB0cnkgdG8gaW1wb3J0IHRoZSBnZW5lcmF0ZWQgdmVyc2lvbiBmaWxlXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgUEFDS0FHRV9WRVJTSU9OIH0gPSBhd2FpdCBpbXBvcnQoJy4uL2dlbmVyYXRlZC92ZXJzaW9uLmpzJyk7XG4gICAgICBpZiAoUEFDS0FHRV9WRVJTSU9OKSB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgW1ZlcnNpb25NYW5hZ2VyXSBVc2luZyBlbWJlZGRlZCB2ZXJzaW9uOiAke1BBQ0tBR0VfVkVSU0lPTn1gKTtcbiAgICAgICAgcmV0dXJuIFBBQ0tBR0VfVkVSU0lPTjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKCdbVmVyc2lvbk1hbmFnZXJdIE5vIGVtYmVkZGVkIHZlcnNpb24gZm91bmQsIHdpbGwgc2VhcmNoIGZvciBwYWNrYWdlLmpzb24nKTtcbiAgICB9XG4gICAgXG4gICAgLy8gRGV0ZXJtaW5lIGluc3RhbGxhdGlvbiB0eXBlXG4gICAgY29uc3QgaW5zdGFsbGF0aW9uVHlwZSA9IEluc3RhbGxhdGlvbkRldGVjdG9yLmdldEluc3RhbGxhdGlvblR5cGUoKTtcbiAgICBcbiAgICAvLyBGb3IgbnBtIGluc3RhbGxhdGlvbnMsIGxvb2sgcmVsYXRpdmUgdG8gdGhlIG1vZHVsZSBsb2NhdGlvblxuICAgIGlmIChpbnN0YWxsYXRpb25UeXBlID09PSAnbnBtJykge1xuICAgICAgY29uc3QgbnBtUGF0aCA9IEluc3RhbGxhdGlvbkRldGVjdG9yLmdldE5wbUdsb2JhbFBhdGgoKTtcbiAgICAgIGlmIChucG1QYXRoKSB7XG4gICAgICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IHBhdGguam9pbihucG1QYXRoLCAncGFja2FnZS5qc29uJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcGFja2FnZUNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShwYWNrYWdlSnNvblBhdGgsICd1dGYtOCcpO1xuICAgICAgICAgIGNvbnN0IHBhY2thZ2VEYXRhID0gSlNPTi5wYXJzZShwYWNrYWdlQ29udGVudCk7XG4gICAgICAgICAgcmV0dXJuIHBhY2thZ2VEYXRhLnZlcnNpb247XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdbVmVyc2lvbk1hbmFnZXJdIEVycm9yIHJlYWRpbmcgcGFja2FnZS5qc29uIGZyb20gbnBtIHBhdGg6JywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBnaXQgaW5zdGFsbGF0aW9ucywgc2VhcmNoIGZyb20gY3VycmVudCBmaWxlIGxvY2F0aW9uXG4gICAgaWYgKGluc3RhbGxhdGlvblR5cGUgPT09ICdnaXQnKSB7XG4gICAgICBjb25zdCBjdXJyZW50RmlsZVVybCA9IGltcG9ydC5tZXRhLnVybDtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWxlUGF0aCA9IGZpbGVVUkxUb1BhdGgoY3VycmVudEZpbGVVcmwpO1xuICAgICAgbGV0IGN1cnJlbnREaXIgPSBwYXRoLmRpcm5hbWUoY3VycmVudEZpbGVQYXRoKTtcbiAgICAgIFxuICAgICAgLy8gU2VhcmNoIHVwd2FyZCBmb3IgcGFja2FnZS5qc29uXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgICAgICBjb25zdCBjYW5kaWRhdGVQYXRoID0gcGF0aC5qb2luKGN1cnJlbnREaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBmcy5hY2Nlc3MoY2FuZGlkYXRlUGF0aCk7XG4gICAgICAgICAgY29uc3QgcGFja2FnZUNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShjYW5kaWRhdGVQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgICBjb25zdCBwYWNrYWdlRGF0YSA9IEpTT04ucGFyc2UocGFja2FnZUNvbnRlbnQpO1xuICAgICAgICAgIHJldHVybiBwYWNrYWdlRGF0YS52ZXJzaW9uO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBGaWxlIGRvZXNuJ3QgZXhpc3QsIHRyeSBwYXJlbnQgZGlyZWN0b3J5XG4gICAgICAgICAgY29uc3QgcGFyZW50RGlyID0gcGF0aC5kaXJuYW1lKGN1cnJlbnREaXIpO1xuICAgICAgICAgIGlmIChwYXJlbnREaXIgPT09IGN1cnJlbnREaXIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50RGlyID0gcGFyZW50RGlyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIExhc3QgcmVzb3J0OiB0cnkgcHJvY2Vzcy5jd2QoKSAob3JpZ2luYWwgYmVoYXZpb3IpXG4gICAgbGV0IGN1cnJlbnREaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgICBjb25zdCBjYW5kaWRhdGVQYXRoID0gcGF0aC5qb2luKGN1cnJlbnREaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGZzLmFjY2VzcyhjYW5kaWRhdGVQYXRoKTtcbiAgICAgICAgY29uc3QgcGFja2FnZUNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShjYW5kaWRhdGVQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgY29uc3QgcGFja2FnZURhdGEgPSBKU09OLnBhcnNlKHBhY2thZ2VDb250ZW50KTtcbiAgICAgICAgcmV0dXJuIHBhY2thZ2VEYXRhLnZlcnNpb247XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgY29uc3QgcGFyZW50RGlyID0gcGF0aC5kaXJuYW1lKGN1cnJlbnREaXIpO1xuICAgICAgICBpZiAocGFyZW50RGlyID09PSBjdXJyZW50RGlyKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudERpciA9IHBhcmVudERpcjtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZGV0ZXJtaW5lIHZlcnNpb24uIFBsZWFzZSBlbnN1cmUgeW91IGhhdmUgYSB2YWxpZCBpbnN0YWxsYXRpb24uJyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBFbmhhbmNlZCBzZW1hbnRpYyB2ZXJzaW9uIGNvbXBhcmlzb24gc3VwcG9ydGluZyBwcmUtcmVsZWFzZSB2ZXJzaW9uc1xuICAgKiBSZXR1cm5zOiAtMSBpZiB2MSA8IHYyLCAwIGlmIHYxID09IHYyLCAxIGlmIHYxID4gdjJcbiAgICovXG4gIGNvbXBhcmVWZXJzaW9ucyh2ZXJzaW9uMTogc3RyaW5nLCB2ZXJzaW9uMjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAvLyBOb3JtYWxpemUgdmVyc2lvbnMgYnkgcmVtb3ZpbmcgJ3YnIHByZWZpeFxuICAgIGNvbnN0IHYxID0gdmVyc2lvbjEucmVwbGFjZSgvXnYvLCAnJyk7XG4gICAgY29uc3QgdjIgPSB2ZXJzaW9uMi5yZXBsYWNlKC9edi8sICcnKTtcbiAgICBcbiAgICAvLyBTcGxpdCB2ZXJzaW9uIGFuZCBwcmUtcmVsZWFzZSBwYXJ0c1xuICAgIGNvbnN0IFt2MW1haW4sIHYxcHJlXSA9IHYxLnNwbGl0KCctJyk7XG4gICAgY29uc3QgW3YybWFpbiwgdjJwcmVdID0gdjIuc3BsaXQoJy0nKTtcbiAgICBcbiAgICAvLyBDb21wYXJlIG1haW4gdmVyc2lvbiBwYXJ0cyAoeC55LnopXG4gICAgY29uc3QgdjFwYXJ0cyA9IHYxbWFpbi5zcGxpdCgnLicpLm1hcChwYXJ0ID0+IHBhcnNlSW50KHBhcnQpIHx8IDApO1xuICAgIGNvbnN0IHYycGFydHMgPSB2Mm1haW4uc3BsaXQoJy4nKS5tYXAocGFydCA9PiBwYXJzZUludChwYXJ0KSB8fCAwKTtcbiAgICBcbiAgICBjb25zdCBtYXhMZW5ndGggPSBNYXRoLm1heCh2MXBhcnRzLmxlbmd0aCwgdjJwYXJ0cy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4TGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHYxcGFydCA9IHYxcGFydHNbaV0gfHwgMDtcbiAgICAgIGNvbnN0IHYycGFydCA9IHYycGFydHNbaV0gfHwgMDtcbiAgICAgIFxuICAgICAgaWYgKHYxcGFydCA8IHYycGFydCkgcmV0dXJuIC0xO1xuICAgICAgaWYgKHYxcGFydCA+IHYycGFydCkgcmV0dXJuIDE7XG4gICAgfVxuICAgIFxuICAgIC8vIElmIG1haW4gdmVyc2lvbnMgYXJlIGVxdWFsLCBjb21wYXJlIHByZS1yZWxlYXNlIHZlcnNpb25zXG4gICAgLy8gVmVyc2lvbiB3aXRob3V0IHByZS1yZWxlYXNlIGlzIGdyZWF0ZXIgdGhhbiB2ZXJzaW9uIHdpdGggcHJlLXJlbGVhc2VcbiAgICBpZiAoIXYxcHJlICYmIHYycHJlKSByZXR1cm4gMTsgICAvLyAxLjAuMCA+IDEuMC4wLWJldGFcbiAgICBpZiAodjFwcmUgJiYgIXYycHJlKSByZXR1cm4gLTE7ICAvLyAxLjAuMC1iZXRhIDwgMS4wLjBcbiAgICBpZiAoIXYxcHJlICYmICF2MnByZSkgcmV0dXJuIDA7ICAvLyAxLjAuMCA9PSAxLjAuMFxuICAgIFxuICAgIC8vIEJvdGggaGF2ZSBwcmUtcmVsZWFzZSwgY29tcGFyZSBsZXhpY29ncmFwaGljYWxseVxuICAgIHJldHVybiB2MXByZS5sb2NhbGVDb21wYXJlKHYycHJlKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFBhcnNlIHZlcnNpb24gZnJvbSBkZXBlbmRlbmN5IG91dHB1dFxuICAgKi9cbiAgcGFyc2VWZXJzaW9uRnJvbU91dHB1dChvdXRwdXQ6IHN0cmluZywgdG9vbDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgLy8gR2l0IHZlcnNpb24gb3V0cHV0OiBcImdpdCB2ZXJzaW9uIDIuMzkuMlwiXG4gICAgLy8gbnBtIHZlcnNpb24gb3V0cHV0OiBcIjguMTkuMlwiIG9yIEpTT04gd2l0aCB2ZXJzaW9uIGluZm9cbiAgICBcbiAgICBpZiAodG9vbCA9PT0gJ2dpdCcpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gb3V0cHV0Lm1hdGNoKC9naXQgdmVyc2lvbiAoXFxkK1xcLlxcZCtcXC5cXGQrKS8pO1xuICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBudWxsO1xuICAgIH0gZWxzZSBpZiAodG9vbCA9PT0gJ25wbScpIHtcbiAgICAgIC8vIG5wbSBtaWdodCByZXR1cm4ganVzdCB0aGUgdmVyc2lvbiBudW1iZXIgb3IgSlNPTlxuICAgICAgY29uc3QgY2xlYW5PdXRwdXQgPSBvdXRwdXQudHJpbSgpO1xuICAgICAgaWYgKGNsZWFuT3V0cHV0Lm1hdGNoKC9eXFxkK1xcLlxcZCtcXC5cXGQrLykpIHtcbiAgICAgICAgcmV0dXJuIGNsZWFuT3V0cHV0LnNwbGl0KCdcXG4nKVswXTsgLy8gRmlyc3QgbGluZSBpZiBtdWx0aXBsZSBsaW5lc1xuICAgICAgfVxuICAgICAgLy8gVHJ5IHRvIHBhcnNlIGFzIEpTT04gaWYgaXQgbG9va3MgbGlrZSBKU09OXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGNsZWFuT3V0cHV0KTtcbiAgICAgICAgcmV0dXJuIHBhcnNlZC5ucG0gfHwgcGFyc2VkLnZlcnNpb24gfHwgbnVsbDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBJZiBub3QgSlNPTiwgdHJ5IHRvIGV4dHJhY3QgdmVyc2lvbiBwYXR0ZXJuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gY2xlYW5PdXRwdXQubWF0Y2goLyhcXGQrXFwuXFxkK1xcLlxcZCspLyk7XG4gICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGEgZGVwZW5kZW5jeSB2ZXJzaW9uIG1lZXRzIHJlcXVpcmVtZW50c1xuICAgKi9cbiAgdmFsaWRhdGVEZXBlbmRlbmN5VmVyc2lvbihcbiAgICBhY3R1YWxWZXJzaW9uOiBzdHJpbmcsIFxuICAgIHJlcXVpcmVtZW50czogeyBtaW5pbXVtOiBzdHJpbmc7IG1heGltdW06IHN0cmluZzsgcmVjb21tZW5kZWQ6IHN0cmluZyB9LFxuICAgIHRvb2xOYW1lOiBzdHJpbmdcbiAgKTogeyB2YWxpZDogYm9vbGVhbjsgd2FybmluZz86IHN0cmluZzsgZXJyb3I/OiBzdHJpbmcgfSB7XG4gICAgY29uc3QgbWluQ29tcGFyaXNvbiA9IHRoaXMuY29tcGFyZVZlcnNpb25zKGFjdHVhbFZlcnNpb24sIHJlcXVpcmVtZW50cy5taW5pbXVtKTtcbiAgICBjb25zdCBtYXhDb21wYXJpc29uID0gdGhpcy5jb21wYXJlVmVyc2lvbnMoYWN0dWFsVmVyc2lvbiwgcmVxdWlyZW1lbnRzLm1heGltdW0pO1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHZlcnNpb24gaXMgYmVsb3cgbWluaW11bVxuICAgIGlmIChtaW5Db21wYXJpc29uIDwgMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogYCR7dG9vbE5hbWV9IHZlcnNpb24gJHthY3R1YWxWZXJzaW9ufSBpcyBiZWxvdyBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gJHtyZXF1aXJlbWVudHMubWluaW11bX0uIFBsZWFzZSB1cGdyYWRlICR7dG9vbE5hbWV9LmBcbiAgICAgIH07XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIGlmIHZlcnNpb24gaXMgYWJvdmUgbWF4aW11bSB0ZXN0ZWRcbiAgICBpZiAobWF4Q29tcGFyaXNvbiA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB3YXJuaW5nOiBgJHt0b29sTmFtZX0gdmVyc2lvbiAke2FjdHVhbFZlcnNpb259IGlzIGFib3ZlIG1heGltdW0gdGVzdGVkIHZlcnNpb24gJHtyZXF1aXJlbWVudHMubWF4aW11bX0uIFNvbWUgZmVhdHVyZXMgbWF5IG5vdCB3b3JrIGFzIGV4cGVjdGVkLmBcbiAgICAgIH07XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIGlmIG5vdCBhdCByZWNvbW1lbmRlZCB2ZXJzaW9uXG4gICAgY29uc3QgcmVjQ29tcGFyaXNvbiA9IHRoaXMuY29tcGFyZVZlcnNpb25zKGFjdHVhbFZlcnNpb24sIHJlcXVpcmVtZW50cy5yZWNvbW1lbmRlZCk7XG4gICAgaWYgKHJlY0NvbXBhcmlzb24gIT09IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB3YXJuaW5nOiBgJHt0b29sTmFtZX0gdmVyc2lvbiAke2FjdHVhbFZlcnNpb259IHdvcmtzIGJ1dCAke3JlcXVpcmVtZW50cy5yZWNvbW1lbmRlZH0gaXMgcmVjb21tZW5kZWQgZm9yIG9wdGltYWwgc3RhYmlsaXR5LmBcbiAgICAgIH07XG4gICAgfVxuICAgIFxuICAgIC8vIFZlcnNpb24gaXMgcGVyZmVjdFxuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cbn0iXX0=
@@ -1,9 +0,0 @@
1
- /**
2
- * Update module exports
3
- */
4
- export * from './VersionManager.js';
5
- export * from './UpdateChecker.js';
6
- export * from './DependencyChecker.js';
7
- export * from './BackupManager.js';
8
- export * from './UpdateManager.js';
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/update/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Update module exports
3
- */
4
- export * from './VersionManager.js';
5
- export * from './UpdateChecker.js';
6
- export * from './DependencyChecker.js';
7
- export * from './BackupManager.js';
8
- export * from './UpdateManager.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXBkYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVcGRhdGUgbW9kdWxlIGV4cG9ydHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL1ZlcnNpb25NYW5hZ2VyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVXBkYXRlQ2hlY2tlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0RlcGVuZGVuY3lDaGVja2VyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQmFja3VwTWFuYWdlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1VwZGF0ZU1hbmFnZXIuanMnOyJdfQ==
File without changes