@nahisaho/musubix-core 1.0.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.
- package/bin/musubix.js +18 -0
- package/dist/__tests__/index.test.d.ts +2 -0
- package/dist/__tests__/index.test.d.ts.map +1 -0
- package/dist/__tests__/index.test.js +27 -0
- package/dist/__tests__/index.test.js.map +1 -0
- package/dist/auth/auth-manager.d.ts +320 -0
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/auth/auth-manager.js +580 -0
- package/dist/auth/auth-manager.js.map +1 -0
- package/dist/cli/base.d.ts +58 -0
- package/dist/cli/base.d.ts.map +1 -0
- package/dist/cli/base.js +93 -0
- package/dist/cli/base.js.map +1 -0
- package/dist/cli/commands/help.d.ts +17 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +228 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/index.d.ts +14 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +25 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +38 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +258 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/codegen/coding-standards.d.ts +250 -0
- package/dist/codegen/coding-standards.d.ts.map +1 -0
- package/dist/codegen/coding-standards.js +976 -0
- package/dist/codegen/coding-standards.js.map +1 -0
- package/dist/codegen/coverage-reporter.d.ts +264 -0
- package/dist/codegen/coverage-reporter.d.ts.map +1 -0
- package/dist/codegen/coverage-reporter.js +697 -0
- package/dist/codegen/coverage-reporter.js.map +1 -0
- package/dist/codegen/dependency-analyzer.d.ts +271 -0
- package/dist/codegen/dependency-analyzer.d.ts.map +1 -0
- package/dist/codegen/dependency-analyzer.js +661 -0
- package/dist/codegen/dependency-analyzer.js.map +1 -0
- package/dist/codegen/generator.d.ts +275 -0
- package/dist/codegen/generator.d.ts.map +1 -0
- package/dist/codegen/generator.js +781 -0
- package/dist/codegen/generator.js.map +1 -0
- package/dist/codegen/index.d.ts +18 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/index.js +27 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/integration-test-generator.d.ts +312 -0
- package/dist/codegen/integration-test-generator.d.ts.map +1 -0
- package/dist/codegen/integration-test-generator.js +765 -0
- package/dist/codegen/integration-test-generator.js.map +1 -0
- package/dist/codegen/pattern-conformance.d.ts +309 -0
- package/dist/codegen/pattern-conformance.d.ts.map +1 -0
- package/dist/codegen/pattern-conformance.js +590 -0
- package/dist/codegen/pattern-conformance.js.map +1 -0
- package/dist/codegen/quality-metrics.d.ts +235 -0
- package/dist/codegen/quality-metrics.d.ts.map +1 -0
- package/dist/codegen/quality-metrics.js +439 -0
- package/dist/codegen/quality-metrics.js.map +1 -0
- package/dist/codegen/security-scanner.d.ts +179 -0
- package/dist/codegen/security-scanner.d.ts.map +1 -0
- package/dist/codegen/security-scanner.js +495 -0
- package/dist/codegen/security-scanner.js.map +1 -0
- package/dist/codegen/static-analyzer.d.ts +188 -0
- package/dist/codegen/static-analyzer.d.ts.map +1 -0
- package/dist/codegen/static-analyzer.js +490 -0
- package/dist/codegen/static-analyzer.js.map +1 -0
- package/dist/codegen/unit-test-generator.d.ts +289 -0
- package/dist/codegen/unit-test-generator.d.ts.map +1 -0
- package/dist/codegen/unit-test-generator.js +634 -0
- package/dist/codegen/unit-test-generator.js.map +1 -0
- package/dist/design/adr-generator.d.ts +227 -0
- package/dist/design/adr-generator.d.ts.map +1 -0
- package/dist/design/adr-generator.js +423 -0
- package/dist/design/adr-generator.js.map +1 -0
- package/dist/design/c4-generator.d.ts +267 -0
- package/dist/design/c4-generator.d.ts.map +1 -0
- package/dist/design/c4-generator.js +453 -0
- package/dist/design/c4-generator.js.map +1 -0
- package/dist/design/framework-optimizer.d.ts +190 -0
- package/dist/design/framework-optimizer.d.ts.map +1 -0
- package/dist/design/framework-optimizer.js +589 -0
- package/dist/design/framework-optimizer.js.map +1 -0
- package/dist/design/index.d.ts +12 -0
- package/dist/design/index.d.ts.map +1 -0
- package/dist/design/index.js +13 -0
- package/dist/design/index.js.map +1 -0
- package/dist/design/pattern-detector.d.ts +270 -0
- package/dist/design/pattern-detector.d.ts.map +1 -0
- package/dist/design/pattern-detector.js +621 -0
- package/dist/design/pattern-detector.js.map +1 -0
- package/dist/design/solid-validator.d.ts +188 -0
- package/dist/design/solid-validator.d.ts.map +1 -0
- package/dist/design/solid-validator.js +579 -0
- package/dist/design/solid-validator.js.map +1 -0
- package/dist/error/data-persistence.d.ts +311 -0
- package/dist/error/data-persistence.d.ts.map +1 -0
- package/dist/error/data-persistence.js +586 -0
- package/dist/error/data-persistence.js.map +1 -0
- package/dist/error/graceful-degradation.d.ts +309 -0
- package/dist/error/graceful-degradation.d.ts.map +1 -0
- package/dist/error/graceful-degradation.js +510 -0
- package/dist/error/graceful-degradation.js.map +1 -0
- package/dist/error/index.d.ts +11 -0
- package/dist/error/index.d.ts.map +1 -0
- package/dist/error/index.js +19 -0
- package/dist/error/index.js.map +1 -0
- package/dist/explanation/explanation-generator.d.ts +228 -0
- package/dist/explanation/explanation-generator.d.ts.map +1 -0
- package/dist/explanation/explanation-generator.js +662 -0
- package/dist/explanation/explanation-generator.js.map +1 -0
- package/dist/explanation/index.d.ts +11 -0
- package/dist/explanation/index.d.ts.map +1 -0
- package/dist/explanation/index.js +19 -0
- package/dist/explanation/index.js.map +1 -0
- package/dist/explanation/reasoning-chain.d.ts +314 -0
- package/dist/explanation/reasoning-chain.d.ts.map +1 -0
- package/dist/explanation/reasoning-chain.js +414 -0
- package/dist/explanation/reasoning-chain.js.map +1 -0
- package/dist/explanation/visual-explanation.d.ts +315 -0
- package/dist/explanation/visual-explanation.d.ts.map +1 -0
- package/dist/explanation/visual-explanation.js +667 -0
- package/dist/explanation/visual-explanation.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/requirements/decomposer.d.ts +235 -0
- package/dist/requirements/decomposer.d.ts.map +1 -0
- package/dist/requirements/decomposer.js +587 -0
- package/dist/requirements/decomposer.js.map +1 -0
- package/dist/requirements/related-finder.d.ts +261 -0
- package/dist/requirements/related-finder.d.ts.map +1 -0
- package/dist/requirements/related-finder.js +629 -0
- package/dist/requirements/related-finder.js.map +1 -0
- package/dist/traceability/impact.d.ts +196 -0
- package/dist/traceability/impact.d.ts.map +1 -0
- package/dist/traceability/impact.js +438 -0
- package/dist/traceability/impact.js.map +1 -0
- package/dist/traceability/index.d.ts +9 -0
- package/dist/traceability/index.d.ts.map +1 -0
- package/dist/traceability/index.js +10 -0
- package/dist/traceability/index.js.map +1 -0
- package/dist/traceability/manager.d.ts +266 -0
- package/dist/traceability/manager.d.ts.map +1 -0
- package/dist/traceability/manager.js +412 -0
- package/dist/traceability/manager.js.map +1 -0
- package/dist/types/common.d.ts +294 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +15 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/ears.d.ts +158 -0
- package/dist/types/ears.d.ts.map +1 -0
- package/dist/types/ears.js +33 -0
- package/dist/types/ears.js.map +1 -0
- package/dist/types/errors.d.ts +176 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +55 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/data-protector.d.ts +122 -0
- package/dist/utils/data-protector.d.ts.map +1 -0
- package/dist/utils/data-protector.js +275 -0
- package/dist/utils/data-protector.js.map +1 -0
- package/dist/utils/error-handler.d.ts +101 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +324 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/i18n-manager.d.ts +259 -0
- package/dist/utils/i18n-manager.d.ts.map +1 -0
- package/dist/utils/i18n-manager.js +554 -0
- package/dist/utils/i18n-manager.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +120 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +237 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/performance-profiler.d.ts +251 -0
- package/dist/utils/performance-profiler.d.ts.map +1 -0
- package/dist/utils/performance-profiler.js +458 -0
- package/dist/utils/performance-profiler.js.map +1 -0
- package/dist/utils/scalability-optimizer.d.ts +294 -0
- package/dist/utils/scalability-optimizer.d.ts.map +1 -0
- package/dist/utils/scalability-optimizer.js +606 -0
- package/dist/utils/scalability-optimizer.js.map +1 -0
- package/dist/utils/structured-logger.d.ts +294 -0
- package/dist/utils/structured-logger.d.ts.map +1 -0
- package/dist/utils/structured-logger.js +630 -0
- package/dist/utils/structured-logger.js.map +1 -0
- package/dist/utils/version-compatibility.d.ts +217 -0
- package/dist/utils/version-compatibility.d.ts.map +1 -0
- package/dist/utils/version-compatibility.js +443 -0
- package/dist/utils/version-compatibility.js.map +1 -0
- package/dist/validators/ears-validator.d.ts +182 -0
- package/dist/validators/ears-validator.d.ts.map +1 -0
- package/dist/validators/ears-validator.js +357 -0
- package/dist/validators/ears-validator.js.map +1 -0
- package/dist/validators/index.d.ts +8 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +9 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +8 -0
- package/dist/version.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Compatibility Checker
|
|
3
|
+
*
|
|
4
|
+
* Checks and manages version compatibility
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module utils/version-compatibility
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-ERR-003 - Version Compatibility
|
|
10
|
+
* @see Article IX - Continuous Adaptation
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Version info
|
|
14
|
+
*/
|
|
15
|
+
export interface VersionInfo {
|
|
16
|
+
/** Major version */
|
|
17
|
+
major: number;
|
|
18
|
+
/** Minor version */
|
|
19
|
+
minor: number;
|
|
20
|
+
/** Patch version */
|
|
21
|
+
patch: number;
|
|
22
|
+
/** Prerelease tag */
|
|
23
|
+
prerelease?: string;
|
|
24
|
+
/** Build metadata */
|
|
25
|
+
build?: string;
|
|
26
|
+
/** Raw version string */
|
|
27
|
+
raw: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Compatibility level
|
|
31
|
+
*/
|
|
32
|
+
export type CompatibilityLevel = 'compatible' | 'minor-incompatible' | 'major-incompatible' | 'unknown';
|
|
33
|
+
/**
|
|
34
|
+
* Compatibility result
|
|
35
|
+
*/
|
|
36
|
+
export interface CompatibilityResult {
|
|
37
|
+
/** Current version */
|
|
38
|
+
current: VersionInfo;
|
|
39
|
+
/** Required version */
|
|
40
|
+
required: VersionInfo;
|
|
41
|
+
/** Compatibility level */
|
|
42
|
+
level: CompatibilityLevel;
|
|
43
|
+
/** Is compatible */
|
|
44
|
+
compatible: boolean;
|
|
45
|
+
/** Message */
|
|
46
|
+
message: string;
|
|
47
|
+
/** Breaking changes */
|
|
48
|
+
breakingChanges?: string[];
|
|
49
|
+
/** Migration steps */
|
|
50
|
+
migrationSteps?: string[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Dependency info
|
|
54
|
+
*/
|
|
55
|
+
export interface DependencyInfo {
|
|
56
|
+
/** Package name */
|
|
57
|
+
name: string;
|
|
58
|
+
/** Current version */
|
|
59
|
+
currentVersion: string;
|
|
60
|
+
/** Required version range */
|
|
61
|
+
requiredVersion: string;
|
|
62
|
+
/** Latest version */
|
|
63
|
+
latestVersion?: string;
|
|
64
|
+
/** Is satisfied */
|
|
65
|
+
satisfied: boolean;
|
|
66
|
+
/** Is outdated */
|
|
67
|
+
outdated: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Compatibility report
|
|
71
|
+
*/
|
|
72
|
+
export interface CompatibilityReport {
|
|
73
|
+
/** Timestamp */
|
|
74
|
+
timestamp: Date;
|
|
75
|
+
/** System version */
|
|
76
|
+
systemVersion: VersionInfo;
|
|
77
|
+
/** Dependencies checked */
|
|
78
|
+
dependencies: DependencyInfo[];
|
|
79
|
+
/** Overall compatible */
|
|
80
|
+
compatible: boolean;
|
|
81
|
+
/** Warnings */
|
|
82
|
+
warnings: string[];
|
|
83
|
+
/** Errors */
|
|
84
|
+
errors: string[];
|
|
85
|
+
/** Recommendations */
|
|
86
|
+
recommendations: string[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Version constraint
|
|
90
|
+
*/
|
|
91
|
+
export interface VersionConstraint {
|
|
92
|
+
/** Operator */
|
|
93
|
+
operator: '>=' | '>' | '<=' | '<' | '=' | '^' | '~';
|
|
94
|
+
/** Version */
|
|
95
|
+
version: VersionInfo;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Migration guide
|
|
99
|
+
*/
|
|
100
|
+
export interface MigrationGuide {
|
|
101
|
+
/** From version */
|
|
102
|
+
fromVersion: string;
|
|
103
|
+
/** To version */
|
|
104
|
+
toVersion: string;
|
|
105
|
+
/** Steps */
|
|
106
|
+
steps: Array<{
|
|
107
|
+
description: string;
|
|
108
|
+
action: string;
|
|
109
|
+
automated: boolean;
|
|
110
|
+
}>;
|
|
111
|
+
/** Breaking changes */
|
|
112
|
+
breakingChanges: string[];
|
|
113
|
+
/** Deprecations */
|
|
114
|
+
deprecations: string[];
|
|
115
|
+
/** New features */
|
|
116
|
+
newFeatures: string[];
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Compatibility config
|
|
120
|
+
*/
|
|
121
|
+
export interface VersionCompatibilityConfig {
|
|
122
|
+
/** Strict mode */
|
|
123
|
+
strictMode: boolean;
|
|
124
|
+
/** Allow prerelease */
|
|
125
|
+
allowPrerelease: boolean;
|
|
126
|
+
/** Check dependencies */
|
|
127
|
+
checkDependencies: boolean;
|
|
128
|
+
/** Auto-migrate */
|
|
129
|
+
autoMigrate: boolean;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Default configuration
|
|
133
|
+
*/
|
|
134
|
+
export declare const DEFAULT_COMPATIBILITY_CONFIG: VersionCompatibilityConfig;
|
|
135
|
+
/**
|
|
136
|
+
* Version Compatibility Checker
|
|
137
|
+
*/
|
|
138
|
+
export declare class VersionCompatibility {
|
|
139
|
+
private config;
|
|
140
|
+
private migrationGuides;
|
|
141
|
+
constructor(config?: Partial<VersionCompatibilityConfig>);
|
|
142
|
+
/**
|
|
143
|
+
* Parse version string
|
|
144
|
+
*/
|
|
145
|
+
parseVersion(version: string): VersionInfo | null;
|
|
146
|
+
/**
|
|
147
|
+
* Format version to string
|
|
148
|
+
*/
|
|
149
|
+
formatVersion(info: VersionInfo): string;
|
|
150
|
+
/**
|
|
151
|
+
* Compare two versions
|
|
152
|
+
* Returns: -1 if a < b, 0 if a == b, 1 if a > b
|
|
153
|
+
*/
|
|
154
|
+
compareVersions(a: VersionInfo | string, b: VersionInfo | string): number;
|
|
155
|
+
/**
|
|
156
|
+
* Check version compatibility
|
|
157
|
+
*/
|
|
158
|
+
checkCompatibility(current: string, required: string): CompatibilityResult;
|
|
159
|
+
/**
|
|
160
|
+
* Check version range (semver style)
|
|
161
|
+
*/
|
|
162
|
+
satisfiesRange(version: string, range: string): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Parse version range
|
|
165
|
+
*/
|
|
166
|
+
parseRange(range: string): VersionConstraint[];
|
|
167
|
+
/**
|
|
168
|
+
* Check if version satisfies constraint
|
|
169
|
+
*/
|
|
170
|
+
private satisfiesConstraint;
|
|
171
|
+
/**
|
|
172
|
+
* Check dependency compatibility
|
|
173
|
+
*/
|
|
174
|
+
checkDependency(name: string, currentVersion: string, requiredVersion: string, latestVersion?: string): DependencyInfo;
|
|
175
|
+
/**
|
|
176
|
+
* Generate compatibility report
|
|
177
|
+
*/
|
|
178
|
+
generateReport(systemVersion: string, dependencies: Array<{
|
|
179
|
+
name: string;
|
|
180
|
+
current: string;
|
|
181
|
+
required: string;
|
|
182
|
+
latest?: string;
|
|
183
|
+
}>): CompatibilityReport;
|
|
184
|
+
/**
|
|
185
|
+
* Register migration guide
|
|
186
|
+
*/
|
|
187
|
+
registerMigration(guide: MigrationGuide): void;
|
|
188
|
+
/**
|
|
189
|
+
* Get migration guide
|
|
190
|
+
*/
|
|
191
|
+
getMigrationGuide(from: string, to: string): MigrationGuide | null;
|
|
192
|
+
/**
|
|
193
|
+
* Get breaking changes between versions
|
|
194
|
+
*/
|
|
195
|
+
private getBreakingChanges;
|
|
196
|
+
/**
|
|
197
|
+
* Get migration steps between versions
|
|
198
|
+
*/
|
|
199
|
+
private getMigrationSteps;
|
|
200
|
+
/**
|
|
201
|
+
* Get next version
|
|
202
|
+
*/
|
|
203
|
+
getNextVersion(current: string, bump: 'major' | 'minor' | 'patch'): string;
|
|
204
|
+
/**
|
|
205
|
+
* Determine version bump type
|
|
206
|
+
*/
|
|
207
|
+
determineBumpType(from: string, to: string): 'major' | 'minor' | 'patch' | null;
|
|
208
|
+
/**
|
|
209
|
+
* Format report as string
|
|
210
|
+
*/
|
|
211
|
+
formatReport(report: CompatibilityReport): string;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Create version compatibility checker instance
|
|
215
|
+
*/
|
|
216
|
+
export declare function createVersionCompatibility(config?: Partial<VersionCompatibilityConfig>): VersionCompatibility;
|
|
217
|
+
//# sourceMappingURL=version-compatibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-compatibility.d.ts","sourceRoot":"","sources":["../../src/utils/version-compatibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Compatibility Checker
|
|
3
|
+
*
|
|
4
|
+
* Checks and manages version compatibility
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module utils/version-compatibility
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-ERR-003 - Version Compatibility
|
|
10
|
+
* @see Article IX - Continuous Adaptation
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Default configuration
|
|
14
|
+
*/
|
|
15
|
+
export const DEFAULT_COMPATIBILITY_CONFIG = {
|
|
16
|
+
strictMode: false,
|
|
17
|
+
allowPrerelease: false,
|
|
18
|
+
checkDependencies: true,
|
|
19
|
+
autoMigrate: false,
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Version pattern
|
|
23
|
+
*/
|
|
24
|
+
const VERSION_PATTERN = /^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9.-]+))?(?:\+([a-zA-Z0-9.-]+))?$/;
|
|
25
|
+
/**
|
|
26
|
+
* Version Compatibility Checker
|
|
27
|
+
*/
|
|
28
|
+
export class VersionCompatibility {
|
|
29
|
+
config;
|
|
30
|
+
migrationGuides = new Map();
|
|
31
|
+
constructor(config) {
|
|
32
|
+
this.config = { ...DEFAULT_COMPATIBILITY_CONFIG, ...config };
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse version string
|
|
36
|
+
*/
|
|
37
|
+
parseVersion(version) {
|
|
38
|
+
const match = version.trim().match(VERSION_PATTERN);
|
|
39
|
+
if (!match) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
major: parseInt(match[1], 10),
|
|
44
|
+
minor: parseInt(match[2], 10),
|
|
45
|
+
patch: parseInt(match[3], 10),
|
|
46
|
+
prerelease: match[4],
|
|
47
|
+
build: match[5],
|
|
48
|
+
raw: version,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Format version to string
|
|
53
|
+
*/
|
|
54
|
+
formatVersion(info) {
|
|
55
|
+
let version = `${info.major}.${info.minor}.${info.patch}`;
|
|
56
|
+
if (info.prerelease) {
|
|
57
|
+
version += `-${info.prerelease}`;
|
|
58
|
+
}
|
|
59
|
+
if (info.build) {
|
|
60
|
+
version += `+${info.build}`;
|
|
61
|
+
}
|
|
62
|
+
return version;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Compare two versions
|
|
66
|
+
* Returns: -1 if a < b, 0 if a == b, 1 if a > b
|
|
67
|
+
*/
|
|
68
|
+
compareVersions(a, b) {
|
|
69
|
+
const versionA = typeof a === 'string' ? this.parseVersion(a) : a;
|
|
70
|
+
const versionB = typeof b === 'string' ? this.parseVersion(b) : b;
|
|
71
|
+
if (!versionA || !versionB) {
|
|
72
|
+
throw new Error('Invalid version format');
|
|
73
|
+
}
|
|
74
|
+
// Compare major
|
|
75
|
+
if (versionA.major !== versionB.major) {
|
|
76
|
+
return versionA.major > versionB.major ? 1 : -1;
|
|
77
|
+
}
|
|
78
|
+
// Compare minor
|
|
79
|
+
if (versionA.minor !== versionB.minor) {
|
|
80
|
+
return versionA.minor > versionB.minor ? 1 : -1;
|
|
81
|
+
}
|
|
82
|
+
// Compare patch
|
|
83
|
+
if (versionA.patch !== versionB.patch) {
|
|
84
|
+
return versionA.patch > versionB.patch ? 1 : -1;
|
|
85
|
+
}
|
|
86
|
+
// Compare prerelease
|
|
87
|
+
if (versionA.prerelease && versionB.prerelease) {
|
|
88
|
+
return versionA.prerelease.localeCompare(versionB.prerelease);
|
|
89
|
+
}
|
|
90
|
+
if (versionA.prerelease) {
|
|
91
|
+
return -1; // Prerelease is less than release
|
|
92
|
+
}
|
|
93
|
+
if (versionB.prerelease) {
|
|
94
|
+
return 1;
|
|
95
|
+
}
|
|
96
|
+
return 0;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Check version compatibility
|
|
100
|
+
*/
|
|
101
|
+
checkCompatibility(current, required) {
|
|
102
|
+
const currentVersion = this.parseVersion(current);
|
|
103
|
+
const requiredVersion = this.parseVersion(required);
|
|
104
|
+
if (!currentVersion || !requiredVersion) {
|
|
105
|
+
return {
|
|
106
|
+
current: currentVersion ?? { major: 0, minor: 0, patch: 0, raw: current },
|
|
107
|
+
required: requiredVersion ?? { major: 0, minor: 0, patch: 0, raw: required },
|
|
108
|
+
level: 'unknown',
|
|
109
|
+
compatible: false,
|
|
110
|
+
message: 'Unable to parse version',
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Check prerelease
|
|
114
|
+
if (!this.config.allowPrerelease && currentVersion.prerelease) {
|
|
115
|
+
return {
|
|
116
|
+
current: currentVersion,
|
|
117
|
+
required: requiredVersion,
|
|
118
|
+
level: 'unknown',
|
|
119
|
+
compatible: false,
|
|
120
|
+
message: 'Prerelease versions are not allowed',
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
// Major version mismatch
|
|
124
|
+
if (currentVersion.major !== requiredVersion.major) {
|
|
125
|
+
const breaking = this.getBreakingChanges(requiredVersion, currentVersion);
|
|
126
|
+
const migration = this.getMigrationSteps(requiredVersion, currentVersion);
|
|
127
|
+
return {
|
|
128
|
+
current: currentVersion,
|
|
129
|
+
required: requiredVersion,
|
|
130
|
+
level: 'major-incompatible',
|
|
131
|
+
compatible: false,
|
|
132
|
+
message: `Major version mismatch: ${current} vs ${required}`,
|
|
133
|
+
breakingChanges: breaking,
|
|
134
|
+
migrationSteps: migration,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// Minor version mismatch (current < required)
|
|
138
|
+
if (currentVersion.minor < requiredVersion.minor) {
|
|
139
|
+
if (this.config.strictMode) {
|
|
140
|
+
return {
|
|
141
|
+
current: currentVersion,
|
|
142
|
+
required: requiredVersion,
|
|
143
|
+
level: 'minor-incompatible',
|
|
144
|
+
compatible: false,
|
|
145
|
+
message: `Minor version mismatch (strict mode): ${current} vs ${required}`,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
current: currentVersion,
|
|
150
|
+
required: requiredVersion,
|
|
151
|
+
level: 'minor-incompatible',
|
|
152
|
+
compatible: true,
|
|
153
|
+
message: `Minor version older than required: ${current} vs ${required}`,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
// Patch version mismatch (current < required)
|
|
157
|
+
if (currentVersion.minor === requiredVersion.minor &&
|
|
158
|
+
currentVersion.patch < requiredVersion.patch) {
|
|
159
|
+
if (this.config.strictMode) {
|
|
160
|
+
return {
|
|
161
|
+
current: currentVersion,
|
|
162
|
+
required: requiredVersion,
|
|
163
|
+
level: 'compatible',
|
|
164
|
+
compatible: false,
|
|
165
|
+
message: `Patch version mismatch (strict mode): ${current} vs ${required}`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
current: currentVersion,
|
|
171
|
+
required: requiredVersion,
|
|
172
|
+
level: 'compatible',
|
|
173
|
+
compatible: true,
|
|
174
|
+
message: `Version ${current} is compatible with ${required}`,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Check version range (semver style)
|
|
179
|
+
*/
|
|
180
|
+
satisfiesRange(version, range) {
|
|
181
|
+
const v = this.parseVersion(version);
|
|
182
|
+
if (!v)
|
|
183
|
+
return false;
|
|
184
|
+
const constraints = this.parseRange(range);
|
|
185
|
+
for (const constraint of constraints) {
|
|
186
|
+
if (!this.satisfiesConstraint(v, constraint)) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Parse version range
|
|
194
|
+
*/
|
|
195
|
+
parseRange(range) {
|
|
196
|
+
const constraints = [];
|
|
197
|
+
// Handle ^ (caret) - compatible with version
|
|
198
|
+
if (range.startsWith('^')) {
|
|
199
|
+
const v = this.parseVersion(range.slice(1));
|
|
200
|
+
if (v) {
|
|
201
|
+
constraints.push({ operator: '>=', version: v });
|
|
202
|
+
constraints.push({
|
|
203
|
+
operator: '<',
|
|
204
|
+
version: { ...v, major: v.major + 1, minor: 0, patch: 0, raw: '' }
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
return constraints;
|
|
208
|
+
}
|
|
209
|
+
// Handle ~ (tilde) - approximately equivalent
|
|
210
|
+
if (range.startsWith('~')) {
|
|
211
|
+
const v = this.parseVersion(range.slice(1));
|
|
212
|
+
if (v) {
|
|
213
|
+
constraints.push({ operator: '>=', version: v });
|
|
214
|
+
constraints.push({
|
|
215
|
+
operator: '<',
|
|
216
|
+
version: { ...v, minor: v.minor + 1, patch: 0, raw: '' }
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
return constraints;
|
|
220
|
+
}
|
|
221
|
+
// Handle >= > <= < =
|
|
222
|
+
const parts = range.split(/\s+/);
|
|
223
|
+
for (const part of parts) {
|
|
224
|
+
let operator = '=';
|
|
225
|
+
let versionStr = part;
|
|
226
|
+
if (part.startsWith('>=')) {
|
|
227
|
+
operator = '>=';
|
|
228
|
+
versionStr = part.slice(2);
|
|
229
|
+
}
|
|
230
|
+
else if (part.startsWith('<=')) {
|
|
231
|
+
operator = '<=';
|
|
232
|
+
versionStr = part.slice(2);
|
|
233
|
+
}
|
|
234
|
+
else if (part.startsWith('>')) {
|
|
235
|
+
operator = '>';
|
|
236
|
+
versionStr = part.slice(1);
|
|
237
|
+
}
|
|
238
|
+
else if (part.startsWith('<')) {
|
|
239
|
+
operator = '<';
|
|
240
|
+
versionStr = part.slice(1);
|
|
241
|
+
}
|
|
242
|
+
else if (part.startsWith('=')) {
|
|
243
|
+
versionStr = part.slice(1);
|
|
244
|
+
}
|
|
245
|
+
const v = this.parseVersion(versionStr);
|
|
246
|
+
if (v) {
|
|
247
|
+
constraints.push({ operator, version: v });
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return constraints;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Check if version satisfies constraint
|
|
254
|
+
*/
|
|
255
|
+
satisfiesConstraint(version, constraint) {
|
|
256
|
+
const cmp = this.compareVersions(version, constraint.version);
|
|
257
|
+
switch (constraint.operator) {
|
|
258
|
+
case '>=': return cmp >= 0;
|
|
259
|
+
case '>': return cmp > 0;
|
|
260
|
+
case '<=': return cmp <= 0;
|
|
261
|
+
case '<': return cmp < 0;
|
|
262
|
+
case '=': return cmp === 0;
|
|
263
|
+
case '^': // Already expanded in parseRange
|
|
264
|
+
case '~':
|
|
265
|
+
return false;
|
|
266
|
+
default:
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Check dependency compatibility
|
|
272
|
+
*/
|
|
273
|
+
checkDependency(name, currentVersion, requiredVersion, latestVersion) {
|
|
274
|
+
const satisfied = this.satisfiesRange(currentVersion, requiredVersion);
|
|
275
|
+
const outdated = latestVersion ?
|
|
276
|
+
this.compareVersions(currentVersion, latestVersion) < 0 : false;
|
|
277
|
+
return {
|
|
278
|
+
name,
|
|
279
|
+
currentVersion,
|
|
280
|
+
requiredVersion,
|
|
281
|
+
latestVersion,
|
|
282
|
+
satisfied,
|
|
283
|
+
outdated,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Generate compatibility report
|
|
288
|
+
*/
|
|
289
|
+
generateReport(systemVersion, dependencies) {
|
|
290
|
+
const sysVersion = this.parseVersion(systemVersion);
|
|
291
|
+
const depResults = [];
|
|
292
|
+
const warnings = [];
|
|
293
|
+
const errors = [];
|
|
294
|
+
const recommendations = [];
|
|
295
|
+
// Check each dependency
|
|
296
|
+
for (const dep of dependencies) {
|
|
297
|
+
const result = this.checkDependency(dep.name, dep.current, dep.required, dep.latest);
|
|
298
|
+
depResults.push(result);
|
|
299
|
+
if (!result.satisfied) {
|
|
300
|
+
errors.push(`${dep.name}: ${dep.current} does not satisfy ${dep.required}`);
|
|
301
|
+
}
|
|
302
|
+
else if (result.outdated) {
|
|
303
|
+
warnings.push(`${dep.name}: ${dep.current} is outdated (latest: ${dep.latest})`);
|
|
304
|
+
recommendations.push(`Update ${dep.name} to ${dep.latest}`);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
const compatible = errors.length === 0;
|
|
308
|
+
if (!compatible) {
|
|
309
|
+
recommendations.push('Run dependency update to resolve incompatibilities');
|
|
310
|
+
}
|
|
311
|
+
return {
|
|
312
|
+
timestamp: new Date(),
|
|
313
|
+
systemVersion: sysVersion ?? { major: 0, minor: 0, patch: 0, raw: systemVersion },
|
|
314
|
+
dependencies: depResults,
|
|
315
|
+
compatible,
|
|
316
|
+
warnings,
|
|
317
|
+
errors,
|
|
318
|
+
recommendations,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Register migration guide
|
|
323
|
+
*/
|
|
324
|
+
registerMigration(guide) {
|
|
325
|
+
const key = `${guide.fromVersion}->${guide.toVersion}`;
|
|
326
|
+
this.migrationGuides.set(key, guide);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Get migration guide
|
|
330
|
+
*/
|
|
331
|
+
getMigrationGuide(from, to) {
|
|
332
|
+
const key = `${from}->${to}`;
|
|
333
|
+
return this.migrationGuides.get(key) ?? null;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Get breaking changes between versions
|
|
337
|
+
*/
|
|
338
|
+
getBreakingChanges(from, to) {
|
|
339
|
+
const key = `${this.formatVersion(from)}->${this.formatVersion(to)}`;
|
|
340
|
+
const guide = this.migrationGuides.get(key);
|
|
341
|
+
return guide?.breakingChanges ?? [];
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Get migration steps between versions
|
|
345
|
+
*/
|
|
346
|
+
getMigrationSteps(from, to) {
|
|
347
|
+
const key = `${this.formatVersion(from)}->${this.formatVersion(to)}`;
|
|
348
|
+
const guide = this.migrationGuides.get(key);
|
|
349
|
+
return guide?.steps.map((s) => s.description) ?? [];
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Get next version
|
|
353
|
+
*/
|
|
354
|
+
getNextVersion(current, bump) {
|
|
355
|
+
const v = this.parseVersion(current);
|
|
356
|
+
if (!v) {
|
|
357
|
+
throw new Error(`Invalid version: ${current}`);
|
|
358
|
+
}
|
|
359
|
+
switch (bump) {
|
|
360
|
+
case 'major':
|
|
361
|
+
return `${v.major + 1}.0.0`;
|
|
362
|
+
case 'minor':
|
|
363
|
+
return `${v.major}.${v.minor + 1}.0`;
|
|
364
|
+
case 'patch':
|
|
365
|
+
return `${v.major}.${v.minor}.${v.patch + 1}`;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Determine version bump type
|
|
370
|
+
*/
|
|
371
|
+
determineBumpType(from, to) {
|
|
372
|
+
const vFrom = this.parseVersion(from);
|
|
373
|
+
const vTo = this.parseVersion(to);
|
|
374
|
+
if (!vFrom || !vTo)
|
|
375
|
+
return null;
|
|
376
|
+
if (vTo.major > vFrom.major)
|
|
377
|
+
return 'major';
|
|
378
|
+
if (vTo.minor > vFrom.minor)
|
|
379
|
+
return 'minor';
|
|
380
|
+
if (vTo.patch > vFrom.patch)
|
|
381
|
+
return 'patch';
|
|
382
|
+
return null;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Format report as string
|
|
386
|
+
*/
|
|
387
|
+
formatReport(report) {
|
|
388
|
+
const lines = [];
|
|
389
|
+
lines.push('# Version Compatibility Report');
|
|
390
|
+
lines.push('');
|
|
391
|
+
lines.push(`**Generated:** ${report.timestamp.toISOString()}`);
|
|
392
|
+
lines.push(`**System Version:** ${this.formatVersion(report.systemVersion)}`);
|
|
393
|
+
lines.push(`**Overall Status:** ${report.compatible ? '✅ Compatible' : '❌ Incompatible'}`);
|
|
394
|
+
lines.push('');
|
|
395
|
+
// Dependencies
|
|
396
|
+
lines.push('## Dependencies');
|
|
397
|
+
lines.push('');
|
|
398
|
+
lines.push('| Package | Current | Required | Status |');
|
|
399
|
+
lines.push('|---------|---------|----------|--------|');
|
|
400
|
+
for (const dep of report.dependencies) {
|
|
401
|
+
const status = dep.satisfied
|
|
402
|
+
? (dep.outdated ? '⚠️ Outdated' : '✅ OK')
|
|
403
|
+
: '❌ Incompatible';
|
|
404
|
+
lines.push(`| ${dep.name} | ${dep.currentVersion} | ${dep.requiredVersion} | ${status} |`);
|
|
405
|
+
}
|
|
406
|
+
lines.push('');
|
|
407
|
+
// Errors
|
|
408
|
+
if (report.errors.length > 0) {
|
|
409
|
+
lines.push('## Errors');
|
|
410
|
+
lines.push('');
|
|
411
|
+
for (const error of report.errors) {
|
|
412
|
+
lines.push(`- ❌ ${error}`);
|
|
413
|
+
}
|
|
414
|
+
lines.push('');
|
|
415
|
+
}
|
|
416
|
+
// Warnings
|
|
417
|
+
if (report.warnings.length > 0) {
|
|
418
|
+
lines.push('## Warnings');
|
|
419
|
+
lines.push('');
|
|
420
|
+
for (const warning of report.warnings) {
|
|
421
|
+
lines.push(`- ⚠️ ${warning}`);
|
|
422
|
+
}
|
|
423
|
+
lines.push('');
|
|
424
|
+
}
|
|
425
|
+
// Recommendations
|
|
426
|
+
if (report.recommendations.length > 0) {
|
|
427
|
+
lines.push('## Recommendations');
|
|
428
|
+
lines.push('');
|
|
429
|
+
for (const rec of report.recommendations) {
|
|
430
|
+
lines.push(`- 💡 ${rec}`);
|
|
431
|
+
}
|
|
432
|
+
lines.push('');
|
|
433
|
+
}
|
|
434
|
+
return lines.join('\n');
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Create version compatibility checker instance
|
|
439
|
+
*/
|
|
440
|
+
export function createVersionCompatibility(config) {
|
|
441
|
+
return new VersionCompatibility(config);
|
|
442
|
+
}
|
|
443
|
+
//# sourceMappingURL=version-compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-compatibility.js","sourceRoot":"","sources":["../../src/utils/version-compatibility.ts"],"names":[],"mappings":"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"}
|