matterbridge 3.5.0 → 3.5.1-dev-20260121-22e98b4

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 (328) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bin/mb_coap.js +1 -1
  3. package/bin/mb_mdns.js +1 -1
  4. package/dist/broadcastServer.d.ts +0 -115
  5. package/dist/broadcastServer.js +1 -119
  6. package/dist/broadcastServerTypes.d.ts +0 -43
  7. package/dist/broadcastServerTypes.js +0 -24
  8. package/dist/cli.d.ts +1 -26
  9. package/dist/cli.js +2 -102
  10. package/dist/cliEmitter.d.ts +0 -36
  11. package/dist/cliEmitter.js +0 -37
  12. package/dist/cliHistory.d.ts +0 -42
  13. package/dist/cliHistory.js +1 -39
  14. package/dist/clusters/export.d.ts +0 -1
  15. package/dist/clusters/export.js +0 -2
  16. package/dist/deviceManager.d.ts +0 -108
  17. package/dist/deviceManager.js +2 -114
  18. package/dist/devices/airConditioner.d.ts +0 -75
  19. package/dist/devices/airConditioner.js +0 -57
  20. package/dist/devices/batteryStorage.d.ts +0 -43
  21. package/dist/devices/batteryStorage.js +1 -48
  22. package/dist/devices/cooktop.d.ts +0 -55
  23. package/dist/devices/cooktop.js +0 -56
  24. package/dist/devices/dishwasher.d.ts +0 -55
  25. package/dist/devices/dishwasher.js +0 -57
  26. package/dist/devices/evse.d.ts +0 -57
  27. package/dist/devices/evse.js +10 -74
  28. package/dist/devices/export.d.ts +0 -1
  29. package/dist/devices/export.js +0 -5
  30. package/dist/devices/extractorHood.d.ts +0 -41
  31. package/dist/devices/extractorHood.js +0 -43
  32. package/dist/devices/heatPump.d.ts +0 -43
  33. package/dist/devices/heatPump.js +2 -50
  34. package/dist/devices/laundryDryer.d.ts +0 -58
  35. package/dist/devices/laundryDryer.js +3 -62
  36. package/dist/devices/laundryWasher.d.ts +0 -64
  37. package/dist/devices/laundryWasher.js +4 -70
  38. package/dist/devices/microwaveOven.d.ts +1 -77
  39. package/dist/devices/microwaveOven.js +5 -88
  40. package/dist/devices/oven.d.ts +0 -82
  41. package/dist/devices/oven.js +0 -85
  42. package/dist/devices/refrigerator.d.ts +0 -100
  43. package/dist/devices/refrigerator.js +0 -102
  44. package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
  45. package/dist/devices/roboticVacuumCleaner.js +9 -100
  46. package/dist/devices/solarPower.d.ts +0 -36
  47. package/dist/devices/solarPower.js +0 -38
  48. package/dist/devices/speaker.d.ts +0 -79
  49. package/dist/devices/speaker.js +0 -84
  50. package/dist/devices/temperatureControl.d.ts +0 -21
  51. package/dist/devices/temperatureControl.js +3 -24
  52. package/dist/devices/waterHeater.d.ts +0 -74
  53. package/dist/devices/waterHeater.js +2 -82
  54. package/dist/frontend.d.ts +0 -187
  55. package/dist/frontend.js +39 -505
  56. package/dist/frontendTypes.d.ts +0 -57
  57. package/dist/frontendTypes.js +0 -45
  58. package/dist/helpers.d.ts +0 -43
  59. package/dist/helpers.js +1 -54
  60. package/dist/index.d.ts +0 -23
  61. package/dist/index.js +0 -25
  62. package/dist/jestutils/export.d.ts +0 -1
  63. package/dist/jestutils/export.js +0 -1
  64. package/dist/jestutils/jestHelpers.d.ts +0 -255
  65. package/dist/jestutils/jestHelpers.js +14 -372
  66. package/dist/logger/export.d.ts +0 -1
  67. package/dist/logger/export.js +0 -1
  68. package/dist/matter/behaviors.d.ts +0 -1
  69. package/dist/matter/behaviors.js +0 -2
  70. package/dist/matter/clusters.d.ts +0 -1
  71. package/dist/matter/clusters.js +0 -2
  72. package/dist/matter/devices.d.ts +0 -1
  73. package/dist/matter/devices.js +0 -2
  74. package/dist/matter/endpoints.d.ts +0 -1
  75. package/dist/matter/endpoints.js +0 -2
  76. package/dist/matter/export.d.ts +0 -1
  77. package/dist/matter/export.js +0 -2
  78. package/dist/matter/types.d.ts +0 -1
  79. package/dist/matter/types.js +0 -2
  80. package/dist/matterNode.d.ts +0 -258
  81. package/dist/matterNode.js +9 -364
  82. package/dist/matterbridge.d.ts +0 -362
  83. package/dist/matterbridge.js +60 -860
  84. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -36
  85. package/dist/matterbridgeAccessoryPlatform.js +0 -38
  86. package/dist/matterbridgeBehaviors.d.ts +0 -24
  87. package/dist/matterbridgeBehaviors.js +5 -68
  88. package/dist/matterbridgeDeviceTypes.d.ts +0 -649
  89. package/dist/matterbridgeDeviceTypes.js +6 -673
  90. package/dist/matterbridgeDynamicPlatform.d.ts +0 -36
  91. package/dist/matterbridgeDynamicPlatform.js +0 -38
  92. package/dist/matterbridgeEndpoint.d.ts +2 -1332
  93. package/dist/matterbridgeEndpoint.js +94 -1459
  94. package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
  95. package/dist/matterbridgeEndpointHelpers.js +21 -486
  96. package/dist/matterbridgeEndpointTypes.d.ts +0 -70
  97. package/dist/matterbridgeEndpointTypes.js +0 -25
  98. package/dist/matterbridgePlatform.d.ts +0 -425
  99. package/dist/matterbridgePlatform.js +2 -453
  100. package/dist/matterbridgeTypes.d.ts +0 -46
  101. package/dist/matterbridgeTypes.js +0 -26
  102. package/dist/mb_coap.d.ts +1 -0
  103. package/dist/{dgram/mb_coap.js → mb_coap.js} +3 -41
  104. package/dist/mb_mdns.d.ts +1 -0
  105. package/dist/{dgram/mb_mdns.js → mb_mdns.js} +37 -81
  106. package/dist/pluginManager.d.ts +0 -305
  107. package/dist/pluginManager.js +8 -345
  108. package/dist/shelly.d.ts +0 -157
  109. package/dist/shelly.js +7 -178
  110. package/dist/spawn.d.ts +1 -0
  111. package/dist/{utils/spawn.js → spawn.js} +3 -73
  112. package/dist/storage/export.d.ts +0 -1
  113. package/dist/storage/export.js +0 -1
  114. package/dist/update.d.ts +0 -75
  115. package/dist/update.js +7 -100
  116. package/dist/utils/export.d.ts +1 -13
  117. package/dist/utils/export.js +1 -13
  118. package/dist/workerGlobalPrefix.d.ts +0 -24
  119. package/dist/workerGlobalPrefix.js +6 -40
  120. package/dist/workerTypes.d.ts +0 -25
  121. package/dist/workerTypes.js +0 -24
  122. package/dist/workers.d.ts +0 -61
  123. package/dist/workers.js +4 -68
  124. package/npm-shrinkwrap.json +35 -5
  125. package/package.json +5 -5
  126. package/dist/broadcastServer.d.ts.map +0 -1
  127. package/dist/broadcastServer.js.map +0 -1
  128. package/dist/broadcastServerTypes.d.ts.map +0 -1
  129. package/dist/broadcastServerTypes.js.map +0 -1
  130. package/dist/cli.d.ts.map +0 -1
  131. package/dist/cli.js.map +0 -1
  132. package/dist/cliEmitter.d.ts.map +0 -1
  133. package/dist/cliEmitter.js.map +0 -1
  134. package/dist/cliHistory.d.ts.map +0 -1
  135. package/dist/cliHistory.js.map +0 -1
  136. package/dist/clusters/export.d.ts.map +0 -1
  137. package/dist/clusters/export.js.map +0 -1
  138. package/dist/deviceManager.d.ts.map +0 -1
  139. package/dist/deviceManager.js.map +0 -1
  140. package/dist/devices/airConditioner.d.ts.map +0 -1
  141. package/dist/devices/airConditioner.js.map +0 -1
  142. package/dist/devices/batteryStorage.d.ts.map +0 -1
  143. package/dist/devices/batteryStorage.js.map +0 -1
  144. package/dist/devices/cooktop.d.ts.map +0 -1
  145. package/dist/devices/cooktop.js.map +0 -1
  146. package/dist/devices/dishwasher.d.ts.map +0 -1
  147. package/dist/devices/dishwasher.js.map +0 -1
  148. package/dist/devices/evse.d.ts.map +0 -1
  149. package/dist/devices/evse.js.map +0 -1
  150. package/dist/devices/export.d.ts.map +0 -1
  151. package/dist/devices/export.js.map +0 -1
  152. package/dist/devices/extractorHood.d.ts.map +0 -1
  153. package/dist/devices/extractorHood.js.map +0 -1
  154. package/dist/devices/heatPump.d.ts.map +0 -1
  155. package/dist/devices/heatPump.js.map +0 -1
  156. package/dist/devices/laundryDryer.d.ts.map +0 -1
  157. package/dist/devices/laundryDryer.js.map +0 -1
  158. package/dist/devices/laundryWasher.d.ts.map +0 -1
  159. package/dist/devices/laundryWasher.js.map +0 -1
  160. package/dist/devices/microwaveOven.d.ts.map +0 -1
  161. package/dist/devices/microwaveOven.js.map +0 -1
  162. package/dist/devices/oven.d.ts.map +0 -1
  163. package/dist/devices/oven.js.map +0 -1
  164. package/dist/devices/refrigerator.d.ts.map +0 -1
  165. package/dist/devices/refrigerator.js.map +0 -1
  166. package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
  167. package/dist/devices/roboticVacuumCleaner.js.map +0 -1
  168. package/dist/devices/solarPower.d.ts.map +0 -1
  169. package/dist/devices/solarPower.js.map +0 -1
  170. package/dist/devices/speaker.d.ts.map +0 -1
  171. package/dist/devices/speaker.js.map +0 -1
  172. package/dist/devices/temperatureControl.d.ts.map +0 -1
  173. package/dist/devices/temperatureControl.js.map +0 -1
  174. package/dist/devices/waterHeater.d.ts.map +0 -1
  175. package/dist/devices/waterHeater.js.map +0 -1
  176. package/dist/dgram/coap.d.ts +0 -205
  177. package/dist/dgram/coap.d.ts.map +0 -1
  178. package/dist/dgram/coap.js +0 -365
  179. package/dist/dgram/coap.js.map +0 -1
  180. package/dist/dgram/dgram.d.ts +0 -144
  181. package/dist/dgram/dgram.d.ts.map +0 -1
  182. package/dist/dgram/dgram.js +0 -363
  183. package/dist/dgram/dgram.js.map +0 -1
  184. package/dist/dgram/mb_coap.d.ts +0 -24
  185. package/dist/dgram/mb_coap.d.ts.map +0 -1
  186. package/dist/dgram/mb_coap.js.map +0 -1
  187. package/dist/dgram/mb_mdns.d.ts +0 -24
  188. package/dist/dgram/mb_mdns.d.ts.map +0 -1
  189. package/dist/dgram/mb_mdns.js.map +0 -1
  190. package/dist/dgram/mdns.d.ts +0 -371
  191. package/dist/dgram/mdns.d.ts.map +0 -1
  192. package/dist/dgram/mdns.js +0 -934
  193. package/dist/dgram/mdns.js.map +0 -1
  194. package/dist/dgram/multicast.d.ts +0 -67
  195. package/dist/dgram/multicast.d.ts.map +0 -1
  196. package/dist/dgram/multicast.js +0 -179
  197. package/dist/dgram/multicast.js.map +0 -1
  198. package/dist/dgram/unicast.d.ts +0 -64
  199. package/dist/dgram/unicast.d.ts.map +0 -1
  200. package/dist/dgram/unicast.js +0 -100
  201. package/dist/dgram/unicast.js.map +0 -1
  202. package/dist/frontend.d.ts.map +0 -1
  203. package/dist/frontend.js.map +0 -1
  204. package/dist/frontendTypes.d.ts.map +0 -1
  205. package/dist/frontendTypes.js.map +0 -1
  206. package/dist/helpers.d.ts.map +0 -1
  207. package/dist/helpers.js.map +0 -1
  208. package/dist/index.d.ts.map +0 -1
  209. package/dist/index.js.map +0 -1
  210. package/dist/jestutils/export.d.ts.map +0 -1
  211. package/dist/jestutils/export.js.map +0 -1
  212. package/dist/jestutils/jestHelpers.d.ts.map +0 -1
  213. package/dist/jestutils/jestHelpers.js.map +0 -1
  214. package/dist/logger/export.d.ts.map +0 -1
  215. package/dist/logger/export.js.map +0 -1
  216. package/dist/matter/behaviors.d.ts.map +0 -1
  217. package/dist/matter/behaviors.js.map +0 -1
  218. package/dist/matter/clusters.d.ts.map +0 -1
  219. package/dist/matter/clusters.js.map +0 -1
  220. package/dist/matter/devices.d.ts.map +0 -1
  221. package/dist/matter/devices.js.map +0 -1
  222. package/dist/matter/endpoints.d.ts.map +0 -1
  223. package/dist/matter/endpoints.js.map +0 -1
  224. package/dist/matter/export.d.ts.map +0 -1
  225. package/dist/matter/export.js.map +0 -1
  226. package/dist/matter/types.d.ts.map +0 -1
  227. package/dist/matter/types.js.map +0 -1
  228. package/dist/matterNode.d.ts.map +0 -1
  229. package/dist/matterNode.js.map +0 -1
  230. package/dist/matterbridge.d.ts.map +0 -1
  231. package/dist/matterbridge.js.map +0 -1
  232. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  233. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  234. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  235. package/dist/matterbridgeBehaviors.js.map +0 -1
  236. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  237. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  238. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  239. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  240. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  241. package/dist/matterbridgeEndpoint.js.map +0 -1
  242. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  243. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  244. package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
  245. package/dist/matterbridgeEndpointTypes.js.map +0 -1
  246. package/dist/matterbridgePlatform.d.ts.map +0 -1
  247. package/dist/matterbridgePlatform.js.map +0 -1
  248. package/dist/matterbridgeTypes.d.ts.map +0 -1
  249. package/dist/matterbridgeTypes.js.map +0 -1
  250. package/dist/pluginManager.d.ts.map +0 -1
  251. package/dist/pluginManager.js.map +0 -1
  252. package/dist/shelly.d.ts.map +0 -1
  253. package/dist/shelly.js.map +0 -1
  254. package/dist/storage/export.d.ts.map +0 -1
  255. package/dist/storage/export.js.map +0 -1
  256. package/dist/update.d.ts.map +0 -1
  257. package/dist/update.js.map +0 -1
  258. package/dist/utils/colorUtils.d.ts +0 -101
  259. package/dist/utils/colorUtils.d.ts.map +0 -1
  260. package/dist/utils/colorUtils.js +0 -282
  261. package/dist/utils/colorUtils.js.map +0 -1
  262. package/dist/utils/commandLine.d.ts +0 -66
  263. package/dist/utils/commandLine.d.ts.map +0 -1
  264. package/dist/utils/commandLine.js +0 -123
  265. package/dist/utils/commandLine.js.map +0 -1
  266. package/dist/utils/copyDirectory.d.ts +0 -35
  267. package/dist/utils/copyDirectory.d.ts.map +0 -1
  268. package/dist/utils/copyDirectory.js +0 -76
  269. package/dist/utils/copyDirectory.js.map +0 -1
  270. package/dist/utils/createDirectory.d.ts +0 -34
  271. package/dist/utils/createDirectory.d.ts.map +0 -1
  272. package/dist/utils/createDirectory.js +0 -54
  273. package/dist/utils/createDirectory.js.map +0 -1
  274. package/dist/utils/createZip.d.ts +0 -39
  275. package/dist/utils/createZip.d.ts.map +0 -1
  276. package/dist/utils/createZip.js +0 -114
  277. package/dist/utils/createZip.js.map +0 -1
  278. package/dist/utils/deepCopy.d.ts +0 -32
  279. package/dist/utils/deepCopy.d.ts.map +0 -1
  280. package/dist/utils/deepCopy.js +0 -79
  281. package/dist/utils/deepCopy.js.map +0 -1
  282. package/dist/utils/deepEqual.d.ts +0 -54
  283. package/dist/utils/deepEqual.d.ts.map +0 -1
  284. package/dist/utils/deepEqual.js +0 -129
  285. package/dist/utils/deepEqual.js.map +0 -1
  286. package/dist/utils/error.d.ts +0 -45
  287. package/dist/utils/error.d.ts.map +0 -1
  288. package/dist/utils/error.js +0 -54
  289. package/dist/utils/error.js.map +0 -1
  290. package/dist/utils/export.d.ts.map +0 -1
  291. package/dist/utils/export.js.map +0 -1
  292. package/dist/utils/format.d.ts +0 -53
  293. package/dist/utils/format.d.ts.map +0 -1
  294. package/dist/utils/format.js +0 -78
  295. package/dist/utils/format.js.map +0 -1
  296. package/dist/utils/hex.d.ts +0 -89
  297. package/dist/utils/hex.d.ts.map +0 -1
  298. package/dist/utils/hex.js +0 -242
  299. package/dist/utils/hex.js.map +0 -1
  300. package/dist/utils/inspector.d.ts +0 -87
  301. package/dist/utils/inspector.d.ts.map +0 -1
  302. package/dist/utils/inspector.js +0 -268
  303. package/dist/utils/inspector.js.map +0 -1
  304. package/dist/utils/isValid.d.ts +0 -103
  305. package/dist/utils/isValid.d.ts.map +0 -1
  306. package/dist/utils/isValid.js +0 -162
  307. package/dist/utils/isValid.js.map +0 -1
  308. package/dist/utils/network.d.ts +0 -141
  309. package/dist/utils/network.d.ts.map +0 -1
  310. package/dist/utils/network.js +0 -314
  311. package/dist/utils/network.js.map +0 -1
  312. package/dist/utils/spawn.d.ts +0 -33
  313. package/dist/utils/spawn.d.ts.map +0 -1
  314. package/dist/utils/spawn.js.map +0 -1
  315. package/dist/utils/tracker.d.ts +0 -108
  316. package/dist/utils/tracker.d.ts.map +0 -1
  317. package/dist/utils/tracker.js +0 -264
  318. package/dist/utils/tracker.js.map +0 -1
  319. package/dist/utils/wait.d.ts +0 -54
  320. package/dist/utils/wait.d.ts.map +0 -1
  321. package/dist/utils/wait.js +0 -125
  322. package/dist/utils/wait.js.map +0 -1
  323. package/dist/workerGlobalPrefix.d.ts.map +0 -1
  324. package/dist/workerGlobalPrefix.js.map +0 -1
  325. package/dist/workerTypes.d.ts.map +0 -1
  326. package/dist/workerTypes.js.map +0 -1
  327. package/dist/workers.d.ts.map +0 -1
  328. package/dist/workers.js.map +0 -1
@@ -1,26 +1,3 @@
1
- /**
2
- * This file contains the class Matterbridge.
3
- *
4
- * @file matterbridge.ts
5
- * @author Luca Liguori
6
- * @created 2023-12-29
7
- * @version 1.6.2
8
- * @license Apache-2.0
9
- *
10
- * Copyright 2023, 2024, 2025 Luca Liguori.
11
- *
12
- * Licensed under the Apache License, Version 2.0 (the "License");
13
- * you may not use this file except in compliance with the License.
14
- * You may obtain a copy of the License at
15
- *
16
- * http://www.apache.org/licenses/LICENSE-2.0
17
- *
18
- * Unless required by applicable law or agreed to in writing, software
19
- * distributed under the License is distributed on an "AS IS" BASIS,
20
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- * See the License for the specific language governing permissions and
22
- * limitations under the License.
23
- */
24
1
  import EventEmitter from 'node:events';
25
2
  import { AnsiLogger, LogLevel } from 'node-ansi-logger';
26
3
  import { NodeStorageManager, NodeStorage } from 'node-persist-manager';
@@ -35,9 +12,6 @@ import { PluginManager } from './pluginManager.js';
35
12
  import { DeviceManager } from './deviceManager.js';
36
13
  import { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
37
14
  import { Frontend } from './frontend.js';
38
- /**
39
- * Represents the Matterbridge events.
40
- */
41
15
  interface MatterbridgeEvents {
42
16
  shutdown: [];
43
17
  restart: [];
@@ -57,66 +31,40 @@ interface MatterbridgeEvents {
57
31
  takeheapsnapshot: [];
58
32
  triggergarbagecollection: [];
59
33
  }
60
- /**
61
- * Represents the Matterbridge application.
62
- */
63
34
  export declare class Matterbridge extends EventEmitter<MatterbridgeEvents> {
64
- /** Matterbridge system information */
65
35
  systemInformation: SystemInformation;
66
- /** It indicates the home directory of the Matterbridge application. The home directory is the base directory where Matterbridge creates the matterbridge directories (os.homedir() if not overridden). */
67
36
  homeDirectory: string;
68
- /** It indicates the root directory of the Matterbridge application. The root directory is the directory where Matterbridge is executed. */
69
37
  rootDirectory: string;
70
- /** It indicates where the directory .matterbridge is located. */
71
38
  matterbridgeDirectory: string;
72
- /** It indicates where the directory Matterbridge is located. */
73
39
  matterbridgePluginDirectory: string;
74
- /** It indicates where the directory .mattercert is located. */
75
40
  matterbridgeCertDirectory: string;
76
- /** It indicates the global modules directory for npm. */
77
41
  globalModulesDirectory: string;
78
42
  matterbridgeVersion: string;
79
43
  matterbridgeLatestVersion: string;
80
44
  matterbridgeDevVersion: string;
81
45
  frontendVersion: string;
82
- /** It indicates the mode of the Matterbridge instance. It can be 'bridge', 'childbridge', 'controller' or ''. */
83
46
  bridgeMode: 'bridge' | 'childbridge' | 'controller' | '';
84
- /** It indicates the restart mode of the Matterbridge instance. It can be 'service', 'docker' or ''. */
85
47
  restartMode: 'service' | 'docker' | '';
86
- /** It indicates whether virtual mode is enabled and its type. The virtual mode control the creation of "Update matterbridge" and "Restart matterbridge" endpoints. */
87
48
  virtualMode: 'disabled' | 'outlet' | 'light' | 'switch' | 'mounted_switch';
88
- /** It indicates the Matterbridge profile in use. */
89
49
  readonly profile: string | undefined;
90
- /** Matterbridge logger */
91
50
  readonly log: AnsiLogger;
92
- /** Matterbridge logger level */
93
51
  logLevel: LogLevel;
94
- /** Whether to log to a file */
95
52
  fileLogger: boolean;
96
- /** Matter logger */
97
53
  readonly matterLog: AnsiLogger;
98
- /** Matter logger level */
99
54
  matterLogLevel: LogLevel;
100
- /** Whether to log Matter to a file */
101
55
  matterFileLogger: boolean;
102
56
  readonly readOnly: boolean;
103
57
  readonly shellyBoard: boolean;
104
58
  shellySysUpdate: boolean;
105
59
  shellyMainUpdate: boolean;
106
- /** It indicates whether a restart is required. It can be unset in childbridge mode by restarting the plugin that triggered the restart. */
107
60
  restartRequired: boolean;
108
- /** It indicates whether a fixed restart is required. It cannot be unset once set. */
109
61
  fixedRestartRequired: boolean;
110
- /** It indicates whether an update is available. */
111
62
  updateRequired: boolean;
112
63
  readonly plugins: PluginManager;
113
64
  readonly devices: DeviceManager;
114
65
  readonly frontend: Frontend;
115
- /** Matterbridge node storage manager created in the directory 'storage' in matterbridgeDirectory */
116
66
  nodeStorage: NodeStorageManager | undefined;
117
- /** Matterbridge node context created with name 'matterbridge' */
118
67
  nodeContext: NodeStorage | undefined;
119
- /** The main instance of the Matterbridge class (singleton) */
120
68
  protected static instance: Matterbridge | undefined;
121
69
  shutdown: boolean;
122
70
  private readonly failCountLimit;
@@ -132,32 +80,19 @@ export declare class Matterbridge extends EventEmitter<MatterbridgeEvents> {
132
80
  private sigtermHandler;
133
81
  private exceptionHandler;
134
82
  private rejectionHandler;
135
- /** Matter environment default */
136
83
  private readonly environment;
137
- /** Matter storage service from environment default */
138
84
  matterStorageService: StorageService | undefined;
139
- /** Matter storage manager created with name 'Matterbridge' */
140
85
  matterStorageManager: StorageManager | undefined;
141
- /** Matter matterbridge storage context created in the storage manager with name 'persist' */
142
86
  matterbridgeContext: StorageContext | undefined;
143
87
  controllerContext: StorageContext | undefined;
144
- /** Matter mdns interface e.g. 'eth0' or 'wlan0' or 'Wi-Fi' */
145
88
  mdnsInterface: string | undefined;
146
- /** Matter listeningAddressIpv4 address */
147
89
  ipv4Address: string | undefined;
148
- /** Matter listeningAddressIpv6 address */
149
90
  ipv6Address: string | undefined;
150
- /** Matter commissioning port */
151
91
  port: number | undefined;
152
- /** Matter commissioning passcode */
153
92
  passcode: number | undefined;
154
- /** Matter commissioning discriminator */
155
93
  discriminator: number | undefined;
156
- /** Matter device certification */
157
94
  certification: DeviceCertification.Configuration | undefined;
158
- /** Matter server node in bridge mode */
159
95
  serverNode: ServerNode<ServerNode.RootEndpoint> | undefined;
160
- /** Matter aggregator node in bridge mode */
161
96
  aggregatorNode: Endpoint<AggregatorEndpoint> | undefined;
162
97
  aggregatorVendorId: VendorId;
163
98
  aggregatorVendorName: string;
@@ -166,349 +101,52 @@ export declare class Matterbridge extends EventEmitter<MatterbridgeEvents> {
166
101
  aggregatorDeviceType: DeviceTypeId;
167
102
  aggregatorSerialNumber: string | undefined;
168
103
  aggregatorUniqueId: string | undefined;
169
- /** Advertising nodes map: time advertising started keyed by storeId */
170
104
  advertisingNodes: Map<string, number>;
171
- /** Broadcast server */
172
105
  private readonly server;
173
106
  private readonly verbose;
174
- /** We load asyncronously so is private */
175
107
  private constructor();
176
108
  destroy(): void;
177
109
  private msgHandler;
178
- /**
179
- * Loads an instance of the Matterbridge class.
180
- * If an instance already exists, return that instance.
181
- *
182
- * @param {boolean} initialize - Whether to initialize the Matterbridge instance after loading. Defaults to false.
183
- * @returns {Matterbridge} A promise that resolves to the Matterbridge instance.
184
- */
185
110
  static loadInstance(initialize?: boolean): Promise<Matterbridge>;
186
- /**
187
- * Initializes the Matterbridge application.
188
- *
189
- * @remarks
190
- * This method performs the necessary setup and initialization steps for the Matterbridge application.
191
- * It displays the help information if the 'help' parameter is provided, sets up the logger, checks the
192
- * node version, registers signal handlers, initializes storage, and parses the command line.
193
- *
194
- * @returns {Promise<void>} A Promise that resolves when the initialization is complete.
195
- */
196
111
  private initialize;
197
- /**
198
- * Parses the command line arguments and performs the corresponding actions.
199
- *
200
- * @private
201
- * @returns {Promise<void>} A promise that resolves when the command line arguments have been processed, or the process exits.
202
- */
203
112
  private parseCommandLine;
204
- /**
205
- * Asynchronously loads and starts the registered plugins.
206
- *
207
- * This method is responsible for initializing and starting all enabled plugins.
208
- * It ensures that each plugin is properly loaded and started before the bridge starts.
209
- *
210
- * @param {boolean} [wait] - If true, the method will wait for all plugins to be fully loaded and started before resolving. Defaults to false.
211
- * @param {boolean} [start] - If true, the method will start the plugins after loading them. Defaults to true.
212
- * @returns {Promise<void>} A promise that resolves when all plugins have been loaded and started.
213
- */
214
113
  private startPlugins;
215
- /**
216
- * Registers the process handlers for uncaughtException, unhandledRejection, SIGINT and SIGTERM.
217
- * - When an uncaught exception occurs, the exceptionHandler logs the error message and stack trace.
218
- * - When an unhandled promise rejection occurs, the rejectionHandler logs the reason and stack trace.
219
- * - When either of SIGINT and SIGTERM signals are received, the cleanup method is called with an appropriate message.
220
- */
221
114
  private registerProcessHandlers;
222
- /**
223
- * Deregisters the process uncaughtException, unhandledRejection, SIGINT and SIGTERM signal handlers.
224
- */
225
115
  private deregisterProcessHandlers;
226
- /**
227
- * Logs the node and system information.
228
- *
229
- * @remarks
230
- * This method retrieves and logs various details about the host system, including:
231
- * - IP address information (IPv4, IPv6, MAC address)
232
- * - Node.js version
233
- * - Hostname and user information
234
- * - Operating system details (type, release, platform, architecture)
235
- * - Memory usage statistics
236
- * - Uptime information for both the system and the process
237
- */
238
116
  private logNodeAndSystemInfo;
239
- /**
240
- * Set the logger logLevel for the Matterbridge classes and call onChangeLoggerLevel() for each plugin.
241
- *
242
- * @param {LogLevel} logLevel The logger logLevel to set.
243
- * @returns {Promise<LogLevel>} A promise that resolves when the logLevel has been set.
244
- */
245
117
  setLogLevel(logLevel: LogLevel): Promise<LogLevel>;
246
- /**
247
- * Get the current logger logLevel.
248
- *
249
- * @returns {LogLevel} The current logger logLevel.
250
- */
251
118
  getLogLevel(): MaybePromise<LogLevel>;
252
- /**
253
- * Creates a MatterLogger function to show the matter.js log messages in AnsiLogger (for the frontend).
254
- * It also logs to file (matter.log) if fileLogger is true.
255
- *
256
- * @param {boolean} fileLogger - Whether to log to file or not.
257
- * @returns {Function} The MatterLogger function. \x1b[35m for violet \x1b[34m is blue
258
- */
259
119
  private createDestinationMatterLogger;
260
- /**
261
- * Restarts the process by exiting the current instance and loading a new instance (/api/restart).
262
- *
263
- * @returns {Promise<void>} A promise that resolves when the restart is completed.
264
- */
265
120
  restartProcess(): Promise<void>;
266
- /**
267
- * Shut down the process (/api/shutdown).
268
- *
269
- * @returns {Promise<void>} A promise that resolves when the shutdown is completed.
270
- */
271
121
  shutdownProcess(): Promise<void>;
272
- /**
273
- * Update matterbridge and shut down the process (virtual device 'Update Matterbridge').
274
- *
275
- * @returns {Promise<void>} A promise that resolves when the update is completed.
276
- */
277
122
  updateProcess(): Promise<void>;
278
- /**
279
- * Unregister all devices and shut down the process (/api/unregister).
280
- *
281
- * @param {number} [timeout] - The timeout duration to wait for the message exchange to complete in milliseconds. Default is 1000.
282
- *
283
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
284
- */
285
123
  unregisterAndShutdownProcess(timeout?: number): Promise<void>;
286
- /**
287
- * Reset commissioning and shut down the process (/api/reset).
288
- *
289
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
290
- */
291
124
  shutdownProcessAndReset(): Promise<void>;
292
- /**
293
- * Factory reset and shut down the process (/api/factory-reset).
294
- *
295
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
296
- */
297
125
  shutdownProcessAndFactoryReset(): Promise<void>;
298
- /**
299
- * Cleans up the Matterbridge instance.
300
- *
301
- * @param {string} message - The cleanup message.
302
- * @param {boolean} [restart] - Indicates whether to restart the instance after cleanup. Default is `false`.
303
- * @param {number} [pause] - The pause in ms to wait for the message exchange to complete in milliseconds. Default is 1000.
304
- *
305
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
306
- */
307
126
  private cleanup;
308
- /**
309
- * Starts the Matterbridge in bridge mode.
310
- *
311
- * @private
312
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
313
- */
314
127
  private startBridge;
315
- /**
316
- * Starts the Matterbridge in childbridge mode.
317
- *
318
- * @param {number} [delay] - The delay before starting the childbridge. Default is 1000 milliseconds.
319
- *
320
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
321
- */
322
128
  private startChildbridge;
323
- /**
324
- * Starts the Matterbridge controller.
325
- *
326
- * @private
327
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
328
- */
329
129
  private startController;
330
- /** */
331
- /** Matter.js methods */
332
- /** */
333
- /**
334
- * Starts the matter storage with name Matterbridge, create the matterbridge context and performs a backup.
335
- *
336
- * @returns {Promise<void>} - A promise that resolves when the storage is started.
337
- */
338
130
  private startMatterStorage;
339
- /**
340
- * Makes a backup copy of the specified matter storage directory.
341
- *
342
- * @param {string} storageName - The name of the storage directory to be backed up.
343
- * @param {string} backupName - The name of the backup directory to be created.
344
- * @private
345
- * @returns {Promise<void>} A promise that resolves when the has been done.
346
- */
347
131
  private backupMatterStorage;
348
- /**
349
- * Stops the matter storage.
350
- *
351
- * @returns {Promise<void>} A promise that resolves when the storage is stopped.
352
- */
353
132
  private stopMatterStorage;
354
- /**
355
- * Creates a server node storage context.
356
- *
357
- * @param {string} storeId - The storeId.
358
- * @param {string} deviceName - The name of the device.
359
- * @param {DeviceTypeId} deviceType - The device type of the device.
360
- * @param {number} vendorId - The vendor ID.
361
- * @param {string} vendorName - The vendor name.
362
- * @param {number} productId - The product ID.
363
- * @param {string} productName - The product name.
364
- * @param {string} [serialNumber] - The serial number of the device (optional).
365
- * @param {string} [uniqueId] - The unique ID of the device (optional).
366
- * @returns {Promise<StorageContext>} The storage context for the commissioning server.
367
- */
368
133
  private createServerNodeContext;
369
- /**
370
- * Creates a server node.
371
- *
372
- * @param {StorageContext} storageContext - The storage context for the server node.
373
- * @param {number} [port] - The port number for the server node. Defaults to 5540.
374
- * @param {number} [passcode] - The passcode for the server node. Defaults to 20242025.
375
- * @param {number} [discriminator] - The discriminator for the server node. Defaults to 3850.
376
- * @returns {Promise<ServerNode<ServerNode.RootEndpoint>>} A promise that resolves to the created server node.
377
- */
378
134
  private createServerNode;
379
- /**
380
- * Gets the matter sanitized data of the specified server node.
381
- *
382
- * @param {ServerNode} [serverNode] - The server node to start.
383
- * @returns {ApiMatter} The sanitized data of the server node.
384
- */
385
135
  getServerNodeData(serverNode: ServerNode<ServerNode.RootEndpoint>): ApiMatter;
386
- /**
387
- * Starts the specified server node.
388
- *
389
- * @param {ServerNode} [matterServerNode] - The server node to start.
390
- * @returns {Promise<void>} A promise that resolves when the server node has started.
391
- */
392
136
  private startServerNode;
393
- /**
394
- * Stops the specified server node.
395
- *
396
- * @param {ServerNode} matterServerNode - The server node to stop.
397
- * @param {number} [timeout] - The timeout in milliseconds for stopping the server node. Defaults to 10 seconds.
398
- * @returns {Promise<void>} A promise that resolves when the server node has stopped.
399
- */
400
137
  private stopServerNode;
401
- /**
402
- * Creates an aggregator node with the specified storage context.
403
- *
404
- * @param {StorageContext} storageContext - The storage context for the aggregator node.
405
- * @returns {Promise<Endpoint<AggregatorEndpoint>>} A promise that resolves to the created aggregator node.
406
- */
407
138
  private createAggregatorNode;
408
- /**
409
- * Creates and configures the server node for an accessory plugin for a given device.
410
- *
411
- * @param {Plugin} plugin - The plugin to configure.
412
- * @param {MatterbridgeEndpoint} device - The device to associate with the plugin.
413
- * @returns {Promise<void>} A promise that resolves when the server node for the accessory plugin is created and configured.
414
- */
415
139
  private createAccessoryPlugin;
416
- /**
417
- * Creates and configures the server node and the aggregator node for a dynamic plugin.
418
- *
419
- * @param {Plugin} plugin - The plugin to configure.
420
- * @returns {Promise<void>} A promise that resolves when the server node and the aggregator node for the dynamic plugin is created and configured.
421
- */
422
140
  private createDynamicPlugin;
423
- /**
424
- * Creates and configures the server node for a single not bridged device.
425
- *
426
- * @param {Plugin} plugin - The plugin to configure.
427
- * @param {MatterbridgeEndpoint} device - The device to associate with the plugin.
428
- * @returns {Promise<void>} A promise that resolves when the server node for the accessory plugin is created and configured.
429
- */
430
141
  private createDeviceServerNode;
431
- /**
432
- * Adds a MatterbridgeEndpoint to the specified plugin.
433
- *
434
- * @param {string} pluginName - The name of the plugin.
435
- * @param {MatterbridgeEndpoint} device - The device to add as a bridged endpoint.
436
- * @returns {Promise<void>} A promise that resolves when the bridged endpoint has been added.
437
- */
438
142
  addBridgedEndpoint(pluginName: string, device: MatterbridgeEndpoint): Promise<void>;
439
- /**
440
- * Removes a MatterbridgeEndpoint from the specified plugin.
441
- *
442
- * @param {string} pluginName - The name of the plugin.
443
- * @param {MatterbridgeEndpoint} device - The device to remove as a bridged endpoint.
444
- * @returns {Promise<void>} A promise that resolves when the bridged endpoint has been removed.
445
- */
446
143
  removeBridgedEndpoint(pluginName: string, device: MatterbridgeEndpoint): Promise<void>;
447
- /**
448
- * Removes all bridged endpoints from the specified plugin.
449
- *
450
- * @param {string} pluginName - The name of the plugin.
451
- * @param {number} [delay] - The delay in milliseconds between removing each bridged endpoint (default: 0).
452
- * @returns {Promise<void>} A promise that resolves when all bridged endpoints have been removed.
453
- *
454
- * @remarks
455
- * This method iterates through all devices in the DeviceManager and removes each bridged endpoint associated with the specified plugin.
456
- * It also applies a delay between each removal if specified.
457
- * The delay is useful to allow the controllers to receive a single subscription for each device removed.
458
- */
459
144
  removeAllBridgedEndpoints(pluginName: string, delay?: number): Promise<void>;
460
- /**
461
- * Registers a virtual device.
462
- * Virtual devices are only supported in bridge mode and childbridge mode with a DynamicPlatform.
463
- *
464
- * The virtual device is created as an instance of `Endpoint` with the provided device type.
465
- * When the virtual device is turned on, the provided callback function is executed.
466
- * The onOff state of the virtual device always reverts to false when the device is turned on.
467
- *
468
- * @param { string } pluginName - The name of the plugin to register the virtual device under.
469
- * @param { string } name - The name of the virtual device.
470
- * @param { 'light' | 'outlet' | 'switch' | 'mounted_switch' } type - The type of the virtual device.
471
- * @param { () => Promise<void> } callback - The callback to call when the virtual device is turned on.
472
- *
473
- * @returns {Promise<boolean>} A promise that resolves to true if the virtual device was successfully registered, false otherwise.
474
- *
475
- * @remarks
476
- * The virtual devices don't show up in the device list of the frontend.
477
- * Type 'switch' is not supported by Alexa and 'mounted_switch' is not supported by Apple Home.
478
- */
479
145
  addVirtualEndpoint(pluginName: string, name: string, type: 'light' | 'outlet' | 'switch' | 'mounted_switch', callback: () => Promise<void>): Promise<boolean>;
480
- /**
481
- * Subscribes to the attribute change event for the given device and plugin.
482
- * Specifically, it listens for changes in the 'reachable' attribute of the
483
- * BridgedDeviceBasicInformationServer cluster server of the bridged device or BasicInformationServer cluster server of server node.
484
- *
485
- * @param {Plugin} plugin - The plugin associated with the device.
486
- * @param {MatterbridgeEndpoint} device - The device to subscribe to attribute changes for.
487
- * @returns {Promise<void>} A promise that resolves when the subscription is set up.
488
- */
489
146
  private subscribeAttributeChanged;
490
- /**
491
- * Sanitizes the fabric information by converting bigint properties to strings because `res.json` doesn't support bigint.
492
- *
493
- * @param {ExposedFabricInformation[]} fabricInfo - The array of exposed fabric information objects.
494
- * @returns {SanitizedExposedFabricInformation[]} An array of sanitized exposed fabric information objects.
495
- */
496
147
  private sanitizeFabricInformations;
497
- /**
498
- * Sanitizes the session information by converting bigint properties to strings because `res.json` doesn't support bigint.
499
- *
500
- * @param {SessionsBehavior.Session[]} sessions - The array of session information objects.
501
- * @returns {SanitizedSession[]} An array of sanitized session information objects.
502
- */
503
148
  private sanitizeSessionInformation;
504
- /**
505
- * Sets the reachability of the specified aggregator node bridged devices and trigger.
506
- *
507
- * @param {Endpoint<AggregatorEndpoint>} aggregatorNode - The aggregator node to set the reachability for.
508
- * @param {boolean} reachable - A boolean indicating the reachability status to set.
509
- */
510
149
  private setAggregatorReachability;
511
150
  private getVendorIdName;
512
151
  }
513
152
  export {};
514
- //# sourceMappingURL=matterbridge.d.ts.map