homebridge 2.0.0-beta.44 → 2.0.0-beta.46

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 +152 -83
  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 +7 -69
  40. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
  41. package/dist/matter/ChildBridgeMatterManager.js +51 -234
  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 +3 -28
  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 +7 -107
  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 +140 -216
  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 +15 -28
  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 +308 -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
package/dist/api.js CHANGED
@@ -8,28 +8,16 @@ import { PluginManager } from './pluginManager.js';
8
8
  import { User } from './user.js';
9
9
  import getVersion from './version.js';
10
10
  const log = Logger.internal;
11
- // eslint-disable-next-line no-restricted-syntax
12
11
  export var PluginType;
13
12
  (function (PluginType) {
14
13
  PluginType["ACCESSORY"] = "accessory";
15
14
  PluginType["PLATFORM"] = "platform";
16
15
  })(PluginType || (PluginType = {}));
17
- // eslint-disable-next-line no-restricted-syntax
18
16
  export var APIEvent;
19
17
  (function (APIEvent) {
20
- /**
21
- * Event is fired once homebridge has finished with booting up and initializing all components and plugins.
22
- * When this event is fired it is possible that the Bridge accessory isn't published yet, if homebridge still needs
23
- * to wait for some {@see StaticPlatformPlugin | StaticPlatformPlugins} to finish accessory creation.
24
- */
25
18
  APIEvent["DID_FINISH_LAUNCHING"] = "didFinishLaunching";
26
- /**
27
- * This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash.
28
- * At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!
29
- */
30
19
  APIEvent["SHUTDOWN"] = "shutdown";
31
20
  })(APIEvent || (APIEvent = {}));
32
- // eslint-disable-next-line no-restricted-syntax
33
21
  export var InternalAPIEvent;
34
22
  (function (InternalAPIEvent) {
35
23
  InternalAPIEvent["REGISTER_ACCESSORY"] = "registerAccessory";
@@ -38,7 +26,6 @@ export var InternalAPIEvent;
38
26
  InternalAPIEvent["REGISTER_PLATFORM_ACCESSORIES"] = "registerPlatformAccessories";
39
27
  InternalAPIEvent["UPDATE_PLATFORM_ACCESSORIES"] = "updatePlatformAccessories";
40
28
  InternalAPIEvent["UNREGISTER_PLATFORM_ACCESSORIES"] = "unregisterPlatformAccessories";
41
- // Matter events (matching HAP pattern)
42
29
  InternalAPIEvent["PUBLISH_EXTERNAL_MATTER_ACCESSORIES"] = "publishExternalMatterAccessories";
43
30
  InternalAPIEvent["REGISTER_MATTER_PLATFORM_ACCESSORIES"] = "registerMatterPlatformAccessories";
44
31
  InternalAPIEvent["UPDATE_MATTER_PLATFORM_ACCESSORIES"] = "updateMatterPlatformAccessories";
@@ -46,44 +33,18 @@ export var InternalAPIEvent;
46
33
  InternalAPIEvent["UNREGISTER_EXTERNAL_MATTER_ACCESSORIES"] = "unregisterExternalMatterAccessories";
47
34
  InternalAPIEvent["UPDATE_MATTER_ACCESSORY_STATE"] = "updateMatterAccessoryState";
48
35
  })(InternalAPIEvent || (InternalAPIEvent = {}));
49
- // eslint-disable-next-line ts/no-unsafe-declaration-merging
50
36
  export class HomebridgeAPI extends EventEmitter {
51
- version = 2.7; // homebridge API version
52
- serverVersion = getVersion(); // homebridge node module version
53
- // ------------------ LEGACY EXPORTS FOR PRE TYPESCRIPT ------------------
37
+ version = 2.7;
38
+ serverVersion = getVersion();
54
39
  user = User;
55
40
  hap = hapNodeJs;
56
- hapLegacyTypes = hapNodeJs.LegacyTypes; // used for older accessories/platforms
41
+ hapLegacyTypes = hapNodeJs.LegacyTypes;
57
42
  platformAccessory = PlatformAccessory;
58
- // ------------------------------------------------------------------------
59
- /**
60
- * Internal state tracking whether Matter is enabled for this bridge
61
- */
62
43
  matterEnabled = false;
63
- /**
64
- * Internal reference to MatterServer for API methods that need return values
65
- * @internal
66
- */
67
44
  _matterServer = null;
68
- /**
69
- * Internal reference to MatterBridgeManager for checking external servers
70
- * @internal
71
- */
72
45
  _matterManager = null;
73
- /**
74
- * Pending external accessory registrations
75
- * Map of registration ID to resolve function
76
- * @internal
77
- */
78
46
  _pendingExternalRegistrations = new Map();
79
- /**
80
- * Lazy-loaded Matter API implementation
81
- */
82
47
  _matterAPI;
83
- /**
84
- * Matter Protocol API (lazy-loaded)
85
- * Only instantiated when first accessed
86
- */
87
48
  get matter() {
88
49
  if (!this._matterAPI) {
89
50
  this._matterAPI = new MatterAPIImpl(this);
@@ -93,35 +54,15 @@ export class HomebridgeAPI extends EventEmitter {
93
54
  constructor() {
94
55
  super();
95
56
  }
96
- /**
97
- * Internal method to set Matter enabled status
98
- * Called by Server or ChildBridgeFork after Matter initialization
99
- * @internal
100
- */
101
57
  _setMatterEnabled(enabled) {
102
58
  this.matterEnabled = enabled;
103
59
  }
104
- /**
105
- * Internal method to set MatterServer reference
106
- * Called by Server or ChildBridgeFork after creating MatterServer
107
- * @internal
108
- */
109
60
  _setMatterServer(server) {
110
61
  this._matterServer = server;
111
62
  }
112
- /**
113
- * Internal method to set MatterBridgeManager reference
114
- * Called by Server or ChildBridgeFork to allow API access to external servers
115
- * @internal
116
- */
117
63
  _setMatterManager(manager) {
118
64
  this._matterManager = manager;
119
65
  }
120
- /**
121
- * Internal method to resolve pending external accessory registrations
122
- * Called by MatterBridgeManager when external accessories finish publishing
123
- * @internal
124
- */
125
66
  _resolveExternalRegistration(registrationId) {
126
67
  const resolve = this._pendingExternalRegistrations.get(registrationId);
127
68
  if (resolve) {
@@ -139,29 +80,29 @@ export class HomebridgeAPI extends EventEmitter {
139
80
  return 'accessories' in platformPlugin;
140
81
  }
141
82
  signalFinished() {
142
- this.emit("didFinishLaunching" /* APIEvent.DID_FINISH_LAUNCHING */);
83
+ this.emit("didFinishLaunching");
143
84
  }
144
85
  signalShutdown() {
145
- this.emit("shutdown" /* APIEvent.SHUTDOWN */);
86
+ this.emit("shutdown");
146
87
  }
147
88
  registerAccessory(pluginIdentifier, accessoryName, constructor) {
148
89
  if (typeof accessoryName === 'function') {
149
90
  constructor = accessoryName;
150
91
  accessoryName = pluginIdentifier;
151
- this.emit("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, constructor);
92
+ this.emit("registerAccessory", accessoryName, constructor);
152
93
  }
153
94
  else {
154
- this.emit("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, constructor, pluginIdentifier);
95
+ this.emit("registerAccessory", accessoryName, constructor, pluginIdentifier);
155
96
  }
156
97
  }
157
98
  registerPlatform(pluginIdentifier, platformName, constructor) {
158
99
  if (typeof platformName === 'function') {
159
100
  constructor = platformName;
160
101
  platformName = pluginIdentifier;
161
- this.emit("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, constructor);
102
+ this.emit("registerPlatform", platformName, constructor);
162
103
  }
163
104
  else {
164
- this.emit("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, constructor, pluginIdentifier);
105
+ this.emit("registerPlatform", platformName, constructor, pluginIdentifier);
165
106
  }
166
107
  }
167
108
  publishCameraAccessories(pluginIdentifier, accessories) {
@@ -172,50 +113,37 @@ export class HomebridgeAPI extends EventEmitter {
172
113
  log.info(`One of your plugins incorrectly registered an external accessory using the platform name (${pluginIdentifier}) and not the plugin identifier. Please report this to the developer!`);
173
114
  }
174
115
  accessories.forEach((accessory) => {
175
- // noinspection SuspiciousTypeOfGuard
176
116
  if (!(accessory instanceof PlatformAccessory)) {
177
117
  throw new TypeError(`${pluginIdentifier} attempt to register an accessory that isn't PlatformAccessory!`);
178
118
  }
179
119
  accessory._associatedPlugin = pluginIdentifier;
180
120
  });
181
- this.emit("publishExternalAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES */, accessories);
121
+ this.emit("publishExternalAccessories", accessories);
182
122
  }
183
123
  registerPlatformAccessories(pluginIdentifier, platformName, accessories) {
184
124
  accessories.forEach((accessory) => {
185
- // noinspection SuspiciousTypeOfGuard
186
125
  if (!(accessory instanceof PlatformAccessory)) {
187
126
  throw new TypeError(`${pluginIdentifier} - ${platformName} attempt to register an accessory that isn't PlatformAccessory!`);
188
127
  }
189
128
  accessory._associatedPlugin = pluginIdentifier;
190
129
  accessory._associatedPlatform = platformName;
191
130
  });
192
- this.emit("registerPlatformAccessories" /* InternalAPIEvent.REGISTER_PLATFORM_ACCESSORIES */, accessories);
131
+ this.emit("registerPlatformAccessories", accessories);
193
132
  }
194
133
  updatePlatformAccessories(accessories) {
195
- this.emit("updatePlatformAccessories" /* InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES */, accessories);
134
+ this.emit("updatePlatformAccessories", accessories);
196
135
  }
197
136
  unregisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
198
137
  accessories.forEach((accessory) => {
199
- // noinspection SuspiciousTypeOfGuard
200
138
  if (!(accessory instanceof PlatformAccessory)) {
201
139
  throw new TypeError(`${pluginIdentifier} - ${platformName} attempt to unregister an accessory that isn't PlatformAccessory!`);
202
140
  }
203
141
  });
204
- this.emit("unregisterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES */, accessories);
142
+ this.emit("unregisterPlatformAccessories", accessories);
205
143
  }
206
- /**
207
- * Check if Matter is available in this version of Homebridge
208
- * @returns true if Homebridge version satisfies >= 2.0.0-alpha.0
209
- */
210
144
  isMatterAvailable() {
211
145
  return semver.gte(this.serverVersion, '2.0.0-alpha.0');
212
146
  }
213
- /**
214
- * Check if Matter is enabled for this bridge
215
- * For main bridge: returns true if Matter is enabled in `bridge.matter` config
216
- * For child bridge: returns true if Matter is enabled in the `_bridge.matter` config
217
- * @returns true if Matter is enabled
218
- */
219
147
  isMatterEnabled() {
220
148
  return this.matterEnabled;
221
149
  }
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -41,18 +41,10 @@ export interface PlatformConfig extends Record<string, any> {
41
41
  }
42
42
  export interface HomebridgeConfig {
43
43
  bridge: BridgeConfiguration;
44
- /**
45
- * @deprecated
46
- */
47
44
  mdns?: any;
48
45
  accessories: AccessoryConfig[];
49
46
  platforms: PlatformConfig[];
50
47
  plugins?: PluginIdentifier[];
51
- /**
52
- * Array of disabled plugins.
53
- * Unlike the plugins[] config which prevents plugins from being initialised at all, disabled plugins still have their alias loaded, so
54
- * we can match config blocks of disabled plugins and show an appropriate message in the logs.
55
- */
56
48
  disabledPlugins?: PluginIdentifier[];
57
49
  ports?: ExternalPortsConfiguration;
58
50
  matterPorts?: ExternalPortsConfiguration;
@@ -79,28 +71,11 @@ export declare class BridgeService {
79
71
  constructor(api: HomebridgeAPI, pluginManager: PluginManager, externalPortService: ExternalPortService, bridgeOptions: BridgeOptions, bridgeConfig: BridgeConfiguration);
80
72
  static printCharacteristicWriteWarning(plugin: Plugin, accessory: Accessory, opts: CharacteristicWarningOpts, warning: CharacteristicWarning): void;
81
73
  publishBridge(): void;
82
- /**
83
- * Attempt to load the cached accessories from disk.
84
- */
85
74
  loadCachedPlatformAccessoriesFromDisk(): Promise<void>;
86
- /**
87
- * Return the name of the backup cache file
88
- */
89
75
  private get backupCacheFileName();
90
- /**
91
- * Create a backup of the cached file
92
- * This is used if we ever have trouble reading the main cache file
93
- */
94
76
  private createCachedAccessoriesBackup;
95
- /**
96
- * Restore a cached accessories backup
97
- * This is used if the main cache file has a JSON syntax error / is corrupted
98
- */
99
77
  private restoreCachedAccessoriesBackup;
100
78
  restoreCachedPlatformAccessories(): void;
101
- /**
102
- * Save the cached accessories back to disk.
103
- */
104
79
  saveCachedPlatformAccessoriesOnDisk(): void;
105
80
  handleRegisterPlatformAccessories(accessories: PlatformAccessory[]): void;
106
81
  handleUpdatePlatformAccessories(accessories: PlatformAccessory[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeService.d.ts","sourceRoot":"","sources":["../src/bridgeService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridgeService.d.ts","sourceRoot":"","sources":["../src/bridgeService.ts"],"names":[],"mappings":"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"}
@@ -26,47 +26,38 @@ export class BridgeService {
26
26
  this.bridgeConfig = bridgeConfig;
27
27
  this.storageService = new StorageService(this.bridgeOptions.cachedAccessoriesDir);
28
28
  this.storageService.initSync();
29
- // Server is "secure by default", meaning it creates a top-level Bridge accessory that
30
- // will not allow unauthenticated requests. This matches the behavior of actual HomeKit
31
- // accessories. However, you can set this to true to allow all requests without authentication,
32
- // which can be useful for easy hacking. Note that this will expose all functions of your
33
- // bridged accessories, like changing characteristics (i.e. flipping your lights on and off).
34
29
  this.allowInsecureAccess = this.bridgeOptions.insecureAccess || false;
35
- this.api.on("registerPlatformAccessories" /* InternalAPIEvent.REGISTER_PLATFORM_ACCESSORIES */, this.handleRegisterPlatformAccessories.bind(this));
36
- this.api.on("updatePlatformAccessories" /* InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES */, this.handleUpdatePlatformAccessories.bind(this));
37
- this.api.on("unregisterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES */, this.handleUnregisterPlatformAccessories.bind(this));
38
- this.api.on("publishExternalAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES */, this.handlePublishExternalAccessories.bind(this));
30
+ this.api.on("registerPlatformAccessories", this.handleRegisterPlatformAccessories.bind(this));
31
+ this.api.on("updatePlatformAccessories", this.handleUpdatePlatformAccessories.bind(this));
32
+ this.api.on("unregisterPlatformAccessories", this.handleUnregisterPlatformAccessories.bind(this));
33
+ this.api.on("publishExternalAccessories", this.handlePublishExternalAccessories.bind(this));
39
34
  this.bridge = new Bridge(bridgeConfig.name, uuid.generate('HomeBridge'));
40
- this.bridge.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, () => {
41
- // We register characteristic warning handlers on every bridged accessory (to have a reference to the plugin).
42
- // For Bridges the warnings will propagate to the main Bridge accessory, thus we need to silence them here.
43
- // Otherwise, those would be printed twice (by us and HAP-NodeJS as it detects no handlers on the bridge).
35
+ this.bridge.on("characteristic-warning", () => {
44
36
  });
45
37
  }
46
- // characteristic warning event has additional parameter originatorChain: string[] which is currently unused
47
38
  static printCharacteristicWriteWarning(plugin, accessory, opts, warning) {
48
39
  const wikiInfo = 'See https://homebridge.io/w/JtMGR for more info.';
49
40
  switch (warning.type) {
50
- case "slow-read" /* CharacteristicWarningType.SLOW_READ */:
51
- case "slow-write" /* CharacteristicWarningType.SLOW_WRITE */:
41
+ case "slow-read":
42
+ case "slow-write":
52
43
  if (!opts.ignoreSlow) {
53
44
  log.info(getLogPrefix(plugin.getPluginIdentifier()), 'This plugin slows down Homebridge.', warning.message, wikiInfo);
54
45
  }
55
46
  break;
56
- case "timeout-read" /* CharacteristicWarningType.TIMEOUT_READ */:
57
- case "timeout-write" /* CharacteristicWarningType.TIMEOUT_WRITE */:
47
+ case "timeout-read":
48
+ case "timeout-write":
58
49
  log.error(getLogPrefix(plugin.getPluginIdentifier()), 'This plugin slows down Homebridge.', warning.message, wikiInfo);
59
50
  break;
60
- case "warn-message" /* CharacteristicWarningType.WARN_MESSAGE */:
51
+ case "warn-message":
61
52
  log.info(getLogPrefix(plugin.getPluginIdentifier()), `This plugin generated a warning from the characteristic '${warning.characteristic.displayName}':`, `${warning.message}.`, wikiInfo);
62
53
  break;
63
- case "error-message" /* CharacteristicWarningType.ERROR_MESSAGE */:
54
+ case "error-message":
64
55
  log.error(getLogPrefix(plugin.getPluginIdentifier()), `This plugin threw an error from the characteristic '${warning.characteristic.displayName}':`, `${warning.message}.`, wikiInfo);
65
56
  break;
66
- case "debug-message" /* CharacteristicWarningType.DEBUG_MESSAGE */:
57
+ case "debug-message":
67
58
  log.debug(getLogPrefix(plugin.getPluginIdentifier()), `Characteristic '${warning.characteristic.displayName}':`, `${warning.message}.`, wikiInfo);
68
59
  break;
69
- default: // generic message for yet unknown types
60
+ default:
70
61
  log.info(getLogPrefix(plugin.getPluginIdentifier()), `This plugin generated a warning from the characteristic '${warning.characteristic.displayName}':`, `${warning.message}.`, wikiInfo);
71
62
  break;
72
63
  }
@@ -81,14 +72,14 @@ export class BridgeService {
81
72
  info.setCharacteristic(Characteristic.Model, bridgeConfig.model || 'homebridge');
82
73
  info.setCharacteristic(Characteristic.SerialNumber, bridgeConfig.serialNumber || bridgeConfig.username);
83
74
  info.setCharacteristic(Characteristic.FirmwareRevision, bridgeConfig.firmwareRevision || getVersion());
84
- this.bridge.on("listening" /* AccessoryEventTypes.LISTENING */, (port) => {
75
+ this.bridge.on("listening", (port) => {
85
76
  log.success('Homebridge v%s (HAP v%s) (%s) is running on port %s.', getVersion(), HAPLibraryVersion(), bridgeConfig.name, port);
86
77
  });
87
78
  const publishInfo = {
88
79
  username: bridgeConfig.username,
89
80
  port: bridgeConfig.port,
90
81
  pincode: bridgeConfig.pin,
91
- category: 2 /* Categories.BRIDGE */,
82
+ category: 2,
92
83
  bind: bridgeConfig.bind,
93
84
  addIdentifyingMaterial: true,
94
85
  advertiser: bridgeConfig.advertiser,
@@ -99,9 +90,6 @@ export class BridgeService {
99
90
  log.debug('Publishing bridge accessory (name: %s, publishInfo: %o).', this.bridge.displayName, BridgeService.strippingPinCode(publishInfo));
100
91
  this.bridge.publish(publishInfo, this.allowInsecureAccess);
101
92
  }
102
- /**
103
- * Attempt to load the cached accessories from disk.
104
- */
105
93
  async loadCachedPlatformAccessoriesFromDisk() {
106
94
  let cachedAccessories = null;
107
95
  try {
@@ -110,7 +98,6 @@ export class BridgeService {
110
98
  catch (error) {
111
99
  log.error('Failed to load cached accessories from disk:', error.message);
112
100
  if (error instanceof SyntaxError) {
113
- // syntax error probably means invalid json / corrupted file; try and restore from backup
114
101
  cachedAccessories = await this.restoreCachedAccessoriesBackup();
115
102
  }
116
103
  else {
@@ -123,22 +110,14 @@ export class BridgeService {
123
110
  return PlatformAccessory.deserialize(serialized);
124
111
  });
125
112
  if (cachedAccessories.length) {
126
- // create a backup of the cache file
127
113
  await this.createCachedAccessoriesBackup();
128
114
  }
129
115
  }
130
116
  this.cachedAccessoriesFileLoaded = true;
131
117
  }
132
- /**
133
- * Return the name of the backup cache file
134
- */
135
118
  get backupCacheFileName() {
136
119
  return `.${this.bridgeOptions.cachedAccessoriesItemName}.bak`;
137
120
  }
138
- /**
139
- * Create a backup of the cached file
140
- * This is used if we ever have trouble reading the main cache file
141
- */
142
121
  async createCachedAccessoriesBackup() {
143
122
  try {
144
123
  await this.storageService.copyItem(this.bridgeOptions.cachedAccessoriesItemName, this.backupCacheFileName);
@@ -147,10 +126,6 @@ export class BridgeService {
147
126
  log.warn(`Failed to create a backup of the ${this.bridgeOptions.cachedAccessoriesItemName} cached accessories file:`, error.message);
148
127
  }
149
128
  }
150
- /**
151
- * Restore a cached accessories backup
152
- * This is used if the main cache file has a JSON syntax error / is corrupted
153
- */
154
129
  async restoreCachedAccessoriesBackup() {
155
130
  try {
156
131
  const cachedAccessories = await this.storageService.getItem(this.backupCacheFileName);
@@ -166,37 +141,32 @@ export class BridgeService {
166
141
  restoreCachedPlatformAccessories() {
167
142
  this.cachedPlatformAccessories = this.cachedPlatformAccessories.filter((accessory) => {
168
143
  let plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
169
- if (!plugin) { // a little explainer here. This section is basically here to resolve plugin name changes of dynamic platform plugins
144
+ if (!plugin) {
170
145
  try {
171
- // resolve platform accessories by searching for plugins which registered a dynamic platform for the given name
172
146
  plugin = this.pluginManager.getPluginByActiveDynamicPlatform(accessory._associatedPlatform);
173
- if (plugin) { // if it's undefined the no plugin was found
174
- // could improve on this by calculating the Levenshtein distance to only allow platform ownership changes
175
- // when something like a typo happened. Are there other reasons the name could change?
176
- // And how would we define the threshold?
147
+ if (plugin) {
177
148
  log.info(`When searching for the associated plugin of the accessory '${accessory.displayName}' `
178
149
  + `it seems like the plugin name changed from '${accessory._associatedPlugin}' to '${plugin.getPluginIdentifier()}'. Plugin association is now being transformed!`);
179
- accessory._associatedPlugin = plugin.getPluginIdentifier(); // update the associated plugin to the new one
150
+ accessory._associatedPlugin = plugin.getPluginIdentifier();
180
151
  }
181
152
  }
182
- catch (error) { // error is thrown if multiple plugins where found for the given platform name
153
+ catch (error) {
183
154
  log.info(`Could not find the associated plugin for the accessory '${accessory.displayName}'. `
184
155
  + `Tried to find the plugin by the platform name but ${error.message}`);
185
156
  }
186
157
  }
187
158
  const platformPlugins = plugin && plugin.getActiveDynamicPlatform(accessory._associatedPlatform);
188
159
  if (plugin) {
189
- accessory._associatedHAPAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory._associatedHAPAccessory, {}));
160
+ accessory._associatedHAPAccessory.on("characteristic-warning", BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory._associatedHAPAccessory, {}));
190
161
  }
191
162
  if (!platformPlugins) {
192
163
  log.info(`Failed to find plugin to handle accessory ${accessory._associatedHAPAccessory.displayName}`);
193
164
  if (!this.bridgeOptions.keepOrphanedCachedAccessories) {
194
165
  log.info(`Removing orphaned accessory ${accessory._associatedHAPAccessory.displayName}`);
195
- return false; // filter it from the list
166
+ return false;
196
167
  }
197
168
  }
198
169
  else {
199
- // We set a placeholder for FirmwareRevision before configureAccessory is called so the plugin has the opportunity to override it.
200
170
  accessory.getService(Service.AccessoryInformation)?.setCharacteristic(Characteristic.FirmwareRevision, '0');
201
171
  platformPlugins.configureAccessory(accessory);
202
172
  }
@@ -205,18 +175,13 @@ export class BridgeService {
205
175
  }
206
176
  catch (error) {
207
177
  log.warn(`${accessory._associatedPlugin ? getLogPrefix(accessory._associatedPlugin) : ''} Could not restore cached accessory '${accessory._associatedHAPAccessory.displayName}':`, error.message);
208
- return false; // filter it from the list
178
+ return false;
209
179
  }
210
- return true; // keep it in the list
180
+ return true;
211
181
  });
212
182
  }
213
- /**
214
- * Save the cached accessories back to disk.
215
- */
216
183
  saveCachedPlatformAccessoriesOnDisk() {
217
184
  try {
218
- // only save the cache file back to disk if we have already attempted to load it
219
- // this should prevent the cache being deleted should homebridge be shutdown before it has finished launching
220
185
  if (this.cachedAccessoriesFileLoaded) {
221
186
  const serializedAccessories = this.cachedPlatformAccessories.map(accessory => PlatformAccessory.serialize(accessory));
222
187
  this.storageService.setItemSync(this.bridgeOptions.cachedAccessoriesItemName, serializedAccessories);
@@ -236,7 +201,7 @@ export class BridgeService {
236
201
  if (!platforms) {
237
202
  log.warn('The plugin \'%s\' registered a new accessory for the platform \'%s\'. The platform couldn\'t be found though!', accessory._associatedPlugin, accessory._associatedPlatform);
238
203
  }
239
- accessory._associatedHAPAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory._associatedHAPAccessory, {}));
204
+ accessory._associatedHAPAccessory.on("characteristic-warning", BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory._associatedHAPAccessory, {}));
240
205
  }
241
206
  else {
242
207
  log.warn('A platform configured a new accessory under the plugin name \'%s\'. However no loaded plugin could be found for the name!', accessory._associatedPlugin);
@@ -248,12 +213,10 @@ export class BridgeService {
248
213
  }
249
214
  handleUpdatePlatformAccessories(accessories) {
250
215
  if (!Array.isArray(accessories)) {
251
- // This could be quite destructive if a non-array is passed in, so we'll just ignore it.
252
216
  return;
253
217
  }
254
218
  const nonUpdatedPlugins = this.cachedPlatformAccessories.filter(cachedPlatformAccessory => (accessories.find(accessory => accessory.UUID === cachedPlatformAccessory._associatedHAPAccessory.UUID) === undefined));
255
219
  this.cachedPlatformAccessories = [...nonUpdatedPlugins, ...accessories];
256
- // Update persisted accessories
257
220
  this.saveCachedPlatformAccessoriesOnDisk();
258
221
  }
259
222
  handleUnregisterPlatformAccessories(accessories) {
@@ -272,7 +235,6 @@ export class BridgeService {
272
235
  for (const accessory of accessories) {
273
236
  const hapAccessory = accessory._associatedHAPAccessory;
274
237
  const advertiseAddress = generate(hapAccessory.UUID);
275
- // get external port allocation
276
238
  const accessoryPort = await this.externalPortService.requestPort(advertiseAddress);
277
239
  if (this.publishedExternalAccessories.has(advertiseAddress)) {
278
240
  throw new Error(`Accessory ${hapAccessory.displayName} experienced an address collision.`);
@@ -282,13 +244,12 @@ export class BridgeService {
282
244
  }
283
245
  const plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
284
246
  if (plugin) {
285
- hapAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, hapAccessory, { ignoreSlow: true }));
247
+ hapAccessory.on("characteristic-warning", BridgeService.printCharacteristicWriteWarning.bind(this, plugin, hapAccessory, { ignoreSlow: true }));
286
248
  }
287
249
  else if (PluginManager.isQualifiedPluginIdentifier(accessory._associatedPlugin)) {
288
- // we did already complain in api.ts if it wasn't a qualified name
289
250
  log.warn('A platform configured a external accessory under the plugin name \'%s\'. However no loaded plugin could be found for the name!', accessory._associatedPlugin);
290
251
  }
291
- hapAccessory.on("listening" /* AccessoryEventTypes.LISTENING */, (port) => {
252
+ hapAccessory.on("listening", (port) => {
292
253
  log.success('%s is running on port %s.', hapAccessory.displayName, port);
293
254
  log.info('Please add [%s] manually in Home app. Setup Code: %s', hapAccessory.displayName, accessoryPin);
294
255
  });
@@ -307,60 +268,46 @@ export class BridgeService {
307
268
  }
308
269
  createHAPAccessory(plugin, accessoryInstance, displayName, accessoryType, uuidBase) {
309
270
  const services = (accessoryInstance.getServices() || [])
310
- .filter(service => !!service); // filter out undefined values; a common mistake
271
+ .filter(service => !!service);
311
272
  const controllers = ((accessoryInstance.getControllers && accessoryInstance.getControllers()) || [])
312
273
  .filter(controller => !!controller);
313
- if (services.length === 0 && controllers.length === 0) { // check that we only add valid accessory with at least one service
274
+ if (services.length === 0 && controllers.length === 0) {
314
275
  return undefined;
315
276
  }
316
- // The returned "services" for this accessory are simply an array of new-API-style
317
- // Service instances which we can add to a created HAP-NodeJS Accessory directly.
318
277
  const accessoryUUID = uuid.generate(`${accessoryType}:${uuidBase || displayName}`);
319
278
  const accessory = new Accessory(displayName, accessoryUUID);
320
- // listen for the identify event if the accessory instance has defined an identify() method
321
279
  if (accessoryInstance.identify) {
322
- accessory.on("identify" /* AccessoryEventTypes.IDENTIFY */, (paired, callback) => {
323
- // @ts-expect-error: empty callback for backwards compatibility
280
+ accessory.on("identify", (paired, callback) => {
324
281
  accessoryInstance.identify(() => { });
325
282
  callback();
326
283
  });
327
284
  }
328
285
  const informationService = accessory.getService(Service.AccessoryInformation);
329
286
  services.forEach((service) => {
330
- // if you returned an AccessoryInformation service, merge its values with ours
331
287
  if (service instanceof Service.AccessoryInformation) {
332
- service.setCharacteristic(Characteristic.Name, displayName); // ensure display name is set
333
- // ensure the plugin has not hooked already some listeners (some weird ones do).
334
- // Otherwise, they would override our identify listener registered by the HAP-NodeJS accessory
335
- service.getCharacteristic(Characteristic.Identify).removeAllListeners("set" /* CharacteristicEventTypes.SET */);
336
- // pull out any values and listeners (get and set) you may have defined
288
+ service.setCharacteristic(Characteristic.Name, displayName);
289
+ service.getCharacteristic(Characteristic.Identify).removeAllListeners("set");
337
290
  informationService.replaceCharacteristicsFromService(service);
338
291
  }
339
292
  else {
340
293
  accessory.addService(service);
341
294
  }
342
295
  });
343
- accessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory, {}));
296
+ accessory.on("characteristic-warning", BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory, {}));
344
297
  controllers.forEach((controller) => {
345
298
  accessory.configureController(controller);
346
299
  });
347
300
  return accessory;
348
301
  }
349
302
  async loadPlatformAccessories(plugin, platformInstance, platformType, logger) {
350
- // Plugin 1.0, load accessories
351
303
  return new Promise((resolve) => {
352
- // warn the user if the static platform is blocking the startup of Homebridge for to long
353
304
  const loadDelayWarningInterval = setInterval(() => {
354
305
  log.warn(getLogPrefix(plugin.getPluginIdentifier()), 'This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info.');
355
306
  }, 20000);
356
307
  platformInstance.accessories(once((accessories) => {
357
- // clear the load delay warning interval
358
308
  clearInterval(loadDelayWarningInterval);
359
- // loop through accessories adding them to the list and registering them
360
309
  accessories.forEach((accessoryInstance, index) => {
361
- // @ts-expect-error: assume this property was set
362
310
  const accessoryName = accessoryInstance.name;
363
- // @ts-expect-error: optional base uuid
364
311
  const uuidBase = accessoryInstance.uuid_base;
365
312
  log.info('Initializing platform accessory \'%s\'...', accessoryName);
366
313
  const accessory = this.createHAPAccessory(plugin, accessoryInstance, accessoryName, platformType, uuidBase);