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.
Files changed (36) hide show
  1. package/dist/api.d.ts +179 -59
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +26 -50
  4. package/dist/api.js.map +1 -1
  5. package/dist/index.d.ts +35 -6
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +12 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/matter/index.d.ts +41 -1
  10. package/dist/matter/index.d.ts.map +1 -1
  11. package/dist/matter/index.js +1 -1
  12. package/dist/matter/index.js.map +1 -1
  13. package/dist/matter/matterAccessoryCache.d.ts.map +1 -1
  14. package/dist/matter/matterAccessoryCache.js +9 -4
  15. package/dist/matter/matterAccessoryCache.js.map +1 -1
  16. package/dist/matter/matterBehaviors.d.ts +4 -0
  17. package/dist/matter/matterBehaviors.d.ts.map +1 -1
  18. package/dist/matter/matterBehaviors.js +29 -0
  19. package/dist/matter/matterBehaviors.js.map +1 -1
  20. package/dist/matter/matterConfigValidator.d.ts +56 -0
  21. package/dist/matter/matterConfigValidator.d.ts.map +1 -1
  22. package/dist/matter/matterConfigValidator.js +100 -1
  23. package/dist/matter/matterConfigValidator.js.map +1 -1
  24. package/dist/matter/matterServer.d.ts +6 -0
  25. package/dist/matter/matterServer.d.ts.map +1 -1
  26. package/dist/matter/matterServer.js +169 -8
  27. package/dist/matter/matterServer.js.map +1 -1
  28. package/dist/matter/matterTypes.d.ts +37 -1
  29. package/dist/matter/matterTypes.d.ts.map +1 -1
  30. package/dist/matter/matterTypes.js +36 -0
  31. package/dist/matter/matterTypes.js.map +1 -1
  32. package/package.json +4 -4
  33. package/dist/matter/matterValidation.d.ts +0 -57
  34. package/dist/matter/matterValidation.d.ts.map +0 -1
  35. package/dist/matter/matterValidation.js +0 -97
  36. 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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"}