matterbridge 3.3.0-dev-20251002-bbaa166 → 3.3.0

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 (283) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/dist/cli.d.ts +26 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +91 -2
  5. package/dist/cli.js.map +1 -0
  6. package/dist/cliEmitter.d.ts +34 -0
  7. package/dist/cliEmitter.d.ts.map +1 -0
  8. package/dist/cliEmitter.js +30 -0
  9. package/dist/cliEmitter.js.map +1 -0
  10. package/dist/clusters/export.d.ts +2 -0
  11. package/dist/clusters/export.d.ts.map +1 -0
  12. package/dist/clusters/export.js +2 -0
  13. package/dist/clusters/export.js.map +1 -0
  14. package/dist/defaultConfigSchema.d.ts +28 -0
  15. package/dist/defaultConfigSchema.d.ts.map +1 -0
  16. package/dist/defaultConfigSchema.js +24 -0
  17. package/dist/defaultConfigSchema.js.map +1 -0
  18. package/dist/deviceManager.d.ts +112 -0
  19. package/dist/deviceManager.d.ts.map +1 -0
  20. package/dist/deviceManager.js +94 -1
  21. package/dist/deviceManager.js.map +1 -0
  22. package/dist/devices/airConditioner.d.ts +98 -0
  23. package/dist/devices/airConditioner.d.ts.map +1 -0
  24. package/dist/devices/airConditioner.js +57 -0
  25. package/dist/devices/airConditioner.js.map +1 -0
  26. package/dist/devices/batteryStorage.d.ts +48 -0
  27. package/dist/devices/batteryStorage.d.ts.map +1 -0
  28. package/dist/devices/batteryStorage.js +48 -1
  29. package/dist/devices/batteryStorage.js.map +1 -0
  30. package/dist/devices/cooktop.d.ts +60 -0
  31. package/dist/devices/cooktop.d.ts.map +1 -0
  32. package/dist/devices/cooktop.js +55 -0
  33. package/dist/devices/cooktop.js.map +1 -0
  34. package/dist/devices/dishwasher.d.ts +71 -0
  35. package/dist/devices/dishwasher.d.ts.map +1 -0
  36. package/dist/devices/dishwasher.js +57 -0
  37. package/dist/devices/dishwasher.js.map +1 -0
  38. package/dist/devices/evse.d.ts +75 -0
  39. package/dist/devices/evse.d.ts.map +1 -0
  40. package/dist/devices/evse.js +74 -10
  41. package/dist/devices/evse.js.map +1 -0
  42. package/dist/devices/export.d.ts +17 -0
  43. package/dist/devices/export.d.ts.map +1 -0
  44. package/dist/devices/export.js +5 -0
  45. package/dist/devices/export.js.map +1 -0
  46. package/dist/devices/extractorHood.d.ts +46 -0
  47. package/dist/devices/extractorHood.d.ts.map +1 -0
  48. package/dist/devices/extractorHood.js +42 -0
  49. package/dist/devices/extractorHood.js.map +1 -0
  50. package/dist/devices/heatPump.d.ts +47 -0
  51. package/dist/devices/heatPump.d.ts.map +1 -0
  52. package/dist/devices/heatPump.js +50 -2
  53. package/dist/devices/heatPump.js.map +1 -0
  54. package/dist/devices/laundryDryer.d.ts +67 -0
  55. package/dist/devices/laundryDryer.d.ts.map +1 -0
  56. package/dist/devices/laundryDryer.js +62 -3
  57. package/dist/devices/laundryDryer.js.map +1 -0
  58. package/dist/devices/laundryWasher.d.ts +81 -0
  59. package/dist/devices/laundryWasher.d.ts.map +1 -0
  60. package/dist/devices/laundryWasher.js +70 -4
  61. package/dist/devices/laundryWasher.js.map +1 -0
  62. package/dist/devices/microwaveOven.d.ts +168 -0
  63. package/dist/devices/microwaveOven.d.ts.map +1 -0
  64. package/dist/devices/microwaveOven.js +88 -5
  65. package/dist/devices/microwaveOven.js.map +1 -0
  66. package/dist/devices/oven.d.ts +105 -0
  67. package/dist/devices/oven.d.ts.map +1 -0
  68. package/dist/devices/oven.js +85 -0
  69. package/dist/devices/oven.js.map +1 -0
  70. package/dist/devices/refrigerator.d.ts +118 -0
  71. package/dist/devices/refrigerator.d.ts.map +1 -0
  72. package/dist/devices/refrigerator.js +102 -0
  73. package/dist/devices/refrigerator.js.map +1 -0
  74. package/dist/devices/roboticVacuumCleaner.d.ts +112 -0
  75. package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
  76. package/dist/devices/roboticVacuumCleaner.js +100 -9
  77. package/dist/devices/roboticVacuumCleaner.js.map +1 -0
  78. package/dist/devices/solarPower.d.ts +40 -0
  79. package/dist/devices/solarPower.d.ts.map +1 -0
  80. package/dist/devices/solarPower.js +38 -0
  81. package/dist/devices/solarPower.js.map +1 -0
  82. package/dist/devices/speaker.d.ts +87 -0
  83. package/dist/devices/speaker.d.ts.map +1 -0
  84. package/dist/devices/speaker.js +84 -0
  85. package/dist/devices/speaker.js.map +1 -0
  86. package/dist/devices/temperatureControl.d.ts +166 -0
  87. package/dist/devices/temperatureControl.d.ts.map +1 -0
  88. package/dist/devices/temperatureControl.js +25 -3
  89. package/dist/devices/temperatureControl.js.map +1 -0
  90. package/dist/devices/waterHeater.d.ts +111 -0
  91. package/dist/devices/waterHeater.d.ts.map +1 -0
  92. package/dist/devices/waterHeater.js +82 -2
  93. package/dist/devices/waterHeater.js.map +1 -0
  94. package/dist/dgram/coap.d.ts +205 -0
  95. package/dist/dgram/coap.d.ts.map +1 -0
  96. package/dist/dgram/coap.js +126 -13
  97. package/dist/dgram/coap.js.map +1 -0
  98. package/dist/dgram/dgram.d.ts +141 -0
  99. package/dist/dgram/dgram.d.ts.map +1 -0
  100. package/dist/dgram/dgram.js +114 -2
  101. package/dist/dgram/dgram.js.map +1 -0
  102. package/dist/dgram/mb_coap.d.ts +24 -0
  103. package/dist/dgram/mb_coap.d.ts.map +1 -0
  104. package/dist/dgram/mb_coap.js +41 -3
  105. package/dist/dgram/mb_coap.js.map +1 -0
  106. package/dist/dgram/mb_mdns.d.ts +24 -0
  107. package/dist/dgram/mb_mdns.d.ts.map +1 -0
  108. package/dist/dgram/mb_mdns.js +80 -15
  109. package/dist/dgram/mb_mdns.js.map +1 -0
  110. package/dist/dgram/mdns.d.ts +290 -0
  111. package/dist/dgram/mdns.d.ts.map +1 -0
  112. package/dist/dgram/mdns.js +299 -137
  113. package/dist/dgram/mdns.js.map +1 -0
  114. package/dist/dgram/multicast.d.ts +67 -0
  115. package/dist/dgram/multicast.d.ts.map +1 -0
  116. package/dist/dgram/multicast.js +62 -1
  117. package/dist/dgram/multicast.js.map +1 -0
  118. package/dist/dgram/unicast.d.ts +56 -0
  119. package/dist/dgram/unicast.d.ts.map +1 -0
  120. package/dist/dgram/unicast.js +54 -0
  121. package/dist/dgram/unicast.js.map +1 -0
  122. package/dist/frontend.d.ts +232 -0
  123. package/dist/frontend.d.ts.map +1 -0
  124. package/dist/frontend.js +458 -64
  125. package/dist/frontend.js.map +1 -0
  126. package/dist/frontendTypes.d.ts +514 -0
  127. package/dist/frontendTypes.d.ts.map +1 -0
  128. package/dist/frontendTypes.js +45 -0
  129. package/dist/frontendTypes.js.map +1 -0
  130. package/dist/globalMatterbridge.d.ts +59 -0
  131. package/dist/globalMatterbridge.d.ts.map +1 -0
  132. package/dist/globalMatterbridge.js +47 -0
  133. package/dist/globalMatterbridge.js.map +1 -0
  134. package/dist/helpers.d.ts +48 -0
  135. package/dist/helpers.d.ts.map +1 -0
  136. package/dist/helpers.js +53 -0
  137. package/dist/helpers.js.map +1 -0
  138. package/dist/index.d.ts +33 -0
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +30 -1
  141. package/dist/index.js.map +1 -0
  142. package/dist/logger/export.d.ts +2 -0
  143. package/dist/logger/export.d.ts.map +1 -0
  144. package/dist/logger/export.js +1 -0
  145. package/dist/logger/export.js.map +1 -0
  146. package/dist/matter/behaviors.d.ts +2 -0
  147. package/dist/matter/behaviors.d.ts.map +1 -0
  148. package/dist/matter/behaviors.js +2 -0
  149. package/dist/matter/behaviors.js.map +1 -0
  150. package/dist/matter/clusters.d.ts +2 -0
  151. package/dist/matter/clusters.d.ts.map +1 -0
  152. package/dist/matter/clusters.js +2 -0
  153. package/dist/matter/clusters.js.map +1 -0
  154. package/dist/matter/devices.d.ts +2 -0
  155. package/dist/matter/devices.d.ts.map +1 -0
  156. package/dist/matter/devices.js +2 -0
  157. package/dist/matter/devices.js.map +1 -0
  158. package/dist/matter/endpoints.d.ts +2 -0
  159. package/dist/matter/endpoints.d.ts.map +1 -0
  160. package/dist/matter/endpoints.js +2 -0
  161. package/dist/matter/endpoints.js.map +1 -0
  162. package/dist/matter/export.d.ts +5 -0
  163. package/dist/matter/export.d.ts.map +1 -0
  164. package/dist/matter/export.js +3 -0
  165. package/dist/matter/export.js.map +1 -0
  166. package/dist/matter/types.d.ts +3 -0
  167. package/dist/matter/types.d.ts.map +1 -0
  168. package/dist/matter/types.js +3 -0
  169. package/dist/matter/types.js.map +1 -0
  170. package/dist/matterbridge.d.ts +430 -0
  171. package/dist/matterbridge.d.ts.map +1 -0
  172. package/dist/matterbridge.js +831 -108
  173. package/dist/matterbridge.js.map +1 -0
  174. package/dist/matterbridgeAccessoryPlatform.d.ts +42 -0
  175. package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
  176. package/dist/matterbridgeAccessoryPlatform.js +36 -0
  177. package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
  178. package/dist/matterbridgeBehaviors.d.ts +1747 -0
  179. package/dist/matterbridgeBehaviors.d.ts.map +1 -0
  180. package/dist/matterbridgeBehaviors.js +65 -5
  181. package/dist/matterbridgeBehaviors.js.map +1 -0
  182. package/dist/matterbridgeDeviceTypes.d.ts +761 -0
  183. package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
  184. package/dist/matterbridgeDeviceTypes.js +630 -17
  185. package/dist/matterbridgeDeviceTypes.js.map +1 -0
  186. package/dist/matterbridgeDynamicPlatform.d.ts +42 -0
  187. package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
  188. package/dist/matterbridgeDynamicPlatform.js +36 -0
  189. package/dist/matterbridgeDynamicPlatform.js.map +1 -0
  190. package/dist/matterbridgeEndpoint.d.ts +1534 -0
  191. package/dist/matterbridgeEndpoint.d.ts.map +1 -0
  192. package/dist/matterbridgeEndpoint.js +1398 -58
  193. package/dist/matterbridgeEndpoint.js.map +1 -0
  194. package/dist/matterbridgeEndpointHelpers.d.ts +407 -0
  195. package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
  196. package/dist/matterbridgeEndpointHelpers.js +345 -12
  197. package/dist/matterbridgeEndpointHelpers.js.map +1 -0
  198. package/dist/matterbridgePlatform.d.ts +402 -0
  199. package/dist/matterbridgePlatform.d.ts.map +1 -0
  200. package/dist/matterbridgePlatform.js +340 -1
  201. package/dist/matterbridgePlatform.js.map +1 -0
  202. package/dist/matterbridgeTypes.d.ts +201 -0
  203. package/dist/matterbridgeTypes.d.ts.map +1 -0
  204. package/dist/matterbridgeTypes.js +30 -0
  205. package/dist/matterbridgeTypes.js.map +1 -0
  206. package/dist/pluginManager.d.ts +270 -0
  207. package/dist/pluginManager.d.ts.map +1 -0
  208. package/dist/pluginManager.js +249 -3
  209. package/dist/pluginManager.js.map +1 -0
  210. package/dist/shelly.d.ts +174 -0
  211. package/dist/shelly.d.ts.map +1 -0
  212. package/dist/shelly.js +168 -7
  213. package/dist/shelly.js.map +1 -0
  214. package/dist/storage/export.d.ts +2 -0
  215. package/dist/storage/export.d.ts.map +1 -0
  216. package/dist/storage/export.js +1 -0
  217. package/dist/storage/export.js.map +1 -0
  218. package/dist/update.d.ts +75 -0
  219. package/dist/update.d.ts.map +1 -0
  220. package/dist/update.js +69 -0
  221. package/dist/update.js.map +1 -0
  222. package/dist/utils/colorUtils.d.ts +99 -0
  223. package/dist/utils/colorUtils.d.ts.map +1 -0
  224. package/dist/utils/colorUtils.js +97 -2
  225. package/dist/utils/colorUtils.js.map +1 -0
  226. package/dist/utils/commandLine.d.ts +59 -0
  227. package/dist/utils/commandLine.d.ts.map +1 -0
  228. package/dist/utils/commandLine.js +54 -0
  229. package/dist/utils/commandLine.js.map +1 -0
  230. package/dist/utils/copyDirectory.d.ts +33 -0
  231. package/dist/utils/copyDirectory.d.ts.map +1 -0
  232. package/dist/utils/copyDirectory.js +38 -1
  233. package/dist/utils/copyDirectory.js.map +1 -0
  234. package/dist/utils/createDirectory.d.ts +34 -0
  235. package/dist/utils/createDirectory.d.ts.map +1 -0
  236. package/dist/utils/createDirectory.js +33 -0
  237. package/dist/utils/createDirectory.js.map +1 -0
  238. package/dist/utils/createZip.d.ts +39 -0
  239. package/dist/utils/createZip.d.ts.map +1 -0
  240. package/dist/utils/createZip.js +47 -2
  241. package/dist/utils/createZip.js.map +1 -0
  242. package/dist/utils/deepCopy.d.ts +32 -0
  243. package/dist/utils/deepCopy.d.ts.map +1 -0
  244. package/dist/utils/deepCopy.js +39 -0
  245. package/dist/utils/deepCopy.js.map +1 -0
  246. package/dist/utils/deepEqual.d.ts +54 -0
  247. package/dist/utils/deepEqual.d.ts.map +1 -0
  248. package/dist/utils/deepEqual.js +72 -1
  249. package/dist/utils/deepEqual.js.map +1 -0
  250. package/dist/utils/error.d.ts +44 -0
  251. package/dist/utils/error.d.ts.map +1 -0
  252. package/dist/utils/error.js +41 -0
  253. package/dist/utils/error.js.map +1 -0
  254. package/dist/utils/export.d.ts +13 -0
  255. package/dist/utils/export.d.ts.map +1 -0
  256. package/dist/utils/export.js +1 -0
  257. package/dist/utils/export.js.map +1 -0
  258. package/dist/utils/hex.d.ts +89 -0
  259. package/dist/utils/hex.d.ts.map +1 -0
  260. package/dist/utils/hex.js +124 -0
  261. package/dist/utils/hex.js.map +1 -0
  262. package/dist/utils/isvalid.d.ts +103 -0
  263. package/dist/utils/isvalid.d.ts.map +1 -0
  264. package/dist/utils/isvalid.js +101 -0
  265. package/dist/utils/isvalid.js.map +1 -0
  266. package/dist/utils/jestHelpers.d.ts +137 -0
  267. package/dist/utils/jestHelpers.d.ts.map +1 -0
  268. package/dist/utils/jestHelpers.js +153 -3
  269. package/dist/utils/jestHelpers.js.map +1 -0
  270. package/dist/utils/network.d.ts +84 -0
  271. package/dist/utils/network.d.ts.map +1 -0
  272. package/dist/utils/network.js +91 -5
  273. package/dist/utils/network.js.map +1 -0
  274. package/dist/utils/spawn.d.ts +34 -0
  275. package/dist/utils/spawn.d.ts.map +1 -0
  276. package/dist/utils/spawn.js +69 -0
  277. package/dist/utils/spawn.js.map +1 -0
  278. package/dist/utils/wait.d.ts +54 -0
  279. package/dist/utils/wait.d.ts.map +1 -0
  280. package/dist/utils/wait.js +60 -8
  281. package/dist/utils/wait.js.map +1 -0
  282. package/npm-shrinkwrap.json +2 -2
  283. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -25,12 +25,13 @@ Advantages:
25
25
 
26
26
  ## [3.3.0] - Not released
27
27
 
28
- ### Development Breaking Changes
28
+ ### Development Breaking Changes Notice
29
29
 
30
+ - [matterbridge]: Now, internal use only properties are private readonly and internal use only methods are private.
30
31
  - [platform]: Now, internal use only properties are private readonly and internal use only methods are private.
31
32
  - [platform]: The signature of the matterbridge param in the platform constructor has changed from Matterbridge to `PlatformMatterbridge` which has only the appropriate readonly properties from matterbridge.
32
33
 
33
- This change, necessary to achieve plugin isolation, will require all plugins to be adapted in two steps.
34
+ This change, necessary to achieve plugin isolation, will require all plugins to be updated in two steps.
34
35
 
35
36
  1. `After` matterbridge `3.3.0` is published as latest:
36
37
 
@@ -89,7 +90,6 @@ In this phase (matterbridge `3.4.x`) all plugins will not build and will not run
89
90
  - [matterbridge]: Added RvcRunMode to frontend state update.
90
91
  - [matterbridge]: Added RvcCleanMode to frontend state update.
91
92
  - [matterbridge]: Added RvcOperationalState to frontend state update.
92
- - [matterbridge]: Added RvcOperationalState to frontend state update.
93
93
  - [matterbridge]: Added ServiceArea to frontend state update.
94
94
  - [matterbridge]: Added ModeSelect to frontend state update.
95
95
 
package/dist/cli.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ /**
2
+ * This file contains the CLI entry point of Matterbridge.
3
+ *
4
+ * @file cli.ts
5
+ * @author Luca Liguori
6
+ * @created 2023-12-29
7
+ * @version 2.0.1
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 { Matterbridge } from './matterbridge.js';
25
+ export declare let instance: Matterbridge | undefined;
26
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAYH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,eAAO,IAAI,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC"}
package/dist/cli.js CHANGED
@@ -1,17 +1,44 @@
1
+ /**
2
+ * This file contains the CLI entry point of Matterbridge.
3
+ *
4
+ * @file cli.ts
5
+ * @author Luca Liguori
6
+ * @created 2023-12-29
7
+ * @version 2.0.1
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
+ */
1
24
  import os from 'node:os';
2
25
  import { inspect } from 'node:util';
26
+ // AnsiLogger module
3
27
  import { AnsiLogger, BRIGHT, CYAN, db, YELLOW } from 'node-ansi-logger';
28
+ // Matterbridge
4
29
  import { getIntParameter, hasParameter } from './utils/export.js';
5
30
  import { Matterbridge } from './matterbridge.js';
6
31
  import { cliEmitter, lastCpuUsage, setLastCpuUsage } from './cliEmitter.js';
7
32
  export let instance;
33
+ // Inspectop
8
34
  let session;
9
35
  let snapshotInterval;
36
+ // Cpu and memory check
10
37
  let memoryCheckInterval;
11
38
  let prevCpus;
12
39
  let peakCpu = 0;
13
40
  let peakRss = 0;
14
- const log = new AnsiLogger({ logName: 'Cli', logTimestampFormat: 4, logLevel: hasParameter('debug') ? "debug" : "info" });
41
+ const log = new AnsiLogger({ logName: 'Cli', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: hasParameter('debug') ? "debug" /* LogLevel.DEBUG */ : "info" /* LogLevel.INFO */ });
15
42
  const formatMemoryUsage = (bytes) => {
16
43
  if (bytes >= 1024 ** 3) {
17
44
  return `${(bytes / 1024 ** 3).toFixed(2)} GB`;
@@ -38,14 +65,20 @@ const formatOsUpTime = (seconds) => {
38
65
  }
39
66
  return `${seconds} second${seconds !== 1 ? 's' : ''}`;
40
67
  };
68
+ /**
69
+ * Starts the CPU and memory check interval.
70
+ */
41
71
  async function startCpuMemoryCheck() {
72
+ // const os = await import('node:os');
42
73
  log.debug(`Cpu memory check started`);
43
74
  prevCpus = os.cpus();
44
75
  clearInterval(memoryCheckInterval);
45
76
  const interval = () => {
77
+ // Get the os uptime
46
78
  const systemUptime = formatOsUpTime(Math.floor(os.uptime()));
47
79
  const processUptime = formatOsUpTime(Math.floor(process.uptime()));
48
80
  cliEmitter.emit('uptime', systemUptime, processUptime);
81
+ // Get the memory usage
49
82
  const totalMememory = formatMemoryUsage(os.totalmem());
50
83
  const freeMemory = formatMemoryUsage(os.freemem());
51
84
  const memoryUsageRaw = process.memoryUsage();
@@ -57,10 +90,12 @@ async function startCpuMemoryCheck() {
57
90
  if (memoryUsageRaw.rss > peakRss)
58
91
  peakRss = memoryUsageRaw.rss;
59
92
  cliEmitter.emit('memory', totalMememory, freeMemory, rss, heapTotal, heapUsed, external, arrayBuffers);
93
+ // Get the cpu usage
60
94
  const currCpus = os.cpus();
95
+ // log.debug(`Cpus: ${JSON.stringify(currCpus)}`);
61
96
  let cpuUsageLog;
62
97
  if (currCpus.length !== prevCpus.length) {
63
- prevCpus = currCpus;
98
+ prevCpus = currCpus; // Reset the previous cpus
64
99
  log.debug(`Cpu check length failed, resetting previous cpus`);
65
100
  return;
66
101
  }
@@ -86,20 +121,29 @@ async function startCpuMemoryCheck() {
86
121
  cliEmitter.emit('cpu', lastCpuUsage);
87
122
  }
88
123
  prevCpus = currCpus;
124
+ // Show the cpu and memory usage
89
125
  log.debug(`***${YELLOW}${BRIGHT}Cpu usage:${db} ${CYAN}${cpuUsageLog.padStart(6, ' ')} %${db} ${YELLOW}${BRIGHT}Memory usage:${db} rss ${CYAN}${rss}${db} heapTotal ${CYAN}${heapTotal}${db} heapUsed ${CYAN}${heapUsed}${db} external ${external} arrayBuffers ${arrayBuffers}`);
90
126
  };
91
127
  interval();
92
128
  clearInterval(memoryCheckInterval);
93
129
  memoryCheckInterval = setInterval(interval, getIntParameter('memoryinterval') ?? 10 * 1000).unref();
94
130
  }
131
+ /**
132
+ * Stops the CPU and memory check interval.
133
+ */
95
134
  async function stopCpuMemoryCheck() {
96
135
  log.debug(`***Cpu memory check stopped. Peak cpu: ${CYAN}${peakCpu.toFixed(2)} %${db}. Peak rss: ${CYAN}${formatMemoryUsage(peakRss)}${db}.`);
97
136
  clearInterval(memoryCheckInterval);
98
137
  }
138
+ /**
139
+ * Starts the inspector for heap sampling.
140
+ * This function is called when the -inspect parameter is passed.
141
+ */
99
142
  async function startInspector() {
100
143
  const { Session } = await import('node:inspector');
101
144
  const { mkdirSync } = await import('node:fs');
102
145
  log.debug(`***Starting heap sampling...`);
146
+ // Create the heap snapshots directory if it doesn't exist
103
147
  mkdirSync('heap_profile', { recursive: true });
104
148
  try {
105
149
  session = new Session();
@@ -108,6 +152,7 @@ async function startInspector() {
108
152
  session?.post('HeapProfiler.startSampling', (err) => (err ? reject(err) : resolve()));
109
153
  });
110
154
  log.debug(`***Started heap sampling`);
155
+ // Set an interval to take heap snapshots
111
156
  const interval = getIntParameter('snapshotinterval');
112
157
  if (interval && interval >= 30000) {
113
158
  log.debug(`***Started heap snapshot interval of ${CYAN}${interval}${db} ms`);
@@ -125,13 +170,19 @@ async function startInspector() {
125
170
  return;
126
171
  }
127
172
  }
173
+ /**
174
+ * Stops the heap sampling and saves the profile to a file.
175
+ * This function is called when the inspector is stopped.
176
+ */
128
177
  async function stopInspector() {
129
178
  const { writeFileSync } = await import('node:fs');
130
179
  const path = await import('node:path');
131
180
  log.debug(`***Stopping heap sampling...`);
132
181
  if (snapshotInterval) {
133
182
  log.debug(`***Clearing heap snapshot interval...`);
183
+ // Clear the snapshot interval if it exists
134
184
  clearInterval(snapshotInterval);
185
+ // Take a final heap snapshot before stopping
135
186
  await takeHeapSnapshot();
136
187
  }
137
188
  if (!session) {
@@ -139,6 +190,7 @@ async function stopInspector() {
139
190
  return;
140
191
  }
141
192
  try {
193
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
142
194
  const result = await new Promise((resolve, reject) => {
143
195
  session?.post('HeapProfiler.stopSampling', (err, result) => (err ? reject(err) : resolve(result)));
144
196
  });
@@ -156,6 +208,13 @@ async function stopInspector() {
156
208
  log.debug(`***Stopped heap sampling`);
157
209
  }
158
210
  }
211
+ /**
212
+ * Takes a heap snapshot and saves it to the file name Heap-snapshot-<timestamp>.heapsnapshot.
213
+ * This function is called periodically based on the -snapshotinterval parameter.
214
+ * The -snapshotinterval parameter must at least 30000 ms.
215
+ * The snapshot is saved in the heap_profile directory that is created in the current working directory.
216
+ * The snapshot can be analyzed using vscode or Chrome DevTools or other tools that support heap snapshots.
217
+ */
159
218
  async function takeHeapSnapshot() {
160
219
  const { writeFileSync } = await import('node:fs');
161
220
  const path = await import('node:path');
@@ -187,6 +246,10 @@ async function takeHeapSnapshot() {
187
246
  });
188
247
  });
189
248
  }
249
+ /**
250
+ * Triggers a manual garbage collection.
251
+ * This function is working only if the process is started with --expose-gc.
252
+ */
190
253
  function triggerGarbageCollection() {
191
254
  if (typeof global.gc === 'function') {
192
255
  global.gc();
@@ -196,6 +259,9 @@ function triggerGarbageCollection() {
196
259
  log.debug('Garbage collection is not exposed. Start Node.js with --expose-gc to enable manual GC.');
197
260
  }
198
261
  }
262
+ /**
263
+ * Registers event handlers for the Matterbridge instance.
264
+ */
199
265
  function registerHandlers() {
200
266
  log.debug('Registering event handlers...');
201
267
  if (instance)
@@ -218,32 +284,52 @@ function registerHandlers() {
218
284
  instance.on('triggergarbagecollection', async () => triggerGarbageCollection());
219
285
  log.debug('Registered event handlers');
220
286
  }
287
+ /**
288
+ * Shuts down the Matterbridge instance and exits the process.
289
+ */
221
290
  async function shutdown() {
222
291
  log.debug('Received shutdown event, exiting...');
223
292
  if (hasParameter('inspect'))
224
293
  await stopInspector();
225
294
  await stopCpuMemoryCheck();
226
295
  cliEmitter.emit('shutdown');
296
+ // eslint-disable-next-line n/no-process-exit
227
297
  process.exit(0);
228
298
  }
299
+ /**
300
+ *
301
+ */
229
302
  async function restart() {
230
303
  log.debug('Received restart event, loading...');
231
304
  instance = await Matterbridge.loadInstance(true);
232
305
  registerHandlers();
233
306
  }
307
+ /**
308
+ *
309
+ */
234
310
  async function update() {
235
311
  log.debug('Received update event, updating...');
312
+ // TODO: Implement update logic outside of matterbridge
236
313
  instance = await Matterbridge.loadInstance(true);
237
314
  registerHandlers();
238
315
  }
316
+ /**
317
+ * Starts the CPU and memory check when the -startmemorycheck parameter is passed.
318
+ */
239
319
  async function start() {
240
320
  log.debug('Received start memory check event');
241
321
  await startCpuMemoryCheck();
242
322
  }
323
+ /**
324
+ * Stops the CPU and memory check when the -stopmemorycheck parameter is passed.
325
+ */
243
326
  async function stop() {
244
327
  log.debug('Received stop memory check event');
245
328
  await stopCpuMemoryCheck();
246
329
  }
330
+ /**
331
+ * Main function that initializes the Matterbridge instance and starts the CLI.
332
+ */
247
333
  async function main() {
248
334
  log.debug(`Cli main() started`);
249
335
  await startCpuMemoryCheck();
@@ -252,6 +338,7 @@ async function main() {
252
338
  log.debug(`***Matterbridge.loadInstance(true) called`);
253
339
  instance = await Matterbridge.loadInstance(true);
254
340
  log.debug(`***Matterbridge.loadInstance(true) exited`);
341
+ // Check if the instance needs to shut down from parseCommandLine()
255
342
  if (!instance || instance.shutdown) {
256
343
  shutdown();
257
344
  }
@@ -260,9 +347,11 @@ async function main() {
260
347
  cliEmitter.emit('ready');
261
348
  }
262
349
  }
350
+ // Run the main function
263
351
  process.title = 'matterbridge';
264
352
  main().catch((error) => {
265
353
  const errorMessage = error instanceof Error ? error.message : error;
266
354
  const errorInspect = inspect(error, { depth: 10 });
267
355
  log.error(`Matterbridge.loadInstance() failed with error: ${errorMessage}\nstack: ${errorInspect}`);
268
356
  });
357
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * This file contains the CLI emitter.
3
+ *
4
+ * @file cliEmitter.ts
5
+ * @author Luca Liguori
6
+ * @created 2025-07-04
7
+ * @version 1.0.0
8
+ * @license Apache-2.0
9
+ *
10
+ * Copyright 2025, 2026, 2027 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
+ export declare const cliEmitter: EventEmitter<[never]>;
26
+ export declare let lastCpuUsage: number;
27
+ /**
28
+ * Sets the last CPU usage.
29
+ *
30
+ * @param {number} val - The CPU usage percentage to set.
31
+ * @returns {void}
32
+ */
33
+ export declare function setLastCpuUsage(val: number): void;
34
+ //# sourceMappingURL=cliEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliEmitter.d.ts","sourceRoot":"","sources":["../src/cliEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,eAAO,MAAM,UAAU,uBAAqB,CAAC;AAE7C,eAAO,IAAI,YAAY,QAAI,CAAC;AAE5B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEjD"}
@@ -1,6 +1,36 @@
1
+ /**
2
+ * This file contains the CLI emitter.
3
+ *
4
+ * @file cliEmitter.ts
5
+ * @author Luca Liguori
6
+ * @created 2025-07-04
7
+ * @version 1.0.0
8
+ * @license Apache-2.0
9
+ *
10
+ * Copyright 2025, 2026, 2027 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
+ */
1
24
  import { EventEmitter } from 'node:events';
2
25
  export const cliEmitter = new EventEmitter();
3
26
  export let lastCpuUsage = 0;
27
+ /**
28
+ * Sets the last CPU usage.
29
+ *
30
+ * @param {number} val - The CPU usage percentage to set.
31
+ * @returns {void}
32
+ */
4
33
  export function setLastCpuUsage(val) {
5
34
  lastCpuUsage = val;
6
35
  }
36
+ //# sourceMappingURL=cliEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliEmitter.js","sourceRoot":"","sources":["../src/cliEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAE7C,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,YAAY,GAAG,GAAG,CAAC;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/clusters/export.ts"],"names":[],"mappings":""}
@@ -1 +1,3 @@
1
1
  export {};
2
+ // Nothing to export right now, but this file is here to make it easier to add exports in the future
3
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/clusters/export.ts"],"names":[],"mappings":";AAAA,oGAAoG"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * This file contains the default config for the plugins.
3
+ *
4
+ * @file defaultConfigSchema.ts
5
+ * @author Luca Liguori
6
+ * @created 2024-05-07
7
+ * @version 1.0.1
8
+ * @license Apache-2.0
9
+ *
10
+ * Copyright 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
+ import { PlatformConfig } from './matterbridgePlatform.js';
25
+ export declare const zigbee2mqtt_config: PlatformConfig;
26
+ export declare const somfytahoma_config: PlatformConfig;
27
+ export declare const shelly_config: PlatformConfig;
28
+ //# sourceMappingURL=defaultConfigSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultConfigSchema.d.ts","sourceRoot":"","sources":["../src/defaultConfigSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,cAkBhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAYhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cA4B3B,CAAC"}
@@ -1,3 +1,26 @@
1
+ /**
2
+ * This file contains the default config for the plugins.
3
+ *
4
+ * @file defaultConfigSchema.ts
5
+ * @author Luca Liguori
6
+ * @created 2024-05-07
7
+ * @version 1.0.1
8
+ * @license Apache-2.0
9
+ *
10
+ * Copyright 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
+ */
1
24
  export const zigbee2mqtt_config = {
2
25
  name: 'matterbridge-zigbee2mqtt',
3
26
  type: 'DynamicPlatform',
@@ -59,3 +82,4 @@ export const shelly_config = {
59
82
  debugWs: false,
60
83
  unregisterOnShutdown: false,
61
84
  };
85
+ //# sourceMappingURL=defaultConfigSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultConfigSchema.js","sourceRoot":"","sources":["../src/defaultConfigSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,EAAE;IAC1B,KAAK,EAAE,KAAK;IACZ,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,KAAK,EAAE,KAAK;IACZ,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,EAAE;IACtB,iBAAiB,EAAE,EAAE;IACrB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,qBAAqB,EAAE,EAAE;IACzB,WAAW,EAAE,EAAE;IACf,kBAAkB,EAAE,IAAI;IACxB,qBAAqB,EAAE,IAAI;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,KAAK;IACjB,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,oBAAoB,EAAE,KAAK;CAC5B,CAAC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * This file contains the DeviceManager class.
3
+ *
4
+ * @file devices.ts
5
+ * @author Luca Liguori
6
+ * @created 2024-07-26
7
+ * @version 1.0.11
8
+ * @license Apache-2.0
9
+ *
10
+ * Copyright 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
+ import { LogLevel } from 'node-ansi-logger';
25
+ import { Matterbridge } from './matterbridge.js';
26
+ import { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
27
+ /**
28
+ * Manages Matterbridge devices.
29
+ */
30
+ export declare class DeviceManager {
31
+ private readonly _devices;
32
+ private readonly matterbridge;
33
+ private readonly log;
34
+ /**
35
+ * Creates an instance of DeviceManager.
36
+ *
37
+ * @param {Matterbridge} matterbridge - The Matterbridge instance.
38
+ */
39
+ constructor(matterbridge: Matterbridge);
40
+ /**
41
+ * Gets the number of devices.
42
+ *
43
+ * @returns {number} The number of devices.
44
+ */
45
+ get length(): number;
46
+ /**
47
+ * Gets the number of devices.
48
+ *
49
+ * @returns {number} The number of devices.
50
+ */
51
+ get size(): number;
52
+ /**
53
+ * Checks if a device with the specified unique ID exists.
54
+ *
55
+ * @param {string} uniqueId - The unique ID of the device.
56
+ * @returns {boolean} True if the device exists, false otherwise.
57
+ */
58
+ has(uniqueId: string): boolean;
59
+ /**
60
+ * Gets a device by its unique ID.
61
+ *
62
+ * @param {string} uniqueId - The unique ID of the device.
63
+ * @returns {MatterbridgeEndpoint | undefined} The device, or undefined if not found.
64
+ */
65
+ get(uniqueId: string): MatterbridgeEndpoint | undefined;
66
+ /**
67
+ * Adds a device to the manager.
68
+ *
69
+ * @param {MatterbridgeEndpoint} device - The device to add.
70
+ * @returns {MatterbridgeEndpoint} The added device.
71
+ * @throws {Error} If the device does not have a unique ID.
72
+ */
73
+ set(device: MatterbridgeEndpoint): MatterbridgeEndpoint;
74
+ /**
75
+ * Removes a device from the manager.
76
+ *
77
+ * @param {MatterbridgeEndpoint} device - The device to remove.
78
+ * @returns {boolean} True if the device was removed, false otherwise.
79
+ * @throws {Error} If the device does not have a unique ID.
80
+ */
81
+ remove(device: MatterbridgeEndpoint): boolean;
82
+ /**
83
+ * Clears all devices from the manager.
84
+ */
85
+ clear(): void;
86
+ /**
87
+ * Gets an array of all devices.
88
+ *
89
+ * @returns {MatterbridgeEndpoint[]} An array of all devices.
90
+ */
91
+ array(): MatterbridgeEndpoint[];
92
+ /**
93
+ * Iterates over all devices.
94
+ *
95
+ * @returns {IterableIterator<MatterbridgeEndpoint>} An iterator for the devices.
96
+ */
97
+ [Symbol.iterator](): MapIterator<MatterbridgeEndpoint>;
98
+ /**
99
+ * Asynchronously iterates over each device and calls the provided callback function.
100
+ *
101
+ * @param {(device: MatterbridgeEndpoint) => Promise<void>} callback - The callback function to call with each device.
102
+ * @returns {Promise<void>} A promise that resolves when all callbacks have been called.
103
+ */
104
+ forEach(callback: (device: MatterbridgeEndpoint) => Promise<void>): Promise<void>;
105
+ /**
106
+ * Sets the log level.
107
+ *
108
+ * @param {LogLevel} logLevel - The log level to set.
109
+ */
110
+ set logLevel(logLevel: LogLevel);
111
+ }
112
+ //# sourceMappingURL=deviceManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceManager.d.ts","sourceRoot":"","sources":["../src/deviceManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAwB,QAAQ,EAAmB,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IAEjC;;;;OAIG;gBACS,YAAY,EAAE,YAAY;IAMtC;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;;OAKG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIvD;;;;;;OAMG;IACH,GAAG,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB;IAOvD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO;IAM7C;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,KAAK,IAAI,oBAAoB,EAAE;IAI/B;;;;OAIG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAavF;;;;OAIG;IACH,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAE9B;CACF"}