matterbridge 3.4.7-dev-20260113-0917d83 → 3.4.7

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 (438) hide show
  1. package/dist/broadcastServer.d.ts +115 -0
  2. package/dist/broadcastServer.d.ts.map +1 -0
  3. package/dist/broadcastServer.js +117 -0
  4. package/dist/broadcastServer.js.map +1 -0
  5. package/dist/broadcastServerTypes.d.ts +43 -0
  6. package/dist/broadcastServerTypes.d.ts.map +1 -0
  7. package/dist/broadcastServerTypes.js +24 -0
  8. package/dist/broadcastServerTypes.js.map +1 -0
  9. package/dist/cli.d.ts +24 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +97 -1
  12. package/dist/cli.js.map +1 -0
  13. package/dist/cliEmitter.d.ts +36 -0
  14. package/dist/cliEmitter.d.ts.map +1 -0
  15. package/dist/cliEmitter.js +37 -0
  16. package/dist/cliEmitter.js.map +1 -0
  17. package/dist/cliHistory.d.ts +42 -0
  18. package/dist/cliHistory.d.ts.map +1 -0
  19. package/dist/cliHistory.js +38 -0
  20. package/dist/cliHistory.js.map +1 -0
  21. package/dist/clusters/export.d.ts +1 -0
  22. package/dist/clusters/export.d.ts.map +1 -0
  23. package/dist/clusters/export.js +2 -0
  24. package/dist/clusters/export.js.map +1 -0
  25. package/dist/deviceManager.d.ts +108 -0
  26. package/dist/deviceManager.d.ts.map +1 -0
  27. package/dist/deviceManager.js +113 -1
  28. package/dist/deviceManager.js.map +1 -0
  29. package/dist/devices/airConditioner.d.ts +75 -0
  30. package/dist/devices/airConditioner.d.ts.map +1 -0
  31. package/dist/devices/airConditioner.js +57 -0
  32. package/dist/devices/airConditioner.js.map +1 -0
  33. package/dist/devices/batteryStorage.d.ts +43 -0
  34. package/dist/devices/batteryStorage.d.ts.map +1 -0
  35. package/dist/devices/batteryStorage.js +48 -1
  36. package/dist/devices/batteryStorage.js.map +1 -0
  37. package/dist/devices/cooktop.d.ts +55 -0
  38. package/dist/devices/cooktop.d.ts.map +1 -0
  39. package/dist/devices/cooktop.js +56 -0
  40. package/dist/devices/cooktop.js.map +1 -0
  41. package/dist/devices/dishwasher.d.ts +55 -0
  42. package/dist/devices/dishwasher.d.ts.map +1 -0
  43. package/dist/devices/dishwasher.js +57 -0
  44. package/dist/devices/dishwasher.js.map +1 -0
  45. package/dist/devices/evse.d.ts +57 -0
  46. package/dist/devices/evse.d.ts.map +1 -0
  47. package/dist/devices/evse.js +74 -10
  48. package/dist/devices/evse.js.map +1 -0
  49. package/dist/devices/export.d.ts +1 -0
  50. package/dist/devices/export.d.ts.map +1 -0
  51. package/dist/devices/export.js +5 -0
  52. package/dist/devices/export.js.map +1 -0
  53. package/dist/devices/extractorHood.d.ts +41 -0
  54. package/dist/devices/extractorHood.d.ts.map +1 -0
  55. package/dist/devices/extractorHood.js +43 -0
  56. package/dist/devices/extractorHood.js.map +1 -0
  57. package/dist/devices/heatPump.d.ts +43 -0
  58. package/dist/devices/heatPump.d.ts.map +1 -0
  59. package/dist/devices/heatPump.js +50 -2
  60. package/dist/devices/heatPump.js.map +1 -0
  61. package/dist/devices/laundryDryer.d.ts +58 -0
  62. package/dist/devices/laundryDryer.d.ts.map +1 -0
  63. package/dist/devices/laundryDryer.js +62 -3
  64. package/dist/devices/laundryDryer.js.map +1 -0
  65. package/dist/devices/laundryWasher.d.ts +64 -0
  66. package/dist/devices/laundryWasher.d.ts.map +1 -0
  67. package/dist/devices/laundryWasher.js +70 -4
  68. package/dist/devices/laundryWasher.js.map +1 -0
  69. package/dist/devices/microwaveOven.d.ts +77 -1
  70. package/dist/devices/microwaveOven.d.ts.map +1 -0
  71. package/dist/devices/microwaveOven.js +88 -5
  72. package/dist/devices/microwaveOven.js.map +1 -0
  73. package/dist/devices/oven.d.ts +82 -0
  74. package/dist/devices/oven.d.ts.map +1 -0
  75. package/dist/devices/oven.js +85 -0
  76. package/dist/devices/oven.js.map +1 -0
  77. package/dist/devices/refrigerator.d.ts +100 -0
  78. package/dist/devices/refrigerator.d.ts.map +1 -0
  79. package/dist/devices/refrigerator.js +102 -0
  80. package/dist/devices/refrigerator.js.map +1 -0
  81. package/dist/devices/roboticVacuumCleaner.d.ts +83 -0
  82. package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
  83. package/dist/devices/roboticVacuumCleaner.js +100 -9
  84. package/dist/devices/roboticVacuumCleaner.js.map +1 -0
  85. package/dist/devices/solarPower.d.ts +36 -0
  86. package/dist/devices/solarPower.d.ts.map +1 -0
  87. package/dist/devices/solarPower.js +38 -0
  88. package/dist/devices/solarPower.js.map +1 -0
  89. package/dist/devices/speaker.d.ts +79 -0
  90. package/dist/devices/speaker.d.ts.map +1 -0
  91. package/dist/devices/speaker.js +84 -0
  92. package/dist/devices/speaker.js.map +1 -0
  93. package/dist/devices/temperatureControl.d.ts +21 -0
  94. package/dist/devices/temperatureControl.d.ts.map +1 -0
  95. package/dist/devices/temperatureControl.js +24 -3
  96. package/dist/devices/temperatureControl.js.map +1 -0
  97. package/dist/devices/waterHeater.d.ts +74 -0
  98. package/dist/devices/waterHeater.d.ts.map +1 -0
  99. package/dist/devices/waterHeater.js +82 -2
  100. package/dist/devices/waterHeater.js.map +1 -0
  101. package/dist/dgram/coap.d.ts +171 -0
  102. package/dist/dgram/coap.d.ts.map +1 -0
  103. package/dist/dgram/coap.js +126 -13
  104. package/dist/dgram/coap.js.map +1 -0
  105. package/dist/dgram/dgram.d.ts +99 -0
  106. package/dist/dgram/dgram.d.ts.map +1 -0
  107. package/dist/dgram/dgram.js +114 -2
  108. package/dist/dgram/dgram.js.map +1 -0
  109. package/dist/dgram/mb_coap.d.ts +23 -0
  110. package/dist/dgram/mb_coap.d.ts.map +1 -0
  111. package/dist/dgram/mb_coap.js +41 -3
  112. package/dist/dgram/mb_coap.js.map +1 -0
  113. package/dist/dgram/mb_mdns.d.ts +23 -0
  114. package/dist/dgram/mb_mdns.d.ts.map +1 -0
  115. package/dist/dgram/mb_mdns.js +80 -24
  116. package/dist/dgram/mb_mdns.js.map +1 -0
  117. package/dist/dgram/mdns.d.ts +187 -4
  118. package/dist/dgram/mdns.d.ts.map +1 -0
  119. package/dist/dgram/mdns.js +371 -139
  120. package/dist/dgram/mdns.js.map +1 -0
  121. package/dist/dgram/multicast.d.ts +49 -0
  122. package/dist/dgram/multicast.d.ts.map +1 -0
  123. package/dist/dgram/multicast.js +62 -1
  124. package/dist/dgram/multicast.js.map +1 -0
  125. package/dist/dgram/unicast.d.ts +53 -0
  126. package/dist/dgram/unicast.d.ts.map +1 -0
  127. package/dist/dgram/unicast.js +60 -0
  128. package/dist/dgram/unicast.js.map +1 -0
  129. package/dist/frontend.d.ts +187 -0
  130. package/dist/frontend.d.ts.map +1 -0
  131. package/dist/frontend.js +485 -38
  132. package/dist/frontend.js.map +1 -0
  133. package/dist/frontendTypes.d.ts +57 -0
  134. package/dist/frontendTypes.d.ts.map +1 -0
  135. package/dist/frontendTypes.js +45 -0
  136. package/dist/frontendTypes.js.map +1 -0
  137. package/dist/helpers.d.ts +43 -0
  138. package/dist/helpers.d.ts.map +1 -0
  139. package/dist/helpers.js +53 -0
  140. package/dist/helpers.js.map +1 -0
  141. package/dist/index.d.ts +23 -0
  142. package/dist/index.d.ts.map +1 -0
  143. package/dist/index.js +25 -0
  144. package/dist/index.js.map +1 -0
  145. package/dist/jestutils/export.d.ts +1 -0
  146. package/dist/jestutils/export.d.ts.map +1 -0
  147. package/dist/jestutils/export.js +1 -0
  148. package/dist/jestutils/export.js.map +1 -0
  149. package/dist/jestutils/jestHelpers.d.ts +255 -0
  150. package/dist/jestutils/jestHelpers.d.ts.map +1 -0
  151. package/dist/jestutils/jestHelpers.js +371 -14
  152. package/dist/jestutils/jestHelpers.js.map +1 -0
  153. package/dist/logger/export.d.ts +1 -0
  154. package/dist/logger/export.d.ts.map +1 -0
  155. package/dist/logger/export.js +1 -0
  156. package/dist/logger/export.js.map +1 -0
  157. package/dist/matter/behaviors.d.ts +1 -0
  158. package/dist/matter/behaviors.d.ts.map +1 -0
  159. package/dist/matter/behaviors.js +2 -0
  160. package/dist/matter/behaviors.js.map +1 -0
  161. package/dist/matter/clusters.d.ts +1 -0
  162. package/dist/matter/clusters.d.ts.map +1 -0
  163. package/dist/matter/clusters.js +2 -0
  164. package/dist/matter/clusters.js.map +1 -0
  165. package/dist/matter/devices.d.ts +1 -0
  166. package/dist/matter/devices.d.ts.map +1 -0
  167. package/dist/matter/devices.js +2 -0
  168. package/dist/matter/devices.js.map +1 -0
  169. package/dist/matter/endpoints.d.ts +1 -0
  170. package/dist/matter/endpoints.d.ts.map +1 -0
  171. package/dist/matter/endpoints.js +2 -0
  172. package/dist/matter/endpoints.js.map +1 -0
  173. package/dist/matter/export.d.ts +1 -0
  174. package/dist/matter/export.d.ts.map +1 -0
  175. package/dist/matter/export.js +3 -0
  176. package/dist/matter/export.js.map +1 -0
  177. package/dist/matter/types.d.ts +1 -0
  178. package/dist/matter/types.d.ts.map +1 -0
  179. package/dist/matter/types.js +3 -0
  180. package/dist/matter/types.js.map +1 -0
  181. package/dist/matterNode.d.ts +258 -0
  182. package/dist/matterNode.d.ts.map +1 -0
  183. package/dist/matterNode.js +369 -8
  184. package/dist/matterNode.js.map +1 -0
  185. package/dist/matterbridge.d.ts +353 -0
  186. package/dist/matterbridge.d.ts.map +1 -0
  187. package/dist/matterbridge.js +824 -46
  188. package/dist/matterbridge.js.map +1 -0
  189. package/dist/matterbridgeAccessoryPlatform.d.ts +36 -0
  190. package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
  191. package/dist/matterbridgeAccessoryPlatform.js +38 -0
  192. package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
  193. package/dist/matterbridgeBehaviors.d.ts +24 -0
  194. package/dist/matterbridgeBehaviors.d.ts.map +1 -0
  195. package/dist/matterbridgeBehaviors.js +68 -5
  196. package/dist/matterbridgeBehaviors.js.map +1 -0
  197. package/dist/matterbridgeDeviceTypes.d.ts +603 -0
  198. package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
  199. package/dist/matterbridgeDeviceTypes.js +635 -14
  200. package/dist/matterbridgeDeviceTypes.js.map +1 -0
  201. package/dist/matterbridgeDynamicPlatform.d.ts +36 -0
  202. package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
  203. package/dist/matterbridgeDynamicPlatform.js +38 -0
  204. package/dist/matterbridgeDynamicPlatform.js.map +1 -0
  205. package/dist/matterbridgeEndpoint.d.ts +1332 -0
  206. package/dist/matterbridgeEndpoint.d.ts.map +1 -0
  207. package/dist/matterbridgeEndpoint.js +1457 -53
  208. package/dist/matterbridgeEndpoint.js.map +1 -0
  209. package/dist/matterbridgeEndpointHelpers.d.ts +425 -0
  210. package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
  211. package/dist/matterbridgeEndpointHelpers.js +483 -20
  212. package/dist/matterbridgeEndpointHelpers.js.map +1 -0
  213. package/dist/matterbridgeEndpointTypes.d.ts +70 -0
  214. package/dist/matterbridgeEndpointTypes.d.ts.map +1 -0
  215. package/dist/matterbridgeEndpointTypes.js +25 -0
  216. package/dist/matterbridgeEndpointTypes.js.map +1 -0
  217. package/dist/matterbridgePlatform.d.ts +425 -0
  218. package/dist/matterbridgePlatform.d.ts.map +1 -0
  219. package/dist/matterbridgePlatform.js +451 -1
  220. package/dist/matterbridgePlatform.js.map +1 -0
  221. package/dist/matterbridgeTypes.d.ts +46 -0
  222. package/dist/matterbridgeTypes.d.ts.map +1 -0
  223. package/dist/matterbridgeTypes.js +26 -0
  224. package/dist/matterbridgeTypes.js.map +1 -0
  225. package/dist/pluginManager.d.ts +305 -0
  226. package/dist/pluginManager.d.ts.map +1 -0
  227. package/dist/pluginManager.js +341 -5
  228. package/dist/pluginManager.js.map +1 -0
  229. package/dist/shelly.d.ts +157 -0
  230. package/dist/shelly.d.ts.map +1 -0
  231. package/dist/shelly.js +178 -7
  232. package/dist/shelly.js.map +1 -0
  233. package/dist/storage/export.d.ts +1 -0
  234. package/dist/storage/export.d.ts.map +1 -0
  235. package/dist/storage/export.js +1 -0
  236. package/dist/storage/export.js.map +1 -0
  237. package/dist/update.d.ts +75 -0
  238. package/dist/update.d.ts.map +1 -0
  239. package/dist/update.js +93 -1
  240. package/dist/update.js.map +1 -0
  241. package/dist/utils/colorUtils.d.ts +77 -0
  242. package/dist/utils/colorUtils.d.ts.map +1 -0
  243. package/dist/utils/colorUtils.js +97 -2
  244. package/dist/utils/colorUtils.js.map +1 -0
  245. package/dist/utils/commandLine.d.ts +60 -0
  246. package/dist/utils/commandLine.d.ts.map +1 -0
  247. package/dist/utils/commandLine.js +60 -0
  248. package/dist/utils/commandLine.js.map +1 -0
  249. package/dist/utils/copyDirectory.d.ts +33 -0
  250. package/dist/utils/copyDirectory.d.ts.map +1 -0
  251. package/dist/utils/copyDirectory.js +37 -0
  252. package/dist/utils/copyDirectory.js.map +1 -0
  253. package/dist/utils/createDirectory.d.ts +32 -0
  254. package/dist/utils/createDirectory.d.ts.map +1 -0
  255. package/dist/utils/createDirectory.js +33 -0
  256. package/dist/utils/createDirectory.js.map +1 -0
  257. package/dist/utils/createZip.d.ts +38 -0
  258. package/dist/utils/createZip.d.ts.map +1 -0
  259. package/dist/utils/createZip.js +47 -2
  260. package/dist/utils/createZip.js.map +1 -0
  261. package/dist/utils/deepCopy.d.ts +31 -0
  262. package/dist/utils/deepCopy.d.ts.map +1 -0
  263. package/dist/utils/deepCopy.js +39 -0
  264. package/dist/utils/deepCopy.js.map +1 -0
  265. package/dist/utils/deepEqual.d.ts +53 -0
  266. package/dist/utils/deepEqual.d.ts.map +1 -0
  267. package/dist/utils/deepEqual.js +72 -1
  268. package/dist/utils/deepEqual.js.map +1 -0
  269. package/dist/utils/error.d.ts +42 -0
  270. package/dist/utils/error.d.ts.map +1 -0
  271. package/dist/utils/error.js +42 -0
  272. package/dist/utils/error.js.map +1 -0
  273. package/dist/utils/export.d.ts +1 -0
  274. package/dist/utils/export.d.ts.map +1 -0
  275. package/dist/utils/export.js +1 -0
  276. package/dist/utils/export.js.map +1 -0
  277. package/dist/utils/format.d.ts +49 -0
  278. package/dist/utils/format.d.ts.map +1 -0
  279. package/dist/utils/format.js +49 -0
  280. package/dist/utils/format.js.map +1 -0
  281. package/dist/utils/hex.d.ts +85 -0
  282. package/dist/utils/hex.d.ts.map +1 -0
  283. package/dist/utils/hex.js +124 -0
  284. package/dist/utils/hex.js.map +1 -0
  285. package/dist/utils/inspector.d.ts +63 -0
  286. package/dist/utils/inspector.d.ts.map +1 -0
  287. package/dist/utils/inspector.js +69 -1
  288. package/dist/utils/inspector.js.map +1 -0
  289. package/dist/utils/isValid.d.ts +93 -0
  290. package/dist/utils/isValid.d.ts.map +1 -0
  291. package/dist/utils/isValid.js +93 -0
  292. package/dist/utils/isValid.js.map +1 -0
  293. package/dist/utils/network.d.ts +116 -0
  294. package/dist/utils/network.d.ts.map +1 -0
  295. package/dist/utils/network.js +126 -5
  296. package/dist/utils/network.js.map +1 -0
  297. package/dist/utils/spawn.d.ts +32 -0
  298. package/dist/utils/spawn.d.ts.map +1 -0
  299. package/dist/utils/spawn.js +71 -1
  300. package/dist/utils/spawn.js.map +1 -0
  301. package/dist/utils/tracker.d.ts +56 -0
  302. package/dist/utils/tracker.d.ts.map +1 -0
  303. package/dist/utils/tracker.js +64 -1
  304. package/dist/utils/tracker.js.map +1 -0
  305. package/dist/utils/wait.d.ts +51 -0
  306. package/dist/utils/wait.d.ts.map +1 -0
  307. package/dist/utils/wait.js +60 -8
  308. package/dist/utils/wait.js.map +1 -0
  309. package/dist/workerGlobalPrefix.d.ts +24 -0
  310. package/dist/workerGlobalPrefix.d.ts.map +1 -0
  311. package/dist/workerGlobalPrefix.js +37 -5
  312. package/dist/workerGlobalPrefix.js.map +1 -0
  313. package/dist/workerTypes.d.ts +25 -0
  314. package/dist/workerTypes.d.ts.map +1 -0
  315. package/dist/workerTypes.js +24 -0
  316. package/dist/workerTypes.js.map +1 -0
  317. package/dist/workers.d.ts +61 -0
  318. package/dist/workers.d.ts.map +1 -0
  319. package/dist/workers.js +68 -4
  320. package/dist/workers.js.map +1 -0
  321. package/npm-shrinkwrap.json +2 -2
  322. package/package.json +2 -1
  323. package/packages/dgram/dist/coap.d.ts +171 -0
  324. package/packages/dgram/dist/coap.d.ts.map +1 -0
  325. package/packages/dgram/dist/coap.js +126 -13
  326. package/packages/dgram/dist/coap.js.map +1 -0
  327. package/packages/dgram/dist/dgram.d.ts +99 -0
  328. package/packages/dgram/dist/dgram.d.ts.map +1 -0
  329. package/packages/dgram/dist/dgram.js +115 -3
  330. package/packages/dgram/dist/dgram.js.map +1 -0
  331. package/packages/dgram/dist/export.d.ts +1 -0
  332. package/packages/dgram/dist/export.d.ts.map +1 -0
  333. package/packages/dgram/dist/export.js +1 -0
  334. package/packages/dgram/dist/export.js.map +1 -0
  335. package/packages/dgram/dist/mdns.d.ts +187 -4
  336. package/packages/dgram/dist/mdns.d.ts.map +1 -0
  337. package/packages/dgram/dist/mdns.js +371 -139
  338. package/packages/dgram/dist/mdns.js.map +1 -0
  339. package/packages/dgram/dist/multicast.d.ts +49 -0
  340. package/packages/dgram/dist/multicast.d.ts.map +1 -0
  341. package/packages/dgram/dist/multicast.js +62 -1
  342. package/packages/dgram/dist/multicast.js.map +1 -0
  343. package/packages/dgram/dist/unicast.d.ts +53 -0
  344. package/packages/dgram/dist/unicast.d.ts.map +1 -0
  345. package/packages/dgram/dist/unicast.js +60 -0
  346. package/packages/dgram/dist/unicast.js.map +1 -0
  347. package/packages/jest-utils/dist/export.d.ts +1 -0
  348. package/packages/jest-utils/dist/export.d.ts.map +1 -0
  349. package/packages/jest-utils/dist/export.js +1 -0
  350. package/packages/jest-utils/dist/export.js.map +1 -0
  351. package/packages/jest-utils/dist/jestHelpers.d.ts +56 -0
  352. package/packages/jest-utils/dist/jestHelpers.d.ts.map +1 -0
  353. package/packages/jest-utils/dist/jestHelpers.js +62 -1
  354. package/packages/jest-utils/dist/jestHelpers.js.map +1 -0
  355. package/packages/utils/dist/colorUtils.d.ts +77 -0
  356. package/packages/utils/dist/colorUtils.d.ts.map +1 -0
  357. package/packages/utils/dist/colorUtils.js +97 -2
  358. package/packages/utils/dist/colorUtils.js.map +1 -0
  359. package/packages/utils/dist/commandLine.d.ts +60 -0
  360. package/packages/utils/dist/commandLine.d.ts.map +1 -0
  361. package/packages/utils/dist/commandLine.js +60 -0
  362. package/packages/utils/dist/commandLine.js.map +1 -0
  363. package/packages/utils/dist/copyDirectory.d.ts +33 -0
  364. package/packages/utils/dist/copyDirectory.d.ts.map +1 -0
  365. package/packages/utils/dist/copyDirectory.js +37 -0
  366. package/packages/utils/dist/copyDirectory.js.map +1 -0
  367. package/packages/utils/dist/createDirectory.d.ts +32 -0
  368. package/packages/utils/dist/createDirectory.d.ts.map +1 -0
  369. package/packages/utils/dist/createDirectory.js +33 -0
  370. package/packages/utils/dist/createDirectory.js.map +1 -0
  371. package/packages/utils/dist/createZip.d.ts +38 -0
  372. package/packages/utils/dist/createZip.d.ts.map +1 -0
  373. package/packages/utils/dist/createZip.js +47 -2
  374. package/packages/utils/dist/createZip.js.map +1 -0
  375. package/packages/utils/dist/deepCopy.d.ts +31 -0
  376. package/packages/utils/dist/deepCopy.d.ts.map +1 -0
  377. package/packages/utils/dist/deepCopy.js +39 -0
  378. package/packages/utils/dist/deepCopy.js.map +1 -0
  379. package/packages/utils/dist/deepEqual.d.ts +53 -0
  380. package/packages/utils/dist/deepEqual.d.ts.map +1 -0
  381. package/packages/utils/dist/deepEqual.js +73 -1
  382. package/packages/utils/dist/deepEqual.js.map +1 -0
  383. package/packages/utils/dist/error.d.ts +42 -0
  384. package/packages/utils/dist/error.d.ts.map +1 -0
  385. package/packages/utils/dist/error.js +42 -0
  386. package/packages/utils/dist/error.js.map +1 -0
  387. package/packages/utils/dist/export.d.ts +1 -0
  388. package/packages/utils/dist/export.d.ts.map +1 -0
  389. package/packages/utils/dist/export.js +1 -0
  390. package/packages/utils/dist/export.js.map +1 -0
  391. package/packages/utils/dist/format.d.ts +49 -0
  392. package/packages/utils/dist/format.d.ts.map +1 -0
  393. package/packages/utils/dist/format.js +49 -0
  394. package/packages/utils/dist/format.js.map +1 -0
  395. package/packages/utils/dist/githubVersion.d.ts +32 -0
  396. package/packages/utils/dist/githubVersion.d.ts.map +1 -0
  397. package/packages/utils/dist/githubVersion.js +34 -1
  398. package/packages/utils/dist/githubVersion.js.map +1 -0
  399. package/packages/utils/dist/hex.d.ts +85 -0
  400. package/packages/utils/dist/hex.d.ts.map +1 -0
  401. package/packages/utils/dist/hex.js +124 -0
  402. package/packages/utils/dist/hex.js.map +1 -0
  403. package/packages/utils/dist/inspector.d.ts +63 -0
  404. package/packages/utils/dist/inspector.d.ts.map +1 -0
  405. package/packages/utils/dist/inspector.js +69 -1
  406. package/packages/utils/dist/inspector.js.map +1 -0
  407. package/packages/utils/dist/isValid.d.ts +93 -0
  408. package/packages/utils/dist/isValid.d.ts.map +1 -0
  409. package/packages/utils/dist/isValid.js +93 -0
  410. package/packages/utils/dist/isValid.js.map +1 -0
  411. package/packages/utils/dist/network.d.ts +93 -0
  412. package/packages/utils/dist/network.d.ts.map +1 -0
  413. package/packages/utils/dist/network.js +99 -3
  414. package/packages/utils/dist/network.js.map +1 -0
  415. package/packages/utils/dist/npmRoot.d.ts +28 -0
  416. package/packages/utils/dist/npmRoot.d.ts.map +1 -0
  417. package/packages/utils/dist/npmRoot.js +28 -0
  418. package/packages/utils/dist/npmRoot.js.map +1 -0
  419. package/packages/utils/dist/npmVersion.d.ts +32 -0
  420. package/packages/utils/dist/npmVersion.d.ts.map +1 -0
  421. package/packages/utils/dist/npmVersion.js +34 -1
  422. package/packages/utils/dist/npmVersion.js.map +1 -0
  423. package/packages/utils/dist/tracker.d.ts +56 -0
  424. package/packages/utils/dist/tracker.d.ts.map +1 -0
  425. package/packages/utils/dist/tracker.js +64 -1
  426. package/packages/utils/dist/tracker.js.map +1 -0
  427. package/packages/utils/dist/wait.d.ts +51 -0
  428. package/packages/utils/dist/wait.d.ts.map +1 -0
  429. package/packages/utils/dist/wait.js +60 -8
  430. package/packages/utils/dist/wait.js.map +1 -0
  431. package/packages/vitest-utils/dist/export.d.ts +1 -0
  432. package/packages/vitest-utils/dist/export.d.ts.map +1 -0
  433. package/packages/vitest-utils/dist/export.js +1 -0
  434. package/packages/vitest-utils/dist/export.js.map +1 -0
  435. package/packages/vitest-utils/dist/vitestHelpers.d.ts +37 -0
  436. package/packages/vitest-utils/dist/vitestHelpers.d.ts.map +1 -0
  437. package/packages/vitest-utils/dist/vitestHelpers.js +43 -1
  438. package/packages/vitest-utils/dist/vitestHelpers.js.map +1 -0
@@ -1,3 +1,25 @@
1
+ /**
2
+ * @description This file contains the Refrigerator class.
3
+ * @file src/devices/refrigerator.ts
4
+ * @author Luca Liguori
5
+ * @created 2025-05-25
6
+ * @version 1.1.0
7
+ * @license Apache-2.0
8
+ *
9
+ * Copyright 2025, 2026, 2027 Luca Liguori.
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this file except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License.
22
+ */
1
23
  import { MaybePromise } from '@matter/general';
2
24
  import { Semtag } from '@matter/types';
3
25
  import { ModeBase } from '@matter/types/clusters/mode-base';
@@ -5,14 +27,92 @@ import { RefrigeratorAndTemperatureControlledCabinetMode } from '@matter/types/c
5
27
  import { RefrigeratorAndTemperatureControlledCabinetModeServer } from '@matter/node/behaviors/refrigerator-and-temperature-controlled-cabinet-mode';
6
28
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
7
29
  export declare class Refrigerator extends MatterbridgeEndpoint {
30
+ /**
31
+ * Creates an instance of the Refrigerator class.
32
+ *
33
+ * @param {string} name - The name of the refrigerator.
34
+ * @param {string} serial - The serial number of the refrigerator.
35
+ *
36
+ * @remarks
37
+ * 13.2 A refrigerator represents a device that contains one or more cabinets that are capable of chilling or
38
+ * freezing food. Examples of consumer products that MAY make use of this device type include refrigerators,
39
+ * freezers, and wine coolers.
40
+ * A refrigerator is always defined via endpoint composition.
41
+ * - Use `addCabinet` to add one or more cabinets to the refrigerator.
42
+ */
8
43
  constructor(name: string, serial: string);
44
+ /**
45
+ * Adds a Level Temperature Controlled Cabinet Cooler to the refrigerator.
46
+ *
47
+ * @param {string} name - The name of the cabinet.
48
+ * @param {Semtag[]} tagList - The tagList associated with the cabinet.
49
+ * @param {number} currentMode - The current mode of the cabinet. Defaults to 1 (which corresponds to 'Auto').
50
+ * @param {RefrigeratorAndTemperatureControlledCabinetMode.ModeOption[]} supportedModes - The supported modes for the cabinet. Defaults to 'Auto', 'RapidCool', and 'RapidFreeze'.
51
+ * @param {number} selectedTemperatureLevel - The selected temperature level as an index of the supportedTemperatureLevels array. Defaults to 2 (which corresponds to 'Level 3').
52
+ * @param {string[]} supportedTemperatureLevels - The list of supported temperature levels for the cabinet. Defaults to ['Level 1', 'Level 2', 'Level 3', 'Level 4', 'Level 5'].
53
+ * @param {number} currentTemperature - The current temperature of the cabinet in degrees Celsius. Defaults to 1000 (which corresponds to 10.00 degrees Celsius).
54
+ *
55
+ * @returns {MatterbridgeEndpoint} The MatterbridgeEndpoint instance representing the cabinet.
56
+ *
57
+ * @remarks
58
+ * 13.4.1 A Temperature Controlled Cabinet Cooler is a device that provides a cooled space for chilling food.
59
+ * It is typically installed within a refrigerator.
60
+ *
61
+ * Example usage with specific namespace tags:
62
+ * ```
63
+ * refrigerator.addCabinet('Refrigerator Top', [
64
+ * { mfgCode: null, namespaceId: PositionTag.Top.namespaceId, tag: PositionTag.Top.tag, label: 'Refrigerator Top' },
65
+ * { mfgCode: null, namespaceId: RefrigeratorTag.Refrigerator.namespaceId, tag: RefrigeratorTag.Refrigerator.tag, label: RefrigeratorTag.Refrigerator.label },
66
+ * ]);
67
+ * refrigerator.addCabinet('Freezer Bottom', [
68
+ * { mfgCode: null, namespaceId: PositionTag.Bottom.namespaceId, tag: PositionTag.Bottom.tag, label: 'Freezer Bottom' },
69
+ * { mfgCode: null, namespaceId: RefrigeratorTag.Freezer.namespaceId, tag: RefrigeratorTag.Freezer.tag, label: RefrigeratorTag.Freezer.label },
70
+ * ]);
71
+ * ```
72
+ */
9
73
  addCabinet(name: string, tagList: Semtag[], currentMode?: number, supportedModes?: RefrigeratorAndTemperatureControlledCabinetMode.ModeOption[], selectedTemperatureLevel?: number, supportedTemperatureLevels?: string[], currentTemperature?: number): MatterbridgeEndpoint;
74
+ /**
75
+ * Creates a default RefrigeratorAndTemperatureControlledCabinetMode Cluster Server.
76
+ *
77
+ * @param {MatterbridgeEndpoint} endpoint - The Matterbridge endpoint instance.
78
+ * @param {number} currentMode - The current mode of the oven.
79
+ * @param {RefrigeratorAndTemperatureControlledCabinetMode.ModeOption[]} supportedModes - The supported modes for the refrigerator and temperature controlled cabinet.
80
+ *
81
+ * @returns {MatterbridgeEndpoint} The current MatterbridgeEndpoint instance for chaining.
82
+ *
83
+ * @remarks
84
+ * - supportedModes is a fixed attribute. It cannot be changed at runtime.
85
+ * - currentMode persists across reboots.
86
+ */
10
87
  createDefaultRefrigeratorAndTemperatureControlledCabinetModeClusterServer(endpoint: MatterbridgeEndpoint, currentMode: number, supportedModes: RefrigeratorAndTemperatureControlledCabinetMode.ModeOption[]): MatterbridgeEndpoint;
88
+ /**
89
+ * Creates a default RefrigeratorAlarm Cluster Server.
90
+ *
91
+ * @param {MatterbridgeEndpoint} endpoint - The Matterbridge endpoint instance.
92
+ * @param {boolean} doorOpen - Indicates if the refrigerator door is open.
93
+ *
94
+ * @returns {MatterbridgeEndpoint} The updated MatterbridgeEndpoint instance.
95
+ */
11
96
  createDefaultRefrigeratorAlarmClusterServer(endpoint: MatterbridgeEndpoint, doorOpen?: boolean): MatterbridgeEndpoint;
97
+ /**
98
+ * Sets the door open state for a specific cabinet.
99
+ *
100
+ * @param {string} cabinetName - The name of the cabinet.
101
+ * @param {boolean} doorOpen - Indicates if the door is open.
102
+ * @returns {MatterbridgeEndpoint | undefined} The updated MatterbridgeEndpoint instance or undefined if not found.
103
+ */
12
104
  setDoorOpenState(cabinetName: string, doorOpen: boolean): Promise<MatterbridgeEndpoint | undefined>;
105
+ /**
106
+ * Triggers the notify event for door open state on a specific cabinet.
107
+ *
108
+ * @param {string} cabinetName - The name of the cabinet.
109
+ * @param {boolean} doorOpen - Indicates if the door is open.
110
+ * @returns {MatterbridgeEndpoint | undefined} The updated MatterbridgeEndpoint instance or undefined if not found.
111
+ */
13
112
  triggerDoorOpenState(cabinetName: string, doorOpen: boolean): Promise<MatterbridgeEndpoint | undefined>;
14
113
  }
15
114
  export declare class MatterbridgeRefrigeratorAndTemperatureControlledCabinetModeServer extends RefrigeratorAndTemperatureControlledCabinetModeServer {
16
115
  initialize(): void;
17
116
  changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
18
117
  }
118
+ //# sourceMappingURL=refrigerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,+CAA+C,EAAE,MAAM,6EAA6E,CAAC;AAC9I,OAAO,EAAE,qDAAqD,EAAE,MAAM,6EAA6E,CAAC;AAKpJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKlE,qBAAa,YAAa,SAAQ,oBAAoB;IACpD;;;;;;;;;;;;OAYG;gBACS,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,GAAE,MAAU,EACvB,cAAc,GAAE,+CAA+C,CAAC,UAAU,EAIzE,EACD,wBAAwB,GAAE,MAAU,EACpC,0BAA0B,GAAE,MAAM,EAA4D,EAC9F,kBAAkB,GAAE,MAAa,GAChC,oBAAoB;IAWvB;;;;;;;;;;;;OAYG;IACH,yEAAyE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,+CAA+C,CAAC,UAAU,EAAE,GAAG,oBAAoB;IAQlO;;;;;;;OAOG;IACH,2CAA2C,CAAC,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,GAAE,OAAe,GAAG,oBAAoB;IAS5H;;;;;;OAMG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAQzG;;;;;;OAMG;IACG,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;CAW9G;AAGD,qBAAa,iEAAkE,SAAQ,qDAAqD;IACjI,UAAU;IAIV,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CAY1G"}
@@ -1,12 +1,48 @@
1
+ /**
2
+ * @description This file contains the Refrigerator class.
3
+ * @file src/devices/refrigerator.ts
4
+ * @author Luca Liguori
5
+ * @created 2025-05-25
6
+ * @version 1.1.0
7
+ * @license Apache-2.0
8
+ *
9
+ * Copyright 2025, 2026, 2027 Luca Liguori.
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this file except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License.
22
+ */
1
23
  import { ModeBase } from '@matter/types/clusters/mode-base';
2
24
  import { RefrigeratorAndTemperatureControlledCabinetMode } from '@matter/types/clusters/refrigerator-and-temperature-controlled-cabinet-mode';
3
25
  import { RefrigeratorAndTemperatureControlledCabinetModeServer } from '@matter/node/behaviors/refrigerator-and-temperature-controlled-cabinet-mode';
4
26
  import { RefrigeratorAlarmServer } from '@matter/node/behaviors/refrigerator-alarm';
27
+ // Matterbridge
5
28
  import { powerSource, refrigerator, temperatureControlledCabinetCooler } from '../matterbridgeDeviceTypes.js';
6
29
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
7
30
  import { MatterbridgeServer } from '../matterbridgeBehaviors.js';
8
31
  import { createLevelTemperatureControlClusterServer } from './temperatureControl.js';
9
32
  export class Refrigerator extends MatterbridgeEndpoint {
33
+ /**
34
+ * Creates an instance of the Refrigerator class.
35
+ *
36
+ * @param {string} name - The name of the refrigerator.
37
+ * @param {string} serial - The serial number of the refrigerator.
38
+ *
39
+ * @remarks
40
+ * 13.2 A refrigerator represents a device that contains one or more cabinets that are capable of chilling or
41
+ * freezing food. Examples of consumer products that MAY make use of this device type include refrigerators,
42
+ * freezers, and wine coolers.
43
+ * A refrigerator is always defined via endpoint composition.
44
+ * - Use `addCabinet` to add one or more cabinets to the refrigerator.
45
+ */
10
46
  constructor(name, serial) {
11
47
  super([refrigerator, powerSource], { id: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}` }, true);
12
48
  this.createDefaultIdentifyClusterServer();
@@ -14,6 +50,35 @@ export class Refrigerator extends MatterbridgeEndpoint {
14
50
  this.createDefaultPowerSourceWiredClusterServer();
15
51
  this.addFixedLabel('composed', 'Refrigerator');
16
52
  }
53
+ /**
54
+ * Adds a Level Temperature Controlled Cabinet Cooler to the refrigerator.
55
+ *
56
+ * @param {string} name - The name of the cabinet.
57
+ * @param {Semtag[]} tagList - The tagList associated with the cabinet.
58
+ * @param {number} currentMode - The current mode of the cabinet. Defaults to 1 (which corresponds to 'Auto').
59
+ * @param {RefrigeratorAndTemperatureControlledCabinetMode.ModeOption[]} supportedModes - The supported modes for the cabinet. Defaults to 'Auto', 'RapidCool', and 'RapidFreeze'.
60
+ * @param {number} selectedTemperatureLevel - The selected temperature level as an index of the supportedTemperatureLevels array. Defaults to 2 (which corresponds to 'Level 3').
61
+ * @param {string[]} supportedTemperatureLevels - The list of supported temperature levels for the cabinet. Defaults to ['Level 1', 'Level 2', 'Level 3', 'Level 4', 'Level 5'].
62
+ * @param {number} currentTemperature - The current temperature of the cabinet in degrees Celsius. Defaults to 1000 (which corresponds to 10.00 degrees Celsius).
63
+ *
64
+ * @returns {MatterbridgeEndpoint} The MatterbridgeEndpoint instance representing the cabinet.
65
+ *
66
+ * @remarks
67
+ * 13.4.1 A Temperature Controlled Cabinet Cooler is a device that provides a cooled space for chilling food.
68
+ * It is typically installed within a refrigerator.
69
+ *
70
+ * Example usage with specific namespace tags:
71
+ * ```
72
+ * refrigerator.addCabinet('Refrigerator Top', [
73
+ * { mfgCode: null, namespaceId: PositionTag.Top.namespaceId, tag: PositionTag.Top.tag, label: 'Refrigerator Top' },
74
+ * { mfgCode: null, namespaceId: RefrigeratorTag.Refrigerator.namespaceId, tag: RefrigeratorTag.Refrigerator.tag, label: RefrigeratorTag.Refrigerator.label },
75
+ * ]);
76
+ * refrigerator.addCabinet('Freezer Bottom', [
77
+ * { mfgCode: null, namespaceId: PositionTag.Bottom.namespaceId, tag: PositionTag.Bottom.tag, label: 'Freezer Bottom' },
78
+ * { mfgCode: null, namespaceId: RefrigeratorTag.Freezer.namespaceId, tag: RefrigeratorTag.Freezer.tag, label: RefrigeratorTag.Freezer.label },
79
+ * ]);
80
+ * ```
81
+ */
17
82
  addCabinet(name, tagList, currentMode = 1, supportedModes = [
18
83
  { label: 'Auto', mode: 1, modeTags: [{ value: RefrigeratorAndTemperatureControlledCabinetMode.ModeTag.Auto }] },
19
84
  { label: 'RapidCool', mode: 2, modeTags: [{ value: RefrigeratorAndTemperatureControlledCabinetMode.ModeTag.RapidCool }] },
@@ -28,6 +93,19 @@ export class Refrigerator extends MatterbridgeEndpoint {
28
93
  cabinet.createDefaultTemperatureMeasurementClusterServer(currentTemperature);
29
94
  return cabinet;
30
95
  }
96
+ /**
97
+ * Creates a default RefrigeratorAndTemperatureControlledCabinetMode Cluster Server.
98
+ *
99
+ * @param {MatterbridgeEndpoint} endpoint - The Matterbridge endpoint instance.
100
+ * @param {number} currentMode - The current mode of the oven.
101
+ * @param {RefrigeratorAndTemperatureControlledCabinetMode.ModeOption[]} supportedModes - The supported modes for the refrigerator and temperature controlled cabinet.
102
+ *
103
+ * @returns {MatterbridgeEndpoint} The current MatterbridgeEndpoint instance for chaining.
104
+ *
105
+ * @remarks
106
+ * - supportedModes is a fixed attribute. It cannot be changed at runtime.
107
+ * - currentMode persists across reboots.
108
+ */
31
109
  createDefaultRefrigeratorAndTemperatureControlledCabinetModeClusterServer(endpoint, currentMode, supportedModes) {
32
110
  endpoint.behaviors.require(MatterbridgeRefrigeratorAndTemperatureControlledCabinetModeServer, {
33
111
  supportedModes,
@@ -35,6 +113,14 @@ export class Refrigerator extends MatterbridgeEndpoint {
35
113
  });
36
114
  return endpoint;
37
115
  }
116
+ /**
117
+ * Creates a default RefrigeratorAlarm Cluster Server.
118
+ *
119
+ * @param {MatterbridgeEndpoint} endpoint - The Matterbridge endpoint instance.
120
+ * @param {boolean} doorOpen - Indicates if the refrigerator door is open.
121
+ *
122
+ * @returns {MatterbridgeEndpoint} The updated MatterbridgeEndpoint instance.
123
+ */
38
124
  createDefaultRefrigeratorAlarmClusterServer(endpoint, doorOpen = false) {
39
125
  endpoint.behaviors.require(RefrigeratorAlarmServer, {
40
126
  mask: { doorOpen: true },
@@ -43,6 +129,13 @@ export class Refrigerator extends MatterbridgeEndpoint {
43
129
  });
44
130
  return endpoint;
45
131
  }
132
+ /**
133
+ * Sets the door open state for a specific cabinet.
134
+ *
135
+ * @param {string} cabinetName - The name of the cabinet.
136
+ * @param {boolean} doorOpen - Indicates if the door is open.
137
+ * @returns {MatterbridgeEndpoint | undefined} The updated MatterbridgeEndpoint instance or undefined if not found.
138
+ */
46
139
  async setDoorOpenState(cabinetName, doorOpen) {
47
140
  const endpoint = this.getChildEndpointByName(cabinetName);
48
141
  if (endpoint) {
@@ -50,6 +143,13 @@ export class Refrigerator extends MatterbridgeEndpoint {
50
143
  return endpoint;
51
144
  }
52
145
  }
146
+ /**
147
+ * Triggers the notify event for door open state on a specific cabinet.
148
+ *
149
+ * @param {string} cabinetName - The name of the cabinet.
150
+ * @param {boolean} doorOpen - Indicates if the door is open.
151
+ * @returns {MatterbridgeEndpoint | undefined} The updated MatterbridgeEndpoint instance or undefined if not found.
152
+ */
53
153
  async triggerDoorOpenState(cabinetName, doorOpen) {
54
154
  const endpoint = this.getChildEndpointByName(cabinetName);
55
155
  if (endpoint) {
@@ -63,6 +163,7 @@ export class Refrigerator extends MatterbridgeEndpoint {
63
163
  }
64
164
  }
65
165
  }
166
+ // Server for RefrigeratorAndTemperatureControlledCabinetMode
66
167
  export class MatterbridgeRefrigeratorAndTemperatureControlledCabinetModeServer extends RefrigeratorAndTemperatureControlledCabinetModeServer {
67
168
  initialize() {
68
169
  const device = this.endpoint.stateOf(MatterbridgeServer);
@@ -82,3 +183,4 @@ export class MatterbridgeRefrigeratorAndTemperatureControlledCabinetModeServer e
82
183
  }
83
184
  }
84
185
  }
186
+ //# sourceMappingURL=refrigerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refrigerator.js","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,25 @@
1
+ /**
2
+ * @description This file contains the RoboticVacuumCleaner class.
3
+ * @file src/devices/roboticVacuumCleaner.ts
4
+ * @author Luca Liguori
5
+ * @created 2025-05-01
6
+ * @version 1.1.0
7
+ * @license Apache-2.0
8
+ *
9
+ * Copyright 2025, 2026, 2027 Luca Liguori.
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this file except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License.
22
+ */
1
23
  import { MaybePromise } from '@matter/general';
2
24
  import { RvcRunMode } from '@matter/types/clusters/rvc-run-mode';
3
25
  import { RvcCleanMode } from '@matter/types/clusters/rvc-clean-mode';
@@ -10,10 +32,70 @@ import { RvcOperationalStateServer } from '@matter/node/behaviors/rvc-operationa
10
32
  import { RvcCleanModeServer } from '@matter/node/behaviors/rvc-clean-mode';
11
33
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
12
34
  export declare class RoboticVacuumCleaner extends MatterbridgeEndpoint {
35
+ /**
36
+ * Creates an instance of the RoboticVacuumCleaner class.
37
+ *
38
+ * @param {string} name - The name of the robotic vacuum cleaner.
39
+ * @param {string} serial - The serial number of the robotic vacuum cleaner.
40
+ * @param {'server' | 'matter' | undefined} [mode] - The mode of the robotic vacuum cleaner. Defaults to undefined. Use 'server' or 'matter' if you want Apple Home compatibility.
41
+ * @param {number} [currentRunMode] - The current run mode of the robotic vacuum cleaner. Defaults to 1 (Idle).
42
+ * @param {RvcRunMode.ModeOption[]} [supportedRunModes] - The supported run modes for the robotic vacuum cleaner. Defaults to a predefined set of modes.
43
+ * @param {number} [currentCleanMode] - The current clean mode of the robotic vacuum cleaner. Defaults to 1 (Vacuum).
44
+ * @param {RvcCleanMode.ModeOption[]} [supportedCleanModes] - The supported clean modes for the robotic vacuum cleaner. Defaults to a predefined set of modes.
45
+ * @param {number | null} [currentPhase] - The current phase of the robotic vacuum cleaner. Defaults to null.
46
+ * @param {string[] | null} [phaseList] - The list of phases for the robotic vacuum cleaner. Defaults to null.
47
+ * @param {RvcOperationalState.OperationalState} [operationalState] - The current operational state of the robotic vacuum cleaner. Defaults to Docked.
48
+ * @param {RvcOperationalState.OperationalStateStruct[]} [operationalStateList] - The list of operational states for the robotic vacuum cleaner. Defaults to a predefined set of states.
49
+ * @param {ServiceArea.Area[]} [supportedAreas] - The supported areas for the robotic vacuum cleaner. Defaults to a predefined set of areas.
50
+ * @param {number[]} [selectedAreas] - The selected areas for the robotic vacuum cleaner. Defaults to an empty array (all areas allowed).
51
+ * @param {number} [currentArea] - The current area of the robotic vacuum cleaner. Defaults to 1 (Living).
52
+ * @param {ServiceArea.Map[]} [supportedMaps] - The supported maps for the robotic vacuum cleaner. Defaults to empty list.
53
+ */
13
54
  constructor(name: string, serial: string, mode?: 'server' | 'matter' | undefined, currentRunMode?: number, supportedRunModes?: RvcRunMode.ModeOption[], currentCleanMode?: number, supportedCleanModes?: RvcCleanMode.ModeOption[], currentPhase?: number | null, phaseList?: string[] | null, operationalState?: RvcOperationalState.OperationalState, operationalStateList?: RvcOperationalState.OperationalStateStruct[], supportedAreas?: ServiceArea.Area[], selectedAreas?: number[], currentArea?: number, supportedMaps?: ServiceArea.Map[]);
55
+ /**
56
+ * Creates a default RvcRunMode Cluster Server.
57
+ *
58
+ * @param {number} [currentMode] - The current mode of the RvcRunMode cluster. Defaults to 1 (Idle).
59
+ * @param {RvcRunMode.ModeOption[]} [supportedModes] - The supported modes for the RvcRunMode cluster. Defaults to a predefined set of modes.
60
+ *
61
+ * @returns {this} The current MatterbridgeEndpoint instance for chaining.
62
+ *
63
+ * @remarks
64
+ * - supportedModes is a fixed attribute that defines the run modes available for the robotic vacuum cleaner.
65
+ */
14
66
  createDefaultRvcRunModeClusterServer(currentMode?: number, supportedModes?: RvcRunMode.ModeOption[]): this;
67
+ /**
68
+ * Creates a default RvcCleanMode Cluster Server.
69
+ *
70
+ * @param {number} [currentMode] - The current mode of the RvcCleanMode cluster. Defaults to 1 (Vacuum).
71
+ * @param {RvcCleanMode.ModeOption[]} [supportedModes] - The supported modes for the RvcCleanMode cluster. Defaults to a predefined set of modes.
72
+ *
73
+ * @returns {this} The current MatterbridgeEndpoint instance for chaining.
74
+ *
75
+ * @remarks
76
+ * - supportedModes is a fixed attribute that defines the clean modes available for the robotic vacuum cleaner.
77
+ */
15
78
  createDefaultRvcCleanModeClusterServer(currentMode?: number, supportedModes?: RvcCleanMode.ModeOption[]): this;
79
+ /**
80
+ * Creates a default ServiceArea Cluster Server.
81
+ *
82
+ * @param {ServiceArea.Area[]} [supportedAreas] - The supported areas for the ServiceArea cluster. Defaults to a predefined set of areas.
83
+ * @param {number[]} [selectedAreas] - The selected areas for the ServiceArea cluster. Defaults to an empty array (all areas allowed).
84
+ * @param {number} [currentArea] - The current areaId (not the index in the array!) of the ServiceArea cluster. Defaults to 1 (Living).
85
+ * @param {ServiceArea.Map[]} [supportedMaps] - The supported maps for the robotic vacuum cleaner. Defaults empty list.
86
+ * @returns {this} The current MatterbridgeEndpoint instance for chaining.
87
+ */
16
88
  createDefaultServiceAreaClusterServer(supportedAreas?: ServiceArea.Area[], selectedAreas?: number[], currentArea?: number, supportedMaps?: ServiceArea.Map[]): this;
89
+ /**
90
+ * Creates a default RvcOperationalState Cluster Server.
91
+ *
92
+ * @param {string[] | null} [phaseList] - The list of phases for the RvcOperationalState cluster. Defaults to null.
93
+ * @param {number | null} [currentPhase] - The current phase (the index of the phaseList) of the RvcOperationalState cluster. Defaults to null.
94
+ * @param {RvcOperationalState.OperationalStateStruct[]} [operationalStateList] - The list of operational states for the RvcOperationalState cluster. Defaults to a predefined set of states.
95
+ * @param {RvcOperationalState.OperationalState} [operationalState] - The current operationalStateId of the RvcOperationalState cluster. Defaults to Docked.
96
+ * @param {RvcOperationalState.ErrorStateStruct} [operationalError] - The current operational error of the RvcOperationalState cluster. Defaults to NoError.
97
+ * @returns {this} The current MatterbridgeEndpoint instance for chaining.
98
+ */
17
99
  createDefaultRvcOperationalStateClusterServer(phaseList?: string[] | null, currentPhase?: number | null, operationalStateList?: RvcOperationalState.OperationalStateStruct[], operationalState?: RvcOperationalState.OperationalState, operationalError?: RvcOperationalState.ErrorStateStruct): this;
18
100
  }
19
101
  export declare class MatterbridgeRvcRunModeServer extends RvcRunModeServer {
@@ -27,3 +109,4 @@ export declare class MatterbridgeRvcOperationalStateServer extends RvcOperationa
27
109
  resume(): MaybePromise<OperationalState.OperationalCommandResponse>;
28
110
  goHome(): MaybePromise<OperationalState.OperationalCommandResponse>;
29
111
  }
112
+ //# sourceMappingURL=roboticVacuumCleaner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roboticVacuumCleaner.d.ts","sourceRoot":"","sources":["../../src/devices/roboticVacuumCleaner.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,26 @@
1
+ /**
2
+ * @description This file contains the RoboticVacuumCleaner class.
3
+ * @file src/devices/roboticVacuumCleaner.ts
4
+ * @author Luca Liguori
5
+ * @created 2025-05-01
6
+ * @version 1.1.0
7
+ * @license Apache-2.0
8
+ *
9
+ * Copyright 2025, 2026, 2027 Luca Liguori.
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this file except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License.
22
+ */
23
+ // Matter.js
1
24
  import { AreaNamespaceTag } from '@matter/node';
2
25
  import { PowerSource } from '@matter/types/clusters/power-source';
3
26
  import { RvcRunMode } from '@matter/types/clusters/rvc-run-mode';
@@ -9,10 +32,30 @@ import { OperationalState } from '@matter/types/clusters/operational-state';
9
32
  import { RvcRunModeServer } from '@matter/node/behaviors/rvc-run-mode';
10
33
  import { RvcOperationalStateServer } from '@matter/node/behaviors/rvc-operational-state';
11
34
  import { RvcCleanModeServer } from '@matter/node/behaviors/rvc-clean-mode';
35
+ // Matterbridge
12
36
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
13
37
  import { powerSource, roboticVacuumCleaner } from '../matterbridgeDeviceTypes.js';
14
38
  import { MatterbridgeServer, MatterbridgeServiceAreaServer } from '../matterbridgeBehaviors.js';
15
39
  export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
40
+ /**
41
+ * Creates an instance of the RoboticVacuumCleaner class.
42
+ *
43
+ * @param {string} name - The name of the robotic vacuum cleaner.
44
+ * @param {string} serial - The serial number of the robotic vacuum cleaner.
45
+ * @param {'server' | 'matter' | undefined} [mode] - The mode of the robotic vacuum cleaner. Defaults to undefined. Use 'server' or 'matter' if you want Apple Home compatibility.
46
+ * @param {number} [currentRunMode] - The current run mode of the robotic vacuum cleaner. Defaults to 1 (Idle).
47
+ * @param {RvcRunMode.ModeOption[]} [supportedRunModes] - The supported run modes for the robotic vacuum cleaner. Defaults to a predefined set of modes.
48
+ * @param {number} [currentCleanMode] - The current clean mode of the robotic vacuum cleaner. Defaults to 1 (Vacuum).
49
+ * @param {RvcCleanMode.ModeOption[]} [supportedCleanModes] - The supported clean modes for the robotic vacuum cleaner. Defaults to a predefined set of modes.
50
+ * @param {number | null} [currentPhase] - The current phase of the robotic vacuum cleaner. Defaults to null.
51
+ * @param {string[] | null} [phaseList] - The list of phases for the robotic vacuum cleaner. Defaults to null.
52
+ * @param {RvcOperationalState.OperationalState} [operationalState] - The current operational state of the robotic vacuum cleaner. Defaults to Docked.
53
+ * @param {RvcOperationalState.OperationalStateStruct[]} [operationalStateList] - The list of operational states for the robotic vacuum cleaner. Defaults to a predefined set of states.
54
+ * @param {ServiceArea.Area[]} [supportedAreas] - The supported areas for the robotic vacuum cleaner. Defaults to a predefined set of areas.
55
+ * @param {number[]} [selectedAreas] - The selected areas for the robotic vacuum cleaner. Defaults to an empty array (all areas allowed).
56
+ * @param {number} [currentArea] - The current area of the robotic vacuum cleaner. Defaults to 1 (Living).
57
+ * @param {ServiceArea.Map[]} [supportedMaps] - The supported maps for the robotic vacuum cleaner. Defaults to empty list.
58
+ */
16
59
  constructor(name, serial, mode = undefined, currentRunMode, supportedRunModes, currentCleanMode, supportedCleanModes, currentPhase = null, phaseList = null, operationalState, operationalStateList, supportedAreas, selectedAreas, currentArea, supportedMaps) {
17
60
  super([roboticVacuumCleaner, powerSource], { id: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}`, mode });
18
61
  this.createDefaultIdentifyClusterServer()
@@ -23,6 +66,17 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
23
66
  .createDefaultRvcOperationalStateClusterServer(phaseList, currentPhase, operationalStateList, operationalState)
24
67
  .createDefaultServiceAreaClusterServer(supportedAreas, selectedAreas, currentArea, supportedMaps);
25
68
  }
69
+ /**
70
+ * Creates a default RvcRunMode Cluster Server.
71
+ *
72
+ * @param {number} [currentMode] - The current mode of the RvcRunMode cluster. Defaults to 1 (Idle).
73
+ * @param {RvcRunMode.ModeOption[]} [supportedModes] - The supported modes for the RvcRunMode cluster. Defaults to a predefined set of modes.
74
+ *
75
+ * @returns {this} The current MatterbridgeEndpoint instance for chaining.
76
+ *
77
+ * @remarks
78
+ * - supportedModes is a fixed attribute that defines the run modes available for the robotic vacuum cleaner.
79
+ */
26
80
  createDefaultRvcRunModeClusterServer(currentMode, supportedModes) {
27
81
  this.behaviors.require(MatterbridgeRvcRunModeServer, {
28
82
  supportedModes: supportedModes ?? [
@@ -35,6 +89,17 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
35
89
  });
36
90
  return this;
37
91
  }
92
+ /**
93
+ * Creates a default RvcCleanMode Cluster Server.
94
+ *
95
+ * @param {number} [currentMode] - The current mode of the RvcCleanMode cluster. Defaults to 1 (Vacuum).
96
+ * @param {RvcCleanMode.ModeOption[]} [supportedModes] - The supported modes for the RvcCleanMode cluster. Defaults to a predefined set of modes.
97
+ *
98
+ * @returns {this} The current MatterbridgeEndpoint instance for chaining.
99
+ *
100
+ * @remarks
101
+ * - supportedModes is a fixed attribute that defines the clean modes available for the robotic vacuum cleaner.
102
+ */
38
103
  createDefaultRvcCleanModeClusterServer(currentMode, supportedModes) {
39
104
  this.behaviors.require(MatterbridgeRvcCleanModeServer, {
40
105
  supportedModes: supportedModes ?? [
@@ -46,6 +111,15 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
46
111
  });
47
112
  return this;
48
113
  }
114
+ /**
115
+ * Creates a default ServiceArea Cluster Server.
116
+ *
117
+ * @param {ServiceArea.Area[]} [supportedAreas] - The supported areas for the ServiceArea cluster. Defaults to a predefined set of areas.
118
+ * @param {number[]} [selectedAreas] - The selected areas for the ServiceArea cluster. Defaults to an empty array (all areas allowed).
119
+ * @param {number} [currentArea] - The current areaId (not the index in the array!) of the ServiceArea cluster. Defaults to 1 (Living).
120
+ * @param {ServiceArea.Map[]} [supportedMaps] - The supported maps for the robotic vacuum cleaner. Defaults empty list.
121
+ * @returns {this} The current MatterbridgeEndpoint instance for chaining.
122
+ */
49
123
  createDefaultServiceAreaClusterServer(supportedAreas, selectedAreas, currentArea, supportedMaps) {
50
124
  this.behaviors.require(MatterbridgeServiceAreaServer.with(ServiceArea.Feature.Maps), {
51
125
  supportedAreas: supportedAreas ?? [
@@ -70,13 +144,28 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
70
144
  areaInfo: { locationInfo: { locationName: 'Bathroom', floorNumber: 1, areaType: AreaNamespaceTag.Bathroom.tag }, landmarkInfo: null },
71
145
  },
72
146
  ],
73
- selectedAreas: selectedAreas ?? [],
74
- currentArea: currentArea ?? 1,
75
- supportedMaps: supportedMaps ?? [],
147
+ selectedAreas: selectedAreas ?? [], // Indicates the set of areas where the device SHOULD attempt to operate. If this attribute is empty, the device is not constrained to operate in any specific areas.
148
+ currentArea: currentArea ?? 1, // If not null, the value of this attribute shall match the AreaID field of an entry on the SupportedAreas attribute’s list. A null value indicates that the device is currently unable to provide this information.
149
+ supportedMaps: supportedMaps ?? [], // If empty, that indicates that the device is currently unable to provide this information
150
+ /**
151
+ * Indicates the estimated Epoch time for completing operating at the area indicated by the CurrentArea attribute, in seconds. A value of 0 means that the operation has completed.
152
+ * When this attribute is null, that represents that there is no time currently defined until operation completion.
153
+ * This attribute SHALL be null if the CurrentArea attribute is null.
154
+ */
76
155
  estimatedEndTime: null,
77
156
  });
78
157
  return this;
79
158
  }
159
+ /**
160
+ * Creates a default RvcOperationalState Cluster Server.
161
+ *
162
+ * @param {string[] | null} [phaseList] - The list of phases for the RvcOperationalState cluster. Defaults to null.
163
+ * @param {number | null} [currentPhase] - The current phase (the index of the phaseList) of the RvcOperationalState cluster. Defaults to null.
164
+ * @param {RvcOperationalState.OperationalStateStruct[]} [operationalStateList] - The list of operational states for the RvcOperationalState cluster. Defaults to a predefined set of states.
165
+ * @param {RvcOperationalState.OperationalState} [operationalState] - The current operationalStateId of the RvcOperationalState cluster. Defaults to Docked.
166
+ * @param {RvcOperationalState.ErrorStateStruct} [operationalError] - The current operational error of the RvcOperationalState cluster. Defaults to NoError.
167
+ * @returns {this} The current MatterbridgeEndpoint instance for chaining.
168
+ */
80
169
  createDefaultRvcOperationalStateClusterServer(phaseList = null, currentPhase = null, operationalStateList, operationalState, operationalError) {
81
170
  this.behaviors.require(MatterbridgeRvcOperationalStateServer, {
82
171
  phaseList,
@@ -86,9 +175,9 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
86
175
  { operationalStateId: RvcOperationalState.OperationalState.Running },
87
176
  { operationalStateId: RvcOperationalState.OperationalState.Paused },
88
177
  { operationalStateId: RvcOperationalState.OperationalState.Error },
89
- { operationalStateId: RvcOperationalState.OperationalState.SeekingCharger },
90
- { operationalStateId: RvcOperationalState.OperationalState.Charging },
91
- { operationalStateId: RvcOperationalState.OperationalState.Docked },
178
+ { operationalStateId: RvcOperationalState.OperationalState.SeekingCharger }, // Y RVC Pause Compatibility N RVC Resume Compatibility
179
+ { operationalStateId: RvcOperationalState.OperationalState.Charging }, // N RVC Pause Compatibility Y RVC Resume Compatibility
180
+ { operationalStateId: RvcOperationalState.OperationalState.Docked }, // N RVC Pause Compatibility Y RVC Resume Compatibility
92
181
  ],
93
182
  operationalState: operationalState ?? RvcOperationalState.OperationalState.Docked,
94
183
  operationalError: operationalError ?? { errorStateId: RvcOperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' },
@@ -143,7 +232,7 @@ export class MatterbridgeRvcOperationalStateServer extends RvcOperationalStateSe
143
232
  device.log.info(`Pause (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
144
233
  device.commandHandler.executeHandler('pause', { request: {}, cluster: RvcOperationalStateServer.id, attributes: this.state, endpoint: this.endpoint });
145
234
  device.log.debug('MatterbridgeRvcOperationalStateServer: pause called setting operational state to Paused and currentMode to Idle');
146
- this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 1;
235
+ this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 1; // RvcRunMode.ModeTag.Idle
147
236
  this.state.operationalState = RvcOperationalState.OperationalState.Paused;
148
237
  this.state.operationalError = { errorStateId: RvcOperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' };
149
238
  return {
@@ -155,7 +244,7 @@ export class MatterbridgeRvcOperationalStateServer extends RvcOperationalStateSe
155
244
  device.log.info(`Resume (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
156
245
  device.commandHandler.executeHandler('resume', { request: {}, cluster: RvcOperationalStateServer.id, attributes: this.state, endpoint: this.endpoint });
157
246
  device.log.debug('MatterbridgeRvcOperationalStateServer: resume called setting operational state to Running and currentMode to Cleaning');
158
- this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 2;
247
+ this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 2; // RvcRunMode.ModeTag.Cleaning
159
248
  this.state.operationalState = RvcOperationalState.OperationalState.Running;
160
249
  this.state.operationalError = { errorStateId: RvcOperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' };
161
250
  return {
@@ -163,11 +252,12 @@ export class MatterbridgeRvcOperationalStateServer extends RvcOperationalStateSe
163
252
  };
164
253
  }
165
254
  goHome() {
255
+ // const device = this.agent.get(MatterbridgeServer).state.deviceCommand;
166
256
  const device = this.endpoint.stateOf(MatterbridgeServer);
167
257
  device.log.info(`GoHome (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
168
258
  device.commandHandler.executeHandler('goHome', { request: {}, cluster: RvcOperationalStateServer.id, attributes: this.state, endpoint: this.endpoint });
169
259
  device.log.debug('MatterbridgeRvcOperationalStateServer: goHome called setting operational state to Docked and currentMode to Idle');
170
- this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 1;
260
+ this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 1; // RvcRunMode.ModeTag.Idle
171
261
  this.state.operationalState = RvcOperationalState.OperationalState.Docked;
172
262
  this.state.operationalError = { errorStateId: RvcOperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' };
173
263
  return {
@@ -175,3 +265,4 @@ export class MatterbridgeRvcOperationalStateServer extends RvcOperationalStateSe
175
265
  };
176
266
  }
177
267
  }
268
+ //# sourceMappingURL=roboticVacuumCleaner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roboticVacuumCleaner.js","sourceRoot":"","sources":["../../src/devices/roboticVacuumCleaner.ts"],"names":[],"mappings":"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"}