matterbridge 3.4.6 → 3.4.7-dev-20260103-3152357

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 (345) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README-DOCKER.md +8 -0
  3. package/dist/broadcastServer.js +0 -117
  4. package/dist/broadcastServerTypes.js +0 -24
  5. package/dist/cli.js +1 -97
  6. package/dist/cliEmitter.js +0 -37
  7. package/dist/cliHistory.js +0 -38
  8. package/dist/clusters/export.js +0 -2
  9. package/dist/deviceManager.js +1 -113
  10. package/dist/devices/airConditioner.js +0 -57
  11. package/dist/devices/batteryStorage.js +1 -48
  12. package/dist/devices/cooktop.js +0 -56
  13. package/dist/devices/dishwasher.js +0 -57
  14. package/dist/devices/evse.js +10 -74
  15. package/dist/devices/export.js +0 -5
  16. package/dist/devices/extractorHood.js +0 -43
  17. package/dist/devices/heatPump.js +2 -50
  18. package/dist/devices/laundryDryer.js +3 -62
  19. package/dist/devices/laundryWasher.js +4 -70
  20. package/dist/devices/microwaveOven.js +5 -88
  21. package/dist/devices/oven.js +0 -85
  22. package/dist/devices/refrigerator.js +0 -102
  23. package/dist/devices/roboticVacuumCleaner.js +9 -100
  24. package/dist/devices/solarPower.js +0 -38
  25. package/dist/devices/speaker.js +0 -84
  26. package/dist/devices/temperatureControl.js +3 -24
  27. package/dist/devices/waterHeater.js +2 -82
  28. package/dist/dgram/coap.js +13 -126
  29. package/dist/dgram/dgram.js +2 -114
  30. package/dist/dgram/mb_coap.js +3 -41
  31. package/dist/dgram/mb_mdns.js +23 -77
  32. package/dist/dgram/mdns.js +139 -371
  33. package/dist/dgram/mdnsReflectorClient.js +5 -71
  34. package/dist/dgram/mdnsReflectorServer.js +8 -73
  35. package/dist/dgram/mdnsReflectorTypes.js +1 -24
  36. package/dist/dgram/multicast.js +1 -62
  37. package/dist/dgram/unicast.js +0 -60
  38. package/dist/frontend.js +38 -485
  39. package/dist/frontendTypes.js +0 -45
  40. package/dist/helpers.js +0 -53
  41. package/dist/index.js +0 -25
  42. package/dist/jestutils/export.js +0 -1
  43. package/dist/jestutils/jestHelpers.js +14 -371
  44. package/dist/logger/export.js +0 -1
  45. package/dist/matter/behaviors.js +0 -2
  46. package/dist/matter/clusters.js +0 -2
  47. package/dist/matter/devices.js +0 -2
  48. package/dist/matter/endpoints.js +0 -2
  49. package/dist/matter/export.js +0 -3
  50. package/dist/matter/types.js +0 -3
  51. package/dist/matterNode.js +8 -369
  52. package/dist/matterbridge.js +46 -824
  53. package/dist/matterbridgeAccessoryPlatform.js +0 -38
  54. package/dist/matterbridgeBehaviors.js +5 -68
  55. package/dist/matterbridgeDeviceTypes.js +14 -635
  56. package/dist/matterbridgeDynamicPlatform.js +0 -38
  57. package/dist/matterbridgeEndpoint.js +53 -1457
  58. package/dist/matterbridgeEndpointHelpers.js +20 -483
  59. package/dist/matterbridgeEndpointTypes.js +0 -25
  60. package/dist/matterbridgePlatform.js +1 -451
  61. package/dist/matterbridgeTypes.js +0 -26
  62. package/dist/pluginManager.js +5 -341
  63. package/dist/shelly.js +7 -178
  64. package/dist/storage/export.js +0 -1
  65. package/dist/update.js +1 -93
  66. package/dist/utils/colorUtils.js +2 -97
  67. package/dist/utils/commandLine.js +0 -60
  68. package/dist/utils/copyDirectory.js +0 -37
  69. package/dist/utils/createDirectory.js +0 -33
  70. package/dist/utils/createZip.js +2 -47
  71. package/dist/utils/deepCopy.js +0 -39
  72. package/dist/utils/deepEqual.js +1 -72
  73. package/dist/utils/error.js +0 -42
  74. package/dist/utils/export.js +0 -1
  75. package/dist/utils/format.js +0 -49
  76. package/dist/utils/hex.js +0 -124
  77. package/dist/utils/inspector.js +1 -69
  78. package/dist/utils/isValid.js +0 -93
  79. package/dist/utils/network.js +5 -125
  80. package/dist/utils/spawn.js +1 -71
  81. package/dist/utils/tracker.js +1 -64
  82. package/dist/utils/wait.js +8 -60
  83. package/dist/workerGlobalPrefix.js +5 -37
  84. package/dist/workerTypes.js +0 -24
  85. package/dist/workers.js +4 -68
  86. package/npm-shrinkwrap.json +25 -25
  87. package/package.json +1 -2
  88. package/packages/mb-lib-test/dist/jestutils/jestHelpers.js +77 -0
  89. package/packages/mb-lib-test/dist/module.js +2 -0
  90. package/packages/mb-lib-test/dist/vitestutils/vitestHelpers.js +77 -0
  91. package/packages/mb-lib-test/package.json +10 -9
  92. package/dist/broadcastServer.d.ts +0 -144
  93. package/dist/broadcastServer.d.ts.map +0 -1
  94. package/dist/broadcastServer.js.map +0 -1
  95. package/dist/broadcastServerTypes.d.ts +0 -841
  96. package/dist/broadcastServerTypes.d.ts.map +0 -1
  97. package/dist/broadcastServerTypes.js.map +0 -1
  98. package/dist/cli.d.ts +0 -30
  99. package/dist/cli.d.ts.map +0 -1
  100. package/dist/cli.js.map +0 -1
  101. package/dist/cliEmitter.d.ts +0 -50
  102. package/dist/cliEmitter.d.ts.map +0 -1
  103. package/dist/cliEmitter.js.map +0 -1
  104. package/dist/cliHistory.d.ts +0 -48
  105. package/dist/cliHistory.d.ts.map +0 -1
  106. package/dist/cliHistory.js.map +0 -1
  107. package/dist/clusters/export.d.ts +0 -2
  108. package/dist/clusters/export.d.ts.map +0 -1
  109. package/dist/clusters/export.js.map +0 -1
  110. package/dist/deviceManager.d.ts +0 -135
  111. package/dist/deviceManager.d.ts.map +0 -1
  112. package/dist/deviceManager.js.map +0 -1
  113. package/dist/devices/airConditioner.d.ts +0 -98
  114. package/dist/devices/airConditioner.d.ts.map +0 -1
  115. package/dist/devices/airConditioner.js.map +0 -1
  116. package/dist/devices/batteryStorage.d.ts +0 -48
  117. package/dist/devices/batteryStorage.d.ts.map +0 -1
  118. package/dist/devices/batteryStorage.js.map +0 -1
  119. package/dist/devices/cooktop.d.ts +0 -61
  120. package/dist/devices/cooktop.d.ts.map +0 -1
  121. package/dist/devices/cooktop.js.map +0 -1
  122. package/dist/devices/dishwasher.d.ts +0 -71
  123. package/dist/devices/dishwasher.d.ts.map +0 -1
  124. package/dist/devices/dishwasher.js.map +0 -1
  125. package/dist/devices/evse.d.ts +0 -76
  126. package/dist/devices/evse.d.ts.map +0 -1
  127. package/dist/devices/evse.js.map +0 -1
  128. package/dist/devices/export.d.ts +0 -17
  129. package/dist/devices/export.d.ts.map +0 -1
  130. package/dist/devices/export.js.map +0 -1
  131. package/dist/devices/extractorHood.d.ts +0 -46
  132. package/dist/devices/extractorHood.d.ts.map +0 -1
  133. package/dist/devices/extractorHood.js.map +0 -1
  134. package/dist/devices/heatPump.d.ts +0 -47
  135. package/dist/devices/heatPump.d.ts.map +0 -1
  136. package/dist/devices/heatPump.js.map +0 -1
  137. package/dist/devices/laundryDryer.d.ts +0 -67
  138. package/dist/devices/laundryDryer.d.ts.map +0 -1
  139. package/dist/devices/laundryDryer.js.map +0 -1
  140. package/dist/devices/laundryWasher.d.ts +0 -81
  141. package/dist/devices/laundryWasher.d.ts.map +0 -1
  142. package/dist/devices/laundryWasher.js.map +0 -1
  143. package/dist/devices/microwaveOven.d.ts +0 -168
  144. package/dist/devices/microwaveOven.d.ts.map +0 -1
  145. package/dist/devices/microwaveOven.js.map +0 -1
  146. package/dist/devices/oven.d.ts +0 -105
  147. package/dist/devices/oven.d.ts.map +0 -1
  148. package/dist/devices/oven.js.map +0 -1
  149. package/dist/devices/refrigerator.d.ts +0 -118
  150. package/dist/devices/refrigerator.d.ts.map +0 -1
  151. package/dist/devices/refrigerator.js.map +0 -1
  152. package/dist/devices/roboticVacuumCleaner.d.ts +0 -112
  153. package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
  154. package/dist/devices/roboticVacuumCleaner.js.map +0 -1
  155. package/dist/devices/solarPower.d.ts +0 -40
  156. package/dist/devices/solarPower.d.ts.map +0 -1
  157. package/dist/devices/solarPower.js.map +0 -1
  158. package/dist/devices/speaker.d.ts +0 -87
  159. package/dist/devices/speaker.d.ts.map +0 -1
  160. package/dist/devices/speaker.js.map +0 -1
  161. package/dist/devices/temperatureControl.d.ts +0 -166
  162. package/dist/devices/temperatureControl.d.ts.map +0 -1
  163. package/dist/devices/temperatureControl.js.map +0 -1
  164. package/dist/devices/waterHeater.d.ts +0 -111
  165. package/dist/devices/waterHeater.d.ts.map +0 -1
  166. package/dist/devices/waterHeater.js.map +0 -1
  167. package/dist/dgram/coap.d.ts +0 -205
  168. package/dist/dgram/coap.d.ts.map +0 -1
  169. package/dist/dgram/coap.js.map +0 -1
  170. package/dist/dgram/dgram.d.ts +0 -143
  171. package/dist/dgram/dgram.d.ts.map +0 -1
  172. package/dist/dgram/dgram.js.map +0 -1
  173. package/dist/dgram/mb_coap.d.ts +0 -24
  174. package/dist/dgram/mb_coap.d.ts.map +0 -1
  175. package/dist/dgram/mb_coap.js.map +0 -1
  176. package/dist/dgram/mb_mdns.d.ts +0 -24
  177. package/dist/dgram/mb_mdns.d.ts.map +0 -1
  178. package/dist/dgram/mb_mdns.js.map +0 -1
  179. package/dist/dgram/mdns.d.ts +0 -371
  180. package/dist/dgram/mdns.d.ts.map +0 -1
  181. package/dist/dgram/mdns.js.map +0 -1
  182. package/dist/dgram/mdnsReflectorClient.d.ts +0 -88
  183. package/dist/dgram/mdnsReflectorClient.d.ts.map +0 -1
  184. package/dist/dgram/mdnsReflectorClient.js.map +0 -1
  185. package/dist/dgram/mdnsReflectorServer.d.ts +0 -78
  186. package/dist/dgram/mdnsReflectorServer.d.ts.map +0 -1
  187. package/dist/dgram/mdnsReflectorServer.js.map +0 -1
  188. package/dist/dgram/mdnsReflectorTypes.d.ts +0 -28
  189. package/dist/dgram/mdnsReflectorTypes.d.ts.map +0 -1
  190. package/dist/dgram/mdnsReflectorTypes.js.map +0 -1
  191. package/dist/dgram/multicast.d.ts +0 -67
  192. package/dist/dgram/multicast.d.ts.map +0 -1
  193. package/dist/dgram/multicast.js.map +0 -1
  194. package/dist/dgram/unicast.d.ts +0 -64
  195. package/dist/dgram/unicast.d.ts.map +0 -1
  196. package/dist/dgram/unicast.js.map +0 -1
  197. package/dist/frontend.d.ts +0 -245
  198. package/dist/frontend.d.ts.map +0 -1
  199. package/dist/frontend.js.map +0 -1
  200. package/dist/frontendTypes.d.ts +0 -529
  201. package/dist/frontendTypes.d.ts.map +0 -1
  202. package/dist/frontendTypes.js.map +0 -1
  203. package/dist/helpers.d.ts +0 -48
  204. package/dist/helpers.d.ts.map +0 -1
  205. package/dist/helpers.js.map +0 -1
  206. package/dist/index.d.ts +0 -34
  207. package/dist/index.d.ts.map +0 -1
  208. package/dist/index.js.map +0 -1
  209. package/dist/jestutils/export.d.ts +0 -2
  210. package/dist/jestutils/export.d.ts.map +0 -1
  211. package/dist/jestutils/export.js.map +0 -1
  212. package/dist/jestutils/jestHelpers.d.ts +0 -345
  213. package/dist/jestutils/jestHelpers.d.ts.map +0 -1
  214. package/dist/jestutils/jestHelpers.js.map +0 -1
  215. package/dist/logger/export.d.ts +0 -2
  216. package/dist/logger/export.d.ts.map +0 -1
  217. package/dist/logger/export.js.map +0 -1
  218. package/dist/matter/behaviors.d.ts +0 -2
  219. package/dist/matter/behaviors.d.ts.map +0 -1
  220. package/dist/matter/behaviors.js.map +0 -1
  221. package/dist/matter/clusters.d.ts +0 -2
  222. package/dist/matter/clusters.d.ts.map +0 -1
  223. package/dist/matter/clusters.js.map +0 -1
  224. package/dist/matter/devices.d.ts +0 -2
  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 +0 -2
  228. package/dist/matter/endpoints.d.ts.map +0 -1
  229. package/dist/matter/endpoints.js.map +0 -1
  230. package/dist/matter/export.d.ts +0 -5
  231. package/dist/matter/export.d.ts.map +0 -1
  232. package/dist/matter/export.js.map +0 -1
  233. package/dist/matter/types.d.ts +0 -3
  234. package/dist/matter/types.d.ts.map +0 -1
  235. package/dist/matter/types.js.map +0 -1
  236. package/dist/matterNode.d.ts +0 -342
  237. package/dist/matterNode.d.ts.map +0 -1
  238. package/dist/matterNode.js.map +0 -1
  239. package/dist/matterbridge.d.ts +0 -505
  240. package/dist/matterbridge.d.ts.map +0 -1
  241. package/dist/matterbridge.js.map +0 -1
  242. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -41
  243. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  244. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  245. package/dist/matterbridgeBehaviors.d.ts +0 -2404
  246. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  247. package/dist/matterbridgeBehaviors.js.map +0 -1
  248. package/dist/matterbridgeDeviceTypes.d.ts +0 -698
  249. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  250. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  251. package/dist/matterbridgeDynamicPlatform.d.ts +0 -41
  252. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  253. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  254. package/dist/matterbridgeEndpoint.d.ts +0 -1507
  255. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  256. package/dist/matterbridgeEndpoint.js.map +0 -1
  257. package/dist/matterbridgeEndpointHelpers.d.ts +0 -787
  258. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  259. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  260. package/dist/matterbridgeEndpointTypes.d.ts +0 -166
  261. package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
  262. package/dist/matterbridgeEndpointTypes.js.map +0 -1
  263. package/dist/matterbridgePlatform.d.ts +0 -539
  264. package/dist/matterbridgePlatform.d.ts.map +0 -1
  265. package/dist/matterbridgePlatform.js.map +0 -1
  266. package/dist/matterbridgeTypes.d.ts +0 -252
  267. package/dist/matterbridgeTypes.d.ts.map +0 -1
  268. package/dist/matterbridgeTypes.js.map +0 -1
  269. package/dist/pluginManager.d.ts +0 -372
  270. package/dist/pluginManager.d.ts.map +0 -1
  271. package/dist/pluginManager.js.map +0 -1
  272. package/dist/shelly.d.ts +0 -181
  273. package/dist/shelly.d.ts.map +0 -1
  274. package/dist/shelly.js.map +0 -1
  275. package/dist/storage/export.d.ts +0 -2
  276. package/dist/storage/export.d.ts.map +0 -1
  277. package/dist/storage/export.js.map +0 -1
  278. package/dist/update.d.ts +0 -84
  279. package/dist/update.d.ts.map +0 -1
  280. package/dist/update.js.map +0 -1
  281. package/dist/utils/colorUtils.d.ts +0 -101
  282. package/dist/utils/colorUtils.d.ts.map +0 -1
  283. package/dist/utils/colorUtils.js.map +0 -1
  284. package/dist/utils/commandLine.d.ts +0 -66
  285. package/dist/utils/commandLine.d.ts.map +0 -1
  286. package/dist/utils/commandLine.js.map +0 -1
  287. package/dist/utils/copyDirectory.d.ts +0 -35
  288. package/dist/utils/copyDirectory.d.ts.map +0 -1
  289. package/dist/utils/copyDirectory.js.map +0 -1
  290. package/dist/utils/createDirectory.d.ts +0 -34
  291. package/dist/utils/createDirectory.d.ts.map +0 -1
  292. package/dist/utils/createDirectory.js.map +0 -1
  293. package/dist/utils/createZip.d.ts +0 -39
  294. package/dist/utils/createZip.d.ts.map +0 -1
  295. package/dist/utils/createZip.js.map +0 -1
  296. package/dist/utils/deepCopy.d.ts +0 -32
  297. package/dist/utils/deepCopy.d.ts.map +0 -1
  298. package/dist/utils/deepCopy.js.map +0 -1
  299. package/dist/utils/deepEqual.d.ts +0 -54
  300. package/dist/utils/deepEqual.d.ts.map +0 -1
  301. package/dist/utils/deepEqual.js.map +0 -1
  302. package/dist/utils/error.d.ts +0 -45
  303. package/dist/utils/error.d.ts.map +0 -1
  304. package/dist/utils/error.js.map +0 -1
  305. package/dist/utils/export.d.ts +0 -13
  306. package/dist/utils/export.d.ts.map +0 -1
  307. package/dist/utils/export.js.map +0 -1
  308. package/dist/utils/format.d.ts +0 -53
  309. package/dist/utils/format.d.ts.map +0 -1
  310. package/dist/utils/format.js.map +0 -1
  311. package/dist/utils/hex.d.ts +0 -89
  312. package/dist/utils/hex.d.ts.map +0 -1
  313. package/dist/utils/hex.js.map +0 -1
  314. package/dist/utils/inspector.d.ts +0 -87
  315. package/dist/utils/inspector.d.ts.map +0 -1
  316. package/dist/utils/inspector.js.map +0 -1
  317. package/dist/utils/isValid.d.ts +0 -103
  318. package/dist/utils/isValid.d.ts.map +0 -1
  319. package/dist/utils/isValid.js.map +0 -1
  320. package/dist/utils/network.d.ts +0 -140
  321. package/dist/utils/network.d.ts.map +0 -1
  322. package/dist/utils/network.js.map +0 -1
  323. package/dist/utils/spawn.d.ts +0 -33
  324. package/dist/utils/spawn.d.ts.map +0 -1
  325. package/dist/utils/spawn.js.map +0 -1
  326. package/dist/utils/tracker.d.ts +0 -108
  327. package/dist/utils/tracker.d.ts.map +0 -1
  328. package/dist/utils/tracker.js.map +0 -1
  329. package/dist/utils/wait.d.ts +0 -54
  330. package/dist/utils/wait.d.ts.map +0 -1
  331. package/dist/utils/wait.js.map +0 -1
  332. package/dist/workerGlobalPrefix.d.ts +0 -25
  333. package/dist/workerGlobalPrefix.d.ts.map +0 -1
  334. package/dist/workerGlobalPrefix.js.map +0 -1
  335. package/dist/workerTypes.d.ts +0 -52
  336. package/dist/workerTypes.d.ts.map +0 -1
  337. package/dist/workerTypes.js.map +0 -1
  338. package/dist/workers.d.ts +0 -69
  339. package/dist/workers.d.ts.map +0 -1
  340. package/dist/workers.js.map +0 -1
  341. package/scripts/data_model.mjs +0 -2058
  342. package/scripts/fetch-chip.mjs +0 -102
  343. package/scripts/marked.mjs +0 -133
  344. package/scripts/markedFooter.html +0 -42
  345. package/scripts/markedHeader.html +0 -78
@@ -1,144 +0,0 @@
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
- import { EventEmitter } from 'node:events';
25
- import { type AnsiLogger } from 'node-ansi-logger';
26
- import type { WorkerMessage, WorkerMessageRequest, WorkerMessageRequestAny, WorkerMessageResponse, WorkerMessageResponseSuccess, WorkerMessageTypes, WorkerSrcType } from './broadcastServerTypes.js';
27
- interface BroadcastServerEvents {
28
- 'broadcast_message': [msg: WorkerMessage];
29
- }
30
- /**
31
- * BroadcastServer class to handle broadcast messages between workers with BroadcastChannel.
32
- */
33
- export declare class BroadcastServer extends EventEmitter<BroadcastServerEvents> {
34
- readonly name: WorkerSrcType;
35
- private readonly log;
36
- private readonly channel;
37
- private readonly broadcastChannel;
38
- private closed;
39
- private readonly debug;
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
- */
48
- constructor(name: WorkerSrcType, log: AnsiLogger, channel?: string);
49
- /**
50
- * Closes the broadcast channel.
51
- *
52
- * @returns {void}
53
- */
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
- */
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
- */
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
- */
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
- */
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
- */
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
- */
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
- */
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
- */
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
- */
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
- */
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
- */
141
- fetch<T extends WorkerMessageRequestAny, K extends Extract<keyof WorkerMessageTypes, T['type']>>(message: T, timeout?: number): Promise<WorkerMessageResponseSuccess<K>>;
142
- }
143
- export {};
144
- //# sourceMappingURL=broadcastServer.d.ts.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"broadcastServer.js","sourceRoot":"","sources":["../src/broadcastServer.ts"],"names":[],"mappings":"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"}