baseguard 1.0.0 → 1.0.2

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 (156) hide show
  1. package/.baseguardrc.example.json +64 -0
  2. package/.eslintrc.json +1 -1
  3. package/CHANGELOG.md +196 -0
  4. package/DEPLOYMENT.md +625 -0
  5. package/DEPLOYMENT_CHECKLIST.md +239 -0
  6. package/DEPLOYMENT_SUMMARY_v1.0.2.md +202 -0
  7. package/QUICK_START.md +134 -0
  8. package/README.md +447 -52
  9. package/RELEASE_NOTES_v1.0.2.md +434 -0
  10. package/bin/base.js +155 -36
  11. package/dist/ai/agentkit-orchestrator.d.ts +116 -0
  12. package/dist/ai/agentkit-orchestrator.d.ts.map +1 -0
  13. package/dist/ai/agentkit-orchestrator.js +417 -0
  14. package/dist/ai/agentkit-orchestrator.js.map +1 -0
  15. package/dist/ai/gemini-code-fixer.d.ts +85 -0
  16. package/dist/ai/gemini-code-fixer.d.ts.map +1 -0
  17. package/dist/ai/gemini-code-fixer.js +452 -0
  18. package/dist/ai/gemini-code-fixer.js.map +1 -0
  19. package/dist/ai/jules-implementer.d.ts +5 -4
  20. package/dist/ai/jules-implementer.d.ts.map +1 -1
  21. package/dist/ai/jules-implementer.js +6 -5
  22. package/dist/ai/jules-implementer.js.map +1 -1
  23. package/dist/ai/unified-code-fixer.d.ts +69 -0
  24. package/dist/ai/unified-code-fixer.d.ts.map +1 -0
  25. package/dist/ai/unified-code-fixer.js +289 -0
  26. package/dist/ai/unified-code-fixer.js.map +1 -0
  27. package/dist/commands/check.d.ts +3 -1
  28. package/dist/commands/check.d.ts.map +1 -1
  29. package/dist/commands/check.js +166 -34
  30. package/dist/commands/check.js.map +1 -1
  31. package/dist/commands/config.d.ts +4 -0
  32. package/dist/commands/config.d.ts.map +1 -1
  33. package/dist/commands/config.js +183 -0
  34. package/dist/commands/config.js.map +1 -1
  35. package/dist/commands/fix.d.ts.map +1 -1
  36. package/dist/commands/fix.js +89 -91
  37. package/dist/commands/fix.js.map +1 -1
  38. package/dist/commands/index.d.ts +1 -0
  39. package/dist/commands/index.d.ts.map +1 -1
  40. package/dist/commands/index.js +1 -0
  41. package/dist/commands/index.js.map +1 -1
  42. package/dist/commands/init.d.ts.map +1 -1
  43. package/dist/commands/init.js +16 -2
  44. package/dist/commands/init.js.map +1 -1
  45. package/dist/commands/status.d.ts +14 -0
  46. package/dist/commands/status.d.ts.map +1 -0
  47. package/dist/commands/status.js +254 -0
  48. package/dist/commands/status.js.map +1 -0
  49. package/dist/core/baseguard.d.ts +47 -5
  50. package/dist/core/baseguard.d.ts.map +1 -1
  51. package/dist/core/baseguard.js +506 -52
  52. package/dist/core/baseguard.js.map +1 -1
  53. package/dist/core/cache-manager.d.ts.map +1 -1
  54. package/dist/core/cache-manager.js +3 -1
  55. package/dist/core/cache-manager.js.map +1 -1
  56. package/dist/core/configuration-recovery.d.ts +116 -0
  57. package/dist/core/configuration-recovery.d.ts.map +1 -0
  58. package/dist/core/configuration-recovery.js +552 -0
  59. package/dist/core/configuration-recovery.js.map +1 -0
  60. package/dist/core/configuration.d.ts +4 -0
  61. package/dist/core/configuration.d.ts.map +1 -1
  62. package/dist/core/configuration.js +35 -0
  63. package/dist/core/configuration.js.map +1 -1
  64. package/dist/core/debug-logger.d.ts +181 -0
  65. package/dist/core/debug-logger.d.ts.map +1 -0
  66. package/dist/core/debug-logger.js +479 -0
  67. package/dist/core/debug-logger.js.map +1 -0
  68. package/dist/core/file-processor.d.ts.map +1 -1
  69. package/dist/core/file-processor.js +8 -2
  70. package/dist/core/file-processor.js.map +1 -1
  71. package/dist/core/graceful-degradation-manager.d.ts +123 -0
  72. package/dist/core/graceful-degradation-manager.d.ts.map +1 -0
  73. package/dist/core/graceful-degradation-manager.js +512 -0
  74. package/dist/core/graceful-degradation-manager.js.map +1 -0
  75. package/dist/core/index.d.ts +4 -0
  76. package/dist/core/index.d.ts.map +1 -1
  77. package/dist/core/index.js +4 -0
  78. package/dist/core/index.js.map +1 -1
  79. package/dist/core/logger.d.ts +1 -0
  80. package/dist/core/logger.d.ts.map +1 -0
  81. package/dist/core/logger.js +2 -0
  82. package/dist/core/logger.js.map +1 -0
  83. package/dist/core/memory-manager.d.ts +84 -0
  84. package/dist/core/memory-manager.d.ts.map +1 -1
  85. package/dist/core/memory-manager.js +236 -1
  86. package/dist/core/memory-manager.js.map +1 -1
  87. package/dist/core/startup-optimizer.d.ts +12 -0
  88. package/dist/core/startup-optimizer.d.ts.map +1 -1
  89. package/dist/core/startup-optimizer.js +60 -0
  90. package/dist/core/startup-optimizer.js.map +1 -1
  91. package/dist/core/system-error-handler.d.ts +65 -0
  92. package/dist/core/system-error-handler.d.ts.map +1 -0
  93. package/dist/core/system-error-handler.js +646 -0
  94. package/dist/core/system-error-handler.js.map +1 -0
  95. package/dist/git/github-manager.d.ts +5 -16
  96. package/dist/git/github-manager.d.ts.map +1 -1
  97. package/dist/git/github-manager.js +6 -61
  98. package/dist/git/github-manager.js.map +1 -1
  99. package/dist/parsers/react-parser-optimized.d.ts +16 -0
  100. package/dist/parsers/react-parser-optimized.d.ts.map +1 -0
  101. package/dist/parsers/react-parser-optimized.js +147 -0
  102. package/dist/parsers/react-parser-optimized.js.map +1 -0
  103. package/dist/parsers/react-parser.d.ts.map +1 -1
  104. package/dist/parsers/react-parser.js +17 -15
  105. package/dist/parsers/react-parser.js.map +1 -1
  106. package/dist/parsers/svelte-parser.d.ts.map +1 -1
  107. package/dist/parsers/svelte-parser.js +7 -3
  108. package/dist/parsers/svelte-parser.js.map +1 -1
  109. package/dist/parsers/vanilla-parser.d.ts.map +1 -1
  110. package/dist/parsers/vanilla-parser.js +7 -3
  111. package/dist/parsers/vanilla-parser.js.map +1 -1
  112. package/dist/parsers/vue-parser.d.ts +18 -0
  113. package/dist/parsers/vue-parser.d.ts.map +1 -1
  114. package/dist/parsers/vue-parser.js +387 -1
  115. package/dist/parsers/vue-parser.js.map +1 -1
  116. package/dist/types/index.d.ts +4 -0
  117. package/dist/types/index.d.ts.map +1 -1
  118. package/dist/ui/help.js +1 -1
  119. package/dist/ui/help.js.map +1 -1
  120. package/dist/ui/prompts.d.ts +7 -4
  121. package/dist/ui/prompts.d.ts.map +1 -1
  122. package/dist/ui/prompts.js +48 -55
  123. package/dist/ui/prompts.js.map +1 -1
  124. package/package.json +30 -5
  125. package/src/ai/__tests__/gemini-analyzer.test.ts +2 -2
  126. package/src/ai/agentkit-orchestrator.ts +534 -0
  127. package/src/ai/gemini-code-fixer.ts +540 -0
  128. package/src/ai/jules-implementer.ts +6 -5
  129. package/src/ai/unified-code-fixer.ts +347 -0
  130. package/src/commands/config.ts +218 -0
  131. package/src/commands/fix.ts +98 -94
  132. package/src/commands/index.ts +2 -1
  133. package/src/commands/init.ts +16 -2
  134. package/src/commands/status.ts +307 -0
  135. package/src/core/baseguard.ts +36 -22
  136. package/src/core/cache-manager.ts +4 -2
  137. package/src/core/configuration-recovery.ts +3 -6
  138. package/src/core/configuration.ts +37 -0
  139. package/src/core/debug-logger.ts +2 -2
  140. package/src/core/file-processor.ts +10 -3
  141. package/src/core/index.ts +5 -1
  142. package/src/core/memory-manager.ts +4 -3
  143. package/src/core/startup-optimizer.ts +70 -0
  144. package/src/core/system-error-handler.ts +9 -5
  145. package/src/git/github-manager.ts +11 -79
  146. package/src/parsers/react-parser.ts +2 -2
  147. package/src/parsers/svelte-parser.ts +13 -9
  148. package/src/parsers/vanilla-parser.ts +18 -14
  149. package/src/parsers/vue-parser.ts +20 -14
  150. package/src/types/index.ts +4 -0
  151. package/src/ui/help.ts +1 -1
  152. package/src/ui/prompts.ts +54 -61
  153. package/test-build.js +41 -0
  154. package/tests/e2e/git-integration.e2e.test.ts +1 -1
  155. package/tsconfig.json +0 -1
  156. package/vitest.config.ts +4 -2
@@ -0,0 +1,123 @@
1
+ import type { Violation, Analysis, Fix } from '../types/index.js';
2
+ import { ErrorType } from './error-handler.js';
3
+ export interface DegradationMode {
4
+ name: string;
5
+ description: string;
6
+ capabilities: {
7
+ baselineChecking: boolean;
8
+ aiAnalysis: boolean;
9
+ autoFix: boolean;
10
+ caching: boolean;
11
+ offlineMode: boolean;
12
+ };
13
+ limitations: string[];
14
+ }
15
+ export interface FallbackOptions {
16
+ useCache: boolean;
17
+ skipAI: boolean;
18
+ basicAnalysis: boolean;
19
+ offlineMode: boolean;
20
+ continueOnError: boolean;
21
+ }
22
+ /**
23
+ * Manages graceful degradation when services are unavailable
24
+ */
25
+ export declare class GracefulDegradationManager {
26
+ private static currentMode;
27
+ private static fallbackOptions;
28
+ private static serviceStatus;
29
+ private static cacheDir;
30
+ /**
31
+ * Available degradation modes
32
+ */
33
+ private static readonly DEGRADATION_MODES;
34
+ /**
35
+ * Initialize degradation manager
36
+ */
37
+ static initialize(): Promise<void>;
38
+ /**
39
+ * Set degradation mode
40
+ */
41
+ static setDegradationMode(modeName: string): Promise<void>;
42
+ /**
43
+ * Check availability of external services
44
+ */
45
+ static checkServiceAvailability(): Promise<void>;
46
+ /**
47
+ * Test individual service availability
48
+ */
49
+ private static testServiceAvailability;
50
+ /**
51
+ * Auto-adjust degradation mode based on service availability
52
+ */
53
+ private static autoAdjustDegradationMode;
54
+ /**
55
+ * Handle service failure and adjust accordingly
56
+ */
57
+ static handleServiceFailure(service: string, errorType: ErrorType): Promise<void>;
58
+ /**
59
+ * Show available fallback options to user
60
+ */
61
+ private static showFallbackOptions;
62
+ /**
63
+ * Create fallback analysis when AI is unavailable
64
+ */
65
+ static createFallbackAnalysis(violation: Violation, reason?: string): Analysis;
66
+ /**
67
+ * Estimate market share for fallback analysis
68
+ */
69
+ private static estimateMarketShare;
70
+ /**
71
+ * Get default fix strategy based on feature type
72
+ */
73
+ private static getDefaultFixStrategy;
74
+ /**
75
+ * Try to load cached analysis
76
+ */
77
+ static loadCachedAnalysis(violation: Violation): Promise<Analysis | null>;
78
+ /**
79
+ * Save analysis to cache
80
+ */
81
+ static saveAnalysisToCache(analysis: Analysis): Promise<void>;
82
+ /**
83
+ * Generate cache key for violation
84
+ */
85
+ private static generateCacheKey;
86
+ /**
87
+ * Create basic fix suggestion when auto-fix is unavailable
88
+ */
89
+ static createBasicFixSuggestion(violation: Violation, analysis: Analysis): Fix;
90
+ /**
91
+ * Generate basic patch template
92
+ */
93
+ private static generateBasicPatch;
94
+ /**
95
+ * Get current degradation mode
96
+ */
97
+ static getCurrentMode(): DegradationMode | null;
98
+ /**
99
+ * Get service status
100
+ */
101
+ static getServiceStatus(): Map<string, {
102
+ available: boolean;
103
+ lastCheck: number;
104
+ error?: string;
105
+ }>;
106
+ /**
107
+ * Get fallback options
108
+ */
109
+ static getFallbackOptions(): FallbackOptions;
110
+ /**
111
+ * Force refresh service status
112
+ */
113
+ static refreshServiceStatus(): Promise<void>;
114
+ /**
115
+ * Clean up old cache files
116
+ */
117
+ static cleanupCache(): Promise<void>;
118
+ /**
119
+ * Show degradation status to user
120
+ */
121
+ static showStatus(): void;
122
+ }
123
+ //# sourceMappingURL=graceful-degradation-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graceful-degradation-manager.d.ts","sourceRoot":"","sources":["../../src/core/graceful-degradation-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,512 @@
1
+ import chalk from 'chalk';
2
+ import { promises as fs } from 'fs';
3
+ import path from 'path';
4
+ import { ErrorType } from './error-handler.js';
5
+ import { UIComponents } from '../ui/components.js';
6
+ /**
7
+ * Manages graceful degradation when services are unavailable
8
+ */
9
+ export class GracefulDegradationManager {
10
+ static currentMode = null;
11
+ static fallbackOptions = {
12
+ useCache: true,
13
+ skipAI: false,
14
+ basicAnalysis: true,
15
+ offlineMode: false,
16
+ continueOnError: true
17
+ };
18
+ static serviceStatus = new Map();
19
+ static cacheDir = path.join(process.cwd(), '.baseguard', 'cache');
20
+ /**
21
+ * Available degradation modes
22
+ */
23
+ static DEGRADATION_MODES = {
24
+ full: {
25
+ name: 'Full Functionality',
26
+ description: 'All features available including AI analysis and fixing',
27
+ capabilities: {
28
+ baselineChecking: true,
29
+ aiAnalysis: true,
30
+ autoFix: true,
31
+ caching: true,
32
+ offlineMode: false
33
+ },
34
+ limitations: []
35
+ },
36
+ aiLimited: {
37
+ name: 'AI Limited',
38
+ description: 'Basic compatibility checking with limited AI features',
39
+ capabilities: {
40
+ baselineChecking: true,
41
+ aiAnalysis: false,
42
+ autoFix: false,
43
+ caching: true,
44
+ offlineMode: false
45
+ },
46
+ limitations: [
47
+ 'AI analysis unavailable',
48
+ 'Automatic fixing disabled',
49
+ 'Using cached analysis when available'
50
+ ]
51
+ },
52
+ offline: {
53
+ name: 'Offline Mode',
54
+ description: 'Baseline checking only using local data',
55
+ capabilities: {
56
+ baselineChecking: true,
57
+ aiAnalysis: false,
58
+ autoFix: false,
59
+ caching: true,
60
+ offlineMode: true
61
+ },
62
+ limitations: [
63
+ 'No network-dependent features',
64
+ 'AI services unavailable',
65
+ 'Using local web-features data only',
66
+ 'Cached results when available'
67
+ ]
68
+ },
69
+ minimal: {
70
+ name: 'Minimal Mode',
71
+ description: 'Basic error detection with minimal features',
72
+ capabilities: {
73
+ baselineChecking: true,
74
+ aiAnalysis: false,
75
+ autoFix: false,
76
+ caching: false,
77
+ offlineMode: true
78
+ },
79
+ limitations: [
80
+ 'No AI features',
81
+ 'No caching',
82
+ 'Basic compatibility checking only',
83
+ 'Manual review required for all issues'
84
+ ]
85
+ }
86
+ };
87
+ /**
88
+ * Initialize degradation manager
89
+ */
90
+ static async initialize() {
91
+ // Ensure cache directory exists
92
+ await fs.mkdir(this.cacheDir, { recursive: true });
93
+ // Set initial mode based on environment
94
+ if (process.env.BASEGUARD_OFFLINE === 'true') {
95
+ await this.setDegradationMode('offline');
96
+ }
97
+ else {
98
+ await this.setDegradationMode('full');
99
+ }
100
+ // Check service availability
101
+ await this.checkServiceAvailability();
102
+ }
103
+ /**
104
+ * Set degradation mode
105
+ */
106
+ static async setDegradationMode(modeName) {
107
+ const mode = this.DEGRADATION_MODES[modeName];
108
+ if (!mode) {
109
+ throw new Error(`Unknown degradation mode: ${modeName}`);
110
+ }
111
+ this.currentMode = mode;
112
+ // Update environment variables based on mode
113
+ if (mode.capabilities.offlineMode) {
114
+ process.env.BASEGUARD_OFFLINE = 'true';
115
+ }
116
+ // Update fallback options
117
+ this.fallbackOptions = {
118
+ useCache: mode.capabilities.caching,
119
+ skipAI: !mode.capabilities.aiAnalysis,
120
+ basicAnalysis: true,
121
+ offlineMode: mode.capabilities.offlineMode,
122
+ continueOnError: true
123
+ };
124
+ console.log(chalk.cyan(`šŸ”„ Switched to ${mode.name}: ${mode.description}`));
125
+ if (mode.limitations.length > 0) {
126
+ console.log(chalk.yellow('āš ļø Limitations in this mode:'));
127
+ mode.limitations.forEach(limitation => {
128
+ console.log(chalk.yellow(` • ${limitation}`));
129
+ });
130
+ }
131
+ }
132
+ /**
133
+ * Check availability of external services
134
+ */
135
+ static async checkServiceAvailability() {
136
+ const services = ['gemini', 'jules', 'network'];
137
+ for (const service of services) {
138
+ try {
139
+ const available = await this.testServiceAvailability(service);
140
+ this.serviceStatus.set(service, {
141
+ available,
142
+ lastCheck: Date.now(),
143
+ error: available ? undefined : 'Service unavailable'
144
+ });
145
+ }
146
+ catch (error) {
147
+ this.serviceStatus.set(service, {
148
+ available: false,
149
+ lastCheck: Date.now(),
150
+ error: error instanceof Error ? error.message : 'Unknown error'
151
+ });
152
+ }
153
+ }
154
+ // Auto-adjust degradation mode based on service availability
155
+ await this.autoAdjustDegradationMode();
156
+ }
157
+ /**
158
+ * Test individual service availability
159
+ */
160
+ static async testServiceAvailability(service) {
161
+ switch (service) {
162
+ case 'network':
163
+ try {
164
+ // Simple network connectivity test
165
+ const response = await fetch('https://www.google.com', {
166
+ method: 'HEAD',
167
+ signal: AbortSignal.timeout(5000)
168
+ });
169
+ return response.ok;
170
+ }
171
+ catch (error) {
172
+ return false;
173
+ }
174
+ case 'gemini':
175
+ // This would be implemented with actual Gemini API test
176
+ return this.serviceStatus.get('network')?.available ?? false;
177
+ case 'jules':
178
+ // This would be implemented with actual Jules API test
179
+ return this.serviceStatus.get('network')?.available ?? false;
180
+ default:
181
+ return false;
182
+ }
183
+ }
184
+ /**
185
+ * Auto-adjust degradation mode based on service availability
186
+ */
187
+ static async autoAdjustDegradationMode() {
188
+ const networkAvailable = this.serviceStatus.get('network')?.available ?? false;
189
+ const geminiAvailable = this.serviceStatus.get('gemini')?.available ?? false;
190
+ const julesAvailable = this.serviceStatus.get('jules')?.available ?? false;
191
+ if (!networkAvailable) {
192
+ await this.setDegradationMode('offline');
193
+ }
194
+ else if (!geminiAvailable && !julesAvailable) {
195
+ await this.setDegradationMode('aiLimited');
196
+ }
197
+ else if (!geminiAvailable || !julesAvailable) {
198
+ await this.setDegradationMode('aiLimited');
199
+ }
200
+ else if (this.currentMode?.name !== 'Full Functionality') {
201
+ await this.setDegradationMode('full');
202
+ }
203
+ }
204
+ /**
205
+ * Handle service failure and adjust accordingly
206
+ */
207
+ static async handleServiceFailure(service, errorType) {
208
+ console.log(chalk.yellow(`āš ļø Service failure detected: ${service} (${errorType})`));
209
+ // Update service status
210
+ this.serviceStatus.set(service, {
211
+ available: false,
212
+ lastCheck: Date.now(),
213
+ error: `Service failed: ${errorType}`
214
+ });
215
+ // Provide specific guidance based on error type
216
+ switch (errorType) {
217
+ case ErrorType.NETWORK:
218
+ console.log(chalk.cyan('šŸ”Œ Switching to offline mode due to network issues'));
219
+ await this.setDegradationMode('offline');
220
+ break;
221
+ case ErrorType.AUTHENTICATION:
222
+ console.log(chalk.yellow('šŸ”‘ API authentication failed - disabling AI features'));
223
+ await this.setDegradationMode('aiLimited');
224
+ UIComponents.showWarningBox('Run "base config" to update your API keys');
225
+ break;
226
+ case ErrorType.RATE_LIMIT:
227
+ console.log(chalk.yellow('🚦 Rate limit reached - using cached responses'));
228
+ this.fallbackOptions.useCache = true;
229
+ this.fallbackOptions.skipAI = true;
230
+ break;
231
+ case ErrorType.QUOTA_EXCEEDED:
232
+ console.log(chalk.yellow('šŸ“Š API quota exceeded - switching to basic mode'));
233
+ await this.setDegradationMode('aiLimited');
234
+ break;
235
+ default:
236
+ console.log(chalk.yellow('šŸ”„ Service error - enabling fallback mode'));
237
+ await this.setDegradationMode('aiLimited');
238
+ break;
239
+ }
240
+ // Show available alternatives
241
+ this.showFallbackOptions();
242
+ }
243
+ /**
244
+ * Show available fallback options to user
245
+ */
246
+ static showFallbackOptions() {
247
+ const mode = this.currentMode;
248
+ if (!mode)
249
+ return;
250
+ console.log(chalk.cyan('\nšŸ”„ Available features in current mode:'));
251
+ if (mode.capabilities.baselineChecking) {
252
+ console.log(chalk.green(' āœ… Baseline compatibility checking'));
253
+ }
254
+ if (mode.capabilities.caching) {
255
+ console.log(chalk.green(' āœ… Cached analysis results'));
256
+ }
257
+ if (!mode.capabilities.aiAnalysis) {
258
+ console.log(chalk.yellow(' āš ļø AI analysis disabled - manual review required'));
259
+ }
260
+ if (!mode.capabilities.autoFix) {
261
+ console.log(chalk.yellow(' āš ļø Auto-fixing disabled - manual fixes required'));
262
+ }
263
+ console.log(chalk.cyan('\nšŸ’” Suggestions:'));
264
+ console.log(chalk.cyan(' • Review violations manually using browser compatibility tables'));
265
+ console.log(chalk.cyan(' • Use progressive enhancement techniques'));
266
+ console.log(chalk.cyan(' • Test across your target browsers'));
267
+ if (!mode.capabilities.offlineMode) {
268
+ console.log(chalk.cyan(' • Try again when network/services are restored'));
269
+ }
270
+ }
271
+ /**
272
+ * Create fallback analysis when AI is unavailable
273
+ */
274
+ static createFallbackAnalysis(violation, reason = 'AI services unavailable') {
275
+ return {
276
+ violation,
277
+ userImpact: `Users on ${violation.browser} ${violation.required} may experience compatibility issues with ${violation.feature}`,
278
+ marketShare: this.estimateMarketShare(violation.browser, violation.required),
279
+ fixStrategy: this.getDefaultFixStrategy(violation.feature),
280
+ bestPractices: [
281
+ 'Use @supports for CSS feature detection',
282
+ 'Implement feature detection for JavaScript APIs',
283
+ 'Provide fallback implementations',
284
+ 'Test across target browsers'
285
+ ],
286
+ sources: [],
287
+ plainEnglish: `${reason}. This feature (${violation.feature}) may not be supported in ${violation.browser} ${violation.required}. Consider using progressive enhancement techniques and providing fallbacks for better compatibility.`,
288
+ confidence: 0.3
289
+ };
290
+ }
291
+ /**
292
+ * Estimate market share for fallback analysis
293
+ */
294
+ static estimateMarketShare(browser, version) {
295
+ const estimates = {
296
+ 'chrome': 0.65,
297
+ 'firefox': 0.08,
298
+ 'safari': 0.18,
299
+ 'edge': 0.05,
300
+ 'opera': 0.02,
301
+ 'samsung': 0.02
302
+ };
303
+ const baseShare = estimates[browser.toLowerCase()] || 0.05;
304
+ // Reduce estimate for older versions
305
+ if (version !== 'baseline' && version !== 'baseline-newly') {
306
+ const versionNum = parseInt(version, 10);
307
+ if (!isNaN(versionNum)) {
308
+ const currentYear = new Date().getFullYear();
309
+ const estimatedYear = 2008 + (versionNum / 10);
310
+ const yearsDiff = currentYear - estimatedYear;
311
+ if (yearsDiff > 2) {
312
+ return baseShare * 0.1;
313
+ }
314
+ else if (yearsDiff > 1) {
315
+ return baseShare * 0.3;
316
+ }
317
+ }
318
+ }
319
+ return baseShare;
320
+ }
321
+ /**
322
+ * Get default fix strategy based on feature type
323
+ */
324
+ static getDefaultFixStrategy(feature) {
325
+ const lowerFeature = feature.toLowerCase();
326
+ if (lowerFeature.includes('css') || lowerFeature.includes('grid') || lowerFeature.includes('flex')) {
327
+ return 'progressive enhancement with @supports';
328
+ }
329
+ else if (lowerFeature.includes('api') || lowerFeature.includes('js')) {
330
+ return 'feature detection with polyfills';
331
+ }
332
+ else if (lowerFeature.includes('element') || lowerFeature.includes('html')) {
333
+ return 'graceful degradation';
334
+ }
335
+ return 'progressive enhancement';
336
+ }
337
+ /**
338
+ * Try to load cached analysis
339
+ */
340
+ static async loadCachedAnalysis(violation) {
341
+ if (!this.fallbackOptions.useCache) {
342
+ return null;
343
+ }
344
+ try {
345
+ const cacheKey = this.generateCacheKey(violation);
346
+ const cacheFile = path.join(this.cacheDir, `analysis-${cacheKey}.json`);
347
+ const content = await fs.readFile(cacheFile, 'utf-8');
348
+ const cached = JSON.parse(content);
349
+ // Check if cache is still valid (24 hours)
350
+ const cacheAge = Date.now() - cached.timestamp;
351
+ if (cacheAge < 24 * 60 * 60 * 1000) {
352
+ console.log(chalk.dim(`šŸ“¦ Using cached analysis for ${violation.feature}`));
353
+ return cached.analysis;
354
+ }
355
+ }
356
+ catch (error) {
357
+ // Cache miss or error - return null
358
+ }
359
+ return null;
360
+ }
361
+ /**
362
+ * Save analysis to cache
363
+ */
364
+ static async saveAnalysisToCache(analysis) {
365
+ if (!this.fallbackOptions.useCache) {
366
+ return;
367
+ }
368
+ try {
369
+ const cacheKey = this.generateCacheKey(analysis.violation);
370
+ const cacheFile = path.join(this.cacheDir, `analysis-${cacheKey}.json`);
371
+ const cacheData = {
372
+ timestamp: Date.now(),
373
+ analysis
374
+ };
375
+ await fs.writeFile(cacheFile, JSON.stringify(cacheData, null, 2));
376
+ }
377
+ catch (error) {
378
+ // Ignore cache write errors
379
+ console.warn(chalk.dim(`Warning: Could not save analysis to cache: ${error instanceof Error ? error.message : 'Unknown error'}`));
380
+ }
381
+ }
382
+ /**
383
+ * Generate cache key for violation
384
+ */
385
+ static generateCacheKey(violation) {
386
+ const { createHash } = require('crypto');
387
+ const keyData = `${violation.feature}:${violation.browser}:${violation.required}:${violation.baselineStatus}`;
388
+ return createHash('md5').update(keyData).digest('hex');
389
+ }
390
+ /**
391
+ * Create basic fix suggestion when auto-fix is unavailable
392
+ */
393
+ static createBasicFixSuggestion(violation, analysis) {
394
+ const basicPatch = this.generateBasicPatch(violation);
395
+ return {
396
+ violation,
397
+ analysis,
398
+ patch: basicPatch,
399
+ explanation: `Manual fix required for ${violation.feature} compatibility:\n\n` +
400
+ `1. Review the code at ${violation.file}:${violation.line}\n` +
401
+ `2. Implement ${analysis.fixStrategy}\n` +
402
+ `3. Test in ${violation.browser} ${violation.required}\n` +
403
+ `4. Consider using: ${analysis.bestPractices.join(', ')}`,
404
+ filePath: violation.file,
405
+ preview: `Manual review required:\n- Feature: ${violation.feature}\n- Location: ${violation.file}:${violation.line}\n- Strategy: ${analysis.fixStrategy}`,
406
+ confidence: 0.5,
407
+ testable: false
408
+ };
409
+ }
410
+ /**
411
+ * Generate basic patch template
412
+ */
413
+ static generateBasicPatch(violation) {
414
+ return `# Manual fix required for ${violation.feature}
415
+ # File: ${violation.file}
416
+ # Line: ${violation.line}
417
+ #
418
+ # Current code:
419
+ # ${violation.context}
420
+ #
421
+ # Suggested approach:
422
+ # 1. Add feature detection or @supports rule
423
+ # 2. Provide fallback for ${violation.browser} ${violation.required}
424
+ # 3. Test across target browsers
425
+ #
426
+ # Example patterns:
427
+ # CSS: @supports (${violation.feature}: value) { /* modern code */ }
428
+ # JS: if ('${violation.feature}' in window) { /* modern code */ }
429
+ `;
430
+ }
431
+ /**
432
+ * Get current degradation mode
433
+ */
434
+ static getCurrentMode() {
435
+ return this.currentMode;
436
+ }
437
+ /**
438
+ * Get service status
439
+ */
440
+ static getServiceStatus() {
441
+ return new Map(this.serviceStatus);
442
+ }
443
+ /**
444
+ * Get fallback options
445
+ */
446
+ static getFallbackOptions() {
447
+ return { ...this.fallbackOptions };
448
+ }
449
+ /**
450
+ * Force refresh service status
451
+ */
452
+ static async refreshServiceStatus() {
453
+ console.log(chalk.cyan('šŸ”„ Checking service availability...'));
454
+ await this.checkServiceAvailability();
455
+ const status = this.getServiceStatus();
456
+ console.log(chalk.cyan('\nšŸ“Š Service Status:'));
457
+ for (const [service, info] of status) {
458
+ const statusIcon = info.available ? 'āœ…' : 'āŒ';
459
+ const statusText = info.available ? 'Available' : 'Unavailable';
460
+ console.log(chalk.cyan(` ${statusIcon} ${service}: ${statusText}`));
461
+ if (!info.available && info.error) {
462
+ console.log(chalk.dim(` Error: ${info.error}`));
463
+ }
464
+ }
465
+ }
466
+ /**
467
+ * Clean up old cache files
468
+ */
469
+ static async cleanupCache() {
470
+ try {
471
+ const files = await fs.readdir(this.cacheDir);
472
+ const now = Date.now();
473
+ const maxAge = 7 * 24 * 60 * 60 * 1000; // 7 days
474
+ for (const file of files) {
475
+ const filePath = path.join(this.cacheDir, file);
476
+ const stats = await fs.stat(filePath);
477
+ if (now - stats.mtime.getTime() > maxAge) {
478
+ await fs.unlink(filePath);
479
+ }
480
+ }
481
+ }
482
+ catch (error) {
483
+ // Ignore cleanup errors
484
+ }
485
+ }
486
+ /**
487
+ * Show degradation status to user
488
+ */
489
+ static showStatus() {
490
+ const mode = this.currentMode;
491
+ if (!mode) {
492
+ console.log(chalk.red('āŒ Degradation manager not initialized'));
493
+ return;
494
+ }
495
+ UIComponents.showInfoBox(`Current Mode: ${mode.name}`);
496
+ console.log(chalk.dim(mode.description));
497
+ if (mode.limitations.length > 0) {
498
+ console.log(chalk.yellow('\nāš ļø Current limitations:'));
499
+ mode.limitations.forEach(limitation => {
500
+ console.log(chalk.yellow(` • ${limitation}`));
501
+ });
502
+ }
503
+ const status = this.getServiceStatus();
504
+ console.log(chalk.cyan('\nšŸ“Š Service Status:'));
505
+ for (const [service, info] of status) {
506
+ const statusIcon = info.available ? 'āœ…' : 'āŒ';
507
+ const age = Math.round((Date.now() - info.lastCheck) / 1000);
508
+ console.log(chalk.cyan(` ${statusIcon} ${service} (checked ${age}s ago)`));
509
+ }
510
+ }
511
+ }
512
+ //# sourceMappingURL=graceful-degradation-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graceful-degradation-manager.js","sourceRoot":"","sources":["../../src/core/graceful-degradation-manager.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,8 @@ export { DirectoryFilter } from './directory-filter.js';
10
10
  export { LazyLoader } from './lazy-loader.js';
11
11
  export { MemoryManager } from './memory-manager.js';
12
12
  export { StartupOptimizer } from './startup-optimizer.js';
13
+ export { SystemErrorHandler } from './system-error-handler.js';
14
+ export { GracefulDegradationManager } from './graceful-degradation-manager.js';
15
+ export { ConfigurationRecovery } from './configuration-recovery.js';
16
+ export { logger, DebugLogger } from './debug-logger.js';
13
17
  //# sourceMappingURL=index.d.ts.map