homebridge 2.0.0-alpha.40 → 2.0.0-alpha.42
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/config-sample.json +1 -12
- package/dist/api.d.ts +46 -35
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +41 -35
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +7 -15
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +10 -7
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +19 -0
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +198 -4
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +28 -1
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +43 -0
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +9 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +21 -3
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js +15 -0
- package/dist/ipcService.js.map +1 -1
- package/dist/matter/index.d.ts +11 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +11 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/matterConfigValidator.d.ts +26 -0
- package/dist/matter/matterConfigValidator.d.ts.map +1 -0
- package/dist/matter/matterConfigValidator.js +171 -0
- package/dist/matter/matterConfigValidator.js.map +1 -0
- package/dist/matter/matterDiagnostics.d.ts +121 -0
- package/dist/matter/matterDiagnostics.d.ts.map +1 -0
- package/dist/matter/matterDiagnostics.js +323 -0
- package/dist/matter/matterDiagnostics.js.map +1 -0
- package/dist/matter/matterErrorHandler.d.ts +94 -0
- package/dist/matter/matterErrorHandler.d.ts.map +1 -0
- package/dist/matter/matterErrorHandler.js +472 -0
- package/dist/matter/matterErrorHandler.js.map +1 -0
- package/dist/matter/matterNetworkMonitor.d.ts +65 -0
- package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
- package/dist/matter/matterNetworkMonitor.js +227 -0
- package/dist/matter/matterNetworkMonitor.js.map +1 -0
- package/dist/matter/matterServer.d.ts +196 -0
- package/dist/matter/matterServer.d.ts.map +1 -0
- package/dist/matter/matterServer.js +824 -0
- package/dist/matter/matterServer.js.map +1 -0
- package/dist/matter/matterSharedTypes.d.ts +147 -0
- package/dist/matter/matterSharedTypes.d.ts.map +1 -0
- package/dist/matter/matterSharedTypes.js +51 -0
- package/dist/matter/matterSharedTypes.js.map +1 -0
- package/dist/matter/matterStorage.d.ts +112 -0
- package/dist/matter/matterStorage.d.ts.map +1 -0
- package/dist/matter/matterStorage.js +355 -0
- package/dist/matter/matterStorage.js.map +1 -0
- package/dist/matter/matterTypes.d.ts +163 -0
- package/dist/matter/matterTypes.d.ts.map +1 -0
- package/dist/matter/matterTypes.js +106 -0
- package/dist/matter/matterTypes.js.map +1 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +4 -2
- package/dist/plugin.js.map +1 -1
- package/dist/server.d.ts +18 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +361 -51
- package/dist/server.js.map +1 -1
- package/dist/user.d.ts +1 -0
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +3 -0
- package/dist/user.js.map +1 -1
- package/package.json +12 -13
- package/dist/matterConfigValidator.d.ts +0 -34
- package/dist/matterConfigValidator.d.ts.map +0 -1
- package/dist/matterConfigValidator.js +0 -249
- package/dist/matterConfigValidator.js.map +0 -1
- package/dist/matterService.d.ts +0 -168
- package/dist/matterService.d.ts.map +0 -1
- package/dist/matterService.js +0 -677
- package/dist/matterService.js.map +0 -1
- package/dist/matterTypes.d.ts +0 -20
- package/dist/matterTypes.d.ts.map +0 -1
- package/dist/matterTypes.js +0 -278
- package/dist/matterTypes.js.map +0 -1
- package/dist/util/matter-cli.d.ts +0 -3
- package/dist/util/matter-cli.d.ts.map +0 -1
- package/dist/util/matter-cli.js +0 -211
- package/dist/util/matter-cli.js.map +0 -1
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/* global NodeJS */
|
|
2
|
+
/**
|
|
3
|
+
* Matter Diagnostics
|
|
4
|
+
*
|
|
5
|
+
* Comprehensive diagnostics and health monitoring for Matter integration
|
|
6
|
+
*/
|
|
7
|
+
import * as os from 'node:os';
|
|
8
|
+
import process from 'node:process';
|
|
9
|
+
import { Logger } from '../logger.js';
|
|
10
|
+
import { errorHandler } from './matterErrorHandler.js';
|
|
11
|
+
import { networkMonitor } from './matterNetworkMonitor.js';
|
|
12
|
+
const log = Logger.withPrefix('Matter');
|
|
13
|
+
export class MatterDiagnostics {
|
|
14
|
+
static instance;
|
|
15
|
+
performanceMetrics;
|
|
16
|
+
diagnosticInterval = null;
|
|
17
|
+
isDiagnosticsEnabled = false;
|
|
18
|
+
lastHealthStatus = null;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.performanceMetrics = {
|
|
21
|
+
syncTimes: [],
|
|
22
|
+
startTime: new Date(),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
static getInstance() {
|
|
26
|
+
if (!MatterDiagnostics.instance) {
|
|
27
|
+
MatterDiagnostics.instance = new MatterDiagnostics();
|
|
28
|
+
}
|
|
29
|
+
return MatterDiagnostics.instance;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Start diagnostics collection
|
|
33
|
+
*/
|
|
34
|
+
startDiagnostics(intervalMs = 60000) {
|
|
35
|
+
if (this.isDiagnosticsEnabled) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.isDiagnosticsEnabled = true;
|
|
39
|
+
log.debug('Starting Matter diagnostics collection');
|
|
40
|
+
// Collect diagnostics periodically
|
|
41
|
+
this.diagnosticInterval = setInterval(() => {
|
|
42
|
+
// Fire-and-forget with error handling
|
|
43
|
+
this.collectAndLogDiagnostics().catch((error) => {
|
|
44
|
+
log.debug('Failed to collect diagnostics:', error);
|
|
45
|
+
});
|
|
46
|
+
}, intervalMs);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Stop diagnostics collection
|
|
50
|
+
*/
|
|
51
|
+
stopDiagnostics() {
|
|
52
|
+
if (this.diagnosticInterval) {
|
|
53
|
+
clearInterval(this.diagnosticInterval);
|
|
54
|
+
this.diagnosticInterval = null;
|
|
55
|
+
}
|
|
56
|
+
this.isDiagnosticsEnabled = false;
|
|
57
|
+
log.debug('Stopped Matter diagnostics collection');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Record sync performance
|
|
61
|
+
*/
|
|
62
|
+
recordSyncTime(timeMs) {
|
|
63
|
+
this.performanceMetrics.syncTimes.push(timeMs);
|
|
64
|
+
// Keep only last 100 measurements
|
|
65
|
+
if (this.performanceMetrics.syncTimes.length > 100) {
|
|
66
|
+
this.performanceMetrics.syncTimes.shift();
|
|
67
|
+
}
|
|
68
|
+
// Log warning for slow syncs
|
|
69
|
+
if (timeMs > 1000) {
|
|
70
|
+
log.warn(`Slow Matter sync detected: ${timeMs}ms`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Collect all diagnostic information
|
|
75
|
+
*/
|
|
76
|
+
async collectDiagnostics(matterInfo) {
|
|
77
|
+
return {
|
|
78
|
+
timestamp: new Date(),
|
|
79
|
+
system: this.collectSystemInfo(),
|
|
80
|
+
matter: matterInfo || this.getDefaultMatterInfo(),
|
|
81
|
+
network: this.collectNetworkInfo(),
|
|
82
|
+
errors: this.collectErrorInfo(),
|
|
83
|
+
performance: this.collectPerformanceInfo(),
|
|
84
|
+
health: this.assessHealth(),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Collect system information
|
|
89
|
+
*/
|
|
90
|
+
collectSystemInfo() {
|
|
91
|
+
const totalMem = os.totalmem();
|
|
92
|
+
const freeMem = os.freemem();
|
|
93
|
+
const usedMem = totalMem - freeMem;
|
|
94
|
+
const cpus = os.cpus();
|
|
95
|
+
const avgLoad = os.loadavg()[0];
|
|
96
|
+
return {
|
|
97
|
+
platform: os.platform(),
|
|
98
|
+
arch: os.arch(),
|
|
99
|
+
nodeVersion: process.version,
|
|
100
|
+
uptime: os.uptime(),
|
|
101
|
+
memory: {
|
|
102
|
+
total: totalMem,
|
|
103
|
+
free: freeMem,
|
|
104
|
+
used: usedMem,
|
|
105
|
+
percentage: (usedMem / totalMem) * 100,
|
|
106
|
+
},
|
|
107
|
+
cpu: {
|
|
108
|
+
model: cpus[0]?.model || 'Unknown',
|
|
109
|
+
cores: cpus.length,
|
|
110
|
+
usage: avgLoad,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get default Matter info
|
|
116
|
+
*/
|
|
117
|
+
getDefaultMatterInfo() {
|
|
118
|
+
return {
|
|
119
|
+
enabled: false,
|
|
120
|
+
initialized: false,
|
|
121
|
+
running: false,
|
|
122
|
+
deviceCount: 0,
|
|
123
|
+
bridgeCount: 0,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Collect network information
|
|
128
|
+
*/
|
|
129
|
+
collectNetworkInfo() {
|
|
130
|
+
const status = networkMonitor.getStatus();
|
|
131
|
+
return {
|
|
132
|
+
online: status.isOnline,
|
|
133
|
+
interfaces: status.interfaces,
|
|
134
|
+
primaryInterface: status.primaryInterface,
|
|
135
|
+
lastCheck: status.lastCheck,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Collect error information
|
|
140
|
+
*/
|
|
141
|
+
collectErrorInfo() {
|
|
142
|
+
const errorStats = errorHandler.getErrorStats();
|
|
143
|
+
let total = 0;
|
|
144
|
+
const byType = {};
|
|
145
|
+
const recent = [];
|
|
146
|
+
for (const [type, stats] of Object.entries(errorStats)) {
|
|
147
|
+
total += stats.count;
|
|
148
|
+
byType[type] = stats.count;
|
|
149
|
+
if (stats.lastError) {
|
|
150
|
+
recent.push({
|
|
151
|
+
type,
|
|
152
|
+
message: stats.lastError.message,
|
|
153
|
+
timestamp: stats.lastError.timestamp,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Sort recent errors by timestamp
|
|
158
|
+
recent.sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime());
|
|
159
|
+
return {
|
|
160
|
+
total,
|
|
161
|
+
byType,
|
|
162
|
+
recent: recent.slice(0, 10), // Keep only 10 most recent
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Collect performance information
|
|
167
|
+
*/
|
|
168
|
+
collectPerformanceInfo() {
|
|
169
|
+
const syncTimes = this.performanceMetrics.syncTimes;
|
|
170
|
+
const avgSyncTime = syncTimes.length > 0
|
|
171
|
+
? syncTimes.reduce((a, b) => a + b, 0) / syncTimes.length
|
|
172
|
+
: 0;
|
|
173
|
+
return {
|
|
174
|
+
syncLatency: syncTimes.slice(-10), // Last 10 measurements
|
|
175
|
+
averageSyncTime: avgSyncTime,
|
|
176
|
+
memoryUsage: process.memoryUsage().heapUsed,
|
|
177
|
+
eventLoopLag: 0, // Would need additional monitoring
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Assess overall health
|
|
182
|
+
*/
|
|
183
|
+
assessHealth() {
|
|
184
|
+
const issues = [];
|
|
185
|
+
const recommendations = [];
|
|
186
|
+
// Check network
|
|
187
|
+
const networkStatus = networkMonitor.getStatus();
|
|
188
|
+
if (!networkStatus.isOnline) {
|
|
189
|
+
issues.push('Network is offline');
|
|
190
|
+
recommendations.push('Check network connectivity');
|
|
191
|
+
}
|
|
192
|
+
else if (networkStatus.consecutiveFailures > 0) {
|
|
193
|
+
issues.push('Intermittent network issues detected');
|
|
194
|
+
recommendations.push('Monitor network stability');
|
|
195
|
+
}
|
|
196
|
+
// Check errors
|
|
197
|
+
const errorStats = errorHandler.getErrorStats();
|
|
198
|
+
const totalErrors = Object.values(errorStats)
|
|
199
|
+
.reduce((sum, stat) => sum + stat.count, 0);
|
|
200
|
+
if (totalErrors > 10) {
|
|
201
|
+
issues.push(`High error rate: ${totalErrors} errors`);
|
|
202
|
+
recommendations.push('Review error logs for patterns');
|
|
203
|
+
}
|
|
204
|
+
// Check performance
|
|
205
|
+
const perfInfo = this.collectPerformanceInfo();
|
|
206
|
+
if (perfInfo.averageSyncTime > 500) {
|
|
207
|
+
issues.push(`Slow sync performance: ${perfInfo.averageSyncTime.toFixed(0)}ms average`);
|
|
208
|
+
recommendations.push('Consider reducing device count or optimizing sync frequency');
|
|
209
|
+
}
|
|
210
|
+
// Check memory (raised threshold to 95% to reduce false positives)
|
|
211
|
+
const systemInfo = this.collectSystemInfo();
|
|
212
|
+
if (systemInfo.memory.percentage > 95) {
|
|
213
|
+
issues.push(`High memory usage: ${systemInfo.memory.percentage.toFixed(1)}%`);
|
|
214
|
+
recommendations.push('Consider increasing system memory or reducing load');
|
|
215
|
+
}
|
|
216
|
+
else if (systemInfo.memory.percentage > 90) {
|
|
217
|
+
// Only log in debug mode for 90-95% range
|
|
218
|
+
log.debug(`Memory usage at ${systemInfo.memory.percentage.toFixed(1)}%`);
|
|
219
|
+
}
|
|
220
|
+
// Determine overall health
|
|
221
|
+
let overall;
|
|
222
|
+
if (issues.length === 0) {
|
|
223
|
+
overall = 'healthy';
|
|
224
|
+
}
|
|
225
|
+
else if (issues.length <= 2) {
|
|
226
|
+
overall = 'degraded';
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
overall = 'unhealthy';
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
overall,
|
|
233
|
+
issues,
|
|
234
|
+
recommendations,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Collect and log diagnostics
|
|
239
|
+
*/
|
|
240
|
+
async collectAndLogDiagnostics() {
|
|
241
|
+
const diagnostics = await this.collectDiagnostics();
|
|
242
|
+
// Only log health status if it changed or is unhealthy
|
|
243
|
+
if (diagnostics.health.overall !== this.lastHealthStatus) {
|
|
244
|
+
this.lastHealthStatus = diagnostics.health.overall;
|
|
245
|
+
if (diagnostics.health.overall !== 'healthy') {
|
|
246
|
+
log.warn(`Matter health status: ${diagnostics.health.overall}`);
|
|
247
|
+
for (const issue of diagnostics.health.issues) {
|
|
248
|
+
log.warn(` - ${issue}`);
|
|
249
|
+
}
|
|
250
|
+
for (const recommendation of diagnostics.health.recommendations) {
|
|
251
|
+
log.info(` 💡 ${recommendation}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
log.info('Matter health status: healthy');
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// Log debug information
|
|
259
|
+
log.debug('Matter diagnostics:', {
|
|
260
|
+
health: diagnostics.health.overall,
|
|
261
|
+
errors: diagnostics.errors.total,
|
|
262
|
+
devices: diagnostics.matter.deviceCount,
|
|
263
|
+
avgSyncTime: `${diagnostics.performance.averageSyncTime.toFixed(0)}ms`,
|
|
264
|
+
memory: `${(diagnostics.system.memory.percentage).toFixed(1)}%`,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Generate diagnostic report
|
|
269
|
+
*/
|
|
270
|
+
async generateReport(matterInfo) {
|
|
271
|
+
const diagnostics = await this.collectDiagnostics(matterInfo);
|
|
272
|
+
return `
|
|
273
|
+
Matter Diagnostics Report
|
|
274
|
+
========================
|
|
275
|
+
Generated: ${diagnostics.timestamp.toISOString()}
|
|
276
|
+
|
|
277
|
+
System Information
|
|
278
|
+
------------------
|
|
279
|
+
Platform: ${diagnostics.system.platform} (${diagnostics.system.arch})
|
|
280
|
+
Node Version: ${diagnostics.system.nodeVersion}
|
|
281
|
+
System Uptime: ${(diagnostics.system.uptime / 3600).toFixed(1)} hours
|
|
282
|
+
Memory: ${(diagnostics.system.memory.used / 1024 / 1024 / 1024).toFixed(1)}GB / ${(diagnostics.system.memory.total / 1024 / 1024 / 1024).toFixed(1)}GB (${diagnostics.system.memory.percentage.toFixed(1)}%)
|
|
283
|
+
CPU: ${diagnostics.system.cpu.model} (${diagnostics.system.cpu.cores} cores)
|
|
284
|
+
|
|
285
|
+
Matter Status
|
|
286
|
+
-------------
|
|
287
|
+
Enabled: ${diagnostics.matter.enabled}
|
|
288
|
+
Initialized: ${diagnostics.matter.initialized}
|
|
289
|
+
Running: ${diagnostics.matter.running}
|
|
290
|
+
Port: ${diagnostics.matter.port || 'N/A'}
|
|
291
|
+
Devices: ${diagnostics.matter.deviceCount}
|
|
292
|
+
Bridges: ${diagnostics.matter.bridgeCount}
|
|
293
|
+
|
|
294
|
+
Network Status
|
|
295
|
+
--------------
|
|
296
|
+
Online: ${diagnostics.network.online}
|
|
297
|
+
Interfaces: ${diagnostics.network.interfaces.join(', ') || 'None'}
|
|
298
|
+
Primary: ${diagnostics.network.primaryInterface || 'N/A'}
|
|
299
|
+
Last Check: ${diagnostics.network.lastCheck.toISOString()}
|
|
300
|
+
|
|
301
|
+
Error Summary
|
|
302
|
+
-------------
|
|
303
|
+
Total Errors: ${diagnostics.errors.total}
|
|
304
|
+
${Object.entries(diagnostics.errors.byType)
|
|
305
|
+
.map(([type, count]) => ` ${type}: ${count}`)
|
|
306
|
+
.join('\n')}
|
|
307
|
+
|
|
308
|
+
Performance
|
|
309
|
+
-----------
|
|
310
|
+
Average Sync Time: ${diagnostics.performance.averageSyncTime.toFixed(0)}ms
|
|
311
|
+
Memory Usage: ${(diagnostics.performance.memoryUsage / 1024 / 1024).toFixed(1)}MB
|
|
312
|
+
|
|
313
|
+
Health Assessment
|
|
314
|
+
-----------------
|
|
315
|
+
Overall: ${diagnostics.health.overall.toUpperCase()}
|
|
316
|
+
${diagnostics.health.issues.length > 0 ? `Issues:\n${diagnostics.health.issues.map(i => ` - ${i}`).join('\n')}` : ''}
|
|
317
|
+
${diagnostics.health.recommendations.length > 0 ? `Recommendations:\n${diagnostics.health.recommendations.map(r => ` - ${r}`).join('\n')}` : ''}
|
|
318
|
+
`;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
// Export singleton instance
|
|
322
|
+
export const diagnostics = MatterDiagnostics.getInstance();
|
|
323
|
+
//# sourceMappingURL=matterDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterDiagnostics.js","sourceRoot":"","sources":["../../src/matter/matterDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter Error Handler
|
|
3
|
+
*
|
|
4
|
+
* Centralized error handling and recovery for Matter.js integration
|
|
5
|
+
* with circuit breaker pattern and contextual recovery
|
|
6
|
+
*/
|
|
7
|
+
import { MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError } from './matterTypes.js';
|
|
8
|
+
export { MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError };
|
|
9
|
+
/**
|
|
10
|
+
* Circuit breaker states
|
|
11
|
+
*/
|
|
12
|
+
declare enum CircuitState {
|
|
13
|
+
CLOSED = "CLOSED",// Normal operation
|
|
14
|
+
OPEN = "OPEN",// Failure threshold exceeded, blocking requests
|
|
15
|
+
HALF_OPEN = "HALF_OPEN"
|
|
16
|
+
}
|
|
17
|
+
export declare class MatterErrorHandler {
|
|
18
|
+
private static instance;
|
|
19
|
+
private errorCount;
|
|
20
|
+
private lastErrors;
|
|
21
|
+
private recoveryCallbacks;
|
|
22
|
+
private circuitBreakers;
|
|
23
|
+
private recoveryContexts;
|
|
24
|
+
private readonly MAX_RECOVERY_ATTEMPTS;
|
|
25
|
+
private constructor();
|
|
26
|
+
static getInstance(): MatterErrorHandler;
|
|
27
|
+
/**
|
|
28
|
+
* Handle a Matter error with context-aware recovery
|
|
29
|
+
*/
|
|
30
|
+
handleError(error: Error | MatterError, context?: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Categorize error into Matter error types
|
|
33
|
+
*/
|
|
34
|
+
private categorizeError;
|
|
35
|
+
/**
|
|
36
|
+
* Log error with appropriate severity
|
|
37
|
+
*/
|
|
38
|
+
private logError;
|
|
39
|
+
/**
|
|
40
|
+
* Get error type from MatterError
|
|
41
|
+
*/
|
|
42
|
+
private getErrorType;
|
|
43
|
+
/**
|
|
44
|
+
* Track error occurrences with bounds checking
|
|
45
|
+
*/
|
|
46
|
+
private trackError;
|
|
47
|
+
/**
|
|
48
|
+
* Clear errors for a specific type
|
|
49
|
+
*/
|
|
50
|
+
private clearErrors;
|
|
51
|
+
/**
|
|
52
|
+
* Attempt contextual recovery from error
|
|
53
|
+
*/
|
|
54
|
+
private attemptContextualRecovery;
|
|
55
|
+
/**
|
|
56
|
+
* Get or create a circuit breaker for an error type
|
|
57
|
+
*/
|
|
58
|
+
private getOrCreateCircuitBreaker;
|
|
59
|
+
/**
|
|
60
|
+
* Check if we should attempt recovery
|
|
61
|
+
*/
|
|
62
|
+
private shouldAttemptRecovery;
|
|
63
|
+
/**
|
|
64
|
+
* Get contextual delay based on error type and attempt count
|
|
65
|
+
*/
|
|
66
|
+
private getContextualDelay;
|
|
67
|
+
/**
|
|
68
|
+
* Register a recovery callback for specific error type
|
|
69
|
+
*/
|
|
70
|
+
registerRecoveryCallback(type: MatterErrorType, callback: () => Promise<void>): void;
|
|
71
|
+
/**
|
|
72
|
+
* Reset error counts (useful after successful recovery)
|
|
73
|
+
*/
|
|
74
|
+
resetErrorCount(type?: MatterErrorType): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get error statistics
|
|
77
|
+
*/
|
|
78
|
+
getErrorStats(): Map<MatterErrorType, {
|
|
79
|
+
count: number;
|
|
80
|
+
lastError?: MatterError;
|
|
81
|
+
circuitState?: CircuitState;
|
|
82
|
+
recoveryAttempts?: number;
|
|
83
|
+
}>;
|
|
84
|
+
/**
|
|
85
|
+
* Create a wrapped function with error handling
|
|
86
|
+
*/
|
|
87
|
+
wrapAsync<T extends (...args: any[]) => Promise<any>>(fn: T, context: string): T;
|
|
88
|
+
/**
|
|
89
|
+
* Create a wrapped function with error suppression
|
|
90
|
+
*/
|
|
91
|
+
wrapAsyncSafe<T extends (...args: any[]) => Promise<any>>(fn: T, context: string, defaultValue?: ReturnType<T>): T;
|
|
92
|
+
}
|
|
93
|
+
export declare const errorHandler: MatterErrorHandler;
|
|
94
|
+
//# sourceMappingURL=matterErrorHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterErrorHandler.d.ts","sourceRoot":"","sources":["../../src/matter/matterErrorHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAKzB,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA;AAE5H;;GAEG;AACH,aAAK,YAAY;IACf,MAAM,WAAW,CAAE,mBAAmB;IACtC,IAAI,SAAS,CAAE,gDAAgD;IAC/D,SAAS,cAAc;CACxB;AAqGD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,iBAAiB,CAAsD;IAC/E,OAAO,CAAC,eAAe,CAA6C;IACpE,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAI;IAE1C,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,kBAAkB;IAOxC;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9E;;OAEG;IACH,OAAO,CAAC,eAAe;IA2DvB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAuChB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAiClB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;YACW,yBAAyB;IAyDvC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAMpF;;OAEG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI;IAuB7C;;OAEG;IACH,aAAa,IAAI,GAAG,CAAC,eAAe,EAAE;QACpC,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,CAAC,EAAE,WAAW,CAAA;QACvB,YAAY,CAAC,EAAE,YAAY,CAAA;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAC;IAmBF;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAClD,EAAE,EAAE,CAAC,EACL,OAAO,EAAE,MAAM,GACd,CAAC;IAWJ;;OAEG;IACH,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACtD,EAAE,EAAE,CAAC,EACL,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAC3B,CAAC;CAUL;AAGD,eAAO,MAAM,YAAY,oBAAmC,CAAA"}
|