@matterbridge/core 3.5.3 → 3.5.4-dev-20260211-520e349

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 (294) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.d.ts +0 -24
  3. package/dist/cli.js +1 -97
  4. package/dist/cliEmitter.d.ts +0 -36
  5. package/dist/cliEmitter.js +0 -37
  6. package/dist/cliHistory.d.ts +0 -42
  7. package/dist/cliHistory.js +0 -38
  8. package/dist/clusters/export.d.ts +0 -1
  9. package/dist/clusters/export.js +0 -2
  10. package/dist/deviceManager.d.ts +0 -108
  11. package/dist/deviceManager.js +1 -114
  12. package/dist/devices/airConditioner.d.ts +0 -75
  13. package/dist/devices/airConditioner.js +0 -57
  14. package/dist/devices/basicVideoPlayer.d.ts +0 -58
  15. package/dist/devices/basicVideoPlayer.js +1 -56
  16. package/dist/devices/batteryStorage.d.ts +0 -43
  17. package/dist/devices/batteryStorage.js +1 -48
  18. package/dist/devices/castingVideoPlayer.d.ts +0 -63
  19. package/dist/devices/castingVideoPlayer.js +2 -65
  20. package/dist/devices/cooktop.d.ts +0 -55
  21. package/dist/devices/cooktop.js +0 -56
  22. package/dist/devices/dishwasher.d.ts +0 -55
  23. package/dist/devices/dishwasher.js +0 -57
  24. package/dist/devices/evse.d.ts +0 -57
  25. package/dist/devices/evse.js +10 -74
  26. package/dist/devices/export.d.ts +0 -1
  27. package/dist/devices/export.js +0 -5
  28. package/dist/devices/extractorHood.d.ts +0 -41
  29. package/dist/devices/extractorHood.js +0 -43
  30. package/dist/devices/heatPump.d.ts +0 -43
  31. package/dist/devices/heatPump.js +2 -50
  32. package/dist/devices/laundryDryer.d.ts +0 -58
  33. package/dist/devices/laundryDryer.js +3 -62
  34. package/dist/devices/laundryWasher.d.ts +0 -64
  35. package/dist/devices/laundryWasher.js +4 -70
  36. package/dist/devices/microwaveOven.d.ts +1 -77
  37. package/dist/devices/microwaveOven.js +5 -88
  38. package/dist/devices/oven.d.ts +0 -82
  39. package/dist/devices/oven.js +0 -85
  40. package/dist/devices/refrigerator.d.ts +0 -100
  41. package/dist/devices/refrigerator.js +0 -102
  42. package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
  43. package/dist/devices/roboticVacuumCleaner.js +9 -100
  44. package/dist/devices/solarPower.d.ts +0 -36
  45. package/dist/devices/solarPower.js +0 -38
  46. package/dist/devices/speaker.d.ts +0 -79
  47. package/dist/devices/speaker.js +0 -84
  48. package/dist/devices/temperatureControl.d.ts +0 -21
  49. package/dist/devices/temperatureControl.js +3 -24
  50. package/dist/devices/waterHeater.d.ts +0 -74
  51. package/dist/devices/waterHeater.js +2 -82
  52. package/dist/dgram/export.d.ts +0 -1
  53. package/dist/dgram/export.js +0 -1
  54. package/dist/export.d.ts +0 -23
  55. package/dist/export.js +0 -28
  56. package/dist/frontend.d.ts +0 -187
  57. package/dist/frontend.js +62 -581
  58. package/dist/helpers.d.ts +0 -43
  59. package/dist/helpers.js +0 -86
  60. package/dist/jestutils/export.d.ts +0 -1
  61. package/dist/jestutils/export.js +0 -1
  62. package/dist/jestutils/jestHelpers.d.ts +0 -259
  63. package/dist/jestutils/jestHelpers.js +15 -396
  64. package/dist/matter/behaviors.d.ts +0 -1
  65. package/dist/matter/behaviors.js +0 -2
  66. package/dist/matter/clusters.d.ts +0 -1
  67. package/dist/matter/clusters.js +0 -2
  68. package/dist/matter/devices.d.ts +0 -1
  69. package/dist/matter/devices.js +0 -2
  70. package/dist/matter/endpoints.d.ts +0 -1
  71. package/dist/matter/endpoints.js +0 -2
  72. package/dist/matter/export.d.ts +0 -1
  73. package/dist/matter/export.js +0 -2
  74. package/dist/matter/types.d.ts +0 -1
  75. package/dist/matter/types.js +0 -2
  76. package/dist/matterNode.d.ts +0 -258
  77. package/dist/matterNode.js +8 -356
  78. package/dist/matterbridge.d.ts +0 -389
  79. package/dist/matterbridge.js +48 -878
  80. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
  81. package/dist/matterbridgeAccessoryPlatform.js +0 -50
  82. package/dist/matterbridgeBehaviors.d.ts +0 -24
  83. package/dist/matterbridgeBehaviors.js +5 -65
  84. package/dist/matterbridgeDeviceTypes.d.ts +0 -649
  85. package/dist/matterbridgeDeviceTypes.js +6 -673
  86. package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
  87. package/dist/matterbridgeDynamicPlatform.js +0 -50
  88. package/dist/matterbridgeEndpoint.d.ts +0 -1369
  89. package/dist/matterbridgeEndpoint.js +56 -1514
  90. package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
  91. package/dist/matterbridgeEndpointHelpers.js +20 -483
  92. package/dist/matterbridgeEndpointTypes.d.ts +0 -70
  93. package/dist/matterbridgeEndpointTypes.js +0 -25
  94. package/dist/matterbridgePlatform.d.ts +0 -434
  95. package/dist/matterbridgePlatform.js +1 -473
  96. package/dist/pluginManager.d.ts +0 -307
  97. package/dist/pluginManager.js +6 -346
  98. package/dist/spawn.d.ts +0 -32
  99. package/dist/spawn.js +1 -71
  100. package/dist/utils/export.d.ts +0 -1
  101. package/dist/utils/export.js +0 -1
  102. package/package.json +27 -6
  103. package/dist/cli.d.ts.map +0 -1
  104. package/dist/cli.js.map +0 -1
  105. package/dist/cliEmitter.d.ts.map +0 -1
  106. package/dist/cliEmitter.js.map +0 -1
  107. package/dist/cliHistory.d.ts.map +0 -1
  108. package/dist/cliHistory.js.map +0 -1
  109. package/dist/clusters/export.d.ts.map +0 -1
  110. package/dist/clusters/export.js.map +0 -1
  111. package/dist/crypto/attestationDecoder.d.ts +0 -180
  112. package/dist/crypto/attestationDecoder.d.ts.map +0 -1
  113. package/dist/crypto/attestationDecoder.js +0 -176
  114. package/dist/crypto/attestationDecoder.js.map +0 -1
  115. package/dist/crypto/declarationDecoder.d.ts +0 -72
  116. package/dist/crypto/declarationDecoder.d.ts.map +0 -1
  117. package/dist/crypto/declarationDecoder.js +0 -241
  118. package/dist/crypto/declarationDecoder.js.map +0 -1
  119. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts +0 -9
  120. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts.map +0 -1
  121. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js +0 -120
  122. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js.map +0 -1
  123. package/dist/crypto/read-extensions.d.ts +0 -2
  124. package/dist/crypto/read-extensions.d.ts.map +0 -1
  125. package/dist/crypto/read-extensions.js +0 -81
  126. package/dist/crypto/read-extensions.js.map +0 -1
  127. package/dist/crypto/testData.d.ts +0 -31
  128. package/dist/crypto/testData.d.ts.map +0 -1
  129. package/dist/crypto/testData.js +0 -131
  130. package/dist/crypto/testData.js.map +0 -1
  131. package/dist/crypto/walk-der.d.ts +0 -2
  132. package/dist/crypto/walk-der.d.ts.map +0 -1
  133. package/dist/crypto/walk-der.js +0 -165
  134. package/dist/crypto/walk-der.js.map +0 -1
  135. package/dist/deviceManager.d.ts.map +0 -1
  136. package/dist/deviceManager.js.map +0 -1
  137. package/dist/devices/airConditioner.d.ts.map +0 -1
  138. package/dist/devices/airConditioner.js.map +0 -1
  139. package/dist/devices/basicVideoPlayer.d.ts.map +0 -1
  140. package/dist/devices/basicVideoPlayer.js.map +0 -1
  141. package/dist/devices/batteryStorage.d.ts.map +0 -1
  142. package/dist/devices/batteryStorage.js.map +0 -1
  143. package/dist/devices/castingVideoPlayer.d.ts.map +0 -1
  144. package/dist/devices/castingVideoPlayer.js.map +0 -1
  145. package/dist/devices/cooktop.d.ts.map +0 -1
  146. package/dist/devices/cooktop.js.map +0 -1
  147. package/dist/devices/dishwasher.d.ts.map +0 -1
  148. package/dist/devices/dishwasher.js.map +0 -1
  149. package/dist/devices/evse.d.ts.map +0 -1
  150. package/dist/devices/evse.js.map +0 -1
  151. package/dist/devices/export.d.ts.map +0 -1
  152. package/dist/devices/export.js.map +0 -1
  153. package/dist/devices/extractorHood.d.ts.map +0 -1
  154. package/dist/devices/extractorHood.js.map +0 -1
  155. package/dist/devices/heatPump.d.ts.map +0 -1
  156. package/dist/devices/heatPump.js.map +0 -1
  157. package/dist/devices/laundryDryer.d.ts.map +0 -1
  158. package/dist/devices/laundryDryer.js.map +0 -1
  159. package/dist/devices/laundryWasher.d.ts.map +0 -1
  160. package/dist/devices/laundryWasher.js.map +0 -1
  161. package/dist/devices/microwaveOven.d.ts.map +0 -1
  162. package/dist/devices/microwaveOven.js.map +0 -1
  163. package/dist/devices/oven.d.ts.map +0 -1
  164. package/dist/devices/oven.js.map +0 -1
  165. package/dist/devices/refrigerator.d.ts.map +0 -1
  166. package/dist/devices/refrigerator.js.map +0 -1
  167. package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
  168. package/dist/devices/roboticVacuumCleaner.js.map +0 -1
  169. package/dist/devices/solarPower.d.ts.map +0 -1
  170. package/dist/devices/solarPower.js.map +0 -1
  171. package/dist/devices/speaker.d.ts.map +0 -1
  172. package/dist/devices/speaker.js.map +0 -1
  173. package/dist/devices/temperatureControl.d.ts.map +0 -1
  174. package/dist/devices/temperatureControl.js.map +0 -1
  175. package/dist/devices/waterHeater.d.ts.map +0 -1
  176. package/dist/devices/waterHeater.js.map +0 -1
  177. package/dist/dgram/export.d.ts.map +0 -1
  178. package/dist/dgram/export.js.map +0 -1
  179. package/dist/export.d.ts.map +0 -1
  180. package/dist/export.js.map +0 -1
  181. package/dist/frontend.d.ts.map +0 -1
  182. package/dist/frontend.js.map +0 -1
  183. package/dist/helpers.d.ts.map +0 -1
  184. package/dist/helpers.js.map +0 -1
  185. package/dist/jestutils/export.d.ts.map +0 -1
  186. package/dist/jestutils/export.js.map +0 -1
  187. package/dist/jestutils/jestHelpers.d.ts.map +0 -1
  188. package/dist/jestutils/jestHelpers.js.map +0 -1
  189. package/dist/matter/behaviors.d.ts.map +0 -1
  190. package/dist/matter/behaviors.js.map +0 -1
  191. package/dist/matter/clusters.d.ts.map +0 -1
  192. package/dist/matter/clusters.js.map +0 -1
  193. package/dist/matter/devices.d.ts.map +0 -1
  194. package/dist/matter/devices.js.map +0 -1
  195. package/dist/matter/endpoints.d.ts.map +0 -1
  196. package/dist/matter/endpoints.js.map +0 -1
  197. package/dist/matter/export.d.ts.map +0 -1
  198. package/dist/matter/export.js.map +0 -1
  199. package/dist/matter/types.d.ts.map +0 -1
  200. package/dist/matter/types.js.map +0 -1
  201. package/dist/matterNode.d.ts.map +0 -1
  202. package/dist/matterNode.js.map +0 -1
  203. package/dist/matterbridge.d.ts.map +0 -1
  204. package/dist/matterbridge.js.map +0 -1
  205. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  206. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  207. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  208. package/dist/matterbridgeBehaviors.js.map +0 -1
  209. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  210. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  211. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  212. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  213. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  214. package/dist/matterbridgeEndpoint.js.map +0 -1
  215. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  216. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  217. package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
  218. package/dist/matterbridgeEndpointTypes.js.map +0 -1
  219. package/dist/matterbridgePlatform.d.ts.map +0 -1
  220. package/dist/matterbridgePlatform.js.map +0 -1
  221. package/dist/mb_coap.d.ts +0 -24
  222. package/dist/mb_coap.d.ts.map +0 -1
  223. package/dist/mb_coap.js +0 -89
  224. package/dist/mb_coap.js.map +0 -1
  225. package/dist/mb_health.d.ts +0 -77
  226. package/dist/mb_health.d.ts.map +0 -1
  227. package/dist/mb_health.js +0 -147
  228. package/dist/mb_health.js.map +0 -1
  229. package/dist/mb_mdns.d.ts +0 -24
  230. package/dist/mb_mdns.d.ts.map +0 -1
  231. package/dist/mb_mdns.js +0 -285
  232. package/dist/mb_mdns.js.map +0 -1
  233. package/dist/pluginManager.d.ts.map +0 -1
  234. package/dist/pluginManager.js.map +0 -1
  235. package/dist/spawn.d.ts.map +0 -1
  236. package/dist/spawn.js.map +0 -1
  237. package/dist/utils/export.d.ts.map +0 -1
  238. package/dist/utils/export.js.map +0 -1
  239. package/dist/workers/brand.d.ts +0 -25
  240. package/dist/workers/brand.d.ts.map +0 -1
  241. package/dist/workers/brand.extend.d.ts +0 -10
  242. package/dist/workers/brand.extend.d.ts.map +0 -1
  243. package/dist/workers/brand.extend.js +0 -15
  244. package/dist/workers/brand.extend.js.map +0 -1
  245. package/dist/workers/brand.invalid.d.ts +0 -9
  246. package/dist/workers/brand.invalid.d.ts.map +0 -1
  247. package/dist/workers/brand.invalid.js +0 -19
  248. package/dist/workers/brand.invalid.js.map +0 -1
  249. package/dist/workers/brand.js +0 -67
  250. package/dist/workers/brand.js.map +0 -1
  251. package/dist/workers/clusterTypes.d.ts +0 -47
  252. package/dist/workers/clusterTypes.d.ts.map +0 -1
  253. package/dist/workers/clusterTypes.js +0 -57
  254. package/dist/workers/clusterTypes.js.map +0 -1
  255. package/dist/workers/frontendWorker.d.ts +0 -2
  256. package/dist/workers/frontendWorker.d.ts.map +0 -1
  257. package/dist/workers/frontendWorker.js +0 -90
  258. package/dist/workers/frontendWorker.js.map +0 -1
  259. package/dist/workers/helloWorld.d.ts +0 -2
  260. package/dist/workers/helloWorld.d.ts.map +0 -1
  261. package/dist/workers/helloWorld.js +0 -135
  262. package/dist/workers/helloWorld.js.map +0 -1
  263. package/dist/workers/matterWorker.d.ts +0 -2
  264. package/dist/workers/matterWorker.d.ts.map +0 -1
  265. package/dist/workers/matterWorker.js +0 -104
  266. package/dist/workers/matterWorker.js.map +0 -1
  267. package/dist/workers/matterbridgeWorker.d.ts +0 -2
  268. package/dist/workers/matterbridgeWorker.d.ts.map +0 -1
  269. package/dist/workers/matterbridgeWorker.js +0 -75
  270. package/dist/workers/matterbridgeWorker.js.map +0 -1
  271. package/dist/workers/messageLab.d.ts +0 -134
  272. package/dist/workers/messageLab.d.ts.map +0 -1
  273. package/dist/workers/messageLab.js +0 -129
  274. package/dist/workers/messageLab.js.map +0 -1
  275. package/dist/workers/testWorker.d.ts +0 -2
  276. package/dist/workers/testWorker.d.ts.map +0 -1
  277. package/dist/workers/testWorker.js +0 -45
  278. package/dist/workers/testWorker.js.map +0 -1
  279. package/dist/workers/usage.d.ts +0 -19
  280. package/dist/workers/usage.d.ts.map +0 -1
  281. package/dist/workers/usage.js +0 -140
  282. package/dist/workers/usage.js.map +0 -1
  283. package/dist/workers/workerManager.d.ts +0 -115
  284. package/dist/workers/workerManager.d.ts.map +0 -1
  285. package/dist/workers/workerManager.js +0 -464
  286. package/dist/workers/workerManager.js.map +0 -1
  287. package/dist/workers/workerServer.d.ts +0 -126
  288. package/dist/workers/workerServer.d.ts.map +0 -1
  289. package/dist/workers/workerServer.js +0 -340
  290. package/dist/workers/workerServer.js.map +0 -1
  291. package/dist/workers/workerTypes.d.ts +0 -23
  292. package/dist/workers/workerTypes.d.ts.map +0 -1
  293. package/dist/workers/workerTypes.js +0 -3
  294. package/dist/workers/workerTypes.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, 2026 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,379 +101,55 @@ 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
- /** Close the broadcast server */
177
108
  destroy(): void;
178
- /**
179
- * Get a platform matterbridge object
180
- *
181
- * @returns {PlatformMatterbridge} The platform matterbridge object.
182
- */
183
109
  getPlatformMatterbridge(): PlatformMatterbridge;
184
- /**
185
- * Get a shared matterbridge object
186
- *
187
- * @returns {SharedMatterbridge} The shared matterbridge object.
188
- */
189
110
  getSharedMatterbridge(): SharedMatterbridge;
190
111
  private msgHandler;
191
- /**
192
- * Loads an instance of the Matterbridge class.
193
- * If an instance already exists, return that instance.
194
- *
195
- * @param {boolean} initialize - Whether to initialize the Matterbridge instance after loading. Defaults to false.
196
- * @returns {Matterbridge} A promise that resolves to the Matterbridge instance.
197
- */
198
112
  static loadInstance(initialize?: boolean): Promise<Matterbridge>;
199
- /**
200
- * Initializes the Matterbridge application.
201
- *
202
- * @remarks
203
- * This method performs the necessary setup and initialization steps for the Matterbridge application.
204
- * It displays the help information if the 'help' parameter is provided, sets up the logger, checks the
205
- * node version, registers signal handlers, initializes storage, and parses the command line.
206
- *
207
- * @returns {Promise<void>} A Promise that resolves when the initialization is complete.
208
- */
209
113
  private initialize;
210
- /**
211
- * Resolve a file path located in the `@matterbridge/core` distribution directory.
212
- *
213
- * @remarks
214
- * Matterbridge spawns ESM workers from built JavaScript files (e.g. `workerCheckUpdates.js`).
215
- * Depending on how the code is executed:
216
- * - **Production**: `import.meta.url` points inside `.../node_modules/@matterbridge/core/dist/...`
217
- * and the worker file is usually alongside the current module.
218
- * - **Development / tests**: `import.meta.url` may point inside `.../packages/core/src/...`
219
- * while the worker file exists in `.../packages/core/dist/...`.
220
- *
221
- * This helper tries both locations and returns the first existing candidate.
222
- *
223
- * @param {string} fileName - Worker/build artifact file name, e.g. `workerGlobalPrefix.js`.
224
- * @returns {string} Absolute path to the resolved file. If none exists, returns the first candidate (best effort).
225
- */
226
114
  resolveWorkerDistFilePath(fileName: string): string;
227
- /**
228
- * Parses the command line arguments and performs the corresponding actions.
229
- *
230
- * @private
231
- * @returns {Promise<void>} A promise that resolves when the command line arguments have been processed, or the process exits.
232
- */
233
115
  private parseCommandLine;
234
- /**
235
- * Asynchronously loads and starts the registered plugins.
236
- *
237
- * This method is responsible for initializing and starting all enabled plugins.
238
- * It ensures that each plugin is properly loaded and started before the bridge starts.
239
- *
240
- * @param {boolean} [wait] - If true, the method will wait for all plugins to be fully loaded and started before resolving. Defaults to false.
241
- * @param {boolean} [start] - If true, the method will start the plugins after loading them. Defaults to true.
242
- * @returns {Promise<void>} A promise that resolves when all plugins have been loaded and started.
243
- */
244
116
  private startPlugins;
245
- /**
246
- * Registers the process handlers for uncaughtException, unhandledRejection, SIGINT and SIGTERM.
247
- * - When an uncaught exception occurs, the exceptionHandler logs the error message and stack trace.
248
- * - When an unhandled promise rejection occurs, the rejectionHandler logs the reason and stack trace.
249
- * - When either of SIGINT and SIGTERM signals are received, the cleanup method is called with an appropriate message.
250
- */
251
117
  private registerProcessHandlers;
252
- /**
253
- * Deregisters the process uncaughtException, unhandledRejection, SIGINT and SIGTERM signal handlers.
254
- */
255
118
  private deregisterProcessHandlers;
256
- /**
257
- * Logs the node and system information.
258
- *
259
- * @remarks
260
- * This method retrieves and logs various details about the host system, including:
261
- * - IP address information (IPv4, IPv6, MAC address)
262
- * - Node.js version
263
- * - Hostname and user information
264
- * - Operating system details (type, release, platform, architecture)
265
- * - Memory usage statistics
266
- * - Uptime information for both the system and the process
267
- */
268
119
  private logNodeAndSystemInfo;
269
- /**
270
- * Set the logger logLevel for the Matterbridge classes and call onChangeLoggerLevel() for each plugin.
271
- *
272
- * @param {LogLevel} logLevel The logger logLevel to set.
273
- * @returns {Promise<LogLevel>} A promise that resolves when the logLevel has been set.
274
- */
275
120
  setLogLevel(logLevel: LogLevel): Promise<LogLevel>;
276
- /**
277
- * Get the current logger logLevel.
278
- *
279
- * @returns {LogLevel} The current logger logLevel.
280
- */
281
121
  getLogLevel(): MaybePromise<LogLevel>;
282
- /**
283
- * Creates a MatterLogger function to show the matter.js log messages in AnsiLogger (for the frontend).
284
- * It also logs to file (matter.log) if fileLogger is true.
285
- *
286
- * @param {boolean} fileLogger - Whether to log to file or not.
287
- * @returns {(text: string, message: Diagnostic.Message) => void} The MatterLogger function. \x1b[35m for violet \x1b[34m is blue
288
- */
289
122
  private createDestinationMatterLogger;
290
- /**
291
- * Restarts the process by exiting the current instance and loading a new instance (/api/restart).
292
- *
293
- * @returns {Promise<void>} A promise that resolves when the restart is completed.
294
- */
295
123
  restartProcess(): Promise<void>;
296
- /**
297
- * Shut down the process (/api/shutdown).
298
- *
299
- * @returns {Promise<void>} A promise that resolves when the shutdown is completed.
300
- */
301
124
  shutdownProcess(): Promise<void>;
302
- /**
303
- * Update matterbridge and shut down the process (virtual device 'Update Matterbridge').
304
- *
305
- * @returns {Promise<void>} A promise that resolves when the update is completed.
306
- */
307
125
  updateProcess(): Promise<void>;
308
- /**
309
- * Unregister all devices and shut down the process (/api/unregister).
310
- *
311
- * @param {number} [timeout] - The timeout duration to wait for the message exchange to complete in milliseconds. Default is 1000.
312
- *
313
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
314
- */
315
126
  unregisterAndShutdownProcess(timeout?: number): Promise<void>;
316
- /**
317
- * Reset commissioning and shut down the process (/api/reset).
318
- *
319
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
320
- */
321
127
  shutdownProcessAndReset(): Promise<void>;
322
- /**
323
- * Factory reset and shut down the process (/api/factory-reset).
324
- *
325
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
326
- */
327
128
  shutdownProcessAndFactoryReset(): Promise<void>;
328
- /**
329
- * Cleans up the Matterbridge instance.
330
- *
331
- * @param {string} message - The cleanup message.
332
- * @param {boolean} [restart] - Indicates whether to restart the instance after cleanup. Default is `false`.
333
- * @param {number} [pause] - The pause in ms to wait for the message exchange to complete in milliseconds. Default is 1000.
334
- *
335
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
336
- */
337
129
  private cleanup;
338
- /**
339
- * Starts the Matterbridge in bridge mode.
340
- *
341
- * @private
342
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
343
- */
344
130
  private startBridge;
345
- /**
346
- * Starts the Matterbridge in childbridge mode.
347
- *
348
- * @param {number} [delay] - The delay before starting the childbridge. Default is 1000 milliseconds.
349
- *
350
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
351
- */
352
131
  private startChildbridge;
353
- /**
354
- * Starts the Matterbridge controller.
355
- *
356
- * @private
357
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
358
- */
359
132
  private startController;
360
- /** */
361
- /** Matter.js methods */
362
- /** */
363
- /**
364
- * Starts the matter storage with name Matterbridge, create the matterbridge context and performs a backup.
365
- *
366
- * @returns {Promise<void>} - A promise that resolves when the storage is started.
367
- */
368
133
  private startMatterStorage;
369
- /**
370
- * Makes a backup copy of the specified matter storage directory.
371
- *
372
- * @param {string} storageName - The name of the storage directory to be backed up.
373
- * @param {string} backupName - The name of the backup directory to be created.
374
- * @private
375
- * @returns {Promise<void>} A promise that resolves when the has been done.
376
- */
377
134
  private backupMatterStorage;
378
- /**
379
- * Stops the matter storage.
380
- *
381
- * @returns {Promise<void>} A promise that resolves when the storage is stopped.
382
- */
383
135
  private stopMatterStorage;
384
- /**
385
- * Creates a server node storage context.
386
- *
387
- * @param {string} storeId - The storeId.
388
- * @param {string} deviceName - The name of the device.
389
- * @param {DeviceTypeId} deviceType - The device type of the device.
390
- * @param {number} vendorId - The vendor ID.
391
- * @param {string} vendorName - The vendor name.
392
- * @param {number} productId - The product ID.
393
- * @param {string} productName - The product name.
394
- * @param {string} [serialNumber] - The serial number of the device (optional).
395
- * @param {string} [uniqueId] - The unique ID of the device (optional).
396
- * @returns {Promise<StorageContext>} The storage context for the commissioning server.
397
- */
398
136
  private createServerNodeContext;
399
- /**
400
- * Creates a server node.
401
- *
402
- * @param {StorageContext} storageContext - The storage context for the server node.
403
- * @param {number} [port] - The port number for the server node. Defaults to 5540.
404
- * @param {number} [passcode] - The passcode for the server node. Defaults to 20242025.
405
- * @param {number} [discriminator] - The discriminator for the server node. Defaults to 3850.
406
- * @returns {Promise<ServerNode<ServerNode.RootEndpoint>>} A promise that resolves to the created server node.
407
- */
408
137
  private createServerNode;
409
- /**
410
- * Gets the matter sanitized data of the specified server node.
411
- *
412
- * @param {ServerNode} [serverNode] - The server node to start.
413
- * @returns {ApiMatter} The sanitized data of the server node.
414
- */
415
138
  getServerNodeData(serverNode: ServerNode<ServerNode.RootEndpoint>): ApiMatter;
416
- /**
417
- * Starts the specified server node.
418
- *
419
- * @param {ServerNode} [matterServerNode] - The server node to start.
420
- * @returns {Promise<void>} A promise that resolves when the server node has started.
421
- */
422
139
  private startServerNode;
423
- /**
424
- * Stops the specified server node.
425
- *
426
- * @param {ServerNode} matterServerNode - The server node to stop.
427
- * @param {number} [timeout] - The timeout in milliseconds for stopping the server node. Defaults to 10 seconds.
428
- * @returns {Promise<void>} A promise that resolves when the server node has stopped.
429
- */
430
140
  private stopServerNode;
431
- /**
432
- * Creates an aggregator node with the specified storage context.
433
- *
434
- * @param {StorageContext} storageContext - The storage context for the aggregator node.
435
- * @returns {Promise<Endpoint<AggregatorEndpoint>>} A promise that resolves to the created aggregator node.
436
- */
437
141
  private createAggregatorNode;
438
- /**
439
- * Creates and configures the server node for an accessory plugin for a given device.
440
- *
441
- * @param {Plugin} plugin - The plugin to configure.
442
- * @param {MatterbridgeEndpoint} device - The device to associate with the plugin.
443
- * @returns {Promise<void>} A promise that resolves when the server node for the accessory plugin is created and configured.
444
- */
445
142
  private createAccessoryPlugin;
446
- /**
447
- * Creates and configures the server node and the aggregator node for a dynamic plugin.
448
- *
449
- * @param {Plugin} plugin - The plugin to configure.
450
- * @returns {Promise<void>} A promise that resolves when the server node and the aggregator node for the dynamic plugin is created and configured.
451
- */
452
143
  private createDynamicPlugin;
453
- /**
454
- * Creates and configures the server node for a single not bridged device.
455
- *
456
- * @param {Plugin} plugin - The plugin to configure.
457
- * @param {MatterbridgeEndpoint} device - The device to associate with the plugin.
458
- * @returns {Promise<void>} A promise that resolves when the server node for the accessory plugin is created and configured.
459
- */
460
144
  private createDeviceServerNode;
461
- /**
462
- * Adds a MatterbridgeEndpoint to the specified plugin.
463
- *
464
- * @param {string} pluginName - The name of the plugin.
465
- * @param {MatterbridgeEndpoint} device - The device to add as a bridged endpoint.
466
- * @returns {Promise<void>} A promise that resolves when the bridged endpoint has been added.
467
- */
468
145
  addBridgedEndpoint(pluginName: string, device: MatterbridgeEndpoint): Promise<void>;
469
- /**
470
- * Removes a MatterbridgeEndpoint from the specified plugin.
471
- *
472
- * @param {string} pluginName - The name of the plugin.
473
- * @param {MatterbridgeEndpoint} device - The device to remove as a bridged endpoint.
474
- * @returns {Promise<void>} A promise that resolves when the bridged endpoint has been removed.
475
- */
476
146
  removeBridgedEndpoint(pluginName: string, device: MatterbridgeEndpoint): Promise<void>;
477
- /**
478
- * Removes all bridged endpoints from the specified plugin.
479
- *
480
- * @param {string} pluginName - The name of the plugin.
481
- * @param {number} [delay] - The delay in milliseconds between removing each bridged endpoint (default: 0).
482
- * @returns {Promise<void>} A promise that resolves when all bridged endpoints have been removed.
483
- *
484
- * @remarks
485
- * This method iterates through all devices in the DeviceManager and removes each bridged endpoint associated with the specified plugin.
486
- * It also applies a delay between each removal if specified.
487
- * The delay is useful to allow the controllers to receive a single subscription for each device removed.
488
- */
489
147
  removeAllBridgedEndpoints(pluginName: string, delay?: number): Promise<void>;
490
- /**
491
- * Registers a virtual device.
492
- * Virtual devices are only supported in bridge mode and childbridge mode with a DynamicPlatform.
493
- *
494
- * The virtual device is created as an instance of `Endpoint` with the provided device type.
495
- * When the virtual device is turned on, the provided callback function is executed.
496
- * The onOff state of the virtual device always reverts to false when the device is turned on.
497
- *
498
- * @param { string } pluginName - The name of the plugin to register the virtual device under.
499
- * @param { string } name - The name of the virtual device.
500
- * @param { 'light' | 'outlet' | 'switch' | 'mounted_switch' } type - The type of the virtual device.
501
- * @param { () => Promise<void> } callback - The callback to call when the virtual device is turned on.
502
- *
503
- * @returns {Promise<boolean>} A promise that resolves to true if the virtual device was successfully registered, false otherwise.
504
- *
505
- * @remarks
506
- * The virtual devices don't show up in the device list of the frontend.
507
- * Type 'switch' is not supported by Alexa and 'mounted_switch' is not supported by Apple Home.
508
- */
509
148
  addVirtualEndpoint(pluginName: string, name: string, type: 'light' | 'outlet' | 'switch' | 'mounted_switch', callback: () => Promise<void>): Promise<boolean>;
510
- /**
511
- * Subscribes to the attribute change event for the given device and plugin.
512
- * Specifically, it listens for changes in the 'reachable' attribute of the
513
- * BridgedDeviceBasicInformationServer cluster server of the bridged device or BasicInformationServer cluster server of server node.
514
- *
515
- * @param {Plugin} plugin - The plugin associated with the device.
516
- * @param {MatterbridgeEndpoint} device - The device to subscribe to attribute changes for.
517
- * @returns {Promise<void>} A promise that resolves when the subscription is set up.
518
- */
519
149
  private subscribeAttributeChanged;
520
- /**
521
- * Sanitizes the fabric information by converting bigint properties to strings because `res.json` doesn't support bigint.
522
- *
523
- * @param {ExposedFabricInformation[]} fabricInfo - The array of exposed fabric information objects.
524
- * @returns {SanitizedExposedFabricInformation[]} An array of sanitized exposed fabric information objects.
525
- */
526
150
  private sanitizeFabricInformations;
527
- /**
528
- * Sanitizes the session information by converting bigint properties to strings because `res.json` doesn't support bigint.
529
- *
530
- * @param {SessionsBehavior.Session[]} sessions - The array of session information objects.
531
- * @returns {SanitizedSession[]} An array of sanitized session information objects.
532
- */
533
151
  private sanitizeSessionInformation;
534
- /**
535
- * Sets the reachability of the specified aggregator node bridged devices and trigger.
536
- *
537
- * @param {Endpoint<AggregatorEndpoint>} aggregatorNode - The aggregator node to set the reachability for.
538
- * @param {boolean} reachable - A boolean indicating the reachability status to set.
539
- */
540
152
  private setAggregatorReachability;
541
153
  private getVendorIdName;
542
154
  }
543
155
  export {};
544
- //# sourceMappingURL=matterbridge.d.ts.map