homebridge 2.0.0-beta.30 → 2.0.0-beta.31
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/dist/api.d.ts +267 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +92 -0
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +4 -2
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +1 -3
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +29 -2
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +294 -4
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +19 -0
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +38 -3
- package/dist/childBridgeService.js.map +1 -1
- package/dist/externalPortService.d.ts +27 -6
- package/dist/externalPortService.d.ts.map +1 -1
- package/dist/externalPortService.js +73 -7
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +47 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +20 -0
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js.map +1 -1
- package/dist/logger.d.ts +6 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +8 -0
- package/dist/logger.js.map +1 -1
- package/dist/matter/index.d.ts +123 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +19 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/matterAccessoryCache.d.ts +96 -0
- package/dist/matter/matterAccessoryCache.d.ts.map +1 -0
- package/dist/matter/matterAccessoryCache.js +192 -0
- package/dist/matter/matterAccessoryCache.js.map +1 -0
- package/dist/matter/matterBehaviors.d.ts +194 -0
- package/dist/matter/matterBehaviors.d.ts.map +1 -0
- package/dist/matter/matterBehaviors.js +665 -0
- package/dist/matter/matterBehaviors.js.map +1 -0
- package/dist/matter/matterConfigValidator.d.ts +81 -0
- package/dist/matter/matterConfigValidator.d.ts.map +1 -0
- package/dist/matter/matterConfigValidator.js +240 -0
- package/dist/matter/matterConfigValidator.js.map +1 -0
- package/dist/matter/matterErrorHandler.d.ts +106 -0
- package/dist/matter/matterErrorHandler.d.ts.map +1 -0
- package/dist/matter/matterErrorHandler.js +495 -0
- package/dist/matter/matterErrorHandler.js.map +1 -0
- package/dist/matter/matterLogFormatter.d.ts +19 -0
- package/dist/matter/matterLogFormatter.d.ts.map +1 -0
- package/dist/matter/matterLogFormatter.js +144 -0
- package/dist/matter/matterLogFormatter.js.map +1 -0
- package/dist/matter/matterNetworkMonitor.d.ts +68 -0
- package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
- package/dist/matter/matterNetworkMonitor.js +249 -0
- package/dist/matter/matterNetworkMonitor.js.map +1 -0
- package/dist/matter/matterServer.d.ts +656 -0
- package/dist/matter/matterServer.d.ts.map +1 -0
- package/dist/matter/matterServer.js +1690 -0
- package/dist/matter/matterServer.js.map +1 -0
- package/dist/matter/matterServerHelpers.d.ts +81 -0
- package/dist/matter/matterServerHelpers.d.ts.map +1 -0
- package/dist/matter/matterServerHelpers.js +323 -0
- package/dist/matter/matterServerHelpers.js.map +1 -0
- package/dist/matter/matterSharedTypes.d.ts +170 -0
- package/dist/matter/matterSharedTypes.d.ts.map +1 -0
- package/dist/matter/matterSharedTypes.js +52 -0
- package/dist/matter/matterSharedTypes.js.map +1 -0
- package/dist/matter/matterStorage.d.ts +128 -0
- package/dist/matter/matterStorage.d.ts.map +1 -0
- package/dist/matter/matterStorage.js +415 -0
- package/dist/matter/matterStorage.js.map +1 -0
- package/dist/matter/matterTypes.d.ts +745 -0
- package/dist/matter/matterTypes.d.ts.map +1 -0
- package/dist/matter/matterTypes.js +174 -0
- package/dist/matter/matterTypes.js.map +1 -0
- package/dist/server.d.ts +23 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +385 -7
- 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 +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"}
|