matterbridge 3.5.0-dev-20260117-88ddbe4 → 3.5.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 (326) hide show
  1. package/CHANGELOG.md +130 -122
  2. package/README.md +14 -14
  3. package/dist/broadcastServer.d.ts +115 -0
  4. package/dist/broadcastServer.d.ts.map +1 -0
  5. package/dist/broadcastServer.js +117 -0
  6. package/dist/broadcastServer.js.map +1 -0
  7. package/dist/broadcastServerTypes.d.ts +43 -0
  8. package/dist/broadcastServerTypes.d.ts.map +1 -0
  9. package/dist/broadcastServerTypes.js +24 -0
  10. package/dist/broadcastServerTypes.js.map +1 -0
  11. package/dist/cli.d.ts +24 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +98 -1
  14. package/dist/cli.js.map +1 -0
  15. package/dist/cliEmitter.d.ts +36 -0
  16. package/dist/cliEmitter.d.ts.map +1 -0
  17. package/dist/cliEmitter.js +37 -0
  18. package/dist/cliEmitter.js.map +1 -0
  19. package/dist/cliHistory.d.ts +42 -0
  20. package/dist/cliHistory.d.ts.map +1 -0
  21. package/dist/cliHistory.js +38 -0
  22. package/dist/cliHistory.js.map +1 -0
  23. package/dist/clusters/export.d.ts +1 -0
  24. package/dist/clusters/export.d.ts.map +1 -0
  25. package/dist/clusters/export.js +2 -0
  26. package/dist/clusters/export.js.map +1 -0
  27. package/dist/deviceManager.d.ts +108 -0
  28. package/dist/deviceManager.d.ts.map +1 -0
  29. package/dist/deviceManager.js +113 -1
  30. package/dist/deviceManager.js.map +1 -0
  31. package/dist/devices/airConditioner.d.ts +75 -0
  32. package/dist/devices/airConditioner.d.ts.map +1 -0
  33. package/dist/devices/airConditioner.js +57 -0
  34. package/dist/devices/airConditioner.js.map +1 -0
  35. package/dist/devices/batteryStorage.d.ts +43 -0
  36. package/dist/devices/batteryStorage.d.ts.map +1 -0
  37. package/dist/devices/batteryStorage.js +48 -1
  38. package/dist/devices/batteryStorage.js.map +1 -0
  39. package/dist/devices/cooktop.d.ts +55 -0
  40. package/dist/devices/cooktop.d.ts.map +1 -0
  41. package/dist/devices/cooktop.js +56 -0
  42. package/dist/devices/cooktop.js.map +1 -0
  43. package/dist/devices/dishwasher.d.ts +55 -0
  44. package/dist/devices/dishwasher.d.ts.map +1 -0
  45. package/dist/devices/dishwasher.js +57 -0
  46. package/dist/devices/dishwasher.js.map +1 -0
  47. package/dist/devices/evse.d.ts +57 -0
  48. package/dist/devices/evse.d.ts.map +1 -0
  49. package/dist/devices/evse.js +74 -10
  50. package/dist/devices/evse.js.map +1 -0
  51. package/dist/devices/export.d.ts +1 -0
  52. package/dist/devices/export.d.ts.map +1 -0
  53. package/dist/devices/export.js +5 -0
  54. package/dist/devices/export.js.map +1 -0
  55. package/dist/devices/extractorHood.d.ts +41 -0
  56. package/dist/devices/extractorHood.d.ts.map +1 -0
  57. package/dist/devices/extractorHood.js +43 -0
  58. package/dist/devices/extractorHood.js.map +1 -0
  59. package/dist/devices/heatPump.d.ts +43 -0
  60. package/dist/devices/heatPump.d.ts.map +1 -0
  61. package/dist/devices/heatPump.js +50 -2
  62. package/dist/devices/heatPump.js.map +1 -0
  63. package/dist/devices/laundryDryer.d.ts +58 -0
  64. package/dist/devices/laundryDryer.d.ts.map +1 -0
  65. package/dist/devices/laundryDryer.js +62 -3
  66. package/dist/devices/laundryDryer.js.map +1 -0
  67. package/dist/devices/laundryWasher.d.ts +64 -0
  68. package/dist/devices/laundryWasher.d.ts.map +1 -0
  69. package/dist/devices/laundryWasher.js +70 -4
  70. package/dist/devices/laundryWasher.js.map +1 -0
  71. package/dist/devices/microwaveOven.d.ts +77 -1
  72. package/dist/devices/microwaveOven.d.ts.map +1 -0
  73. package/dist/devices/microwaveOven.js +88 -5
  74. package/dist/devices/microwaveOven.js.map +1 -0
  75. package/dist/devices/oven.d.ts +82 -0
  76. package/dist/devices/oven.d.ts.map +1 -0
  77. package/dist/devices/oven.js +85 -0
  78. package/dist/devices/oven.js.map +1 -0
  79. package/dist/devices/refrigerator.d.ts +100 -0
  80. package/dist/devices/refrigerator.d.ts.map +1 -0
  81. package/dist/devices/refrigerator.js +102 -0
  82. package/dist/devices/refrigerator.js.map +1 -0
  83. package/dist/devices/roboticVacuumCleaner.d.ts +83 -0
  84. package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
  85. package/dist/devices/roboticVacuumCleaner.js +100 -9
  86. package/dist/devices/roboticVacuumCleaner.js.map +1 -0
  87. package/dist/devices/solarPower.d.ts +36 -0
  88. package/dist/devices/solarPower.d.ts.map +1 -0
  89. package/dist/devices/solarPower.js +38 -0
  90. package/dist/devices/solarPower.js.map +1 -0
  91. package/dist/devices/speaker.d.ts +79 -0
  92. package/dist/devices/speaker.d.ts.map +1 -0
  93. package/dist/devices/speaker.js +84 -0
  94. package/dist/devices/speaker.js.map +1 -0
  95. package/dist/devices/temperatureControl.d.ts +21 -0
  96. package/dist/devices/temperatureControl.d.ts.map +1 -0
  97. package/dist/devices/temperatureControl.js +24 -3
  98. package/dist/devices/temperatureControl.js.map +1 -0
  99. package/dist/devices/waterHeater.d.ts +74 -0
  100. package/dist/devices/waterHeater.d.ts.map +1 -0
  101. package/dist/devices/waterHeater.js +82 -2
  102. package/dist/devices/waterHeater.js.map +1 -0
  103. package/dist/dgram/coap.d.ts +171 -0
  104. package/dist/dgram/coap.d.ts.map +1 -0
  105. package/dist/dgram/coap.js +126 -13
  106. package/dist/dgram/coap.js.map +1 -0
  107. package/dist/dgram/dgram.d.ts +99 -0
  108. package/dist/dgram/dgram.d.ts.map +1 -0
  109. package/dist/dgram/dgram.js +114 -2
  110. package/dist/dgram/dgram.js.map +1 -0
  111. package/dist/dgram/mb_coap.d.ts +23 -0
  112. package/dist/dgram/mb_coap.d.ts.map +1 -0
  113. package/dist/dgram/mb_coap.js +41 -3
  114. package/dist/dgram/mb_coap.js.map +1 -0
  115. package/dist/dgram/mb_mdns.d.ts +23 -0
  116. package/dist/dgram/mb_mdns.d.ts.map +1 -0
  117. package/dist/dgram/mb_mdns.js +80 -24
  118. package/dist/dgram/mb_mdns.js.map +1 -0
  119. package/dist/dgram/mdns.d.ts +187 -4
  120. package/dist/dgram/mdns.d.ts.map +1 -0
  121. package/dist/dgram/mdns.js +371 -139
  122. package/dist/dgram/mdns.js.map +1 -0
  123. package/dist/dgram/multicast.d.ts +49 -0
  124. package/dist/dgram/multicast.d.ts.map +1 -0
  125. package/dist/dgram/multicast.js +62 -1
  126. package/dist/dgram/multicast.js.map +1 -0
  127. package/dist/dgram/unicast.d.ts +53 -0
  128. package/dist/dgram/unicast.d.ts.map +1 -0
  129. package/dist/dgram/unicast.js +60 -0
  130. package/dist/dgram/unicast.js.map +1 -0
  131. package/dist/frontend.d.ts +187 -0
  132. package/dist/frontend.d.ts.map +1 -0
  133. package/dist/frontend.js +543 -73
  134. package/dist/frontend.js.map +1 -0
  135. package/dist/frontendTypes.d.ts +57 -0
  136. package/dist/frontendTypes.d.ts.map +1 -0
  137. package/dist/frontendTypes.js +45 -0
  138. package/dist/frontendTypes.js.map +1 -0
  139. package/dist/helpers.d.ts +43 -0
  140. package/dist/helpers.d.ts.map +1 -0
  141. package/dist/helpers.js +53 -0
  142. package/dist/helpers.js.map +1 -0
  143. package/dist/index.d.ts +23 -0
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +25 -0
  146. package/dist/index.js.map +1 -0
  147. package/dist/jestutils/export.d.ts +1 -0
  148. package/dist/jestutils/export.d.ts.map +1 -0
  149. package/dist/jestutils/export.js +1 -0
  150. package/dist/jestutils/export.js.map +1 -0
  151. package/dist/jestutils/jestHelpers.d.ts +255 -0
  152. package/dist/jestutils/jestHelpers.d.ts.map +1 -0
  153. package/dist/jestutils/jestHelpers.js +372 -14
  154. package/dist/jestutils/jestHelpers.js.map +1 -0
  155. package/dist/logger/export.d.ts +1 -0
  156. package/dist/logger/export.d.ts.map +1 -0
  157. package/dist/logger/export.js +1 -0
  158. package/dist/logger/export.js.map +1 -0
  159. package/dist/matter/behaviors.d.ts +1 -0
  160. package/dist/matter/behaviors.d.ts.map +1 -0
  161. package/dist/matter/behaviors.js +2 -0
  162. package/dist/matter/behaviors.js.map +1 -0
  163. package/dist/matter/clusters.d.ts +1 -0
  164. package/dist/matter/clusters.d.ts.map +1 -0
  165. package/dist/matter/clusters.js +2 -0
  166. package/dist/matter/clusters.js.map +1 -0
  167. package/dist/matter/devices.d.ts +1 -0
  168. package/dist/matter/devices.d.ts.map +1 -0
  169. package/dist/matter/devices.js +2 -0
  170. package/dist/matter/devices.js.map +1 -0
  171. package/dist/matter/endpoints.d.ts +1 -0
  172. package/dist/matter/endpoints.d.ts.map +1 -0
  173. package/dist/matter/endpoints.js +2 -0
  174. package/dist/matter/endpoints.js.map +1 -0
  175. package/dist/matter/export.d.ts +1 -0
  176. package/dist/matter/export.d.ts.map +1 -0
  177. package/dist/matter/export.js +2 -0
  178. package/dist/matter/export.js.map +1 -0
  179. package/dist/matter/types.d.ts +1 -0
  180. package/dist/matter/types.d.ts.map +1 -0
  181. package/dist/matter/types.js +2 -0
  182. package/dist/matter/types.js.map +1 -0
  183. package/dist/matterNode.d.ts +258 -0
  184. package/dist/matterNode.d.ts.map +1 -0
  185. package/dist/matterNode.js +362 -9
  186. package/dist/matterNode.js.map +1 -0
  187. package/dist/matterbridge.d.ts +362 -0
  188. package/dist/matterbridge.d.ts.map +1 -0
  189. package/dist/matterbridge.js +879 -56
  190. package/dist/matterbridge.js.map +1 -0
  191. package/dist/matterbridgeAccessoryPlatform.d.ts +36 -0
  192. package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
  193. package/dist/matterbridgeAccessoryPlatform.js +38 -0
  194. package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
  195. package/dist/matterbridgeBehaviors.d.ts +24 -0
  196. package/dist/matterbridgeBehaviors.d.ts.map +1 -0
  197. package/dist/matterbridgeBehaviors.js +68 -5
  198. package/dist/matterbridgeBehaviors.js.map +1 -0
  199. package/dist/matterbridgeDeviceTypes.d.ts +649 -0
  200. package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
  201. package/dist/matterbridgeDeviceTypes.js +673 -6
  202. package/dist/matterbridgeDeviceTypes.js.map +1 -0
  203. package/dist/matterbridgeDynamicPlatform.d.ts +36 -0
  204. package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
  205. package/dist/matterbridgeDynamicPlatform.js +38 -0
  206. package/dist/matterbridgeDynamicPlatform.js.map +1 -0
  207. package/dist/matterbridgeEndpoint.d.ts +1332 -0
  208. package/dist/matterbridgeEndpoint.d.ts.map +1 -0
  209. package/dist/matterbridgeEndpoint.js +1457 -53
  210. package/dist/matterbridgeEndpoint.js.map +1 -0
  211. package/dist/matterbridgeEndpointHelpers.d.ts +425 -0
  212. package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
  213. package/dist/matterbridgeEndpointHelpers.js +483 -20
  214. package/dist/matterbridgeEndpointHelpers.js.map +1 -0
  215. package/dist/matterbridgeEndpointTypes.d.ts +70 -0
  216. package/dist/matterbridgeEndpointTypes.d.ts.map +1 -0
  217. package/dist/matterbridgeEndpointTypes.js +25 -0
  218. package/dist/matterbridgeEndpointTypes.js.map +1 -0
  219. package/dist/matterbridgePlatform.d.ts +425 -0
  220. package/dist/matterbridgePlatform.d.ts.map +1 -0
  221. package/dist/matterbridgePlatform.js +451 -1
  222. package/dist/matterbridgePlatform.js.map +1 -0
  223. package/dist/matterbridgeTypes.d.ts +46 -0
  224. package/dist/matterbridgeTypes.d.ts.map +1 -0
  225. package/dist/matterbridgeTypes.js +26 -0
  226. package/dist/matterbridgeTypes.js.map +1 -0
  227. package/dist/pluginManager.d.ts +305 -0
  228. package/dist/pluginManager.d.ts.map +1 -0
  229. package/dist/pluginManager.js +341 -5
  230. package/dist/pluginManager.js.map +1 -0
  231. package/dist/shelly.d.ts +157 -0
  232. package/dist/shelly.d.ts.map +1 -0
  233. package/dist/shelly.js +178 -7
  234. package/dist/shelly.js.map +1 -0
  235. package/dist/storage/export.d.ts +1 -0
  236. package/dist/storage/export.d.ts.map +1 -0
  237. package/dist/storage/export.js +1 -0
  238. package/dist/storage/export.js.map +1 -0
  239. package/dist/update.d.ts +75 -0
  240. package/dist/update.d.ts.map +1 -0
  241. package/dist/update.js +93 -1
  242. package/dist/update.js.map +1 -0
  243. package/dist/utils/colorUtils.d.ts +77 -0
  244. package/dist/utils/colorUtils.d.ts.map +1 -0
  245. package/dist/utils/colorUtils.js +97 -2
  246. package/dist/utils/colorUtils.js.map +1 -0
  247. package/dist/utils/commandLine.d.ts +60 -0
  248. package/dist/utils/commandLine.d.ts.map +1 -0
  249. package/dist/utils/commandLine.js +60 -0
  250. package/dist/utils/commandLine.js.map +1 -0
  251. package/dist/utils/copyDirectory.d.ts +33 -0
  252. package/dist/utils/copyDirectory.d.ts.map +1 -0
  253. package/dist/utils/copyDirectory.js +37 -0
  254. package/dist/utils/copyDirectory.js.map +1 -0
  255. package/dist/utils/createDirectory.d.ts +32 -0
  256. package/dist/utils/createDirectory.d.ts.map +1 -0
  257. package/dist/utils/createDirectory.js +33 -0
  258. package/dist/utils/createDirectory.js.map +1 -0
  259. package/dist/utils/createZip.d.ts +38 -0
  260. package/dist/utils/createZip.d.ts.map +1 -0
  261. package/dist/utils/createZip.js +47 -2
  262. package/dist/utils/createZip.js.map +1 -0
  263. package/dist/utils/deepCopy.d.ts +31 -0
  264. package/dist/utils/deepCopy.d.ts.map +1 -0
  265. package/dist/utils/deepCopy.js +39 -0
  266. package/dist/utils/deepCopy.js.map +1 -0
  267. package/dist/utils/deepEqual.d.ts +53 -0
  268. package/dist/utils/deepEqual.d.ts.map +1 -0
  269. package/dist/utils/deepEqual.js +72 -1
  270. package/dist/utils/deepEqual.js.map +1 -0
  271. package/dist/utils/error.d.ts +42 -0
  272. package/dist/utils/error.d.ts.map +1 -0
  273. package/dist/utils/error.js +42 -0
  274. package/dist/utils/error.js.map +1 -0
  275. package/dist/utils/export.d.ts +1 -0
  276. package/dist/utils/export.d.ts.map +1 -0
  277. package/dist/utils/export.js +1 -0
  278. package/dist/utils/export.js.map +1 -0
  279. package/dist/utils/format.d.ts +49 -0
  280. package/dist/utils/format.d.ts.map +1 -0
  281. package/dist/utils/format.js +49 -0
  282. package/dist/utils/format.js.map +1 -0
  283. package/dist/utils/hex.d.ts +85 -0
  284. package/dist/utils/hex.d.ts.map +1 -0
  285. package/dist/utils/hex.js +124 -0
  286. package/dist/utils/hex.js.map +1 -0
  287. package/dist/utils/inspector.d.ts +63 -0
  288. package/dist/utils/inspector.d.ts.map +1 -0
  289. package/dist/utils/inspector.js +69 -1
  290. package/dist/utils/inspector.js.map +1 -0
  291. package/dist/utils/isValid.d.ts +93 -0
  292. package/dist/utils/isValid.d.ts.map +1 -0
  293. package/dist/utils/isValid.js +93 -0
  294. package/dist/utils/isValid.js.map +1 -0
  295. package/dist/utils/network.d.ts +116 -0
  296. package/dist/utils/network.d.ts.map +1 -0
  297. package/dist/utils/network.js +126 -5
  298. package/dist/utils/network.js.map +1 -0
  299. package/dist/utils/spawn.d.ts +32 -0
  300. package/dist/utils/spawn.d.ts.map +1 -0
  301. package/dist/utils/spawn.js +71 -1
  302. package/dist/utils/spawn.js.map +1 -0
  303. package/dist/utils/tracker.d.ts +56 -0
  304. package/dist/utils/tracker.d.ts.map +1 -0
  305. package/dist/utils/tracker.js +64 -1
  306. package/dist/utils/tracker.js.map +1 -0
  307. package/dist/utils/wait.d.ts +51 -0
  308. package/dist/utils/wait.d.ts.map +1 -0
  309. package/dist/utils/wait.js +60 -8
  310. package/dist/utils/wait.js.map +1 -0
  311. package/dist/workerGlobalPrefix.d.ts +24 -0
  312. package/dist/workerGlobalPrefix.d.ts.map +1 -0
  313. package/dist/workerGlobalPrefix.js +37 -5
  314. package/dist/workerGlobalPrefix.js.map +1 -0
  315. package/dist/workerTypes.d.ts +25 -0
  316. package/dist/workerTypes.d.ts.map +1 -0
  317. package/dist/workerTypes.js +24 -0
  318. package/dist/workerTypes.js.map +1 -0
  319. package/dist/workers.d.ts +61 -0
  320. package/dist/workers.d.ts.map +1 -0
  321. package/dist/workers.js +68 -4
  322. package/dist/workers.js.map +1 -0
  323. package/frontend/build/assets/index.js +4 -4
  324. package/frontend/package.json +1 -1
  325. package/npm-shrinkwrap.json +5 -35
  326. package/package.json +7 -7
package/README.md CHANGED
@@ -165,13 +165,13 @@ From the frontend you can do all operations in an easy way.
165
165
 
166
166
  Home page
167
167
 
168
- ![Home page](./screenshot/Screenshot%20home.jpg)
168
+ ![Home page](./screenshots/Screenshot%20home.jpg)
169
169
 
170
- [Devices page](./screenshot/Screenshot%20devices.jpg)
170
+ [Devices page](./screenshots/Screenshot%20devices.jpg)
171
171
 
172
- [Logs page](./screenshot/Screenshot%20logs.jpg)
172
+ [Logs page](./screenshots/Screenshot%20logs.jpg)
173
173
 
174
- [Config editor](./screenshot/Screenshot%20config%20editor.jpg)
174
+ [Config editor](./screenshots/Screenshot%20config%20editor.jpg)
175
175
 
176
176
  ## Advanced configurations
177
177
 
@@ -216,7 +216,7 @@ The other Home Assistant Community Add-ons and plugins are not verified to work
216
216
  ### Shelly
217
217
 
218
218
  <a href="https://github.com/Luligu/matterbridge-shelly">
219
- <img src="./screenshot/Shelly.svg" alt="Shelly plugin logo" width="100" />
219
+ <img src="./screenshots/Shelly.svg" alt="Shelly plugin logo" width="100" />
220
220
  </a>
221
221
 
222
222
  Matterbridge shelly plugin allows you to expose all Shelly Gen 1, Gen 2, Gen 3 and Gen 4 and BLU devices to Matter.
@@ -245,7 +245,7 @@ Features:
245
245
  ### Zigbee2MQTT
246
246
 
247
247
  <a href="https://github.com/Luligu/matterbridge-zigbee2mqtt">
248
- <img src="./screenshot/Zigbee2MQTT.svg" alt="Zigbee2MQTT plugin logo" width="100" />
248
+ <img src="./screenshots/Zigbee2MQTT.svg" alt="Zigbee2MQTT plugin logo" width="100" />
249
249
  </a>
250
250
 
251
251
  Matterbridge zigbee2mqtt is a matterbridge production-level plugin that expose all zigbee2mqtt devices and groups to Matter.
@@ -255,7 +255,7 @@ No hub or dedicated hardware needed.
255
255
  ### Somfy tahoma
256
256
 
257
257
  <a href="https://github.com/Luligu/matterbridge-somfy-tahoma">
258
- <img src="./screenshot/Somfy.svg" alt="Somfy plugin logo" width="100" />
258
+ <img src="./screenshots/Somfy.svg" alt="Somfy plugin logo" width="100" />
259
259
  </a>
260
260
 
261
261
  Matterbridge Somfy Tahoma is a matterbridge production-level plugin that expose the Somfy Tahoma screen devices to Matter.
@@ -263,7 +263,7 @@ Matterbridge Somfy Tahoma is a matterbridge production-level plugin that expose
263
263
  ### Home Assistant
264
264
 
265
265
  <a href="https://github.com/Luligu/matterbridge-hass">
266
- <img src="./screenshot/HomeAssistant.svg" alt="Hass logo" width="100" />
266
+ <img src="./screenshots/HomeAssistant.svg" alt="Hass logo" width="100" />
267
267
  </a>
268
268
 
269
269
  Matterbridge Home Assistant plugin allows you to expose the Home Assistant devices and entities to Matter.
@@ -445,7 +445,7 @@ Place your own certificates in the `.matterbridge/cert` directory:
445
445
  - `key.pem`
446
446
  - `ca.pem` (optional)
447
447
 
448
- ![image](./screenshot/Screenshot%20Certificates.png)
448
+ ![image](./screenshots/Screenshot%20Certificates.png)
449
449
 
450
450
  Matterbridge looks first for .p12 certificate and if it is not found it looks for cert.pem and key.pem.
451
451
 
@@ -480,7 +480,7 @@ matterbridge --ssl --mtls --frontend 443
480
480
 
481
481
  If the certificate are correctly configured, you will be able to connect with https to the frontend.
482
482
 
483
- ![image](./screenshot/Screenshot%20Browser%20Secured.png)
483
+ ![image](./screenshots/Screenshot%20Browser%20Secured.png)
484
484
 
485
485
  ## How to send the debug log files
486
486
 
@@ -488,9 +488,9 @@ If the certificate are correctly configured, you will be able to connect with ht
488
488
 
489
489
  In the frontend, go to settings and enable debug mode as shown below:
490
490
 
491
- ![Debug Matterbridge Settings](./screenshot/Screenshot%20Matterbridge%20Logger%20Debug.png)
491
+ ![Debug Matterbridge Settings](./screenshots/Screenshot%20Matterbridge%20Logger%20Debug.png)
492
492
 
493
- ![Debug Matter Settings](./screenshot/Screenshot%20Matter%20Logger%20Debug.png)
493
+ ![Debug Matter Settings](./screenshots/Screenshot%20Matter%20Logger%20Debug.png)
494
494
 
495
495
  ### Restart
496
496
 
@@ -498,7 +498,7 @@ Wait a few minutes to allow the logs to to accumulate.
498
498
 
499
499
  Then, from the dots menu in the frontend, download the `matterbridge.log` and `matter.log` files.
500
500
 
501
- ![image](./screenshot/Screenshot%20Debug%20Download%20Logs.png)
501
+ ![image](./screenshots/Screenshot%20Debug%20Download%20Logs.png)
502
502
 
503
503
  Don't forget to unselect the debug mode when is no more needed. The network traffic and cpu usage is very high in debug mode.
504
504
 
@@ -510,7 +510,7 @@ There are two ways to pair a second controller:
510
510
 
511
511
  - from Matterbridge frontend click `Turn on pairing mode` in the `Paired fabrics` panel and proceed like for the first controller.
512
512
 
513
- ![alt text](./screenshot/Turn%20on%20pairing%20mode.png)
513
+ ![alt text](./screenshots/Turn%20on%20pairing%20mode.png)
514
514
 
515
515
  Be patient cause the procedure can fail sometimes.
516
516
 
@@ -1,9 +1,35 @@
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
+ */
1
24
  import { EventEmitter } from 'node:events';
2
25
  import { type AnsiLogger } from 'node-ansi-logger';
3
26
  import type { WorkerMessage, WorkerMessageRequest, WorkerMessageRequestAny, WorkerMessageResponse, WorkerMessageResponseSuccess, WorkerMessageTypes, WorkerSrcType } from './broadcastServerTypes.js';
4
27
  interface BroadcastServerEvents {
5
28
  'broadcast_message': [msg: WorkerMessage];
6
29
  }
30
+ /**
31
+ * BroadcastServer class to handle broadcast messages between workers with BroadcastChannel.
32
+ */
7
33
  export declare class BroadcastServer extends EventEmitter<BroadcastServerEvents> {
8
34
  readonly name: WorkerSrcType;
9
35
  private readonly log;
@@ -12,18 +38,107 @@ export declare class BroadcastServer extends EventEmitter<BroadcastServerEvents>
12
38
  private closed;
13
39
  private readonly debug;
14
40
  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
+ */
15
48
  constructor(name: WorkerSrcType, log: AnsiLogger, channel?: string);
49
+ /**
50
+ * Closes the broadcast channel.
51
+ *
52
+ * @returns {void}
53
+ */
16
54
  close(): void;
55
+ /**
56
+ * Handles incoming broadcast messages.
57
+ *
58
+ * @param {MessageEvent} event - The message event containing the broadcast message.
59
+ * @returns {void}
60
+ */
17
61
  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
+ */
18
68
  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
+ */
19
74
  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
+ */
20
81
  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
+ */
21
89
  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
+ */
22
96
  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
+ */
23
104
  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
+ */
24
113
  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
+ */
25
121
  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
+ */
26
130
  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
+ */
27
141
  fetch<T extends WorkerMessageRequestAny, K extends Extract<keyof WorkerMessageTypes, T['type']>>(message: T, timeout?: number): Promise<WorkerMessageResponseSuccess<K>>;
28
142
  }
29
143
  export {};
144
+ //# sourceMappingURL=broadcastServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcastServer.d.ts","sourceRoot":"","sources":["../src/broadcastServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,KAAK,UAAU,EAAgC,MAAM,kBAAkB,CAAC;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAItM,UAAU,qBAAqB;IAC7B,mBAAmB,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAcpE,QAAQ,CAAC,IAAI,EAAE,aAAa;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAf1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoD;IAC1E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD;;;;;;OAMG;gBAEQ,IAAI,EAAE,aAAa,EACX,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,MAA4B;IASxD;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAOb;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAKpC;;;;OAIG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB;IAa9D;;;;;;OAMG;IACH,qBAAqB,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC;IAIpH;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB;IAehE;;;;;;OAMG;IACH,sBAAsB,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAItH;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAoBvC;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI;IAwBnF;;;;;;;OAOG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;IA2BpF;;;;;;;;;OASG;IACG,KAAK,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,OAAO,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;CAsCpL"}
@@ -1,3 +1,27 @@
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
1
25
  if (process.argv.includes('--loader') || process.argv.includes('-loader'))
2
26
  console.log('\u001B[32mBroadcastServer loaded.\u001B[40;0m');
3
27
  import { EventEmitter } from 'node:events';
@@ -5,6 +29,9 @@ import { BroadcastChannel } from 'node:worker_threads';
5
29
  import { CYAN, db, debugStringify, er } from 'node-ansi-logger';
6
30
  import { hasParameter } from './utils/commandLine.js';
7
31
  import { logError } from './utils/error.js';
32
+ /**
33
+ * BroadcastServer class to handle broadcast messages between workers with BroadcastChannel.
34
+ */
8
35
  export class BroadcastServer extends EventEmitter {
9
36
  name;
10
37
  log;
@@ -13,21 +40,40 @@ export class BroadcastServer extends EventEmitter {
13
40
  closed = false;
14
41
  debug = hasParameter('debug') || hasParameter('verbose');
15
42
  verbose = hasParameter('verbose');
43
+ /**
44
+ * Creates an instance of BroadcastServer.
45
+ *
46
+ * @param {string} name - The name of the broadcast server.
47
+ * @param {AnsiLogger} log - The logger instance to use for logging.
48
+ * @param {string} channel - The channel name for the broadcast. Default is 'broadcast-channel'.
49
+ */
16
50
  constructor(name, log, channel = 'broadcast-channel') {
17
51
  super();
18
52
  this.name = name;
19
53
  this.log = log;
20
54
  this.channel = channel;
21
55
  this.broadcastChannel = new BroadcastChannel(this.channel);
56
+ // this.broadcastChannel.unref();
22
57
  this.broadcastChannel.onmessage = this.broadcastMessageHandler.bind(this);
23
58
  this.broadcastChannel.onmessageerror = this.broadcastMessageErrorHandler.bind(this);
24
59
  }
60
+ /**
61
+ * Closes the broadcast channel.
62
+ *
63
+ * @returns {void}
64
+ */
25
65
  close() {
26
66
  this.broadcastChannel.onmessage = null;
27
67
  this.broadcastChannel.onmessageerror = null;
28
68
  this.broadcastChannel.close();
29
69
  this.closed = true;
30
70
  }
71
+ /**
72
+ * Handles incoming broadcast messages.
73
+ *
74
+ * @param {MessageEvent} event - The message event containing the broadcast message.
75
+ * @returns {void}
76
+ */
31
77
  broadcastMessageHandler(event) {
32
78
  const msg = event.data;
33
79
  if (msg.dst === this.name || msg.dst === 'all') {
@@ -40,13 +86,30 @@ export class BroadcastServer extends EventEmitter {
40
86
  this.log.debug(`Server ${CYAN}${this.name}${db} received unrelated broadcast message: ${debugStringify(msg)}`);
41
87
  }
42
88
  }
89
+ /**
90
+ * Handles incoming broadcast error messages.
91
+ *
92
+ * @param {MessageEvent} event - The message event containing the broadcast message.
93
+ * @returns {void}
94
+ */
43
95
  broadcastMessageErrorHandler(event) {
44
96
  const msg = event.data;
45
97
  this.log.error(`Server ${CYAN}${this.name}${db} received message error: ${debugStringify(msg)}`);
46
98
  }
99
+ /**
100
+ * Generate a pseudo-random identifier between 100,000,000 and 999,999,999.
101
+ *
102
+ * @returns {number} A nine-digit identifier.
103
+ */
47
104
  getUniqueId() {
48
105
  return Math.floor(Math.random() * 900000000) + 100000000;
49
106
  }
107
+ /**
108
+ * Type guard to verify a value matches the WorkerMessageRequest structure.
109
+ *
110
+ * @param {unknown} value Value to test.
111
+ * @returns {value is WorkerMessageRequest} True when the value looks like a request message.
112
+ */
50
113
  isWorkerRequest(value) {
51
114
  if (typeof value !== 'object' || value === null) {
52
115
  return false;
@@ -57,9 +120,22 @@ export class BroadcastServer extends EventEmitter {
57
120
  }
58
121
  return message.result === undefined && message.error === undefined;
59
122
  }
123
+ /**
124
+ * Type guard to verify a value matches a specific WorkerMessageRequest structure.
125
+ *
126
+ * @param {unknown} value Value to test.
127
+ * @param {K} type Worker message type to match.
128
+ * @returns {value is WorkerMessageRequest<K>} True when the value looks like a request message of the requested type.
129
+ */
60
130
  isWorkerRequestOfType(value, type) {
61
131
  return this.isWorkerRequest(value) && value.type === type;
62
132
  }
133
+ /**
134
+ * Type guard to verify a value matches the WorkerMessageResponse structure.
135
+ *
136
+ * @param {unknown} value Value to test.
137
+ * @returns {value is WorkerMessageResponse} True when the value looks like a response message.
138
+ */
63
139
  isWorkerResponse(value) {
64
140
  if (typeof value !== 'object' || value === null) {
65
141
  return false;
@@ -72,9 +148,24 @@ export class BroadcastServer extends EventEmitter {
72
148
  const hasResult = message.result !== undefined;
73
149
  return hasError !== hasResult;
74
150
  }
151
+ /**
152
+ * Type guard to verify a value matches a specific WorkerMessageResponse structure.
153
+ *
154
+ * @param {unknown} value Value to test.
155
+ * @param {K} type Worker message type to match.
156
+ * @returns {value is WorkerMessageResponse<K>} True when the value looks like a response message of the requested type.
157
+ */
75
158
  isWorkerResponseOfType(value, type) {
76
159
  return this.isWorkerResponse(value) && value.type === type;
77
160
  }
161
+ /**
162
+ * Broadcast a message to all workers.
163
+ *
164
+ * @param {WorkerMessage} message - The message to broadcast.
165
+ * @returns {void}
166
+ *
167
+ * @remarks No checks are performed on the message structure.
168
+ */
78
169
  broadcast(message) {
79
170
  if (this.closed) {
80
171
  this.log.error('Broadcast channel is closed');
@@ -96,6 +187,13 @@ export class BroadcastServer extends EventEmitter {
96
187
  logError(this.log, `Failed to broadcast message ${debugStringify(message)}${er}`, error);
97
188
  }
98
189
  }
190
+ /**
191
+ * Send a request message from the worker implementation.
192
+ *
193
+ * @template K
194
+ * @param {WorkerMessageRequest<K>} message The request message to send.
195
+ * @returns {void}
196
+ */
99
197
  request(message) {
100
198
  if (this.closed) {
101
199
  this.log.error('Broadcast channel is closed');
@@ -121,6 +219,14 @@ export class BroadcastServer extends EventEmitter {
121
219
  logError(this.log, `Failed to broadcast request message ${debugStringify(message)}${er}`, error);
122
220
  }
123
221
  }
222
+ /**
223
+ * Send a response message from the worker implementation.
224
+ * It also calculates the elapsed time since the request was sent and swaps the source and destination fields.
225
+ *
226
+ * @template K
227
+ * @param {WorkerMessageResponse<K>} message The response message to send.
228
+ * @returns {void}
229
+ */
124
230
  respond(message) {
125
231
  if (this.closed) {
126
232
  this.log.error('Broadcast channel is closed');
@@ -149,6 +255,16 @@ export class BroadcastServer extends EventEmitter {
149
255
  logError(this.log, `Failed to broadcast response message ${debugStringify(message)}${er}`, error);
150
256
  }
151
257
  }
258
+ /**
259
+ * Fetch data from a worker.
260
+ * It broadcasts a request message and waits for a valid response with the same id.
261
+ *
262
+ * @template K
263
+ * @param {WorkerMessageRequest<K>} message - The typed request message to fetch.
264
+ * @param {number} timeout - The timeout in milliseconds to wait for a response. Default is 250ms.
265
+ * @returns {Promise<WorkerMessageResponseSuccess<K>>} A promise that resolves with the successful response from the worker or rejects on timeout.
266
+ * @throws {Error} If the fetch operation times out after 250ms or if an error response is received or if the response is malformed.
267
+ */
152
268
  async fetch(message, timeout = 250) {
153
269
  if (this.closed) {
154
270
  return Promise.reject(new Error('Broadcast channel is closed'));
@@ -189,3 +305,4 @@ export class BroadcastServer extends EventEmitter {
189
305
  });
190
306
  }
191
307
  }
308
+ //# sourceMappingURL=broadcastServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcastServer.js","sourceRoot":"","sources":["../src/broadcastServer.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,36 @@
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
+ */
1
24
  import { LogLevel } from 'node-ansi-logger';
2
25
  import { EndpointNumber } from '@matter/types/datatype';
3
26
  import { RefreshRequiredChanged, WsMessageBroadcast } from './frontendTypes.js';
4
27
  import type { PlatformConfig, PlatformSchema } from './matterbridgePlatform.js';
5
28
  import type { ApiMatter, ApiPlugin, BaseDevice, Plugin, StoragePlugin } from './matterbridgeTypes.js';
29
+ /** Types of worker source */
6
30
  export type WorkerSrcType = 'manager' | 'matterbridge' | 'plugins' | 'devices' | 'frontend' | 'matter' | 'platform' | 'spawn' | 'updates';
31
+ /** Types of worker destination */
7
32
  export type WorkerDstType = 'manager' | 'matterbridge' | 'plugins' | 'devices' | 'frontend' | 'matter' | 'platform' | 'spawn' | 'updates' | 'all';
33
+ /** Normalized message request structure */
8
34
  type NormalizeRequest<T> = T extends {
9
35
  params: infer P;
10
36
  } ? ([P] extends [undefined] ? {
@@ -12,6 +38,7 @@ type NormalizeRequest<T> = T extends {
12
38
  } : {
13
39
  params: P;
14
40
  }) : Record<never, never>;
41
+ /** Message request structure with id, timestamp, src and dst */
15
42
  type WorkerMessageRequestMap = {
16
43
  [K in keyof WorkerMessageTypes]: {
17
44
  type: K;
@@ -21,16 +48,21 @@ type WorkerMessageRequestMap = {
21
48
  dst: WorkerDstType;
22
49
  } & NormalizeRequest<WorkerMessageTypes[K]['request']>;
23
50
  };
51
+ /** Message request structure with id, timestamp, src and dst */
24
52
  export type WorkerMessageRequest<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageRequestMap[K];
53
+ /** Normalized message response success structure that guarantees a successful result */
25
54
  type NormalizeResponseSuccess<T> = T & {
26
55
  error?: never;
27
56
  };
57
+ /** Normalized message response error structure that guarantees an error-only payload */
28
58
  type NormalizeResponseError<T> = {
29
59
  error: string;
30
60
  } & {
31
61
  [K in keyof T]?: never;
32
62
  };
63
+ /** Normalized message response structure */
33
64
  type NormalizeResponse<T> = NormalizeResponseSuccess<T> | NormalizeResponseError<T>;
65
+ /** Message response structure with id, timestamp, elapsed, src and dst */
34
66
  type WorkerMessageResponseMap = {
35
67
  [K in keyof WorkerMessageTypes]: {
36
68
  type: K;
@@ -41,7 +73,9 @@ type WorkerMessageResponseMap = {
41
73
  dst: WorkerDstType;
42
74
  } & NormalizeResponse<WorkerMessageTypes[K]['response']>;
43
75
  };
76
+ /** Message response structure with id, timestamp, elapsed, src and dst */
44
77
  export type WorkerMessageResponse<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageResponseMap[K];
78
+ /** Message response success structure that guarantees a successful result */
45
79
  type WorkerMessageResponseSuccessMap = {
46
80
  [K in keyof WorkerMessageTypes]: {
47
81
  type: K;
@@ -52,7 +86,9 @@ type WorkerMessageResponseSuccessMap = {
52
86
  dst: WorkerDstType;
53
87
  } & NormalizeResponseSuccess<WorkerMessageTypes[K]['response']>;
54
88
  };
89
+ /** Message response success structure that guarantees a successful result */
55
90
  export type WorkerMessageResponseSuccess<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageResponseSuccessMap[K];
91
+ /** Message response error structure */
56
92
  type WorkerMessageResponseErrorMap = {
57
93
  [K in keyof WorkerMessageTypes]: {
58
94
  type: K;
@@ -63,11 +99,17 @@ type WorkerMessageResponseErrorMap = {
63
99
  dst: WorkerDstType;
64
100
  } & NormalizeResponseError<WorkerMessageTypes[K]['response']>;
65
101
  };
102
+ /** Message response error structure */
66
103
  export type WorkerMessageResponseError<K extends keyof WorkerMessageTypes = keyof WorkerMessageTypes> = WorkerMessageResponseErrorMap[K];
104
+ /** Convenience alias for any worker request */
67
105
  export type WorkerMessageRequestAny = WorkerMessageRequest<keyof WorkerMessageTypes>;
106
+ /** Resolve a successful response type based on the originating request */
68
107
  export type WorkerMessageResponseSuccessForRequest<T extends WorkerMessageRequestAny> = WorkerMessageResponseSuccess<Extract<keyof WorkerMessageTypes, T['type']>>;
108
+ /** Resolve an error response type based on the originating request */
69
109
  export type WorkerMessageResponseErrorForRequest<T extends WorkerMessageRequestAny> = WorkerMessageResponseError<Extract<keyof WorkerMessageTypes, T['type']>>;
110
+ /** Union type for WorkerMessageRequest and WorkerMessageResponse */
70
111
  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 */
71
113
  export type WorkerMessageTypes = {
72
114
  'jest': {
73
115
  request: {
@@ -796,3 +838,4 @@ export type WorkerMessageTypes = {
796
838
  };
797
839
  };
798
840
  export {};
841
+ //# sourceMappingURL=broadcastServerTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcastServerTypes.d.ts","sourceRoot":"","sources":["../src/broadcastServerTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1,25 @@
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
+ */
1
24
  export {};
25
+ //# sourceMappingURL=broadcastServerTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcastServerTypes.js","sourceRoot":"","sources":["../src/broadcastServerTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}