@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,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graceful Degradation
|
|
3
|
+
*
|
|
4
|
+
* Handles errors gracefully with fallback strategies
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module error/graceful-degradation
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-ERR-001 - Graceful Degradation
|
|
10
|
+
* @see Article V - Safety Assurance
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Degradation level
|
|
14
|
+
*/
|
|
15
|
+
export type DegradationLevel = 'full' | 'reduced' | 'minimal' | 'offline' | 'emergency';
|
|
16
|
+
/**
|
|
17
|
+
* Service status
|
|
18
|
+
*/
|
|
19
|
+
export type ServiceStatus = 'healthy' | 'degraded' | 'unavailable' | 'unknown';
|
|
20
|
+
/**
|
|
21
|
+
* Fallback strategy
|
|
22
|
+
*/
|
|
23
|
+
export type FallbackStrategy = 'cache' | 'default' | 'retry' | 'alternative' | 'skip' | 'queue' | 'manual';
|
|
24
|
+
/**
|
|
25
|
+
* Service health check result
|
|
26
|
+
*/
|
|
27
|
+
export interface HealthCheckResult {
|
|
28
|
+
/** Service name */
|
|
29
|
+
service: string;
|
|
30
|
+
/** Status */
|
|
31
|
+
status: ServiceStatus;
|
|
32
|
+
/** Response time (ms) */
|
|
33
|
+
responseTime?: number;
|
|
34
|
+
/** Last successful check */
|
|
35
|
+
lastSuccess?: Date;
|
|
36
|
+
/** Error message if any */
|
|
37
|
+
error?: string;
|
|
38
|
+
/** Additional details */
|
|
39
|
+
details?: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Service configuration
|
|
43
|
+
*/
|
|
44
|
+
export interface ServiceConfig {
|
|
45
|
+
/** Service name */
|
|
46
|
+
name: string;
|
|
47
|
+
/** Health check function */
|
|
48
|
+
healthCheck: () => Promise<boolean>;
|
|
49
|
+
/** Fallback strategies in order of preference */
|
|
50
|
+
fallbackStrategies: FallbackStrategy[];
|
|
51
|
+
/** Cache TTL (ms) */
|
|
52
|
+
cacheTtl?: number;
|
|
53
|
+
/** Retry attempts */
|
|
54
|
+
retryAttempts?: number;
|
|
55
|
+
/** Retry delay (ms) */
|
|
56
|
+
retryDelay?: number;
|
|
57
|
+
/** Alternative service */
|
|
58
|
+
alternative?: string;
|
|
59
|
+
/** Priority (higher = more important) */
|
|
60
|
+
priority: number;
|
|
61
|
+
/** Required for minimal operation */
|
|
62
|
+
required: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Fallback action
|
|
66
|
+
*/
|
|
67
|
+
export interface FallbackAction<T = unknown> {
|
|
68
|
+
/** Strategy used */
|
|
69
|
+
strategy: FallbackStrategy;
|
|
70
|
+
/** Execute fallback */
|
|
71
|
+
execute: () => Promise<T>;
|
|
72
|
+
/** Description */
|
|
73
|
+
description: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Degradation event
|
|
77
|
+
*/
|
|
78
|
+
export interface DegradationEvent {
|
|
79
|
+
/** Event ID */
|
|
80
|
+
id: string;
|
|
81
|
+
/** Timestamp */
|
|
82
|
+
timestamp: Date;
|
|
83
|
+
/** Service affected */
|
|
84
|
+
service: string;
|
|
85
|
+
/** Previous level */
|
|
86
|
+
previousLevel: DegradationLevel;
|
|
87
|
+
/** New level */
|
|
88
|
+
newLevel: DegradationLevel;
|
|
89
|
+
/** Reason */
|
|
90
|
+
reason: string;
|
|
91
|
+
/** Fallback used */
|
|
92
|
+
fallbackUsed?: FallbackStrategy;
|
|
93
|
+
/** Recovery time estimate */
|
|
94
|
+
estimatedRecovery?: Date;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Operation result with degradation info
|
|
98
|
+
*/
|
|
99
|
+
export interface DegradedResult<T> {
|
|
100
|
+
/** Result value */
|
|
101
|
+
value: T;
|
|
102
|
+
/** Was degraded */
|
|
103
|
+
degraded: boolean;
|
|
104
|
+
/** Degradation level */
|
|
105
|
+
level: DegradationLevel;
|
|
106
|
+
/** Strategy used */
|
|
107
|
+
strategy?: FallbackStrategy;
|
|
108
|
+
/** Original error */
|
|
109
|
+
originalError?: Error;
|
|
110
|
+
/** Warnings */
|
|
111
|
+
warnings: string[];
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Graceful degradation config
|
|
115
|
+
*/
|
|
116
|
+
export interface GracefulDegradationConfig {
|
|
117
|
+
/** Services configuration */
|
|
118
|
+
services: ServiceConfig[];
|
|
119
|
+
/** Health check interval (ms) */
|
|
120
|
+
healthCheckInterval: number;
|
|
121
|
+
/** Cache provider */
|
|
122
|
+
cacheProvider?: CacheProvider;
|
|
123
|
+
/** Queue provider */
|
|
124
|
+
queueProvider?: QueueProvider;
|
|
125
|
+
/** Event handler */
|
|
126
|
+
onDegradation?: (event: DegradationEvent) => void;
|
|
127
|
+
/** Recovery handler */
|
|
128
|
+
onRecovery?: (service: string, level: DegradationLevel) => void;
|
|
129
|
+
/** Auto-recovery enabled */
|
|
130
|
+
autoRecovery: boolean;
|
|
131
|
+
/** Max queue size */
|
|
132
|
+
maxQueueSize: number;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Cache provider interface
|
|
136
|
+
*/
|
|
137
|
+
export interface CacheProvider {
|
|
138
|
+
get<T>(key: string): Promise<T | null>;
|
|
139
|
+
set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
140
|
+
delete(key: string): Promise<void>;
|
|
141
|
+
clear(): Promise<void>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Queue provider interface
|
|
145
|
+
*/
|
|
146
|
+
export interface QueueProvider {
|
|
147
|
+
enqueue<T>(item: T): Promise<string>;
|
|
148
|
+
dequeue<T>(): Promise<T | null>;
|
|
149
|
+
size(): Promise<number>;
|
|
150
|
+
clear(): Promise<void>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* In-memory cache provider
|
|
154
|
+
*/
|
|
155
|
+
export declare class MemoryCacheProvider implements CacheProvider {
|
|
156
|
+
private cache;
|
|
157
|
+
get<T>(key: string): Promise<T | null>;
|
|
158
|
+
set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
159
|
+
delete(key: string): Promise<void>;
|
|
160
|
+
clear(): Promise<void>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* In-memory queue provider
|
|
164
|
+
*/
|
|
165
|
+
export declare class MemoryQueueProvider implements QueueProvider {
|
|
166
|
+
private queue;
|
|
167
|
+
private counter;
|
|
168
|
+
enqueue<T>(item: T): Promise<string>;
|
|
169
|
+
dequeue<T>(): Promise<T | null>;
|
|
170
|
+
size(): Promise<number>;
|
|
171
|
+
clear(): Promise<void>;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Default configuration
|
|
175
|
+
*/
|
|
176
|
+
export declare const DEFAULT_DEGRADATION_CONFIG: GracefulDegradationConfig;
|
|
177
|
+
/**
|
|
178
|
+
* Graceful Degradation Manager
|
|
179
|
+
*/
|
|
180
|
+
export declare class GracefulDegradation {
|
|
181
|
+
private config;
|
|
182
|
+
private serviceStatus;
|
|
183
|
+
private currentLevel;
|
|
184
|
+
private events;
|
|
185
|
+
private eventCounter;
|
|
186
|
+
private healthCheckTimer?;
|
|
187
|
+
private cache;
|
|
188
|
+
private queue;
|
|
189
|
+
constructor(config?: Partial<GracefulDegradationConfig>);
|
|
190
|
+
/**
|
|
191
|
+
* Start health monitoring
|
|
192
|
+
*/
|
|
193
|
+
start(): void;
|
|
194
|
+
/**
|
|
195
|
+
* Stop health monitoring
|
|
196
|
+
*/
|
|
197
|
+
stop(): void;
|
|
198
|
+
/**
|
|
199
|
+
* Register a service
|
|
200
|
+
*/
|
|
201
|
+
registerService(service: ServiceConfig): void;
|
|
202
|
+
/**
|
|
203
|
+
* Execute operation with graceful degradation
|
|
204
|
+
*/
|
|
205
|
+
execute<T>(serviceName: string, operation: () => Promise<T>, options?: {
|
|
206
|
+
cacheKey?: string;
|
|
207
|
+
defaultValue?: T;
|
|
208
|
+
timeout?: number;
|
|
209
|
+
}): Promise<DegradedResult<T>>;
|
|
210
|
+
/**
|
|
211
|
+
* Execute fallback strategy
|
|
212
|
+
*/
|
|
213
|
+
private executeFallback;
|
|
214
|
+
/**
|
|
215
|
+
* Execute a specific strategy
|
|
216
|
+
*/
|
|
217
|
+
private executeStrategy;
|
|
218
|
+
/**
|
|
219
|
+
* Run health checks on all services
|
|
220
|
+
*/
|
|
221
|
+
runHealthChecks(): Promise<Map<string, HealthCheckResult>>;
|
|
222
|
+
/**
|
|
223
|
+
* Check health of a single service
|
|
224
|
+
*/
|
|
225
|
+
private checkServiceHealth;
|
|
226
|
+
/**
|
|
227
|
+
* Handle service degradation
|
|
228
|
+
*/
|
|
229
|
+
private handleServiceDegradation;
|
|
230
|
+
/**
|
|
231
|
+
* Handle service recovery
|
|
232
|
+
*/
|
|
233
|
+
private handleServiceRecovery;
|
|
234
|
+
/**
|
|
235
|
+
* Process queued items
|
|
236
|
+
*/
|
|
237
|
+
private processQueue;
|
|
238
|
+
/**
|
|
239
|
+
* Recalculate overall degradation level
|
|
240
|
+
*/
|
|
241
|
+
private recalculateLevel;
|
|
242
|
+
/**
|
|
243
|
+
* Get current degradation level
|
|
244
|
+
*/
|
|
245
|
+
getLevel(): DegradationLevel;
|
|
246
|
+
/**
|
|
247
|
+
* Get service status
|
|
248
|
+
*/
|
|
249
|
+
getServiceStatus(serviceName: string): HealthCheckResult | undefined;
|
|
250
|
+
/**
|
|
251
|
+
* Get all service statuses
|
|
252
|
+
*/
|
|
253
|
+
getAllStatuses(): Map<string, HealthCheckResult>;
|
|
254
|
+
/**
|
|
255
|
+
* Get degradation events
|
|
256
|
+
*/
|
|
257
|
+
getEvents(limit?: number): DegradationEvent[];
|
|
258
|
+
/**
|
|
259
|
+
* Check if a feature is available at current level
|
|
260
|
+
*/
|
|
261
|
+
isFeatureAvailable(requiredLevel: DegradationLevel): boolean;
|
|
262
|
+
/**
|
|
263
|
+
* Cache a value
|
|
264
|
+
*/
|
|
265
|
+
cacheValue<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
266
|
+
/**
|
|
267
|
+
* Get cached value
|
|
268
|
+
*/
|
|
269
|
+
getCachedValue<T>(key: string): Promise<T | null>;
|
|
270
|
+
/**
|
|
271
|
+
* Clear cache
|
|
272
|
+
*/
|
|
273
|
+
clearCache(): Promise<void>;
|
|
274
|
+
/**
|
|
275
|
+
* Execute with timeout
|
|
276
|
+
*/
|
|
277
|
+
private withTimeout;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Create graceful degradation instance
|
|
281
|
+
*/
|
|
282
|
+
export declare function createGracefulDegradation(config?: Partial<GracefulDegradationConfig>): GracefulDegradation;
|
|
283
|
+
/**
|
|
284
|
+
* Retry with exponential backoff
|
|
285
|
+
*/
|
|
286
|
+
export declare function retryWithBackoff<T>(operation: () => Promise<T>, options?: {
|
|
287
|
+
maxAttempts?: number;
|
|
288
|
+
initialDelay?: number;
|
|
289
|
+
maxDelay?: number;
|
|
290
|
+
backoffFactor?: number;
|
|
291
|
+
}): Promise<T>;
|
|
292
|
+
/**
|
|
293
|
+
* Circuit breaker
|
|
294
|
+
*/
|
|
295
|
+
export declare class CircuitBreaker {
|
|
296
|
+
private readonly threshold;
|
|
297
|
+
private readonly resetTimeout;
|
|
298
|
+
private failures;
|
|
299
|
+
private lastFailure?;
|
|
300
|
+
private state;
|
|
301
|
+
constructor(threshold?: number, resetTimeout?: number);
|
|
302
|
+
execute<T>(operation: () => Promise<T>): Promise<T>;
|
|
303
|
+
private shouldAttemptReset;
|
|
304
|
+
private onSuccess;
|
|
305
|
+
private onFailure;
|
|
306
|
+
getState(): 'closed' | 'open' | 'half-open';
|
|
307
|
+
reset(): void;
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=graceful-degradation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graceful-degradation.d.ts","sourceRoot":"","sources":["../../src/error/graceful-degradation.ts"],"names":[],"mappings":"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"}
|