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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/dist/api.d.ts +74 -32
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +48 -46
  4. package/dist/api.js.map +1 -1
  5. package/dist/api.spec.d.ts +2 -0
  6. package/dist/api.spec.d.ts.map +1 -0
  7. package/dist/api.spec.js +413 -0
  8. package/dist/api.spec.js.map +1 -0
  9. package/dist/childBridgeFork.d.ts +1 -18
  10. package/dist/childBridgeFork.d.ts.map +1 -1
  11. package/dist/childBridgeFork.js +21 -258
  12. package/dist/childBridgeFork.js.map +1 -1
  13. package/dist/externalPortService.d.ts +2 -9
  14. package/dist/externalPortService.d.ts.map +1 -1
  15. package/dist/externalPortService.js +20 -40
  16. package/dist/externalPortService.js.map +1 -1
  17. package/dist/index.d.ts +10 -10
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +3 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/logger.spec.d.ts +2 -0
  22. package/dist/logger.spec.d.ts.map +1 -0
  23. package/dist/logger.spec.js +95 -0
  24. package/dist/logger.spec.js.map +1 -0
  25. package/dist/matter/ChildBridgeMatterManager.d.ts +96 -0
  26. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  27. package/dist/matter/ChildBridgeMatterManager.js +397 -0
  28. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  29. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +48 -0
  30. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  31. package/dist/matter/ExternalMatterAccessoryPublisher.js +73 -0
  32. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  33. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +2 -0
  34. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +1 -0
  35. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +293 -0
  36. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +1 -0
  37. package/dist/matter/{matterServer.d.ts → MatterAPIImpl.d.ts} +203 -367
  38. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  39. package/dist/matter/MatterAPIImpl.js +305 -0
  40. package/dist/matter/MatterAPIImpl.js.map +1 -0
  41. package/dist/matter/MatterBridgeManager.d.ts +91 -0
  42. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  43. package/dist/matter/MatterBridgeManager.js +426 -0
  44. package/dist/matter/MatterBridgeManager.js.map +1 -0
  45. package/dist/matter/MatterConfigCollector.d.ts +26 -0
  46. package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
  47. package/dist/matter/MatterConfigCollector.js +78 -0
  48. package/dist/matter/MatterConfigCollector.js.map +1 -0
  49. package/dist/matter/{matterAccessoryCache.d.ts → accessoryCache.d.ts} +12 -3
  50. package/dist/matter/accessoryCache.d.ts.map +1 -0
  51. package/dist/matter/{matterAccessoryCache.js → accessoryCache.js} +32 -10
  52. package/dist/matter/accessoryCache.js.map +1 -0
  53. package/dist/matter/accessoryCache.spec.d.ts +2 -0
  54. package/dist/matter/accessoryCache.spec.d.ts.map +1 -0
  55. package/dist/matter/accessoryCache.spec.js +452 -0
  56. package/dist/matter/accessoryCache.spec.js.map +1 -0
  57. package/dist/matter/behaviors/BehaviorRegistry.d.ts +65 -0
  58. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  59. package/dist/matter/behaviors/BehaviorRegistry.js +139 -0
  60. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  61. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +2 -0
  62. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +1 -0
  63. package/dist/matter/behaviors/BehaviorRegistry.spec.js +307 -0
  64. package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +1 -0
  65. package/dist/matter/behaviors/ColorControlBehavior.d.ts +64 -0
  66. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  67. package/dist/matter/behaviors/ColorControlBehavior.js +160 -0
  68. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  69. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +2 -0
  70. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +1 -0
  71. package/dist/matter/behaviors/ColorControlBehavior.spec.js +29 -0
  72. package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +1 -0
  73. package/dist/matter/behaviors/DoorLockBehavior.d.ts +21 -0
  74. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  75. package/dist/matter/behaviors/DoorLockBehavior.js +49 -0
  76. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  77. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +2 -0
  78. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +1 -0
  79. package/dist/matter/behaviors/DoorLockBehavior.spec.js +108 -0
  80. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +1 -0
  81. package/dist/matter/behaviors/FanControlBehavior.d.ts +20 -0
  82. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  83. package/dist/matter/behaviors/FanControlBehavior.js +45 -0
  84. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  85. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +2 -0
  86. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +1 -0
  87. package/dist/matter/behaviors/FanControlBehavior.spec.js +23 -0
  88. package/dist/matter/behaviors/FanControlBehavior.spec.js.map +1 -0
  89. package/dist/matter/behaviors/IdentifyBehavior.d.ts +21 -0
  90. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  91. package/dist/matter/behaviors/IdentifyBehavior.js +27 -0
  92. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  93. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +2 -0
  94. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +1 -0
  95. package/dist/matter/behaviors/IdentifyBehavior.spec.js +64 -0
  96. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +1 -0
  97. package/dist/matter/behaviors/LevelControlBehavior.d.ts +34 -0
  98. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  99. package/dist/matter/behaviors/LevelControlBehavior.js +75 -0
  100. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  101. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +2 -0
  102. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +1 -0
  103. package/dist/matter/behaviors/LevelControlBehavior.spec.js +140 -0
  104. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +1 -0
  105. package/dist/matter/behaviors/OnOffBehavior.d.ts +28 -0
  106. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  107. package/dist/matter/behaviors/OnOffBehavior.js +63 -0
  108. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  109. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +2 -0
  110. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +1 -0
  111. package/dist/matter/behaviors/OnOffBehavior.spec.js +116 -0
  112. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +1 -0
  113. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +19 -0
  114. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  115. package/dist/matter/behaviors/RvcCleanModeBehavior.js +27 -0
  116. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  117. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +2 -0
  118. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +1 -0
  119. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +56 -0
  120. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +1 -0
  121. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +23 -0
  122. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  123. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +49 -0
  124. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  125. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +2 -0
  126. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +1 -0
  127. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +55 -0
  128. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +1 -0
  129. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +19 -0
  130. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  131. package/dist/matter/behaviors/RvcRunModeBehavior.js +27 -0
  132. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  133. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +2 -0
  134. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +1 -0
  135. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +56 -0
  136. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +1 -0
  137. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +22 -0
  138. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  139. package/dist/matter/behaviors/ServiceAreaBehavior.js +35 -0
  140. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  141. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +2 -0
  142. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +1 -0
  143. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +52 -0
  144. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +1 -0
  145. package/dist/matter/behaviors/ThermostatBehavior.d.ts +23 -0
  146. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  147. package/dist/matter/behaviors/ThermostatBehavior.js +79 -0
  148. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  149. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +2 -0
  150. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +1 -0
  151. package/dist/matter/behaviors/ThermostatBehavior.spec.js +23 -0
  152. package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +1 -0
  153. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +32 -0
  154. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  155. package/dist/matter/behaviors/WindowCoveringBehavior.js +106 -0
  156. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  157. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +2 -0
  158. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +1 -0
  159. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +27 -0
  160. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +1 -0
  161. package/dist/matter/behaviors/index.d.ts +20 -0
  162. package/dist/matter/behaviors/index.d.ts.map +1 -0
  163. package/dist/matter/behaviors/index.js +21 -0
  164. package/dist/matter/behaviors/index.js.map +1 -0
  165. package/dist/matter/{matterConfigValidator.d.ts → configValidator.d.ts} +1 -1
  166. package/dist/matter/configValidator.d.ts.map +1 -0
  167. package/dist/matter/{matterConfigValidator.js → configValidator.js} +1 -1
  168. package/dist/matter/configValidator.js.map +1 -0
  169. package/dist/matter/configValidator.spec.d.ts +2 -0
  170. package/dist/matter/configValidator.spec.d.ts.map +1 -0
  171. package/dist/matter/configValidator.spec.js +390 -0
  172. package/dist/matter/configValidator.spec.js.map +1 -0
  173. package/dist/matter/errorHandler.d.ts +33 -0
  174. package/dist/matter/errorHandler.d.ts.map +1 -0
  175. package/dist/matter/errorHandler.js +113 -0
  176. package/dist/matter/errorHandler.js.map +1 -0
  177. package/dist/matter/errorHandler.spec.d.ts +2 -0
  178. package/dist/matter/errorHandler.spec.d.ts.map +1 -0
  179. package/dist/matter/errorHandler.spec.js +159 -0
  180. package/dist/matter/errorHandler.spec.js.map +1 -0
  181. package/dist/matter/index.d.ts +7 -4
  182. package/dist/matter/index.d.ts.map +1 -1
  183. package/dist/matter/index.js +7 -4
  184. package/dist/matter/index.js.map +1 -1
  185. package/dist/matter/{matterLogFormatter.d.ts → logFormatter.d.ts} +1 -1
  186. package/dist/matter/logFormatter.d.ts.map +1 -0
  187. package/dist/matter/{matterLogFormatter.js → logFormatter.js} +33 -6
  188. package/dist/matter/logFormatter.js.map +1 -0
  189. package/dist/matter/logFormatter.spec.d.ts +2 -0
  190. package/dist/matter/logFormatter.spec.d.ts.map +1 -0
  191. package/dist/matter/logFormatter.spec.js +284 -0
  192. package/dist/matter/logFormatter.spec.js.map +1 -0
  193. package/dist/matter/server.d.ts +350 -0
  194. package/dist/matter/server.d.ts.map +1 -0
  195. package/dist/matter/{matterServer.js → server.js} +533 -352
  196. package/dist/matter/server.js.map +1 -0
  197. package/dist/matter/{matterServerHelpers.d.ts → serverHelpers.d.ts} +2 -2
  198. package/dist/matter/serverHelpers.d.ts.map +1 -0
  199. package/dist/matter/{matterServerHelpers.js → serverHelpers.js} +11 -8
  200. package/dist/matter/serverHelpers.js.map +1 -0
  201. package/dist/matter/serverHelpers.spec.d.ts +2 -0
  202. package/dist/matter/serverHelpers.spec.d.ts.map +1 -0
  203. package/dist/matter/serverHelpers.spec.js +521 -0
  204. package/dist/matter/serverHelpers.spec.js.map +1 -0
  205. package/dist/matter/{matterSharedTypes.d.ts → sharedTypes.d.ts} +4 -10
  206. package/dist/matter/sharedTypes.d.ts.map +1 -0
  207. package/dist/matter/{matterSharedTypes.js → sharedTypes.js} +4 -10
  208. package/dist/matter/sharedTypes.js.map +1 -0
  209. package/dist/matter/{matterStorage.d.ts → storage.d.ts} +9 -2
  210. package/dist/matter/storage.d.ts.map +1 -0
  211. package/dist/matter/{matterStorage.js → storage.js} +14 -5
  212. package/dist/matter/{matterStorage.js.map → storage.js.map} +1 -1
  213. package/dist/matter/storage.spec.d.ts +2 -0
  214. package/dist/matter/storage.spec.d.ts.map +1 -0
  215. package/dist/matter/storage.spec.js +570 -0
  216. package/dist/matter/storage.spec.js.map +1 -0
  217. package/dist/matter/typeHelpers.d.ts +45 -0
  218. package/dist/matter/typeHelpers.d.ts.map +1 -0
  219. package/dist/matter/typeHelpers.js +57 -0
  220. package/dist/matter/typeHelpers.js.map +1 -0
  221. package/dist/matter/typeHelpers.spec.d.ts +2 -0
  222. package/dist/matter/typeHelpers.spec.d.ts.map +1 -0
  223. package/dist/matter/typeHelpers.spec.js +127 -0
  224. package/dist/matter/typeHelpers.spec.js.map +1 -0
  225. package/dist/matter/{matterTypes.d.ts → types.d.ts} +2 -2
  226. package/dist/matter/types.d.ts.map +1 -0
  227. package/dist/matter/{matterTypes.js → types.js} +1 -2
  228. package/dist/matter/types.js.map +1 -0
  229. package/dist/platformAccessory.spec.d.ts +2 -0
  230. package/dist/platformAccessory.spec.d.ts.map +1 -0
  231. package/dist/platformAccessory.spec.js +126 -0
  232. package/dist/platformAccessory.spec.js.map +1 -0
  233. package/dist/pluginManager.spec.d.ts +2 -0
  234. package/dist/pluginManager.spec.d.ts.map +1 -0
  235. package/dist/pluginManager.spec.js +43 -0
  236. package/dist/pluginManager.spec.js.map +1 -0
  237. package/dist/server.d.ts +4 -13
  238. package/dist/server.d.ts.map +1 -1
  239. package/dist/server.js +45 -333
  240. package/dist/server.js.map +1 -1
  241. package/dist/server.spec.d.ts +2 -0
  242. package/dist/server.spec.d.ts.map +1 -0
  243. package/dist/server.spec.js +57 -0
  244. package/dist/server.spec.js.map +1 -0
  245. package/dist/user.spec.d.ts +2 -0
  246. package/dist/user.spec.d.ts.map +1 -0
  247. package/dist/user.spec.js +31 -0
  248. package/dist/user.spec.js.map +1 -0
  249. package/dist/util/mac.spec.d.ts +2 -0
  250. package/dist/util/mac.spec.d.ts.map +1 -0
  251. package/dist/util/mac.spec.js +36 -0
  252. package/dist/util/mac.spec.js.map +1 -0
  253. package/dist/version.spec.d.ts +2 -0
  254. package/dist/version.spec.d.ts.map +1 -0
  255. package/dist/version.spec.js +20 -0
  256. package/dist/version.spec.js.map +1 -0
  257. package/package.json +4 -4
  258. package/dist/matter/matterAccessoryCache.d.ts.map +0 -1
  259. package/dist/matter/matterAccessoryCache.js.map +0 -1
  260. package/dist/matter/matterBehaviors.d.ts +0 -194
  261. package/dist/matter/matterBehaviors.d.ts.map +0 -1
  262. package/dist/matter/matterBehaviors.js +0 -665
  263. package/dist/matter/matterBehaviors.js.map +0 -1
  264. package/dist/matter/matterConfigValidator.d.ts.map +0 -1
  265. package/dist/matter/matterConfigValidator.js.map +0 -1
  266. package/dist/matter/matterErrorHandler.d.ts +0 -106
  267. package/dist/matter/matterErrorHandler.d.ts.map +0 -1
  268. package/dist/matter/matterErrorHandler.js +0 -495
  269. package/dist/matter/matterErrorHandler.js.map +0 -1
  270. package/dist/matter/matterLogFormatter.d.ts.map +0 -1
  271. package/dist/matter/matterLogFormatter.js.map +0 -1
  272. package/dist/matter/matterNetworkMonitor.d.ts +0 -68
  273. package/dist/matter/matterNetworkMonitor.d.ts.map +0 -1
  274. package/dist/matter/matterNetworkMonitor.js +0 -249
  275. package/dist/matter/matterNetworkMonitor.js.map +0 -1
  276. package/dist/matter/matterServer.d.ts.map +0 -1
  277. package/dist/matter/matterServer.js.map +0 -1
  278. package/dist/matter/matterServerHelpers.d.ts.map +0 -1
  279. package/dist/matter/matterServerHelpers.js.map +0 -1
  280. package/dist/matter/matterSharedTypes.d.ts.map +0 -1
  281. package/dist/matter/matterSharedTypes.js.map +0 -1
  282. package/dist/matter/matterStorage.d.ts.map +0 -1
  283. package/dist/matter/matterTypes.d.ts.map +0 -1
  284. package/dist/matter/matterTypes.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logFormatter.spec.js","sourceRoot":"","sources":["../../src/matter/logFormatter.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,350 @@
1
+ /**
2
+ * Matter.js Server Implementation for Homebridge Plugin API
3
+ *
4
+ * This provides a Matter bridge that plugins can use to register
5
+ * Matter accessories via the Homebridge API.
6
+ */
7
+ import type { SerializedMatterAccessory } from './accessoryCache.js';
8
+ import { EventEmitter } from 'node:events';
9
+ import * as clusters from '@matter/main/clusters';
10
+ import { MatterServerConfig } from './sharedTypes.js';
11
+ import { deviceTypes, MatterAccessory, MatterServerEvents } from './types.js';
12
+ export { MatterServerConfig } from './sharedTypes.js';
13
+ /**
14
+ * Matter Server for Homebridge Plugin API
15
+ * Allows plugins to register Matter accessories explicitly
16
+ *
17
+ * Extends EventEmitter to provide commissioning lifecycle events
18
+ */
19
+ export declare class MatterServer extends EventEmitter {
20
+ on: <K extends keyof MatterServerEvents>(event: K, listener: MatterServerEvents[K]) => this;
21
+ emit: <K extends keyof MatterServerEvents>(event: K, ...args: Parameters<MatterServerEvents[K]>) => boolean;
22
+ removeListener: <K extends keyof MatterServerEvents>(event: K, listener: MatterServerEvents[K]) => this;
23
+ removeAllListeners: (event?: keyof MatterServerEvents) => this;
24
+ private readonly config;
25
+ private serverNode;
26
+ private aggregator;
27
+ private accessories;
28
+ private readonly behaviorRegistry;
29
+ private isRunning;
30
+ private readonly MAX_DEVICES;
31
+ private shutdownHandler;
32
+ private static readonly CLUSTER_BEHAVIOR_MAP;
33
+ private passcode;
34
+ private discriminator;
35
+ private readonly vendorId;
36
+ private readonly productId;
37
+ private commissioningInfo;
38
+ private serialNumber?;
39
+ private cleanupHandlers;
40
+ private storageManager;
41
+ private matterStoragePath?;
42
+ private accessoryCache;
43
+ private fabricMonitorInterval;
44
+ private fabricCheckTimeout;
45
+ private previousFabrics;
46
+ constructor(config: MatterServerConfig);
47
+ /**
48
+ * Validate and sanitize Matter server configuration
49
+ * Throws descriptive errors if configuration is invalid
50
+ */
51
+ private validateAndSanitizeConfig;
52
+ /**
53
+ * Generate a secure random passcode
54
+ * According to Matter spec, passcode must be:
55
+ * - 8 digits (00000001 to 99999998)
56
+ * - Not in the invalid list
57
+ * - Not sequential or repeating patterns
58
+ */
59
+ private generateSecurePasscode;
60
+ /**
61
+ * Validate a passcode according to Matter specifications
62
+ */
63
+ private isValidPasscode;
64
+ /**
65
+ * Generate a random discriminator
66
+ * According to Matter spec, discriminator must be:
67
+ * - 12 bits (0-4095)
68
+ * - Should be random for security
69
+ */
70
+ private generateRandomDiscriminator;
71
+ /**
72
+ * Create ServerNode with automatic recovery from corrupted storage
73
+ *
74
+ * Matter.js can fail to start if fabric data is corrupted (common after
75
+ * hard shutdowns or disk errors). This method implements automatic recovery by:
76
+ *
77
+ * 1. Attempting normal ServerNode creation
78
+ * 2. If it fails with storage errors, identifying and removing corrupted files
79
+ * 3. Retrying ServerNode creation with fresh storage
80
+ *
81
+ * This prevents the need for manual intervention while preserving data
82
+ * safety by only removing storage on confirmed corruption errors.
83
+ *
84
+ * @param nodeOptions - Matter.js ServerNode configuration
85
+ * @param sanitizedId - Filesystem-safe bridge identifier
86
+ * @returns Initialized ServerNode instance
87
+ * @throws Error if recovery fails or error is not storage-related
88
+ */
89
+ private createServerNodeWithRecovery;
90
+ /**
91
+ * Start the Matter server
92
+ */
93
+ start(): Promise<void>;
94
+ /**
95
+ * Run the server after devices have been added (for external accessory mode)
96
+ *
97
+ * This must be called after registerPlatformAccessories() when using externalAccessory mode.
98
+ * In bridge mode, the server starts automatically when accessories are registered.
99
+ *
100
+ * @throws {MatterDeviceError} If server node is not initialized or server is already running
101
+ * @example
102
+ * ```typescript
103
+ * await matterServer.start()
104
+ * await matterServer.registerPlatformAccessories('plugin', 'platform', accessories)
105
+ * await matterServer.runServer() // External accessory mode only
106
+ * ```
107
+ */
108
+ runServer(): Promise<void>;
109
+ /**
110
+ * Set up and validate storage
111
+ */
112
+ private setupStorage;
113
+ /**
114
+ * Load or generate commissioning credentials (passcode and discriminator)
115
+ * These must be persistent across restarts to maintain the same QR code
116
+ */
117
+ private loadOrGenerateCredentials;
118
+ /**
119
+ * Generate and display commissioning information
120
+ */
121
+ private generateCommissioningInfo;
122
+ /**
123
+ * Wait for the server to be ready
124
+ */
125
+ private waitForServerReady;
126
+ /**
127
+ * Start monitoring fabric changes to emit commissioning events
128
+ * Uses file watching instead of polling for better performance
129
+ */
130
+ private startFabricMonitoring;
131
+ /**
132
+ * Stop fabric monitoring and clean up watchers/timers
133
+ */
134
+ private stopFabricMonitoring;
135
+ /**
136
+ * Check for fabric changes and emit appropriate events
137
+ */
138
+ private checkFabricChanges;
139
+ /**
140
+ * Update commissioning info file when commissioning state changes
141
+ */
142
+ private updateCommissioningFile;
143
+ /**
144
+ * Register Matter platform accessories (Plugin API - matches HAP pattern)
145
+ *
146
+ * Registers Matter accessories from a dynamic platform plugin. Accessories are stored
147
+ * and automatically restored on server restart.
148
+ *
149
+ * @param pluginIdentifier - The plugin identifier (e.g., 'homebridge-example')
150
+ * @param platformName - The platform name from config.json
151
+ * @param accessories - Array of Matter accessories to register
152
+ * @throws {MatterDeviceError} If maximum device limit is reached or accessory is invalid
153
+ * @see {@link MatterAccessory} for accessory structure
154
+ */
155
+ registerPlatformAccessories(pluginIdentifier: string, platformName: string, accessories: MatterAccessory[]): Promise<void>;
156
+ /**
157
+ * Unregister Matter platform accessories (Plugin API - matches HAP pattern)
158
+ */
159
+ unregisterPlatformAccessories(pluginIdentifier: string, platformName: string, accessories: MatterAccessory[]): Promise<void>;
160
+ /**
161
+ * Update Matter platform accessories in the cache
162
+ * Similar to api.updatePlatformAccessories() for HAP accessories
163
+ *
164
+ * This updates the cached accessory information without unregistering and re-registering.
165
+ * Useful when device metadata changes (name, manufacturer, firmware version, etc.)
166
+ */
167
+ updatePlatformAccessories(accessories: MatterAccessory[]): Promise<void>;
168
+ /**
169
+ * Register a single Matter accessory (internal method)
170
+ */
171
+ private registerAccessory;
172
+ /**
173
+ * Restore cached state for an accessory
174
+ */
175
+ private restoreCachedState;
176
+ /**
177
+ * Detect cluster features for an accessory
178
+ * Returns an object containing detected features for various clusters
179
+ */
180
+ private detectClusterFeatures;
181
+ /**
182
+ * Build custom behaviors for an accessory based on handlers
183
+ */
184
+ private buildCustomBehaviors;
185
+ /**
186
+ * Create endpoint options for an accessory
187
+ */
188
+ private createEndpointOptions;
189
+ /**
190
+ * Register command handlers for an accessory
191
+ */
192
+ private registerAccessoryHandlers;
193
+ /**
194
+ * Create and register child endpoints (parts) for an accessory
195
+ */
196
+ private createAccessoryParts;
197
+ /**
198
+ * Finalize accessory registration (store, emit events, save cache)
199
+ */
200
+ private finalizeAccessoryRegistration;
201
+ /**
202
+ * Unregister a Matter accessory (Plugin API)
203
+ */
204
+ unregisterAccessory(uuid: string): Promise<void>;
205
+ /**
206
+ * Update a Matter accessory's state (Plugin API)
207
+ *
208
+ * This method can be called from anywhere, including from within handlers.
209
+ * State updates are automatically deferred to avoid transaction conflicts.
210
+ *
211
+ * @param uuid - The UUID of the accessory
212
+ * @param cluster - The cluster name
213
+ * @param attributes - The attributes to update
214
+ * @param partId - Optional: ID of the part to update (for composed devices)
215
+ */
216
+ updateAccessoryState(uuid: string, cluster: string, attributes: Record<string, unknown>, partId?: string): Promise<void>;
217
+ /**
218
+ * Get a Matter accessory's current state (Plugin API)
219
+ *
220
+ * Returns the current cluster attribute values that are exposed to Matter controllers.
221
+ * This is useful for:
222
+ * - Reading state after plugin restart (when local variables are lost)
223
+ * - Verifying current state before making changes
224
+ * - Multiple parts of code that need to read state
225
+ * - Debugging and logging
226
+ *
227
+ * @param uuid - The UUID of the accessory
228
+ * @param cluster - The cluster name (e.g., 'onOff', 'levelControl')
229
+ * @param partId - Optional: ID of the part to get state from (for composed devices)
230
+ * @returns Current cluster attribute values, or undefined if cluster not found
231
+ */
232
+ getAccessoryState(uuid: string, cluster: string, partId?: string): Record<string, unknown> | undefined;
233
+ /**
234
+ * Get all cached accessories (Internal - for restore process)
235
+ * @internal
236
+ */
237
+ getAllCachedAccessories(): SerializedMatterAccessory[];
238
+ /**
239
+ * Get all registered accessories (Plugin API)
240
+ */
241
+ getAccessories(): MatterAccessory[];
242
+ /**
243
+ * Get a specific accessory by UUID (Plugin API)
244
+ */
245
+ getAccessory(uuid: string): MatterAccessory | undefined;
246
+ /**
247
+ * Stop the Matter server
248
+ */
249
+ stop(): Promise<void>;
250
+ /**
251
+ * Cleanup resources
252
+ */
253
+ private cleanup;
254
+ /**
255
+ * Get fabric information for commissioned controllers
256
+ *
257
+ * Returns information about each paired controller (fabric) including:
258
+ * - fabricIndex: Unique identifier for the fabric
259
+ * - fabricId: 64-bit fabric identifier
260
+ * - nodeId: Node identifier within the fabric
261
+ * - rootVendorId: Vendor ID of the root node
262
+ * - label: Optional human-readable label
263
+ *
264
+ * @returns Array of fabric information objects, or empty array if no fabrics are commissioned
265
+ * @example
266
+ * ```typescript
267
+ * const fabrics = matterServer.getFabricInfo()
268
+ * console.log(`Commissioned to ${fabrics.length} controller(s)`)
269
+ * fabrics.forEach(fabric => {
270
+ * console.log(` Fabric ${fabric.fabricIndex}: ${fabric.label || 'Unnamed'}`)
271
+ * })
272
+ * ```
273
+ */
274
+ getFabricInfo(): Array<{
275
+ fabricIndex: number;
276
+ fabricId: string;
277
+ nodeId: string;
278
+ rootVendorId: number;
279
+ label?: string;
280
+ }>;
281
+ /**
282
+ * Check if the server is commissioned
283
+ */
284
+ isCommissioned(): boolean;
285
+ /**
286
+ * Get the number of commissioned fabrics
287
+ */
288
+ getCommissionedFabricCount(): number;
289
+ /**
290
+ * Get server status information
291
+ */
292
+ getServerInfo(): {
293
+ running: boolean;
294
+ port: number;
295
+ deviceCount: number;
296
+ commissioned: boolean;
297
+ fabricCount: number;
298
+ serialNumber?: string;
299
+ };
300
+ /**
301
+ * Get commissioning information
302
+ */
303
+ getCommissioningInfo(): {
304
+ qrCode?: string;
305
+ manualPairingCode?: string;
306
+ serialNumber?: string;
307
+ passcode?: number;
308
+ discriminator?: number;
309
+ commissioned: boolean;
310
+ };
311
+ /**
312
+ * Get storage statistics
313
+ */
314
+ getStorageStats(): Array<{
315
+ entries: number;
316
+ namespace: string;
317
+ path: string;
318
+ }> | null;
319
+ /**
320
+ * Check if server is running
321
+ */
322
+ isServerRunning(): boolean;
323
+ /**
324
+ * Get Matter device types available for plugin use
325
+ */
326
+ getDeviceTypes(): typeof deviceTypes;
327
+ /**
328
+ * Get Matter clusters available for plugin use
329
+ */
330
+ getClusters(): typeof clusters;
331
+ /**
332
+ * Remove a specific fabric (controller) from the bridge
333
+ * This decommissions a single controller while leaving others intact
334
+ *
335
+ * @param fabricIndex - The fabric index to remove
336
+ * @returns Promise that resolves when the fabric is removed
337
+ */
338
+ removeFabric(fabricIndex: number): Promise<void>;
339
+ /**
340
+ * Check if a specific fabric exists
341
+ */
342
+ hasFabric(fabricIndex: number): boolean;
343
+ /**
344
+ * Notify controllers that the parts list has changed
345
+ * This triggers controllers (like Home app) to re-read the device list
346
+ * and discover new or removed accessories without needing to re-pair
347
+ */
348
+ private notifyPartsListChanged;
349
+ }
350
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/matter/server.ts"],"names":[],"mappings":"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"}