homebridge 2.0.0-beta.30 → 2.0.0-beta.32

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 (88) hide show
  1. package/dist/api.d.ts +267 -3
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +92 -0
  4. package/dist/api.js.map +1 -1
  5. package/dist/bridgeService.d.ts +4 -2
  6. package/dist/bridgeService.d.ts.map +1 -1
  7. package/dist/bridgeService.js +1 -3
  8. package/dist/bridgeService.js.map +1 -1
  9. package/dist/childBridgeFork.d.ts +29 -2
  10. package/dist/childBridgeFork.d.ts.map +1 -1
  11. package/dist/childBridgeFork.js +294 -4
  12. package/dist/childBridgeFork.js.map +1 -1
  13. package/dist/childBridgeService.d.ts +19 -0
  14. package/dist/childBridgeService.d.ts.map +1 -1
  15. package/dist/childBridgeService.js +38 -3
  16. package/dist/childBridgeService.js.map +1 -1
  17. package/dist/externalPortService.d.ts +27 -6
  18. package/dist/externalPortService.d.ts.map +1 -1
  19. package/dist/externalPortService.js +73 -7
  20. package/dist/externalPortService.js.map +1 -1
  21. package/dist/index.d.ts +47 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +15 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/ipcService.d.ts +20 -0
  26. package/dist/ipcService.d.ts.map +1 -1
  27. package/dist/ipcService.js.map +1 -1
  28. package/dist/logger.d.ts +6 -0
  29. package/dist/logger.d.ts.map +1 -1
  30. package/dist/logger.js +8 -0
  31. package/dist/logger.js.map +1 -1
  32. package/dist/matter/index.d.ts +123 -0
  33. package/dist/matter/index.d.ts.map +1 -0
  34. package/dist/matter/index.js +19 -0
  35. package/dist/matter/index.js.map +1 -0
  36. package/dist/matter/matterAccessoryCache.d.ts +96 -0
  37. package/dist/matter/matterAccessoryCache.d.ts.map +1 -0
  38. package/dist/matter/matterAccessoryCache.js +192 -0
  39. package/dist/matter/matterAccessoryCache.js.map +1 -0
  40. package/dist/matter/matterBehaviors.d.ts +194 -0
  41. package/dist/matter/matterBehaviors.d.ts.map +1 -0
  42. package/dist/matter/matterBehaviors.js +665 -0
  43. package/dist/matter/matterBehaviors.js.map +1 -0
  44. package/dist/matter/matterConfigValidator.d.ts +81 -0
  45. package/dist/matter/matterConfigValidator.d.ts.map +1 -0
  46. package/dist/matter/matterConfigValidator.js +240 -0
  47. package/dist/matter/matterConfigValidator.js.map +1 -0
  48. package/dist/matter/matterErrorHandler.d.ts +106 -0
  49. package/dist/matter/matterErrorHandler.d.ts.map +1 -0
  50. package/dist/matter/matterErrorHandler.js +495 -0
  51. package/dist/matter/matterErrorHandler.js.map +1 -0
  52. package/dist/matter/matterLogFormatter.d.ts +19 -0
  53. package/dist/matter/matterLogFormatter.d.ts.map +1 -0
  54. package/dist/matter/matterLogFormatter.js +144 -0
  55. package/dist/matter/matterLogFormatter.js.map +1 -0
  56. package/dist/matter/matterNetworkMonitor.d.ts +68 -0
  57. package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
  58. package/dist/matter/matterNetworkMonitor.js +249 -0
  59. package/dist/matter/matterNetworkMonitor.js.map +1 -0
  60. package/dist/matter/matterServer.d.ts +656 -0
  61. package/dist/matter/matterServer.d.ts.map +1 -0
  62. package/dist/matter/matterServer.js +1692 -0
  63. package/dist/matter/matterServer.js.map +1 -0
  64. package/dist/matter/matterServerHelpers.d.ts +81 -0
  65. package/dist/matter/matterServerHelpers.d.ts.map +1 -0
  66. package/dist/matter/matterServerHelpers.js +323 -0
  67. package/dist/matter/matterServerHelpers.js.map +1 -0
  68. package/dist/matter/matterSharedTypes.d.ts +170 -0
  69. package/dist/matter/matterSharedTypes.d.ts.map +1 -0
  70. package/dist/matter/matterSharedTypes.js +52 -0
  71. package/dist/matter/matterSharedTypes.js.map +1 -0
  72. package/dist/matter/matterStorage.d.ts +128 -0
  73. package/dist/matter/matterStorage.d.ts.map +1 -0
  74. package/dist/matter/matterStorage.js +415 -0
  75. package/dist/matter/matterStorage.js.map +1 -0
  76. package/dist/matter/matterTypes.d.ts +843 -0
  77. package/dist/matter/matterTypes.d.ts.map +1 -0
  78. package/dist/matter/matterTypes.js +222 -0
  79. package/dist/matter/matterTypes.js.map +1 -0
  80. package/dist/server.d.ts +23 -1
  81. package/dist/server.d.ts.map +1 -1
  82. package/dist/server.js +392 -7
  83. package/dist/server.js.map +1 -1
  84. package/dist/user.d.ts +1 -0
  85. package/dist/user.d.ts.map +1 -1
  86. package/dist/user.js +3 -0
  87. package/dist/user.js.map +1 -1
  88. package/package.json +16 -15
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterBehaviors.js","sourceRoot":"","sources":["../../src/matter/matterBehaviors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Matter Configuration Validation
3
+ *
4
+ * Provides validation utilities and orchestration for Matter configuration objects.
5
+ * Includes both low-level validation primitives and high-level validation methods.
6
+ */
7
+ import type { AccessoryConfig, PlatformConfig } from '../bridgeService.js';
8
+ /**
9
+ * Port validation result
10
+ */
11
+ export interface PortValidationResult {
12
+ valid: boolean;
13
+ error?: string;
14
+ warning?: string;
15
+ }
16
+ /**
17
+ * Sanitization result
18
+ */
19
+ export interface SanitizationResult<T> {
20
+ value: T;
21
+ warnings: string[];
22
+ }
23
+ export interface MatterConfigValidationResult {
24
+ isValid: boolean;
25
+ errors: string[];
26
+ warnings: string[];
27
+ }
28
+ /**
29
+ * Validate a Matter port number
30
+ *
31
+ * @param port - Port number to validate
32
+ * @param checkConflicts - Whether to check for known conflicting ports
33
+ * @returns Validation result with error/warning messages
34
+ */
35
+ export declare function validatePort(port: number, checkConflicts?: boolean): PortValidationResult;
36
+ /**
37
+ * Sanitize a unique ID for Matter filesystem storage
38
+ *
39
+ * Removes colons from MAC addresses and converts to uppercase for consistency.
40
+ * Example: "AB:CD:EF:12:34:56" -> "ABCDEF123456"
41
+ *
42
+ * @param uniqueId - Unique identifier to sanitize (typically a MAC address)
43
+ * @returns Sanitized unique ID and any warnings
44
+ */
45
+ export declare function sanitizeUniqueId(uniqueId: string): SanitizationResult<string>;
46
+ /**
47
+ * Truncate a string to a maximum length with warning
48
+ *
49
+ * @param value - String to truncate
50
+ * @param maxLength - Maximum allowed length
51
+ * @param fieldName - Name of the field (for warnings)
52
+ * @returns Truncated value and any warnings
53
+ */
54
+ export declare function truncateString(value: string, maxLength: number, fieldName: string): SanitizationResult<string>;
55
+ /**
56
+ * Check for port conflicts between HAP and Matter ports
57
+ *
58
+ * @param hapPort - HAP bridge port
59
+ * @param matterPort - Matter bridge port
60
+ * @returns Warning message if ports are too close, undefined otherwise
61
+ */
62
+ export declare function checkPortProximity(hapPort: number, matterPort: number): string | undefined;
63
+ /**
64
+ * Validate Matter configuration for production readiness
65
+ */
66
+ export declare class MatterConfigValidator {
67
+ /**
68
+ * Validate a Matter configuration object
69
+ */
70
+ static validate(config: Record<string, unknown>): MatterConfigValidationResult;
71
+ private static validatePort;
72
+ /**
73
+ * Validate child Matter configuration (_bridge.matter property)
74
+ */
75
+ static validateChildMatterConfig(config: PlatformConfig | AccessoryConfig, configType: 'platform' | 'accessory', identifier: string): MatterConfigValidationResult;
76
+ /**
77
+ * Validate all child Matter configurations in a config
78
+ */
79
+ static validateAllChildMatterConfigs(platforms: PlatformConfig[], accessories: AccessoryConfig[]): MatterConfigValidationResult;
80
+ }
81
+ //# sourceMappingURL=matterConfigValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterConfigValidator.d.ts","sourceRoot":"","sources":["../../src/matter/matterConfigValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAM1E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAMD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,oBAAoB,CAqBvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAuB7E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,MAAM,CAAC,CAa5B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ1F;AAMD;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,4BAA4B;IAyB9E,OAAO,CAAC,MAAM,CAAC,YAAY;IAiB3B;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,UAAU,EAAE,UAAU,GAAG,WAAW,EACpC,UAAU,EAAE,MAAM,GACjB,4BAA4B;IAmD/B;;OAEG;IACH,MAAM,CAAC,6BAA6B,CAClC,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,eAAe,EAAE,GAC7B,4BAA4B;CA2DhC"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Matter Configuration Validation
3
+ *
4
+ * Provides validation utilities and orchestration for Matter configuration objects.
5
+ * Includes both low-level validation primitives and high-level validation methods.
6
+ */
7
+ import { Logger } from '../logger.js';
8
+ const log = Logger.withPrefix('Matter/Config');
9
+ // ============================================================================
10
+ // Low-level validation utilities
11
+ // ============================================================================
12
+ /**
13
+ * Validate a Matter port number
14
+ *
15
+ * @param port - Port number to validate
16
+ * @param checkConflicts - Whether to check for known conflicting ports
17
+ * @returns Validation result with error/warning messages
18
+ */
19
+ export function validatePort(port, checkConflicts = false) {
20
+ if (!Number.isInteger(port)) {
21
+ return { valid: false, error: `Port must be an integer (got: ${port})` };
22
+ }
23
+ if (port < 1025 || port > 65534) {
24
+ return { valid: false, error: `Port must be between 1025 and 65534 (got: ${port})` };
25
+ }
26
+ // Check for common conflicts
27
+ if (checkConflicts) {
28
+ const conflictPorts = [5353, 8080, 8443]; // mDNS, common HTTP ports
29
+ if (conflictPorts.includes(port)) {
30
+ return {
31
+ valid: true,
32
+ warning: `Port ${port} may conflict with other services. Consider using a different port.`,
33
+ };
34
+ }
35
+ }
36
+ return { valid: true };
37
+ }
38
+ /**
39
+ * Sanitize a unique ID for Matter filesystem storage
40
+ *
41
+ * Removes colons from MAC addresses and converts to uppercase for consistency.
42
+ * Example: "AB:CD:EF:12:34:56" -> "ABCDEF123456"
43
+ *
44
+ * @param uniqueId - Unique identifier to sanitize (typically a MAC address)
45
+ * @returns Sanitized unique ID and any warnings
46
+ */
47
+ export function sanitizeUniqueId(uniqueId) {
48
+ const warnings = [];
49
+ const original = uniqueId;
50
+ if (uniqueId.trim().length === 0) {
51
+ return {
52
+ value: '',
53
+ warnings: ['uniqueId is empty after trimming'],
54
+ };
55
+ }
56
+ // Remove colons and convert to uppercase for Matter storage paths
57
+ const sanitized = uniqueId.replace(/:/g, '').toUpperCase();
58
+ if (sanitized !== original) {
59
+ warnings.push(`uniqueId was sanitized from "${original}" to "${sanitized}"`);
60
+ }
61
+ if (sanitized.length === 0) {
62
+ warnings.push('uniqueId resulted in empty string after sanitization');
63
+ }
64
+ return { value: sanitized, warnings };
65
+ }
66
+ /**
67
+ * Truncate a string to a maximum length with warning
68
+ *
69
+ * @param value - String to truncate
70
+ * @param maxLength - Maximum allowed length
71
+ * @param fieldName - Name of the field (for warnings)
72
+ * @returns Truncated value and any warnings
73
+ */
74
+ export function truncateString(value, maxLength, fieldName) {
75
+ const warnings = [];
76
+ if (value.length > maxLength) {
77
+ warnings.push(`${fieldName} exceeds ${maxLength} characters, truncating: ${value}`);
78
+ log.warn(`${fieldName} exceeds ${maxLength} characters, truncating: ${value}`);
79
+ return {
80
+ value: value.slice(0, maxLength),
81
+ warnings,
82
+ };
83
+ }
84
+ return { value, warnings };
85
+ }
86
+ /**
87
+ * Check for port conflicts between HAP and Matter ports
88
+ *
89
+ * @param hapPort - HAP bridge port
90
+ * @param matterPort - Matter bridge port
91
+ * @returns Warning message if ports are too close, undefined otherwise
92
+ */
93
+ export function checkPortProximity(hapPort, matterPort) {
94
+ const MIN_PORT_SEPARATION = 10;
95
+ if (Math.abs(hapPort - matterPort) < MIN_PORT_SEPARATION) {
96
+ return `HAP port ${hapPort} and Matter port ${matterPort} are very close. Consider spacing them further apart.`;
97
+ }
98
+ return undefined;
99
+ }
100
+ // ============================================================================
101
+ // High-level validation orchestration
102
+ // ============================================================================
103
+ /**
104
+ * Validate Matter configuration for production readiness
105
+ */
106
+ export class MatterConfigValidator {
107
+ /**
108
+ * Validate a Matter configuration object
109
+ */
110
+ static validate(config) {
111
+ const result = {
112
+ isValid: true,
113
+ errors: [],
114
+ warnings: [],
115
+ };
116
+ // Validate port configuration
117
+ this.validatePort(config, result);
118
+ result.isValid = result.errors.length === 0;
119
+ if (result.warnings.length > 0) {
120
+ log.warn('Matter configuration warnings:');
121
+ result.warnings.forEach(warning => log.warn(` - ${warning}`));
122
+ }
123
+ if (result.errors.length > 0) {
124
+ log.error('Matter configuration errors:');
125
+ result.errors.forEach(error => log.error(` - ${error}`));
126
+ }
127
+ return result;
128
+ }
129
+ static validatePort(config, result) {
130
+ const port = config.port;
131
+ if (port !== undefined && port !== null) {
132
+ if (typeof port === 'number') {
133
+ const validation = validatePort(port, true);
134
+ if (!validation.valid) {
135
+ result.errors.push(validation.error);
136
+ }
137
+ else if (validation.warning) {
138
+ result.warnings.push(validation.warning);
139
+ }
140
+ }
141
+ else {
142
+ result.errors.push(`Port must be a number, got ${typeof port}.`);
143
+ }
144
+ }
145
+ }
146
+ /**
147
+ * Validate child Matter configuration (_bridge.matter property)
148
+ */
149
+ static validateChildMatterConfig(config, configType, identifier) {
150
+ const result = {
151
+ isValid: true,
152
+ errors: [],
153
+ warnings: [],
154
+ };
155
+ // If no _bridge.matter property, no validation needed
156
+ if (!config._bridge?.matter) {
157
+ return result;
158
+ }
159
+ const matterConfig = config._bridge.matter;
160
+ const prefix = `Child Matter bridge for ${configType} "${identifier}"`;
161
+ // Validate port if specified
162
+ if (matterConfig.port !== undefined) {
163
+ const validation = validatePort(matterConfig.port, false);
164
+ if (!validation.valid) {
165
+ result.errors.push(`${prefix}: ${validation.error}`);
166
+ result.isValid = false;
167
+ }
168
+ }
169
+ else {
170
+ result.warnings.push(`${prefix}: No port specified. Port will be auto-allocated.`);
171
+ }
172
+ // Check for port conflicts with HAP bridge
173
+ if (config._bridge && config._bridge.matter) {
174
+ // Ensure ports don't conflict if both HAP and Matter are configured
175
+ if (config._bridge.port && matterConfig.port) {
176
+ const proximityWarning = checkPortProximity(config._bridge.port, matterConfig.port);
177
+ if (proximityWarning) {
178
+ result.warnings.push(`${prefix}: ${proximityWarning}`);
179
+ }
180
+ }
181
+ }
182
+ // Log validation results
183
+ if (result.errors.length > 0) {
184
+ log.error(`${prefix} validation errors:`);
185
+ result.errors.forEach(error => log.error(` - ${error}`));
186
+ }
187
+ if (result.warnings.length > 0) {
188
+ log.warn(`${prefix} validation warnings:`);
189
+ result.warnings.forEach(warning => log.warn(` - ${warning}`));
190
+ }
191
+ return result;
192
+ }
193
+ /**
194
+ * Validate all child Matter configurations in a config
195
+ */
196
+ static validateAllChildMatterConfigs(platforms, accessories) {
197
+ const result = {
198
+ isValid: true,
199
+ errors: [],
200
+ warnings: [],
201
+ };
202
+ const usedPorts = new Set();
203
+ // Validate platform _bridge.matter configs
204
+ for (const platform of platforms) {
205
+ if (platform._bridge?.matter) {
206
+ const validation = this.validateChildMatterConfig(platform, 'platform', platform.platform || 'unknown');
207
+ result.errors.push(...validation.errors);
208
+ result.warnings.push(...validation.warnings);
209
+ result.isValid = result.isValid && validation.isValid;
210
+ // Check for port conflicts
211
+ if (platform._bridge.matter.port) {
212
+ if (usedPorts.has(platform._bridge.matter.port)) {
213
+ result.errors.push(`Duplicate Matter port ${platform._bridge.matter.port} detected. Each Matter bridge must use a unique port.`);
214
+ result.isValid = false;
215
+ }
216
+ usedPorts.add(platform._bridge.matter.port);
217
+ }
218
+ }
219
+ }
220
+ // Validate accessory _bridge.matter configs
221
+ for (const accessory of accessories) {
222
+ if (accessory._bridge?.matter) {
223
+ const validation = this.validateChildMatterConfig(accessory, 'accessory', accessory.accessory || 'unknown');
224
+ result.errors.push(...validation.errors);
225
+ result.warnings.push(...validation.warnings);
226
+ result.isValid = result.isValid && validation.isValid;
227
+ // Check for port conflicts
228
+ if (accessory._bridge.matter.port) {
229
+ if (usedPorts.has(accessory._bridge.matter.port)) {
230
+ result.errors.push(`Duplicate Matter port ${accessory._bridge.matter.port} detected. Each Matter bridge must use a unique port.`);
231
+ result.isValid = false;
232
+ }
233
+ usedPorts.add(accessory._bridge.matter.port);
234
+ }
235
+ }
236
+ }
237
+ return result;
238
+ }
239
+ }
240
+ //# sourceMappingURL=matterConfigValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterConfigValidator.js","sourceRoot":"","sources":["../../src/matter/matterConfigValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
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
+ * Error patterns for categorization
33
+ * Defined as a class constant for better performance (avoids recreation on every call)
34
+ */
35
+ private static readonly ERROR_PATTERNS;
36
+ /**
37
+ * Categorize error into Matter error types using pattern matching
38
+ * Converts generic Error objects into typed MatterError instances for better handling
39
+ */
40
+ private categorizeError;
41
+ /**
42
+ * Log error with appropriate severity
43
+ */
44
+ private logError;
45
+ /**
46
+ * Get error type from MatterError
47
+ */
48
+ private getErrorType;
49
+ /**
50
+ * Track error occurrences with bounds checking
51
+ */
52
+ private trackError;
53
+ /**
54
+ * Clear errors for a specific type
55
+ */
56
+ private clearErrors;
57
+ /**
58
+ * Attempt contextual recovery from error
59
+ */
60
+ private attemptContextualRecovery;
61
+ /**
62
+ * Get or create a circuit breaker for an error type
63
+ */
64
+ private getOrCreateCircuitBreaker;
65
+ /**
66
+ * Check if we should attempt recovery
67
+ */
68
+ private shouldAttemptRecovery;
69
+ /**
70
+ * Base delays by error type (in milliseconds)
71
+ * Network errors have longer delays since they often indicate transient network issues
72
+ */
73
+ private static readonly BASE_DELAYS;
74
+ /**
75
+ * Get contextual delay based on error type and attempt count
76
+ * Uses exponential backoff with jitter to avoid thundering herd
77
+ */
78
+ private getContextualDelay;
79
+ /**
80
+ * Register a recovery callback for specific error type
81
+ */
82
+ registerRecoveryCallback(type: MatterErrorType, callback: () => Promise<void>): void;
83
+ /**
84
+ * Reset error counts (useful after successful recovery)
85
+ */
86
+ resetErrorCount(type?: MatterErrorType): void;
87
+ /**
88
+ * Get error statistics
89
+ */
90
+ getErrorStats(): Map<MatterErrorType, {
91
+ count: number;
92
+ lastError?: MatterError;
93
+ circuitState?: CircuitState;
94
+ recoveryAttempts?: number;
95
+ }>;
96
+ /**
97
+ * Create a wrapped function with error handling
98
+ */
99
+ wrapAsync<T extends (...args: any[]) => Promise<any>>(fn: T, context: string): T;
100
+ /**
101
+ * Create a wrapped function with error suppression
102
+ */
103
+ wrapAsyncSafe<T extends (...args: any[]) => Promise<any>>(fn: T, context: string, defaultValue?: ReturnType<T>): T;
104
+ }
105
+ export declare const errorHandler: MatterErrorHandler;
106
+ //# 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;AA6GD,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;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAqCrC;IAED;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+CvB;;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;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAUlC;IAED;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;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"}