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,424 @@
1
+ /* global NodeJS */
2
+ /**
3
+ * Custom Matter.js Storage Implementation for Homebridge
4
+ *
5
+ * Provides persistent storage for Matter fabric data and device configuration.
6
+ * This ensures commissioning data persists across Homebridge restarts.
7
+ */
8
+ import { Buffer } from 'node:buffer';
9
+ import { readFileSync } from 'node:fs';
10
+ import { mkdir, rename, writeFile } from 'node:fs/promises';
11
+ import { dirname, join } from 'node:path';
12
+ import { Logger } from '../logger.js';
13
+ const log = Logger.withPrefix('Matter/Storage');
14
+ // Storage configuration constants
15
+ const STORAGE_WRITE_DEBOUNCE_MS = 100; // Delay for non-critical writes
16
+ /**
17
+ * Custom Matter.js StorageContext implementation for Homebridge
18
+ * Provides persistent storage for fabric data and device configuration
19
+ */
20
+ export class HomebridgeMatterStorage {
21
+ namespace;
22
+ storage = new Map();
23
+ filePath;
24
+ isInitialized = false;
25
+ writeTimer = null;
26
+ pendingWrite = false;
27
+ persistLock = null;
28
+ constructor(namespace, storagePath) {
29
+ this.namespace = namespace;
30
+ this.filePath = join(storagePath, `${namespace}.json`);
31
+ // Synchronously load existing data to avoid race conditions with Matter.js
32
+ // Matter.js expects storage to be immediately available
33
+ this.initializeSync();
34
+ }
35
+ /**
36
+ * Synchronously initialize storage by loading existing data
37
+ *
38
+ * IMPORTANT: This method uses synchronous file I/O (readFileSync) because
39
+ * Matter.js requires storage to be immediately available upon construction.
40
+ * This is a limitation of the Matter.js Storage API - it doesn't support
41
+ * async initialization.
42
+ *
43
+ * This synchronous read only happens once at startup and is unavoidable
44
+ * without rewriting Matter.js's storage interface.
45
+ */
46
+ initializeSync() {
47
+ try {
48
+ const fileContent = readFileSync(this.filePath, 'utf-8');
49
+ // Parse WITHOUT a reviver - we'll deserialize manually
50
+ const data = JSON.parse(fileContent);
51
+ // Ensure data is valid before loading
52
+ if (data && typeof data === 'object') {
53
+ // Deserialize ALL values as we load them into the Map
54
+ const entries = Object.entries(data).map(([key, value]) => [
55
+ key,
56
+ this.deserializeValue(value),
57
+ ]);
58
+ this.storage = new Map(entries);
59
+ log.debug(`Loaded ${this.storage.size} entries for namespace: ${this.namespace}`);
60
+ }
61
+ else {
62
+ log.warn(`Invalid storage data for ${this.namespace}, starting fresh`);
63
+ this.storage = new Map();
64
+ }
65
+ this.isInitialized = true;
66
+ }
67
+ catch (error) {
68
+ const code = error instanceof Error && 'code' in error ? error.code : undefined;
69
+ const errorMessage = error instanceof Error ? error.message : String(error);
70
+ if (code === 'ENOENT') {
71
+ log.debug(`No existing storage for namespace: ${this.namespace}`);
72
+ }
73
+ else {
74
+ log.warn(`Failed to load storage for ${this.namespace} (${errorMessage}), starting fresh`);
75
+ }
76
+ // Create fresh storage if file doesn't exist or is corrupted
77
+ this.storage = new Map();
78
+ this.isInitialized = true;
79
+ }
80
+ }
81
+ /**
82
+ * Initialize storage and load existing data (async for compatibility)
83
+ * Note: Storage is now initialized synchronously in constructor
84
+ */
85
+ async initialize() {
86
+ // Storage is already initialized in constructor
87
+ return Promise.resolve();
88
+ }
89
+ /**
90
+ * Build a context key from an array of contexts
91
+ */
92
+ buildContextKey(contexts) {
93
+ return contexts.join('.');
94
+ }
95
+ /**
96
+ * Recursively convert special serialized types back to their original types
97
+ *
98
+ * This is necessary because JSON.parse() doesn't automatically reconstruct:
99
+ * - BigInt values (serialized as {__type: 'bigint', value: string})
100
+ * - Uint8Array values (serialized as {__type: 'Uint8Array', value: number[]})
101
+ * - Buffer values (Node.js format: {type: 'Buffer', data: number[]})
102
+ *
103
+ * Matter.js fabric data contains these types which must be properly restored
104
+ * for commissioning to work across restarts.
105
+ *
106
+ * @param value - The value to deserialize (might be nested object/array)
107
+ * @returns The deserialized value with proper types restored
108
+ */
109
+ deserializeValue(value) {
110
+ if (value && typeof value === 'object') {
111
+ // Handle special type markers
112
+ const obj = value;
113
+ if (obj.__type === 'bigint' && typeof obj.value === 'string') {
114
+ return BigInt(obj.value);
115
+ }
116
+ if (obj.__type === 'Uint8Array' && Array.isArray(obj.value)) {
117
+ return new Uint8Array(obj.value);
118
+ }
119
+ // Handle Node.js Buffer JSON format: {type: "Buffer", data: [...]}
120
+ if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
121
+ return new Uint8Array(obj.data);
122
+ }
123
+ // Recursively process arrays
124
+ if (Array.isArray(value)) {
125
+ return value.map(item => this.deserializeValue(item));
126
+ }
127
+ // Recursively process plain objects
128
+ if (Object.getPrototypeOf(value) === Object.prototype) {
129
+ const result = {};
130
+ for (const [k, v] of Object.entries(value)) {
131
+ result[k] = this.deserializeValue(v);
132
+ }
133
+ return result;
134
+ }
135
+ }
136
+ return value;
137
+ }
138
+ /**
139
+ * Get a value from storage (Matter.js interface)
140
+ * Values are already deserialized during load, so no additional deserialization needed
141
+ */
142
+ get(contexts, key) {
143
+ // Storage is initialized in constructor, so this should always work
144
+ const fullKey = contexts.length ? `${this.buildContextKey(contexts)}.${key}` : key;
145
+ return this.storage.get(fullKey);
146
+ }
147
+ set(contexts, keyOrValues, value) {
148
+ const contextKey = this.buildContextKey(contexts);
149
+ if (typeof keyOrValues === 'string') {
150
+ const fullKey = contextKey ? `${contextKey}.${keyOrValues}` : keyOrValues;
151
+ this.storage.set(fullKey, value);
152
+ }
153
+ else {
154
+ for (const [k, v] of Object.entries(keyOrValues)) {
155
+ const fullKey = contextKey ? `${contextKey}.${k}` : k;
156
+ this.storage.set(fullKey, v);
157
+ }
158
+ }
159
+ // Debounce writes to avoid excessive disk I/O
160
+ void this.schedulePersist();
161
+ }
162
+ /**
163
+ * Delete a key from storage (Matter.js interface)
164
+ */
165
+ delete(contexts, key) {
166
+ const fullKey = contexts.length ? `${this.buildContextKey(contexts)}.${key}` : key;
167
+ const deleted = this.storage.delete(fullKey);
168
+ if (deleted) {
169
+ void this.schedulePersist();
170
+ }
171
+ }
172
+ /**
173
+ * Clear all storage in a context (Matter.js interface)
174
+ */
175
+ clearAll(contexts) {
176
+ const contextKey = this.buildContextKey(contexts);
177
+ const prefix = contextKey ? `${contextKey}.` : '';
178
+ // Collect keys to delete first to avoid modifying during iteration
179
+ const keysToDelete = [];
180
+ for (const key of this.storage.keys()) {
181
+ if (!prefix || key.startsWith(prefix)) {
182
+ keysToDelete.push(key);
183
+ }
184
+ }
185
+ // Delete collected keys
186
+ for (const key of keysToDelete) {
187
+ this.storage.delete(key);
188
+ }
189
+ if (keysToDelete.length > 0) {
190
+ void this.schedulePersist();
191
+ }
192
+ }
193
+ /**
194
+ * Get all keys in a context (Matter.js interface)
195
+ */
196
+ keys(contexts) {
197
+ if (!this.isInitialized) {
198
+ return [];
199
+ }
200
+ const contextKey = this.buildContextKey(contexts);
201
+ const prefix = contextKey ? `${contextKey}.` : '';
202
+ const contextKeys = [];
203
+ for (const key of this.storage.keys()) {
204
+ if (prefix) {
205
+ // Return keys within this context (strip context prefix)
206
+ if (key.startsWith(prefix)) {
207
+ const subKey = key.substring(prefix.length);
208
+ // Only include direct children (no further nesting)
209
+ if (!subKey.includes('.')) {
210
+ contextKeys.push(subKey);
211
+ }
212
+ }
213
+ }
214
+ else {
215
+ // Root level - return keys with no dots
216
+ if (!key.includes('.')) {
217
+ contextKeys.push(key);
218
+ }
219
+ }
220
+ }
221
+ return contextKeys;
222
+ }
223
+ /**
224
+ * Get all child context names (Matter.js interface)
225
+ */
226
+ contexts(contexts) {
227
+ if (!this.isInitialized) {
228
+ return [];
229
+ }
230
+ const contextKey = this.buildContextKey(contexts);
231
+ const prefix = contextKey ? `${contextKey}.` : '';
232
+ const childContexts = new Set();
233
+ for (const key of this.storage.keys()) {
234
+ if (prefix) {
235
+ // Find sub-contexts within this context
236
+ if (key.startsWith(prefix)) {
237
+ const subKey = key.substring(prefix.length);
238
+ const nextDot = subKey.indexOf('.');
239
+ if (nextDot > 0) {
240
+ childContexts.add(subKey.substring(0, nextDot));
241
+ }
242
+ }
243
+ }
244
+ else {
245
+ // Root level - find top-level contexts
246
+ const dotIndex = key.indexOf('.');
247
+ if (dotIndex > 0) {
248
+ childContexts.add(key.substring(0, dotIndex));
249
+ }
250
+ }
251
+ }
252
+ return Array.from(childContexts);
253
+ }
254
+ /**
255
+ * Check if a key exists (Matter.js interface)
256
+ */
257
+ has(contexts, key) {
258
+ if (!this.isInitialized) {
259
+ return false;
260
+ }
261
+ const fullKey = contexts.length ? `${this.buildContextKey(contexts)}.${key}` : key;
262
+ return this.storage.has(fullKey);
263
+ }
264
+ /**
265
+ * Get all values in a context
266
+ * Returns direct children only (does not include nested contexts)
267
+ */
268
+ async values(contexts) {
269
+ await this.initialize();
270
+ const contextKey = this.buildContextKey(contexts);
271
+ const prefix = contextKey ? `${contextKey}.` : '';
272
+ const values = {};
273
+ for (const [key, value] of this.storage.entries()) {
274
+ // Check if key is in the requested context
275
+ if (prefix && !key.startsWith(prefix)) {
276
+ continue;
277
+ }
278
+ const subKey = prefix ? key.substring(prefix.length) : key;
279
+ // Only include direct children (no nested contexts)
280
+ if (!subKey.includes('.')) {
281
+ values[subKey] = value; // values are already deserialized
282
+ }
283
+ }
284
+ return values;
285
+ }
286
+ /**
287
+ * Schedule a persist operation (debounced)
288
+ */
289
+ async schedulePersist() {
290
+ if (this.writeTimer) {
291
+ clearTimeout(this.writeTimer);
292
+ }
293
+ this.pendingWrite = true;
294
+ // Immediate persist for critical data (fabric information)
295
+ const hasCriticalData = Array.from(this.storage.keys()).some(key => key.includes('fabric'));
296
+ if (hasCriticalData) {
297
+ await this.persist();
298
+ }
299
+ else {
300
+ // Debounce non-critical writes
301
+ this.writeTimer = setTimeout(() => {
302
+ void this.persist();
303
+ }, STORAGE_WRITE_DEBOUNCE_MS);
304
+ }
305
+ }
306
+ /**
307
+ * Persist storage to disk with atomic write
308
+ */
309
+ async persist() {
310
+ // Wait for any in-progress persist operation to complete
311
+ if (this.persistLock) {
312
+ await this.persistLock;
313
+ }
314
+ if (!this.pendingWrite) {
315
+ return;
316
+ }
317
+ // Create a new lock for this persist operation
318
+ this.persistLock = (async () => {
319
+ try {
320
+ const data = Object.fromEntries(this.storage.entries());
321
+ const dir = dirname(this.filePath);
322
+ // Ensure directory exists
323
+ await mkdir(dir, { recursive: true });
324
+ // Atomic write: write to temp file then rename
325
+ // Use a unique temp file to avoid conflicts
326
+ const tempFile = `${this.filePath}.tmp.${Date.now()}`;
327
+ // Custom replacer to handle BigInt, Uint8Array, and Buffer serialization
328
+ const jsonString = JSON.stringify(data, (_key, value) => {
329
+ if (typeof value === 'bigint') {
330
+ return { __type: 'bigint', value: value.toString() };
331
+ }
332
+ // Handle Buffer before Uint8Array since Buffer extends Uint8Array
333
+ // Note: Buffer.toJSON() returns {type: 'Buffer', data: [...]}, but we want consistent format
334
+ if (Buffer.isBuffer(value)) {
335
+ return { __type: 'Uint8Array', value: Array.from(value) };
336
+ }
337
+ if (value instanceof Uint8Array) {
338
+ return { __type: 'Uint8Array', value: Array.from(value) };
339
+ }
340
+ return value;
341
+ }, 2);
342
+ await writeFile(tempFile, jsonString, 'utf-8');
343
+ await rename(tempFile, this.filePath);
344
+ this.pendingWrite = false;
345
+ log.debug(`Persisted ${this.storage.size} entries for namespace: ${this.namespace}`);
346
+ }
347
+ catch (error) {
348
+ // Don't throw - we don't want to break Matter operations
349
+ log.error(`Failed to persist storage for ${this.namespace}:`, error);
350
+ }
351
+ finally {
352
+ this.persistLock = null;
353
+ }
354
+ })();
355
+ await this.persistLock;
356
+ }
357
+ /**
358
+ * Force immediate persist (for shutdown)
359
+ */
360
+ async forcePersist() {
361
+ if (this.writeTimer) {
362
+ clearTimeout(this.writeTimer);
363
+ this.writeTimer = null;
364
+ }
365
+ if (this.pendingWrite) {
366
+ await this.persist();
367
+ }
368
+ }
369
+ /**
370
+ * Close and cleanup storage
371
+ */
372
+ async close() {
373
+ await this.forcePersist();
374
+ this.storage.clear();
375
+ this.isInitialized = false;
376
+ }
377
+ /**
378
+ * Get storage statistics
379
+ */
380
+ getStats() {
381
+ return {
382
+ entries: this.storage.size,
383
+ namespace: this.namespace,
384
+ path: this.filePath,
385
+ };
386
+ }
387
+ }
388
+ /**
389
+ * Storage Manager for Matter.js
390
+ * Manages multiple storage contexts for different namespaces
391
+ */
392
+ export class MatterStorageManager {
393
+ storagePath;
394
+ storages = new Map();
395
+ constructor(storagePath) {
396
+ this.storagePath = storagePath;
397
+ }
398
+ /**
399
+ * Get or create a storage context for a namespace
400
+ */
401
+ getStorage(namespace) {
402
+ let storage = this.storages.get(namespace);
403
+ if (!storage) {
404
+ storage = new HomebridgeMatterStorage(namespace, this.storagePath);
405
+ this.storages.set(namespace, storage);
406
+ }
407
+ return storage;
408
+ }
409
+ /**
410
+ * Close all storage contexts
411
+ */
412
+ async closeAll() {
413
+ const promises = Array.from(this.storages.values()).map(storage => storage.close());
414
+ await Promise.all(promises);
415
+ this.storages.clear();
416
+ }
417
+ /**
418
+ * Get statistics for all storage contexts
419
+ */
420
+ getAllStats() {
421
+ return Array.from(this.storages.values()).map(storage => storage.getStats());
422
+ }
423
+ }
424
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/matter/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=storage.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.spec.d.ts","sourceRoot":"","sources":["../../src/matter/storage.spec.ts"],"names":[],"mappings":""}