homebridge 2.0.0-beta.44 → 2.0.0-beta.45

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 (321) hide show
  1. package/dist/api.d.ts +3 -365
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +13 -85
  4. package/dist/api.js.map +1 -1
  5. package/dist/bridgeService.d.ts +0 -25
  6. package/dist/bridgeService.d.ts.map +1 -1
  7. package/dist/bridgeService.js +32 -85
  8. package/dist/bridgeService.js.map +1 -1
  9. package/dist/childBridgeFork.d.ts +12 -15
  10. package/dist/childBridgeFork.d.ts.map +1 -1
  11. package/dist/childBridgeFork.js +126 -80
  12. package/dist/childBridgeFork.js.map +1 -1
  13. package/dist/childBridgeService.d.ts +21 -105
  14. package/dist/childBridgeService.d.ts.map +1 -1
  15. package/dist/childBridgeService.js +57 -134
  16. package/dist/childBridgeService.js.map +1 -1
  17. package/dist/cli.js +0 -2
  18. package/dist/cli.js.map +1 -1
  19. package/dist/externalPortService.d.ts +0 -21
  20. package/dist/externalPortService.d.ts.map +1 -1
  21. package/dist/externalPortService.js +0 -28
  22. package/dist/externalPortService.js.map +1 -1
  23. package/dist/index.d.ts +0 -112
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +0 -44
  26. package/dist/index.js.map +1 -1
  27. package/dist/ipcService.d.ts +23 -15
  28. package/dist/ipcService.d.ts.map +1 -1
  29. package/dist/ipcService.js +6 -12
  30. package/dist/ipcService.js.map +1 -1
  31. package/dist/logger.d.ts +0 -46
  32. package/dist/logger.d.ts.map +1 -1
  33. package/dist/logger.js +13 -57
  34. package/dist/logger.js.map +1 -1
  35. package/dist/matter/BaseMatterManager.d.ts +19 -0
  36. package/dist/matter/BaseMatterManager.d.ts.map +1 -0
  37. package/dist/matter/BaseMatterManager.js +170 -0
  38. package/dist/matter/BaseMatterManager.js.map +1 -0
  39. package/dist/matter/ChildBridgeMatterManager.d.ts +5 -69
  40. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
  41. package/dist/matter/ChildBridgeMatterManager.js +36 -227
  42. package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
  43. package/dist/matter/ClusterCommandMapper.d.ts +5 -0
  44. package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
  45. package/dist/matter/ClusterCommandMapper.js +203 -0
  46. package/dist/matter/ClusterCommandMapper.js.map +1 -0
  47. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +0 -27
  48. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -1
  49. package/dist/matter/ExternalMatterAccessoryPublisher.js +2 -27
  50. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -1
  51. package/dist/matter/MatterAPIImpl.d.ts +0 -68
  52. package/dist/matter/MatterAPIImpl.d.ts.map +1 -1
  53. package/dist/matter/MatterAPIImpl.js +6 -106
  54. package/dist/matter/MatterAPIImpl.js.map +1 -1
  55. package/dist/matter/MatterBridgeManager.d.ts +9 -60
  56. package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
  57. package/dist/matter/MatterBridgeManager.js +139 -215
  58. package/dist/matter/MatterBridgeManager.js.map +1 -1
  59. package/dist/matter/MatterConfigCollector.d.ts +1 -20
  60. package/dist/matter/MatterConfigCollector.d.ts.map +1 -1
  61. package/dist/matter/MatterConfigCollector.js +14 -27
  62. package/dist/matter/MatterConfigCollector.js.map +1 -1
  63. package/dist/matter/accessoryCache.d.ts +0 -48
  64. package/dist/matter/accessoryCache.d.ts.map +1 -1
  65. package/dist/matter/accessoryCache.js +1 -60
  66. package/dist/matter/accessoryCache.js.map +1 -1
  67. package/dist/matter/behaviors/AirQualityBehavior.d.ts +0 -42
  68. package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -1
  69. package/dist/matter/behaviors/AirQualityBehavior.js +0 -44
  70. package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -1
  71. package/dist/matter/behaviors/BehaviorRegistry.d.ts +4 -42
  72. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -1
  73. package/dist/matter/behaviors/BehaviorRegistry.js +12 -42
  74. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -1
  75. package/dist/matter/behaviors/ColorControlBehavior.d.ts +0 -49
  76. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -1
  77. package/dist/matter/behaviors/ColorControlBehavior.js +0 -90
  78. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -1
  79. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +0 -91
  80. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -1
  81. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +0 -96
  82. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -1
  83. package/dist/matter/behaviors/DoorLockBehavior.d.ts +0 -11
  84. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
  85. package/dist/matter/behaviors/DoorLockBehavior.js +0 -25
  86. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
  87. package/dist/matter/behaviors/FanControlBehavior.d.ts +0 -11
  88. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -1
  89. package/dist/matter/behaviors/FanControlBehavior.js +0 -25
  90. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -1
  91. package/dist/matter/behaviors/IdentifyBehavior.d.ts +0 -11
  92. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -1
  93. package/dist/matter/behaviors/IdentifyBehavior.js +0 -17
  94. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -1
  95. package/dist/matter/behaviors/LevelControlBehavior.d.ts +0 -20
  96. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -1
  97. package/dist/matter/behaviors/LevelControlBehavior.js +0 -52
  98. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -1
  99. package/dist/matter/behaviors/OnOffBehavior.d.ts +0 -17
  100. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -1
  101. package/dist/matter/behaviors/OnOffBehavior.js +0 -38
  102. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -1
  103. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +0 -11
  104. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -1
  105. package/dist/matter/behaviors/RvcCleanModeBehavior.js +0 -17
  106. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -1
  107. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +0 -11
  108. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -1
  109. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +0 -29
  110. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -1
  111. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +0 -11
  112. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -1
  113. package/dist/matter/behaviors/RvcRunModeBehavior.js +0 -17
  114. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -1
  115. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +0 -11
  116. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -1
  117. package/dist/matter/behaviors/ServiceAreaBehavior.js +0 -23
  118. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -1
  119. package/dist/matter/behaviors/ThermostatBehavior.d.ts +0 -11
  120. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -1
  121. package/dist/matter/behaviors/ThermostatBehavior.js +0 -39
  122. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -1
  123. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +0 -17
  124. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -1
  125. package/dist/matter/behaviors/WindowCoveringBehavior.js +0 -56
  126. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -1
  127. package/dist/matter/behaviors/index.d.ts +0 -5
  128. package/dist/matter/behaviors/index.d.ts.map +1 -1
  129. package/dist/matter/behaviors/index.js +0 -5
  130. package/dist/matter/behaviors/index.js.map +1 -1
  131. package/dist/matter/configValidator.d.ts +0 -55
  132. package/dist/matter/configValidator.d.ts.map +1 -1
  133. package/dist/matter/configValidator.js +1 -68
  134. package/dist/matter/configValidator.js.map +1 -1
  135. package/dist/matter/errorHandler.d.ts +0 -22
  136. package/dist/matter/errorHandler.d.ts.map +1 -1
  137. package/dist/matter/errorHandler.js +0 -32
  138. package/dist/matter/errorHandler.js.map +1 -1
  139. package/dist/matter/errors.d.ts +0 -132
  140. package/dist/matter/errors.d.ts.map +1 -1
  141. package/dist/matter/errors.js +0 -132
  142. package/dist/matter/errors.js.map +1 -1
  143. package/dist/matter/index.d.ts +0 -30
  144. package/dist/matter/index.d.ts.map +1 -1
  145. package/dist/matter/index.js +0 -13
  146. package/dist/matter/index.js.map +1 -1
  147. package/dist/matter/logFormatter.d.ts +0 -17
  148. package/dist/matter/logFormatter.d.ts.map +1 -1
  149. package/dist/matter/logFormatter.js +5 -63
  150. package/dist/matter/logFormatter.js.map +1 -1
  151. package/dist/matter/server.d.ts +12 -236
  152. package/dist/matter/server.d.ts.map +1 -1
  153. package/dist/matter/server.js +177 -488
  154. package/dist/matter/server.js.map +1 -1
  155. package/dist/matter/serverHelpers.d.ts +0 -56
  156. package/dist/matter/serverHelpers.d.ts.map +1 -1
  157. package/dist/matter/serverHelpers.js +1 -66
  158. package/dist/matter/serverHelpers.js.map +1 -1
  159. package/dist/matter/sharedTypes.d.ts +0 -83
  160. package/dist/matter/sharedTypes.d.ts.map +1 -1
  161. package/dist/matter/sharedTypes.js +0 -26
  162. package/dist/matter/sharedTypes.js.map +1 -1
  163. package/dist/matter/storage.d.ts +0 -90
  164. package/dist/matter/storage.d.ts.map +1 -1
  165. package/dist/matter/storage.js +2 -130
  166. package/dist/matter/storage.js.map +1 -1
  167. package/dist/matter/typeHelpers.d.ts +0 -30
  168. package/dist/matter/typeHelpers.d.ts.map +1 -1
  169. package/dist/matter/typeHelpers.js +0 -24
  170. package/dist/matter/typeHelpers.js.map +1 -1
  171. package/dist/matter/types.d.ts +0 -273
  172. package/dist/matter/types.d.ts.map +1 -1
  173. package/dist/matter/types.js +0 -83
  174. package/dist/matter/types.js.map +1 -1
  175. package/dist/platformAccessory.d.ts +0 -15
  176. package/dist/platformAccessory.d.ts.map +1 -1
  177. package/dist/platformAccessory.js +6 -32
  178. package/dist/platformAccessory.js.map +1 -1
  179. package/dist/plugin.d.ts +0 -3
  180. package/dist/plugin.d.ts.map +1 -1
  181. package/dist/plugin.js +6 -29
  182. package/dist/plugin.js.map +1 -1
  183. package/dist/pluginManager.d.ts +0 -22
  184. package/dist/pluginManager.d.ts.map +1 -1
  185. package/dist/pluginManager.js +18 -41
  186. package/dist/pluginManager.js.map +1 -1
  187. package/dist/server.d.ts +9 -29
  188. package/dist/server.d.ts.map +1 -1
  189. package/dist/server.js +304 -157
  190. package/dist/server.js.map +1 -1
  191. package/dist/user.d.ts +0 -3
  192. package/dist/user.d.ts.map +1 -1
  193. package/dist/user.js +2 -5
  194. package/dist/user.js.map +1 -1
  195. package/dist/util/mac.js +0 -1
  196. package/dist/util/mac.js.map +1 -1
  197. package/package.json +4 -4
  198. package/dist/api.spec.d.ts +0 -2
  199. package/dist/api.spec.d.ts.map +0 -1
  200. package/dist/api.spec.js +0 -413
  201. package/dist/api.spec.js.map +0 -1
  202. package/dist/logger.spec.d.ts +0 -2
  203. package/dist/logger.spec.d.ts.map +0 -1
  204. package/dist/logger.spec.js +0 -95
  205. package/dist/logger.spec.js.map +0 -1
  206. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +0 -2
  207. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +0 -1
  208. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +0 -293
  209. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +0 -1
  210. package/dist/matter/accessoryCache.spec.d.ts +0 -2
  211. package/dist/matter/accessoryCache.spec.d.ts.map +0 -1
  212. package/dist/matter/accessoryCache.spec.js +0 -452
  213. package/dist/matter/accessoryCache.spec.js.map +0 -1
  214. package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts +0 -5
  215. package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts.map +0 -1
  216. package/dist/matter/behaviors/AirQualityBehavior.spec.js +0 -46
  217. package/dist/matter/behaviors/AirQualityBehavior.spec.js.map +0 -1
  218. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +0 -2
  219. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +0 -1
  220. package/dist/matter/behaviors/BehaviorRegistry.spec.js +0 -307
  221. package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +0 -1
  222. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +0 -2
  223. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +0 -1
  224. package/dist/matter/behaviors/ColorControlBehavior.spec.js +0 -29
  225. package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +0 -1
  226. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts +0 -5
  227. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts.map +0 -1
  228. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js +0 -95
  229. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js.map +0 -1
  230. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +0 -2
  231. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +0 -1
  232. package/dist/matter/behaviors/DoorLockBehavior.spec.js +0 -120
  233. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +0 -1
  234. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +0 -2
  235. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +0 -1
  236. package/dist/matter/behaviors/FanControlBehavior.spec.js +0 -23
  237. package/dist/matter/behaviors/FanControlBehavior.spec.js.map +0 -1
  238. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +0 -2
  239. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +0 -1
  240. package/dist/matter/behaviors/IdentifyBehavior.spec.js +0 -64
  241. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +0 -1
  242. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +0 -2
  243. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +0 -1
  244. package/dist/matter/behaviors/LevelControlBehavior.spec.js +0 -145
  245. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +0 -1
  246. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +0 -2
  247. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +0 -1
  248. package/dist/matter/behaviors/OnOffBehavior.spec.js +0 -128
  249. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +0 -1
  250. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +0 -2
  251. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +0 -1
  252. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +0 -57
  253. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +0 -1
  254. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +0 -2
  255. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +0 -1
  256. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +0 -55
  257. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +0 -1
  258. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +0 -2
  259. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +0 -1
  260. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +0 -57
  261. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +0 -1
  262. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +0 -2
  263. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +0 -1
  264. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +0 -53
  265. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +0 -1
  266. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +0 -2
  267. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +0 -1
  268. package/dist/matter/behaviors/ThermostatBehavior.spec.js +0 -23
  269. package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +0 -1
  270. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +0 -2
  271. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +0 -1
  272. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +0 -27
  273. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +0 -1
  274. package/dist/matter/configValidator.spec.d.ts +0 -2
  275. package/dist/matter/configValidator.spec.d.ts.map +0 -1
  276. package/dist/matter/configValidator.spec.js +0 -390
  277. package/dist/matter/configValidator.spec.js.map +0 -1
  278. package/dist/matter/errorHandler.spec.d.ts +0 -2
  279. package/dist/matter/errorHandler.spec.d.ts.map +0 -1
  280. package/dist/matter/errorHandler.spec.js +0 -159
  281. package/dist/matter/errorHandler.spec.js.map +0 -1
  282. package/dist/matter/logFormatter.spec.d.ts +0 -2
  283. package/dist/matter/logFormatter.spec.d.ts.map +0 -1
  284. package/dist/matter/logFormatter.spec.js +0 -252
  285. package/dist/matter/logFormatter.spec.js.map +0 -1
  286. package/dist/matter/serverHelpers.spec.d.ts +0 -2
  287. package/dist/matter/serverHelpers.spec.d.ts.map +0 -1
  288. package/dist/matter/serverHelpers.spec.js +0 -527
  289. package/dist/matter/serverHelpers.spec.js.map +0 -1
  290. package/dist/matter/storage.spec.d.ts +0 -2
  291. package/dist/matter/storage.spec.d.ts.map +0 -1
  292. package/dist/matter/storage.spec.js +0 -570
  293. package/dist/matter/storage.spec.js.map +0 -1
  294. package/dist/matter/typeHelpers.spec.d.ts +0 -2
  295. package/dist/matter/typeHelpers.spec.d.ts.map +0 -1
  296. package/dist/matter/typeHelpers.spec.js +0 -127
  297. package/dist/matter/typeHelpers.spec.js.map +0 -1
  298. package/dist/platformAccessory.spec.d.ts +0 -2
  299. package/dist/platformAccessory.spec.d.ts.map +0 -1
  300. package/dist/platformAccessory.spec.js +0 -126
  301. package/dist/platformAccessory.spec.js.map +0 -1
  302. package/dist/pluginManager.spec.d.ts +0 -2
  303. package/dist/pluginManager.spec.d.ts.map +0 -1
  304. package/dist/pluginManager.spec.js +0 -43
  305. package/dist/pluginManager.spec.js.map +0 -1
  306. package/dist/server.spec.d.ts +0 -2
  307. package/dist/server.spec.d.ts.map +0 -1
  308. package/dist/server.spec.js +0 -57
  309. package/dist/server.spec.js.map +0 -1
  310. package/dist/user.spec.d.ts +0 -2
  311. package/dist/user.spec.d.ts.map +0 -1
  312. package/dist/user.spec.js +0 -31
  313. package/dist/user.spec.js.map +0 -1
  314. package/dist/util/mac.spec.d.ts +0 -2
  315. package/dist/util/mac.spec.d.ts.map +0 -1
  316. package/dist/util/mac.spec.js +0 -36
  317. package/dist/util/mac.spec.js.map +0 -1
  318. package/dist/version.spec.d.ts +0 -2
  319. package/dist/version.spec.d.ts.map +0 -1
  320. package/dist/version.spec.js +0 -20
  321. package/dist/version.spec.js.map +0 -1
@@ -1,21 +1,5 @@
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
1
  import { Logger } from '../logger.js';
8
2
  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
3
  export function validatePort(port, checkConflicts = false) {
20
4
  if (!Number.isInteger(port)) {
21
5
  return { valid: false, error: `Port must be an integer (got: ${port})` };
@@ -23,9 +7,8 @@ export function validatePort(port, checkConflicts = false) {
23
7
  if (port < 1025 || port > 65534) {
24
8
  return { valid: false, error: `Port must be between 1025 and 65534 (got: ${port})` };
25
9
  }
26
- // Check for common conflicts
27
10
  if (checkConflicts) {
28
- const conflictPorts = [5353, 8080, 8443]; // mDNS, common HTTP ports
11
+ const conflictPorts = [5353, 8080, 8443];
29
12
  if (conflictPorts.includes(port)) {
30
13
  return {
31
14
  valid: true,
@@ -35,15 +18,6 @@ export function validatePort(port, checkConflicts = false) {
35
18
  }
36
19
  return { valid: true };
37
20
  }
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
21
  export function sanitizeUniqueId(uniqueId) {
48
22
  const warnings = [];
49
23
  const original = uniqueId;
@@ -53,7 +27,6 @@ export function sanitizeUniqueId(uniqueId) {
53
27
  warnings: ['uniqueId is empty after trimming'],
54
28
  };
55
29
  }
56
- // Remove colons and convert to uppercase for Matter storage paths
57
30
  const sanitized = uniqueId.replace(/:/g, '').toUpperCase();
58
31
  if (sanitized !== original) {
59
32
  warnings.push(`uniqueId was sanitized from "${original}" to "${sanitized}"`);
@@ -63,14 +36,6 @@ export function sanitizeUniqueId(uniqueId) {
63
36
  }
64
37
  return { value: sanitized, warnings };
65
38
  }
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
39
  export function truncateString(value, maxLength, fieldName) {
75
40
  const warnings = [];
76
41
  if (value.length > maxLength) {
@@ -83,13 +48,6 @@ export function truncateString(value, maxLength, fieldName) {
83
48
  }
84
49
  return { value, warnings };
85
50
  }
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
51
  export function checkPortProximity(hapPort, matterPort) {
94
52
  const MIN_PORT_SEPARATION = 10;
95
53
  if (Math.abs(hapPort - matterPort) < MIN_PORT_SEPARATION) {
@@ -97,23 +55,13 @@ export function checkPortProximity(hapPort, matterPort) {
97
55
  }
98
56
  return undefined;
99
57
  }
100
- // ============================================================================
101
- // High-level validation orchestration
102
- // ============================================================================
103
- /**
104
- * Validate Matter configuration for production readiness
105
- */
106
58
  export class MatterConfigValidator {
107
- /**
108
- * Validate a Matter configuration object
109
- */
110
59
  static validate(config) {
111
60
  const result = {
112
61
  isValid: true,
113
62
  errors: [],
114
63
  warnings: [],
115
64
  };
116
- // Validate port configuration
117
65
  this.validatePort(config, result);
118
66
  result.isValid = result.errors.length === 0;
119
67
  if (result.warnings.length > 0) {
@@ -143,22 +91,17 @@ export class MatterConfigValidator {
143
91
  }
144
92
  }
145
93
  }
146
- /**
147
- * Validate child Matter configuration (_bridge.matter property)
148
- */
149
94
  static validateChildMatterConfig(config, configType, identifier) {
150
95
  const result = {
151
96
  isValid: true,
152
97
  errors: [],
153
98
  warnings: [],
154
99
  };
155
- // If no _bridge.matter property, no validation needed
156
100
  if (!config._bridge?.matter) {
157
101
  return result;
158
102
  }
159
103
  const matterConfig = config._bridge.matter;
160
104
  const prefix = `Child Matter bridge for ${configType} "${identifier}"`;
161
- // Validate port if specified
162
105
  if (matterConfig.port !== undefined) {
163
106
  const validation = validatePort(matterConfig.port, false);
164
107
  if (!validation.valid) {
@@ -169,9 +112,7 @@ export class MatterConfigValidator {
169
112
  else {
170
113
  result.warnings.push(`${prefix}: No port specified. Port will be auto-allocated.`);
171
114
  }
172
- // Check for port conflicts with HAP bridge
173
115
  if (config._bridge && config._bridge.matter) {
174
- // Ensure ports don't conflict if both HAP and Matter are configured
175
116
  if (config._bridge.port && matterConfig.port) {
176
117
  const proximityWarning = checkPortProximity(config._bridge.port, matterConfig.port);
177
118
  if (proximityWarning) {
@@ -179,7 +120,6 @@ export class MatterConfigValidator {
179
120
  }
180
121
  }
181
122
  }
182
- // Log validation results
183
123
  if (result.errors.length > 0) {
184
124
  log.error(`${prefix} validation errors:`);
185
125
  result.errors.forEach(error => log.error(` - ${error}`));
@@ -190,9 +130,6 @@ export class MatterConfigValidator {
190
130
  }
191
131
  return result;
192
132
  }
193
- /**
194
- * Validate all child Matter configurations in a config
195
- */
196
133
  static validateAllChildMatterConfigs(platforms, accessories) {
197
134
  const result = {
198
135
  isValid: true,
@@ -200,14 +137,12 @@ export class MatterConfigValidator {
200
137
  warnings: [],
201
138
  };
202
139
  const usedPorts = new Set();
203
- // Validate platform _bridge.matter configs
204
140
  for (const platform of platforms) {
205
141
  if (platform._bridge?.matter) {
206
142
  const validation = this.validateChildMatterConfig(platform, 'platform', platform.platform || 'unknown');
207
143
  result.errors.push(...validation.errors);
208
144
  result.warnings.push(...validation.warnings);
209
145
  result.isValid = result.isValid && validation.isValid;
210
- // Check for port conflicts
211
146
  if (platform._bridge.matter.port) {
212
147
  if (usedPorts.has(platform._bridge.matter.port)) {
213
148
  result.errors.push(`Duplicate Matter port ${platform._bridge.matter.port} detected. Each Matter bridge must use a unique port.`);
@@ -217,14 +152,12 @@ export class MatterConfigValidator {
217
152
  }
218
153
  }
219
154
  }
220
- // Validate accessory _bridge.matter configs
221
155
  for (const accessory of accessories) {
222
156
  if (accessory._bridge?.matter) {
223
157
  const validation = this.validateChildMatterConfig(accessory, 'accessory', accessory.accessory || 'unknown');
224
158
  result.errors.push(...validation.errors);
225
159
  result.warnings.push(...validation.warnings);
226
160
  result.isValid = result.isValid && validation.isValid;
227
- // Check for port conflicts
228
161
  if (accessory._bridge.matter.port) {
229
162
  if (usedPorts.has(accessory._bridge.matter.port)) {
230
163
  result.errors.push(`Duplicate Matter port ${accessory._bridge.matter.port} detected. Each Matter bridge must use a unique port.`);
@@ -1 +1 @@
1
- {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/matter/configValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/matter/configValidator.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,10 @@
1
- /**
2
- * Simplified Matter Error Handler
3
- *
4
- * Provides basic error categorization and logging without the complexity
5
- * of circuit breakers, recovery callbacks, and exponential backoff.
6
- *
7
- * This simplified version is more appropriate for alpha/beta releases.
8
- * Advanced features can be added later based on production error patterns.
9
- */
10
1
  import { MatterError } from './types.js';
11
- /**
12
- * Simplified Matter Error Handler
13
- * Focuses on proper error categorization and user-friendly logging
14
- */
15
2
  export declare class MatterErrorHandler {
16
3
  private static instance;
17
4
  private constructor();
18
5
  static getInstance(): MatterErrorHandler;
19
- /**
20
- * Handle a Matter error with appropriate logging
21
- */
22
6
  handleError(error: Error | MatterError, context?: string): Promise<void>;
23
- /**
24
- * Categorize a generic error into a typed MatterError
25
- */
26
7
  private categorizeError;
27
- /**
28
- * Log error with appropriate severity and user-friendly messages
29
- */
30
8
  private logError;
31
9
  }
32
10
  export declare const errorHandler: MatterErrorHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/matter/errorHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAGL,WAAW,EAIZ,MAAM,YAAY,CAAA;AAInB;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAE3C,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;IAK9E;;OAEG;IACH,OAAO,CAAC,eAAe;IAyEvB;;OAEG;IACH,OAAO,CAAC,QAAQ;CA6BjB;AAGD,eAAO,MAAM,YAAY,oBAAmC,CAAA"}
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/matter/errorHandler.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,WAAW,EAIZ,MAAM,YAAY,CAAA;AAQnB,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAE3C,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,kBAAkB;IAUlC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9E,OAAO,CAAC,eAAe;IA4EvB,OAAO,CAAC,QAAQ;CA6BjB;AAGD,eAAO,MAAM,YAAY,oBAAmC,CAAA"}
@@ -1,19 +1,6 @@
1
- /**
2
- * Simplified Matter Error Handler
3
- *
4
- * Provides basic error categorization and logging without the complexity
5
- * of circuit breakers, recovery callbacks, and exponential backoff.
6
- *
7
- * This simplified version is more appropriate for alpha/beta releases.
8
- * Advanced features can be added later based on production error patterns.
9
- */
10
1
  import { Logger } from '../logger.js';
11
2
  import { MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './types.js';
12
3
  const log = Logger.withPrefix('Matter/Errors');
13
- /**
14
- * Simplified Matter Error Handler
15
- * Focuses on proper error categorization and user-friendly logging
16
- */
17
4
  export class MatterErrorHandler {
18
5
  static instance;
19
6
  constructor() { }
@@ -23,55 +10,38 @@ export class MatterErrorHandler {
23
10
  }
24
11
  return MatterErrorHandler.instance;
25
12
  }
26
- /**
27
- * Handle a Matter error with appropriate logging
28
- */
29
13
  async handleError(error, context) {
30
14
  const matterError = this.categorizeError(error, context);
31
15
  this.logError(matterError);
32
16
  }
33
- /**
34
- * Categorize a generic error into a typed MatterError
35
- */
36
17
  categorizeError(error, context) {
37
- // If already a typed MatterError, return it
38
18
  if (error instanceof MatterError) {
39
19
  return error;
40
20
  }
41
21
  const errorMessage = error.message.toLowerCase();
42
- // Network errors (port conflicts, connection failures)
43
22
  if (errorMessage.includes('eaddrinuse')) {
44
23
  return new MatterNetworkError(`Port is already in use: ${error.message}`, { code: 'PORT_IN_USE', recoverable: false });
45
24
  }
46
25
  if (errorMessage.includes('econnrefused') || errorMessage.includes('etimedout')) {
47
26
  return new MatterNetworkError(`Connection failed: ${error.message}`, { code: 'CONNECTION_FAILED', recoverable: true });
48
27
  }
49
- // Commissioning errors
50
28
  if (errorMessage.includes('commissioning') || errorMessage.includes('pairing')) {
51
29
  return new MatterCommissioningError(`Commissioning error: ${error.message}`, { recoverable: false });
52
30
  }
53
- // Storage errors
54
31
  if (errorMessage.includes('storage') || errorMessage.includes('enoent') || errorMessage.includes('corrupted')) {
55
32
  return new MatterStorageError(`Storage error: ${error.message}`, { recoverable: true });
56
33
  }
57
- // Configuration errors
58
34
  if (errorMessage.includes('config') || errorMessage.includes('invalid')) {
59
35
  return new MatterError(`Configuration error: ${error.message}`, 'CONFIGURATION_ERROR', { recoverable: false, type: MatterErrorType.CONFIGURATION });
60
36
  }
61
- // Device sync errors (context-based)
62
37
  if (context?.includes('sync') || context?.includes('device')) {
63
38
  return new MatterDeviceError(`Device sync error: ${error.message}`, { recoverable: true, context });
64
39
  }
65
- // Server errors (context-based)
66
40
  if (context?.includes('server')) {
67
41
  return new MatterError(`Server error: ${error.message}`, 'SERVER_ERROR', { recoverable: true, type: MatterErrorType.SERVER, context });
68
42
  }
69
- // Default to unknown error
70
43
  return new MatterError(error.message || 'Unknown Matter error', 'UNKNOWN_ERROR', { recoverable: false, type: MatterErrorType.UNKNOWN, originalError: error });
71
44
  }
72
- /**
73
- * Log error with appropriate severity and user-friendly messages
74
- */
75
45
  logError(error) {
76
46
  if (error instanceof MatterNetworkError) {
77
47
  if (error.details?.code === 'PORT_IN_USE') {
@@ -102,12 +72,10 @@ export class MatterErrorHandler {
102
72
  else {
103
73
  log.error(`Matter error: ${error.message}`);
104
74
  }
105
- // Log stack trace for non-recoverable errors
106
75
  if (!error.recoverable && error.stack) {
107
76
  log.debug('Stack trace:', error.stack);
108
77
  }
109
78
  }
110
79
  }
111
- // Export singleton instance
112
80
  export const errorHandler = MatterErrorHandler.getInstance();
113
81
  //# sourceMappingURL=errorHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/matter/errorHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/matter/errorHandler.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAEnB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AAM9C,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAC,QAAQ,CAAoB;IAE3C,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YACjC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAA;QACxD,CAAC;QACD,OAAO,kBAAkB,CAAC,QAAQ,CAAA;IACpC,CAAC;IAKD,KAAK,CAAC,WAAW,CAAC,KAA0B,EAAE,OAAgB;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACxD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC5B,CAAC;IAKO,eAAe,CAAC,KAA0B,EAAE,OAAgB;QAElE,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QAGhD,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,kBAAkB,CAC3B,2BAA2B,KAAK,CAAC,OAAO,EAAE,EAC1C,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,CAC5C,CAAA;QACH,CAAC;QAED,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAChF,OAAO,IAAI,kBAAkB,CAC3B,sBAAsB,KAAK,CAAC,OAAO,EAAE,EACrC,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAE,CACjD,CAAA;QACH,CAAC;QAGD,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/E,OAAO,IAAI,wBAAwB,CACjC,wBAAwB,KAAK,CAAC,OAAO,EAAE,EACvC,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAA;QACH,CAAC;QAGD,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9G,OAAO,IAAI,kBAAkB,CAC3B,kBAAkB,KAAK,CAAC,OAAO,EAAE,EACjC,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAA;QACH,CAAC;QAGD,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxE,OAAO,IAAI,WAAW,CACpB,wBAAwB,KAAK,CAAC,OAAO,EAAE,EACvC,qBAAqB,EACrB,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,CAC5D,CAAA;QACH,CAAC;QAGD,IAAI,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,iBAAiB,CAC1B,sBAAsB,KAAK,CAAC,OAAO,EAAE,EACrC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAC/B,CAAA;QACH,CAAC;QAGD,IAAI,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,WAAW,CACpB,iBAAiB,KAAK,CAAC,OAAO,EAAE,EAChC,cAAc,EACd,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,CAC7D,CAAA;QACH,CAAC;QAGD,OAAO,IAAI,WAAW,CACpB,KAAK,CAAC,OAAO,IAAI,sBAAsB,EACvC,eAAe,EACf,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAC5E,CAAA;IACH,CAAC;IAKO,QAAQ,CAAC,KAAkB;QACjC,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC1C,GAAG,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAA;YACpG,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,YAAY,wBAAwB,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1D,CAAC;aAAM,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YAC9C,GAAG,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAClD,CAAC;aAAM,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAClD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAA;YAC7G,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAChD,GAAG,CAAC,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3D,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACpD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC7C,CAAC;QAGD,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;CACF;AAGD,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAA"}
@@ -1,167 +1,35 @@
1
- /**
2
- * Matter Protocol Errors
3
- *
4
- * This module provides error classes that plugin developers can throw
5
- * to send specific Matter protocol status codes to controllers.
6
- *
7
- * When a handler throws one of these errors, the Matter server will send
8
- * the appropriate status code to the controller (e.g., Home app) instead
9
- * of crashing the endpoint.
10
- *
11
- * @example
12
- * ```typescript
13
- * import { MatterStatus } from 'homebridge'
14
- *
15
- * handlers: {
16
- * onOff: {
17
- * on: async () => {
18
- * if (deviceIsBusy) {
19
- * throw new MatterStatus.Busy('Device is processing another command')
20
- * }
21
- * if (requestTimedOut) {
22
- * throw new MatterStatus.Timeout('Device did not respond in time')
23
- * }
24
- * // ... control device
25
- * }
26
- * }
27
- * }
28
- * ```
29
- */
30
1
  import { Status, StatusResponseError } from '@matter/main/types';
31
- /**
32
- * Base class for all Matter protocol errors
33
- * Plugins can throw this directly or use specific error classes below
34
- */
35
2
  export declare class MatterProtocolError extends StatusResponseError {
36
3
  constructor(message: string, code: Status, clusterCode?: number);
37
4
  }
38
- /**
39
- * Device is busy processing another action (Status.Busy = 156)
40
- *
41
- * Use when the device cannot handle the request because it's processing another operation.
42
- *
43
- * @example
44
- * ```typescript
45
- * throw new MatterStatus.Busy('Device is currently processing another command')
46
- * ```
47
- */
48
5
  export declare class Busy extends MatterProtocolError {
49
6
  constructor(message?: string);
50
7
  }
51
- /**
52
- * Operation timed out (Status.Timeout = 148)
53
- *
54
- * Use when the device or operation times out.
55
- *
56
- * @example
57
- * ```typescript
58
- * throw new MatterStatus.Timeout('Device did not respond within 5 seconds')
59
- * ```
60
- */
61
8
  export declare class Timeout extends MatterProtocolError {
62
9
  constructor(message?: string);
63
10
  }
64
- /**
65
- * Value out of range or invalid (Status.ConstraintError = 135)
66
- *
67
- * Use when a value is out of bounds or doesn't meet constraints.
68
- *
69
- * @example
70
- * ```typescript
71
- * throw new MatterStatus.ConstraintError('Brightness must be between 0-254')
72
- * ```
73
- */
74
11
  export declare class ConstraintError extends MatterProtocolError {
75
12
  constructor(message?: string);
76
13
  }
77
- /**
78
- * Malformed action or invalid values (Status.InvalidAction = 128)
79
- *
80
- * Use when the command or action is malformed or has invalid field values.
81
- *
82
- * @example
83
- * ```typescript
84
- * throw new MatterStatus.InvalidAction('Invalid color value provided')
85
- * ```
86
- */
87
14
  export declare class InvalidAction extends MatterProtocolError {
88
15
  constructor(message?: string);
89
16
  }
90
- /**
91
- * Current operational state prevents the action (Status.InvalidInState = 203)
92
- *
93
- * Use when the device state prevents the requested operation.
94
- *
95
- * @example
96
- * ```typescript
97
- * throw new MatterStatus.InvalidInState('Cannot unlock door while security system is armed')
98
- * ```
99
- */
100
17
  export declare class InvalidInState extends MatterProtocolError {
101
18
  constructor(message?: string);
102
19
  }
103
- /**
104
- * Generic failure (Status.Failure = 1)
105
- *
106
- * Use as a fallback when no specific error applies.
107
- *
108
- * @example
109
- * ```typescript
110
- * throw new MatterStatus.Failure('Device returned an error')
111
- * ```
112
- */
113
20
  export declare class Failure extends MatterProtocolError {
114
21
  constructor(message?: string);
115
22
  }
116
- /**
117
- * Insufficient resources to process the request (Status.ResourceExhausted = 137)
118
- *
119
- * Use when the device has insufficient resources to handle the request.
120
- *
121
- * @example
122
- * ```typescript
123
- * throw new MatterStatus.ResourceExhausted('Maximum number of scenes reached')
124
- * ```
125
- */
126
23
  export declare class ResourceExhausted extends MatterProtocolError {
127
24
  constructor(message?: string);
128
25
  }
129
- /**
130
- * The sender does not have sufficient permissions (Status.PermissionDenied = 15)
131
- *
132
- * Use when access control prevents the operation.
133
- *
134
- * @example
135
- * ```typescript
136
- * throw new MatterStatus.PermissionDenied('User does not have permission to unlock')
137
- * ```
138
- */
139
26
  export declare class PermissionDenied extends MatterProtocolError {
140
27
  constructor(message?: string);
141
28
  }
142
- /**
143
- * The requested entity was not found (Status.NotFound = 139)
144
- *
145
- * Use when a requested resource or entity doesn't exist.
146
- *
147
- * @example
148
- * ```typescript
149
- * throw new MatterStatus.NotFound('Scene not found')
150
- * ```
151
- */
152
29
  export declare class NotFound extends MatterProtocolError {
153
30
  constructor(message?: string);
154
31
  }
155
- /**
156
- * Helper to check if an error is a Matter protocol error
157
- */
158
32
  export declare function isMatterProtocolError(error: unknown): error is MatterProtocolError;
159
- /**
160
- * Matter protocol status codes and error classes
161
- *
162
- * Use these error classes to signal specific error conditions to Matter controllers.
163
- * Each error class corresponds to a Matter protocol status code.
164
- */
165
33
  export declare const MatterStatus: {
166
34
  MatterProtocolError: typeof MatterProtocolError;
167
35
  Busy: typeof Busy;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/matter/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAGhE;AAED;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,mBAAmB;gBAC/B,OAAO,SAAmB;CAGvC;AAED;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,mBAAmB;gBAClC,OAAO,SAAwB;CAG5C;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB;gBAC1C,OAAO,SAAkC;CAGtD;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,mBAAmB;gBACxC,OAAO,SAA6B;CAGjD;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,mBAAmB;gBACzC,OAAO,SAA2C;CAG/D;AAED;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,mBAAmB;gBAClC,OAAO,SAAqB;CAGzC;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAC5C,OAAO,SAA2B;CAG/C;AAED;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,SAAQ,mBAAmB;gBAC3C,OAAO,SAAsB;CAG1C;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAS,SAAQ,mBAAmB;gBACnC,OAAO,SAAqB;CAGzC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYxB,CAAA"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/matter/errors.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAMhE,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAGhE;AAYD,qBAAa,IAAK,SAAQ,mBAAmB;gBAC/B,OAAO,SAAmB;CAGvC;AAYD,qBAAa,OAAQ,SAAQ,mBAAmB;gBAClC,OAAO,SAAwB;CAG5C;AAYD,qBAAa,eAAgB,SAAQ,mBAAmB;gBAC1C,OAAO,SAAkC;CAGtD;AAYD,qBAAa,aAAc,SAAQ,mBAAmB;gBACxC,OAAO,SAA6B;CAGjD;AAYD,qBAAa,cAAe,SAAQ,mBAAmB;gBACzC,OAAO,SAA2C;CAG/D;AAYD,qBAAa,OAAQ,SAAQ,mBAAmB;gBAClC,OAAO,SAAqB;CAGzC;AAYD,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAC5C,OAAO,SAA2B;CAG/C;AAYD,qBAAa,gBAAiB,SAAQ,mBAAmB;gBAC3C,OAAO,SAAsB;CAG1C;AAYD,qBAAa,QAAS,SAAQ,mBAAmB;gBACnC,OAAO,SAAqB;CAGzC;AAKD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAQD,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYxB,CAAA"}