matterbridge 3.5.2 → 3.5.3-dev-20260202-e19e9b6

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 (280) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/README-DOCKER.md +2 -2
  3. package/README.md +14 -9
  4. package/dist/broadcastServer.d.ts +0 -115
  5. package/dist/broadcastServer.js +0 -117
  6. package/dist/broadcastServerTypes.d.ts +0 -43
  7. package/dist/broadcastServerTypes.js +0 -24
  8. package/dist/checkUpdates.d.ts +0 -75
  9. package/dist/checkUpdates.js +1 -91
  10. package/dist/cli.d.ts +0 -24
  11. package/dist/cli.js +1 -97
  12. package/dist/cliEmitter.d.ts +0 -36
  13. package/dist/cliEmitter.js +0 -37
  14. package/dist/cliHistory.d.ts +0 -42
  15. package/dist/cliHistory.js +0 -38
  16. package/dist/clusters/export.d.ts +0 -1
  17. package/dist/clusters/export.js +0 -2
  18. package/dist/deviceManager.d.ts +0 -108
  19. package/dist/deviceManager.js +1 -114
  20. package/dist/devices/airConditioner.d.ts +0 -75
  21. package/dist/devices/airConditioner.js +0 -57
  22. package/dist/devices/basicVideoPlayer.d.ts +0 -58
  23. package/dist/devices/basicVideoPlayer.js +1 -56
  24. package/dist/devices/batteryStorage.d.ts +0 -43
  25. package/dist/devices/batteryStorage.js +1 -48
  26. package/dist/devices/castingVideoPlayer.d.ts +0 -63
  27. package/dist/devices/castingVideoPlayer.js +2 -65
  28. package/dist/devices/cooktop.d.ts +0 -55
  29. package/dist/devices/cooktop.js +0 -56
  30. package/dist/devices/dishwasher.d.ts +0 -55
  31. package/dist/devices/dishwasher.js +0 -57
  32. package/dist/devices/evse.d.ts +0 -57
  33. package/dist/devices/evse.js +10 -74
  34. package/dist/devices/export.d.ts +0 -1
  35. package/dist/devices/export.js +0 -5
  36. package/dist/devices/extractorHood.d.ts +0 -41
  37. package/dist/devices/extractorHood.js +0 -43
  38. package/dist/devices/heatPump.d.ts +0 -43
  39. package/dist/devices/heatPump.js +2 -50
  40. package/dist/devices/laundryDryer.d.ts +0 -58
  41. package/dist/devices/laundryDryer.js +3 -62
  42. package/dist/devices/laundryWasher.d.ts +0 -64
  43. package/dist/devices/laundryWasher.js +4 -70
  44. package/dist/devices/microwaveOven.d.ts +1 -77
  45. package/dist/devices/microwaveOven.js +5 -88
  46. package/dist/devices/oven.d.ts +0 -82
  47. package/dist/devices/oven.js +0 -85
  48. package/dist/devices/refrigerator.d.ts +0 -100
  49. package/dist/devices/refrigerator.js +0 -102
  50. package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
  51. package/dist/devices/roboticVacuumCleaner.js +9 -100
  52. package/dist/devices/solarPower.d.ts +0 -36
  53. package/dist/devices/solarPower.js +0 -38
  54. package/dist/devices/speaker.d.ts +0 -79
  55. package/dist/devices/speaker.js +0 -84
  56. package/dist/devices/temperatureControl.d.ts +0 -21
  57. package/dist/devices/temperatureControl.js +3 -24
  58. package/dist/devices/waterHeater.d.ts +0 -74
  59. package/dist/devices/waterHeater.js +2 -82
  60. package/dist/dgram/export.d.ts +0 -1
  61. package/dist/dgram/export.js +0 -1
  62. package/dist/frontend.d.ts +0 -187
  63. package/dist/frontend.js +37 -498
  64. package/dist/frontendTypes.d.ts +0 -57
  65. package/dist/frontendTypes.js +0 -45
  66. package/dist/helpers.d.ts +0 -43
  67. package/dist/helpers.js +0 -54
  68. package/dist/index.d.ts +0 -23
  69. package/dist/index.js +0 -25
  70. package/dist/jestutils/export.d.ts +0 -1
  71. package/dist/jestutils/export.js +0 -1
  72. package/dist/jestutils/jestHelpers.d.ts +0 -255
  73. package/dist/jestutils/jestHelpers.js +15 -371
  74. package/dist/logger/export.d.ts +0 -1
  75. package/dist/logger/export.js +0 -1
  76. package/dist/matter/behaviors.d.ts +0 -1
  77. package/dist/matter/behaviors.js +0 -2
  78. package/dist/matter/clusters.d.ts +0 -1
  79. package/dist/matter/clusters.js +0 -2
  80. package/dist/matter/devices.d.ts +0 -1
  81. package/dist/matter/devices.js +0 -2
  82. package/dist/matter/endpoints.d.ts +0 -1
  83. package/dist/matter/endpoints.js +0 -2
  84. package/dist/matter/export.d.ts +0 -1
  85. package/dist/matter/export.js +0 -2
  86. package/dist/matter/types.d.ts +0 -1
  87. package/dist/matter/types.js +0 -2
  88. package/dist/matterNode.d.ts +0 -258
  89. package/dist/matterNode.js +8 -359
  90. package/dist/matterbridge.d.ts +0 -373
  91. package/dist/matterbridge.js +46 -854
  92. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
  93. package/dist/matterbridgeAccessoryPlatform.js +0 -50
  94. package/dist/matterbridgeBehaviors.d.ts +0 -24
  95. package/dist/matterbridgeBehaviors.js +5 -65
  96. package/dist/matterbridgeDeviceTypes.d.ts +0 -649
  97. package/dist/matterbridgeDeviceTypes.js +6 -673
  98. package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
  99. package/dist/matterbridgeDynamicPlatform.js +0 -50
  100. package/dist/matterbridgeEndpoint.d.ts +0 -1369
  101. package/dist/matterbridgeEndpoint.js +54 -1507
  102. package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
  103. package/dist/matterbridgeEndpointHelpers.js +20 -482
  104. package/dist/matterbridgeEndpointTypes.d.ts +0 -70
  105. package/dist/matterbridgeEndpointTypes.js +0 -25
  106. package/dist/matterbridgePlatform.d.ts +0 -434
  107. package/dist/matterbridgePlatform.js +1 -472
  108. package/dist/matterbridgePlatformTypes.d.ts +0 -29
  109. package/dist/matterbridgePlatformTypes.js +0 -24
  110. package/dist/matterbridgeTypes.d.ts +0 -46
  111. package/dist/matterbridgeTypes.js +0 -26
  112. package/dist/mb_coap.d.ts +0 -23
  113. package/dist/mb_coap.js +3 -41
  114. package/dist/mb_health.d.ts +0 -67
  115. package/dist/mb_health.js +0 -70
  116. package/dist/mb_mdns.d.ts +0 -23
  117. package/dist/mb_mdns.js +36 -94
  118. package/dist/pluginManager.d.ts +0 -305
  119. package/dist/pluginManager.js +5 -342
  120. package/dist/shelly.d.ts +0 -157
  121. package/dist/shelly.js +7 -178
  122. package/dist/spawn.d.ts +0 -32
  123. package/dist/spawn.js +1 -71
  124. package/dist/storage/export.d.ts +0 -1
  125. package/dist/storage/export.js +0 -1
  126. package/dist/utils/export.d.ts +0 -1
  127. package/dist/utils/export.js +0 -1
  128. package/dist/worker.d.ts +0 -61
  129. package/dist/worker.js +4 -65
  130. package/dist/workerCheckUpdates.d.ts +0 -24
  131. package/dist/workerCheckUpdates.js +5 -36
  132. package/dist/workerGlobalPrefix.d.ts +0 -24
  133. package/dist/workerGlobalPrefix.js +5 -36
  134. package/dist/workerTypes.d.ts +0 -25
  135. package/dist/workerTypes.js +0 -24
  136. package/frontend/build/assets/index.js +4 -4
  137. package/frontend/build/assets/vendor_emotion.js +1 -1
  138. package/frontend/build/assets/vendor_lodash.js +1 -1
  139. package/frontend/build/assets/vendor_mdi.js +1 -1
  140. package/frontend/build/assets/vendor_mui.js +22 -22
  141. package/frontend/build/assets/vendor_node_modules.js +20 -20
  142. package/frontend/build/assets/vendor_notistack.js +2 -2
  143. package/frontend/build/assets/vendor_qrcode.js +1 -1
  144. package/frontend/build/assets/vendor_rjsf.js +8 -8
  145. package/frontend/build/index.html +1 -1
  146. package/frontend/package.json +48 -47
  147. package/npm-shrinkwrap.json +77 -47
  148. package/package.json +7 -7
  149. package/dist/broadcastServer.d.ts.map +0 -1
  150. package/dist/broadcastServer.js.map +0 -1
  151. package/dist/broadcastServerTypes.d.ts.map +0 -1
  152. package/dist/broadcastServerTypes.js.map +0 -1
  153. package/dist/checkUpdates.d.ts.map +0 -1
  154. package/dist/checkUpdates.js.map +0 -1
  155. package/dist/cli.d.ts.map +0 -1
  156. package/dist/cli.js.map +0 -1
  157. package/dist/cliEmitter.d.ts.map +0 -1
  158. package/dist/cliEmitter.js.map +0 -1
  159. package/dist/cliHistory.d.ts.map +0 -1
  160. package/dist/cliHistory.js.map +0 -1
  161. package/dist/clusters/export.d.ts.map +0 -1
  162. package/dist/clusters/export.js.map +0 -1
  163. package/dist/deviceManager.d.ts.map +0 -1
  164. package/dist/deviceManager.js.map +0 -1
  165. package/dist/devices/airConditioner.d.ts.map +0 -1
  166. package/dist/devices/airConditioner.js.map +0 -1
  167. package/dist/devices/basicVideoPlayer.d.ts.map +0 -1
  168. package/dist/devices/basicVideoPlayer.js.map +0 -1
  169. package/dist/devices/batteryStorage.d.ts.map +0 -1
  170. package/dist/devices/batteryStorage.js.map +0 -1
  171. package/dist/devices/castingVideoPlayer.d.ts.map +0 -1
  172. package/dist/devices/castingVideoPlayer.js.map +0 -1
  173. package/dist/devices/cooktop.d.ts.map +0 -1
  174. package/dist/devices/cooktop.js.map +0 -1
  175. package/dist/devices/dishwasher.d.ts.map +0 -1
  176. package/dist/devices/dishwasher.js.map +0 -1
  177. package/dist/devices/evse.d.ts.map +0 -1
  178. package/dist/devices/evse.js.map +0 -1
  179. package/dist/devices/export.d.ts.map +0 -1
  180. package/dist/devices/export.js.map +0 -1
  181. package/dist/devices/extractorHood.d.ts.map +0 -1
  182. package/dist/devices/extractorHood.js.map +0 -1
  183. package/dist/devices/heatPump.d.ts.map +0 -1
  184. package/dist/devices/heatPump.js.map +0 -1
  185. package/dist/devices/laundryDryer.d.ts.map +0 -1
  186. package/dist/devices/laundryDryer.js.map +0 -1
  187. package/dist/devices/laundryWasher.d.ts.map +0 -1
  188. package/dist/devices/laundryWasher.js.map +0 -1
  189. package/dist/devices/microwaveOven.d.ts.map +0 -1
  190. package/dist/devices/microwaveOven.js.map +0 -1
  191. package/dist/devices/oven.d.ts.map +0 -1
  192. package/dist/devices/oven.js.map +0 -1
  193. package/dist/devices/refrigerator.d.ts.map +0 -1
  194. package/dist/devices/refrigerator.js.map +0 -1
  195. package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
  196. package/dist/devices/roboticVacuumCleaner.js.map +0 -1
  197. package/dist/devices/solarPower.d.ts.map +0 -1
  198. package/dist/devices/solarPower.js.map +0 -1
  199. package/dist/devices/speaker.d.ts.map +0 -1
  200. package/dist/devices/speaker.js.map +0 -1
  201. package/dist/devices/temperatureControl.d.ts.map +0 -1
  202. package/dist/devices/temperatureControl.js.map +0 -1
  203. package/dist/devices/waterHeater.d.ts.map +0 -1
  204. package/dist/devices/waterHeater.js.map +0 -1
  205. package/dist/dgram/export.d.ts.map +0 -1
  206. package/dist/dgram/export.js.map +0 -1
  207. package/dist/frontend.d.ts.map +0 -1
  208. package/dist/frontend.js.map +0 -1
  209. package/dist/frontendTypes.d.ts.map +0 -1
  210. package/dist/frontendTypes.js.map +0 -1
  211. package/dist/helpers.d.ts.map +0 -1
  212. package/dist/helpers.js.map +0 -1
  213. package/dist/index.d.ts.map +0 -1
  214. package/dist/index.js.map +0 -1
  215. package/dist/jestutils/export.d.ts.map +0 -1
  216. package/dist/jestutils/export.js.map +0 -1
  217. package/dist/jestutils/jestHelpers.d.ts.map +0 -1
  218. package/dist/jestutils/jestHelpers.js.map +0 -1
  219. package/dist/logger/export.d.ts.map +0 -1
  220. package/dist/logger/export.js.map +0 -1
  221. package/dist/matter/behaviors.d.ts.map +0 -1
  222. package/dist/matter/behaviors.js.map +0 -1
  223. package/dist/matter/clusters.d.ts.map +0 -1
  224. package/dist/matter/clusters.js.map +0 -1
  225. package/dist/matter/devices.d.ts.map +0 -1
  226. package/dist/matter/devices.js.map +0 -1
  227. package/dist/matter/endpoints.d.ts.map +0 -1
  228. package/dist/matter/endpoints.js.map +0 -1
  229. package/dist/matter/export.d.ts.map +0 -1
  230. package/dist/matter/export.js.map +0 -1
  231. package/dist/matter/types.d.ts.map +0 -1
  232. package/dist/matter/types.js.map +0 -1
  233. package/dist/matterNode.d.ts.map +0 -1
  234. package/dist/matterNode.js.map +0 -1
  235. package/dist/matterbridge.d.ts.map +0 -1
  236. package/dist/matterbridge.js.map +0 -1
  237. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  238. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  239. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  240. package/dist/matterbridgeBehaviors.js.map +0 -1
  241. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  242. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  243. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  244. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  245. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  246. package/dist/matterbridgeEndpoint.js.map +0 -1
  247. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  248. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  249. package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
  250. package/dist/matterbridgeEndpointTypes.js.map +0 -1
  251. package/dist/matterbridgePlatform.d.ts.map +0 -1
  252. package/dist/matterbridgePlatform.js.map +0 -1
  253. package/dist/matterbridgePlatformTypes.d.ts.map +0 -1
  254. package/dist/matterbridgePlatformTypes.js.map +0 -1
  255. package/dist/matterbridgeTypes.d.ts.map +0 -1
  256. package/dist/matterbridgeTypes.js.map +0 -1
  257. package/dist/mb_coap.d.ts.map +0 -1
  258. package/dist/mb_coap.js.map +0 -1
  259. package/dist/mb_health.d.ts.map +0 -1
  260. package/dist/mb_health.js.map +0 -1
  261. package/dist/mb_mdns.d.ts.map +0 -1
  262. package/dist/mb_mdns.js.map +0 -1
  263. package/dist/pluginManager.d.ts.map +0 -1
  264. package/dist/pluginManager.js.map +0 -1
  265. package/dist/shelly.d.ts.map +0 -1
  266. package/dist/shelly.js.map +0 -1
  267. package/dist/spawn.d.ts.map +0 -1
  268. package/dist/spawn.js.map +0 -1
  269. package/dist/storage/export.d.ts.map +0 -1
  270. package/dist/storage/export.js.map +0 -1
  271. package/dist/utils/export.d.ts.map +0 -1
  272. package/dist/utils/export.js.map +0 -1
  273. package/dist/worker.d.ts.map +0 -1
  274. package/dist/worker.js.map +0 -1
  275. package/dist/workerCheckUpdates.d.ts.map +0 -1
  276. package/dist/workerCheckUpdates.js.map +0 -1
  277. package/dist/workerGlobalPrefix.d.ts.map +0 -1
  278. package/dist/workerGlobalPrefix.js.map +0 -1
  279. package/dist/workerTypes.d.ts.map +0 -1
  280. package/dist/workerTypes.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -33,7 +33,7 @@ The project will evolve to a multi-threaded architecture (the CLI will become th
33
33
 
34
34
  - ✅ check updates;
35
35
  - npm install;
36
- - ✅ get the global node_modules directory;
36
+ - ✅ check the global node_modules directory;
37
37
 
38
38
  Advantages:
39
39
 
@@ -42,6 +42,35 @@ Advantages:
42
42
  - individual plugin isolation in childbridge mode;
43
43
  - ability to update the plugin in childbridge mode without restarting matterbridge;
44
44
 
45
+ ## [3.5.3] - Dev branch
46
+
47
+ ### Breaking Changes
48
+
49
+ - [docker]: Updated latest and dev docker images to use node:24-trixie-slim as base.
50
+
51
+ ### Added
52
+
53
+ - [docker]: Added workflow, scripts and dockerfile to build the s6-rc-base base image used by the Matterbridge Home Assistant Application.
54
+ - [frontend]: Added title render to the config editor and allow ui properties in 'oneOf', 'anyOf', 'allOf'. Thanks RinDevJunior (https://github.com/Luligu/matterbridge/pull/495).
55
+ - [frontend]: Added SearchPluginsDialog in Install plugins panel on the home page.
56
+ - [publish]: Migrate to trusted publishing / OIDC.
57
+
58
+ ### Changed
59
+
60
+ - [package]: Updated dependencies.
61
+ - [workflows]: Updated all workflows to use Node.js 24.
62
+ - [readme]: Updated readme files to clarify which Node.js version should be installed.
63
+ - [docker]: Updated readme file to clarify which base image is used.
64
+ - [matter.js]: Bump to matter.j v. 0.16.8.
65
+ - [frontend]: Bumped `frontend` version to v. 3.4.4.
66
+ - [frontend]: Updated `frontend` dependencies.
67
+
68
+ ### Fixed
69
+
70
+ - [publish]: Updated publish.yml to trigger the correct docker-buildx-latest.yml.
71
+
72
+ <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
73
+
45
74
  ## [3.5.2] - 2026-01-31
46
75
 
47
76
  ### Added
package/README-DOCKER.md CHANGED
@@ -20,9 +20,9 @@
20
20
 
21
21
  The Matterbridge Docker images (multi-arch manifest list for **linux/amd64** and **linux/arm64**) are published on [**Docker Hub**](https://hub.docker.com/r/luligu/matterbridge). If you use them, please consider starring the project on [**Docker Hub**](https://hub.docker.com/r/luligu/matterbridge).
22
22
 
23
- The image (tag **latest**) includes Matterbridge and all official plugins, using the latest release published on npm. It is based on `node:22-bookworm-slim`. Since all official plugins are included, you can select and add a plugin without installing anything.
23
+ The image (tag **latest**) includes Matterbridge and all official plugins, using the latest release published on npm. It is based on `node:24-trixie-slim`. Since all official plugins are included, you can select and add a plugin without installing anything.
24
24
 
25
- The image (tag **dev**) includes Matterbridge and all official plugins from the latest push on GitHub. It is based on `node:22-bookworm-slim`. Since all official plugins are included, you can select and add a plugin without installing anything. Note: if you update to the latest **dev** from the frontend, you will override the GitHub version with the latest **dev** published on npm.
25
+ The image (tag **dev**) includes Matterbridge and all official plugins from the latest push on GitHub. It is based on `node:24-trixie-slim`. Since all official plugins are included, you can select and add a plugin without installing anything. Note: if you update to the latest **dev** from the frontend, you will override the GitHub version with the latest **dev** published on npm. The frontend shows if you are currently running the GitHub release or the latest or dev npm release.
26
26
 
27
27
  The image (tag **ubuntu**) includes only Matterbridge, using the latest release published on npm. This image (**for test and development only**) is based on `ubuntu:latest` with Node.js 24 from NodeSource. Plugins are not included in the image; they will be installed on first run. This image preinstalls `bluetooth`, `build-essential`, and `python` packages (useful for plugins that require native builds).
28
28
 
package/README.md CHANGED
@@ -71,16 +71,21 @@ https://blog.adafruit.com/2025/11/03/matterbridge-a-matter-plugin-manager/
71
71
 
72
72
  To run Matterbridge, you need either a [Node.js](https://nodejs.org/en) environment or [Docker](https://docs.docker.com/get-started/get-docker/) installed on your system.
73
73
 
74
- If you don't have Node.js already install, please use this method to install it on a debian device: https://github.com/nodesource/distributions.
75
- The supported versions of node are 20, 22 and 24. Please install Node.js 22 LTS. Don't use Node.js Current but always the Node.js LTS.
76
- Node.js 23, like all odd-numbered versions, is not supported.
77
- Nvm is not a good choice and should not be used for production.
74
+ If you don't have Node.js already installed, please use this method to install it on a Debian system: https://github.com/nodesource/distributions.
78
75
 
79
- If you don't have Docker already install, please use this method to install it on a debian device: https://docs.docker.com/engine/install.
76
+ The supported versions of Node.js are 20, 22, and 24. Please **install Node.js 24 LTS**. Don't use Node.js Current; always use the Node.js LTS releases.
80
77
 
81
- If you don't have Docker already install, please use this method to install it on a Windows or macOS: https://docs.docker.com/get-started/introduction/get-docker-desktop/.
78
+ Node.js 25, like all odd-numbered versions, is not supported.
82
79
 
83
- After follow the guidelines for the [Docker configurations](README-DOCKER.md).
80
+ To verify which Node.js version is currently LTS (Active), check [Node.js Releases](https://nodejs.org/en/about/previous-releases).
81
+
82
+ **Nvm is not a good choice and should not be used for production**.
83
+
84
+ If you don't have Docker already installed, please use this method to install it on a Debian system: https://docs.docker.com/engine/install.
85
+
86
+ If you don't have Docker already installed, please use this method to install it on Windows or macOS: https://docs.docker.com/get-started/introduction/get-docker-desktop/.
87
+
88
+ After that, follow the guidelines for the [Docker configurations](README-DOCKER.md).
84
89
 
85
90
  I suggest using Docker for its simplicity.
86
91
 
@@ -88,9 +93,9 @@ Since Matter is designed as "a universal IPv6-based communication protocol for s
88
93
 
89
94
  **Important:** You only need IPv6 on your local network - it doesn't matter if your internet provider doesn't provide IPv6 on the internet side (WAN).
90
95
 
91
- Avoid using VLAN, VM and firewall blocking the communications between the controllers and Matterbridge.
96
+ Avoid VLANs, VMs, and firewalls that block communication between the controllers and Matterbridge.
92
97
 
93
- To pair matterbridge, you need a matter enabled controller (Apple Home, Smart Things, Google Home, Alexa, Home Assistant etc.).
98
+ To pair Matterbridge, you need a Matter-enabled controller (Apple Home, SmartThings, Google Home, Alexa, Home Assistant, etc.).
94
99
 
95
100
  ## Installation
96
101
 
@@ -1,35 +1,9 @@
1
- /**
2
- * This file contains the BroadcastServer class.
3
- *
4
- * @file broadcastServer.ts
5
- * @author Luca Liguori
6
- * @created 2025-10-05
7
- * @version 2.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
1
  import { EventEmitter } from 'node:events';
25
2
  import { type AnsiLogger } from 'node-ansi-logger';
26
3
  import type { WorkerMessage, WorkerMessageRequest, WorkerMessageRequestAny, WorkerMessageResponse, WorkerMessageResponseSuccess, WorkerMessageTypes, WorkerSrcType } from './broadcastServerTypes.js';
27
4
  interface BroadcastServerEvents {
28
5
  'broadcast_message': [msg: WorkerMessage];
29
6
  }
30
- /**
31
- * BroadcastServer class to handle broadcast messages between workers with BroadcastChannel.
32
- */
33
7
  export declare class BroadcastServer extends EventEmitter<BroadcastServerEvents> {
34
8
  readonly name: WorkerSrcType;
35
9
  private readonly log;
@@ -38,107 +12,18 @@ export declare class BroadcastServer extends EventEmitter<BroadcastServerEvents>
38
12
  private closed;
39
13
  private readonly debug;
40
14
  private readonly verbose;
41
- /**
42
- * Creates an instance of BroadcastServer.
43
- *
44
- * @param {string} name - The name of the broadcast server.
45
- * @param {AnsiLogger} log - The logger instance to use for logging.
46
- * @param {string} channel - The channel name for the broadcast. Default is 'broadcast-channel'.
47
- */
48
15
  constructor(name: WorkerSrcType, log: AnsiLogger, channel?: string);
49
- /**
50
- * Closes the broadcast channel.
51
- *
52
- * @returns {void}
53
- */
54
16
  close(): void;
55
- /**
56
- * Handles incoming broadcast messages.
57
- *
58
- * @param {MessageEvent} event - The message event containing the broadcast message.
59
- * @returns {void}
60
- */
61
17
  private broadcastMessageHandler;
62
- /**
63
- * Handles incoming broadcast error messages.
64
- *
65
- * @param {MessageEvent} event - The message event containing the broadcast message.
66
- * @returns {void}
67
- */
68
18
  private broadcastMessageErrorHandler;
69
- /**
70
- * Generate a pseudo-random identifier between 100,000,000 and 999,999,999.
71
- *
72
- * @returns {number} A nine-digit identifier.
73
- */
74
19
  getUniqueId(): number;
75
- /**
76
- * Type guard to verify a value matches the WorkerMessageRequest structure.
77
- *
78
- * @param {unknown} value Value to test.
79
- * @returns {value is WorkerMessageRequest} True when the value looks like a request message.
80
- */
81
20
  isWorkerRequest(value: unknown): value is WorkerMessageRequest;
82
- /**
83
- * Type guard to verify a value matches a specific WorkerMessageRequest structure.
84
- *
85
- * @param {unknown} value Value to test.
86
- * @param {K} type Worker message type to match.
87
- * @returns {value is WorkerMessageRequest<K>} True when the value looks like a request message of the requested type.
88
- */
89
21
  isWorkerRequestOfType<K extends keyof WorkerMessageTypes>(value: unknown, type: K): value is WorkerMessageRequest<K>;
90
- /**
91
- * Type guard to verify a value matches the WorkerMessageResponse structure.
92
- *
93
- * @param {unknown} value Value to test.
94
- * @returns {value is WorkerMessageResponse} True when the value looks like a response message.
95
- */
96
22
  isWorkerResponse(value: unknown): value is WorkerMessageResponse;
97
- /**
98
- * Type guard to verify a value matches a specific WorkerMessageResponse structure.
99
- *
100
- * @param {unknown} value Value to test.
101
- * @param {K} type Worker message type to match.
102
- * @returns {value is WorkerMessageResponse<K>} True when the value looks like a response message of the requested type.
103
- */
104
23
  isWorkerResponseOfType<K extends keyof WorkerMessageTypes>(value: unknown, type: K): value is WorkerMessageResponse<K>;
105
- /**
106
- * Broadcast a message to all workers.
107
- *
108
- * @param {WorkerMessage} message - The message to broadcast.
109
- * @returns {void}
110
- *
111
- * @remarks No checks are performed on the message structure.
112
- */
113
24
  broadcast(message: WorkerMessage): void;
114
- /**
115
- * Send a request message from the worker implementation.
116
- *
117
- * @template K
118
- * @param {WorkerMessageRequest<K>} message The request message to send.
119
- * @returns {void}
120
- */
121
25
  request<K extends keyof WorkerMessageTypes>(message: WorkerMessageRequest<K>): void;
122
- /**
123
- * Send a response message from the worker implementation.
124
- * It also calculates the elapsed time since the request was sent and swaps the source and destination fields.
125
- *
126
- * @template K
127
- * @param {WorkerMessageResponse<K>} message The response message to send.
128
- * @returns {void}
129
- */
130
26
  respond<K extends keyof WorkerMessageTypes>(message: WorkerMessageResponse<K>): void;
131
- /**
132
- * Fetch data from a worker.
133
- * It broadcasts a request message and waits for a valid response with the same id.
134
- *
135
- * @template K
136
- * @param {WorkerMessageRequest<K>} message - The typed request message to fetch.
137
- * @param {number} timeout - The timeout in milliseconds to wait for a response. Default is 250ms.
138
- * @returns {Promise<WorkerMessageResponseSuccess<K>>} A promise that resolves with the successful response from the worker or rejects on timeout.
139
- * @throws {Error} If the fetch operation times out after 250ms or if an error response is received or if the response is malformed.
140
- */
141
27
  fetch<T extends WorkerMessageRequestAny, K extends Extract<keyof WorkerMessageTypes, T['type']>>(message: T, timeout?: number): Promise<WorkerMessageResponseSuccess<K>>;
142
28
  }
143
29
  export {};
144
- //# sourceMappingURL=broadcastServer.d.ts.map
@@ -1,36 +1,9 @@
1
- /**
2
- * This file contains the BroadcastServer class.
3
- *
4
- * @file broadcastServer.ts
5
- * @author Luca Liguori
6
- * @created 2025-10-05
7
- * @version 2.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
- // eslint-disable-next-line no-console
25
1
  if (process.argv.includes('--loader') || process.argv.includes('-loader'))
26
2
  console.log('\u001B[32mBroadcastServer loaded.\u001B[40;0m');
27
3
  import { EventEmitter } from 'node:events';
28
4
  import { BroadcastChannel } from 'node:worker_threads';
29
5
  import { CYAN, db, debugStringify, er } from 'node-ansi-logger';
30
6
  import { hasParameter, logError } from '@matterbridge/utils';
31
- /**
32
- * BroadcastServer class to handle broadcast messages between workers with BroadcastChannel.
33
- */
34
7
  export class BroadcastServer extends EventEmitter {
35
8
  name;
36
9
  log;
@@ -39,40 +12,21 @@ export class BroadcastServer extends EventEmitter {
39
12
  closed = false;
40
13
  debug = hasParameter('debug') || hasParameter('verbose');
41
14
  verbose = hasParameter('verbose');
42
- /**
43
- * Creates an instance of BroadcastServer.
44
- *
45
- * @param {string} name - The name of the broadcast server.
46
- * @param {AnsiLogger} log - The logger instance to use for logging.
47
- * @param {string} channel - The channel name for the broadcast. Default is 'broadcast-channel'.
48
- */
49
15
  constructor(name, log, channel = 'broadcast-channel') {
50
16
  super();
51
17
  this.name = name;
52
18
  this.log = log;
53
19
  this.channel = channel;
54
20
  this.broadcastChannel = new BroadcastChannel(this.channel);
55
- // this.broadcastChannel.unref();
56
21
  this.broadcastChannel.onmessage = this.broadcastMessageHandler.bind(this);
57
22
  this.broadcastChannel.onmessageerror = this.broadcastMessageErrorHandler.bind(this);
58
23
  }
59
- /**
60
- * Closes the broadcast channel.
61
- *
62
- * @returns {void}
63
- */
64
24
  close() {
65
25
  this.broadcastChannel.onmessage = null;
66
26
  this.broadcastChannel.onmessageerror = null;
67
27
  this.broadcastChannel.close();
68
28
  this.closed = true;
69
29
  }
70
- /**
71
- * Handles incoming broadcast messages.
72
- *
73
- * @param {MessageEvent} event - The message event containing the broadcast message.
74
- * @returns {void}
75
- */
76
30
  broadcastMessageHandler(event) {
77
31
  const msg = event.data;
78
32
  if (msg.dst === this.name || msg.dst === 'all') {
@@ -85,30 +39,13 @@ export class BroadcastServer extends EventEmitter {
85
39
  this.log.debug(`Server ${CYAN}${this.name}${db} received unrelated broadcast message: ${debugStringify(msg)}`);
86
40
  }
87
41
  }
88
- /**
89
- * Handles incoming broadcast error messages.
90
- *
91
- * @param {MessageEvent} event - The message event containing the broadcast message.
92
- * @returns {void}
93
- */
94
42
  broadcastMessageErrorHandler(event) {
95
43
  const msg = event.data;
96
44
  this.log.error(`Server ${CYAN}${this.name}${db} received message error: ${debugStringify(msg)}`);
97
45
  }
98
- /**
99
- * Generate a pseudo-random identifier between 100,000,000 and 999,999,999.
100
- *
101
- * @returns {number} A nine-digit identifier.
102
- */
103
46
  getUniqueId() {
104
47
  return Math.floor(Math.random() * 900000000) + 100000000;
105
48
  }
106
- /**
107
- * Type guard to verify a value matches the WorkerMessageRequest structure.
108
- *
109
- * @param {unknown} value Value to test.
110
- * @returns {value is WorkerMessageRequest} True when the value looks like a request message.
111
- */
112
49
  isWorkerRequest(value) {
113
50
  if (typeof value !== 'object' || value === null) {
114
51
  return false;
@@ -119,22 +56,9 @@ export class BroadcastServer extends EventEmitter {
119
56
  }
120
57
  return message.result === undefined && message.error === undefined;
121
58
  }
122
- /**
123
- * Type guard to verify a value matches a specific WorkerMessageRequest structure.
124
- *
125
- * @param {unknown} value Value to test.
126
- * @param {K} type Worker message type to match.
127
- * @returns {value is WorkerMessageRequest<K>} True when the value looks like a request message of the requested type.
128
- */
129
59
  isWorkerRequestOfType(value, type) {
130
60
  return this.isWorkerRequest(value) && value.type === type;
131
61
  }
132
- /**
133
- * Type guard to verify a value matches the WorkerMessageResponse structure.
134
- *
135
- * @param {unknown} value Value to test.
136
- * @returns {value is WorkerMessageResponse} True when the value looks like a response message.
137
- */
138
62
  isWorkerResponse(value) {
139
63
  if (typeof value !== 'object' || value === null) {
140
64
  return false;
@@ -147,24 +71,9 @@ export class BroadcastServer extends EventEmitter {
147
71
  const hasResult = message.result !== undefined;
148
72
  return hasError !== hasResult;
149
73
  }
150
- /**
151
- * Type guard to verify a value matches a specific WorkerMessageResponse structure.
152
- *
153
- * @param {unknown} value Value to test.
154
- * @param {K} type Worker message type to match.
155
- * @returns {value is WorkerMessageResponse<K>} True when the value looks like a response message of the requested type.
156
- */
157
74
  isWorkerResponseOfType(value, type) {
158
75
  return this.isWorkerResponse(value) && value.type === type;
159
76
  }
160
- /**
161
- * Broadcast a message to all workers.
162
- *
163
- * @param {WorkerMessage} message - The message to broadcast.
164
- * @returns {void}
165
- *
166
- * @remarks No checks are performed on the message structure.
167
- */
168
77
  broadcast(message) {
169
78
  if (this.closed) {
170
79
  this.log.error('Broadcast channel is closed');
@@ -186,13 +95,6 @@ export class BroadcastServer extends EventEmitter {
186
95
  logError(this.log, `Failed to broadcast message ${debugStringify(message)}${er}`, error);
187
96
  }
188
97
  }
189
- /**
190
- * Send a request message from the worker implementation.
191
- *
192
- * @template K
193
- * @param {WorkerMessageRequest<K>} message The request message to send.
194
- * @returns {void}
195
- */
196
98
  request(message) {
197
99
  if (this.closed) {
198
100
  this.log.error('Broadcast channel is closed');
@@ -218,14 +120,6 @@ export class BroadcastServer extends EventEmitter {
218
120
  logError(this.log, `Failed to broadcast request message ${debugStringify(message)}${er}`, error);
219
121
  }
220
122
  }
221
- /**
222
- * Send a response message from the worker implementation.
223
- * It also calculates the elapsed time since the request was sent and swaps the source and destination fields.
224
- *
225
- * @template K
226
- * @param {WorkerMessageResponse<K>} message The response message to send.
227
- * @returns {void}
228
- */
229
123
  respond(message) {
230
124
  if (this.closed) {
231
125
  this.log.error('Broadcast channel is closed');
@@ -254,16 +148,6 @@ export class BroadcastServer extends EventEmitter {
254
148
  logError(this.log, `Failed to broadcast response message ${debugStringify(message)}${er}`, error);
255
149
  }
256
150
  }
257
- /**
258
- * Fetch data from a worker.
259
- * It broadcasts a request message and waits for a valid response with the same id.
260
- *
261
- * @template K
262
- * @param {WorkerMessageRequest<K>} message - The typed request message to fetch.
263
- * @param {number} timeout - The timeout in milliseconds to wait for a response. Default is 250ms.
264
- * @returns {Promise<WorkerMessageResponseSuccess<K>>} A promise that resolves with the successful response from the worker or rejects on timeout.
265
- * @throws {Error} If the fetch operation times out after 250ms or if an error response is received or if the response is malformed.
266
- */
267
151
  async fetch(message, timeout = 250) {
268
152
  if (this.closed) {
269
153
  return Promise.reject(new Error('Broadcast channel is closed'));
@@ -304,4 +188,3 @@ export class BroadcastServer extends EventEmitter {
304
188
  });
305
189
  }
306
190
  }
307
- //# sourceMappingURL=broadcastServer.js.map
@@ -1,36 +1,10 @@
1
- /**
2
- * This file contains the BroadcastServer types.
3
- *
4
- * @file broadcastServerTypes.ts
5
- * @author Luca Liguori
6
- * @created 2025-10-05
7
- * @version 2.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
1
  import { LogLevel } from 'node-ansi-logger';
25
2
  import { EndpointNumber } from '@matter/types/datatype';
26
3
  import type { RefreshRequiredChanged, WsMessageBroadcast } from './frontendTypes.js';
27
4
  import type { PlatformConfig, PlatformMatterbridge, PlatformSchema } from './matterbridgePlatformTypes.js';
28
5
  import type { ApiMatter, ApiPlugin, BaseDevice, Plugin, SharedMatterbridge, StoragePlugin } from './matterbridgeTypes.js';
29
- /** Types of worker source */
30
6
  export type WorkerSrcType = 'manager' | 'matterbridge' | 'plugins' | 'devices' | 'frontend' | 'matter' | 'platform' | 'spawn' | 'updates';
31
- /** Types of worker destination */
32
7
  export type WorkerDstType = 'manager' | 'matterbridge' | 'plugins' | 'devices' | 'frontend' | 'matter' | 'platform' | 'spawn' | 'updates' | 'all';
33
- /** Normalized message request structure */
34
8
  type NormalizeRequest<T> = T extends {
35
9
  params: infer P;
36
10
  } ? ([P] extends [undefined] ? {
@@ -38,7 +12,6 @@ type NormalizeRequest<T> = T extends {
38
12
  } : {
39
13
  params: P;
40
14
  }) : Record<never, never>;
41
- /** Message request structure with id, timestamp, src and dst */
42
15
  type WorkerMessageRequestMap = {
43
16
  [K in keyof WorkerMessageTypes]: {
44
17
  type: K;
@@ -48,21 +21,16 @@ type WorkerMessageRequestMap = {
48
21
  dst: WorkerDstType;
49
22
  } & NormalizeRequest<WorkerMessageTypes[K]['request']>;
50
23
  };
51
- /** Message request structure with id, timestamp, src and dst */
52
24
  export type WorkerMessageRequest<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageRequestMap[K];
53
- /** Normalized message response success structure that guarantees a successful result */
54
25
  type NormalizeResponseSuccess<T> = T & {
55
26
  error?: never;
56
27
  };
57
- /** Normalized message response error structure that guarantees an error-only payload */
58
28
  type NormalizeResponseError<T> = {
59
29
  error: string;
60
30
  } & {
61
31
  [K in keyof T]?: never;
62
32
  };
63
- /** Normalized message response structure */
64
33
  type NormalizeResponse<T> = NormalizeResponseSuccess<T> | NormalizeResponseError<T>;
65
- /** Message response structure with id, timestamp, elapsed, src and dst */
66
34
  type WorkerMessageResponseMap = {
67
35
  [K in keyof WorkerMessageTypes]: {
68
36
  type: K;
@@ -73,9 +41,7 @@ type WorkerMessageResponseMap = {
73
41
  dst: WorkerDstType;
74
42
  } & NormalizeResponse<WorkerMessageTypes[K]['response']>;
75
43
  };
76
- /** Message response structure with id, timestamp, elapsed, src and dst */
77
44
  export type WorkerMessageResponse<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageResponseMap[K];
78
- /** Message response success structure that guarantees a successful result */
79
45
  type WorkerMessageResponseSuccessMap = {
80
46
  [K in keyof WorkerMessageTypes]: {
81
47
  type: K;
@@ -86,9 +52,7 @@ type WorkerMessageResponseSuccessMap = {
86
52
  dst: WorkerDstType;
87
53
  } & NormalizeResponseSuccess<WorkerMessageTypes[K]['response']>;
88
54
  };
89
- /** Message response success structure that guarantees a successful result */
90
55
  export type WorkerMessageResponseSuccess<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageResponseSuccessMap[K];
91
- /** Message response error structure */
92
56
  type WorkerMessageResponseErrorMap = {
93
57
  [K in keyof WorkerMessageTypes]: {
94
58
  type: K;
@@ -99,17 +63,11 @@ type WorkerMessageResponseErrorMap = {
99
63
  dst: WorkerDstType;
100
64
  } & NormalizeResponseError<WorkerMessageTypes[K]['response']>;
101
65
  };
102
- /** Message response error structure */
103
66
  export type WorkerMessageResponseError<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageResponseErrorMap[K];
104
- /** Convenience alias for any worker request */
105
67
  export type WorkerMessageRequestAny = WorkerMessageRequest<keyof WorkerMessageTypes>;
106
- /** Resolve a successful response type based on the originating request */
107
68
  export type WorkerMessageResponseSuccessForRequest<T extends WorkerMessageRequestAny> = WorkerMessageResponseSuccess<Extract<keyof WorkerMessageTypes, T['type']>>;
108
- /** Resolve an error response type based on the originating request */
109
69
  export type WorkerMessageResponseErrorForRequest<T extends WorkerMessageRequestAny> = WorkerMessageResponseError<Extract<keyof WorkerMessageTypes, T['type']>>;
110
- /** Union type for WorkerMessageRequest and WorkerMessageResponse */
111
70
  export type WorkerMessage<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageRequest<K> | WorkerMessageResponse<K> | WorkerMessageResponseSuccess<K> | WorkerMessageResponseError<K>;
112
- /** Map of all worker message types with their request and response structures */
113
71
  export type WorkerMessageTypes = {
114
72
  'jest': {
115
73
  request: {
@@ -860,4 +818,3 @@ export type WorkerMessageTypes = {
860
818
  };
861
819
  };
862
820
  export {};
863
- //# sourceMappingURL=broadcastServerTypes.d.ts.map
@@ -1,25 +1 @@
1
- /**
2
- * This file contains the BroadcastServer types.
3
- *
4
- * @file broadcastServerTypes.ts
5
- * @author Luca Liguori
6
- * @created 2025-10-05
7
- * @version 2.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
1
  export {};
25
- //# sourceMappingURL=broadcastServerTypes.js.map
@@ -1,84 +1,9 @@
1
- /**
2
- * This file contains the check updates functions.
3
- *
4
- * @file checkUpdates.ts
5
- * @author Luca Liguori
6
- * @created 2025-02-24
7
- * @version 2.0.1
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
1
  import { AnsiLogger } from 'node-ansi-logger';
25
2
  import { ApiPlugin, SharedMatterbridge } from './matterbridgeTypes.js';
26
3
  import { BroadcastServer } from './broadcastServer.js';
27
- /**
28
- * Checks for updates for Matterbridge and its plugins.
29
- * If the 'shelly' parameter is present, also checks for Shelly updates.
30
- *
31
- * @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
32
- * @returns {Promise<void>} A promise that resolves when the update checks are complete.
33
- */
34
4
  export declare function checkUpdates(matterbridge: SharedMatterbridge): Promise<void>;
35
- /**
36
- * Checks for updates and logs from https://matterbridge.io/.
37
- * If the update check fails, logs a warning message.
38
- *
39
- * @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
40
- * @param {AnsiLogger} log - The logger instance.
41
- * @param {BroadcastServer} server - The broadcast server instance.
42
- */
43
5
  export declare function checkUpdatesAndLog(matterbridge: SharedMatterbridge, log: AnsiLogger, server: BroadcastServer): Promise<void>;
44
- /**
45
- * Retrieves the latest version of Matterbridge and updates the matterbridgeLatestVersion property.
46
- * If there is an error retrieving the latest version, logs an error message.
47
- *
48
- * @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
49
- * @param {AnsiLogger} log - The logger instance.
50
- * @param {BroadcastServer} server - The broadcast server instance.
51
- * @returns {Promise<string | undefined>} A promise that resolves when the latest version is retrieved.
52
- */
53
6
  export declare function getMatterbridgeLatestVersion(matterbridge: SharedMatterbridge, log: AnsiLogger, server: BroadcastServer): Promise<string | undefined>;
54
- /**
55
- * Retrieves the latest dev version of Matterbridge and updates the matterbridgeDevVersion property.
56
- * If there is an error retrieving the latest version, logs an error message.
57
- *
58
- * @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
59
- * @param {AnsiLogger} log - The logger instance.
60
- * @param {BroadcastServer} server - The broadcast server instance.
61
- * @returns {Promise<string | undefined>} A promise that resolves when the latest dev version is retrieved.
62
- */
63
7
  export declare function getMatterbridgeDevVersion(matterbridge: SharedMatterbridge, log: AnsiLogger, server: BroadcastServer): Promise<string | undefined>;
64
- /**
65
- * Retrieves the latest version of a plugin and updates the plugin's latestVersion property.
66
- * If there is an error retrieving the latest version, logs an error message.
67
- *
68
- * @param {AnsiLogger} log - The logger instance.
69
- * @param {BroadcastServer} server - The broadcast server instance.
70
- * @param {ApiPlugin} plugin - The plugin for which to retrieve the latest version.
71
- * @returns {Promise<string | undefined>} A promise that resolves when the latest version is retrieved.
72
- */
73
8
  export declare function getPluginLatestVersion(log: AnsiLogger, server: BroadcastServer, plugin: ApiPlugin): Promise<string | undefined>;
74
- /**
75
- * Retrieves the latest dev version of a plugin and updates the plugin's devVersion property.
76
- * If there is an error retrieving the latest version, logs an error message.
77
- *
78
- * @param {AnsiLogger} log - The logger instance.
79
- * @param {BroadcastServer} server - The broadcast server instance.
80
- * @param {ApiPlugin} plugin - The plugin for which to retrieve the latest version.
81
- * @returns {Promise<string | undefined>} A promise that resolves when the latest dev version is retrieved.
82
- */
83
9
  export declare function getPluginDevVersion(log: AnsiLogger, server: BroadcastServer, plugin: ApiPlugin): Promise<string | undefined>;
84
- //# sourceMappingURL=checkUpdates.d.ts.map