homebridge 2.0.0-alpha.45 → 2.0.0-alpha.47
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 +179 -59
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +26 -50
- package/dist/api.js.map +1 -1
- package/dist/index.d.ts +35 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/matter/index.d.ts +41 -1
- package/dist/matter/index.d.ts.map +1 -1
- package/dist/matter/index.js +1 -1
- package/dist/matter/index.js.map +1 -1
- package/dist/matter/matterAccessoryCache.d.ts.map +1 -1
- package/dist/matter/matterAccessoryCache.js +9 -4
- package/dist/matter/matterAccessoryCache.js.map +1 -1
- package/dist/matter/matterBehaviors.d.ts +4 -0
- package/dist/matter/matterBehaviors.d.ts.map +1 -1
- package/dist/matter/matterBehaviors.js +29 -0
- package/dist/matter/matterBehaviors.js.map +1 -1
- package/dist/matter/matterConfigValidator.d.ts +56 -0
- package/dist/matter/matterConfigValidator.d.ts.map +1 -1
- package/dist/matter/matterConfigValidator.js +100 -1
- package/dist/matter/matterConfigValidator.js.map +1 -1
- package/dist/matter/matterServer.d.ts +6 -0
- package/dist/matter/matterServer.d.ts.map +1 -1
- package/dist/matter/matterServer.js +169 -8
- package/dist/matter/matterServer.js.map +1 -1
- package/dist/matter/matterTypes.d.ts +37 -1
- package/dist/matter/matterTypes.d.ts.map +1 -1
- package/dist/matter/matterTypes.js +36 -0
- package/dist/matter/matterTypes.js.map +1 -1
- package/package.json +4 -4
- package/dist/matter/matterValidation.d.ts +0 -57
- package/dist/matter/matterValidation.d.ts.map +0 -1
- package/dist/matter/matterValidation.js +0 -97
- package/dist/matter/matterValidation.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"matterValidation.d.ts","sourceRoot":"","sources":["../../src/matter/matterValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;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;;;;;;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"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Matter Validation Utilities
|
|
3
|
-
*
|
|
4
|
-
* Common validation functions used across Matter configuration validators
|
|
5
|
-
* to ensure consistency and reduce duplication.
|
|
6
|
-
*/
|
|
7
|
-
import { Logger } from '../logger.js';
|
|
8
|
-
const log = Logger.withPrefix('Matter');
|
|
9
|
-
/**
|
|
10
|
-
* Validate a Matter port number
|
|
11
|
-
*
|
|
12
|
-
* @param port - Port number to validate
|
|
13
|
-
* @param checkConflicts - Whether to check for known conflicting ports
|
|
14
|
-
* @returns Validation result with error/warning messages
|
|
15
|
-
*/
|
|
16
|
-
export function validatePort(port, checkConflicts = false) {
|
|
17
|
-
if (!Number.isInteger(port)) {
|
|
18
|
-
return { valid: false, error: `Port must be an integer (got: ${port})` };
|
|
19
|
-
}
|
|
20
|
-
if (port < 1025 || port > 65534) {
|
|
21
|
-
return { valid: false, error: `Port must be between 1025 and 65534 (got: ${port})` };
|
|
22
|
-
}
|
|
23
|
-
// Check for common conflicts
|
|
24
|
-
if (checkConflicts) {
|
|
25
|
-
const conflictPorts = [5353, 8080, 8443]; // mDNS, common HTTP ports
|
|
26
|
-
if (conflictPorts.includes(port)) {
|
|
27
|
-
return {
|
|
28
|
-
valid: true,
|
|
29
|
-
warning: `Port ${port} may conflict with other services. Consider using a different port.`,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return { valid: true };
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Sanitize a unique ID for Matter filesystem storage
|
|
37
|
-
*
|
|
38
|
-
* Removes colons from MAC addresses and converts to uppercase for consistency.
|
|
39
|
-
* Example: "AB:CD:EF:12:34:56" -> "ABCDEF123456"
|
|
40
|
-
*
|
|
41
|
-
* @param uniqueId - Unique identifier to sanitize (typically a MAC address)
|
|
42
|
-
* @returns Sanitized unique ID and any warnings
|
|
43
|
-
*/
|
|
44
|
-
export function sanitizeUniqueId(uniqueId) {
|
|
45
|
-
const warnings = [];
|
|
46
|
-
const original = uniqueId;
|
|
47
|
-
if (uniqueId.trim().length === 0) {
|
|
48
|
-
return {
|
|
49
|
-
value: '',
|
|
50
|
-
warnings: ['uniqueId is empty after trimming'],
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
// Remove colons and convert to uppercase for Matter storage paths
|
|
54
|
-
const sanitized = uniqueId.replace(/:/g, '').toUpperCase();
|
|
55
|
-
if (sanitized !== original) {
|
|
56
|
-
warnings.push(`uniqueId was sanitized from "${original}" to "${sanitized}"`);
|
|
57
|
-
}
|
|
58
|
-
if (sanitized.length === 0) {
|
|
59
|
-
warnings.push('uniqueId resulted in empty string after sanitization');
|
|
60
|
-
}
|
|
61
|
-
return { value: sanitized, warnings };
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Truncate a string to a maximum length with warning
|
|
65
|
-
*
|
|
66
|
-
* @param value - String to truncate
|
|
67
|
-
* @param maxLength - Maximum allowed length
|
|
68
|
-
* @param fieldName - Name of the field (for warnings)
|
|
69
|
-
* @returns Truncated value and any warnings
|
|
70
|
-
*/
|
|
71
|
-
export function truncateString(value, maxLength, fieldName) {
|
|
72
|
-
const warnings = [];
|
|
73
|
-
if (value.length > maxLength) {
|
|
74
|
-
warnings.push(`${fieldName} exceeds ${maxLength} characters, truncating: ${value}`);
|
|
75
|
-
log.warn(`${fieldName} exceeds ${maxLength} characters, truncating: ${value}`);
|
|
76
|
-
return {
|
|
77
|
-
value: value.slice(0, maxLength),
|
|
78
|
-
warnings,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
return { value, warnings };
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Check for port conflicts between HAP and Matter ports
|
|
85
|
-
*
|
|
86
|
-
* @param hapPort - HAP bridge port
|
|
87
|
-
* @param matterPort - Matter bridge port
|
|
88
|
-
* @returns Warning message if ports are too close, undefined otherwise
|
|
89
|
-
*/
|
|
90
|
-
export function checkPortProximity(hapPort, matterPort) {
|
|
91
|
-
const MIN_PORT_SEPARATION = 10;
|
|
92
|
-
if (Math.abs(hapPort - matterPort) < MIN_PORT_SEPARATION) {
|
|
93
|
-
return `HAP port ${hapPort} and Matter port ${matterPort} are very close. Consider spacing them further apart.`;
|
|
94
|
-
}
|
|
95
|
-
return undefined;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=matterValidation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"matterValidation.js","sourceRoot":"","sources":["../../src/matter/matterValidation.ts"],"names":[],"mappings":"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"}
|