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,527 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { applyFeaturesToBehavior, applyWindowCoveringFeatures, CLUSTER_IDS, detectBehaviorFeatures, detectServiceAreaFeatures, detectWindowCoveringFeatures, determineColorControlFeaturesFromHandlers, extractColorControlFeatures, extractThermostatFeatures, getBehaviorMap, validateAccessoryRequiredFields, } from './serverHelpers.js';
3
- import { MatterDeviceError } from './types.js';
4
- describe('serverHelpers', () => {
5
- describe('cLUSTER_IDS', () => {
6
- it('should export cluster ID constants', () => {
7
- expect(CLUSTER_IDS.COLOR_CONTROL).toBeDefined();
8
- expect(CLUSTER_IDS.THERMOSTAT).toBeDefined();
9
- expect(CLUSTER_IDS.WINDOW_COVERING).toBeDefined();
10
- expect(CLUSTER_IDS.DOOR_LOCK).toBeDefined();
11
- expect(CLUSTER_IDS.ON_OFF).toBeDefined();
12
- expect(CLUSTER_IDS.LEVEL_CONTROL).toBeDefined();
13
- });
14
- });
15
- describe('validateAccessoryRequiredFields', () => {
16
- it('should pass validation for valid accessory', () => {
17
- const validAccessory = {
18
- deviceType: { name: 'OnOffLight' },
19
- uuid: 'test-uuid',
20
- displayName: 'Test Light',
21
- serialNumber: 'ABC123',
22
- manufacturer: 'Homebridge',
23
- model: 'v1.0',
24
- clusters: {
25
- onOff: { onOff: false },
26
- },
27
- };
28
- expect(() => validateAccessoryRequiredFields(validAccessory)).not.toThrow();
29
- });
30
- it('should throw error when deviceType is missing', () => {
31
- const accessory = {
32
- uuid: 'test-uuid',
33
- displayName: 'Test Light',
34
- };
35
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(MatterDeviceError);
36
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/deviceType/);
37
- });
38
- it('should throw error when uuid is missing', () => {
39
- const accessory = {
40
- deviceType: { name: 'OnOffLight' },
41
- displayName: 'Test Light',
42
- };
43
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(MatterDeviceError);
44
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/uuid/);
45
- });
46
- it('should throw error when displayName is missing', () => {
47
- const accessory = {
48
- deviceType: { name: 'OnOffLight' },
49
- uuid: 'test-uuid',
50
- };
51
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(MatterDeviceError);
52
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/displayName/);
53
- });
54
- it('should throw error when serialNumber is missing', () => {
55
- const accessory = {
56
- deviceType: { name: 'OnOffLight' },
57
- uuid: 'test-uuid',
58
- displayName: 'Test Light',
59
- };
60
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(MatterDeviceError);
61
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/serialNumber/);
62
- });
63
- it('should throw error when manufacturer is missing', () => {
64
- const accessory = {
65
- deviceType: { name: 'OnOffLight' },
66
- uuid: 'test-uuid',
67
- displayName: 'Test Light',
68
- serialNumber: 'ABC123',
69
- };
70
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(MatterDeviceError);
71
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/manufacturer/);
72
- });
73
- it('should throw error when model is missing', () => {
74
- const accessory = {
75
- deviceType: { name: 'OnOffLight' },
76
- uuid: 'test-uuid',
77
- displayName: 'Test Light',
78
- serialNumber: 'ABC123',
79
- manufacturer: 'Homebridge',
80
- };
81
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(MatterDeviceError);
82
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/model/);
83
- });
84
- it('should throw error when clusters is missing for non-composed devices', () => {
85
- const accessory = {
86
- deviceType: { name: 'OnOffLight' },
87
- uuid: 'test-uuid',
88
- displayName: 'Test Light',
89
- serialNumber: 'ABC123',
90
- manufacturer: 'Homebridge',
91
- model: 'v1.0',
92
- };
93
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(MatterDeviceError);
94
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/clusters/);
95
- });
96
- it('should allow missing clusters when parts are provided', () => {
97
- const accessory = {
98
- deviceType: { name: 'ComposedDevice' },
99
- uuid: 'test-uuid',
100
- displayName: 'Test Device',
101
- serialNumber: 'ABC123',
102
- manufacturer: 'Homebridge',
103
- model: 'v1.0',
104
- parts: [
105
- {
106
- id: 'part1',
107
- deviceType: { name: 'OnOffLight' },
108
- clusters: { onOff: { onOff: false } },
109
- },
110
- ],
111
- };
112
- expect(() => validateAccessoryRequiredFields(accessory)).not.toThrow();
113
- });
114
- it('should throw error when part is missing id', () => {
115
- const accessory = {
116
- deviceType: { name: 'ComposedDevice' },
117
- uuid: 'test-uuid',
118
- displayName: 'Test Device',
119
- serialNumber: 'ABC123',
120
- manufacturer: 'Homebridge',
121
- model: 'v1.0',
122
- parts: [
123
- {
124
- deviceType: { name: 'OnOffLight' },
125
- clusters: { onOff: { onOff: false } },
126
- },
127
- ],
128
- };
129
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/part missing required field 'id'/);
130
- });
131
- it('should throw error when part is missing deviceType', () => {
132
- const accessory = {
133
- deviceType: { name: 'ComposedDevice' },
134
- uuid: 'test-uuid',
135
- displayName: 'Test Device',
136
- serialNumber: 'ABC123',
137
- manufacturer: 'Homebridge',
138
- model: 'v1.0',
139
- parts: [
140
- {
141
- id: 'part1',
142
- clusters: { onOff: { onOff: false } },
143
- },
144
- ],
145
- };
146
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/part "part1" is missing required field 'deviceType'/);
147
- });
148
- it('should throw error when part is missing clusters', () => {
149
- const accessory = {
150
- deviceType: { name: 'ComposedDevice' },
151
- uuid: 'test-uuid',
152
- displayName: 'Test Device',
153
- serialNumber: 'ABC123',
154
- manufacturer: 'Homebridge',
155
- model: 'v1.0',
156
- parts: [
157
- {
158
- id: 'part1',
159
- deviceType: { name: 'OnOffLight' },
160
- },
161
- ],
162
- };
163
- expect(() => validateAccessoryRequiredFields(accessory)).toThrow(/part "part1" is missing or has invalid 'clusters' field/);
164
- });
165
- });
166
- describe('extractColorControlFeatures', () => {
167
- it('should extract HueSaturation feature', () => {
168
- const features = extractColorControlFeatures({ hueSaturation: true });
169
- expect(features).toContain('HueSaturation');
170
- });
171
- it('should extract Xy feature', () => {
172
- const features = extractColorControlFeatures({ xy: true });
173
- expect(features).toContain('Xy');
174
- });
175
- it('should extract ColorTemperature feature', () => {
176
- const features = extractColorControlFeatures({ colorTemperature: true });
177
- expect(features).toContain('ColorTemperature');
178
- });
179
- it('should extract multiple features', () => {
180
- const features = extractColorControlFeatures({
181
- hueSaturation: true,
182
- xy: true,
183
- colorTemperature: true,
184
- });
185
- expect(features).toEqual(['HueSaturation', 'Xy', 'ColorTemperature']);
186
- });
187
- it('should return empty array when no features are enabled', () => {
188
- const features = extractColorControlFeatures({});
189
- expect(features).toEqual([]);
190
- });
191
- });
192
- describe('extractThermostatFeatures', () => {
193
- it('should extract Heating feature', () => {
194
- const features = extractThermostatFeatures({ heating: true });
195
- expect(features).toContain('Heating');
196
- });
197
- it('should extract Cooling feature', () => {
198
- const features = extractThermostatFeatures({ cooling: true });
199
- expect(features).toContain('Cooling');
200
- });
201
- it('should extract Occupancy feature', () => {
202
- const features = extractThermostatFeatures({ occupancy: true });
203
- expect(features).toContain('Occupancy');
204
- });
205
- it('should extract AutoMode feature', () => {
206
- const features = extractThermostatFeatures({ autoMode: true });
207
- expect(features).toContain('AutoMode');
208
- });
209
- it('should extract multiple features', () => {
210
- const features = extractThermostatFeatures({
211
- heating: true,
212
- cooling: true,
213
- occupancy: true,
214
- autoMode: true,
215
- });
216
- expect(features).toEqual(['Heating', 'Cooling', 'Occupancy', 'AutoMode']);
217
- });
218
- it('should return empty array when no features are enabled', () => {
219
- const features = extractThermostatFeatures({});
220
- expect(features).toEqual([]);
221
- });
222
- });
223
- describe('determineColorControlFeaturesFromHandlers', () => {
224
- it('should detect HueSaturation from handler method', () => {
225
- const handlers = {
226
- moveToHueAndSaturationLogic: () => { },
227
- };
228
- const features = determineColorControlFeaturesFromHandlers(handlers);
229
- expect(features).toContain('HueSaturation');
230
- });
231
- it('should detect Xy from handler method', () => {
232
- const handlers = {
233
- moveToColorLogic: () => { },
234
- };
235
- const features = determineColorControlFeaturesFromHandlers(handlers);
236
- expect(features).toContain('Xy');
237
- });
238
- it('should detect ColorTemperature from handler method', () => {
239
- const handlers = {
240
- moveToColorTemperatureLogic: () => { },
241
- };
242
- const features = determineColorControlFeaturesFromHandlers(handlers);
243
- expect(features).toContain('ColorTemperature');
244
- });
245
- it('should detect multiple features from multiple handlers', () => {
246
- const handlers = {
247
- moveToHueAndSaturationLogic: () => { },
248
- moveToColorLogic: () => { },
249
- moveToColorTemperatureLogic: () => { },
250
- };
251
- const features = determineColorControlFeaturesFromHandlers(handlers);
252
- expect(features).toEqual(['HueSaturation', 'Xy', 'ColorTemperature']);
253
- });
254
- it('should return empty array when no relevant handlers exist', () => {
255
- const handlers = {
256
- someOtherHandler: () => { },
257
- };
258
- const features = determineColorControlFeaturesFromHandlers(handlers);
259
- expect(features).toEqual([]);
260
- });
261
- });
262
- describe('detectWindowCoveringFeatures', () => {
263
- it('should detect Lift capability from target attributes', () => {
264
- const accessory = {
265
- displayName: 'Test Blind',
266
- clusters: {
267
- windowCovering: {
268
- targetPositionLiftPercent100ths: 0,
269
- },
270
- },
271
- };
272
- const features = detectWindowCoveringFeatures(accessory);
273
- expect(features).toContain('Lift');
274
- });
275
- it('should detect Lift capability from current attributes', () => {
276
- const accessory = {
277
- displayName: 'Test Blind',
278
- clusters: {
279
- windowCovering: {
280
- currentPositionLiftPercent100ths: 0,
281
- },
282
- },
283
- };
284
- const features = detectWindowCoveringFeatures(accessory);
285
- expect(features).toContain('Lift');
286
- });
287
- it('should detect PositionAwareLift from configStatus', () => {
288
- const accessory = {
289
- displayName: 'Test Blind',
290
- clusters: {
291
- windowCovering: {
292
- targetPositionLiftPercent100ths: 0,
293
- configStatus: {
294
- liftPositionAware: true,
295
- },
296
- },
297
- },
298
- };
299
- const features = detectWindowCoveringFeatures(accessory);
300
- expect(features).toContain('Lift');
301
- expect(features).toContain('PositionAwareLift');
302
- });
303
- it('should detect Tilt capability', () => {
304
- const accessory = {
305
- displayName: 'Test Blind',
306
- clusters: {
307
- windowCovering: {
308
- targetPositionTiltPercent100ths: 0,
309
- },
310
- },
311
- };
312
- const features = detectWindowCoveringFeatures(accessory);
313
- expect(features).toContain('Tilt');
314
- });
315
- it('should detect PositionAwareTilt from configStatus', () => {
316
- const accessory = {
317
- displayName: 'Test Blind',
318
- clusters: {
319
- windowCovering: {
320
- targetPositionTiltPercent100ths: 0,
321
- configStatus: {
322
- tiltPositionAware: true,
323
- },
324
- },
325
- },
326
- };
327
- const features = detectWindowCoveringFeatures(accessory);
328
- expect(features).toContain('Tilt');
329
- expect(features).toContain('PositionAwareTilt');
330
- });
331
- it('should detect both Lift and Tilt features', () => {
332
- const accessory = {
333
- displayName: 'Test Blind',
334
- clusters: {
335
- windowCovering: {
336
- targetPositionLiftPercent100ths: 0,
337
- targetPositionTiltPercent100ths: 0,
338
- },
339
- },
340
- };
341
- const features = detectWindowCoveringFeatures(accessory);
342
- expect(features).toContain('Lift');
343
- expect(features).toContain('Tilt');
344
- });
345
- it('should return empty array when no WindowCovering cluster', () => {
346
- const accessory = {
347
- displayName: 'Test Device',
348
- clusters: {},
349
- };
350
- const features = detectWindowCoveringFeatures(accessory);
351
- expect(features).toEqual([]);
352
- });
353
- });
354
- describe('detectServiceAreaFeatures', () => {
355
- it('should detect Maps feature', () => {
356
- const cluster = {
357
- supportedMaps: [],
358
- };
359
- const features = detectServiceAreaFeatures(cluster);
360
- expect(features).toContain('Maps');
361
- });
362
- it('should detect ProgressReporting feature', () => {
363
- const cluster = {
364
- progress: [],
365
- };
366
- const features = detectServiceAreaFeatures(cluster);
367
- expect(features).toContain('ProgressReporting');
368
- });
369
- it('should detect multiple features', () => {
370
- const cluster = {
371
- supportedMaps: [],
372
- progress: [],
373
- };
374
- const features = detectServiceAreaFeatures(cluster);
375
- expect(features).toEqual(['Maps', 'ProgressReporting']);
376
- });
377
- it('should return empty array when cluster is undefined', () => {
378
- const features = detectServiceAreaFeatures(undefined);
379
- expect(features).toEqual([]);
380
- });
381
- it('should return empty array when no features present', () => {
382
- const cluster = {};
383
- const features = detectServiceAreaFeatures(cluster);
384
- expect(features).toEqual([]);
385
- });
386
- });
387
- describe('applyWindowCoveringFeatures', () => {
388
- it('should return device type when no features detected', () => {
389
- const mockLogger = {
390
- warn: () => { },
391
- };
392
- const originalConsoleWarn = console.warn;
393
- console.warn = mockLogger.warn;
394
- const deviceType = { name: 'WindowCovering' };
395
- const accessory = { displayName: 'Test Blind' };
396
- const result = applyWindowCoveringFeatures(deviceType, accessory, []);
397
- expect(result).toBe(deviceType);
398
- console.warn = originalConsoleWarn;
399
- });
400
- it('should set window covering type to TiltBlindLift when tilt features exist', () => {
401
- const deviceType = {
402
- name: 'WindowCovering',
403
- with: () => deviceType,
404
- };
405
- const accessory = {
406
- displayName: 'Test Blind',
407
- clusters: {
408
- windowCovering: {
409
- type: 0,
410
- },
411
- },
412
- };
413
- applyWindowCoveringFeatures(deviceType, accessory, ['Lift', 'Tilt']);
414
- expect(accessory.clusters.windowCovering.type).toBe(8); // TiltBlindLift
415
- });
416
- it('should set _skipWindowCoveringBehavior context flag', () => {
417
- const deviceType = {
418
- name: 'WindowCovering',
419
- with: () => deviceType,
420
- };
421
- const accessory = {
422
- displayName: 'Test Blind',
423
- };
424
- applyWindowCoveringFeatures(deviceType, accessory, ['Lift']);
425
- expect(accessory.context).toBeDefined();
426
- expect(accessory.context._skipWindowCoveringBehavior).toBe(true);
427
- });
428
- });
429
- describe('getBehaviorMap', () => {
430
- it('should return behavior map with all cluster types', () => {
431
- const map = getBehaviorMap();
432
- expect(map.airQuality).toBeDefined();
433
- expect(map.carbonMonoxideConcentrationMeasurement).toBeDefined();
434
- expect(map.colorControl).toBeDefined();
435
- expect(map.doorLock).toBeDefined();
436
- expect(map.fanControl).toBeDefined();
437
- expect(map.identify).toBeDefined();
438
- expect(map.levelControl).toBeDefined();
439
- expect(map.nitrogenDioxideConcentrationMeasurement).toBeDefined();
440
- expect(map.onOff).toBeDefined();
441
- expect(map.ozoneConcentrationMeasurement).toBeDefined();
442
- expect(map.pm10ConcentrationMeasurement).toBeDefined();
443
- expect(map.pm25ConcentrationMeasurement).toBeDefined();
444
- expect(map.rvcCleanMode).toBeDefined();
445
- expect(map.rvcOperationalState).toBeDefined();
446
- expect(map.rvcRunMode).toBeDefined();
447
- expect(map.serviceArea).toBeDefined();
448
- expect(map.thermostat).toBeDefined();
449
- expect(map.windowCovering).toBeDefined();
450
- });
451
- });
452
- describe('applyFeaturesToBehavior', () => {
453
- it('should return original behavior when features is null', () => {
454
- const mockBehavior = { id: 'test' };
455
- const result = applyFeaturesToBehavior(mockBehavior, null, 'TestCluster');
456
- expect(result).toBe(mockBehavior);
457
- });
458
- it('should return original behavior when features is empty', () => {
459
- const mockBehavior = { id: 'test' };
460
- const result = applyFeaturesToBehavior(mockBehavior, [], 'TestCluster');
461
- expect(result).toBe(mockBehavior);
462
- });
463
- it('should apply features to behavior when features provided', () => {
464
- const extendedBehavior = { id: 'extended' };
465
- const mockBehavior = {
466
- id: 'test',
467
- with: () => extendedBehavior,
468
- };
469
- const result = applyFeaturesToBehavior(mockBehavior, ['Feature1', 'Feature2'], 'TestCluster');
470
- expect(result).toBe(extendedBehavior);
471
- });
472
- });
473
- describe('detectBehaviorFeatures', () => {
474
- it('should return null when device type has no behaviors', () => {
475
- const deviceType = {};
476
- const result = detectBehaviorFeatures(deviceType, 'colorControl', () => []);
477
- expect(result).toBeNull();
478
- });
479
- it('should return null when cluster not found in behaviors', () => {
480
- const deviceType = {
481
- behaviors: [
482
- { id: 'otherCluster', cluster: { id: 999 } },
483
- ],
484
- };
485
- const result = detectBehaviorFeatures(deviceType, 'colorControl', () => []);
486
- expect(result).toBeNull();
487
- });
488
- it('should return null when cluster has no supportedFeatures', () => {
489
- const deviceType = {
490
- behaviors: [
491
- { id: 'colorControl', cluster: { id: 768 } },
492
- ],
493
- };
494
- const result = detectBehaviorFeatures(deviceType, 'colorControl', () => []);
495
- expect(result).toBeNull();
496
- });
497
- it('should extract features using provided extractor', () => {
498
- const deviceType = {
499
- behaviors: [
500
- {
501
- id: 'colorControl',
502
- cluster: {
503
- id: 768,
504
- supportedFeatures: {
505
- hueSaturation: true,
506
- xy: true,
507
- },
508
- },
509
- },
510
- ],
511
- };
512
- const extractor = (supportedFeatures) => {
513
- const features = [];
514
- if (supportedFeatures.hueSaturation) {
515
- features.push('HueSaturation');
516
- }
517
- if (supportedFeatures.xy) {
518
- features.push('Xy');
519
- }
520
- return features;
521
- };
522
- const result = detectBehaviorFeatures(deviceType, 'colorControl', extractor);
523
- expect(result).toEqual(['HueSaturation', 'Xy']);
524
- });
525
- });
526
- });
527
- //# sourceMappingURL=serverHelpers.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverHelpers.spec.js","sourceRoot":"","sources":["../../src/matter/serverHelpers.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=storage.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.spec.d.ts","sourceRoot":"","sources":["../../src/matter/storage.spec.ts"],"names":[],"mappings":""}