@smarthome.exchange/integrations 0.2.0 → 2.0.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 (1308) hide show
  1. package/changelog.md +171 -0
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/cli/classes.cliruntime.d.ts +1 -1
  4. package/dist_ts/cli/commands.discover.js +1 -1
  5. package/dist_ts/cli/commands.setup.d.ts +1 -1
  6. package/dist_ts/core/classes.configrecord.d.ts +15 -0
  7. package/dist_ts/core/classes.configrecord.js +93 -0
  8. package/dist_ts/core/classes.configstore.d.ts +40 -10
  9. package/dist_ts/core/classes.configstore.js +355 -32
  10. package/dist_ts/core/classes.discoveryengine.js +12 -2
  11. package/dist_ts/core/classes.nativehomeadmission.d.ts +19 -0
  12. package/dist_ts/core/classes.nativehomeadmission.js +84 -0
  13. package/dist_ts/core/classes.nativeintegrationowner.d.ts +79 -0
  14. package/dist_ts/core/classes.nativeintegrationowner.js +269 -0
  15. package/dist_ts/core/classes.runtimemanager.js +1 -1
  16. package/dist_ts/core/classes.simplelocalintegration.js +1 -1
  17. package/dist_ts/core/errors.d.ts +2 -2
  18. package/dist_ts/core/errors.js +1 -1
  19. package/dist_ts/core/index.d.ts +2 -0
  20. package/dist_ts/core/index.js +3 -1
  21. package/dist_ts/core/types.d.ts +27 -4
  22. package/dist_ts/index.d.ts +4 -1
  23. package/dist_ts/index.js +7 -1
  24. package/dist_ts/integrations/adguard/adguard.classes.client.js +1 -1
  25. package/dist_ts/integrations/adguard/adguard.classes.integration.d.ts +1 -1
  26. package/dist_ts/integrations/adguard/adguard.classes.integration.js +1 -1
  27. package/dist_ts/integrations/adguard/adguard.discovery.d.ts +1 -1
  28. package/dist_ts/integrations/adguard/adguard.mapper.js +1 -1
  29. package/dist_ts/integrations/agent_dvr/agent_dvr.classes.client.js +1 -1
  30. package/dist_ts/integrations/agent_dvr/agent_dvr.classes.integration.d.ts +1 -1
  31. package/dist_ts/integrations/agent_dvr/agent_dvr.classes.integration.js +1 -1
  32. package/dist_ts/integrations/agent_dvr/agent_dvr.discovery.d.ts +3 -3
  33. package/dist_ts/integrations/agent_dvr/agent_dvr.mapper.js +1 -1
  34. package/dist_ts/integrations/agent_dvr/agent_dvr.types.d.ts +1 -1
  35. package/dist_ts/integrations/airgradient/airgradient.classes.client.js +1 -1
  36. package/dist_ts/integrations/airgradient/airgradient.classes.integration.d.ts +1 -1
  37. package/dist_ts/integrations/airgradient/airgradient.classes.integration.js +1 -1
  38. package/dist_ts/integrations/airgradient/airgradient.discovery.d.ts +2 -2
  39. package/dist_ts/integrations/airos/airos.classes.client.js +1 -1
  40. package/dist_ts/integrations/airos/airos.classes.integration.d.ts +1 -1
  41. package/dist_ts/integrations/airos/airos.classes.integration.js +1 -1
  42. package/dist_ts/integrations/airos/airos.discovery.d.ts +4 -4
  43. package/dist_ts/integrations/airos/airos.discovery.js +1 -1
  44. package/dist_ts/integrations/airos/airos.mapper.js +1 -1
  45. package/dist_ts/integrations/amcrest/amcrest.classes.client.js +1 -1
  46. package/dist_ts/integrations/amcrest/amcrest.classes.integration.d.ts +1 -1
  47. package/dist_ts/integrations/amcrest/amcrest.classes.integration.js +1 -1
  48. package/dist_ts/integrations/amcrest/amcrest.discovery.d.ts +3 -3
  49. package/dist_ts/integrations/amcrest/amcrest.types.d.ts +5 -5
  50. package/dist_ts/integrations/android_ip_webcam/android_ip_webcam.classes.client.js +1 -1
  51. package/dist_ts/integrations/android_ip_webcam/android_ip_webcam.classes.integration.d.ts +1 -1
  52. package/dist_ts/integrations/android_ip_webcam/android_ip_webcam.classes.integration.js +1 -1
  53. package/dist_ts/integrations/android_ip_webcam/android_ip_webcam.discovery.d.ts +1 -1
  54. package/dist_ts/integrations/androidtv/androidtv.classes.client.js +1 -1
  55. package/dist_ts/integrations/androidtv/androidtv.classes.integration.d.ts +1 -1
  56. package/dist_ts/integrations/androidtv/androidtv.classes.integration.js +1 -1
  57. package/dist_ts/integrations/androidtv/androidtv.discovery.d.ts +3 -3
  58. package/dist_ts/integrations/androidtv_remote/androidtv_remote.classes.client.js +1 -1
  59. package/dist_ts/integrations/androidtv_remote/androidtv_remote.classes.integration.d.ts +1 -1
  60. package/dist_ts/integrations/androidtv_remote/androidtv_remote.classes.integration.js +1 -1
  61. package/dist_ts/integrations/androidtv_remote/androidtv_remote.discovery.d.ts +2 -2
  62. package/dist_ts/integrations/apcupsd/apcupsd.classes.client.js +1 -1
  63. package/dist_ts/integrations/apcupsd/apcupsd.classes.integration.d.ts +1 -1
  64. package/dist_ts/integrations/apcupsd/apcupsd.classes.integration.js +1 -1
  65. package/dist_ts/integrations/apcupsd/apcupsd.discovery.d.ts +1 -1
  66. package/dist_ts/integrations/apcupsd/apcupsd.mapper.js +1 -1
  67. package/dist_ts/integrations/arcam_fmj/arcam_fmj.classes.client.js +1 -1
  68. package/dist_ts/integrations/arcam_fmj/arcam_fmj.classes.integration.d.ts +1 -1
  69. package/dist_ts/integrations/arcam_fmj/arcam_fmj.classes.integration.js +1 -1
  70. package/dist_ts/integrations/arcam_fmj/arcam_fmj.discovery.d.ts +2 -2
  71. package/dist_ts/integrations/asuswrt/asuswrt.classes.client.js +1 -1
  72. package/dist_ts/integrations/asuswrt/asuswrt.classes.integration.d.ts +1 -1
  73. package/dist_ts/integrations/asuswrt/asuswrt.classes.integration.js +1 -1
  74. package/dist_ts/integrations/asuswrt/asuswrt.discovery.d.ts +1 -1
  75. package/dist_ts/integrations/asuswrt/asuswrt.mapper.js +1 -1
  76. package/dist_ts/integrations/axis/axis.classes.client.js +1 -1
  77. package/dist_ts/integrations/axis/axis.classes.integration.d.ts +1 -1
  78. package/dist_ts/integrations/axis/axis.classes.integration.js +1 -1
  79. package/dist_ts/integrations/axis/axis.discovery.d.ts +3 -3
  80. package/dist_ts/integrations/blebox/blebox.classes.client.js +1 -1
  81. package/dist_ts/integrations/blebox/blebox.classes.integration.d.ts +1 -1
  82. package/dist_ts/integrations/blebox/blebox.classes.integration.js +1 -1
  83. package/dist_ts/integrations/blebox/blebox.discovery.d.ts +2 -2
  84. package/dist_ts/integrations/bluesound/bluesound.classes.client.d.ts +9 -4
  85. package/dist_ts/integrations/bluesound/bluesound.classes.client.js +1 -1
  86. package/dist_ts/integrations/bluesound/bluesound.classes.integration.d.ts +1 -1
  87. package/dist_ts/integrations/bluesound/bluesound.classes.integration.js +1 -1
  88. package/dist_ts/integrations/bluesound/bluesound.discovery.d.ts +2 -2
  89. package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.classes.client.js +1 -1
  90. package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.classes.integration.d.ts +1 -1
  91. package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.classes.integration.js +1 -1
  92. package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.discovery.d.ts +2 -2
  93. package/dist_ts/integrations/bluetooth_le_tracker/bluetooth_le_tracker.mapper.js +1 -1
  94. package/dist_ts/integrations/bond/bond.classes.client.js +1 -1
  95. package/dist_ts/integrations/bond/bond.classes.integration.d.ts +1 -1
  96. package/dist_ts/integrations/bond/bond.classes.integration.js +1 -1
  97. package/dist_ts/integrations/bond/bond.discovery.d.ts +3 -3
  98. package/dist_ts/integrations/bond/bond.mapper.js +1 -1
  99. package/dist_ts/integrations/bond/bond.types.d.ts +71 -71
  100. package/dist_ts/integrations/bosch_shc/bosch_shc.classes.client.js +1 -1
  101. package/dist_ts/integrations/bosch_shc/bosch_shc.classes.integration.d.ts +1 -1
  102. package/dist_ts/integrations/bosch_shc/bosch_shc.classes.integration.js +1 -1
  103. package/dist_ts/integrations/bosch_shc/bosch_shc.discovery.d.ts +2 -2
  104. package/dist_ts/integrations/bosch_shc/bosch_shc.mapper.js +1 -1
  105. package/dist_ts/integrations/braviatv/braviatv.classes.client.d.ts +23 -72
  106. package/dist_ts/integrations/braviatv/braviatv.classes.client.js +265 -625
  107. package/dist_ts/integrations/braviatv/braviatv.classes.configflow.d.ts +7 -7
  108. package/dist_ts/integrations/braviatv/braviatv.classes.configflow.js +51 -68
  109. package/dist_ts/integrations/braviatv/braviatv.classes.integration.d.ts +9 -12
  110. package/dist_ts/integrations/braviatv/braviatv.classes.integration.js +186 -135
  111. package/dist_ts/integrations/braviatv/braviatv.discovery.d.ts +3 -3
  112. package/dist_ts/integrations/braviatv/braviatv.discovery.js +12 -11
  113. package/dist_ts/integrations/braviatv/braviatv.mapper.d.ts +6 -14
  114. package/dist_ts/integrations/braviatv/braviatv.mapper.js +37 -131
  115. package/dist_ts/integrations/braviatv/braviatv.types.d.ts +55 -133
  116. package/dist_ts/integrations/braviatv/braviatv.validation.d.ts +7 -0
  117. package/dist_ts/integrations/braviatv/braviatv.validation.js +72 -0
  118. package/dist_ts/integrations/broadlink/broadlink.actions.d.ts +2 -0
  119. package/dist_ts/integrations/broadlink/broadlink.actions.js +36 -0
  120. package/dist_ts/integrations/broadlink/broadlink.classes.client.d.ts +21 -19
  121. package/dist_ts/integrations/broadlink/broadlink.classes.client.js +185 -124
  122. package/dist_ts/integrations/broadlink/broadlink.classes.configflow.d.ts +5 -4
  123. package/dist_ts/integrations/broadlink/broadlink.classes.configflow.js +64 -83
  124. package/dist_ts/integrations/broadlink/broadlink.classes.integration.d.ts +17 -20
  125. package/dist_ts/integrations/broadlink/broadlink.classes.integration.js +114 -59
  126. package/dist_ts/integrations/broadlink/broadlink.discovery.d.ts +3 -3
  127. package/dist_ts/integrations/broadlink/broadlink.mapper.d.ts +3 -2
  128. package/dist_ts/integrations/broadlink/broadlink.mapper.js +2 -1
  129. package/dist_ts/integrations/broadlink/broadlink.packet.d.ts +2 -2
  130. package/dist_ts/integrations/broadlink/broadlink.packet.js +1 -1
  131. package/dist_ts/integrations/broadlink/broadlink.selected.mapper.d.ts +10 -0
  132. package/dist_ts/integrations/broadlink/broadlink.selected.mapper.js +41 -0
  133. package/dist_ts/integrations/broadlink/broadlink.types.d.ts +43 -7
  134. package/dist_ts/integrations/broadlink/broadlink.validation.d.ts +7 -0
  135. package/dist_ts/integrations/broadlink/broadlink.validation.js +63 -0
  136. package/dist_ts/integrations/brother/brother.classes.client.js +1 -1
  137. package/dist_ts/integrations/brother/brother.classes.integration.d.ts +1 -1
  138. package/dist_ts/integrations/brother/brother.classes.integration.js +1 -1
  139. package/dist_ts/integrations/brother/brother.constants.d.ts +12 -12
  140. package/dist_ts/integrations/brother/brother.discovery.d.ts +2 -2
  141. package/dist_ts/integrations/brother/brother.mapper.js +1 -1
  142. package/dist_ts/integrations/cast/cast.classes.client.js +1 -1
  143. package/dist_ts/integrations/cast/cast.classes.integration.d.ts +1 -1
  144. package/dist_ts/integrations/cast/cast.classes.integration.js +1 -1
  145. package/dist_ts/integrations/cast/cast.discovery.d.ts +2 -2
  146. package/dist_ts/integrations/channels/channels.classes.client.js +1 -1
  147. package/dist_ts/integrations/channels/channels.classes.integration.d.ts +1 -1
  148. package/dist_ts/integrations/channels/channels.classes.integration.js +1 -1
  149. package/dist_ts/integrations/channels/channels.discovery.d.ts +2 -2
  150. package/dist_ts/integrations/cisco_ios/cisco_ios.classes.client.js +1 -1
  151. package/dist_ts/integrations/cisco_ios/cisco_ios.classes.integration.d.ts +1 -1
  152. package/dist_ts/integrations/cisco_ios/cisco_ios.classes.integration.js +1 -1
  153. package/dist_ts/integrations/cisco_ios/cisco_ios.discovery.d.ts +2 -2
  154. package/dist_ts/integrations/cisco_ios/cisco_ios.mapper.js +1 -1
  155. package/dist_ts/integrations/daikin/daikin.classes.client.d.ts +10 -52
  156. package/dist_ts/integrations/daikin/daikin.classes.client.js +55 -614
  157. package/dist_ts/integrations/daikin/daikin.classes.configflow.d.ts +8 -12
  158. package/dist_ts/integrations/daikin/daikin.classes.configflow.js +77 -138
  159. package/dist_ts/integrations/daikin/daikin.classes.integration.d.ts +8 -25
  160. package/dist_ts/integrations/daikin/daikin.classes.integration.js +175 -67
  161. package/dist_ts/integrations/daikin/daikin.discovery.d.ts +11 -24
  162. package/dist_ts/integrations/daikin/daikin.discovery.js +98 -305
  163. package/dist_ts/integrations/daikin/daikin.mapper.d.ts +6 -7
  164. package/dist_ts/integrations/daikin/daikin.mapper.js +95 -155
  165. package/dist_ts/integrations/daikin/daikin.types.d.ts +24 -44
  166. package/dist_ts/integrations/daikin/daikin.types.js +1 -1
  167. package/dist_ts/integrations/daikin/daikin.validation.d.ts +5 -0
  168. package/dist_ts/integrations/daikin/daikin.validation.js +53 -0
  169. package/dist_ts/integrations/ddwrt/ddwrt.classes.client.js +1 -1
  170. package/dist_ts/integrations/ddwrt/ddwrt.classes.integration.d.ts +1 -1
  171. package/dist_ts/integrations/ddwrt/ddwrt.classes.integration.js +1 -1
  172. package/dist_ts/integrations/ddwrt/ddwrt.discovery.d.ts +3 -3
  173. package/dist_ts/integrations/ddwrt/ddwrt.mapper.js +1 -1
  174. package/dist_ts/integrations/deconz/deconz.classes.client.d.ts +31 -22
  175. package/dist_ts/integrations/deconz/deconz.classes.client.js +302 -153
  176. package/dist_ts/integrations/deconz/deconz.classes.configflow.js +43 -26
  177. package/dist_ts/integrations/deconz/deconz.classes.integration.d.ts +3 -1
  178. package/dist_ts/integrations/deconz/deconz.classes.integration.js +133 -20
  179. package/dist_ts/integrations/deconz/deconz.discovery.d.ts +4 -4
  180. package/dist_ts/integrations/deconz/deconz.mapper.d.ts +2 -1
  181. package/dist_ts/integrations/deconz/deconz.mapper.js +23 -18
  182. package/dist_ts/integrations/deconz/deconz.types.d.ts +34 -3
  183. package/dist_ts/integrations/deconz/deconz.validation.d.ts +14 -0
  184. package/dist_ts/integrations/deconz/deconz.validation.js +269 -0
  185. package/dist_ts/integrations/deluge/deluge.classes.client.js +1 -1
  186. package/dist_ts/integrations/deluge/deluge.classes.integration.d.ts +1 -1
  187. package/dist_ts/integrations/deluge/deluge.classes.integration.js +1 -1
  188. package/dist_ts/integrations/deluge/deluge.discovery.d.ts +2 -2
  189. package/dist_ts/integrations/denon/denon.classes.client.js +1 -1
  190. package/dist_ts/integrations/denon/denon.classes.integration.d.ts +1 -1
  191. package/dist_ts/integrations/denon/denon.classes.integration.js +1 -1
  192. package/dist_ts/integrations/denon/denon.discovery.d.ts +1 -1
  193. package/dist_ts/integrations/denonavr/denonavr.classes.client.d.ts +31 -40
  194. package/dist_ts/integrations/denonavr/denonavr.classes.client.js +149 -404
  195. package/dist_ts/integrations/denonavr/denonavr.classes.configflow.d.ts +7 -2
  196. package/dist_ts/integrations/denonavr/denonavr.classes.configflow.js +44 -36
  197. package/dist_ts/integrations/denonavr/denonavr.classes.integration.d.ts +7 -12
  198. package/dist_ts/integrations/denonavr/denonavr.classes.integration.js +192 -113
  199. package/dist_ts/integrations/denonavr/denonavr.discovery.d.ts +10 -18
  200. package/dist_ts/integrations/denonavr/denonavr.discovery.js +71 -193
  201. package/dist_ts/integrations/denonavr/denonavr.mapper.d.ts +5 -13
  202. package/dist_ts/integrations/denonavr/denonavr.mapper.js +35 -159
  203. package/dist_ts/integrations/denonavr/denonavr.types.d.ts +55 -90
  204. package/dist_ts/integrations/denonavr/denonavr.validation.d.ts +10 -0
  205. package/dist_ts/integrations/denonavr/denonavr.validation.js +86 -0
  206. package/dist_ts/integrations/devolo_home_network/devolo_home_network.classes.client.js +1 -1
  207. package/dist_ts/integrations/devolo_home_network/devolo_home_network.classes.integration.d.ts +1 -1
  208. package/dist_ts/integrations/devolo_home_network/devolo_home_network.classes.integration.js +1 -1
  209. package/dist_ts/integrations/devolo_home_network/devolo_home_network.discovery.d.ts +3 -3
  210. package/dist_ts/integrations/devolo_home_network/devolo_home_network.mapper.js +1 -1
  211. package/dist_ts/integrations/directv/directv.classes.client.js +1 -1
  212. package/dist_ts/integrations/directv/directv.classes.integration.d.ts +1 -1
  213. package/dist_ts/integrations/directv/directv.classes.integration.js +1 -1
  214. package/dist_ts/integrations/directv/directv.discovery.d.ts +2 -2
  215. package/dist_ts/integrations/directv/directv.types.d.ts +1 -1
  216. package/dist_ts/integrations/dlink/dlink.classes.client.d.ts +6 -3
  217. package/dist_ts/integrations/dlink/dlink.classes.client.js +1 -1
  218. package/dist_ts/integrations/dlink/dlink.classes.integration.d.ts +1 -1
  219. package/dist_ts/integrations/dlink/dlink.classes.integration.js +1 -1
  220. package/dist_ts/integrations/dlink/dlink.discovery.d.ts +2 -2
  221. package/dist_ts/integrations/dlink/dlink.mapper.js +1 -1
  222. package/dist_ts/integrations/dlna_dmr/dlna_dmr.classes.client.js +1 -1
  223. package/dist_ts/integrations/dlna_dmr/dlna_dmr.classes.integration.d.ts +1 -1
  224. package/dist_ts/integrations/dlna_dmr/dlna_dmr.classes.integration.js +1 -1
  225. package/dist_ts/integrations/dlna_dmr/dlna_dmr.discovery.d.ts +2 -2
  226. package/dist_ts/integrations/dlna_dms/dlna_dms.classes.client.js +1 -1
  227. package/dist_ts/integrations/dlna_dms/dlna_dms.classes.integration.d.ts +1 -1
  228. package/dist_ts/integrations/dlna_dms/dlna_dms.classes.integration.js +1 -1
  229. package/dist_ts/integrations/dlna_dms/dlna_dms.discovery.d.ts +2 -2
  230. package/dist_ts/integrations/doorbird/doorbird.classes.client.js +1 -1
  231. package/dist_ts/integrations/doorbird/doorbird.classes.integration.d.ts +1 -1
  232. package/dist_ts/integrations/doorbird/doorbird.classes.integration.js +1 -1
  233. package/dist_ts/integrations/doorbird/doorbird.discovery.d.ts +2 -2
  234. package/dist_ts/integrations/dsmr/dsmr.classes.client.js +1 -1
  235. package/dist_ts/integrations/dsmr/dsmr.classes.integration.d.ts +1 -1
  236. package/dist_ts/integrations/dsmr/dsmr.classes.integration.js +1 -1
  237. package/dist_ts/integrations/dsmr/dsmr.discovery.d.ts +1 -1
  238. package/dist_ts/integrations/dsmr/dsmr.parser.js +1 -1
  239. package/dist_ts/integrations/dunehd/dunehd.classes.client.js +1 -1
  240. package/dist_ts/integrations/dunehd/dunehd.classes.integration.d.ts +1 -1
  241. package/dist_ts/integrations/dunehd/dunehd.classes.integration.js +1 -1
  242. package/dist_ts/integrations/dunehd/dunehd.discovery.d.ts +3 -3
  243. package/dist_ts/integrations/edimax/edimax.classes.client.js +1 -1
  244. package/dist_ts/integrations/edl21/edl21.classes.client.js +1 -1
  245. package/dist_ts/integrations/egardia/egardia.classes.client.js +1 -1
  246. package/dist_ts/integrations/elgato/elgato.classes.client.js +1 -1
  247. package/dist_ts/integrations/elgato/elgato.classes.integration.d.ts +1 -1
  248. package/dist_ts/integrations/elgato/elgato.classes.integration.js +1 -1
  249. package/dist_ts/integrations/elgato/elgato.discovery.d.ts +3 -3
  250. package/dist_ts/integrations/emby/emby.classes.client.js +1 -1
  251. package/dist_ts/integrations/emby/emby.classes.integration.d.ts +1 -1
  252. package/dist_ts/integrations/emby/emby.classes.integration.js +1 -1
  253. package/dist_ts/integrations/emby/emby.discovery.d.ts +3 -3
  254. package/dist_ts/integrations/emoncms_history/emoncms_history.classes.client.js +1 -1
  255. package/dist_ts/integrations/emonitor/emonitor.classes.client.js +1 -1
  256. package/dist_ts/integrations/emulated_hue/emulated_hue.classes.client.js +1 -1
  257. package/dist_ts/integrations/emulated_kasa/emulated_kasa.classes.client.js +1 -1
  258. package/dist_ts/integrations/emulated_roku/emulated_roku.classes.client.js +1 -1
  259. package/dist_ts/integrations/energenie_power_sockets/energenie_power_sockets.classes.client.js +1 -1
  260. package/dist_ts/integrations/enigma2/enigma2.classes.client.js +1 -1
  261. package/dist_ts/integrations/enocean/enocean.classes.client.js +1 -1
  262. package/dist_ts/integrations/esphome/esphome.classes.client.d.ts +35 -18
  263. package/dist_ts/integrations/esphome/esphome.classes.client.js +267 -77
  264. package/dist_ts/integrations/esphome/esphome.classes.configflow.js +2 -4
  265. package/dist_ts/integrations/esphome/esphome.classes.integration.d.ts +22 -11
  266. package/dist_ts/integrations/esphome/esphome.classes.integration.js +68 -61
  267. package/dist_ts/integrations/esphome/esphome.discovery.d.ts +2 -2
  268. package/dist_ts/integrations/esphome/esphome.discovery.js +2 -2
  269. package/dist_ts/integrations/esphome/esphome.mapper.d.ts +1 -2
  270. package/dist_ts/integrations/esphome/esphome.mapper.js +79 -36
  271. package/dist_ts/integrations/esphome/esphome.types.d.ts +2 -0
  272. package/dist_ts/integrations/fibaro/fibaro.classes.client.js +1 -1
  273. package/dist_ts/integrations/file/file.classes.client.js +1 -1
  274. package/dist_ts/integrations/filesize/filesize.classes.client.js +1 -1
  275. package/dist_ts/integrations/flexit_bacnet/flexit_bacnet.classes.client.js +1 -1
  276. package/dist_ts/integrations/flic/flic.classes.client.js +1 -1
  277. package/dist_ts/integrations/flux_led/flux_led.classes.client.js +1 -1
  278. package/dist_ts/integrations/folder/folder.classes.client.js +1 -1
  279. package/dist_ts/integrations/folder_watcher/folder_watcher.classes.client.js +1 -1
  280. package/dist_ts/integrations/forked_daapd/forked_daapd.classes.client.js +1 -1
  281. package/dist_ts/integrations/forked_daapd/forked_daapd.classes.integration.d.ts +1 -1
  282. package/dist_ts/integrations/forked_daapd/forked_daapd.classes.integration.js +1 -1
  283. package/dist_ts/integrations/forked_daapd/forked_daapd.discovery.d.ts +2 -2
  284. package/dist_ts/integrations/foscam/foscam.classes.client.js +1 -1
  285. package/dist_ts/integrations/foscam/foscam.classes.integration.d.ts +1 -1
  286. package/dist_ts/integrations/foscam/foscam.classes.integration.js +1 -1
  287. package/dist_ts/integrations/foscam/foscam.discovery.d.ts +3 -3
  288. package/dist_ts/integrations/foscam/foscam.types.d.ts +2 -2
  289. package/dist_ts/integrations/freebox/freebox.classes.client.js +1 -1
  290. package/dist_ts/integrations/freebox/freebox.classes.integration.d.ts +1 -1
  291. package/dist_ts/integrations/freebox/freebox.classes.integration.js +1 -1
  292. package/dist_ts/integrations/freebox/freebox.discovery.d.ts +2 -2
  293. package/dist_ts/integrations/freebox/freebox.mapper.js +1 -1
  294. package/dist_ts/integrations/freebox/freebox.types.d.ts +11 -11
  295. package/dist_ts/integrations/fritz/fritz.classes.client.js +1 -1
  296. package/dist_ts/integrations/fritz/fritz.classes.integration.d.ts +1 -1
  297. package/dist_ts/integrations/fritz/fritz.classes.integration.js +1 -1
  298. package/dist_ts/integrations/fritz/fritz.discovery.d.ts +3 -3
  299. package/dist_ts/integrations/fritz/fritz.mapper.js +1 -1
  300. package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.classes.client.js +1 -1
  301. package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.classes.integration.d.ts +1 -1
  302. package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.classes.integration.js +1 -1
  303. package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.discovery.d.ts +3 -3
  304. package/dist_ts/integrations/fritzbox_callmonitor/fritzbox_callmonitor.mapper.js +1 -1
  305. package/dist_ts/integrations/fronius/fronius.classes.client.js +1 -1
  306. package/dist_ts/integrations/fronius/fronius.classes.integration.d.ts +1 -1
  307. package/dist_ts/integrations/fronius/fronius.classes.integration.js +1 -1
  308. package/dist_ts/integrations/fronius/fronius.discovery.d.ts +2 -2
  309. package/dist_ts/integrations/fronius/fronius.mapper.js +1 -1
  310. package/dist_ts/integrations/frontier_silicon/frontier_silicon.classes.client.js +1 -1
  311. package/dist_ts/integrations/frontier_silicon/frontier_silicon.classes.integration.d.ts +1 -1
  312. package/dist_ts/integrations/frontier_silicon/frontier_silicon.classes.integration.js +1 -1
  313. package/dist_ts/integrations/frontier_silicon/frontier_silicon.discovery.d.ts +2 -2
  314. package/dist_ts/integrations/fully_kiosk/fully_kiosk.classes.client.js +1 -1
  315. package/dist_ts/integrations/fully_kiosk/fully_kiosk.classes.integration.d.ts +1 -1
  316. package/dist_ts/integrations/fully_kiosk/fully_kiosk.classes.integration.js +1 -1
  317. package/dist_ts/integrations/fully_kiosk/fully_kiosk.discovery.d.ts +2 -2
  318. package/dist_ts/integrations/fully_kiosk/fully_kiosk.mapper.js +1 -1
  319. package/dist_ts/integrations/generated/index.d.ts +1 -1
  320. package/dist_ts/integrations/generated/index.js +5 -7
  321. package/dist_ts/integrations/generic/generic.classes.client.js +1 -1
  322. package/dist_ts/integrations/geniushub/geniushub.classes.client.js +1 -1
  323. package/dist_ts/integrations/glances/glances.classes.client.js +1 -1
  324. package/dist_ts/integrations/glances/glances.classes.integration.d.ts +1 -1
  325. package/dist_ts/integrations/glances/glances.classes.integration.js +1 -1
  326. package/dist_ts/integrations/glances/glances.discovery.d.ts +2 -2
  327. package/dist_ts/integrations/go2rtc/go2rtc.classes.client.js +1 -1
  328. package/dist_ts/integrations/go2rtc/go2rtc.classes.integration.d.ts +1 -1
  329. package/dist_ts/integrations/go2rtc/go2rtc.classes.integration.js +1 -1
  330. package/dist_ts/integrations/go2rtc/go2rtc.discovery.d.ts +2 -2
  331. package/dist_ts/integrations/go2rtc/go2rtc.mapper.js +1 -1
  332. package/dist_ts/integrations/goalzero/goalzero.classes.client.js +1 -1
  333. package/dist_ts/integrations/gogogate2/gogogate2.classes.client.js +1 -1
  334. package/dist_ts/integrations/goodwe/goodwe.classes.client.js +1 -1
  335. package/dist_ts/integrations/goodwe/goodwe.classes.integration.d.ts +1 -1
  336. package/dist_ts/integrations/goodwe/goodwe.classes.integration.js +1 -1
  337. package/dist_ts/integrations/goodwe/goodwe.discovery.d.ts +1 -1
  338. package/dist_ts/integrations/goodwe/goodwe.types.d.ts +8 -8
  339. package/dist_ts/integrations/google_wifi/google_wifi.classes.client.js +1 -1
  340. package/dist_ts/integrations/govee_ble/govee_ble.classes.client.js +1 -1
  341. package/dist_ts/integrations/govee_light_local/govee_light_local.classes.client.js +1 -1
  342. package/dist_ts/integrations/gpsd/gpsd.classes.client.js +1 -1
  343. package/dist_ts/integrations/graphite/graphite.classes.client.js +1 -1
  344. package/dist_ts/integrations/gree/gree.classes.client.js +1 -1
  345. package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.classes.client.js +1 -1
  346. package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.classes.integration.d.ts +1 -1
  347. package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.classes.integration.js +1 -1
  348. package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.discovery.d.ts +1 -1
  349. package/dist_ts/integrations/harman_kardon_avr/harman_kardon_avr.types.d.ts +12 -12
  350. package/dist_ts/integrations/harmony/harmony.classes.client.js +1 -1
  351. package/dist_ts/integrations/harmony/harmony.classes.integration.d.ts +1 -1
  352. package/dist_ts/integrations/harmony/harmony.classes.integration.js +1 -1
  353. package/dist_ts/integrations/harmony/harmony.discovery.d.ts +2 -2
  354. package/dist_ts/integrations/hddtemp/hddtemp.classes.client.js +1 -1
  355. package/dist_ts/integrations/hddtemp/hddtemp.classes.integration.d.ts +1 -1
  356. package/dist_ts/integrations/hddtemp/hddtemp.classes.integration.js +1 -1
  357. package/dist_ts/integrations/hddtemp/hddtemp.discovery.d.ts +2 -2
  358. package/dist_ts/integrations/hdfury/hdfury.classes.client.js +1 -1
  359. package/dist_ts/integrations/hdmi_cec/hdmi_cec.classes.client.js +1 -1
  360. package/dist_ts/integrations/heatmiser/heatmiser.classes.client.js +1 -1
  361. package/dist_ts/integrations/hegel/hegel.classes.client.js +1 -1
  362. package/dist_ts/integrations/heos/heos.classes.client.js +1 -1
  363. package/dist_ts/integrations/heos/heos.classes.integration.d.ts +1 -1
  364. package/dist_ts/integrations/heos/heos.classes.integration.js +1 -1
  365. package/dist_ts/integrations/heos/heos.discovery.d.ts +3 -3
  366. package/dist_ts/integrations/hikvision/hikvision.classes.client.js +1 -1
  367. package/dist_ts/integrations/hikvision/hikvision.classes.integration.d.ts +1 -1
  368. package/dist_ts/integrations/hikvision/hikvision.classes.integration.js +1 -1
  369. package/dist_ts/integrations/hikvision/hikvision.discovery.d.ts +3 -3
  370. package/dist_ts/integrations/hikvisioncam/hikvisioncam.classes.client.js +1 -1
  371. package/dist_ts/integrations/hisense_aehw4a1/hisense_aehw4a1.classes.client.js +1 -1
  372. package/dist_ts/integrations/hitron_coda/hitron_coda.classes.client.js +1 -1
  373. package/dist_ts/integrations/hlk_sw16/hlk_sw16.classes.client.js +1 -1
  374. package/dist_ts/integrations/holiday/holiday.classes.client.js +1 -1
  375. package/dist_ts/integrations/homeassistant/homeassistant.classes.client.d.ts +7 -1
  376. package/dist_ts/integrations/homeassistant/homeassistant.classes.client.js +174 -50
  377. package/dist_ts/integrations/homeassistant/homeassistant.classes.integration.d.ts +1 -1
  378. package/dist_ts/integrations/homeassistant/homeassistant.classes.integration.js +1 -1
  379. package/dist_ts/integrations/homeassistant/homeassistant.classes.runtime.d.ts +2 -0
  380. package/dist_ts/integrations/homeassistant/homeassistant.classes.runtime.js +35 -3
  381. package/dist_ts/integrations/homeassistant/homeassistant.mapper.d.ts +4 -4
  382. package/dist_ts/integrations/homeassistant/homeassistant.mapper.js +25 -36
  383. package/dist_ts/integrations/homeassistant/homeassistant.types.d.ts +10 -0
  384. package/dist_ts/integrations/homeassistant/homeassistant.validation.d.ts +9 -0
  385. package/dist_ts/integrations/homeassistant/homeassistant.validation.js +137 -0
  386. package/dist_ts/integrations/homee/homee.classes.client.js +1 -1
  387. package/dist_ts/integrations/homekit_controller/homekit_controller.classes.client.js +1 -1
  388. package/dist_ts/integrations/homekit_controller/homekit_controller.classes.integration.d.ts +1 -1
  389. package/dist_ts/integrations/homekit_controller/homekit_controller.classes.integration.js +1 -1
  390. package/dist_ts/integrations/homekit_controller/homekit_controller.discovery.d.ts +2 -2
  391. package/dist_ts/integrations/homekit_controller/homekit_controller.mapper.js +1 -1
  392. package/dist_ts/integrations/homematic/homematic.classes.client.d.ts +2 -2
  393. package/dist_ts/integrations/homematic/homematic.classes.client.js +1 -1
  394. package/dist_ts/integrations/homematic/homematic.classes.integration.d.ts +1 -1
  395. package/dist_ts/integrations/homematic/homematic.classes.integration.js +1 -1
  396. package/dist_ts/integrations/homematic/homematic.constants.d.ts +2 -2
  397. package/dist_ts/integrations/homematic/homematic.discovery.d.ts +2 -2
  398. package/dist_ts/integrations/homewizard/homewizard.classes.client.js +1 -1
  399. package/dist_ts/integrations/homewizard/homewizard.classes.integration.d.ts +3 -3
  400. package/dist_ts/integrations/homewizard/homewizard.classes.integration.js +1 -1
  401. package/dist_ts/integrations/homewizard/homewizard.discovery.d.ts +3 -3
  402. package/dist_ts/integrations/homewizard/homewizard.mapper.js +1 -1
  403. package/dist_ts/integrations/homewizard/homewizard.types.d.ts +10 -10
  404. package/dist_ts/integrations/huawei_lte/huawei_lte.classes.client.js +1 -1
  405. package/dist_ts/integrations/huawei_lte/huawei_lte.classes.integration.d.ts +2 -2
  406. package/dist_ts/integrations/huawei_lte/huawei_lte.classes.integration.js +1 -1
  407. package/dist_ts/integrations/huawei_lte/huawei_lte.discovery.d.ts +3 -3
  408. package/dist_ts/integrations/huawei_lte/huawei_lte.mapper.js +1 -1
  409. package/dist_ts/integrations/huawei_lte/huawei_lte.types.d.ts +1 -1
  410. package/dist_ts/integrations/hue/hue.classes.client.d.ts +13 -5
  411. package/dist_ts/integrations/hue/hue.classes.client.js +278 -23
  412. package/dist_ts/integrations/hue/hue.classes.configflow.js +34 -14
  413. package/dist_ts/integrations/hue/hue.classes.integration.d.ts +2 -1
  414. package/dist_ts/integrations/hue/hue.classes.integration.js +85 -25
  415. package/dist_ts/integrations/hue/hue.discovery.d.ts +2 -2
  416. package/dist_ts/integrations/hue/hue.discovery.js +79 -26
  417. package/dist_ts/integrations/hue/hue.mapper.d.ts +0 -1
  418. package/dist_ts/integrations/hue/hue.mapper.js +26 -54
  419. package/dist_ts/integrations/hue/hue.types.d.ts +14 -7
  420. package/dist_ts/integrations/hue/hue.validation.d.ts +11 -0
  421. package/dist_ts/integrations/hue/hue.validation.js +160 -0
  422. package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.classes.client.js +1 -1
  423. package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.classes.integration.d.ts +2 -2
  424. package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.classes.integration.js +1 -1
  425. package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.discovery.d.ts +3 -3
  426. package/dist_ts/integrations/hunterdouglas_powerview/hunterdouglas_powerview.types.d.ts +1 -1
  427. package/dist_ts/integrations/hyperion/hyperion.classes.client.js +1 -1
  428. package/dist_ts/integrations/hyperion/hyperion.classes.integration.d.ts +1 -1
  429. package/dist_ts/integrations/hyperion/hyperion.classes.integration.js +1 -1
  430. package/dist_ts/integrations/hyperion/hyperion.discovery.d.ts +3 -3
  431. package/dist_ts/integrations/hyperion/hyperion.types.d.ts +1 -1
  432. package/dist_ts/integrations/imeon_inverter/imeon_inverter.classes.client.js +1 -1
  433. package/dist_ts/integrations/immich/immich.classes.client.js +1 -1
  434. package/dist_ts/integrations/incomfort/incomfort.classes.integration.js +1 -1
  435. package/dist_ts/integrations/indevolt/indevolt.classes.integration.js +1 -1
  436. package/dist_ts/integrations/index.d.ts +4 -1
  437. package/dist_ts/integrations/index.js +5 -2
  438. package/dist_ts/integrations/influxdb/influxdb.classes.client.js +1 -1
  439. package/dist_ts/integrations/intellifire/intellifire.classes.client.js +1 -1
  440. package/dist_ts/integrations/intellifire/intellifire.mapper.js +1 -1
  441. package/dist_ts/integrations/iometer/iometer.classes.client.js +1 -1
  442. package/dist_ts/integrations/iometer/iometer.mapper.js +1 -1
  443. package/dist_ts/integrations/iotawatt/iotawatt.classes.client.js +1 -1
  444. package/dist_ts/integrations/iperf3/iperf3.classes.client.js +1 -1
  445. package/dist_ts/integrations/ipp/ipp.classes.client.js +1 -1
  446. package/dist_ts/integrations/ipp/ipp.classes.integration.d.ts +1 -1
  447. package/dist_ts/integrations/ipp/ipp.classes.integration.js +1 -1
  448. package/dist_ts/integrations/ipp/ipp.discovery.d.ts +2 -2
  449. package/dist_ts/integrations/iron_os/iron_os.classes.client.js +1 -1
  450. package/dist_ts/integrations/iskra/iskra.classes.client.js +1 -1
  451. package/dist_ts/integrations/iskra/iskra.mapper.js +1 -1
  452. package/dist_ts/integrations/itunes/itunes.classes.client.js +1 -1
  453. package/dist_ts/integrations/jellyfin/jellyfin.classes.client.js +1 -1
  454. package/dist_ts/integrations/jellyfin/jellyfin.classes.integration.d.ts +1 -1
  455. package/dist_ts/integrations/jellyfin/jellyfin.classes.integration.js +1 -1
  456. package/dist_ts/integrations/jellyfin/jellyfin.discovery.d.ts +3 -3
  457. package/dist_ts/integrations/jvc_projector/jvc_projector.classes.client.js +1 -1
  458. package/dist_ts/integrations/kaleidescape/kaleidescape.classes.client.js +1 -1
  459. package/dist_ts/integrations/kankun/kankun.classes.client.js +1 -1
  460. package/dist_ts/integrations/keenetic_ndms2/keenetic_ndms2.classes.client.js +1 -1
  461. package/dist_ts/integrations/kef/kef.classes.client.js +1 -1
  462. package/dist_ts/integrations/kiosker/kiosker.classes.client.js +1 -1
  463. package/dist_ts/integrations/kira/kira.classes.client.js +1 -1
  464. package/dist_ts/integrations/kmtronic/kmtronic.classes.client.js +1 -1
  465. package/dist_ts/integrations/knx/knx.classes.client.js +1 -1
  466. package/dist_ts/integrations/knx/knx.classes.integration.d.ts +1 -1
  467. package/dist_ts/integrations/knx/knx.classes.integration.js +1 -1
  468. package/dist_ts/integrations/knx/knx.discovery.d.ts +3 -3
  469. package/dist_ts/integrations/knx/knx.mapper.d.ts +1 -1
  470. package/dist_ts/integrations/knx/knx.mapper.js +1 -1
  471. package/dist_ts/integrations/kodi/kodi.classes.client.d.ts +11 -45
  472. package/dist_ts/integrations/kodi/kodi.classes.client.js +84 -310
  473. package/dist_ts/integrations/kodi/kodi.classes.configflow.d.ts +9 -8
  474. package/dist_ts/integrations/kodi/kodi.classes.configflow.js +53 -48
  475. package/dist_ts/integrations/kodi/kodi.classes.integration.d.ts +12 -12
  476. package/dist_ts/integrations/kodi/kodi.classes.integration.js +114 -171
  477. package/dist_ts/integrations/kodi/kodi.discovery.d.ts +2 -2
  478. package/dist_ts/integrations/kodi/kodi.discovery.js +53 -29
  479. package/dist_ts/integrations/kodi/kodi.mapper.d.ts +7 -2
  480. package/dist_ts/integrations/kodi/kodi.mapper.js +48 -10
  481. package/dist_ts/integrations/kodi/kodi.types.d.ts +32 -28
  482. package/dist_ts/integrations/kodi/kodi.validation.d.ts +9 -0
  483. package/dist_ts/integrations/kodi/kodi.validation.js +62 -0
  484. package/dist_ts/integrations/konnected/konnected.classes.client.js +1 -1
  485. package/dist_ts/integrations/kostal_plenticore/kostal_plenticore.classes.client.js +1 -1
  486. package/dist_ts/integrations/kostal_plenticore/kostal_plenticore.mapper.js +1 -1
  487. package/dist_ts/integrations/kwb/kwb.classes.client.js +1 -1
  488. package/dist_ts/integrations/kwb/kwb.mapper.js +1 -1
  489. package/dist_ts/integrations/lametric/lametric.classes.client.js +1 -1
  490. package/dist_ts/integrations/landisgyr_heat_meter/landisgyr_heat_meter.mapper.js +1 -1
  491. package/dist_ts/integrations/lcn/lcn.classes.client.js +1 -1
  492. package/dist_ts/integrations/lektrico/lektrico.classes.client.js +1 -1
  493. package/dist_ts/integrations/lektrico/lektrico.types.d.ts +4 -4
  494. package/dist_ts/integrations/lg_netcast/lg_netcast.classes.client.js +1 -1
  495. package/dist_ts/integrations/lg_soundbar/lg_soundbar.classes.client.js +1 -1
  496. package/dist_ts/integrations/libre_hardware_monitor/libre_hardware_monitor.classes.client.js +1 -1
  497. package/dist_ts/integrations/lidarr/lidarr.classes.client.js +1 -1
  498. package/dist_ts/integrations/lifx/lifx.classes.client.d.ts +10 -4
  499. package/dist_ts/integrations/lifx/lifx.classes.client.js +94 -6
  500. package/dist_ts/integrations/lifx/lifx.classes.configflow.d.ts +3 -3
  501. package/dist_ts/integrations/lifx/lifx.classes.configflow.js +37 -6
  502. package/dist_ts/integrations/lifx/lifx.classes.integration.d.ts +19 -4
  503. package/dist_ts/integrations/lifx/lifx.classes.integration.js +152 -7
  504. package/dist_ts/integrations/lifx/lifx.discovery.d.ts +2 -1
  505. package/dist_ts/integrations/lifx/lifx.discovery.js +26 -4
  506. package/dist_ts/integrations/lifx/lifx.mapper.d.ts +7 -8
  507. package/dist_ts/integrations/lifx/lifx.mapper.js +42 -12
  508. package/dist_ts/integrations/lifx/lifx.types.d.ts +61 -9
  509. package/dist_ts/integrations/lifx/lifx.types.js +9 -116
  510. package/dist_ts/integrations/lifx/lifx.validation.d.ts +10 -0
  511. package/dist_ts/integrations/lifx/lifx.validation.js +83 -0
  512. package/dist_ts/integrations/linkplay/linkplay.classes.client.js +1 -1
  513. package/dist_ts/integrations/linkplay/linkplay.classes.integration.d.ts +1 -1
  514. package/dist_ts/integrations/linkplay/linkplay.classes.integration.js +1 -1
  515. package/dist_ts/integrations/linkplay/linkplay.discovery.d.ts +3 -3
  516. package/dist_ts/integrations/linksys_smart/linksys_smart.classes.client.js +1 -1
  517. package/dist_ts/integrations/livisi/livisi.classes.client.js +1 -1
  518. package/dist_ts/integrations/local_calendar/local_calendar.classes.client.js +1 -1
  519. package/dist_ts/integrations/local_file/local_file.classes.client.js +1 -1
  520. package/dist_ts/integrations/local_ip/local_ip.classes.client.js +1 -1
  521. package/dist_ts/integrations/local_todo/local_todo.classes.client.js +1 -1
  522. package/dist_ts/integrations/lookin/lookin.classes.client.js +1 -1
  523. package/dist_ts/integrations/loqed/loqed.classes.client.js +1 -1
  524. package/dist_ts/integrations/loqed/loqed.mapper.d.ts +1 -1
  525. package/dist_ts/integrations/loqed/loqed.mapper.js +1 -1
  526. package/dist_ts/integrations/luci/luci.classes.client.js +1 -1
  527. package/dist_ts/integrations/luci/luci.mapper.js +1 -1
  528. package/dist_ts/integrations/lunatone/lunatone.classes.client.js +1 -1
  529. package/dist_ts/integrations/lunatone/lunatone.mapper.js +1 -1
  530. package/dist_ts/integrations/madvr/madvr.classes.client.js +1 -1
  531. package/dist_ts/integrations/madvr/madvr.classes.integration.d.ts +1 -1
  532. package/dist_ts/integrations/madvr/madvr.classes.integration.js +1 -1
  533. package/dist_ts/integrations/madvr/madvr.discovery.d.ts +2 -2
  534. package/dist_ts/integrations/marytts/marytts.classes.client.js +1 -1
  535. package/dist_ts/integrations/marytts/marytts.classes.integration.js +1 -1
  536. package/dist_ts/integrations/matter/matter.classes.client.js +1 -1
  537. package/dist_ts/integrations/matter/matter.classes.integration.d.ts +1 -1
  538. package/dist_ts/integrations/matter/matter.classes.integration.js +1 -1
  539. package/dist_ts/integrations/matter/matter.discovery.d.ts +2 -2
  540. package/dist_ts/integrations/matter/matter.mapper.js +1 -1
  541. package/dist_ts/integrations/maxcube/maxcube.classes.client.js +1 -1
  542. package/dist_ts/integrations/mcp/mcp.classes.client.js +1 -1
  543. package/dist_ts/integrations/mcp_server/mcp_server.classes.client.js +1 -1
  544. package/dist_ts/integrations/mealie/mealie.classes.client.js +1 -1
  545. package/dist_ts/integrations/mealie/mealie.mapper.js +1 -1
  546. package/dist_ts/integrations/medcom_ble/medcom_ble.classes.client.js +1 -1
  547. package/dist_ts/integrations/medcom_ble/medcom_ble.mapper.js +1 -1
  548. package/dist_ts/integrations/mediaroom/mediaroom.classes.client.js +1 -1
  549. package/dist_ts/integrations/mediaroom/mediaroom.mapper.js +1 -1
  550. package/dist_ts/integrations/mfi/mfi.mapper.js +1 -1
  551. package/dist_ts/integrations/mikrotik/mikrotik.classes.client.js +1 -1
  552. package/dist_ts/integrations/mikrotik/mikrotik.classes.integration.d.ts +1 -1
  553. package/dist_ts/integrations/mikrotik/mikrotik.classes.integration.js +1 -1
  554. package/dist_ts/integrations/mikrotik/mikrotik.discovery.d.ts +1 -1
  555. package/dist_ts/integrations/mikrotik/mikrotik.mapper.js +1 -1
  556. package/dist_ts/integrations/mill/mill.classes.client.js +1 -1
  557. package/dist_ts/integrations/mill/mill.mapper.js +1 -1
  558. package/dist_ts/integrations/minecraft_server/minecraft_server.classes.client.js +1 -1
  559. package/dist_ts/integrations/mjpeg/mjpeg.classes.client.js +1 -1
  560. package/dist_ts/integrations/mobile_app/mobile_app.classes.client.js +1 -1
  561. package/dist_ts/integrations/mochad/mochad.classes.client.js +1 -1
  562. package/dist_ts/integrations/modbus/modbus.classes.client.d.ts +15 -61
  563. package/dist_ts/integrations/modbus/modbus.classes.client.js +117 -776
  564. package/dist_ts/integrations/modbus/modbus.classes.configflow.d.ts +9 -5
  565. package/dist_ts/integrations/modbus/modbus.classes.configflow.js +70 -38
  566. package/dist_ts/integrations/modbus/modbus.classes.integration.d.ts +7 -18
  567. package/dist_ts/integrations/modbus/modbus.classes.integration.js +133 -57
  568. package/dist_ts/integrations/modbus/modbus.discovery.d.ts +5 -8
  569. package/dist_ts/integrations/modbus/modbus.discovery.js +38 -93
  570. package/dist_ts/integrations/modbus/modbus.mapper.d.ts +8 -32
  571. package/dist_ts/integrations/modbus/modbus.mapper.js +71 -431
  572. package/dist_ts/integrations/modbus/modbus.types.d.ts +82 -332
  573. package/dist_ts/integrations/modbus/modbus.validation.d.ts +10 -0
  574. package/dist_ts/integrations/modbus/modbus.validation.js +128 -0
  575. package/dist_ts/integrations/modern_forms/modern_forms.classes.client.js +1 -1
  576. package/dist_ts/integrations/moehlenhoff_alpha2/moehlenhoff_alpha2.classes.client.js +1 -1
  577. package/dist_ts/integrations/monoprice/monoprice.classes.client.js +1 -1
  578. package/dist_ts/integrations/motioneye/motioneye.classes.client.js +1 -1
  579. package/dist_ts/integrations/motioneye/motioneye.classes.integration.d.ts +1 -1
  580. package/dist_ts/integrations/motioneye/motioneye.classes.integration.js +1 -1
  581. package/dist_ts/integrations/motioneye/motioneye.discovery.d.ts +2 -2
  582. package/dist_ts/integrations/motioneye/motioneye.types.d.ts +1 -1
  583. package/dist_ts/integrations/motionmount/motionmount.classes.client.js +1 -1
  584. package/dist_ts/integrations/mpd/mpd.classes.client.js +1 -1
  585. package/dist_ts/integrations/mpd/mpd.classes.integration.d.ts +1 -1
  586. package/dist_ts/integrations/mpd/mpd.classes.integration.js +1 -1
  587. package/dist_ts/integrations/mpd/mpd.discovery.d.ts +2 -2
  588. package/dist_ts/integrations/mqtt/mqtt.classes.client.d.ts +54 -9
  589. package/dist_ts/integrations/mqtt/mqtt.classes.client.js +443 -352
  590. package/dist_ts/integrations/mqtt/mqtt.classes.configflow.d.ts +0 -1
  591. package/dist_ts/integrations/mqtt/mqtt.classes.configflow.js +23 -18
  592. package/dist_ts/integrations/mqtt/mqtt.classes.integration.d.ts +1 -1
  593. package/dist_ts/integrations/mqtt/mqtt.classes.integration.js +140 -37
  594. package/dist_ts/integrations/mqtt/mqtt.discovery.d.ts +2 -2
  595. package/dist_ts/integrations/mqtt/mqtt.mapper.d.ts +7 -1
  596. package/dist_ts/integrations/mqtt/mqtt.mapper.js +161 -48
  597. package/dist_ts/integrations/mqtt/mqtt.types.d.ts +17 -0
  598. package/dist_ts/integrations/mqtt_eventstream/mqtt_eventstream.classes.client.js +1 -1
  599. package/dist_ts/integrations/mqtt_json/mqtt_json.classes.client.js +1 -1
  600. package/dist_ts/integrations/mqtt_room/mqtt_room.classes.client.js +1 -1
  601. package/dist_ts/integrations/music_assistant/music_assistant.classes.client.js +1 -1
  602. package/dist_ts/integrations/music_assistant/music_assistant.mapper.js +1 -1
  603. package/dist_ts/integrations/mutesync/mutesync.classes.client.js +1 -1
  604. package/dist_ts/integrations/mutesync/mutesync.mapper.js +1 -1
  605. package/dist_ts/integrations/mycroft/mycroft.classes.client.js +1 -1
  606. package/dist_ts/integrations/mysensors/mysensors.classes.client.js +1 -1
  607. package/dist_ts/integrations/mystrom/mystrom.classes.client.js +1 -1
  608. package/dist_ts/integrations/nad/nad.classes.client.js +1 -1
  609. package/dist_ts/integrations/nam/nam.classes.client.js +1 -1
  610. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.client.d.ts +12 -34
  611. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.client.js +143 -231
  612. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.configflow.d.ts +6 -1
  613. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.configflow.js +105 -18
  614. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.integration.d.ts +9 -9
  615. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.integration.js +141 -155
  616. package/dist_ts/integrations/nanoleaf/nanoleaf.credentials.d.ts +9 -0
  617. package/dist_ts/integrations/nanoleaf/nanoleaf.credentials.js +35 -0
  618. package/dist_ts/integrations/nanoleaf/nanoleaf.discovery.d.ts +3 -3
  619. package/dist_ts/integrations/nanoleaf/nanoleaf.mapper.d.ts +6 -18
  620. package/dist_ts/integrations/nanoleaf/nanoleaf.mapper.js +45 -220
  621. package/dist_ts/integrations/nanoleaf/nanoleaf.types.d.ts +33 -147
  622. package/dist_ts/integrations/nanoleaf/nanoleaf.validation.d.ts +6 -0
  623. package/dist_ts/integrations/nanoleaf/nanoleaf.validation.js +82 -0
  624. package/dist_ts/integrations/nasweb/nasweb.classes.client.js +1 -1
  625. package/dist_ts/integrations/netdata/netdata.classes.client.js +1 -1
  626. package/dist_ts/integrations/nibe_heatpump/nibe_heatpump.classes.client.js +1 -1
  627. package/dist_ts/integrations/niko_home_control/niko_home_control.classes.client.js +1 -1
  628. package/dist_ts/integrations/nobo_hub/nobo_hub.classes.client.js +1 -1
  629. package/dist_ts/integrations/nrgkick/nrgkick.classes.client.js +1 -1
  630. package/dist_ts/integrations/nuki/nuki.classes.client.js +1 -1
  631. package/dist_ts/integrations/nut/nut.classes.client.js +1 -1
  632. package/dist_ts/integrations/nut/nut.classes.integration.js +1 -1
  633. package/dist_ts/integrations/nx584/nx584.classes.client.js +1 -1
  634. package/dist_ts/integrations/nx584/nx584.classes.integration.js +1 -1
  635. package/dist_ts/integrations/nzbget/nzbget.classes.client.js +1 -1
  636. package/dist_ts/integrations/nzbget/nzbget.mapper.js +1 -1
  637. package/dist_ts/integrations/obihai/obihai.classes.client.js +1 -1
  638. package/dist_ts/integrations/octoprint/octoprint.classes.client.js +1 -1
  639. package/dist_ts/integrations/octoprint/octoprint.mapper.js +1 -1
  640. package/dist_ts/integrations/oem/oem.classes.client.js +1 -1
  641. package/dist_ts/integrations/ollama/ollama.classes.client.js +1 -1
  642. package/dist_ts/integrations/ombi/ombi.classes.client.js +1 -1
  643. package/dist_ts/integrations/onewire/onewire.classes.client.js +1 -1
  644. package/dist_ts/integrations/onkyo/onkyo.classes.client.d.ts +15 -20
  645. package/dist_ts/integrations/onkyo/onkyo.classes.client.js +161 -404
  646. package/dist_ts/integrations/onkyo/onkyo.classes.configflow.d.ts +9 -4
  647. package/dist_ts/integrations/onkyo/onkyo.classes.configflow.js +51 -6
  648. package/dist_ts/integrations/onkyo/onkyo.classes.integration.d.ts +22 -6
  649. package/dist_ts/integrations/onkyo/onkyo.classes.integration.js +144 -11
  650. package/dist_ts/integrations/onkyo/onkyo.discovery.d.ts +6 -1
  651. package/dist_ts/integrations/onkyo/onkyo.discovery.js +40 -4
  652. package/dist_ts/integrations/onkyo/onkyo.mapper.d.ts +7 -8
  653. package/dist_ts/integrations/onkyo/onkyo.mapper.js +45 -12
  654. package/dist_ts/integrations/onkyo/onkyo.types.d.ts +58 -8
  655. package/dist_ts/integrations/onkyo/onkyo.types.js +13 -102
  656. package/dist_ts/integrations/onkyo/onkyo.validation.d.ts +16 -0
  657. package/dist_ts/integrations/onkyo/onkyo.validation.js +77 -0
  658. package/dist_ts/integrations/onvif/onvif.classes.client.js +1 -1
  659. package/dist_ts/integrations/onvif/onvif.classes.integration.d.ts +1 -1
  660. package/dist_ts/integrations/onvif/onvif.classes.integration.js +1 -1
  661. package/dist_ts/integrations/onvif/onvif.discovery.d.ts +3 -3
  662. package/dist_ts/integrations/onvif/onvif.mapper.js +1 -1
  663. package/dist_ts/integrations/openevse/openevse.classes.client.js +1 -1
  664. package/dist_ts/integrations/openevse/openevse.mapper.js +1 -1
  665. package/dist_ts/integrations/opengarage/opengarage.classes.client.js +1 -1
  666. package/dist_ts/integrations/opengarage/opengarage.mapper.js +1 -1
  667. package/dist_ts/integrations/openhardwaremonitor/openhardwaremonitor.classes.client.js +1 -1
  668. package/dist_ts/integrations/openhome/openhome.classes.client.d.ts +2 -1
  669. package/dist_ts/integrations/openhome/openhome.classes.client.js +21 -19
  670. package/dist_ts/integrations/openrgb/openrgb.classes.client.js +1 -1
  671. package/dist_ts/integrations/openrgb/openrgb.classes.integration.d.ts +1 -1
  672. package/dist_ts/integrations/openrgb/openrgb.classes.integration.js +1 -1
  673. package/dist_ts/integrations/openrgb/openrgb.discovery.d.ts +2 -2
  674. package/dist_ts/integrations/openrgb/openrgb.mapper.js +1 -1
  675. package/dist_ts/integrations/opentherm_gw/opentherm_gw.classes.client.d.ts +1 -1
  676. package/dist_ts/integrations/opentherm_gw/opentherm_gw.classes.client.js +1 -1
  677. package/dist_ts/integrations/opentherm_gw/opentherm_gw.classes.integration.d.ts +1 -1
  678. package/dist_ts/integrations/opentherm_gw/opentherm_gw.classes.integration.js +1 -1
  679. package/dist_ts/integrations/opentherm_gw/opentherm_gw.discovery.d.ts +1 -1
  680. package/dist_ts/integrations/opnsense/opnsense.classes.client.js +1 -1
  681. package/dist_ts/integrations/opnsense/opnsense.classes.integration.d.ts +1 -1
  682. package/dist_ts/integrations/opnsense/opnsense.classes.integration.js +1 -1
  683. package/dist_ts/integrations/opnsense/opnsense.discovery.d.ts +1 -1
  684. package/dist_ts/integrations/opnsense/opnsense.mapper.js +1 -1
  685. package/dist_ts/integrations/orvibo/orvibo.classes.client.js +1 -1
  686. package/dist_ts/integrations/osramlightify/osramlightify.classes.client.js +1 -1
  687. package/dist_ts/integrations/otbr/otbr.classes.client.js +1 -1
  688. package/dist_ts/integrations/overkiz/overkiz.classes.client.js +1 -1
  689. package/dist_ts/integrations/overseerr/overseerr.classes.client.js +1 -1
  690. package/dist_ts/integrations/owntracks/owntracks.classes.client.js +1 -1
  691. package/dist_ts/integrations/p1_monitor/p1_monitor.classes.client.js +1 -1
  692. package/dist_ts/integrations/palazzetti/palazzetti.classes.client.js +1 -1
  693. package/dist_ts/integrations/panasonic_bluray/panasonic_bluray.classes.client.js +1 -1
  694. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.client.d.ts +25 -25
  695. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.client.js +116 -360
  696. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.d.ts +11 -3
  697. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.js +76 -6
  698. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.integration.d.ts +26 -4
  699. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.integration.js +142 -9
  700. package/dist_ts/integrations/panasonic_viera/panasonic_viera.discovery.d.ts +2 -1
  701. package/dist_ts/integrations/panasonic_viera/panasonic_viera.discovery.js +31 -4
  702. package/dist_ts/integrations/panasonic_viera/panasonic_viera.mapper.d.ts +9 -9
  703. package/dist_ts/integrations/panasonic_viera/panasonic_viera.mapper.js +31 -149
  704. package/dist_ts/integrations/panasonic_viera/panasonic_viera.types.d.ts +51 -11
  705. package/dist_ts/integrations/panasonic_viera/panasonic_viera.types.js +22 -87
  706. package/dist_ts/integrations/panasonic_viera/panasonic_viera.validation.d.ts +6 -0
  707. package/dist_ts/integrations/panasonic_viera/panasonic_viera.validation.js +56 -0
  708. package/dist_ts/integrations/paperless_ngx/paperless_ngx.classes.client.js +1 -1
  709. package/dist_ts/integrations/paperless_ngx/paperless_ngx.mapper.js +1 -1
  710. package/dist_ts/integrations/peblar/peblar.classes.client.js +1 -1
  711. package/dist_ts/integrations/peblar/peblar.mapper.js +1 -1
  712. package/dist_ts/integrations/pencom/pencom.classes.client.js +1 -1
  713. package/dist_ts/integrations/philips_js/philips_js.classes.client.js +1 -1
  714. package/dist_ts/integrations/pi_hole/pi_hole.classes.client.js +1 -1
  715. package/dist_ts/integrations/pi_hole/pi_hole.classes.integration.d.ts +1 -1
  716. package/dist_ts/integrations/pi_hole/pi_hole.classes.integration.js +1 -1
  717. package/dist_ts/integrations/pi_hole/pi_hole.discovery.d.ts +2 -2
  718. package/dist_ts/integrations/pi_hole/pi_hole.mapper.js +1 -1
  719. package/dist_ts/integrations/picotts/picotts.classes.client.js +1 -1
  720. package/dist_ts/integrations/pilight/pilight.classes.client.js +1 -1
  721. package/dist_ts/integrations/pilight/pilight.classes.integration.js +1 -1
  722. package/dist_ts/integrations/ping/ping.classes.client.js +1 -1
  723. package/dist_ts/integrations/pioneer/pioneer.classes.client.d.ts +31 -16
  724. package/dist_ts/integrations/pioneer/pioneer.classes.client.js +167 -409
  725. package/dist_ts/integrations/pioneer/pioneer.classes.configflow.d.ts +10 -3
  726. package/dist_ts/integrations/pioneer/pioneer.classes.configflow.js +66 -6
  727. package/dist_ts/integrations/pioneer/pioneer.classes.integration.d.ts +13 -5
  728. package/dist_ts/integrations/pioneer/pioneer.classes.integration.js +239 -11
  729. package/dist_ts/integrations/pioneer/pioneer.discovery.d.ts +14 -1
  730. package/dist_ts/integrations/pioneer/pioneer.discovery.js +51 -4
  731. package/dist_ts/integrations/pioneer/pioneer.mapper.d.ts +14 -8
  732. package/dist_ts/integrations/pioneer/pioneer.mapper.js +54 -12
  733. package/dist_ts/integrations/pioneer/pioneer.types.d.ts +79 -12
  734. package/dist_ts/integrations/pioneer/pioneer.types.js +12 -76
  735. package/dist_ts/integrations/pioneer/pioneer.validation.d.ts +10 -0
  736. package/dist_ts/integrations/pioneer/pioneer.validation.js +85 -0
  737. package/dist_ts/integrations/pjlink/pjlink.classes.client.js +1 -1
  738. package/dist_ts/integrations/plex/plex.classes.client.d.ts +1 -1
  739. package/dist_ts/integrations/plex/plex.classes.client.js +1 -1
  740. package/dist_ts/integrations/plex/plex.classes.integration.d.ts +1 -1
  741. package/dist_ts/integrations/plex/plex.classes.integration.js +1 -1
  742. package/dist_ts/integrations/plex/plex.discovery.d.ts +5 -5
  743. package/dist_ts/integrations/plugwise/plugwise.classes.client.js +1 -1
  744. package/dist_ts/integrations/prusalink/prusalink.classes.client.js +1 -1
  745. package/dist_ts/integrations/prusalink/prusalink.classes.integration.d.ts +1 -1
  746. package/dist_ts/integrations/prusalink/prusalink.classes.integration.js +1 -1
  747. package/dist_ts/integrations/prusalink/prusalink.discovery.d.ts +2 -2
  748. package/dist_ts/integrations/rainbird/rainbird.classes.client.js +1 -1
  749. package/dist_ts/integrations/rainbird/rainbird.classes.integration.d.ts +1 -1
  750. package/dist_ts/integrations/rainbird/rainbird.classes.integration.js +1 -1
  751. package/dist_ts/integrations/rainbird/rainbird.discovery.d.ts +1 -1
  752. package/dist_ts/integrations/rflink/rflink.classes.client.js +1 -1
  753. package/dist_ts/integrations/rflink/rflink.classes.integration.d.ts +1 -1
  754. package/dist_ts/integrations/rflink/rflink.classes.integration.js +1 -1
  755. package/dist_ts/integrations/rflink/rflink.discovery.d.ts +1 -1
  756. package/dist_ts/integrations/roku/roku.classes.client.d.ts +27 -14
  757. package/dist_ts/integrations/roku/roku.classes.client.js +213 -132
  758. package/dist_ts/integrations/roku/roku.classes.configflow.js +23 -14
  759. package/dist_ts/integrations/roku/roku.classes.integration.d.ts +4 -1
  760. package/dist_ts/integrations/roku/roku.classes.integration.js +74 -91
  761. package/dist_ts/integrations/roku/roku.discovery.d.ts +8 -8
  762. package/dist_ts/integrations/roku/roku.discovery.js +82 -65
  763. package/dist_ts/integrations/roku/roku.mapper.d.ts +0 -3
  764. package/dist_ts/integrations/roku/roku.mapper.js +18 -50
  765. package/dist_ts/integrations/roku/roku.types.d.ts +21 -12
  766. package/dist_ts/integrations/roku/roku.validation.d.ts +9 -0
  767. package/dist_ts/integrations/roku/roku.validation.js +74 -0
  768. package/dist_ts/integrations/samsungtv/samsungtv.classes.client.d.ts +9 -38
  769. package/dist_ts/integrations/samsungtv/samsungtv.classes.client.js +113 -417
  770. package/dist_ts/integrations/samsungtv/samsungtv.classes.configflow.js +31 -29
  771. package/dist_ts/integrations/samsungtv/samsungtv.classes.integration.d.ts +8 -7
  772. package/dist_ts/integrations/samsungtv/samsungtv.classes.integration.js +122 -117
  773. package/dist_ts/integrations/samsungtv/samsungtv.discovery.d.ts +11 -11
  774. package/dist_ts/integrations/samsungtv/samsungtv.discovery.js +120 -143
  775. package/dist_ts/integrations/samsungtv/samsungtv.mapper.d.ts +3 -11
  776. package/dist_ts/integrations/samsungtv/samsungtv.mapper.js +18 -117
  777. package/dist_ts/integrations/samsungtv/samsungtv.types.d.ts +18 -85
  778. package/dist_ts/integrations/samsungtv/samsungtv.validation.d.ts +7 -0
  779. package/dist_ts/integrations/samsungtv/samsungtv.validation.js +83 -0
  780. package/dist_ts/integrations/shelly/shelly.classes.client.d.ts +29 -14
  781. package/dist_ts/integrations/shelly/shelly.classes.client.js +310 -126
  782. package/dist_ts/integrations/shelly/shelly.classes.configflow.js +29 -11
  783. package/dist_ts/integrations/shelly/shelly.classes.integration.d.ts +4 -1
  784. package/dist_ts/integrations/shelly/shelly.classes.integration.js +120 -27
  785. package/dist_ts/integrations/shelly/shelly.classes.subscription.d.ts +47 -0
  786. package/dist_ts/integrations/shelly/shelly.classes.subscription.js +206 -0
  787. package/dist_ts/integrations/shelly/shelly.discovery.d.ts +2 -2
  788. package/dist_ts/integrations/shelly/shelly.discovery.js +6 -3
  789. package/dist_ts/integrations/shelly/shelly.rpc.d.ts +21 -0
  790. package/dist_ts/integrations/shelly/shelly.rpc.js +210 -0
  791. package/dist_ts/integrations/shelly/shelly.types.d.ts +26 -4
  792. package/dist_ts/integrations/snapcast/snapcast.classes.client.js +1 -1
  793. package/dist_ts/integrations/snapcast/snapcast.classes.integration.d.ts +1 -1
  794. package/dist_ts/integrations/snapcast/snapcast.classes.integration.js +1 -1
  795. package/dist_ts/integrations/snapcast/snapcast.discovery.d.ts +2 -2
  796. package/dist_ts/integrations/sonos/index.d.ts +3 -0
  797. package/dist_ts/integrations/sonos/index.js +4 -1
  798. package/dist_ts/integrations/sonos/sonos.classes.client.d.ts +30 -29
  799. package/dist_ts/integrations/sonos/sonos.classes.client.js +162 -208
  800. package/dist_ts/integrations/sonos/sonos.classes.configflow.js +27 -9
  801. package/dist_ts/integrations/sonos/sonos.classes.integration.d.ts +6 -5
  802. package/dist_ts/integrations/sonos/sonos.classes.integration.js +280 -61
  803. package/dist_ts/integrations/sonos/sonos.classes.ssdpprobe.d.ts +17 -0
  804. package/dist_ts/integrations/sonos/sonos.classes.ssdpprobe.js +88 -0
  805. package/dist_ts/integrations/sonos/sonos.config.d.ts +12 -0
  806. package/dist_ts/integrations/sonos/sonos.config.js +52 -0
  807. package/dist_ts/integrations/sonos/sonos.discovery.d.ts +1 -25
  808. package/dist_ts/integrations/sonos/sonos.discovery.js +6 -114
  809. package/dist_ts/integrations/sonos/sonos.mapper.d.ts +2 -1
  810. package/dist_ts/integrations/sonos/sonos.mapper.js +33 -13
  811. package/dist_ts/integrations/sonos/sonos.matchers.d.ts +25 -0
  812. package/dist_ts/integrations/sonos/sonos.matchers.js +82 -0
  813. package/dist_ts/integrations/sonos/sonos.topology.d.ts +2 -0
  814. package/dist_ts/integrations/sonos/sonos.topology.js +59 -0
  815. package/dist_ts/integrations/sonos/sonos.types.d.ts +18 -8
  816. package/dist_ts/integrations/sonos/sonos.xml.d.ts +3 -0
  817. package/dist_ts/integrations/sonos/sonos.xml.js +21 -0
  818. package/dist_ts/integrations/soundtouch/soundtouch.classes.client.d.ts +13 -36
  819. package/dist_ts/integrations/soundtouch/soundtouch.classes.client.js +179 -502
  820. package/dist_ts/integrations/soundtouch/soundtouch.classes.configflow.d.ts +6 -1
  821. package/dist_ts/integrations/soundtouch/soundtouch.classes.configflow.js +50 -40
  822. package/dist_ts/integrations/soundtouch/soundtouch.classes.integration.d.ts +15 -16
  823. package/dist_ts/integrations/soundtouch/soundtouch.classes.integration.js +108 -128
  824. package/dist_ts/integrations/soundtouch/soundtouch.discovery.d.ts +2 -20
  825. package/dist_ts/integrations/soundtouch/soundtouch.discovery.js +23 -113
  826. package/dist_ts/integrations/soundtouch/soundtouch.mapper.d.ts +3 -12
  827. package/dist_ts/integrations/soundtouch/soundtouch.mapper.js +35 -189
  828. package/dist_ts/integrations/soundtouch/soundtouch.types.d.ts +57 -142
  829. package/dist_ts/integrations/soundtouch/soundtouch.types.js +18 -3
  830. package/dist_ts/integrations/soundtouch/soundtouch.validation.d.ts +22 -0
  831. package/dist_ts/integrations/soundtouch/soundtouch.validation.js +65 -0
  832. package/dist_ts/integrations/squeezebox/squeezebox.classes.client.js +1 -1
  833. package/dist_ts/integrations/squeezebox/squeezebox.classes.integration.d.ts +1 -1
  834. package/dist_ts/integrations/squeezebox/squeezebox.classes.integration.js +1 -1
  835. package/dist_ts/integrations/squeezebox/squeezebox.discovery.d.ts +3 -3
  836. package/dist_ts/integrations/synology_dsm/synology_dsm.classes.client.js +1 -1
  837. package/dist_ts/integrations/synology_dsm/synology_dsm.classes.integration.d.ts +1 -1
  838. package/dist_ts/integrations/synology_dsm/synology_dsm.classes.integration.js +1 -1
  839. package/dist_ts/integrations/synology_dsm/synology_dsm.discovery.d.ts +4 -4
  840. package/dist_ts/integrations/synology_dsm/synology_dsm.mapper.js +1 -1
  841. package/dist_ts/integrations/synology_srm/synology_srm.classes.client.js +1 -1
  842. package/dist_ts/integrations/synology_srm/synology_srm.classes.integration.d.ts +1 -1
  843. package/dist_ts/integrations/synology_srm/synology_srm.classes.integration.js +1 -1
  844. package/dist_ts/integrations/synology_srm/synology_srm.discovery.d.ts +2 -2
  845. package/dist_ts/integrations/synology_srm/synology_srm.mapper.js +1 -1
  846. package/dist_ts/integrations/tasmota/index.d.ts +4 -0
  847. package/dist_ts/integrations/tasmota/index.js +5 -1
  848. package/dist_ts/integrations/tasmota/tasmota.classes.integration.d.ts +21 -3
  849. package/dist_ts/integrations/tasmota/tasmota.classes.integration.js +24 -25
  850. package/dist_ts/integrations/tasmota/tasmota.classes.runtime.d.ts +36 -0
  851. package/dist_ts/integrations/tasmota/tasmota.classes.runtime.js +292 -0
  852. package/dist_ts/integrations/tasmota/tasmota.config.d.ts +2 -0
  853. package/dist_ts/integrations/tasmota/tasmota.config.js +78 -0
  854. package/dist_ts/integrations/tasmota/tasmota.discovery.d.ts +7 -0
  855. package/dist_ts/integrations/tasmota/tasmota.discovery.js +85 -0
  856. package/dist_ts/integrations/tasmota/tasmota.mapper.d.ts +12 -0
  857. package/dist_ts/integrations/tasmota/tasmota.mapper.js +91 -0
  858. package/dist_ts/integrations/tasmota/tasmota.types.d.ts +51 -1
  859. package/dist_ts/integrations/tplink/index.d.ts +3 -0
  860. package/dist_ts/integrations/tplink/index.js +4 -1
  861. package/dist_ts/integrations/tplink/tplink.classes.client.d.ts +8 -14
  862. package/dist_ts/integrations/tplink/tplink.classes.client.js +64 -64
  863. package/dist_ts/integrations/tplink/tplink.classes.configflow.d.ts +3 -8
  864. package/dist_ts/integrations/tplink/tplink.classes.configflow.js +53 -89
  865. package/dist_ts/integrations/tplink/tplink.classes.integration.d.ts +8 -13
  866. package/dist_ts/integrations/tplink/tplink.classes.integration.js +136 -37
  867. package/dist_ts/integrations/tplink/tplink.discovery.d.ts +11 -14
  868. package/dist_ts/integrations/tplink/tplink.discovery.js +125 -210
  869. package/dist_ts/integrations/tplink/tplink.mapper.js +1 -1
  870. package/dist_ts/integrations/tplink/tplink.native.mapper.d.ts +11 -0
  871. package/dist_ts/integrations/tplink/tplink.native.mapper.js +61 -0
  872. package/dist_ts/integrations/tplink/tplink.native.types.d.ts +32 -0
  873. package/dist_ts/integrations/tplink/tplink.native.types.js +2 -0
  874. package/dist_ts/integrations/tplink/tplink.validation.d.ts +4 -0
  875. package/dist_ts/integrations/tplink/tplink.validation.js +48 -0
  876. package/dist_ts/integrations/tradfri/tradfri.classes.client.js +1 -1
  877. package/dist_ts/integrations/tradfri/tradfri.classes.integration.d.ts +1 -1
  878. package/dist_ts/integrations/tradfri/tradfri.classes.integration.js +1 -1
  879. package/dist_ts/integrations/tradfri/tradfri.discovery.d.ts +2 -3
  880. package/dist_ts/integrations/tradfri/tradfri.discovery.js +52 -26
  881. package/dist_ts/integrations/tradfri/tradfri.mapper.js +1 -1
  882. package/dist_ts/integrations/tuya/tuya.classes.integration.d.ts +21 -3
  883. package/dist_ts/integrations/tuya/tuya.classes.integration.js +139 -28
  884. package/dist_ts/integrations/tuya/tuya.classes.runtime.d.ts +15 -0
  885. package/dist_ts/integrations/tuya/tuya.classes.runtime.js +189 -0
  886. package/dist_ts/integrations/tuya/tuya.mapper.d.ts +13 -0
  887. package/dist_ts/integrations/tuya/tuya.mapper.js +30 -0
  888. package/dist_ts/integrations/tuya/tuya.types.d.ts +40 -1
  889. package/dist_ts/integrations/tuya/tuya.validation.d.ts +10 -0
  890. package/dist_ts/integrations/tuya/tuya.validation.js +122 -0
  891. package/dist_ts/integrations/unifi/unifi.classes.client.js +1 -1
  892. package/dist_ts/integrations/unifi/unifi.classes.integration.d.ts +1 -1
  893. package/dist_ts/integrations/unifi/unifi.classes.integration.js +1 -1
  894. package/dist_ts/integrations/unifi/unifi.discovery.d.ts +4 -4
  895. package/dist_ts/integrations/unifi/unifi.mapper.js +6 -6
  896. package/dist_ts/integrations/velbus/velbus.classes.client.js +1 -1
  897. package/dist_ts/integrations/velbus/velbus.classes.integration.d.ts +1 -1
  898. package/dist_ts/integrations/velbus/velbus.classes.integration.js +1 -1
  899. package/dist_ts/integrations/velbus/velbus.discovery.d.ts +2 -2
  900. package/dist_ts/integrations/volumio/volumio.classes.client.js +1 -1
  901. package/dist_ts/integrations/volumio/volumio.classes.integration.d.ts +1 -1
  902. package/dist_ts/integrations/volumio/volumio.classes.integration.js +1 -1
  903. package/dist_ts/integrations/volumio/volumio.discovery.d.ts +2 -2
  904. package/dist_ts/integrations/wake_on_lan/wake_on_lan.classes.client.js +1 -1
  905. package/dist_ts/integrations/wake_on_lan/wake_on_lan.classes.integration.d.ts +1 -1
  906. package/dist_ts/integrations/wake_on_lan/wake_on_lan.classes.integration.js +1 -1
  907. package/dist_ts/integrations/wake_on_lan/wake_on_lan.discovery.d.ts +2 -2
  908. package/dist_ts/integrations/wake_on_lan/wake_on_lan.mapper.js +1 -1
  909. package/dist_ts/integrations/wake_on_lan/wake_on_lan.packet.js +1 -1
  910. package/dist_ts/integrations/webostv/webostv.classes.client.d.ts +10 -4
  911. package/dist_ts/integrations/webostv/webostv.classes.client.js +370 -6
  912. package/dist_ts/integrations/webostv/webostv.classes.configflow.d.ts +3 -3
  913. package/dist_ts/integrations/webostv/webostv.classes.configflow.js +23 -6
  914. package/dist_ts/integrations/webostv/webostv.classes.integration.d.ts +20 -5
  915. package/dist_ts/integrations/webostv/webostv.classes.integration.js +138 -7
  916. package/dist_ts/integrations/webostv/webostv.discovery.d.ts +2 -1
  917. package/dist_ts/integrations/webostv/webostv.discovery.js +26 -4
  918. package/dist_ts/integrations/webostv/webostv.mapper.d.ts +6 -8
  919. package/dist_ts/integrations/webostv/webostv.mapper.js +24 -13
  920. package/dist_ts/integrations/webostv/webostv.types.d.ts +61 -5
  921. package/dist_ts/integrations/webostv/webostv.types.js +5 -96
  922. package/dist_ts/integrations/webostv/webostv.validation.d.ts +6 -0
  923. package/dist_ts/integrations/webostv/webostv.validation.js +54 -0
  924. package/dist_ts/integrations/wiz/index.d.ts +1 -0
  925. package/dist_ts/integrations/wiz/index.js +2 -1
  926. package/dist_ts/integrations/wiz/wiz.classes.client.d.ts +14 -28
  927. package/dist_ts/integrations/wiz/wiz.classes.client.js +93 -229
  928. package/dist_ts/integrations/wiz/wiz.classes.configflow.d.ts +6 -4
  929. package/dist_ts/integrations/wiz/wiz.classes.configflow.js +38 -67
  930. package/dist_ts/integrations/wiz/wiz.classes.integration.d.ts +11 -22
  931. package/dist_ts/integrations/wiz/wiz.classes.integration.js +204 -44
  932. package/dist_ts/integrations/wiz/wiz.discovery.d.ts +10 -31
  933. package/dist_ts/integrations/wiz/wiz.discovery.js +48 -249
  934. package/dist_ts/integrations/wiz/wiz.mapper.d.ts +7 -51
  935. package/dist_ts/integrations/wiz/wiz.mapper.js +82 -668
  936. package/dist_ts/integrations/wiz/wiz.types.d.ts +34 -208
  937. package/dist_ts/integrations/wiz/wiz.validation.d.ts +8 -0
  938. package/dist_ts/integrations/wiz/wiz.validation.js +72 -0
  939. package/dist_ts/integrations/wled/index.d.ts +1 -0
  940. package/dist_ts/integrations/wled/index.js +2 -1
  941. package/dist_ts/integrations/wled/wled.classes.client.d.ts +27 -4
  942. package/dist_ts/integrations/wled/wled.classes.client.js +231 -6
  943. package/dist_ts/integrations/wled/wled.classes.configflow.d.ts +3 -3
  944. package/dist_ts/integrations/wled/wled.classes.configflow.js +33 -6
  945. package/dist_ts/integrations/wled/wled.classes.integration.d.ts +24 -4
  946. package/dist_ts/integrations/wled/wled.classes.integration.js +171 -7
  947. package/dist_ts/integrations/wled/wled.classes.subscription.d.ts +37 -0
  948. package/dist_ts/integrations/wled/wled.classes.subscription.js +116 -0
  949. package/dist_ts/integrations/wled/wled.commands.d.ts +4 -0
  950. package/dist_ts/integrations/wled/wled.commands.js +65 -0
  951. package/dist_ts/integrations/wled/wled.discovery.d.ts +17 -1
  952. package/dist_ts/integrations/wled/wled.discovery.js +68 -4
  953. package/dist_ts/integrations/wled/wled.errors.d.ts +5 -0
  954. package/dist_ts/integrations/wled/wled.errors.js +9 -0
  955. package/dist_ts/integrations/wled/wled.mapper.d.ts +8 -8
  956. package/dist_ts/integrations/wled/wled.mapper.js +40 -16
  957. package/dist_ts/integrations/wled/wled.types.d.ts +75 -6
  958. package/dist_ts/integrations/wled/wled.types.js +12 -82
  959. package/dist_ts/integrations/wled/wled.validation.d.ts +7 -0
  960. package/dist_ts/integrations/wled/wled.validation.js +85 -0
  961. package/dist_ts/integrations/wolf_smartset/wolf_smartset.classes.client.js +1 -1
  962. package/dist_ts/integrations/wolf_smartset/wolf_smartset.classes.integration.d.ts +1 -1
  963. package/dist_ts/integrations/wolf_smartset/wolf_smartset.discovery.d.ts +1 -1
  964. package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.classes.client.js +1 -1
  965. package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.classes.integration.d.ts +1 -1
  966. package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.classes.integration.js +1 -1
  967. package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.discovery.d.ts +3 -3
  968. package/dist_ts/integrations/xiaomi_miio/xiaomi_miio.mapper.js +1 -1
  969. package/dist_ts/integrations/yamaha/index.d.ts +1 -0
  970. package/dist_ts/integrations/yamaha/index.js +2 -1
  971. package/dist_ts/integrations/yamaha/yamaha.classes.client.d.ts +30 -4
  972. package/dist_ts/integrations/yamaha/yamaha.classes.client.js +162 -6
  973. package/dist_ts/integrations/yamaha/yamaha.classes.configflow.d.ts +10 -3
  974. package/dist_ts/integrations/yamaha/yamaha.classes.configflow.js +106 -6
  975. package/dist_ts/integrations/yamaha/yamaha.classes.integration.d.ts +22 -4
  976. package/dist_ts/integrations/yamaha/yamaha.classes.integration.js +243 -8
  977. package/dist_ts/integrations/yamaha/yamaha.discovery.d.ts +13 -1
  978. package/dist_ts/integrations/yamaha/yamaha.discovery.js +57 -4
  979. package/dist_ts/integrations/yamaha/yamaha.mapper.d.ts +16 -8
  980. package/dist_ts/integrations/yamaha/yamaha.mapper.js +58 -12
  981. package/dist_ts/integrations/yamaha/yamaha.types.d.ts +73 -6
  982. package/dist_ts/integrations/yamaha/yamaha.types.js +8 -94
  983. package/dist_ts/integrations/yamaha/yamaha.validation.d.ts +12 -0
  984. package/dist_ts/integrations/yamaha/yamaha.validation.js +89 -0
  985. package/dist_ts/integrations/yamaha_musiccast/yamaha_musiccast.classes.client.js +1 -1
  986. package/dist_ts/integrations/yamaha_musiccast/yamaha_musiccast.classes.integration.d.ts +1 -1
  987. package/dist_ts/integrations/yamaha_musiccast/yamaha_musiccast.classes.integration.js +1 -1
  988. package/dist_ts/integrations/yamaha_musiccast/yamaha_musiccast.discovery.d.ts +3 -3
  989. package/dist_ts/integrations/yeelight/yeelight.classes.client.d.ts +34 -26
  990. package/dist_ts/integrations/yeelight/yeelight.classes.client.js +225 -275
  991. package/dist_ts/integrations/yeelight/yeelight.classes.configflow.d.ts +0 -2
  992. package/dist_ts/integrations/yeelight/yeelight.classes.configflow.js +29 -30
  993. package/dist_ts/integrations/yeelight/yeelight.classes.integration.d.ts +11 -5
  994. package/dist_ts/integrations/yeelight/yeelight.classes.integration.js +140 -80
  995. package/dist_ts/integrations/yeelight/yeelight.discovery.d.ts +11 -13
  996. package/dist_ts/integrations/yeelight/yeelight.discovery.js +90 -128
  997. package/dist_ts/integrations/yeelight/yeelight.mapper.d.ts +2 -10
  998. package/dist_ts/integrations/yeelight/yeelight.mapper.js +57 -178
  999. package/dist_ts/integrations/yeelight/yeelight.types.d.ts +37 -139
  1000. package/dist_ts/integrations/yeelight/yeelight.validation.d.ts +10 -0
  1001. package/dist_ts/integrations/yeelight/yeelight.validation.js +111 -0
  1002. package/dist_ts/integrations/zha/zha.classes.client.js +1 -1
  1003. package/dist_ts/integrations/zha/zha.classes.integration.d.ts +1 -1
  1004. package/dist_ts/integrations/zha/zha.classes.integration.js +1 -1
  1005. package/dist_ts/integrations/zha/zha.discovery.d.ts +3 -12
  1006. package/dist_ts/integrations/zha/zha.discovery.js +102 -222
  1007. package/dist_ts/integrations/zha/zha.discoveryvalidation.d.ts +10 -0
  1008. package/dist_ts/integrations/zha/zha.discoveryvalidation.js +71 -0
  1009. package/dist_ts/integrations/zha/zha.mapper.js +1 -1
  1010. package/dist_ts/integrations/zigbee2mqtt/index.d.ts +5 -0
  1011. package/dist_ts/integrations/zigbee2mqtt/index.js +6 -0
  1012. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.configflow.d.ts +5 -0
  1013. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.configflow.js +27 -0
  1014. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.integration.d.ts +19 -0
  1015. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.integration.js +19 -0
  1016. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.runtime.d.ts +55 -0
  1017. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.runtime.js +464 -0
  1018. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.mapper.d.ts +15 -0
  1019. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.mapper.js +186 -0
  1020. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.types.d.ts +57 -0
  1021. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.types.js +2 -0
  1022. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.validation.d.ts +5 -0
  1023. package/dist_ts/integrations/zigbee2mqtt/zigbee2mqtt.validation.js +66 -0
  1024. package/dist_ts/integrations/zwave_js/zwave_js.classes.client.d.ts +19 -21
  1025. package/dist_ts/integrations/zwave_js/zwave_js.classes.client.js +303 -134
  1026. package/dist_ts/integrations/zwave_js/zwave_js.classes.configflow.d.ts +0 -3
  1027. package/dist_ts/integrations/zwave_js/zwave_js.classes.configflow.js +31 -26
  1028. package/dist_ts/integrations/zwave_js/zwave_js.classes.integration.d.ts +2 -1
  1029. package/dist_ts/integrations/zwave_js/zwave_js.classes.integration.js +71 -76
  1030. package/dist_ts/integrations/zwave_js/zwave_js.discovery.d.ts +3 -3
  1031. package/dist_ts/integrations/zwave_js/zwave_js.discovery.js +120 -16
  1032. package/dist_ts/integrations/zwave_js/zwave_js.mapper.d.ts +13 -14
  1033. package/dist_ts/integrations/zwave_js/zwave_js.mapper.js +140 -257
  1034. package/dist_ts/integrations/zwave_js/zwave_js.types.d.ts +30 -19
  1035. package/dist_ts/integrations/zwave_js/zwave_js.validation.d.ts +15 -0
  1036. package/dist_ts/integrations/zwave_js/zwave_js.validation.js +191 -0
  1037. package/dist_ts/plugins.d.ts +10 -2
  1038. package/dist_ts/plugins.js +11 -3
  1039. package/dist_ts_migration/001.import-json-config.d.ts +10 -0
  1040. package/dist_ts_migration/001.import-json-config.js +147 -0
  1041. package/dist_ts_migration/index.d.ts +1 -0
  1042. package/dist_ts_migration/index.js +2 -0
  1043. package/package.json +20 -11
  1044. package/readme.md +560 -9
  1045. package/ts/00_commitinfo_data.ts +1 -1
  1046. package/ts/core/classes.configrecord.ts +23 -0
  1047. package/ts/core/classes.configstore.ts +381 -25
  1048. package/ts/core/classes.discoveryengine.ts +11 -1
  1049. package/ts/core/classes.nativehomeadmission.ts +96 -0
  1050. package/ts/core/classes.nativeintegrationowner.ts +297 -0
  1051. package/ts/core/index.ts +2 -0
  1052. package/ts/core/types.ts +31 -4
  1053. package/ts/index.ts +6 -0
  1054. package/ts/integrations/braviatv/braviatv.classes.client.ts +245 -709
  1055. package/ts/integrations/braviatv/braviatv.classes.configflow.ts +47 -76
  1056. package/ts/integrations/braviatv/braviatv.classes.integration.ts +167 -147
  1057. package/ts/integrations/braviatv/braviatv.discovery.ts +11 -10
  1058. package/ts/integrations/braviatv/braviatv.mapper.ts +39 -142
  1059. package/ts/integrations/braviatv/braviatv.types.ts +53 -173
  1060. package/ts/integrations/braviatv/braviatv.validation.ts +68 -0
  1061. package/ts/integrations/broadlink/broadlink.actions.ts +31 -0
  1062. package/ts/integrations/broadlink/broadlink.classes.client.ts +170 -144
  1063. package/ts/integrations/broadlink/broadlink.classes.configflow.ts +59 -89
  1064. package/ts/integrations/broadlink/broadlink.classes.integration.ts +110 -64
  1065. package/ts/integrations/broadlink/broadlink.mapper.ts +5 -4
  1066. package/ts/integrations/broadlink/broadlink.selected.mapper.ts +46 -0
  1067. package/ts/integrations/broadlink/broadlink.types.ts +48 -8
  1068. package/ts/integrations/broadlink/broadlink.validation.ts +66 -0
  1069. package/ts/integrations/daikin/daikin.classes.client.ts +52 -661
  1070. package/ts/integrations/daikin/daikin.classes.configflow.ts +72 -152
  1071. package/ts/integrations/daikin/daikin.classes.integration.ts +166 -71
  1072. package/ts/integrations/daikin/daikin.discovery.ts +94 -346
  1073. package/ts/integrations/daikin/daikin.mapper.ts +83 -166
  1074. package/ts/integrations/daikin/daikin.types.ts +27 -48
  1075. package/ts/integrations/daikin/daikin.validation.ts +51 -0
  1076. package/ts/integrations/daikin/readme.md +83 -0
  1077. package/ts/integrations/deconz/deconz.classes.client.ts +243 -190
  1078. package/ts/integrations/deconz/deconz.classes.configflow.ts +34 -25
  1079. package/ts/integrations/deconz/deconz.classes.integration.ts +105 -22
  1080. package/ts/integrations/deconz/deconz.mapper.ts +24 -18
  1081. package/ts/integrations/deconz/deconz.types.ts +38 -3
  1082. package/ts/integrations/deconz/deconz.validation.ts +261 -0
  1083. package/ts/integrations/deconz/readme.md +44 -0
  1084. package/ts/integrations/denonavr/denonavr.classes.client.ts +132 -421
  1085. package/ts/integrations/denonavr/denonavr.classes.configflow.ts +44 -37
  1086. package/ts/integrations/denonavr/denonavr.classes.integration.ts +171 -117
  1087. package/ts/integrations/denonavr/denonavr.discovery.ts +67 -220
  1088. package/ts/integrations/denonavr/denonavr.mapper.ts +36 -182
  1089. package/ts/integrations/denonavr/denonavr.types.ts +48 -111
  1090. package/ts/integrations/denonavr/denonavr.validation.ts +87 -0
  1091. package/ts/integrations/esphome/esphome.classes.client.ts +254 -74
  1092. package/ts/integrations/esphome/esphome.classes.configflow.ts +1 -3
  1093. package/ts/integrations/esphome/esphome.classes.integration.ts +61 -66
  1094. package/ts/integrations/esphome/esphome.discovery.ts +1 -1
  1095. package/ts/integrations/esphome/esphome.mapper.ts +71 -37
  1096. package/ts/integrations/esphome/esphome.types.ts +2 -0
  1097. package/ts/integrations/esphome/readme.md +66 -0
  1098. package/ts/integrations/generated/index.ts +4 -6
  1099. package/ts/integrations/homeassistant/homeassistant.classes.client.ts +166 -63
  1100. package/ts/integrations/homeassistant/homeassistant.classes.runtime.ts +41 -3
  1101. package/ts/integrations/homeassistant/homeassistant.mapper.ts +32 -36
  1102. package/ts/integrations/homeassistant/homeassistant.types.ts +11 -0
  1103. package/ts/integrations/homeassistant/homeassistant.validation.ts +139 -0
  1104. package/ts/integrations/homeassistant/readme.md +40 -0
  1105. package/ts/integrations/hue/hue.classes.client.ts +251 -21
  1106. package/ts/integrations/hue/hue.classes.configflow.ts +26 -13
  1107. package/ts/integrations/hue/hue.classes.integration.ts +76 -30
  1108. package/ts/integrations/hue/hue.discovery.ts +61 -26
  1109. package/ts/integrations/hue/hue.mapper.ts +28 -60
  1110. package/ts/integrations/hue/hue.types.ts +12 -18
  1111. package/ts/integrations/hue/hue.validation.ts +154 -0
  1112. package/ts/integrations/hue/readme.md +71 -0
  1113. package/ts/integrations/index.ts +5 -1
  1114. package/ts/integrations/kodi/kodi.classes.client.ts +72 -352
  1115. package/ts/integrations/kodi/kodi.classes.configflow.ts +52 -55
  1116. package/ts/integrations/kodi/kodi.classes.integration.ts +97 -178
  1117. package/ts/integrations/kodi/kodi.discovery.ts +49 -28
  1118. package/ts/integrations/kodi/kodi.mapper.ts +52 -10
  1119. package/ts/integrations/kodi/kodi.types.ts +33 -58
  1120. package/ts/integrations/kodi/kodi.validation.ts +60 -0
  1121. package/ts/integrations/lifx/lifx.classes.client.ts +95 -6
  1122. package/ts/integrations/lifx/lifx.classes.configflow.ts +32 -5
  1123. package/ts/integrations/lifx/lifx.classes.integration.ts +142 -7
  1124. package/ts/integrations/lifx/lifx.discovery.ts +26 -3
  1125. package/ts/integrations/lifx/lifx.mapper.ts +45 -17
  1126. package/ts/integrations/lifx/lifx.types.ts +51 -125
  1127. package/ts/integrations/lifx/lifx.validation.ts +86 -0
  1128. package/ts/integrations/lifx/readme.md +55 -0
  1129. package/ts/integrations/modbus/modbus.classes.client.ts +100 -842
  1130. package/ts/integrations/modbus/modbus.classes.configflow.ts +70 -41
  1131. package/ts/integrations/modbus/modbus.classes.integration.ts +115 -60
  1132. package/ts/integrations/modbus/modbus.discovery.ts +38 -106
  1133. package/ts/integrations/modbus/modbus.mapper.ts +64 -467
  1134. package/ts/integrations/modbus/modbus.types.ts +64 -381
  1135. package/ts/integrations/modbus/modbus.validation.ts +119 -0
  1136. package/ts/integrations/mqtt/mqtt.classes.client.ts +394 -366
  1137. package/ts/integrations/mqtt/mqtt.classes.configflow.ts +22 -18
  1138. package/ts/integrations/mqtt/mqtt.classes.integration.ts +119 -44
  1139. package/ts/integrations/mqtt/mqtt.mapper.ts +139 -47
  1140. package/ts/integrations/mqtt/mqtt.types.ts +19 -0
  1141. package/ts/integrations/mqtt/readme.md +28 -0
  1142. package/ts/integrations/nanoleaf/nanoleaf.classes.client.ts +115 -249
  1143. package/ts/integrations/nanoleaf/nanoleaf.classes.configflow.ts +90 -19
  1144. package/ts/integrations/nanoleaf/nanoleaf.classes.integration.ts +130 -181
  1145. package/ts/integrations/nanoleaf/nanoleaf.credentials.ts +39 -0
  1146. package/ts/integrations/nanoleaf/nanoleaf.mapper.ts +47 -260
  1147. package/ts/integrations/nanoleaf/nanoleaf.types.ts +29 -147
  1148. package/ts/integrations/nanoleaf/nanoleaf.validation.ts +77 -0
  1149. package/ts/integrations/onkyo/onkyo.classes.client.ts +148 -457
  1150. package/ts/integrations/onkyo/onkyo.classes.configflow.ts +52 -6
  1151. package/ts/integrations/onkyo/onkyo.classes.integration.ts +121 -12
  1152. package/ts/integrations/onkyo/onkyo.discovery.ts +41 -3
  1153. package/ts/integrations/onkyo/onkyo.mapper.ts +46 -19
  1154. package/ts/integrations/onkyo/onkyo.types.ts +55 -110
  1155. package/ts/integrations/onkyo/onkyo.validation.ts +85 -0
  1156. package/ts/integrations/onkyo/readme.md +126 -0
  1157. package/ts/integrations/openhome/openhome.classes.client.ts +22 -18
  1158. package/ts/integrations/panasonic_viera/panasonic_viera.classes.client.ts +101 -398
  1159. package/ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.ts +69 -5
  1160. package/ts/integrations/panasonic_viera/panasonic_viera.classes.integration.ts +141 -9
  1161. package/ts/integrations/panasonic_viera/panasonic_viera.discovery.ts +32 -3
  1162. package/ts/integrations/panasonic_viera/panasonic_viera.mapper.ts +34 -161
  1163. package/ts/integrations/panasonic_viera/panasonic_viera.types.ts +52 -96
  1164. package/ts/integrations/panasonic_viera/panasonic_viera.validation.ts +56 -0
  1165. package/ts/integrations/pioneer/pioneer.classes.client.ts +132 -428
  1166. package/ts/integrations/pioneer/pioneer.classes.configflow.ts +67 -5
  1167. package/ts/integrations/pioneer/pioneer.classes.integration.ts +225 -11
  1168. package/ts/integrations/pioneer/pioneer.discovery.ts +45 -3
  1169. package/ts/integrations/pioneer/pioneer.mapper.ts +57 -13
  1170. package/ts/integrations/pioneer/pioneer.types.ts +87 -85
  1171. package/ts/integrations/pioneer/pioneer.validation.ts +84 -0
  1172. package/ts/integrations/roku/readme.md +95 -0
  1173. package/ts/integrations/roku/roku.classes.client.ts +194 -131
  1174. package/ts/integrations/roku/roku.classes.configflow.ts +20 -13
  1175. package/ts/integrations/roku/roku.classes.integration.ts +69 -98
  1176. package/ts/integrations/roku/roku.discovery.ts +68 -71
  1177. package/ts/integrations/roku/roku.mapper.ts +17 -52
  1178. package/ts/integrations/roku/roku.types.ts +23 -14
  1179. package/ts/integrations/roku/roku.validation.ts +79 -0
  1180. package/ts/integrations/samsungtv/readme.md +30 -0
  1181. package/ts/integrations/samsungtv/samsungtv.classes.client.ts +107 -481
  1182. package/ts/integrations/samsungtv/samsungtv.classes.configflow.ts +28 -29
  1183. package/ts/integrations/samsungtv/samsungtv.classes.integration.ts +108 -132
  1184. package/ts/integrations/samsungtv/samsungtv.discovery.ts +101 -165
  1185. package/ts/integrations/samsungtv/samsungtv.mapper.ts +20 -127
  1186. package/ts/integrations/samsungtv/samsungtv.types.ts +18 -95
  1187. package/ts/integrations/samsungtv/samsungtv.validation.ts +84 -0
  1188. package/ts/integrations/shelly/readme.md +34 -0
  1189. package/ts/integrations/shelly/shelly.classes.client.ts +275 -137
  1190. package/ts/integrations/shelly/shelly.classes.configflow.ts +24 -10
  1191. package/ts/integrations/shelly/shelly.classes.integration.ts +109 -32
  1192. package/ts/integrations/shelly/shelly.classes.subscription.ts +218 -0
  1193. package/ts/integrations/shelly/shelly.discovery.ts +5 -2
  1194. package/ts/integrations/shelly/shelly.rpc.ts +190 -0
  1195. package/ts/integrations/shelly/shelly.types.ts +16 -4
  1196. package/ts/integrations/sonos/index.ts +3 -0
  1197. package/ts/integrations/sonos/readme.md +74 -0
  1198. package/ts/integrations/sonos/sonos.classes.client.ts +153 -225
  1199. package/ts/integrations/sonos/sonos.classes.configflow.ts +21 -8
  1200. package/ts/integrations/sonos/sonos.classes.integration.ts +234 -72
  1201. package/ts/integrations/sonos/sonos.classes.ssdpprobe.ts +85 -0
  1202. package/ts/integrations/sonos/sonos.config.ts +57 -0
  1203. package/ts/integrations/sonos/sonos.discovery.ts +5 -123
  1204. package/ts/integrations/sonos/sonos.mapper.ts +29 -13
  1205. package/ts/integrations/sonos/sonos.matchers.ts +83 -0
  1206. package/ts/integrations/sonos/sonos.topology.ts +54 -0
  1207. package/ts/integrations/sonos/sonos.types.ts +20 -8
  1208. package/ts/integrations/sonos/sonos.xml.ts +19 -0
  1209. package/ts/integrations/soundtouch/soundtouch.classes.client.ts +152 -571
  1210. package/ts/integrations/soundtouch/soundtouch.classes.configflow.ts +47 -42
  1211. package/ts/integrations/soundtouch/soundtouch.classes.integration.ts +95 -150
  1212. package/ts/integrations/soundtouch/soundtouch.discovery.ts +21 -133
  1213. package/ts/integrations/soundtouch/soundtouch.mapper.ts +36 -207
  1214. package/ts/integrations/soundtouch/soundtouch.types.ts +50 -195
  1215. package/ts/integrations/soundtouch/soundtouch.validation.ts +60 -0
  1216. package/ts/integrations/tasmota/index.ts +4 -0
  1217. package/ts/integrations/tasmota/readme.md +33 -0
  1218. package/ts/integrations/tasmota/tasmota.classes.integration.ts +27 -24
  1219. package/ts/integrations/tasmota/tasmota.classes.runtime.ts +274 -0
  1220. package/ts/integrations/tasmota/tasmota.config.ts +69 -0
  1221. package/ts/integrations/tasmota/tasmota.discovery.ts +84 -0
  1222. package/ts/integrations/tasmota/tasmota.mapper.ts +88 -0
  1223. package/ts/integrations/tasmota/tasmota.types.ts +48 -2
  1224. package/ts/integrations/tplink/index.ts +3 -0
  1225. package/ts/integrations/tplink/readme.md +38 -0
  1226. package/ts/integrations/tplink/tplink.classes.client.ts +56 -75
  1227. package/ts/integrations/tplink/tplink.classes.configflow.ts +48 -100
  1228. package/ts/integrations/tplink/tplink.classes.integration.ts +118 -40
  1229. package/ts/integrations/tplink/tplink.discovery.ts +106 -235
  1230. package/ts/integrations/tplink/tplink.native.mapper.ts +67 -0
  1231. package/ts/integrations/tplink/tplink.native.types.ts +32 -0
  1232. package/ts/integrations/tplink/tplink.validation.ts +50 -0
  1233. package/ts/integrations/tradfri/tradfri.discovery.ts +52 -26
  1234. package/ts/integrations/tuya/readme.md +106 -0
  1235. package/ts/integrations/tuya/tuya.classes.integration.ts +127 -28
  1236. package/ts/integrations/tuya/tuya.classes.runtime.ts +166 -0
  1237. package/ts/integrations/tuya/tuya.mapper.ts +47 -0
  1238. package/ts/integrations/tuya/tuya.types.ts +47 -2
  1239. package/ts/integrations/tuya/tuya.validation.ts +118 -0
  1240. package/ts/integrations/unifi/unifi.mapper.ts +8 -5
  1241. package/ts/integrations/webostv/readme.md +48 -0
  1242. package/ts/integrations/webostv/webostv.classes.client.ts +297 -6
  1243. package/ts/integrations/webostv/webostv.classes.configflow.ts +18 -5
  1244. package/ts/integrations/webostv/webostv.classes.integration.ts +92 -7
  1245. package/ts/integrations/webostv/webostv.discovery.ts +22 -3
  1246. package/ts/integrations/webostv/webostv.mapper.ts +27 -18
  1247. package/ts/integrations/webostv/webostv.types.ts +47 -101
  1248. package/ts/integrations/webostv/webostv.validation.ts +48 -0
  1249. package/ts/integrations/wiz/index.ts +1 -0
  1250. package/ts/integrations/wiz/wiz.classes.client.ts +84 -254
  1251. package/ts/integrations/wiz/wiz.classes.configflow.ts +39 -70
  1252. package/ts/integrations/wiz/wiz.classes.integration.ts +189 -45
  1253. package/ts/integrations/wiz/wiz.discovery.ts +48 -291
  1254. package/ts/integrations/wiz/wiz.mapper.ts +81 -754
  1255. package/ts/integrations/wiz/wiz.types.ts +24 -224
  1256. package/ts/integrations/wiz/wiz.validation.ts +73 -0
  1257. package/ts/integrations/wled/index.ts +1 -0
  1258. package/ts/integrations/wled/readme.md +83 -0
  1259. package/ts/integrations/wled/wled.classes.client.ts +208 -6
  1260. package/ts/integrations/wled/wled.classes.configflow.ts +26 -5
  1261. package/ts/integrations/wled/wled.classes.integration.ts +142 -7
  1262. package/ts/integrations/wled/wled.classes.subscription.ts +122 -0
  1263. package/ts/integrations/wled/wled.commands.ts +54 -0
  1264. package/ts/integrations/wled/wled.discovery.ts +52 -3
  1265. package/ts/integrations/wled/wled.errors.ts +9 -0
  1266. package/ts/integrations/wled/wled.mapper.ts +39 -19
  1267. package/ts/integrations/wled/wled.types.ts +59 -87
  1268. package/ts/integrations/wled/wled.validation.ts +72 -0
  1269. package/ts/integrations/yamaha/index.ts +1 -0
  1270. package/ts/integrations/yamaha/yamaha.classes.client.ts +150 -6
  1271. package/ts/integrations/yamaha/yamaha.classes.configflow.ts +100 -5
  1272. package/ts/integrations/yamaha/yamaha.classes.integration.ts +236 -8
  1273. package/ts/integrations/yamaha/yamaha.discovery.ts +52 -3
  1274. package/ts/integrations/yamaha/yamaha.mapper.ts +65 -13
  1275. package/ts/integrations/yamaha/yamaha.types.ts +77 -97
  1276. package/ts/integrations/yamaha/yamaha.validation.ts +86 -0
  1277. package/ts/integrations/yeelight/readme.md +47 -0
  1278. package/ts/integrations/yeelight/yeelight.classes.client.ts +201 -302
  1279. package/ts/integrations/yeelight/yeelight.classes.configflow.ts +23 -32
  1280. package/ts/integrations/yeelight/yeelight.classes.integration.ts +115 -87
  1281. package/ts/integrations/yeelight/yeelight.discovery.ts +78 -140
  1282. package/ts/integrations/yeelight/yeelight.mapper.ts +61 -191
  1283. package/ts/integrations/yeelight/yeelight.types.ts +31 -162
  1284. package/ts/integrations/yeelight/yeelight.validation.ts +112 -0
  1285. package/ts/integrations/zha/readme.md +23 -0
  1286. package/ts/integrations/zha/zha.discovery.ts +92 -232
  1287. package/ts/integrations/zha/zha.discoveryvalidation.ts +67 -0
  1288. package/ts/integrations/zigbee2mqtt/index.ts +5 -0
  1289. package/ts/integrations/zigbee2mqtt/readme.md +40 -0
  1290. package/ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.configflow.ts +26 -0
  1291. package/ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.integration.ts +23 -0
  1292. package/ts/integrations/zigbee2mqtt/zigbee2mqtt.classes.runtime.ts +414 -0
  1293. package/ts/integrations/zigbee2mqtt/zigbee2mqtt.mapper.ts +172 -0
  1294. package/ts/integrations/zigbee2mqtt/zigbee2mqtt.types.ts +63 -0
  1295. package/ts/integrations/zigbee2mqtt/zigbee2mqtt.validation.ts +65 -0
  1296. package/ts/integrations/zwave_js/readme.md +23 -0
  1297. package/ts/integrations/zwave_js/zwave_js.classes.client.ts +256 -136
  1298. package/ts/integrations/zwave_js/zwave_js.classes.configflow.ts +26 -28
  1299. package/ts/integrations/zwave_js/zwave_js.classes.integration.ts +65 -81
  1300. package/ts/integrations/zwave_js/zwave_js.discovery.ts +100 -15
  1301. package/ts/integrations/zwave_js/zwave_js.mapper.ts +129 -256
  1302. package/ts/integrations/zwave_js/zwave_js.types.ts +32 -19
  1303. package/ts/integrations/zwave_js/zwave_js.validation.ts +191 -0
  1304. package/ts/plugins.ts +12 -3
  1305. package/ts_migration/001.import-json-config.ts +81 -0
  1306. package/ts_migration/index.ts +1 -0
  1307. package/ts/integrations/tasmota/.generated-by-smarthome-exchange +0 -1
  1308. package/ts/integrations/tuya/.generated-by-smarthome-exchange +0 -1
@@ -1,148 +1,63 @@
1
+ import type * as plugins from '../../plugins.js';
2
+ import type { INativeConfigFlowContext, INativeIntegrationSetupContext } from '../../core/types.js';
3
+ import type { INativeIntegrationOwnerOptions } from '../../core/classes.nativeintegrationowner.js';
4
+ export declare const soundtouchDomain = "soundtouch";
1
5
  export declare const soundtouchDefaultPort = 8090;
2
- export declare const soundtouchDefaultDlnaPort = 8091;
3
- export declare const soundtouchDefaultSourceList: readonly ["AUX", "BLUETOOTH"];
4
- export type TSoundtouchPlayStatus = 'PLAY_STATE' | 'BUFFERING_STATE' | 'PAUSE_STATE' | 'STOP_STATE' | string;
5
- export type TSoundtouchSource = 'SLAVE_SOURCE' | 'INTERNET_RADIO' | 'PANDORA' | 'AIRPLAY' | 'STORED_MUSIC' | 'AUX' | 'OFF_SOURCE' | 'CURRATED_RADIO' | 'STANDBY' | 'UPDATE' | 'DEEZER' | 'SPOTIFY' | 'IHEART' | 'LOCAL_MUSIC' | 'BLUETOOTH' | 'INVALID_SOURCE' | string;
6
- export type TSoundtouchContentType = 'uri' | 'track' | 'album' | 'playlist' | string;
7
- export type TSoundtouchCommand = 'turn_on' | 'turn_off' | 'play' | 'pause' | 'play_pause' | 'previous_track' | 'next_track' | 'volume_up' | 'volume_down' | 'set_volume' | 'mute' | 'select_source' | 'play_media' | 'play_preset';
8
- export interface ISoundtouchConfig {
9
- host?: string;
10
- port?: number;
11
- dlnaPort?: number;
12
- name?: string;
13
- deviceId?: string;
14
- model?: string;
15
- macAddress?: string;
16
- sourceList?: string[];
17
- timeoutMs?: number;
18
- snapshot?: ISoundtouchSnapshot;
19
- commandExecutor?: ISoundtouchCommandExecutor;
20
- }
21
- export interface IHomeAssistantSoundtouchConfig extends ISoundtouchConfig {
22
- }
23
- export interface ISoundtouchCommandExecutor {
24
- execute(requestArg: ISoundtouchRawCommandRequest): Promise<unknown>;
25
- }
26
- export interface ISoundtouchRawCommandRequest {
27
- command: TSoundtouchCommand | 'refresh';
28
- method: 'GET' | 'POST';
29
- path: string;
30
- url: string;
31
- host?: string;
32
- port: number;
33
- body?: string;
34
- headers?: Record<string, string>;
35
- }
36
- export interface ISoundtouchCommandRequest {
37
- command: TSoundtouchCommand;
38
- source?: string;
39
- presetId?: string;
40
- presetName?: string;
41
- mediaId?: string;
42
- mediaType?: string;
43
- url?: string;
44
- volumeLevel?: number;
45
- volume?: number;
46
- muted?: boolean;
47
- contentItem?: ISoundtouchContentItem;
48
- }
49
- export interface ISoundtouchSnapshot {
50
- config: ISoundtouchDeviceInfo;
51
- status?: ISoundtouchStatus;
52
- volume?: ISoundtouchVolume;
53
- presets?: ISoundtouchPreset[];
54
- zone?: ISoundtouchZoneStatus;
55
- sourceList?: string[];
56
- available?: boolean;
57
- lastUpdated?: string;
58
- error?: string;
59
- }
60
- export interface ISoundtouchDeviceInfo {
61
- deviceId?: string;
62
- name?: string;
63
- type?: string;
64
- accountUuid?: string;
65
- moduleType?: string;
66
- variant?: string;
67
- variantMode?: string;
68
- countryCode?: string;
69
- regionCode?: string;
70
- host?: string;
71
- port?: number;
72
- networks?: ISoundtouchNetworkInfo[];
73
- components?: ISoundtouchComponentInfo[];
6
+ export declare const soundtouchDefaultTimeoutMs = 5000;
7
+ export interface ISoundtouchHomeOptions extends INativeIntegrationOwnerOptions {
74
8
  }
75
- export interface ISoundtouchNetworkInfo {
76
- type?: string;
77
- macAddress?: string;
78
- ipAddress?: string;
9
+ export interface ISoundtouchSetupContext extends INativeIntegrationSetupContext {
79
10
  }
80
- export interface ISoundtouchComponentInfo {
81
- category?: string;
82
- softwareVersion?: string;
83
- serialNumber?: string;
11
+ export interface ISoundtouchConfigFlowContext extends INativeConfigFlowContext {
84
12
  }
85
- export interface ISoundtouchContentItem {
86
- name?: string;
87
- source?: TSoundtouchSource;
88
- type?: TSoundtouchContentType;
89
- location?: string;
90
- sourceAccount?: string;
91
- isPresetable?: boolean;
92
- }
93
- export interface ISoundtouchStatus {
94
- source?: TSoundtouchSource;
95
- contentItem?: ISoundtouchContentItem;
96
- track?: string;
97
- artist?: string;
98
- album?: string;
99
- image?: string;
100
- duration?: number;
101
- position?: number;
102
- playStatus?: TSoundtouchPlayStatus;
103
- shuffleSetting?: string;
104
- repeatSetting?: string;
105
- streamType?: string;
106
- trackId?: string;
107
- stationName?: string;
108
- description?: string;
109
- stationLocation?: string;
110
- }
111
- export interface ISoundtouchVolume {
112
- actual?: number;
113
- target?: number;
114
- muted?: boolean;
115
- }
116
- export interface ISoundtouchPreset extends ISoundtouchContentItem {
117
- presetId: string;
118
- sourceXml?: string;
119
- }
120
- export interface ISoundtouchZoneStatus {
121
- masterId?: string;
122
- masterIp?: string;
123
- isMaster?: boolean;
124
- slaves: ISoundtouchZoneMember[];
125
- }
126
- export interface ISoundtouchZoneMember {
127
- deviceId?: string;
128
- ipAddress?: string;
129
- role?: string;
130
- }
131
- export interface ISoundtouchMdnsRecord {
132
- name?: string;
133
- type?: string;
134
- host?: string;
135
- port?: number;
136
- txt?: Record<string, string | undefined>;
13
+ export interface ISoundtouchConfig {
14
+ readonly homeId: string;
15
+ readonly host: string;
16
+ /** Exact uppercase unicast deviceID previously observed on the selected device. */
17
+ readonly deviceId: string;
18
+ /** Documented /info type; the protocol supplies no model field. */
19
+ readonly type: string;
20
+ readonly allowUnencryptedLan: true;
21
+ /** Owner's absolute integer volume ceiling, 0–100. */
22
+ readonly volumeLimit: number;
23
+ readonly port?: number;
24
+ /** Optional local display label; observed /info name remains in the snapshot. */
25
+ readonly name?: string;
26
+ readonly requestTimeoutMs?: number;
27
+ readonly maxPendingOperations?: number;
28
+ readonly maxResponseBytes?: number;
137
29
  }
138
- export interface ISoundtouchManualEntry {
139
- host?: string;
140
- port?: number;
141
- id?: string;
142
- name?: string;
143
- manufacturer?: string;
144
- model?: string;
145
- deviceId?: string;
146
- macAddress?: string;
147
- metadata?: Record<string, unknown>;
30
+ export interface IHomeAssistantSoundtouchConfig extends ISoundtouchConfig {
148
31
  }
32
+ export interface ISoundtouchSnapshot extends plugins.ecobridgeDeviceManager.IBoseSoundTouchState {
33
+ readonly homeId: string;
34
+ readonly displayName?: string;
35
+ readonly volumeLimit: number;
36
+ readonly online: true;
37
+ }
38
+ export type TSoundtouchRawData = ISoundtouchSnapshot;
39
+ export type TSoundtouchClientEvent = {
40
+ readonly type: 'snapshot';
41
+ readonly snapshot: ISoundtouchSnapshot;
42
+ } | {
43
+ readonly type: 'control';
44
+ readonly observation: plugins.ecobridgeDeviceManager.IBoseSoundTouchControlResult;
45
+ } | {
46
+ readonly type: 'error';
47
+ readonly error: Error;
48
+ };
49
+ export declare const soundtouchProfile: {
50
+ readonly domain: "soundtouch";
51
+ readonly displayName: 'Bose SoundTouch';
52
+ readonly status: 'control-runtime';
53
+ readonly metadata: {
54
+ readonly source: 'home-assistant/core';
55
+ readonly upstreamDomain: "soundtouch";
56
+ readonly configFlow: true;
57
+ readonly localApi: {
58
+ readonly status: 'Selected native SoundTouch HTTP/XML through devicemanager.';
59
+ readonly implemented: readonly ['exact selected home/private IPv4/deviceID/type binding', 'live sanitized identity, optional capability declarations and actual volume/mute', 'fresh settled-volume admission and owner-bounded absolute volume/mute', 'status acknowledgment and independent state observation without causal claims', 'caller-owned optional home/domain config store', 'explicit observation events and joined terminal cleanup'];
60
+ readonly explicitUnsupported: readonly ['automatic discovery', 'cloud access or fallback', 'injected clients, snapshots and executors', 'power, standby, key/toggle/increment, source, preset, media and zone controls', 'defined command-success vocabulary', 'automatic retry, replay, reconnect or push subscription', 'cryptographic LAN peer authentication'];
61
+ };
62
+ };
63
+ };
@@ -1,4 +1,19 @@
1
+ export const soundtouchDomain = 'soundtouch';
1
2
  export const soundtouchDefaultPort = 8090;
2
- export const soundtouchDefaultDlnaPort = 8091;
3
- export const soundtouchDefaultSourceList = ['AUX', 'BLUETOOTH'];
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291bmR0b3VjaC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ludGVncmF0aW9ucy9zb3VuZHRvdWNoL3NvdW5kdG91Y2gudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQVUsQ0FBQyJ9
3
+ export const soundtouchDefaultTimeoutMs = 5000;
4
+ export const soundtouchProfile = {
5
+ domain: soundtouchDomain, displayName: 'Bose SoundTouch', status: 'control-runtime',
6
+ metadata: {
7
+ source: 'home-assistant/core', upstreamDomain: soundtouchDomain, configFlow: true,
8
+ localApi: {
9
+ status: 'Selected native SoundTouch HTTP/XML through devicemanager.',
10
+ implemented: ['exact selected home/private IPv4/deviceID/type binding', 'live sanitized identity, optional capability declarations and actual volume/mute',
11
+ 'fresh settled-volume admission and owner-bounded absolute volume/mute', 'status acknowledgment and independent state observation without causal claims',
12
+ 'caller-owned optional home/domain config store', 'explicit observation events and joined terminal cleanup'],
13
+ explicitUnsupported: ['automatic discovery', 'cloud access or fallback', 'injected clients, snapshots and executors',
14
+ 'power, standby, key/toggle/increment, source, preset, media and zone controls', 'defined command-success vocabulary',
15
+ 'automatic retry, replay, reconnect or push subscription', 'cryptographic LAN peer authentication'],
16
+ },
17
+ },
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291bmR0b3VjaC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ludGVncmF0aW9ucy9zb3VuZHRvdWNoL3NvdW5kdG91Y2gudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUM7QUFpQy9DLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQjtJQUNuRixRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxJQUFJO1FBQ2pGLFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSw0REFBNEQ7WUFDcEUsV0FBVyxFQUFFLENBQUMsd0RBQXdELEVBQUUsa0ZBQWtGO2dCQUN4Six1RUFBdUUsRUFBRSwrRUFBK0U7Z0JBQ3hKLGdEQUFnRCxFQUFFLHlEQUF5RCxDQUFDO1lBQzlHLG1CQUFtQixFQUFFLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsMkNBQTJDO2dCQUNsSCwrRUFBK0UsRUFBRSxvQ0FBb0M7Z0JBQ3JILHlEQUF5RCxFQUFFLHVDQUF1QyxDQUFDO1NBQ3RHO0tBQ0Y7Q0FDTyxDQUFDIn0=
@@ -0,0 +1,22 @@
1
+ import type { ISoundtouchConfig } from './soundtouch.types.js';
2
+ export declare function soundtouchRecord(valueArg: unknown, nameArg: string): Record<string, unknown>;
3
+ export declare function soundtouchKeys(valueArg: Record<string, unknown>, keysArg: readonly string[]): void;
4
+ export declare function soundtouchText(valueArg: unknown, nameArg: string, maximumArg?: number): string;
5
+ export declare function soundtouchInteger(valueArg: unknown, minimumArg: number, maximumArg: number, nameArg: string): number;
6
+ export declare function soundtouchBoolean(valueArg: unknown): boolean;
7
+ export declare function readSoundtouchEndpoint(hostArg: unknown, idArg: unknown, typeArg: unknown, portArg?: unknown): Pick<ISoundtouchConfig, 'host' | 'deviceId' | 'type'> & {
8
+ port: number;
9
+ };
10
+ export declare function normalizeSoundtouchConfig(valueArg: unknown): Readonly<{
11
+ host: string;
12
+ deviceId: string;
13
+ type: string;
14
+ port: number;
15
+ homeId: string;
16
+ allowUnencryptedLan: true;
17
+ volumeLimit: number;
18
+ name?: string | undefined;
19
+ requestTimeoutMs: number;
20
+ maxPendingOperations: number;
21
+ maxResponseBytes: number;
22
+ }>;
@@ -0,0 +1,65 @@
1
+ import * as plugins from '../../plugins.js';
2
+ import { soundtouchDefaultPort, soundtouchDefaultTimeoutMs } from './soundtouch.types.js';
3
+ export function soundtouchRecord(valueArg, nameArg) {
4
+ if (!valueArg || typeof valueArg !== 'object' || Array.isArray(valueArg)
5
+ || ![Object.prototype, null].includes(Object.getPrototypeOf(valueArg)))
6
+ throw new TypeError(`SoundTouch ${nameArg} must be a plain data object.`);
7
+ const result = {};
8
+ for (const key of Reflect.ownKeys(valueArg)) {
9
+ const descriptor = Object.getOwnPropertyDescriptor(valueArg, key);
10
+ if (typeof key !== 'string' || !descriptor || !('value' in descriptor) || !descriptor.enumerable) {
11
+ throw new TypeError(`SoundTouch ${nameArg} may not contain symbols, accessors or hidden fields.`);
12
+ }
13
+ Object.defineProperty(result, key, { value: descriptor.value, enumerable: true });
14
+ }
15
+ return result;
16
+ }
17
+ export function soundtouchKeys(valueArg, keysArg) {
18
+ if (Object.keys(valueArg).some((key) => !keysArg.includes(key)))
19
+ throw new TypeError('SoundTouch data contains unsupported fields.');
20
+ }
21
+ export function soundtouchText(valueArg, nameArg, maximumArg = 128) {
22
+ if (typeof valueArg !== 'string' || !valueArg.trim() || valueArg.length > maximumArg || /[\p{Cc}\p{Cs}]/u.test(valueArg)) {
23
+ throw new TypeError(`SoundTouch ${nameArg} must be a non-empty string without control characters, at most ${maximumArg} characters.`);
24
+ }
25
+ return valueArg;
26
+ }
27
+ export function soundtouchInteger(valueArg, minimumArg, maximumArg, nameArg) {
28
+ if (typeof valueArg !== 'number' || !Number.isSafeInteger(valueArg) || valueArg < minimumArg || valueArg > maximumArg) {
29
+ throw new RangeError(`SoundTouch ${nameArg} must be an integer from ${minimumArg} through ${maximumArg}.`);
30
+ }
31
+ return valueArg;
32
+ }
33
+ export function soundtouchBoolean(valueArg) {
34
+ if (typeof valueArg !== 'boolean')
35
+ throw new TypeError('SoundTouch mute requires an explicit boolean.');
36
+ return valueArg;
37
+ }
38
+ export function readSoundtouchEndpoint(hostArg, idArg, typeArg, portArg) {
39
+ if (typeof hostArg !== 'string' || plugins.net.isIP(hostArg) !== 4)
40
+ throw new TypeError('SoundTouch host must be a selected private IPv4 address.');
41
+ const [first, second, , last] = hostArg.split('.').map(Number);
42
+ if (!(first === 10 || first === 127 || first === 192 && second === 168 || first === 172 && second >= 16 && second <= 31)
43
+ || last === 0 || last === 255)
44
+ throw new TypeError('SoundTouch host must be a selected private or loopback unicast IPv4 address.');
45
+ if (typeof idArg !== 'string' || !/^[0-9A-F]{12}$/.test(idArg) || /^(0{12}|F{12})$/.test(idArg)
46
+ || (Number.parseInt(idArg.slice(0, 2), 16) & 1) !== 0)
47
+ throw new TypeError('SoundTouch deviceId must be the exact uppercase unicast twelve-digit deviceID.');
48
+ return { host: hostArg, deviceId: idArg, type: soundtouchText(typeArg, 'selected type'),
49
+ port: soundtouchInteger(portArg === undefined ? soundtouchDefaultPort : portArg, 1, 65535, 'port') };
50
+ }
51
+ export function normalizeSoundtouchConfig(valueArg) {
52
+ const values = soundtouchRecord(valueArg, 'configuration');
53
+ soundtouchKeys(values, ['homeId', 'host', 'deviceId', 'type', 'allowUnencryptedLan', 'volumeLimit', 'port', 'name',
54
+ 'requestTimeoutMs', 'maxPendingOperations', 'maxResponseBytes']);
55
+ if (values.allowUnencryptedLan !== true)
56
+ throw new TypeError('SoundTouch requires explicit allowUnencryptedLan: true admission.');
57
+ return Object.freeze({ homeId: soundtouchText(values.homeId, 'homeId', 256),
58
+ ...readSoundtouchEndpoint(values.host, values.deviceId, values.type, values.port), allowUnencryptedLan: true,
59
+ volumeLimit: soundtouchInteger(values.volumeLimit, 0, 100, 'volumeLimit'),
60
+ ...(values.name === undefined ? {} : { name: soundtouchText(values.name, 'name') }),
61
+ requestTimeoutMs: soundtouchInteger(values.requestTimeoutMs === undefined ? soundtouchDefaultTimeoutMs : values.requestTimeoutMs, 1, 30000, 'requestTimeoutMs'),
62
+ maxPendingOperations: soundtouchInteger(values.maxPendingOperations === undefined ? 16 : values.maxPendingOperations, 1, 128, 'maxPendingOperations'),
63
+ maxResponseBytes: soundtouchInteger(values.maxResponseBytes === undefined ? 16384 : values.maxResponseBytes, 256, 65536, 'maxResponseBytes'), });
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291bmR0b3VjaC52YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvaW50ZWdyYXRpb25zL3NvdW5kdG91Y2gvc291bmR0b3VjaC52YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUYsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQWlCLEVBQUUsT0FBZTtJQUNqRSxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztXQUNuRSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsY0FBYyxPQUFPLCtCQUErQixDQUFDLENBQUM7SUFDcEosTUFBTSxNQUFNLEdBQTRCLEVBQUUsQ0FBQztJQUMzQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM1QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakcsTUFBTSxJQUFJLFNBQVMsQ0FBQyxjQUFjLE9BQU8sdURBQXVELENBQUMsQ0FBQztRQUNwRyxDQUFDO1FBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFDRCxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQWlDLEVBQUUsT0FBMEI7SUFDMUYsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQUUsTUFBTSxJQUFJLFNBQVMsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0FBQ3ZJLENBQUM7QUFDRCxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQWlCLEVBQUUsT0FBZSxFQUFFLFVBQVUsR0FBRyxHQUFHO0lBQ2pGLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsVUFBVSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pILE1BQU0sSUFBSSxTQUFTLENBQUMsY0FBYyxPQUFPLG1FQUFtRSxVQUFVLGNBQWMsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBQ0QsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFFBQWlCLEVBQUUsVUFBa0IsRUFBRSxVQUFrQixFQUFFLE9BQWU7SUFDMUcsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsR0FBRyxVQUFVLElBQUksUUFBUSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQ3RILE1BQU0sSUFBSSxVQUFVLENBQUMsY0FBYyxPQUFPLDRCQUE0QixVQUFVLFlBQVksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUNELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxRQUFpQjtJQUNqRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFNBQVM7UUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDeEcsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUNELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUFnQixFQUFFLEtBQWMsRUFBRSxPQUFnQixFQUFFLE9BQWlCO0lBQzFHLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDcEosTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQUFBRCxFQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxNQUFNLElBQUksRUFBRSxJQUFJLE1BQU0sSUFBSSxFQUFFLENBQUM7V0FDbkgsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssR0FBRztRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsOEVBQThFLENBQUMsQ0FBQztJQUNySSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1dBQzFGLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQUUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO0lBQy9KLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDO1FBQ3JGLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUN6RyxDQUFDO0FBQ0QsTUFBTSxVQUFVLHlCQUF5QixDQUFDLFFBQWlCO0lBQ3pELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMzRCxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTTtRQUNoSCxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDbkUsSUFBSSxNQUFNLENBQUMsbUJBQW1CLEtBQUssSUFBSTtRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsbUVBQW1FLENBQUMsQ0FBQztJQUNsSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUN6RSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxJQUFhO1FBQ3JILFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDO1FBQ3pFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25GLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQztRQUMvSixvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLHNCQUFzQixDQUFDO1FBQ3JKLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLENBQUMsR0FDN0ksQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -767,4 +767,4 @@ const decodeURIComponentSafe = (valueArg) => {
767
767
  };
768
768
  const formatHost = (hostArg) => hostArg.includes(':') && !hostArg.startsWith('[') ? `[${hostArg}]` : hostArg;
769
769
  const slug = (valueArg) => valueArg.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '') || 'squeezebox';
770
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3F1ZWV6ZWJveC5jbGFzc2VzLmNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ludGVncmF0aW9ucy9zcXVlZXplYm94L3NxdWVlemVib3guY2xhc3Nlcy5jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQWdCNUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLDBCQUEwQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbkwsTUFBTSxPQUFPLHNCQUF1QixTQUFRLEtBQUs7SUFDbkI7SUFBNUIsWUFBNEIsT0FBaUIsRUFBRSxVQUFrQjtRQUMvRCxLQUFLLENBQUMsc0JBQXNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksVUFBVSxFQUFFLENBQUMsQ0FBQztRQUQ3QyxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBRTNDLElBQUksQ0FBQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUtFO0lBSnJCLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDWCxlQUFlLENBQXVCO0lBQ3RDLFlBQVksQ0FBdUI7SUFFM0MsWUFBNkIsTUFBeUI7UUFBekIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMvSCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVc7UUFDdEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENB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
770
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3F1ZWV6ZWJveC5jbGFzc2VzLmNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2ludGVncmF0aW9ucy9zcXVlZXplYm94L3NxdWVlemVib3guY2xhc3Nlcy5jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQWdCNUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLDBCQUEwQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbkwsTUFBTSxPQUFPLHNCQUF1QixTQUFRLEtBQUs7SUFDbkIsT0FBTztJQUFuQyxZQUE0QixPQUFpQixFQUFFLFVBQWtCO1FBQy9ELEtBQUssQ0FBQyxzQkFBc0IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxVQUFVLEVBQUUsQ0FBQyxDQUFDO3VCQUQ3QyxPQUFPO1FBRWpDLElBQUksQ0FBQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUtFLE1BQU07SUFKM0IsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLGVBQWUsQ0FBdUI7SUFDdEMsWUFBWSxDQUF1QjtJQUUzQyxZQUE2QixNQUF5QjtzQkFBekIsTUFBTTtRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9ILENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVztRQUN0QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJ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
@@ -5,7 +5,7 @@ import type { ISqueezeboxConfig } from './squeezebox.types.js';
5
5
  export declare class SqueezeboxIntegration extends BaseIntegration<ISqueezeboxConfig> {
6
6
  readonly domain = "squeezebox";
7
7
  readonly displayName = "Squeezebox (Lyrion Music Server)";
8
- readonly status: "control-runtime";
8
+ readonly status: 'control-runtime';
9
9
  readonly discoveryDescriptor: import("../../index.js").DiscoveryDescriptor;
10
10
  readonly configFlow: SqueezeboxConfigFlow;
11
11
  readonly metadata: {