matterbridge 3.4.3-dev-20251209-e6cb85f → 3.4.3

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