homebridge 2.0.0-beta.34 → 2.0.0-beta.36

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 (284) hide show
  1. package/dist/api.d.ts +74 -32
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +48 -46
  4. package/dist/api.js.map +1 -1
  5. package/dist/api.spec.d.ts +2 -0
  6. package/dist/api.spec.d.ts.map +1 -0
  7. package/dist/api.spec.js +413 -0
  8. package/dist/api.spec.js.map +1 -0
  9. package/dist/childBridgeFork.d.ts +1 -18
  10. package/dist/childBridgeFork.d.ts.map +1 -1
  11. package/dist/childBridgeFork.js +21 -258
  12. package/dist/childBridgeFork.js.map +1 -1
  13. package/dist/externalPortService.d.ts +2 -9
  14. package/dist/externalPortService.d.ts.map +1 -1
  15. package/dist/externalPortService.js +20 -40
  16. package/dist/externalPortService.js.map +1 -1
  17. package/dist/index.d.ts +10 -10
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +3 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/logger.spec.d.ts +2 -0
  22. package/dist/logger.spec.d.ts.map +1 -0
  23. package/dist/logger.spec.js +95 -0
  24. package/dist/logger.spec.js.map +1 -0
  25. package/dist/matter/ChildBridgeMatterManager.d.ts +96 -0
  26. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  27. package/dist/matter/ChildBridgeMatterManager.js +397 -0
  28. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  29. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +48 -0
  30. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  31. package/dist/matter/ExternalMatterAccessoryPublisher.js +73 -0
  32. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  33. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +2 -0
  34. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +1 -0
  35. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +293 -0
  36. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +1 -0
  37. package/dist/matter/{matterServer.d.ts → MatterAPIImpl.d.ts} +203 -367
  38. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  39. package/dist/matter/MatterAPIImpl.js +305 -0
  40. package/dist/matter/MatterAPIImpl.js.map +1 -0
  41. package/dist/matter/MatterBridgeManager.d.ts +91 -0
  42. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  43. package/dist/matter/MatterBridgeManager.js +426 -0
  44. package/dist/matter/MatterBridgeManager.js.map +1 -0
  45. package/dist/matter/MatterConfigCollector.d.ts +26 -0
  46. package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
  47. package/dist/matter/MatterConfigCollector.js +78 -0
  48. package/dist/matter/MatterConfigCollector.js.map +1 -0
  49. package/dist/matter/{matterAccessoryCache.d.ts → accessoryCache.d.ts} +12 -3
  50. package/dist/matter/accessoryCache.d.ts.map +1 -0
  51. package/dist/matter/{matterAccessoryCache.js → accessoryCache.js} +32 -10
  52. package/dist/matter/accessoryCache.js.map +1 -0
  53. package/dist/matter/accessoryCache.spec.d.ts +2 -0
  54. package/dist/matter/accessoryCache.spec.d.ts.map +1 -0
  55. package/dist/matter/accessoryCache.spec.js +452 -0
  56. package/dist/matter/accessoryCache.spec.js.map +1 -0
  57. package/dist/matter/behaviors/BehaviorRegistry.d.ts +65 -0
  58. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  59. package/dist/matter/behaviors/BehaviorRegistry.js +139 -0
  60. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  61. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +2 -0
  62. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +1 -0
  63. package/dist/matter/behaviors/BehaviorRegistry.spec.js +307 -0
  64. package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +1 -0
  65. package/dist/matter/behaviors/ColorControlBehavior.d.ts +64 -0
  66. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  67. package/dist/matter/behaviors/ColorControlBehavior.js +160 -0
  68. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  69. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +2 -0
  70. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +1 -0
  71. package/dist/matter/behaviors/ColorControlBehavior.spec.js +29 -0
  72. package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +1 -0
  73. package/dist/matter/behaviors/DoorLockBehavior.d.ts +21 -0
  74. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  75. package/dist/matter/behaviors/DoorLockBehavior.js +49 -0
  76. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  77. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +2 -0
  78. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +1 -0
  79. package/dist/matter/behaviors/DoorLockBehavior.spec.js +108 -0
  80. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +1 -0
  81. package/dist/matter/behaviors/FanControlBehavior.d.ts +20 -0
  82. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  83. package/dist/matter/behaviors/FanControlBehavior.js +45 -0
  84. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  85. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +2 -0
  86. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +1 -0
  87. package/dist/matter/behaviors/FanControlBehavior.spec.js +23 -0
  88. package/dist/matter/behaviors/FanControlBehavior.spec.js.map +1 -0
  89. package/dist/matter/behaviors/IdentifyBehavior.d.ts +21 -0
  90. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  91. package/dist/matter/behaviors/IdentifyBehavior.js +27 -0
  92. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  93. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +2 -0
  94. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +1 -0
  95. package/dist/matter/behaviors/IdentifyBehavior.spec.js +64 -0
  96. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +1 -0
  97. package/dist/matter/behaviors/LevelControlBehavior.d.ts +34 -0
  98. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  99. package/dist/matter/behaviors/LevelControlBehavior.js +75 -0
  100. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  101. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +2 -0
  102. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +1 -0
  103. package/dist/matter/behaviors/LevelControlBehavior.spec.js +140 -0
  104. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -0
  105. package/dist/matter/behaviors/OnOffBehavior.d.ts +28 -0
  106. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  107. package/dist/matter/behaviors/OnOffBehavior.js +63 -0
  108. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  109. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +2 -0
  110. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +1 -0
  111. package/dist/matter/behaviors/OnOffBehavior.spec.js +116 -0
  112. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +1 -0
  113. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +19 -0
  114. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  115. package/dist/matter/behaviors/RvcCleanModeBehavior.js +27 -0
  116. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  117. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +2 -0
  118. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +1 -0
  119. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +56 -0
  120. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -0
  121. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +23 -0
  122. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  123. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +49 -0
  124. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  125. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +2 -0
  126. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +1 -0
  127. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +55 -0
  128. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +1 -0
  129. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +19 -0
  130. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  131. package/dist/matter/behaviors/RvcRunModeBehavior.js +27 -0
  132. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  133. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +2 -0
  134. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +1 -0
  135. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +56 -0
  136. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -0
  137. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +22 -0
  138. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  139. package/dist/matter/behaviors/ServiceAreaBehavior.js +35 -0
  140. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  141. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +2 -0
  142. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +1 -0
  143. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +52 -0
  144. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -0
  145. package/dist/matter/behaviors/ThermostatBehavior.d.ts +23 -0
  146. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  147. package/dist/matter/behaviors/ThermostatBehavior.js +79 -0
  148. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  149. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +2 -0
  150. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +1 -0
  151. package/dist/matter/behaviors/ThermostatBehavior.spec.js +23 -0
  152. package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +1 -0
  153. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +32 -0
  154. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  155. package/dist/matter/behaviors/WindowCoveringBehavior.js +106 -0
  156. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  157. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +2 -0
  158. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +1 -0
  159. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +27 -0
  160. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +1 -0
  161. package/dist/matter/behaviors/index.d.ts +20 -0
  162. package/dist/matter/behaviors/index.d.ts.map +1 -0
  163. package/dist/matter/behaviors/index.js +21 -0
  164. package/dist/matter/behaviors/index.js.map +1 -0
  165. package/dist/matter/{matterConfigValidator.d.ts → configValidator.d.ts} +1 -1
  166. package/dist/matter/configValidator.d.ts.map +1 -0
  167. package/dist/matter/{matterConfigValidator.js → configValidator.js} +1 -1
  168. package/dist/matter/configValidator.js.map +1 -0
  169. package/dist/matter/configValidator.spec.d.ts +2 -0
  170. package/dist/matter/configValidator.spec.d.ts.map +1 -0
  171. package/dist/matter/configValidator.spec.js +390 -0
  172. package/dist/matter/configValidator.spec.js.map +1 -0
  173. package/dist/matter/errorHandler.d.ts +33 -0
  174. package/dist/matter/errorHandler.d.ts.map +1 -0
  175. package/dist/matter/errorHandler.js +113 -0
  176. package/dist/matter/errorHandler.js.map +1 -0
  177. package/dist/matter/errorHandler.spec.d.ts +2 -0
  178. package/dist/matter/errorHandler.spec.d.ts.map +1 -0
  179. package/dist/matter/errorHandler.spec.js +159 -0
  180. package/dist/matter/errorHandler.spec.js.map +1 -0
  181. package/dist/matter/index.d.ts +7 -4
  182. package/dist/matter/index.d.ts.map +1 -1
  183. package/dist/matter/index.js +7 -4
  184. package/dist/matter/index.js.map +1 -1
  185. package/dist/matter/{matterLogFormatter.d.ts → logFormatter.d.ts} +1 -1
  186. package/dist/matter/logFormatter.d.ts.map +1 -0
  187. package/dist/matter/{matterLogFormatter.js → logFormatter.js} +33 -6
  188. package/dist/matter/logFormatter.js.map +1 -0
  189. package/dist/matter/logFormatter.spec.d.ts +2 -0
  190. package/dist/matter/logFormatter.spec.d.ts.map +1 -0
  191. package/dist/matter/logFormatter.spec.js +284 -0
  192. package/dist/matter/logFormatter.spec.js.map +1 -0
  193. package/dist/matter/server.d.ts +350 -0
  194. package/dist/matter/server.d.ts.map +1 -0
  195. package/dist/matter/{matterServer.js → server.js} +533 -352
  196. package/dist/matter/server.js.map +1 -0
  197. package/dist/matter/{matterServerHelpers.d.ts → serverHelpers.d.ts} +2 -2
  198. package/dist/matter/serverHelpers.d.ts.map +1 -0
  199. package/dist/matter/{matterServerHelpers.js → serverHelpers.js} +11 -8
  200. package/dist/matter/serverHelpers.js.map +1 -0
  201. package/dist/matter/serverHelpers.spec.d.ts +2 -0
  202. package/dist/matter/serverHelpers.spec.d.ts.map +1 -0
  203. package/dist/matter/serverHelpers.spec.js +521 -0
  204. package/dist/matter/serverHelpers.spec.js.map +1 -0
  205. package/dist/matter/{matterSharedTypes.d.ts → sharedTypes.d.ts} +4 -10
  206. package/dist/matter/sharedTypes.d.ts.map +1 -0
  207. package/dist/matter/{matterSharedTypes.js → sharedTypes.js} +4 -10
  208. package/dist/matter/sharedTypes.js.map +1 -0
  209. package/dist/matter/{matterStorage.d.ts → storage.d.ts} +9 -2
  210. package/dist/matter/storage.d.ts.map +1 -0
  211. package/dist/matter/{matterStorage.js → storage.js} +14 -5
  212. package/dist/matter/{matterStorage.js.map → storage.js.map} +1 -1
  213. package/dist/matter/storage.spec.d.ts +2 -0
  214. package/dist/matter/storage.spec.d.ts.map +1 -0
  215. package/dist/matter/storage.spec.js +570 -0
  216. package/dist/matter/storage.spec.js.map +1 -0
  217. package/dist/matter/typeHelpers.d.ts +45 -0
  218. package/dist/matter/typeHelpers.d.ts.map +1 -0
  219. package/dist/matter/typeHelpers.js +57 -0
  220. package/dist/matter/typeHelpers.js.map +1 -0
  221. package/dist/matter/typeHelpers.spec.d.ts +2 -0
  222. package/dist/matter/typeHelpers.spec.d.ts.map +1 -0
  223. package/dist/matter/typeHelpers.spec.js +127 -0
  224. package/dist/matter/typeHelpers.spec.js.map +1 -0
  225. package/dist/matter/{matterTypes.d.ts → types.d.ts} +2 -2
  226. package/dist/matter/types.d.ts.map +1 -0
  227. package/dist/matter/{matterTypes.js → types.js} +1 -2
  228. package/dist/matter/types.js.map +1 -0
  229. package/dist/platformAccessory.spec.d.ts +2 -0
  230. package/dist/platformAccessory.spec.d.ts.map +1 -0
  231. package/dist/platformAccessory.spec.js +126 -0
  232. package/dist/platformAccessory.spec.js.map +1 -0
  233. package/dist/pluginManager.spec.d.ts +2 -0
  234. package/dist/pluginManager.spec.d.ts.map +1 -0
  235. package/dist/pluginManager.spec.js +43 -0
  236. package/dist/pluginManager.spec.js.map +1 -0
  237. package/dist/server.d.ts +4 -13
  238. package/dist/server.d.ts.map +1 -1
  239. package/dist/server.js +45 -333
  240. package/dist/server.js.map +1 -1
  241. package/dist/server.spec.d.ts +2 -0
  242. package/dist/server.spec.d.ts.map +1 -0
  243. package/dist/server.spec.js +57 -0
  244. package/dist/server.spec.js.map +1 -0
  245. package/dist/user.spec.d.ts +2 -0
  246. package/dist/user.spec.d.ts.map +1 -0
  247. package/dist/user.spec.js +31 -0
  248. package/dist/user.spec.js.map +1 -0
  249. package/dist/util/mac.spec.d.ts +2 -0
  250. package/dist/util/mac.spec.d.ts.map +1 -0
  251. package/dist/util/mac.spec.js +36 -0
  252. package/dist/util/mac.spec.js.map +1 -0
  253. package/dist/version.spec.d.ts +2 -0
  254. package/dist/version.spec.d.ts.map +1 -0
  255. package/dist/version.spec.js +20 -0
  256. package/dist/version.spec.js.map +1 -0
  257. package/package.json +4 -4
  258. package/dist/matter/matterAccessoryCache.d.ts.map +0 -1
  259. package/dist/matter/matterAccessoryCache.js.map +0 -1
  260. package/dist/matter/matterBehaviors.d.ts +0 -194
  261. package/dist/matter/matterBehaviors.d.ts.map +0 -1
  262. package/dist/matter/matterBehaviors.js +0 -665
  263. package/dist/matter/matterBehaviors.js.map +0 -1
  264. package/dist/matter/matterConfigValidator.d.ts.map +0 -1
  265. package/dist/matter/matterConfigValidator.js.map +0 -1
  266. package/dist/matter/matterErrorHandler.d.ts +0 -106
  267. package/dist/matter/matterErrorHandler.d.ts.map +0 -1
  268. package/dist/matter/matterErrorHandler.js +0 -495
  269. package/dist/matter/matterErrorHandler.js.map +0 -1
  270. package/dist/matter/matterLogFormatter.d.ts.map +0 -1
  271. package/dist/matter/matterLogFormatter.js.map +0 -1
  272. package/dist/matter/matterNetworkMonitor.d.ts +0 -68
  273. package/dist/matter/matterNetworkMonitor.d.ts.map +0 -1
  274. package/dist/matter/matterNetworkMonitor.js +0 -249
  275. package/dist/matter/matterNetworkMonitor.js.map +0 -1
  276. package/dist/matter/matterServer.d.ts.map +0 -1
  277. package/dist/matter/matterServer.js.map +0 -1
  278. package/dist/matter/matterServerHelpers.d.ts.map +0 -1
  279. package/dist/matter/matterServerHelpers.js.map +0 -1
  280. package/dist/matter/matterSharedTypes.d.ts.map +0 -1
  281. package/dist/matter/matterSharedTypes.js.map +0 -1
  282. package/dist/matter/matterStorage.d.ts.map +0 -1
  283. package/dist/matter/matterTypes.d.ts.map +0 -1
  284. package/dist/matter/matterTypes.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Type Helpers for Matter.js
3
+ *
4
+ * Provides proper TypeScript types for Matter.js APIs that don't have
5
+ * complete type definitions.
6
+ */
7
+ import type { EndpointType } from '@matter/main';
8
+ import type { Behavior } from '@matter/node';
9
+ export type BehaviorType = Behavior.Type;
10
+ /**
11
+ * Extended EndpointType with .with() method
12
+ * Matter.js device types support adding behaviors via .with()
13
+ */
14
+ export interface ExtendableEndpointType extends EndpointType {
15
+ with: (...behaviors: BehaviorType[]) => ExtendableEndpointType;
16
+ }
17
+ /**
18
+ * Extended BehaviorType with .with() method
19
+ * Matter.js behaviors support adding features via .with()
20
+ */
21
+ export interface ExtendableBehaviorType extends BehaviorType {
22
+ with: (...features: string[]) => ExtendableBehaviorType;
23
+ }
24
+ /**
25
+ * Type guard to check if an EndpointType supports .with()
26
+ */
27
+ export declare function isExtendableEndpointType(type: EndpointType): type is ExtendableEndpointType;
28
+ /**
29
+ * Type guard to check if a BehaviorType supports .with()
30
+ */
31
+ export declare function isExtendableBehaviorType(type: BehaviorType): type is ExtendableBehaviorType;
32
+ /**
33
+ * Safely add behaviors to a device type
34
+ */
35
+ export declare function withBehaviors(deviceType: EndpointType, behaviors: BehaviorType[]): EndpointType;
36
+ /**
37
+ * Safely add features to a behavior
38
+ */
39
+ export declare function withFeatures(behavior: BehaviorType, features: string[]): BehaviorType;
40
+ /**
41
+ * Check if a device type matches a specific type by name
42
+ * Used because Matter.js doesn't provide proper type guards
43
+ */
44
+ export declare function isDeviceType(deviceType: EndpointType, targetType: EndpointType): boolean;
45
+ //# sourceMappingURL=typeHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeHelpers.d.ts","sourceRoot":"","sources":["../../src/matter/typeHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAA;AAExC;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,YAAY,EAAE,KAAK,sBAAsB,CAAA;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,sBAAsB,CAAA;CACxD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,sBAAsB,CAE3F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,sBAAsB,CAE3F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,YAAY,CAU/F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,YAAY,CAUrF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,GAAG,OAAO,CAWxF"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Type Helpers for Matter.js
3
+ *
4
+ * Provides proper TypeScript types for Matter.js APIs that don't have
5
+ * complete type definitions.
6
+ */
7
+ /**
8
+ * Type guard to check if an EndpointType supports .with()
9
+ */
10
+ export function isExtendableEndpointType(type) {
11
+ return 'with' in type && typeof type.with === 'function';
12
+ }
13
+ /**
14
+ * Type guard to check if a BehaviorType supports .with()
15
+ */
16
+ export function isExtendableBehaviorType(type) {
17
+ return 'with' in type && typeof type.with === 'function';
18
+ }
19
+ /**
20
+ * Safely add behaviors to a device type
21
+ */
22
+ export function withBehaviors(deviceType, behaviors) {
23
+ if (behaviors.length === 0) {
24
+ return deviceType;
25
+ }
26
+ if (isExtendableEndpointType(deviceType)) {
27
+ return deviceType.with(...behaviors);
28
+ }
29
+ throw new Error('Device type does not support adding behaviors');
30
+ }
31
+ /**
32
+ * Safely add features to a behavior
33
+ */
34
+ export function withFeatures(behavior, features) {
35
+ if (features.length === 0) {
36
+ return behavior;
37
+ }
38
+ if (isExtendableBehaviorType(behavior)) {
39
+ return behavior.with(...features);
40
+ }
41
+ throw new Error('Behavior does not support adding features');
42
+ }
43
+ /**
44
+ * Check if a device type matches a specific type by name
45
+ * Used because Matter.js doesn't provide proper type guards
46
+ */
47
+ export function isDeviceType(deviceType, targetType) {
48
+ // Direct reference comparison
49
+ if (deviceType === targetType) {
50
+ return true;
51
+ }
52
+ // Check by name property (fallback for modified types)
53
+ const deviceTypeName = 'name' in deviceType ? deviceType.name : undefined;
54
+ const targetTypeName = 'name' in targetType ? targetType.name : undefined;
55
+ return deviceTypeName !== undefined && deviceTypeName === targetTypeName;
56
+ }
57
+ //# sourceMappingURL=typeHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeHelpers.js","sourceRoot":"","sources":["../../src/matter/typeHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,OAAO,MAAM,IAAI,IAAI,IAAI,OAAQ,IAAgC,CAAC,IAAI,KAAK,UAAU,CAAA;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,OAAO,MAAM,IAAI,IAAI,IAAI,OAAQ,IAAgC,CAAC,IAAI,KAAK,UAAU,CAAA;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAwB,EAAE,SAAyB;IAC/E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,IAAI,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAsB,EAAE,QAAkB;IACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,UAAwB,EAAE,UAAwB;IAC7E,8BAA8B;IAC9B,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,uDAAuD;IACvD,MAAM,cAAc,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAE,UAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAChG,MAAM,cAAc,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAE,UAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhG,OAAO,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,cAAc,CAAA;AAC1E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=typeHelpers.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeHelpers.spec.d.ts","sourceRoot":"","sources":["../../src/matter/typeHelpers.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,127 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { isDeviceType, isExtendableBehaviorType, isExtendableEndpointType, withBehaviors, withFeatures, } from './typeHelpers.js';
3
+ describe('typeHelpers', () => {
4
+ describe('isExtendableEndpointType', () => {
5
+ it('should return true for endpoint types with .with() method', () => {
6
+ const mockEndpoint = {
7
+ with: () => mockEndpoint,
8
+ };
9
+ expect(isExtendableEndpointType(mockEndpoint)).toBe(true);
10
+ });
11
+ it('should return false for endpoint types without .with() method', () => {
12
+ const mockEndpoint = {};
13
+ expect(isExtendableEndpointType(mockEndpoint)).toBe(false);
14
+ });
15
+ it('should return false when .with() is not a function', () => {
16
+ const mockEndpoint = {
17
+ with: 'not a function',
18
+ };
19
+ expect(isExtendableEndpointType(mockEndpoint)).toBe(false);
20
+ });
21
+ });
22
+ describe('isExtendableBehaviorType', () => {
23
+ it('should return true for behavior types with .with() method', () => {
24
+ const mockBehavior = {
25
+ with: () => mockBehavior,
26
+ };
27
+ expect(isExtendableBehaviorType(mockBehavior)).toBe(true);
28
+ });
29
+ it('should return false for behavior types without .with() method', () => {
30
+ const mockBehavior = {};
31
+ expect(isExtendableBehaviorType(mockBehavior)).toBe(false);
32
+ });
33
+ it('should return false when .with() is not a function', () => {
34
+ const mockBehavior = {
35
+ with: 'not a function',
36
+ };
37
+ expect(isExtendableBehaviorType(mockBehavior)).toBe(false);
38
+ });
39
+ });
40
+ describe('withBehaviors', () => {
41
+ it('should return the same device type when no behaviors are provided', () => {
42
+ const mockDevice = {};
43
+ const result = withBehaviors(mockDevice, []);
44
+ expect(result).toBe(mockDevice);
45
+ });
46
+ it('should call .with() when device type is extendable', () => {
47
+ const mockBehavior1 = { id: 'behavior1' };
48
+ const mockBehavior2 = { id: 'behavior2' };
49
+ const extendedDevice = { name: 'ExtendedDevice' };
50
+ const mockDevice = {
51
+ with: (...behaviors) => {
52
+ expect(behaviors).toEqual([mockBehavior1, mockBehavior2]);
53
+ return extendedDevice;
54
+ },
55
+ };
56
+ const result = withBehaviors(mockDevice, [mockBehavior1, mockBehavior2]);
57
+ expect(result).toBe(extendedDevice);
58
+ });
59
+ it('should throw error when device type is not extendable', () => {
60
+ const mockDevice = {};
61
+ const mockBehavior = { id: 'behavior' };
62
+ expect(() => withBehaviors(mockDevice, [mockBehavior])).toThrow('Device type does not support adding behaviors');
63
+ });
64
+ });
65
+ describe('withFeatures', () => {
66
+ it('should return the same behavior when no features are provided', () => {
67
+ const mockBehavior = {};
68
+ const result = withFeatures(mockBehavior, []);
69
+ expect(result).toBe(mockBehavior);
70
+ });
71
+ it('should call .with() when behavior is extendable', () => {
72
+ const extendedBehavior = { features: ['Feature1', 'Feature2'] };
73
+ const mockBehavior = {
74
+ with: (...features) => {
75
+ expect(features).toEqual(['Feature1', 'Feature2']);
76
+ return extendedBehavior;
77
+ },
78
+ };
79
+ const result = withFeatures(mockBehavior, ['Feature1', 'Feature2']);
80
+ expect(result).toBe(extendedBehavior);
81
+ });
82
+ it('should throw error when behavior is not extendable', () => {
83
+ const mockBehavior = {};
84
+ expect(() => withFeatures(mockBehavior, ['Feature1'])).toThrow('Behavior does not support adding features');
85
+ });
86
+ });
87
+ describe('isDeviceType', () => {
88
+ it('should return true for direct reference comparison', () => {
89
+ const mockDevice = { name: 'TestDevice' };
90
+ expect(isDeviceType(mockDevice, mockDevice)).toBe(true);
91
+ });
92
+ it('should return true when device names match', () => {
93
+ const mockDevice1 = { name: 'TestDevice' };
94
+ const mockDevice2 = { name: 'TestDevice' };
95
+ expect(isDeviceType(mockDevice1, mockDevice2)).toBe(true);
96
+ });
97
+ it('should return false when device names differ', () => {
98
+ const mockDevice1 = { name: 'DeviceA' };
99
+ const mockDevice2 = { name: 'DeviceB' };
100
+ expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
101
+ });
102
+ it('should return false when device type has no name', () => {
103
+ const mockDevice1 = {};
104
+ const mockDevice2 = { name: 'TestDevice' };
105
+ expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
106
+ });
107
+ it('should return false when target type has no name', () => {
108
+ const mockDevice1 = { name: 'TestDevice' };
109
+ const mockDevice2 = {};
110
+ expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
111
+ });
112
+ it('should return false when neither device has a name', () => {
113
+ const mockDevice1 = {};
114
+ const mockDevice2 = {};
115
+ expect(isDeviceType(mockDevice1, mockDevice2)).toBe(false);
116
+ });
117
+ it('should handle modified types with same name', () => {
118
+ const baseDevice = { name: 'OnOffLight' };
119
+ const modifiedDevice = {
120
+ name: 'OnOffLight',
121
+ with: () => modifiedDevice,
122
+ };
123
+ expect(isDeviceType(modifiedDevice, baseDevice)).toBe(true);
124
+ });
125
+ });
126
+ });
127
+ //# sourceMappingURL=typeHelpers.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeHelpers.spec.js","sourceRoot":"","sources":["../../src/matter/typeHelpers.spec.ts"],"names":[],"mappings":"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"}
@@ -416,7 +416,7 @@ export declare const deviceTypes: {
416
416
  }, readonly [import("@matter/main").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{
417
417
  readonly id: 513;
418
418
  readonly name: "Thermostat";
419
- readonly revision: 8;
419
+ readonly revision: 9;
420
420
  readonly features: {
421
421
  readonly heating: import("@matter/types").BitFlag;
422
422
  readonly cooling: import("@matter/types").BitFlag;
@@ -850,4 +850,4 @@ export interface WindowCoveringCluster {
850
850
  * Type-safe cluster access for WindowCovering
851
851
  */
852
852
  export declare function getWindowCoveringCluster(accessory: MatterAccessory): WindowCoveringCluster | undefined;
853
- //# sourceMappingURL=matterTypes.d.ts.map
853
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/matter/types.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@
4
4
  * This module provides types and interfaces for plugin developers
5
5
  * to create Matter-compatible accessories.
6
6
  */
7
- // Import Matter.js clusters and device types
8
7
  import * as clusters from '@matter/main/clusters';
9
8
  import * as devices from '@matter/main/devices';
10
9
  /**
@@ -219,4 +218,4 @@ export async function updateEndpointState(endpoint, cluster, attributes) {
219
218
  export function getWindowCoveringCluster(accessory) {
220
219
  return accessory.clusters?.windowCovering;
221
220
  }
222
- //# sourceMappingURL=matterTypes.js.map
221
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/matter/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=platformAccessory.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformAccessory.spec.d.ts","sourceRoot":"","sources":["../src/platformAccessory.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,126 @@
1
+ import { Accessory, RemoteController, Service, uuid, } from 'hap-nodejs';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import { PlatformAccessory } from './platformAccessory.js';
4
+ function createAccessory(name = 'TestAccessory', category) {
5
+ const accessoryUUID = uuid.generate(`test.uuid.${name}`);
6
+ const accessory = new PlatformAccessory(name, accessoryUUID, category);
7
+ accessory._associatedPlatform = 'TestPlatform';
8
+ accessory._associatedPlugin = 'TestPlugin';
9
+ accessory.context = {
10
+ test: 'context',
11
+ doing: 234,
12
+ };
13
+ return accessory;
14
+ }
15
+ describe('platformAccessory', () => {
16
+ describe('properties', () => {
17
+ it('should mirror displayName correctly', () => {
18
+ const accessory = createAccessory('TestName');
19
+ expect(accessory._associatedHAPAccessory.displayName).toBe(accessory.displayName);
20
+ expect(accessory.displayName).toBe('TestName');
21
+ });
22
+ it('should mirror UUID correctly', () => {
23
+ const accessory = createAccessory('TestName');
24
+ expect(accessory._associatedHAPAccessory.UUID).toBe(accessory.UUID);
25
+ expect(accessory.UUID).toBe(uuid.generate('test.uuid.TestName'));
26
+ });
27
+ it('should mirror category correctly', () => {
28
+ const accessory = createAccessory('TestName', 24 /* Categories.APPLE_TV */);
29
+ expect(accessory._associatedHAPAccessory.category).toBe(accessory.category);
30
+ expect(accessory.category).toBe(24 /* Categories.APPLE_TV */);
31
+ });
32
+ it('should mirror services correctly', () => {
33
+ const accessory = createAccessory('TestName');
34
+ expect(accessory._associatedHAPAccessory.services).toStrictEqual(accessory.services);
35
+ expect(accessory.services.length).toBe(1);
36
+ });
37
+ });
38
+ describe('platformAccessory.prototype.updateDisplayName', () => {
39
+ it('should mirror displayName correctly', () => {
40
+ const accessory = createAccessory('TestName');
41
+ accessory.updateDisplayName('NewTestName');
42
+ expect(accessory._associatedHAPAccessory.displayName).toBe(accessory.displayName);
43
+ expect(accessory.displayName).toBe('NewTestName');
44
+ });
45
+ });
46
+ describe('platformAccessory.prototype.addService', () => {
47
+ it('should forward add service', () => {
48
+ const accessory = createAccessory();
49
+ const service = new Service.Switch();
50
+ const spy = vi.spyOn(accessory._associatedHAPAccessory, 'addService');
51
+ expect(accessory.services.length).toBe(1); // AccessoryInformation service
52
+ expect(accessory.services.includes(service)).toBeFalsy();
53
+ accessory.addService(service);
54
+ expect(accessory.services.length).toBe(2); // ensure our reference is valid
55
+ expect(accessory.services.includes(service)).toBeTruthy();
56
+ expect(spy).toHaveBeenCalledWith(service); // ensure HAP got called
57
+ });
58
+ });
59
+ describe('platformAccessory.prototype.removeService', () => {
60
+ it('should forward remove service', () => {
61
+ const accessory = createAccessory();
62
+ const service = new Service.Switch();
63
+ const spy = vi.spyOn(accessory._associatedHAPAccessory, 'removeService');
64
+ accessory.removeService(service);
65
+ expect(spy).toHaveBeenCalledWith(service);
66
+ });
67
+ });
68
+ describe('platformAccessory.prototype.getService', () => {
69
+ it('should retrieve AccessoryInformation service', () => {
70
+ const accessory = createAccessory();
71
+ const requested = Service.AccessoryInformation;
72
+ const spy = vi.spyOn(accessory._associatedHAPAccessory, 'getService');
73
+ const service = accessory.getService(requested);
74
+ expect(spy).toHaveBeenCalledWith(requested);
75
+ expect(service).toBeDefined();
76
+ expect(service.UUID).toBe(requested.UUID);
77
+ });
78
+ });
79
+ describe('platformAccessory.prototype.getServiceById', () => {
80
+ it('should forward service retrieval by id', () => {
81
+ const accessory = createAccessory();
82
+ const spy = vi.spyOn(accessory._associatedHAPAccessory, 'getServiceById');
83
+ const result = accessory.getServiceById(Service.Switch, 'customSubType');
84
+ expect(result).toBeUndefined();
85
+ expect(spy).toHaveBeenCalledWith(Service.Switch, 'customSubType');
86
+ });
87
+ });
88
+ describe('platformAccessory.prototype.configureController', () => {
89
+ it('should forward configureController correctly', () => {
90
+ const accessory = createAccessory();
91
+ const spy = vi.spyOn(accessory._associatedHAPAccessory, 'configureController').mockImplementationOnce(() => {
92
+ // do nothing
93
+ });
94
+ const controller = new RemoteController();
95
+ accessory.configureController(controller);
96
+ expect(spy).toHaveBeenCalledWith(controller);
97
+ });
98
+ });
99
+ describe('platformAccessory.serialize', () => {
100
+ it('should serialize accessory correctly', () => {
101
+ const accessory = createAccessory();
102
+ accessory.addService(Service.Lightbulb);
103
+ const spy = vi.spyOn(Accessory, 'serialize');
104
+ const json = PlatformAccessory.serialize(accessory);
105
+ expect(json.platform).toBe(accessory._associatedPlatform);
106
+ expect(json.plugin).toBe(accessory._associatedPlugin);
107
+ expect(json.context).toStrictEqual(accessory.context);
108
+ expect(spy).toHaveBeenCalledWith(accessory._associatedHAPAccessory);
109
+ });
110
+ });
111
+ describe('platformAccessory.deserialize', () => {
112
+ it('should deserialize serialized accessory correctly', () => {
113
+ const accessory = createAccessory();
114
+ accessory.addService(Service.Lightbulb);
115
+ const json = PlatformAccessory.serialize(accessory);
116
+ const reconstructed = PlatformAccessory.deserialize(json);
117
+ expect(reconstructed._associatedPlugin).toBe(accessory._associatedPlugin);
118
+ expect(reconstructed._associatedPlatform).toBe(accessory._associatedPlatform);
119
+ expect(reconstructed.displayName).toBe(accessory.displayName);
120
+ expect(reconstructed.UUID).toBe(accessory.UUID);
121
+ expect(reconstructed.category).toBe(accessory.category);
122
+ expect(reconstructed.context).toBe(accessory.context);
123
+ });
124
+ });
125
+ });
126
+ //# sourceMappingURL=platformAccessory.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformAccessory.spec.js","sourceRoot":"","sources":["../src/platformAccessory.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pluginManager.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginManager.spec.d.ts","sourceRoot":"","sources":["../src/pluginManager.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { PluginManager } from './pluginManager.js';
3
+ describe('pluginManager', () => {
4
+ describe('pluginManager.isQualifiedPluginIdentifier', () => {
5
+ it('should match normal plugin names', () => {
6
+ expect(PluginManager.isQualifiedPluginIdentifier('homebridge-dummy-plugin')).toBeTruthy();
7
+ });
8
+ it('should match scoped plugin names', () => {
9
+ expect(PluginManager.isQualifiedPluginIdentifier('@organisation/homebridge-dummy-plugin')).toBeTruthy();
10
+ });
11
+ });
12
+ describe('pluginManager.extractPluginName', () => {
13
+ it('should extract normal plugin names', () => {
14
+ expect(PluginManager.extractPluginName('homebridge-dummy-plugin')).toBe('homebridge-dummy-plugin');
15
+ });
16
+ it('should extract scoped plugin names', () => {
17
+ expect(PluginManager.extractPluginName('@organisation/homebridge-dummy-plugin')).toBe('homebridge-dummy-plugin');
18
+ });
19
+ });
20
+ describe('pluginManager.extractPluginScope', () => {
21
+ it('should extract undefined for normal plugin names', () => {
22
+ expect(PluginManager.extractPluginScope('homebridge-dummy-plugin')).toBeUndefined();
23
+ });
24
+ it('should extract scope for scoped plugin names', () => {
25
+ expect(PluginManager.extractPluginScope('@organisation/homebridge-dummy-plugin')).toBe('@organisation');
26
+ });
27
+ });
28
+ describe('...Name', () => {
29
+ it('should extract accessory name correctly', () => {
30
+ const accessoryId = 'homebridge-example-accessory.example';
31
+ expect(PluginManager.getAccessoryName(accessoryId)).toBe('example');
32
+ });
33
+ it('should extract platform name correctly', () => {
34
+ const accessoryId = 'homebridge-example-platform.example';
35
+ expect(PluginManager.getPlatformName(accessoryId)).toBe('example');
36
+ });
37
+ it('should extract plugin name correctly', () => {
38
+ const accessoryId = 'homebridge-example-plugin.example';
39
+ expect(PluginManager.getPluginIdentifier(accessoryId)).toBe('homebridge-example-plugin');
40
+ });
41
+ });
42
+ });
43
+ //# sourceMappingURL=pluginManager.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginManager.spec.js","sourceRoot":"","sources":["../src/pluginManager.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACzD,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,yBAAyB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QAC3F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,uCAAuC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QACzG,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACpG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAClH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACrF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,WAAW,GAAG,sCAAsC,CAAA;YAC1D,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,WAAW,GAAG,qCAAqC,CAAA;YACzD,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,WAAW,GAAG,mCAAmC,CAAA;YACvD,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QAC1F,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/dist/server.d.ts CHANGED
@@ -32,8 +32,7 @@ export declare class Server {
32
32
  private readonly externalPortService;
33
33
  private readonly config;
34
34
  private readonly childBridges;
35
- private matterServer?;
36
- private readonly externalMatterServers;
35
+ private matterManager?;
37
36
  private serverStatus;
38
37
  constructor(options?: HomebridgeOptions);
39
38
  /**
@@ -42,28 +41,20 @@ export declare class Server {
42
41
  */
43
42
  private setServerStatus;
44
43
  start(): Promise<void>;
45
- /**
46
- * Initialize Matter server for main bridge if enabled
47
- */
48
- private initializeMatterServer;
49
44
  teardown(): Promise<void>;
50
45
  private publishBridge;
51
46
  private handlePublishExternalAccessories;
52
47
  /**
53
- * Handle external Matter accessories - each gets its own dedicated Matter server
54
- * This is required for devices like Robotic Vacuum Cleaners that Apple Home
55
- * requires to be on their own bridge.
48
+ * Handle external Matter accessories - delegates to MatterBridgeManager
56
49
  */
57
50
  private handlePublishExternalMatterAccessories;
58
51
  private handleRegisterPlatformAccessories;
59
52
  private handleUnregisterPlatformAccessories;
60
53
  private handleRegisterMatterPlatformAccessories;
54
+ private handleUpdateMatterPlatformAccessories;
61
55
  private handleUnregisterMatterPlatformAccessories;
56
+ private handleUnregisterExternalMatterAccessories;
62
57
  private handleUpdateMatterAccessoryState;
63
- /**
64
- * Restore cached Matter accessories (matching HAP pattern)
65
- */
66
- private restoreCachedMatterAccessories;
67
58
  private static loadConfig;
68
59
  private loadAccessories;
69
60
  private loadPlatforms;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,iBAAiB;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAA;IACvC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAGD,0BAAkB,YAAY;IAC5B;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,EAAE,OAAO;IAET;;OAEG;IACH,IAAI,SAAS;CACd;AAED,qBAAa,MAAM;IAwBf,OAAO,CAAC,OAAO;IAvBjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAIzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAG1E,OAAO,CAAC,YAAY,CAAC,CAAc;IAInC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuC;IAG7E,OAAO,CAAC,YAAY,CAAqC;gBAG/C,OAAO,GAAE,iBAAsB;IAmEzC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsCV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCnC;;OAEG;YACW,sBAAsB;IAuGvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BtC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gCAAgC;IAMxC;;;;OAIG;YACW,sCAAsC;IAiGpD,OAAO,CAAC,iCAAiC;IAKzC,OAAO,CAAC,mCAAmC;IAK3C,OAAO,CAAC,uCAAuC;IAU/C,OAAO,CAAC,yCAAyC;IAUjD,OAAO,CAAC,gCAAgC;IAUxC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAkDtC,OAAO,CAAC,MAAM,CAAC,UAAU;IAiJzB,OAAO,CAAC,eAAe;IAoGvB,OAAO,CAAC,aAAa;IA4FrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,cAAc;CAqBvB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,iBAAiB;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAA;IACvC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAGD,0BAAkB,YAAY;IAC5B;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,EAAE,OAAO;IAET;;OAEG;IACH,IAAI,SAAS;CACd;AAED,qBAAa,MAAM;IAqBf,OAAO,CAAC,OAAO;IApBjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAIzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAI1E,OAAO,CAAC,aAAa,CAAC,CAAqB;IAG3C,OAAO,CAAC,YAAY,CAAqC;gBAG/C,OAAO,GAAE,iBAAsB;IAqFzC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gCAAgC;IAMxC;;OAEG;IACH,OAAO,CAAC,sCAAsC;IAQ9C,OAAO,CAAC,iCAAiC;IAKzC,OAAO,CAAC,mCAAmC;IAK3C,OAAO,CAAC,uCAAuC;IAM/C,OAAO,CAAC,qCAAqC;IAM7C,OAAO,CAAC,yCAAyC;IAMjD,OAAO,CAAC,yCAAyC;IAMjD,OAAO,CAAC,gCAAgC;IAMxC,OAAO,CAAC,MAAM,CAAC,UAAU;IAmGzB,OAAO,CAAC,eAAe;IAoGvB,OAAO,CAAC,aAAa;IA4FrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,cAAc;CAqBvB"}