@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.
Files changed (214) hide show
  1. package/bin/musubix.js +18 -0
  2. package/dist/__tests__/index.test.d.ts +2 -0
  3. package/dist/__tests__/index.test.d.ts.map +1 -0
  4. package/dist/__tests__/index.test.js +27 -0
  5. package/dist/__tests__/index.test.js.map +1 -0
  6. package/dist/auth/auth-manager.d.ts +320 -0
  7. package/dist/auth/auth-manager.d.ts.map +1 -0
  8. package/dist/auth/auth-manager.js +580 -0
  9. package/dist/auth/auth-manager.js.map +1 -0
  10. package/dist/cli/base.d.ts +58 -0
  11. package/dist/cli/base.d.ts.map +1 -0
  12. package/dist/cli/base.js +93 -0
  13. package/dist/cli/base.js.map +1 -0
  14. package/dist/cli/commands/help.d.ts +17 -0
  15. package/dist/cli/commands/help.d.ts.map +1 -0
  16. package/dist/cli/commands/help.js +228 -0
  17. package/dist/cli/commands/help.js.map +1 -0
  18. package/dist/cli/commands/index.d.ts +14 -0
  19. package/dist/cli/commands/index.d.ts.map +1 -0
  20. package/dist/cli/commands/index.js +25 -0
  21. package/dist/cli/commands/index.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts +38 -0
  23. package/dist/cli/commands/init.d.ts.map +1 -0
  24. package/dist/cli/commands/init.js +258 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/cli/index.d.ts +9 -0
  27. package/dist/cli/index.d.ts.map +1 -0
  28. package/dist/cli/index.js +9 -0
  29. package/dist/cli/index.js.map +1 -0
  30. package/dist/codegen/coding-standards.d.ts +250 -0
  31. package/dist/codegen/coding-standards.d.ts.map +1 -0
  32. package/dist/codegen/coding-standards.js +976 -0
  33. package/dist/codegen/coding-standards.js.map +1 -0
  34. package/dist/codegen/coverage-reporter.d.ts +264 -0
  35. package/dist/codegen/coverage-reporter.d.ts.map +1 -0
  36. package/dist/codegen/coverage-reporter.js +697 -0
  37. package/dist/codegen/coverage-reporter.js.map +1 -0
  38. package/dist/codegen/dependency-analyzer.d.ts +271 -0
  39. package/dist/codegen/dependency-analyzer.d.ts.map +1 -0
  40. package/dist/codegen/dependency-analyzer.js +661 -0
  41. package/dist/codegen/dependency-analyzer.js.map +1 -0
  42. package/dist/codegen/generator.d.ts +275 -0
  43. package/dist/codegen/generator.d.ts.map +1 -0
  44. package/dist/codegen/generator.js +781 -0
  45. package/dist/codegen/generator.js.map +1 -0
  46. package/dist/codegen/index.d.ts +18 -0
  47. package/dist/codegen/index.d.ts.map +1 -0
  48. package/dist/codegen/index.js +27 -0
  49. package/dist/codegen/index.js.map +1 -0
  50. package/dist/codegen/integration-test-generator.d.ts +312 -0
  51. package/dist/codegen/integration-test-generator.d.ts.map +1 -0
  52. package/dist/codegen/integration-test-generator.js +765 -0
  53. package/dist/codegen/integration-test-generator.js.map +1 -0
  54. package/dist/codegen/pattern-conformance.d.ts +309 -0
  55. package/dist/codegen/pattern-conformance.d.ts.map +1 -0
  56. package/dist/codegen/pattern-conformance.js +590 -0
  57. package/dist/codegen/pattern-conformance.js.map +1 -0
  58. package/dist/codegen/quality-metrics.d.ts +235 -0
  59. package/dist/codegen/quality-metrics.d.ts.map +1 -0
  60. package/dist/codegen/quality-metrics.js +439 -0
  61. package/dist/codegen/quality-metrics.js.map +1 -0
  62. package/dist/codegen/security-scanner.d.ts +179 -0
  63. package/dist/codegen/security-scanner.d.ts.map +1 -0
  64. package/dist/codegen/security-scanner.js +495 -0
  65. package/dist/codegen/security-scanner.js.map +1 -0
  66. package/dist/codegen/static-analyzer.d.ts +188 -0
  67. package/dist/codegen/static-analyzer.d.ts.map +1 -0
  68. package/dist/codegen/static-analyzer.js +490 -0
  69. package/dist/codegen/static-analyzer.js.map +1 -0
  70. package/dist/codegen/unit-test-generator.d.ts +289 -0
  71. package/dist/codegen/unit-test-generator.d.ts.map +1 -0
  72. package/dist/codegen/unit-test-generator.js +634 -0
  73. package/dist/codegen/unit-test-generator.js.map +1 -0
  74. package/dist/design/adr-generator.d.ts +227 -0
  75. package/dist/design/adr-generator.d.ts.map +1 -0
  76. package/dist/design/adr-generator.js +423 -0
  77. package/dist/design/adr-generator.js.map +1 -0
  78. package/dist/design/c4-generator.d.ts +267 -0
  79. package/dist/design/c4-generator.d.ts.map +1 -0
  80. package/dist/design/c4-generator.js +453 -0
  81. package/dist/design/c4-generator.js.map +1 -0
  82. package/dist/design/framework-optimizer.d.ts +190 -0
  83. package/dist/design/framework-optimizer.d.ts.map +1 -0
  84. package/dist/design/framework-optimizer.js +589 -0
  85. package/dist/design/framework-optimizer.js.map +1 -0
  86. package/dist/design/index.d.ts +12 -0
  87. package/dist/design/index.d.ts.map +1 -0
  88. package/dist/design/index.js +13 -0
  89. package/dist/design/index.js.map +1 -0
  90. package/dist/design/pattern-detector.d.ts +270 -0
  91. package/dist/design/pattern-detector.d.ts.map +1 -0
  92. package/dist/design/pattern-detector.js +621 -0
  93. package/dist/design/pattern-detector.js.map +1 -0
  94. package/dist/design/solid-validator.d.ts +188 -0
  95. package/dist/design/solid-validator.d.ts.map +1 -0
  96. package/dist/design/solid-validator.js +579 -0
  97. package/dist/design/solid-validator.js.map +1 -0
  98. package/dist/error/data-persistence.d.ts +311 -0
  99. package/dist/error/data-persistence.d.ts.map +1 -0
  100. package/dist/error/data-persistence.js +586 -0
  101. package/dist/error/data-persistence.js.map +1 -0
  102. package/dist/error/graceful-degradation.d.ts +309 -0
  103. package/dist/error/graceful-degradation.d.ts.map +1 -0
  104. package/dist/error/graceful-degradation.js +510 -0
  105. package/dist/error/graceful-degradation.js.map +1 -0
  106. package/dist/error/index.d.ts +11 -0
  107. package/dist/error/index.d.ts.map +1 -0
  108. package/dist/error/index.js +19 -0
  109. package/dist/error/index.js.map +1 -0
  110. package/dist/explanation/explanation-generator.d.ts +228 -0
  111. package/dist/explanation/explanation-generator.d.ts.map +1 -0
  112. package/dist/explanation/explanation-generator.js +662 -0
  113. package/dist/explanation/explanation-generator.js.map +1 -0
  114. package/dist/explanation/index.d.ts +11 -0
  115. package/dist/explanation/index.d.ts.map +1 -0
  116. package/dist/explanation/index.js +19 -0
  117. package/dist/explanation/index.js.map +1 -0
  118. package/dist/explanation/reasoning-chain.d.ts +314 -0
  119. package/dist/explanation/reasoning-chain.d.ts.map +1 -0
  120. package/dist/explanation/reasoning-chain.js +414 -0
  121. package/dist/explanation/reasoning-chain.js.map +1 -0
  122. package/dist/explanation/visual-explanation.d.ts +315 -0
  123. package/dist/explanation/visual-explanation.d.ts.map +1 -0
  124. package/dist/explanation/visual-explanation.js +667 -0
  125. package/dist/explanation/visual-explanation.js.map +1 -0
  126. package/dist/index.d.ts +33 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +47 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/requirements/decomposer.d.ts +235 -0
  131. package/dist/requirements/decomposer.d.ts.map +1 -0
  132. package/dist/requirements/decomposer.js +587 -0
  133. package/dist/requirements/decomposer.js.map +1 -0
  134. package/dist/requirements/related-finder.d.ts +261 -0
  135. package/dist/requirements/related-finder.d.ts.map +1 -0
  136. package/dist/requirements/related-finder.js +629 -0
  137. package/dist/requirements/related-finder.js.map +1 -0
  138. package/dist/traceability/impact.d.ts +196 -0
  139. package/dist/traceability/impact.d.ts.map +1 -0
  140. package/dist/traceability/impact.js +438 -0
  141. package/dist/traceability/impact.js.map +1 -0
  142. package/dist/traceability/index.d.ts +9 -0
  143. package/dist/traceability/index.d.ts.map +1 -0
  144. package/dist/traceability/index.js +10 -0
  145. package/dist/traceability/index.js.map +1 -0
  146. package/dist/traceability/manager.d.ts +266 -0
  147. package/dist/traceability/manager.d.ts.map +1 -0
  148. package/dist/traceability/manager.js +412 -0
  149. package/dist/traceability/manager.js.map +1 -0
  150. package/dist/types/common.d.ts +294 -0
  151. package/dist/types/common.d.ts.map +1 -0
  152. package/dist/types/common.js +15 -0
  153. package/dist/types/common.js.map +1 -0
  154. package/dist/types/ears.d.ts +158 -0
  155. package/dist/types/ears.d.ts.map +1 -0
  156. package/dist/types/ears.js +33 -0
  157. package/dist/types/ears.js.map +1 -0
  158. package/dist/types/errors.d.ts +176 -0
  159. package/dist/types/errors.d.ts.map +1 -0
  160. package/dist/types/errors.js +55 -0
  161. package/dist/types/errors.js.map +1 -0
  162. package/dist/types/index.d.ts +10 -0
  163. package/dist/types/index.d.ts.map +1 -0
  164. package/dist/types/index.js +10 -0
  165. package/dist/types/index.js.map +1 -0
  166. package/dist/utils/data-protector.d.ts +122 -0
  167. package/dist/utils/data-protector.d.ts.map +1 -0
  168. package/dist/utils/data-protector.js +275 -0
  169. package/dist/utils/data-protector.js.map +1 -0
  170. package/dist/utils/error-handler.d.ts +101 -0
  171. package/dist/utils/error-handler.d.ts.map +1 -0
  172. package/dist/utils/error-handler.js +324 -0
  173. package/dist/utils/error-handler.js.map +1 -0
  174. package/dist/utils/i18n-manager.d.ts +259 -0
  175. package/dist/utils/i18n-manager.d.ts.map +1 -0
  176. package/dist/utils/i18n-manager.js +554 -0
  177. package/dist/utils/i18n-manager.js.map +1 -0
  178. package/dist/utils/index.d.ts +10 -0
  179. package/dist/utils/index.d.ts.map +1 -0
  180. package/dist/utils/index.js +10 -0
  181. package/dist/utils/index.js.map +1 -0
  182. package/dist/utils/logger.d.ts +120 -0
  183. package/dist/utils/logger.d.ts.map +1 -0
  184. package/dist/utils/logger.js +237 -0
  185. package/dist/utils/logger.js.map +1 -0
  186. package/dist/utils/performance-profiler.d.ts +251 -0
  187. package/dist/utils/performance-profiler.d.ts.map +1 -0
  188. package/dist/utils/performance-profiler.js +458 -0
  189. package/dist/utils/performance-profiler.js.map +1 -0
  190. package/dist/utils/scalability-optimizer.d.ts +294 -0
  191. package/dist/utils/scalability-optimizer.d.ts.map +1 -0
  192. package/dist/utils/scalability-optimizer.js +606 -0
  193. package/dist/utils/scalability-optimizer.js.map +1 -0
  194. package/dist/utils/structured-logger.d.ts +294 -0
  195. package/dist/utils/structured-logger.d.ts.map +1 -0
  196. package/dist/utils/structured-logger.js +630 -0
  197. package/dist/utils/structured-logger.js.map +1 -0
  198. package/dist/utils/version-compatibility.d.ts +217 -0
  199. package/dist/utils/version-compatibility.d.ts.map +1 -0
  200. package/dist/utils/version-compatibility.js +443 -0
  201. package/dist/utils/version-compatibility.js.map +1 -0
  202. package/dist/validators/ears-validator.d.ts +182 -0
  203. package/dist/validators/ears-validator.d.ts.map +1 -0
  204. package/dist/validators/ears-validator.js +357 -0
  205. package/dist/validators/ears-validator.js.map +1 -0
  206. package/dist/validators/index.d.ts +8 -0
  207. package/dist/validators/index.d.ts.map +1 -0
  208. package/dist/validators/index.js +9 -0
  209. package/dist/validators/index.js.map +1 -0
  210. package/dist/version.d.ts +8 -0
  211. package/dist/version.d.ts.map +1 -0
  212. package/dist/version.js +8 -0
  213. package/dist/version.js.map +1 -0
  214. 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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"}