homebridge 2.0.0-beta.4 → 2.0.0-beta.40

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 (359) hide show
  1. package/README.md +16 -17
  2. package/bin/homebridge.js +22 -0
  3. package/config-sample.json +3 -3
  4. package/dist/api.d.ts +499 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/api.js +223 -0
  7. package/dist/api.js.map +1 -0
  8. package/dist/api.spec.d.ts +2 -0
  9. package/dist/api.spec.d.ts.map +1 -0
  10. package/dist/api.spec.js +413 -0
  11. package/dist/api.spec.js.map +1 -0
  12. package/{lib → dist}/bridgeService.d.ts +19 -10
  13. package/dist/bridgeService.d.ts.map +1 -0
  14. package/{lib → dist}/bridgeService.js +85 -117
  15. package/dist/bridgeService.js.map +1 -0
  16. package/{lib → dist}/childBridgeFork.d.ts +11 -5
  17. package/dist/childBridgeFork.d.ts.map +1 -0
  18. package/{lib → dist}/childBridgeFork.js +93 -44
  19. package/dist/childBridgeFork.js.map +1 -0
  20. package/{lib → dist}/childBridgeService.d.ts +37 -7
  21. package/dist/childBridgeService.d.ts.map +1 -0
  22. package/{lib → dist}/childBridgeService.js +127 -69
  23. package/dist/childBridgeService.js.map +1 -0
  24. package/dist/cli.d.ts +3 -0
  25. package/dist/cli.d.ts.map +1 -0
  26. package/dist/cli.js +90 -0
  27. package/dist/cli.js.map +1 -0
  28. package/dist/externalPortService.d.ts +47 -0
  29. package/dist/externalPortService.d.ts.map +1 -0
  30. package/dist/externalPortService.js +105 -0
  31. package/dist/externalPortService.js.map +1 -0
  32. package/dist/index.d.ts +141 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +53 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/ipcService.d.ts +48 -0
  37. package/dist/ipcService.d.ts.map +1 -0
  38. package/{lib → dist}/ipcService.js +12 -14
  39. package/dist/ipcService.js.map +1 -0
  40. package/{lib → dist}/logger.d.ts +12 -6
  41. package/dist/logger.d.ts.map +1 -0
  42. package/{lib → dist}/logger.js +27 -28
  43. package/dist/logger.js.map +1 -0
  44. package/dist/logger.spec.d.ts +2 -0
  45. package/dist/logger.spec.d.ts.map +1 -0
  46. package/dist/logger.spec.js +95 -0
  47. package/dist/logger.spec.js.map +1 -0
  48. package/dist/matter/ChildBridgeMatterManager.d.ts +96 -0
  49. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  50. package/dist/matter/ChildBridgeMatterManager.js +399 -0
  51. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  52. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +48 -0
  53. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  54. package/dist/matter/ExternalMatterAccessoryPublisher.js +73 -0
  55. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  56. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +2 -0
  57. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +1 -0
  58. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +293 -0
  59. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +1 -0
  60. package/dist/matter/MatterAPIImpl.d.ts +504 -0
  61. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  62. package/dist/matter/MatterAPIImpl.js +305 -0
  63. package/dist/matter/MatterAPIImpl.js.map +1 -0
  64. package/dist/matter/MatterBridgeManager.d.ts +87 -0
  65. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  66. package/dist/matter/MatterBridgeManager.js +413 -0
  67. package/dist/matter/MatterBridgeManager.js.map +1 -0
  68. package/dist/matter/MatterConfigCollector.d.ts +26 -0
  69. package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
  70. package/dist/matter/MatterConfigCollector.js +78 -0
  71. package/dist/matter/MatterConfigCollector.js.map +1 -0
  72. package/dist/matter/accessoryCache.d.ts +105 -0
  73. package/dist/matter/accessoryCache.d.ts.map +1 -0
  74. package/dist/matter/accessoryCache.js +214 -0
  75. package/dist/matter/accessoryCache.js.map +1 -0
  76. package/dist/matter/accessoryCache.spec.d.ts +2 -0
  77. package/dist/matter/accessoryCache.spec.d.ts.map +1 -0
  78. package/dist/matter/accessoryCache.spec.js +452 -0
  79. package/dist/matter/accessoryCache.spec.js.map +1 -0
  80. package/dist/matter/behaviors/BehaviorRegistry.d.ts +65 -0
  81. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  82. package/dist/matter/behaviors/BehaviorRegistry.js +139 -0
  83. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  84. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +2 -0
  85. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +1 -0
  86. package/dist/matter/behaviors/BehaviorRegistry.spec.js +307 -0
  87. package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +1 -0
  88. package/dist/matter/behaviors/ColorControlBehavior.d.ts +63 -0
  89. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  90. package/dist/matter/behaviors/ColorControlBehavior.js +223 -0
  91. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  92. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +2 -0
  93. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +1 -0
  94. package/dist/matter/behaviors/ColorControlBehavior.spec.js +29 -0
  95. package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +1 -0
  96. package/dist/matter/behaviors/DoorLockBehavior.d.ts +20 -0
  97. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  98. package/dist/matter/behaviors/DoorLockBehavior.js +71 -0
  99. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  100. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +2 -0
  101. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +1 -0
  102. package/dist/matter/behaviors/DoorLockBehavior.spec.js +120 -0
  103. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +1 -0
  104. package/dist/matter/behaviors/FanControlBehavior.d.ts +20 -0
  105. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  106. package/dist/matter/behaviors/FanControlBehavior.js +71 -0
  107. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  108. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +2 -0
  109. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +1 -0
  110. package/dist/matter/behaviors/FanControlBehavior.spec.js +23 -0
  111. package/dist/matter/behaviors/FanControlBehavior.spec.js.map +1 -0
  112. package/dist/matter/behaviors/IdentifyBehavior.d.ts +20 -0
  113. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  114. package/dist/matter/behaviors/IdentifyBehavior.js +41 -0
  115. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  116. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +2 -0
  117. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +1 -0
  118. package/dist/matter/behaviors/IdentifyBehavior.spec.js +64 -0
  119. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +1 -0
  120. package/dist/matter/behaviors/LevelControlBehavior.d.ts +33 -0
  121. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  122. package/dist/matter/behaviors/LevelControlBehavior.js +138 -0
  123. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  124. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +2 -0
  125. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +1 -0
  126. package/dist/matter/behaviors/LevelControlBehavior.spec.js +145 -0
  127. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -0
  128. package/dist/matter/behaviors/OnOffBehavior.d.ts +27 -0
  129. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  130. package/dist/matter/behaviors/OnOffBehavior.js +95 -0
  131. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  132. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +2 -0
  133. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +1 -0
  134. package/dist/matter/behaviors/OnOffBehavior.spec.js +128 -0
  135. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +1 -0
  136. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +19 -0
  137. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  138. package/dist/matter/behaviors/RvcCleanModeBehavior.js +41 -0
  139. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  140. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +2 -0
  141. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +1 -0
  142. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +57 -0
  143. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -0
  144. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +22 -0
  145. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  146. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +86 -0
  147. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  148. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +2 -0
  149. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +1 -0
  150. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +55 -0
  151. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +1 -0
  152. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +19 -0
  153. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  154. package/dist/matter/behaviors/RvcRunModeBehavior.js +41 -0
  155. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  156. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +2 -0
  157. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +1 -0
  158. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +57 -0
  159. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -0
  160. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +21 -0
  161. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  162. package/dist/matter/behaviors/ServiceAreaBehavior.js +61 -0
  163. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  164. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +2 -0
  165. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +1 -0
  166. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +53 -0
  167. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -0
  168. package/dist/matter/behaviors/ThermostatBehavior.d.ts +22 -0
  169. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  170. package/dist/matter/behaviors/ThermostatBehavior.js +127 -0
  171. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  172. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +2 -0
  173. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +1 -0
  174. package/dist/matter/behaviors/ThermostatBehavior.spec.js +23 -0
  175. package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +1 -0
  176. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +31 -0
  177. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  178. package/dist/matter/behaviors/WindowCoveringBehavior.js +158 -0
  179. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  180. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +2 -0
  181. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +1 -0
  182. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +27 -0
  183. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +1 -0
  184. package/dist/matter/behaviors/index.d.ts +20 -0
  185. package/dist/matter/behaviors/index.d.ts.map +1 -0
  186. package/dist/matter/behaviors/index.js +21 -0
  187. package/dist/matter/behaviors/index.js.map +1 -0
  188. package/dist/matter/configValidator.d.ts +81 -0
  189. package/dist/matter/configValidator.d.ts.map +1 -0
  190. package/dist/matter/configValidator.js +240 -0
  191. package/dist/matter/configValidator.js.map +1 -0
  192. package/dist/matter/configValidator.spec.d.ts +2 -0
  193. package/dist/matter/configValidator.spec.d.ts.map +1 -0
  194. package/dist/matter/configValidator.spec.js +390 -0
  195. package/dist/matter/configValidator.spec.js.map +1 -0
  196. package/dist/matter/errorHandler.d.ts +33 -0
  197. package/dist/matter/errorHandler.d.ts.map +1 -0
  198. package/dist/matter/errorHandler.js +113 -0
  199. package/dist/matter/errorHandler.js.map +1 -0
  200. package/dist/matter/errorHandler.spec.d.ts +2 -0
  201. package/dist/matter/errorHandler.spec.d.ts.map +1 -0
  202. package/dist/matter/errorHandler.spec.js +159 -0
  203. package/dist/matter/errorHandler.spec.js.map +1 -0
  204. package/dist/matter/errors.d.ts +178 -0
  205. package/dist/matter/errors.d.ts.map +1 -0
  206. package/dist/matter/errors.js +200 -0
  207. package/dist/matter/errors.js.map +1 -0
  208. package/dist/matter/index.d.ts +127 -0
  209. package/dist/matter/index.d.ts.map +1 -0
  210. package/dist/matter/index.js +23 -0
  211. package/dist/matter/index.js.map +1 -0
  212. package/dist/matter/logFormatter.d.ts +19 -0
  213. package/dist/matter/logFormatter.d.ts.map +1 -0
  214. package/dist/matter/logFormatter.js +158 -0
  215. package/dist/matter/logFormatter.js.map +1 -0
  216. package/dist/matter/logFormatter.spec.d.ts +2 -0
  217. package/dist/matter/logFormatter.spec.d.ts.map +1 -0
  218. package/dist/matter/logFormatter.spec.js +252 -0
  219. package/dist/matter/logFormatter.spec.js.map +1 -0
  220. package/dist/matter/server.d.ts +336 -0
  221. package/dist/matter/server.d.ts.map +1 -0
  222. package/dist/matter/server.js +1810 -0
  223. package/dist/matter/server.js.map +1 -0
  224. package/dist/matter/serverHelpers.d.ts +81 -0
  225. package/dist/matter/serverHelpers.d.ts.map +1 -0
  226. package/dist/matter/serverHelpers.js +326 -0
  227. package/dist/matter/serverHelpers.js.map +1 -0
  228. package/dist/matter/serverHelpers.spec.d.ts +2 -0
  229. package/dist/matter/serverHelpers.spec.d.ts.map +1 -0
  230. package/dist/matter/serverHelpers.spec.js +521 -0
  231. package/dist/matter/serverHelpers.spec.js.map +1 -0
  232. package/dist/matter/sharedTypes.d.ts +164 -0
  233. package/dist/matter/sharedTypes.d.ts.map +1 -0
  234. package/dist/matter/sharedTypes.js +46 -0
  235. package/dist/matter/sharedTypes.js.map +1 -0
  236. package/dist/matter/storage.d.ts +135 -0
  237. package/dist/matter/storage.d.ts.map +1 -0
  238. package/dist/matter/storage.js +424 -0
  239. package/dist/matter/storage.js.map +1 -0
  240. package/dist/matter/storage.spec.d.ts +2 -0
  241. package/dist/matter/storage.spec.d.ts.map +1 -0
  242. package/dist/matter/storage.spec.js +570 -0
  243. package/dist/matter/storage.spec.js.map +1 -0
  244. package/dist/matter/typeHelpers.d.ts +45 -0
  245. package/dist/matter/typeHelpers.d.ts.map +1 -0
  246. package/dist/matter/typeHelpers.js +57 -0
  247. package/dist/matter/typeHelpers.js.map +1 -0
  248. package/dist/matter/typeHelpers.spec.d.ts +2 -0
  249. package/dist/matter/typeHelpers.spec.d.ts.map +1 -0
  250. package/dist/matter/typeHelpers.spec.js +127 -0
  251. package/dist/matter/typeHelpers.spec.js.map +1 -0
  252. package/dist/matter/types.d.ts +826 -0
  253. package/dist/matter/types.d.ts.map +1 -0
  254. package/dist/matter/types.js +204 -0
  255. package/dist/matter/types.js.map +1 -0
  256. package/{lib → dist}/platformAccessory.d.ts +8 -6
  257. package/dist/platformAccessory.d.ts.map +1 -0
  258. package/{lib → dist}/platformAccessory.js +19 -16
  259. package/dist/platformAccessory.js.map +1 -0
  260. package/dist/platformAccessory.spec.d.ts +2 -0
  261. package/dist/platformAccessory.spec.d.ts.map +1 -0
  262. package/dist/platformAccessory.spec.js +126 -0
  263. package/dist/platformAccessory.spec.js.map +1 -0
  264. package/{lib → dist}/plugin.d.ts +2 -3
  265. package/dist/plugin.d.ts.map +1 -0
  266. package/{lib → dist}/plugin.js +39 -51
  267. package/dist/plugin.js.map +1 -0
  268. package/{lib → dist}/pluginManager.d.ts +3 -3
  269. package/dist/pluginManager.d.ts.map +1 -0
  270. package/{lib → dist}/pluginManager.js +76 -81
  271. package/dist/pluginManager.js.map +1 -0
  272. package/dist/pluginManager.spec.d.ts +2 -0
  273. package/dist/pluginManager.spec.d.ts.map +1 -0
  274. package/dist/pluginManager.spec.js +43 -0
  275. package/dist/pluginManager.spec.js.map +1 -0
  276. package/{lib → dist}/server.d.ts +14 -1
  277. package/dist/server.d.ts.map +1 -0
  278. package/{lib → dist}/server.js +193 -123
  279. package/dist/server.js.map +1 -0
  280. package/dist/server.spec.d.ts +2 -0
  281. package/dist/server.spec.d.ts.map +1 -0
  282. package/dist/server.spec.js +57 -0
  283. package/dist/server.spec.js.map +1 -0
  284. package/{lib → dist}/storageService.d.ts.map +1 -1
  285. package/dist/storageService.js +41 -0
  286. package/dist/storageService.js.map +1 -0
  287. package/{lib → dist}/user.d.ts +1 -0
  288. package/dist/user.d.ts.map +1 -0
  289. package/dist/user.js +32 -0
  290. package/dist/user.js.map +1 -0
  291. package/dist/user.spec.d.ts +2 -0
  292. package/dist/user.spec.d.ts.map +1 -0
  293. package/dist/user.spec.js +31 -0
  294. package/dist/user.spec.js.map +1 -0
  295. package/{lib → dist}/util/mac.d.ts +1 -0
  296. package/dist/util/mac.d.ts.map +1 -0
  297. package/dist/util/mac.js +14 -0
  298. package/dist/util/mac.js.map +1 -0
  299. package/dist/util/mac.spec.d.ts +2 -0
  300. package/dist/util/mac.spec.d.ts.map +1 -0
  301. package/dist/util/mac.spec.js +36 -0
  302. package/dist/util/mac.spec.js.map +1 -0
  303. package/dist/version.d.ts.map +1 -0
  304. package/dist/version.js +16 -0
  305. package/dist/version.js.map +1 -0
  306. package/dist/version.spec.d.ts +2 -0
  307. package/dist/version.spec.d.ts.map +1 -0
  308. package/dist/version.spec.js +20 -0
  309. package/dist/version.spec.js.map +1 -0
  310. package/package.json +49 -50
  311. package/bin/homebridge +0 -17
  312. package/lib/api.d.ts +0 -210
  313. package/lib/api.d.ts.map +0 -1
  314. package/lib/api.js +0 -155
  315. package/lib/api.js.map +0 -1
  316. package/lib/bridgeService.d.ts.map +0 -1
  317. package/lib/bridgeService.js.map +0 -1
  318. package/lib/childBridgeFork.d.ts.map +0 -1
  319. package/lib/childBridgeFork.js.map +0 -1
  320. package/lib/childBridgeService.d.ts.map +0 -1
  321. package/lib/childBridgeService.js.map +0 -1
  322. package/lib/cli.d.ts +0 -4
  323. package/lib/cli.d.ts.map +0 -1
  324. package/lib/cli.js +0 -111
  325. package/lib/cli.js.map +0 -1
  326. package/lib/externalPortService.d.ts +0 -33
  327. package/lib/externalPortService.d.ts.map +0 -1
  328. package/lib/externalPortService.js +0 -64
  329. package/lib/externalPortService.js.map +0 -1
  330. package/lib/index.d.ts +0 -76
  331. package/lib/index.d.ts.map +0 -1
  332. package/lib/index.js +0 -72
  333. package/lib/index.js.map +0 -1
  334. package/lib/ipcService.d.ts +0 -33
  335. package/lib/ipcService.d.ts.map +0 -1
  336. package/lib/ipcService.js.map +0 -1
  337. package/lib/logger.d.ts.map +0 -1
  338. package/lib/logger.js.map +0 -1
  339. package/lib/platformAccessory.d.ts.map +0 -1
  340. package/lib/platformAccessory.js.map +0 -1
  341. package/lib/plugin.d.ts.map +0 -1
  342. package/lib/plugin.js.map +0 -1
  343. package/lib/pluginManager.d.ts.map +0 -1
  344. package/lib/pluginManager.js.map +0 -1
  345. package/lib/server.d.ts.map +0 -1
  346. package/lib/server.js.map +0 -1
  347. package/lib/storageService.js +0 -70
  348. package/lib/storageService.js.map +0 -1
  349. package/lib/user.d.ts.map +0 -1
  350. package/lib/user.js +0 -36
  351. package/lib/user.js.map +0 -1
  352. package/lib/util/mac.d.ts.map +0 -1
  353. package/lib/util/mac.js +0 -20
  354. package/lib/util/mac.js.map +0 -1
  355. package/lib/version.d.ts.map +0 -1
  356. package/lib/version.js +0 -21
  357. package/lib/version.js.map +0 -1
  358. /package/{lib → dist}/storageService.d.ts +0 -0
  359. /package/{lib → dist}/version.d.ts +0 -0
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Matter Protocol Support for Homebridge
3
+ *
4
+ * This module provides Matter protocol support through a Plugin API,
5
+ * allowing plugin developers to explicitly register Matter accessories.
6
+ */
7
+ import type { ColorControl, DoorLock, FanControl, Groups, Identify, LevelControl, ModeBase, OnOff, ScenesManagement, ServiceArea, Thermostat, WindowCovering } from '@matter/main/clusters';
8
+ export { ChildBridgeMatterManager } from './ChildBridgeMatterManager.js';
9
+ export { type MatterConfigValidationResult, MatterConfigValidator } from './configValidator.js';
10
+ export { MatterStatus } from './errors.js';
11
+ export { MatterBridgeManager } from './MatterBridgeManager.js';
12
+ export { MatterConfigCollector } from './MatterConfigCollector.js';
13
+ export { MatterServer } from './server.js';
14
+ export { HomebridgeMatterStorage, MatterStorageManager } from './storage.js';
15
+ export { clusterNames, clusters, devices, deviceTypes, type InternalMatterAccessory, type MatterAccessory, type MatterAccessoryEventEmitter, MatterAccessoryEventTypes, type MatterClusterHandlers, type MatterClusterName, type MatterCommandHandler, MatterCommissioningError, type MatterConfig, MatterDeviceError, MatterError, type MatterErrorDetails, MatterErrorType, MatterNetworkError, MatterStorageError, } from './types.js';
16
+ /**
17
+ * Matter Cluster Command Request Types
18
+ * Use these types for handler arguments to get full type safety
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import type { MatterRequests } from 'homebridge'
23
+ *
24
+ * handlers: {
25
+ * levelControl: {
26
+ * moveToLevel: async (args: MatterRequests.MoveToLevel) => {
27
+ * console.log(`Level: ${args.level}`)
28
+ * }
29
+ * }
30
+ * }
31
+ * ```
32
+ */
33
+ export declare namespace MatterRequests {
34
+ type OffWithEffect = OnOff.OffWithEffectRequest;
35
+ type OnWithTimedOff = OnOff.OnWithTimedOffRequest;
36
+ type MoveToLevel = LevelControl.MoveToLevelRequest;
37
+ type Move = LevelControl.MoveRequest;
38
+ type Step = LevelControl.StepRequest;
39
+ type Stop = LevelControl.StopRequest;
40
+ type MoveToClosestFrequency = LevelControl.MoveToClosestFrequencyRequest;
41
+ type MoveToHue = ColorControl.MoveToHueRequest;
42
+ type MoveHue = ColorControl.MoveHueRequest;
43
+ type StepHue = ColorControl.StepHueRequest;
44
+ type MoveToSaturation = ColorControl.MoveToSaturationRequest;
45
+ type MoveSaturation = ColorControl.MoveSaturationRequest;
46
+ type StepSaturation = ColorControl.StepSaturationRequest;
47
+ type MoveToHueAndSaturation = ColorControl.MoveToHueAndSaturationRequest;
48
+ type MoveToColor = ColorControl.MoveToColorRequest;
49
+ type MoveColor = ColorControl.MoveColorRequest;
50
+ type StepColor = ColorControl.StepColorRequest;
51
+ type MoveToColorTemperature = ColorControl.MoveToColorTemperatureRequest;
52
+ type MoveColorTemperature = ColorControl.MoveColorTemperatureRequest;
53
+ type StepColorTemperature = ColorControl.StepColorTemperatureRequest;
54
+ type StopMoveStep = ColorControl.StopMoveStepRequest;
55
+ type EnhancedMoveToHue = ColorControl.EnhancedMoveToHueRequest;
56
+ type EnhancedMoveHue = ColorControl.EnhancedMoveHueRequest;
57
+ type EnhancedStepHue = ColorControl.EnhancedStepHueRequest;
58
+ type EnhancedMoveToHueAndSaturation = ColorControl.EnhancedMoveToHueAndSaturationRequest;
59
+ type ColorLoopSet = ColorControl.ColorLoopSetRequest;
60
+ type IdentifyRequest = Identify.IdentifyRequest;
61
+ type TriggerEffect = Identify.TriggerEffectRequest;
62
+ type AddGroup = Groups.AddGroupRequest;
63
+ type ViewGroup = Groups.ViewGroupRequest;
64
+ type GetGroupMembership = Groups.GetGroupMembershipRequest;
65
+ type RemoveGroup = Groups.RemoveGroupRequest;
66
+ type AddGroupIfIdentifying = Groups.AddGroupIfIdentifyingRequest;
67
+ type AddScene = ScenesManagement.AddSceneRequest;
68
+ type ViewScene = ScenesManagement.ViewSceneRequest;
69
+ type RemoveScene = ScenesManagement.RemoveSceneRequest;
70
+ type RemoveAllScenes = ScenesManagement.RemoveAllScenesRequest;
71
+ type StoreScene = ScenesManagement.StoreSceneRequest;
72
+ type RecallScene = ScenesManagement.RecallSceneRequest;
73
+ type GetSceneMembership = ScenesManagement.GetSceneMembershipRequest;
74
+ type CopyScene = ScenesManagement.CopySceneRequest;
75
+ type LockDoor = DoorLock.LockDoorRequest;
76
+ type UnlockDoor = DoorLock.UnlockDoorRequest;
77
+ type UnlockWithTimeout = DoorLock.UnlockWithTimeoutRequest;
78
+ type UnboltDoor = DoorLock.UnboltDoorRequest;
79
+ type SetUser = DoorLock.SetUserRequest;
80
+ type GetUser = DoorLock.GetUserRequest;
81
+ type ClearUser = DoorLock.ClearUserRequest;
82
+ type SetUserStatus = DoorLock.SetUserStatusRequest;
83
+ type GetUserStatus = DoorLock.GetUserStatusRequest;
84
+ type SetUserType = DoorLock.SetUserTypeRequest;
85
+ type GetUserType = DoorLock.GetUserTypeRequest;
86
+ type SetCredential = DoorLock.SetCredentialRequest;
87
+ type GetCredentialStatus = DoorLock.GetCredentialStatusRequest;
88
+ type ClearCredential = DoorLock.ClearCredentialRequest;
89
+ type SetPinCode = DoorLock.SetPinCodeRequest;
90
+ type GetPinCode = DoorLock.GetPinCodeRequest;
91
+ type ClearPinCode = DoorLock.ClearPinCodeRequest;
92
+ type SetRfidCode = DoorLock.SetRfidCodeRequest;
93
+ type GetRfidCode = DoorLock.GetRfidCodeRequest;
94
+ type ClearRfidCode = DoorLock.ClearRfidCodeRequest;
95
+ type SetWeekDaySchedule = DoorLock.SetWeekDayScheduleRequest;
96
+ type GetWeekDaySchedule = DoorLock.GetWeekDayScheduleRequest;
97
+ type ClearWeekDaySchedule = DoorLock.ClearWeekDayScheduleRequest;
98
+ type SetYearDaySchedule = DoorLock.SetYearDayScheduleRequest;
99
+ type GetYearDaySchedule = DoorLock.GetYearDayScheduleRequest;
100
+ type ClearYearDaySchedule = DoorLock.ClearYearDayScheduleRequest;
101
+ type SetHolidaySchedule = DoorLock.SetHolidayScheduleRequest;
102
+ type GetHolidaySchedule = DoorLock.GetHolidayScheduleRequest;
103
+ type ClearHolidaySchedule = DoorLock.ClearHolidayScheduleRequest;
104
+ type SetAliroReaderConfig = DoorLock.SetAliroReaderConfigRequest;
105
+ type GoToLiftPercentage = WindowCovering.GoToLiftPercentageRequest;
106
+ type GoToTiltPercentage = WindowCovering.GoToTiltPercentageRequest;
107
+ type GoToLiftValue = WindowCovering.GoToLiftValueRequest;
108
+ type GoToTiltValue = WindowCovering.GoToTiltValueRequest;
109
+ type SetpointRaiseLower = Thermostat.SetpointRaiseLowerRequest;
110
+ type SetActivePreset = Thermostat.SetActivePresetRequest;
111
+ type SetActiveSchedule = Thermostat.SetActiveScheduleRequest;
112
+ type GetWeeklySchedule = Thermostat.GetWeeklyScheduleRequest;
113
+ type SetWeeklySchedule = Thermostat.SetWeeklyScheduleRequest;
114
+ type FanStep = FanControl.StepRequest;
115
+ type ChangeToMode = ModeBase.ChangeToModeRequest;
116
+ type SelectAreas = ServiceArea.SelectAreasRequest;
117
+ type SkipArea = ServiceArea.SkipAreaRequest;
118
+ }
119
+ /**
120
+ * Matter Cluster Types & Enums
121
+ * Import these to access type-safe enum values for cluster attributes using the original matter.js names.
122
+ *
123
+ * All 130+ Matter clusters are exported here with their original matter.js names, providing access to
124
+ * enums, types, and constants with full TypeScript autocomplete support.
125
+ */
126
+ export * as MatterTypes from '@matter/main/clusters';
127
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Matter Protocol Support for Homebridge
3
+ *
4
+ * This module provides Matter protocol support through a Plugin API,
5
+ * allowing plugin developers to explicitly register Matter accessories.
6
+ */
7
+ export { ChildBridgeMatterManager } from './ChildBridgeMatterManager.js';
8
+ export { MatterConfigValidator } from './configValidator.js';
9
+ export { MatterStatus } from './errors.js';
10
+ export { MatterBridgeManager } from './MatterBridgeManager.js';
11
+ export { MatterConfigCollector } from './MatterConfigCollector.js';
12
+ export { MatterServer } from './server.js';
13
+ export { HomebridgeMatterStorage, MatterStorageManager } from './storage.js';
14
+ export { clusterNames, clusters, devices, deviceTypes, MatterAccessoryEventTypes, MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './types.js';
15
+ /**
16
+ * Matter Cluster Types & Enums
17
+ * Import these to access type-safe enum values for cluster attributes using the original matter.js names.
18
+ *
19
+ * All 130+ Matter clusters are exported here with their original matter.js names, providing access to
20
+ * enums, types, and constants with full TypeScript autocomplete support.
21
+ */
22
+ export * as MatterTypes from '@matter/main/clusters';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAqC,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,EAIX,yBAAyB,EAIzB,wBAAwB,EAExB,iBAAiB,EACjB,WAAW,EAEX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AA0JnB;;;;;;GAMG;AACH,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Matter.js Log Formatter
3
+ *
4
+ * Formats Matter.js library logs to match the homebridge log format and color scheme.
5
+ * This ensures consistent logging output across Homebridge and Matter.js.
6
+ */
7
+ /**
8
+ * Create a custom log formatter that matches the homebridge format.
9
+ * Format: [timestamp] [Matter:Facility] message
10
+ * Timestamp format matches system locale (via toLocaleString()).
11
+ *
12
+ * Log level color mapping:
13
+ * - Matter DEBUG/INFO → gray (Homebridge debug)
14
+ * - Matter NOTICE → no color (Homebridge info)
15
+ * - Matter WARN → yellow (Homebridge warn)
16
+ * - Matter ERROR/FATAL → red (Homebridge error)
17
+ */
18
+ export declare function createHomebridgeLogFormatter(): (diagnostic: unknown) => string;
19
+ //# sourceMappingURL=logFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.d.ts","sourceRoot":"","sources":["../../src/matter/logFormatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,IAAI,CAAC,UAAU,EAAE,OAAO,KAAK,MAAM,CAuE9E"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Matter.js Log Formatter
3
+ *
4
+ * Formats Matter.js library logs to match the homebridge log format and color scheme.
5
+ * This ensures consistent logging output across Homebridge and Matter.js.
6
+ */
7
+ import { Diagnostic } from '@matter/general';
8
+ import chalk from 'chalk';
9
+ import { Logger } from '../logger.js';
10
+ /**
11
+ * Create a custom log formatter that matches the homebridge format.
12
+ * Format: [timestamp] [Matter:Facility] message
13
+ * Timestamp format matches system locale (via toLocaleString()).
14
+ *
15
+ * Log level color mapping:
16
+ * - Matter DEBUG/INFO → gray (Homebridge debug)
17
+ * - Matter NOTICE → no color (Homebridge info)
18
+ * - Matter WARN → yellow (Homebridge warn)
19
+ * - Matter ERROR/FATAL → red (Homebridge error)
20
+ */
21
+ export function createHomebridgeLogFormatter() {
22
+ // Capture timestamp setting once when formatter is created
23
+ const timestampEnabled = Logger.isTimestampEnabled();
24
+ return (diagnostic) => {
25
+ // Check if this is a Matter.js log message
26
+ if (typeof diagnostic === 'object' && diagnostic !== null) {
27
+ const msg = diagnostic;
28
+ // If it's a log message with the expected structure
29
+ if (msg.now && msg.facility && msg.values) {
30
+ // Suppress ValidatedElements logs - these are just validation warnings about
31
+ // optional Matter.js features that aren't implemented (and don't need to be)
32
+ if (msg.facility === 'ValidatedElements' || msg.facility === 'Commissioning') {
33
+ return '';
34
+ }
35
+ // Format facility as [Matter:FacilityName] in cyan color
36
+ const facility = formatCyan(`[Matter/${msg.facility}]`);
37
+ // Extract the message text from values
38
+ let messageText = formatMessageValues(msg.values);
39
+ // Trim excessively long messages from verbose facilities like MessageChannel
40
+ if (msg.facility === 'MessageChannel' && messageText.length > 200) {
41
+ messageText = `${messageText.substring(0, 200)} [trimmed...]`;
42
+ }
43
+ // Apply color based on Matter log level
44
+ // Matter DEBUG/INFO → gray (Homebridge debug)
45
+ // Matter NOTICE → no color (Homebridge info)
46
+ // Matter WARN → yellow (Homebridge warn)
47
+ // Matter ERROR/FATAL → red (Homebridge error)
48
+ // For 'notice' or anything else, leave it uncolored (Homebridge info style)
49
+ let coloredMessage = messageText;
50
+ if (msg.level !== undefined) {
51
+ switch (msg.level) {
52
+ // export const DEBUG: LogLevel = 0;
53
+ // export const INFO: LogLevel = 1;
54
+ // export const NOTICE: LogLevel = 2;
55
+ // export const WARN: LogLevel = 3;
56
+ // export const ERROR: LogLevel = 4;
57
+ // export const FATAL: LogLevel = 5;
58
+ case 5: // FATAL
59
+ case 4: // ERROR
60
+ coloredMessage = chalk.red(messageText);
61
+ break;
62
+ case 3: // WARN
63
+ coloredMessage = chalk.yellow(messageText);
64
+ break;
65
+ case 0: // DEBUG
66
+ coloredMessage = chalk.gray(messageText);
67
+ break;
68
+ }
69
+ }
70
+ // Check if timestamps are enabled (respects --no-timestamp flag)
71
+ if (timestampEnabled) {
72
+ // Format timestamp to match Homebridge format using toLocaleString() in white
73
+ const timestamp = formatHomebridgeTimestamp(msg.now);
74
+ return `${timestamp} ${facility} ${coloredMessage}`;
75
+ }
76
+ else {
77
+ // No timestamp
78
+ return `${facility} ${coloredMessage}`;
79
+ }
80
+ }
81
+ }
82
+ // Fallback for non-message diagnostics
83
+ return String(diagnostic);
84
+ };
85
+ }
86
+ /**
87
+ * Format a date object to Homebridge timestamp format.
88
+ * Uses toLocaleString() to match the main logger's format and respect system locale/timezone.
89
+ * Returns the timestamp in white color to match main logger.
90
+ */
91
+ function formatHomebridgeTimestamp(date) {
92
+ const timestamp = `[${date.toLocaleString()}]`;
93
+ return chalk.white(timestamp);
94
+ }
95
+ /**
96
+ * Format text in cyan color using chalk
97
+ */
98
+ function formatCyan(text) {
99
+ return chalk.cyan(text);
100
+ }
101
+ /**
102
+ * Format the message values array into a readable string
103
+ */
104
+ function formatMessageValues(values) {
105
+ if (!Array.isArray(values)) {
106
+ return String(values);
107
+ }
108
+ return values
109
+ .map((value) => {
110
+ if (value === null) {
111
+ return 'null';
112
+ }
113
+ if (value === undefined) {
114
+ return 'undefined';
115
+ }
116
+ // Matter.js uses lazy logging - call functions to get the actual message
117
+ if (typeof value === 'function') {
118
+ try {
119
+ return String(value());
120
+ }
121
+ catch {
122
+ return String(value);
123
+ }
124
+ }
125
+ if (typeof value === 'object') {
126
+ // Check if this is a Matter.js Diagnostic object
127
+ // These objects store their actual value in a symbol property
128
+ const diagnosticValue = Diagnostic.valueOf(value);
129
+ if (diagnosticValue !== undefined && diagnosticValue !== value) {
130
+ // If diagnosticValue is an array, format each element individually
131
+ if (Array.isArray(diagnosticValue)) {
132
+ return formatMessageValues(diagnosticValue);
133
+ }
134
+ // Otherwise, recursively format the single value
135
+ return formatMessageValues([diagnosticValue]);
136
+ }
137
+ // Special handling for error objects
138
+ if (value instanceof Error) {
139
+ const errorDetails = {
140
+ ...value, // include any custom properties first
141
+ name: value.name,
142
+ message: value.message,
143
+ stack: value.stack,
144
+ };
145
+ return JSON.stringify(errorDetails, null, 2);
146
+ }
147
+ try {
148
+ return JSON.stringify(value);
149
+ }
150
+ catch {
151
+ return String(value);
152
+ }
153
+ }
154
+ return String(value).trim();
155
+ })
156
+ .join(' ');
157
+ }
158
+ //# sourceMappingURL=logFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.js","sourceRoot":"","sources":["../../src/matter/logFormatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logFormatter.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.spec.d.ts","sourceRoot":"","sources":["../../src/matter/logFormatter.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,252 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { Logger } from '../logger.js';
3
+ import { createHomebridgeLogFormatter } from './logFormatter.js';
4
+ describe('logFormatter', () => {
5
+ describe('createHomebridgeLogFormatter', () => {
6
+ it('should return a formatter function', () => {
7
+ const formatter = createHomebridgeLogFormatter();
8
+ expect(typeof formatter).toBe('function');
9
+ });
10
+ it('should format Matter.js log messages with facility and timestamp', () => {
11
+ // Enable timestamps for this test
12
+ Logger.setTimestampEnabled(true);
13
+ const formatter = createHomebridgeLogFormatter();
14
+ const diagnostic = {
15
+ now: new Date('2025-01-15T10:30:00.000Z'),
16
+ facility: 'TestFacility',
17
+ values: ['Test message'],
18
+ level: 'notice',
19
+ };
20
+ const result = formatter(diagnostic);
21
+ expect(result).toContain('[Matter/TestFacility]');
22
+ expect(result).toContain('Test message');
23
+ expect(result).toMatch(/\[\d{1,2}\/\d{1,2}\/\d{4}/);
24
+ // Reset timestamp setting
25
+ Logger.setTimestampEnabled(false);
26
+ });
27
+ it('should format messages without timestamp when disabled', () => {
28
+ Logger.setTimestampEnabled(false);
29
+ const formatter = createHomebridgeLogFormatter();
30
+ const diagnostic = {
31
+ now: new Date('2025-01-15T10:30:00.000Z'),
32
+ facility: 'TestFacility',
33
+ values: ['Test message'],
34
+ level: 'notice',
35
+ };
36
+ const result = formatter(diagnostic);
37
+ expect(result).toContain('[Matter/TestFacility]');
38
+ expect(result).toContain('Test message');
39
+ expect(result).not.toMatch(/\[.*\d\/\d{1,2}\/\d{4}/);
40
+ });
41
+ it('should apply gray color for debug level messages', () => {
42
+ const formatter = createHomebridgeLogFormatter();
43
+ const diagnostic = {
44
+ now: new Date(),
45
+ facility: 'Test',
46
+ values: ['debug message'],
47
+ level: 'debug',
48
+ };
49
+ const result = formatter(diagnostic);
50
+ // Chalk colors may be stripped in test environment, just check the message is there
51
+ expect(result).toContain('debug message');
52
+ expect(result).toContain('[Matter/Test]');
53
+ });
54
+ it('should apply gray color for info level messages', () => {
55
+ const formatter = createHomebridgeLogFormatter();
56
+ const diagnostic = {
57
+ now: new Date(),
58
+ facility: 'Test',
59
+ values: ['info message'],
60
+ level: 'info',
61
+ };
62
+ const result = formatter(diagnostic);
63
+ expect(result).toContain('info message');
64
+ expect(result).toContain('[Matter/Test]');
65
+ });
66
+ it('should apply yellow color for warn level messages', () => {
67
+ const formatter = createHomebridgeLogFormatter();
68
+ const diagnostic = {
69
+ now: new Date(),
70
+ facility: 'Test',
71
+ values: ['warning message'],
72
+ level: 'warn',
73
+ };
74
+ const result = formatter(diagnostic);
75
+ // Chalk colors may be stripped in test environment, just check the message is there
76
+ expect(result).toContain('warning message');
77
+ expect(result).toContain('[Matter/Test]');
78
+ });
79
+ it('should apply red color for error level messages', () => {
80
+ const formatter = createHomebridgeLogFormatter();
81
+ const diagnostic = {
82
+ now: new Date(),
83
+ facility: 'Test',
84
+ values: ['error message'],
85
+ level: 'error',
86
+ };
87
+ const result = formatter(diagnostic);
88
+ // Chalk colors may be stripped in test environment, just check the message is there
89
+ expect(result).toContain('error message');
90
+ expect(result).toContain('[Matter/Test]');
91
+ });
92
+ it('should apply red color for fatal level messages', () => {
93
+ const formatter = createHomebridgeLogFormatter();
94
+ const diagnostic = {
95
+ now: new Date(),
96
+ facility: 'Test',
97
+ values: ['fatal message'],
98
+ level: 'fatal',
99
+ };
100
+ const result = formatter(diagnostic);
101
+ expect(result).toContain('fatal message');
102
+ expect(result).toContain('[Matter/Test]');
103
+ });
104
+ it('should not apply color for notice level messages', () => {
105
+ const formatter = createHomebridgeLogFormatter();
106
+ const diagnostic = {
107
+ now: new Date(),
108
+ facility: 'Test',
109
+ values: ['notice message'],
110
+ level: 'notice',
111
+ };
112
+ const result = formatter(diagnostic);
113
+ // Should not contain common ANSI color codes (except for cyan facility)
114
+ expect(result).not.toContain('\x1B[90m'); // gray
115
+ expect(result).not.toContain('\x1B[33m'); // yellow
116
+ expect(result).not.toContain('\x1B[31m'); // red
117
+ });
118
+ it('should trim long MessageChannel messages', () => {
119
+ const formatter = createHomebridgeLogFormatter();
120
+ const longMessage = 'a'.repeat(300);
121
+ const diagnostic = {
122
+ now: new Date(),
123
+ facility: 'MessageChannel',
124
+ values: [longMessage],
125
+ level: 'debug',
126
+ };
127
+ const result = formatter(diagnostic);
128
+ expect(result).toContain('[trimmed...]');
129
+ expect(result.length).toBeLessThan(longMessage.length + 100);
130
+ });
131
+ it('should not trim messages from other facilities', () => {
132
+ const formatter = createHomebridgeLogFormatter();
133
+ const longMessage = 'a'.repeat(300);
134
+ const diagnostic = {
135
+ now: new Date(),
136
+ facility: 'OtherFacility',
137
+ values: [longMessage],
138
+ level: 'debug',
139
+ };
140
+ const result = formatter(diagnostic);
141
+ expect(result).not.toContain('[trimmed...]');
142
+ expect(result).toContain(longMessage);
143
+ });
144
+ it('should format multiple message values', () => {
145
+ const formatter = createHomebridgeLogFormatter();
146
+ const diagnostic = {
147
+ now: new Date(),
148
+ facility: 'Test',
149
+ values: ['first', 'second', 'third'],
150
+ level: 'notice',
151
+ };
152
+ const result = formatter(diagnostic);
153
+ expect(result).toContain('first');
154
+ expect(result).toContain('second');
155
+ expect(result).toContain('third');
156
+ });
157
+ it('should call lazy logging functions', () => {
158
+ const formatter = createHomebridgeLogFormatter();
159
+ const lazyFn = vi.fn(() => 'lazy value');
160
+ const diagnostic = {
161
+ now: new Date(),
162
+ facility: 'Test',
163
+ values: [lazyFn],
164
+ level: 'notice',
165
+ };
166
+ const result = formatter(diagnostic);
167
+ expect(lazyFn).toHaveBeenCalled();
168
+ expect(result).toContain('lazy value');
169
+ });
170
+ it('should handle null values', () => {
171
+ const formatter = createHomebridgeLogFormatter();
172
+ const diagnostic = {
173
+ now: new Date(),
174
+ facility: 'Test',
175
+ values: [null],
176
+ level: 'notice',
177
+ };
178
+ const result = formatter(diagnostic);
179
+ expect(result).toContain('null');
180
+ });
181
+ it('should handle undefined values', () => {
182
+ const formatter = createHomebridgeLogFormatter();
183
+ const diagnostic = {
184
+ now: new Date(),
185
+ facility: 'Test',
186
+ values: [undefined],
187
+ level: 'notice',
188
+ };
189
+ const result = formatter(diagnostic);
190
+ expect(result).toContain('undefined');
191
+ });
192
+ it('should format error objects with stack traces', () => {
193
+ const formatter = createHomebridgeLogFormatter();
194
+ const error = new Error('test error');
195
+ const diagnostic = {
196
+ now: new Date(),
197
+ facility: 'Test',
198
+ values: [error],
199
+ level: 'error',
200
+ };
201
+ const result = formatter(diagnostic);
202
+ expect(result).toContain('test error');
203
+ expect(result).toContain('stack');
204
+ });
205
+ it('should format plain objects as JSON', () => {
206
+ const formatter = createHomebridgeLogFormatter();
207
+ const obj = { key: 'value', number: 42 };
208
+ const diagnostic = {
209
+ now: new Date(),
210
+ facility: 'Test',
211
+ values: [obj],
212
+ level: 'notice',
213
+ };
214
+ const result = formatter(diagnostic);
215
+ expect(result).toContain('key');
216
+ expect(result).toContain('value');
217
+ expect(result).toContain('42');
218
+ });
219
+ it('should handle non-message diagnostics gracefully', () => {
220
+ const formatter = createHomebridgeLogFormatter();
221
+ const result = formatter('plain string');
222
+ expect(result).toBe('plain string');
223
+ });
224
+ it('should handle empty message values', () => {
225
+ const formatter = createHomebridgeLogFormatter();
226
+ const diagnostic = {
227
+ now: new Date(),
228
+ facility: 'Test',
229
+ values: [],
230
+ level: 'notice',
231
+ };
232
+ const result = formatter(diagnostic);
233
+ expect(result).toContain('[Matter/Test]');
234
+ });
235
+ it('should handle diagnostic with valueOf using Diagnostic API', () => {
236
+ const formatter = createHomebridgeLogFormatter();
237
+ // Create a plain object that Matter.js Diagnostic.valueOf would process
238
+ const objectValue = { key: 'test', value: 42 };
239
+ const diagnostic = {
240
+ now: new Date(),
241
+ facility: 'Test',
242
+ values: [objectValue],
243
+ level: 'notice',
244
+ };
245
+ const result = formatter(diagnostic);
246
+ // Should contain the JSON stringified version
247
+ expect(result).toContain('key');
248
+ expect(result).toContain('test');
249
+ });
250
+ });
251
+ });
252
+ //# sourceMappingURL=logFormatter.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.spec.js","sourceRoot":"","sources":["../../src/matter/logFormatter.spec.ts"],"names":[],"mappings":"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"}