@zwave-js/cc 15.25.1 → 15.25.3

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 (314) hide show
  1. package/build/cjs/cc/AlarmSensorCC.js +15 -17
  2. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  3. package/build/cjs/cc/AssociationCC.d.ts +1 -1
  4. package/build/cjs/cc/AssociationCC.js +5 -2
  5. package/build/cjs/cc/AssociationCC.js.map +2 -2
  6. package/build/cjs/cc/AssociationGroupInfoCC.js +23 -18
  7. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  8. package/build/cjs/cc/BarrierOperatorCC.js +9 -7
  9. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  10. package/build/cjs/cc/BasicCC.js +3 -2
  11. package/build/cjs/cc/BasicCC.js.map +2 -2
  12. package/build/cjs/cc/BatteryCC.js +3 -2
  13. package/build/cjs/cc/BatteryCC.js.map +2 -2
  14. package/build/cjs/cc/BinarySensorCC.js +8 -6
  15. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  16. package/build/cjs/cc/BinarySwitchCC.js +3 -2
  17. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  18. package/build/cjs/cc/CentralSceneCC.js +9 -7
  19. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  20. package/build/cjs/cc/ClockCC.js +3 -2
  21. package/build/cjs/cc/ClockCC.js.map +2 -2
  22. package/build/cjs/cc/ColorSwitchCC.js +9 -6
  23. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  24. package/build/cjs/cc/ConfigurationCC.js +27 -27
  25. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  26. package/build/cjs/cc/DoorLockCC.js +49 -63
  27. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  28. package/build/cjs/cc/DoorLockLoggingCC.js +3 -2
  29. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  30. package/build/cjs/cc/EnergyProductionCC.js +3 -2
  31. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  32. package/build/cjs/cc/EntryControlCC.js +5 -3
  33. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  34. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +2 -1
  35. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  36. package/build/cjs/cc/HumidityControlModeCC.js +9 -8
  37. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  38. package/build/cjs/cc/HumidityControlOperatingStateCC.js +3 -2
  39. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  40. package/build/cjs/cc/HumidityControlSetpointCC.js +19 -17
  41. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  42. package/build/cjs/cc/IndicatorCC.js +5 -2
  43. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  44. package/build/cjs/cc/IrrigationCC.js +26 -27
  45. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  46. package/build/cjs/cc/LanguageCC.js +3 -2
  47. package/build/cjs/cc/LanguageCC.js.map +2 -2
  48. package/build/cjs/cc/LockCC.js +3 -2
  49. package/build/cjs/cc/LockCC.js.map +2 -2
  50. package/build/cjs/cc/ManufacturerSpecificCC.js +4 -1
  51. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  52. package/build/cjs/cc/MeterCC.js +14 -13
  53. package/build/cjs/cc/MeterCC.js.map +2 -2
  54. package/build/cjs/cc/MultiChannelAssociationCC.js +5 -2
  55. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  56. package/build/cjs/cc/MultiChannelCC.d.ts +1 -1
  57. package/build/cjs/cc/MultiChannelCC.js +19 -22
  58. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  59. package/build/cjs/cc/MultilevelSensorCC.js +13 -8
  60. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  61. package/build/cjs/cc/MultilevelSwitchCC.js +5 -3
  62. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  63. package/build/cjs/cc/NodeNamingCC.js +3 -2
  64. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  65. package/build/cjs/cc/NotificationCC.js +11 -11
  66. package/build/cjs/cc/NotificationCC.js.map +2 -2
  67. package/build/cjs/cc/ProtectionCC.js +16 -15
  68. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  69. package/build/cjs/cc/SceneControllerConfigurationCC.js +2 -1
  70. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  71. package/build/cjs/cc/ScheduleEntryLockCC.js +2 -1
  72. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  73. package/build/cjs/cc/Security2CC.js +15 -24
  74. package/build/cjs/cc/Security2CC.js.map +2 -2
  75. package/build/cjs/cc/SecurityCC.js +10 -17
  76. package/build/cjs/cc/SecurityCC.js.map +2 -2
  77. package/build/cjs/cc/SoundSwitchCC.js +2 -1
  78. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  79. package/build/cjs/cc/ThermostatFanModeCC.js +9 -7
  80. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  81. package/build/cjs/cc/ThermostatFanStateCC.js +3 -2
  82. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  83. package/build/cjs/cc/ThermostatModeCC.js +9 -7
  84. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  85. package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -4
  86. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  87. package/build/cjs/cc/ThermostatSetbackCC.js +3 -2
  88. package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
  89. package/build/cjs/cc/ThermostatSetpointCC.js +9 -5
  90. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  91. package/build/cjs/cc/TimeCC.js +2 -1
  92. package/build/cjs/cc/TimeCC.js.map +2 -2
  93. package/build/cjs/cc/TimeParametersCC.js +2 -1
  94. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  95. package/build/cjs/cc/UserCodeCC.js +6 -6
  96. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  97. package/build/cjs/cc/UserCredentialCC.js +5 -2
  98. package/build/cjs/cc/UserCredentialCC.js.map +2 -2
  99. package/build/cjs/cc/VersionCC.js +2 -1
  100. package/build/cjs/cc/VersionCC.js.map +2 -2
  101. package/build/cjs/cc/WakeUpCC.js +2 -1
  102. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  103. package/build/cjs/cc/WindowCoveringCC.js +10 -7
  104. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  105. package/build/cjs/cc/ZWavePlusCC.js +2 -1
  106. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  107. package/build/cjs/cc/_CCValues.generated.d.ts +4 -4
  108. package/build/cjs/cc/_CCValues.generated.js +2 -2
  109. package/build/cjs/cc/_CCValues.generated.js.map +1 -1
  110. package/build/cjs/cc/index.d.ts +3 -3
  111. package/build/cjs/cc/index.js.map +2 -2
  112. package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +1 -1
  113. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +2 -2
  114. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +3 -2
  115. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
  116. package/build/cjs/lib/API.js.map +2 -2
  117. package/build/cjs/lib/CommandClass.d.ts +5 -1
  118. package/build/cjs/lib/CommandClass.js +25 -3
  119. package/build/cjs/lib/CommandClass.js.map +2 -2
  120. package/build/cjs/lib/CommandClassDecorators.d.ts +4 -4
  121. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  122. package/build/cjs/lib/Security2/Extension.d.ts +6 -4
  123. package/build/cjs/lib/Security2/Extension.js +22 -20
  124. package/build/cjs/lib/Security2/Extension.js.map +2 -2
  125. package/build/cjs/lib/_Types.js.map +1 -1
  126. package/build/cjs/lib/utils.js +14 -8
  127. package/build/cjs/lib/utils.js.map +2 -2
  128. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  129. package/build/esm/cc/AlarmSensorCC.js +14 -18
  130. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  131. package/build/esm/cc/AssociationCC.d.ts +1 -1
  132. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  133. package/build/esm/cc/AssociationCC.js +3 -0
  134. package/build/esm/cc/AssociationCC.js.map +1 -1
  135. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  136. package/build/esm/cc/AssociationGroupInfoCC.js +24 -22
  137. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  138. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  139. package/build/esm/cc/BarrierOperatorCC.js +8 -8
  140. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  141. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  142. package/build/esm/cc/BasicCC.js +2 -1
  143. package/build/esm/cc/BasicCC.js.map +1 -1
  144. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  145. package/build/esm/cc/BatteryCC.js +2 -1
  146. package/build/esm/cc/BatteryCC.js.map +1 -1
  147. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  148. package/build/esm/cc/BinarySensorCC.js +7 -7
  149. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  150. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  151. package/build/esm/cc/BinarySwitchCC.js +2 -1
  152. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  153. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  154. package/build/esm/cc/CentralSceneCC.js +9 -8
  155. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  156. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  157. package/build/esm/cc/ClockCC.js +2 -1
  158. package/build/esm/cc/ClockCC.js.map +1 -1
  159. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  160. package/build/esm/cc/ColorSwitchCC.js +8 -7
  161. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  162. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  163. package/build/esm/cc/ConfigurationCC.js +32 -29
  164. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  165. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  166. package/build/esm/cc/DoorLockCC.js +73 -74
  167. package/build/esm/cc/DoorLockCC.js.map +1 -1
  168. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  169. package/build/esm/cc/DoorLockLoggingCC.js +2 -1
  170. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  171. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  172. package/build/esm/cc/EnergyProductionCC.js +2 -1
  173. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  174. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  175. package/build/esm/cc/EntryControlCC.js +3 -1
  176. package/build/esm/cc/EntryControlCC.js.map +1 -1
  177. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  178. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +1 -0
  179. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  180. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  181. package/build/esm/cc/HumidityControlModeCC.js +8 -9
  182. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  183. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  184. package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -1
  185. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  186. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  187. package/build/esm/cc/HumidityControlSetpointCC.js +18 -23
  188. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  189. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  190. package/build/esm/cc/IndicatorCC.js +3 -0
  191. package/build/esm/cc/IndicatorCC.js.map +1 -1
  192. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  193. package/build/esm/cc/IrrigationCC.js +29 -24
  194. package/build/esm/cc/IrrigationCC.js.map +1 -1
  195. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  196. package/build/esm/cc/LanguageCC.js +2 -1
  197. package/build/esm/cc/LanguageCC.js.map +1 -1
  198. package/build/esm/cc/LockCC.d.ts.map +1 -1
  199. package/build/esm/cc/LockCC.js +2 -1
  200. package/build/esm/cc/LockCC.js.map +1 -1
  201. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  202. package/build/esm/cc/ManufacturerSpecificCC.js +4 -1
  203. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  204. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  205. package/build/esm/cc/MeterCC.js +15 -19
  206. package/build/esm/cc/MeterCC.js.map +1 -1
  207. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  208. package/build/esm/cc/MultiChannelAssociationCC.js +3 -0
  209. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  210. package/build/esm/cc/MultiChannelCC.d.ts +1 -1
  211. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  212. package/build/esm/cc/MultiChannelCC.js +19 -23
  213. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  214. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  215. package/build/esm/cc/MultilevelSensorCC.js +14 -19
  216. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  217. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  218. package/build/esm/cc/MultilevelSwitchCC.js +3 -1
  219. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  220. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  221. package/build/esm/cc/NodeNamingCC.js +2 -1
  222. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  223. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  224. package/build/esm/cc/NotificationCC.js +11 -14
  225. package/build/esm/cc/NotificationCC.js.map +1 -1
  226. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  227. package/build/esm/cc/ProtectionCC.js +15 -22
  228. package/build/esm/cc/ProtectionCC.js.map +1 -1
  229. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  230. package/build/esm/cc/SceneControllerConfigurationCC.js +1 -0
  231. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  232. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  233. package/build/esm/cc/ScheduleEntryLockCC.js +1 -0
  234. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  235. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  236. package/build/esm/cc/Security2CC.js +15 -32
  237. package/build/esm/cc/Security2CC.js.map +1 -1
  238. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  239. package/build/esm/cc/SecurityCC.js +10 -21
  240. package/build/esm/cc/SecurityCC.js.map +1 -1
  241. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  242. package/build/esm/cc/SoundSwitchCC.js +1 -0
  243. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  244. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  245. package/build/esm/cc/ThermostatFanModeCC.js +8 -8
  246. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  247. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  248. package/build/esm/cc/ThermostatFanStateCC.js +2 -1
  249. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  250. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  251. package/build/esm/cc/ThermostatModeCC.js +8 -8
  252. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  253. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  254. package/build/esm/cc/ThermostatOperatingStateCC.js +4 -5
  255. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  256. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  257. package/build/esm/cc/ThermostatSetbackCC.js +2 -1
  258. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  259. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  260. package/build/esm/cc/ThermostatSetpointCC.js +8 -9
  261. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  262. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  263. package/build/esm/cc/TimeCC.js +1 -0
  264. package/build/esm/cc/TimeCC.js.map +1 -1
  265. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  266. package/build/esm/cc/TimeParametersCC.js +1 -0
  267. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  268. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  269. package/build/esm/cc/UserCodeCC.js +5 -7
  270. package/build/esm/cc/UserCodeCC.js.map +1 -1
  271. package/build/esm/cc/UserCredentialCC.d.ts.map +1 -1
  272. package/build/esm/cc/UserCredentialCC.js +4 -1
  273. package/build/esm/cc/UserCredentialCC.js.map +1 -1
  274. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  275. package/build/esm/cc/VersionCC.js +1 -0
  276. package/build/esm/cc/VersionCC.js.map +1 -1
  277. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  278. package/build/esm/cc/WakeUpCC.js +1 -0
  279. package/build/esm/cc/WakeUpCC.js.map +1 -1
  280. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  281. package/build/esm/cc/WindowCoveringCC.js +9 -9
  282. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  283. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  284. package/build/esm/cc/ZWavePlusCC.js +1 -0
  285. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  286. package/build/esm/cc/_CCValues.generated.d.ts +4 -4
  287. package/build/esm/cc/_CCValues.generated.js +2 -2
  288. package/build/esm/cc/_CCValues.generated.js.map +1 -1
  289. package/build/esm/cc/index.d.ts +3 -3
  290. package/build/esm/cc/index.d.ts.map +1 -1
  291. package/build/esm/cc/index.js.map +1 -1
  292. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +1 -1
  293. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
  294. package/build/esm/cc/manufacturerProprietary/Decorators.js.map +1 -1
  295. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  296. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +2 -1
  297. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  298. package/build/esm/lib/API.js.map +1 -1
  299. package/build/esm/lib/CommandClass.d.ts +5 -1
  300. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  301. package/build/esm/lib/CommandClass.js +30 -4
  302. package/build/esm/lib/CommandClass.js.map +1 -1
  303. package/build/esm/lib/CommandClassDecorators.d.ts +4 -4
  304. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  305. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  306. package/build/esm/lib/Security2/Extension.d.ts +6 -4
  307. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  308. package/build/esm/lib/Security2/Extension.js +23 -21
  309. package/build/esm/lib/Security2/Extension.js.map +1 -1
  310. package/build/esm/lib/_Types.js +1 -1
  311. package/build/esm/lib/utils.d.ts.map +1 -1
  312. package/build/esm/lib/utils.js +15 -9
  313. package/build/esm/lib/utils.js.map +1 -1
  314. package/package.json +7 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src_gen/cc/WindowCoveringCC.ts"],
4
- "sourcesContent": ["import * as __validateArgs from \"./WindowCoveringCC._validateArgs.js\";\nconst { validateArgs_WindowCoveringCCAPI_get, validateArgs_WindowCoveringCCAPI_set, validateArgs_WindowCoveringCCAPI_startLevelChange, validateArgs_WindowCoveringCCAPI_stopLevelChange } = __validateArgs;\nimport { CommandClasses, Duration, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, type SupervisionResult, ValueMetadata, type WithAddress, encodeBitMask, parseBitMask, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, isEnumMember, pick } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwMissingPropertyKey, throwUnsupportedProperty, throwUnsupportedPropertyKey, throwWrongValueType, } from \"../lib/API.js\";\nimport { windowCoveringParameterToLevelChangeLabel, windowCoveringParameterToMetadataStates, } from \"../lib/CCValueUtils.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { type LevelChangeDirection, WindowCoveringCommand, WindowCoveringParameter, } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { WindowCoveringCCValues } from \"./_CCValues.generated.js\";\nexport { WindowCoveringCCValues };\n@API(CommandClasses[\"Window Covering\"])\nexport class WindowCoveringCCAPI extends CCAPI {\n public supportsCommand(cmd: WindowCoveringCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case WindowCoveringCommand.Get:\n case WindowCoveringCommand.Set:\n case WindowCoveringCommand.SupportedGet:\n case WindowCoveringCommand.StartLevelChange:\n case WindowCoveringCommand.StopLevelChange:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: WindowCoveringCCAPI, { property, propertyKey }, value, options) {\n const valueId = {\n commandClass: this.ccId,\n property,\n propertyKey,\n };\n if (WindowCoveringCCValues.targetValue.is(valueId)) {\n if (typeof propertyKey !== \"number\"\n // Only odd-numbered parameters have position support and are writable\n || propertyKey % 2 === 0) {\n throwUnsupportedPropertyKey(this.ccId, property, propertyKey!);\n }\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n const parameter = propertyKey;\n const duration = Duration.from(options?.transitionDuration);\n return this.set([{ parameter, value }], duration);\n }\n else if (WindowCoveringCCValues.levelChangeUp.is(valueId)\n || WindowCoveringCCValues.levelChangeDown.is(valueId)) {\n if (typeof value !== \"boolean\") {\n throwWrongValueType(this.ccId, property, \"boolean\", typeof value);\n }\n const parameter = propertyKey as number;\n const direction = WindowCoveringCCValues.levelChangeUp.is(valueId)\n ? \"up\"\n : \"down\";\n if (value) {\n // Perform the level change\n const duration = Duration.from(options?.transitionDuration);\n return this.startLevelChange(parameter, direction, duration);\n }\n else {\n return this.stopLevelChange(parameter);\n }\n }\n else {\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property, propertyKey }, value, options) => {\n const valueId = {\n commandClass: this.ccId,\n property,\n propertyKey,\n };\n if (WindowCoveringCCValues.targetValue.is(valueId)) {\n if (typeof propertyKey !== \"number\")\n return;\n const parameter = propertyKey;\n const duration = Duration.from(options?.transitionDuration);\n const currentValueValueId = WindowCoveringCCValues.currentValue(parameter).endpoint(this.endpoint.index);\n return {\n // This is the target value for a split target/current state pair.\n isSplitStateTargetValue: true,\n // Window Covering commands may take some time to be executed.\n // Therefore we try to supervise the command execution and delay the\n // optimistic update until the final result is received.\n supervisionDelayedUpdates: true,\n supervisionOnSuccess: async () => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (value === 255) {\n // We don't know the status now, so refresh the current value\n try {\n await this.get(parameter);\n }\n catch {\n // ignore\n }\n }\n },\n supervisionOnFailure: async () => {\n // The transition failed, so now we don't know the status - refresh the current value\n try {\n await this.get(parameter);\n }\n catch {\n // ignore\n }\n },\n optimisticallyUpdateRelatedValues: (_supervisedAndSuccessful) => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node\n .physicalNodes.filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentValueValueId, value);\n }\n }\n }\n },\n verifyChanges: () => {\n if (this.isSinglecast()) {\n // We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n this.schedulePoll(currentValueValueId, value, {\n duration,\n });\n }\n else {\n // For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: WindowCoveringCCAPI, { property, propertyKey }) {\n switch (property) {\n case \"currentValue\":\n case \"targetValue\":\n case \"duration\":\n if (propertyKey == undefined) {\n throwMissingPropertyKey(this.ccId, property);\n }\n else if (typeof propertyKey !== \"number\") {\n throwUnsupportedPropertyKey(this.ccId, property, propertyKey);\n }\n return (await this.get(propertyKey))?.[property];\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n public async getSupported(): Promise<MaybeNotKnown<readonly WindowCoveringParameter[]>> {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.SupportedGet);\n const cc = new WindowCoveringCCSupportedGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<WindowCoveringCCSupportedReport>(cc, this.commandOptions);\n return response?.supportedParameters;\n }\n @validateArgs_WindowCoveringCCAPI_get()\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get(parameter: WindowCoveringParameter) {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.Get);\n const cc = new WindowCoveringCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n parameter,\n });\n const response = await this.host.sendCommand<WindowCoveringCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\"currentValue\", \"targetValue\", \"duration\"]);\n }\n }\n @validateArgs_WindowCoveringCCAPI_set()\n public async set(targetValues: {\n parameter: WindowCoveringParameter;\n value: number;\n }[], duration?: Duration | string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.StartLevelChange);\n const cc = new WindowCoveringCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetValues,\n duration,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n @validateArgs_WindowCoveringCCAPI_startLevelChange()\n public async startLevelChange(parameter: WindowCoveringParameter, direction: keyof typeof LevelChangeDirection, duration?: Duration | string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.StartLevelChange);\n const cc = new WindowCoveringCCStartLevelChange({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n parameter,\n direction,\n duration,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n @validateArgs_WindowCoveringCCAPI_stopLevelChange()\n public async stopLevelChange(parameter: WindowCoveringParameter): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.StopLevelChange);\n const cc = new WindowCoveringCCStopLevelChange({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n parameter,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n}\n@commandClass(CommandClasses[\"Window Covering\"])\n@implementedVersion(1)\n@ccValues(WindowCoveringCCValues)\nexport class WindowCoveringCC extends CommandClass {\n declare ccCommand: WindowCoveringCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Window Covering\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying supported window covering parameters...\",\n direction: \"outbound\",\n });\n const supported = await api.getSupported();\n if (supported?.length) {\n const logMessage = `supported window covering parameters:\n${supported\n .map((p) => `\u00B7 ${getEnumMemberName(WindowCoveringParameter, p)}`)\n .join(\"\\n\")}`;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n // Create metadata for all supported parameters\n for (const param of supported) {\n // Default values\n this.setMetadata(ctx, WindowCoveringCCValues.currentValue(param));\n this.setMetadata(ctx, WindowCoveringCCValues.targetValue(param));\n this.setMetadata(ctx, WindowCoveringCCValues.duration(param));\n // Level change values\n this.setMetadata(ctx, WindowCoveringCCValues.levelChangeUp(param));\n this.setMetadata(ctx, WindowCoveringCCValues.levelChangeDown(param));\n }\n // Query current values for all supported parameters\n await this.refreshValues(ctx, {\n onProgress: (completed, total) => node.reportInterviewProgress(completed, total),\n });\n }\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Window Covering\"], ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n const parameters: number[] = this.getValue(ctx, WindowCoveringCCValues.supportedParameters) ?? [];\n // Only odd parameters have position support and need to be queried\n const queryableParameters = parameters.filter((param) => param % 2 != 0);\n for (const [i, param] of queryableParameters.entries()) {\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `querying position for parameter ${getEnumMemberName(WindowCoveringParameter, param)}...`,\n direction: \"outbound\",\n });\n await api.get(param);\n options?.onProgress?.(i + 1, queryableParameters.length);\n }\n }\n public translatePropertyKey(ctx: GetValueDB, property: string | number, propertyKey: string | number): string | undefined {\n if (typeof propertyKey === \"number\") {\n return getEnumMemberName(WindowCoveringParameter, propertyKey);\n }\n return super.translatePropertyKey(ctx, property, propertyKey);\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCSupportedReportOptions {\n supportedParameters: readonly WindowCoveringParameter[];\n}\n@CCCommand(WindowCoveringCommand.SupportedReport)\n@ccValueProperty(\"supportedParameters\", WindowCoveringCCValues.supportedParameters)\nexport class WindowCoveringCCSupportedReport extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCSupportedReportOptions>) {\n super(options);\n this.supportedParameters = options.supportedParameters;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCSupportedReport {\n validatePayload(raw.payload.length >= 1);\n const numBitmaskBytes = raw.payload[0] & 0b1111;\n validatePayload(raw.payload.length >= 1 + numBitmaskBytes);\n const bitmask = raw.payload.subarray(1, 1 + numBitmaskBytes);\n const supportedParameters: WindowCoveringParameter[] = parseBitMask(bitmask, WindowCoveringParameter[\"Outbound Left (no position)\"]);\n return new this({\n nodeId: ctx.sourceNodeId,\n supportedParameters,\n });\n }\n public readonly supportedParameters: readonly WindowCoveringParameter[];\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n const bitmask = encodeBitMask(this.supportedParameters, undefined, WindowCoveringParameter[\"Outbound Left (no position)\"]).subarray(0, 15);\n const numBitmaskBytes = bitmask.length & 0b1111;\n this.payload = Bytes.concat([\n [numBitmaskBytes],\n bitmask.subarray(0, numBitmaskBytes),\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"supported parameters\": this.supportedParameters\n .map((p) => `\\n\u00B7 ${getEnumMemberName(WindowCoveringParameter, p)}`)\n .join(\"\"),\n },\n };\n }\n}\n@CCCommand(WindowCoveringCommand.SupportedGet)\n@expectedCCResponse(WindowCoveringCCSupportedReport)\nexport class WindowCoveringCCSupportedGet extends WindowCoveringCC {\n}\n// @publicAPI\nexport interface WindowCoveringCCReportOptions {\n parameter: WindowCoveringParameter;\n currentValue: number;\n targetValue: number;\n duration: Duration;\n}\n@CCCommand(WindowCoveringCommand.Report)\n@ccValueProperty(\"currentValue\", WindowCoveringCCValues.currentValue, (self) => [self.parameter])\n@ccValueProperty(\"targetValue\", WindowCoveringCCValues.targetValue, (self) => [self.parameter])\n@ccValueProperty(\"duration\", WindowCoveringCCValues.duration, (self) => [self.parameter])\nexport class WindowCoveringCCReport extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.parameter = options.parameter;\n this.currentValue = options.currentValue;\n this.targetValue = options.targetValue;\n this.duration = options.duration;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCReport {\n validatePayload(raw.payload.length >= 4);\n const parameter: WindowCoveringParameter = raw.payload[0];\n validatePayload(isEnumMember(WindowCoveringParameter, parameter));\n validatePayload(raw.payload[1] <= 99, raw.payload[2] <= 99);\n const currentValue = raw.payload[1];\n const targetValue = raw.payload[2];\n const duration = Duration.parseReport(raw.payload[3])\n ?? Duration.unknown();\n return new this({\n nodeId: ctx.sourceNodeId,\n parameter,\n currentValue,\n targetValue,\n duration,\n });\n }\n public readonly parameter: WindowCoveringParameter;\n public readonly currentValue: number;\n public readonly targetValue: number;\n public readonly duration: Duration;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.parameter,\n this.currentValue,\n this.targetValue,\n this.duration.serializeReport(),\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n parameter: getEnumMemberName(WindowCoveringParameter, this.parameter),\n \"current value\": this.currentValue,\n \"target value\": this.targetValue,\n duration: this.duration.toString(),\n },\n };\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCGetOptions {\n parameter: WindowCoveringParameter;\n}\nfunction testResponseForWindowCoveringGet(sent: WindowCoveringCCGet, received: WindowCoveringCCReport) {\n return received.parameter === sent.parameter;\n}\n@CCCommand(WindowCoveringCommand.Get)\n@expectedCCResponse(WindowCoveringCCReport, testResponseForWindowCoveringGet)\nexport class WindowCoveringCCGet extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCGetOptions>) {\n super(options);\n this.parameter = options.parameter;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCGet {\n validatePayload(raw.payload.length >= 1);\n const parameter: WindowCoveringParameter = raw.payload[0];\n return new this({\n nodeId: ctx.sourceNodeId,\n parameter,\n });\n }\n public parameter: WindowCoveringParameter;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.parameter]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n parameter: getEnumMemberName(WindowCoveringParameter, this.parameter),\n },\n };\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCSetOptions {\n targetValues: {\n parameter: WindowCoveringParameter;\n value: number;\n }[];\n duration?: Duration | string;\n}\n@CCCommand(WindowCoveringCommand.Set)\n@useSupervision()\nexport class WindowCoveringCCSet extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCSetOptions>) {\n super(options);\n this.targetValues = options.targetValues;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCSet {\n validatePayload(raw.payload.length >= 1);\n const numEntries = raw.payload[0] & 0b11111;\n validatePayload(raw.payload.length >= 1 + numEntries * 2);\n const targetValues: WindowCoveringCCSetOptions[\"targetValues\"] = [];\n for (let i = 0; i < numEntries; i++) {\n const offset = 1 + i * 2;\n targetValues.push({\n parameter: raw.payload[offset],\n value: raw.payload[offset + 1],\n });\n }\n let duration: Duration | undefined;\n if (raw.payload.length >= 2 + numEntries * 2) {\n duration = Duration.parseSet(raw.payload[1 + numEntries * 2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n targetValues,\n duration,\n });\n }\n public targetValues: {\n parameter: WindowCoveringParameter;\n value: number;\n }[];\n public duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n const numEntries = this.targetValues.length & 0b11111;\n this.payload = new Bytes(2 + numEntries * 2);\n this.payload[0] = numEntries;\n for (let i = 0; i < numEntries; i++) {\n const offset = 1 + i * 2;\n this.payload[offset] = this.targetValues[i].parameter;\n this.payload[offset + 1] = this.targetValues[i].value;\n }\n this.payload[this.payload.length - 1] = (this.duration ?? Duration.default()).serializeSet();\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {};\n for (const { parameter, value } of this.targetValues) {\n message[getEnumMemberName(WindowCoveringParameter, parameter)] =\n value;\n }\n if (this.duration) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCStartLevelChangeOptions {\n parameter: WindowCoveringParameter;\n direction: keyof typeof LevelChangeDirection;\n duration?: Duration | string;\n}\n@CCCommand(WindowCoveringCommand.StartLevelChange)\n@useSupervision()\nexport class WindowCoveringCCStartLevelChange extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCStartLevelChangeOptions>) {\n super(options);\n this.parameter = options.parameter;\n this.direction = options.direction;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCStartLevelChange {\n validatePayload(raw.payload.length >= 2);\n const direction = !!(raw.payload[0] & 64)\n ? \"down\"\n : \"up\";\n const parameter: WindowCoveringParameter = raw.payload[1];\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n duration = Duration.parseSet(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n direction,\n parameter,\n duration,\n });\n }\n public parameter: WindowCoveringParameter;\n public direction: keyof typeof LevelChangeDirection;\n public duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.direction === \"down\" ? 64 : 0,\n this.parameter,\n (this.duration ?? Duration.default()).serializeSet(),\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n parameter: getEnumMemberName(WindowCoveringParameter, this.parameter),\n direction: this.direction,\n };\n if (this.duration) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCStopLevelChangeOptions {\n parameter: WindowCoveringParameter;\n}\n@CCCommand(WindowCoveringCommand.StopLevelChange)\n@useSupervision()\nexport class WindowCoveringCCStopLevelChange extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCStopLevelChangeOptions>) {\n super(options);\n this.parameter = options.parameter;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCStopLevelChange {\n validatePayload(raw.payload.length >= 1);\n const parameter: WindowCoveringParameter = raw.payload[0];\n return new this({\n nodeId: ctx.sourceNodeId,\n parameter,\n });\n }\n public parameter: WindowCoveringParameter;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.parameter]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n parameter: getEnumMemberName(WindowCoveringParameter, this.parameter),\n },\n };\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qBAAgC;AAEhC,kBAAqP;AACrP,oBAA6D;AAC7D,iBAAwQ;AAExQ,0BAAuH;AACvH,oCAAiI;AAEjI,mBAA2F;AAE3F,gCAAuC;AAVvC,MAAM,EAAE,sCAAsC,sCAAsC,mDAAmD,iDAAgD,IAAK;IAa/K,uBAAmB,MAAA;8BAD/B,mCAAI,2BAAe,iBAAiB,CAAC,CAAC;;;;oBACE;;;;;;2CAAA,YAAK;WAAA;;;;;;;;yBAoKzC,qCAAoC,CAAE;yBActC,qCAAoC,CAAE;sCActC,kDAAiD,CAAE;qCAYnD,iDAAgD,CAAE;AAtCnD,qCAAA,MAAA,MAAA,iBAAA,EAAA,MAAA,UAAA,MAAA,OAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,SAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,KAAb,OAAgB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAahB,qCAAA,MAAA,MAAA,iBAAA,EAAA,MAAA,UAAA,MAAA,OAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,SAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,KAAb,OAAgB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAchB,qCAAA,MAAA,MAAA,8BAAA,EAAA,MAAA,UAAA,MAAA,oBAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,sBAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,kBAAb,OAA6B,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAY7B,qCAAA,MAAA,MAAA,6BAAA,EAAA,MAAA,UAAA,MAAA,mBAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,qBAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,iBAAb,OAA4B,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AA7MhC,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACF,gBAAgB,KAA0B;AAC7C,cAAQ,KAAK;QACT,KAAK,mCAAsB;QAC3B,KAAK,mCAAsB;QAC3B,KAAK,mCAAsB;QAC3B,KAAK,mCAAsB;QAC3B,KAAK,mCAAsB;AACvB,iBAAO;MACf;AACA,aAAO,MAAM,gBAAgB,GAAG;IACpC;IACA,KAAwB,oBAAS,IAAC;AAC9B,aAAO,eAA2C,EAAE,UAAU,YAAW,GAAI,OAAO,SAAO;AACvF,cAAM,UAAU;UACZ,cAAc,KAAK;UACnB;UACA;;AAEJ,YAAI,iDAAuB,YAAY,GAAG,OAAO,GAAG;AAChD,cAAI,OAAO,gBAAgB,YAEpB,cAAc,MAAM,GAAG;AAC1B,wDAA4B,KAAK,MAAM,UAAU,WAAY;UACjE;AACA,cAAI,OAAO,UAAU,UAAU;AAC3B,gDAAoB,KAAK,MAAM,UAAU,UAAU,OAAO,KAAK;UACnE;AACA,gBAAM,YAAY;AAClB,gBAAM,WAAW,qBAAS,KAAK,SAAS,kBAAkB;AAC1D,iBAAO,KAAK,IAAI,CAAC,EAAE,WAAW,MAAK,CAAE,GAAG,QAAQ;QACpD,WACS,iDAAuB,cAAc,GAAG,OAAO,KACjD,iDAAuB,gBAAgB,GAAG,OAAO,GAAG;AACvD,cAAI,OAAO,UAAU,WAAW;AAC5B,gDAAoB,KAAK,MAAM,UAAU,WAAW,OAAO,KAAK;UACpE;AACA,gBAAM,YAAY;AAClB,gBAAM,YAAY,iDAAuB,cAAc,GAAG,OAAO,IAC3D,OACA;AACN,cAAI,OAAO;AAEP,kBAAM,WAAW,qBAAS,KAAK,SAAS,kBAAkB;AAC1D,mBAAO,KAAK,iBAAiB,WAAW,WAAW,QAAQ;UAC/D,OACK;AACD,mBAAO,KAAK,gBAAgB,SAAS;UACzC;QACJ,OACK;AACD,mDAAyB,KAAK,MAAM,QAAQ;QAChD;MACJ;IACJ;IACU,CAAC,0BAAe,SAvDjB,gCAAA,MAAA,0BAAA,GAuDyD,CAAC,EAAE,UAAU,YAAW,GAAI,OAAO,YAAW;AAC5G,YAAM,UAAU;QACZ,cAAc,KAAK;QACnB;QACA;;AAEJ,UAAI,iDAAuB,YAAY,GAAG,OAAO,GAAG;AAChD,YAAI,OAAO,gBAAgB;AACvB;AACJ,cAAM,YAAY;AAClB,cAAM,WAAW,qBAAS,KAAK,SAAS,kBAAkB;AAC1D,cAAM,sBAAsB,iDAAuB,aAAa,SAAS,EAAE,SAAS,KAAK,SAAS,KAAK;AACvG,eAAO;;UAEH,yBAAyB;;;;UAIzB,2BAA2B;UAC3B,sBAAsB,mCAAW;AAE7B,gBAAI,OAAO,UAAU,YACd,SAAS,KACT,SAAS,IAAI;AAChB,mBAAK,cAAa,GAAI,SAAS,qBAAqB,KAAK;YAC7D,WACS,UAAU,KAAK;AAEpB,kBAAI;AACA,sBAAM,KAAK,IAAI,SAAS;cAC5B,QACM;cAEN;YACJ;UACJ,GAhBsB;UAiBtB,sBAAsB,mCAAW;AAE7B,gBAAI;AACA,oBAAM,KAAK,IAAI,SAAS;YAC5B,QACM;YAEN;UACJ,GARsB;UAStB,mCAAmC,wBAAC,6BAA4B;AAE5D,gBAAI,OAAO,UAAU,YACd,SAAS,KACT,SAAS,IAAI;AAChB,kBAAI,KAAK,aAAY,GAAI;AACrB,qBAAK,cAAa,GAAI,SAAS,qBAAqB,KAAK;cAC7D,WACS,KAAK,YAAW,GAAI;AAEzB,sBAAM,gBAAgB,KAAK,SAAS,KAC/B,cAAc,OAAO,CAAC,SAAS,KAC/B,YAAY,KAAK,SAAS,KAAK,GAC9B,WAAW,KAAK,IAAI,CAAC;AAE3B,2BAAW,QAAQ,eAAe;AAC9B,uBAAK,KACA,cAAc,KAAK,EAAE,GACpB,SAAS,qBAAqB,KAAK;gBAC7C;cACJ;YACJ;UACJ,GAtBmC;UAuBnC,eAAe,6BAAK;AAChB,gBAAI,KAAK,aAAY,GAAI;AAErB,mBAAK,aAAa,qBAAqB,OAAO;gBAC1C;eACH;YACL,OACK;YAEL;UACJ,GAVe;;MAYvB;IACJ;IACA,KAAe,qBAAU,IAAC;AACtB,aAAO,eAA2C,EAAE,UAAU,YAAW,GAAE;AACvE,gBAAQ,UAAU;UACd,KAAK;UACL,KAAK;UACL,KAAK;AACD,gBAAI,eAAe,QAAW;AAC1B,sDAAwB,KAAK,MAAM,QAAQ;YAC/C,WACS,OAAO,gBAAgB,UAAU;AACtC,0DAA4B,KAAK,MAAM,UAAU,WAAW;YAChE;AACA,oBAAQ,MAAM,KAAK,IAAI,WAAW,KAAK,QAAQ;UACnD;AACI,qDAAyB,KAAK,MAAM,QAAQ;QACpD;MACJ;IACJ;IACO,MAAM,eAAY;AACrB,WAAK,sBAAsB,oCAAuB,mCAAsB,YAAY;AACpF,YAAM,KAAK,IAAI,6BAA6B;QACxC,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAChC;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAA6C,IAAI,KAAK,cAAc;AACrG,aAAO,UAAU;IACrB;IAGO,MAAM,IAAI,WAAkC;AAC/C,WAAK,sBAAsB,oCAAuB,mCAAsB,GAAG;AAC3E,YAAM,KAAK,IAAI,oBAAoB;QAC/B,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;OACH;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAAoC,IAAI,KAAK,cAAc;AAC5F,UAAI,UAAU;AACV,mBAAO,oBAAK,UAAU,CAAC,gBAAgB,eAAe,UAAU,CAAC;MACrE;IACJ;IAEO,MAAM,IAAI,cAGZ,UAA4B;AAC7B,WAAK,sBAAsB,oCAAuB,mCAAsB,gBAAgB;AACxF,YAAM,KAAK,IAAI,oBAAoB;QAC/B,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;QACA;OACH;AACD,aAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACxD;IAEO,MAAM,iBAAiB,WAAoC,WAA8C,UAA4B;AACxI,WAAK,sBAAsB,oCAAuB,mCAAsB,gBAAgB;AACxF,YAAM,KAAK,IAAI,iCAAiC;QAC5C,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;QACA;QACA;OACH;AACD,aAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACxD;IAEO,MAAM,gBAAgB,WAAkC;AAC3D,WAAK,sBAAsB,oCAAuB,mCAAsB,eAAe;AACvF,YAAM,KAAK,IAAI,gCAAgC;QAC3C,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;OACH;AACD,aAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACxD;;;;IAKS,oBAAgB,MAAA;8BAH5B,4CAAa,2BAAe,iBAAiB,CAAC,OAC9C,kDAAmB,CAAC,OACpB,wCAAS,gDAAsB,CAAC;;;;oBACK;wCAAA,YAAY;WAAA;;;;;;;;AAAlD,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IAEF,MAAM,UAAU,KAAqB;AACxC,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AACrC,YAAM,MAAM,iBAAM,OAAO,2BAAe,iBAAiB,GAAG,KAAK,QAAQ,EAAE,YAAY;QACnF,UAAU,4BAAgB;OAC7B;AACD,UAAI,QAAQ,KAAK,IAAI;QACjB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACd;AACD,UAAI,QAAQ,KAAK,IAAI;QACjB,UAAU,KAAK;QACf,SAAS;QACT,WAAW;OACd;AACD,YAAM,YAAY,MAAM,IAAI,aAAY;AACxC,UAAI,WAAW,QAAQ;AACnB,cAAM,aAAa;EAC7B,UACe,IAAI,CAAC,MAAM,YAAK,iCAAkB,sCAAyB,CAAC,CAAC,EAAE,EAC/D,KAAK,IAAI,CAAC;AACf,YAAI,QAAQ,KAAK,IAAI;UACjB,UAAU,KAAK;UACf,SAAS;UACT,WAAW;SACd;AAED,mBAAW,SAAS,WAAW;AAE3B,eAAK,YAAY,KAAK,iDAAuB,aAAa,KAAK,CAAC;AAChE,eAAK,YAAY,KAAK,iDAAuB,YAAY,KAAK,CAAC;AAC/D,eAAK,YAAY,KAAK,iDAAuB,SAAS,KAAK,CAAC;AAE5D,eAAK,YAAY,KAAK,iDAAuB,cAAc,KAAK,CAAC;AACjE,eAAK,YAAY,KAAK,iDAAuB,gBAAgB,KAAK,CAAC;QACvE;AAEA,cAAM,KAAK,cAAc,KAAK;UAC1B,YAAY,wBAAC,WAAW,UAAU,KAAK,wBAAwB,WAAW,KAAK,GAAnE;SACf;MACL;AAEA,WAAK,qBAAqB,KAAK,IAAI;IACvC;IACO,MAAM,cAAc,KAA2B,SAA8B;AAChF,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AACrC,YAAM,MAAM,iBAAM,OAAO,2BAAe,iBAAiB,GAAG,KAAK,QAAQ,EAAE,YAAY;QACnF,UAAU,SAAS,YAAY,4BAAgB;OAClD;AACD,YAAM,aAAuB,KAAK,SAAS,KAAK,iDAAuB,mBAAmB,KAAK,CAAA;AAE/F,YAAM,sBAAsB,WAAW,OAAO,CAAC,UAAU,QAAQ,KAAK,CAAC;AACvE,iBAAW,CAAC,GAAG,KAAK,KAAK,oBAAoB,QAAO,GAAI;AACpD,YAAI,QAAQ,KAAK,IAAI;UACjB,UAAU,KAAK;UACf,SAAS,uCAAmC,iCAAkB,sCAAyB,KAAK,CAAC;UAC7F,WAAW;SACd;AACD,cAAM,IAAI,IAAI,KAAK;AACnB,iBAAS,aAAa,IAAI,GAAG,oBAAoB,MAAM;MAC3D;IACJ;IACO,qBAAqB,KAAiB,UAA2B,aAA4B;AAChG,UAAI,OAAO,gBAAgB,UAAU;AACjC,mBAAO,iCAAkB,sCAAyB,WAAW;MACjE;AACA,aAAO,MAAM,qBAAqB,KAAK,UAAU,WAAW;IAChE;;;;IAQS,mCAA+B,MAAA;8BAF3C,yCAAU,mCAAsB,eAAe,OAC/C,+CAAgB,uBAAuB,iDAAuB,mBAAmB,CAAC;;;;oBAC9B;uDAAA,YAAgB;WAAA;;;;;;;;AAArE,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACT,YAAmB,SAA4D;AAC3E,YAAM,OAAO;AACb,WAAK,sBAAsB,QAAQ;IACvC;IACO,OAAO,KAAK,KAAY,KAAqB;AAChD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,kBAAkB,IAAI,QAAQ,CAAC,IAAI;AACzC,uCAAgB,IAAI,QAAQ,UAAU,IAAI,eAAe;AACzD,YAAM,UAAU,IAAI,QAAQ,SAAS,GAAG,IAAI,eAAe;AAC3D,YAAM,0BAAiD,0BAAa,SAAS,qCAAwB,6BAA6B,CAAC;AACnI,aAAO,IAAI,KAAK;QACZ,QAAQ,IAAI;QACZ;OACH;IACL;IACgB;IACT,UAAU,KAAsB;AACnC,YAAM,cAAU,2BAAc,KAAK,qBAAqB,QAAW,qCAAwB,6BAA6B,CAAC,EAAE,SAAS,GAAG,EAAE;AACzI,YAAM,kBAAkB,QAAQ,SAAS;AACzC,WAAK,UAAU,oBAAM,OAAO;QACxB,CAAC,eAAe;QAChB,QAAQ,SAAS,GAAG,eAAe;OACtC;AACD,aAAO,MAAM,UAAU,GAAG;IAC9B;IACO,WAAW,KAAgB;AAC9B,aAAO;QACH,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACL,wBAAwB,KAAK,oBACxB,IAAI,CAAC,MAAM;WAAO,iCAAkB,sCAAyB,CAAC,CAAC,EAAE,EACjE,KAAK,EAAE;;;IAGxB;;;;IAIS,gCAA4B,MAAA;8BAFxC,yCAAU,mCAAsB,YAAY,OAC5C,kDAAmB,+BAA+B,CAAC;;;;oBACF;oDAAA,YAAgB;WAAA;;;;;;;;AAAlE,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;;;;IAaA,0BAAsB,MAAA;8BAJlC,yCAAU,mCAAsB,MAAM,OACtC,+CAAgB,gBAAgB,iDAAuB,cAAc,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,OAC/F,+CAAgB,eAAe,iDAAuB,aAAa,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,OAC7F,+CAAgB,YAAY,iDAAuB,UAAU,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC;;;;oBAC7C;8CAAA,YAAgB;WAAA;;;;;;;;AAA5D,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACT,YAAmB,SAAmD;AAClE,YAAM,OAAO;AAEb,WAAK,YAAY,QAAQ;AACzB,WAAK,eAAe,QAAQ;AAC5B,WAAK,cAAc,QAAQ;AAC3B,WAAK,WAAW,QAAQ;IAC5B;IACO,OAAO,KAAK,KAAY,KAAqB;AAChD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAqC,IAAI,QAAQ,CAAC;AACxD,2CAAgB,4BAAa,sCAAyB,SAAS,CAAC;AAChE,uCAAgB,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AAC1D,YAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,YAAM,cAAc,IAAI,QAAQ,CAAC;AACjC,YAAM,WAAW,qBAAS,YAAY,IAAI,QAAQ,CAAC,CAAC,KAC7C,qBAAS,QAAO;AACvB,aAAO,IAAI,KAAK;QACZ,QAAQ,IAAI;QACZ;QACA;QACA;QACA;OACH;IACL;IACgB;IACA;IACA;IACA;IACT,UAAU,KAAsB;AACnC,WAAK,UAAU,oBAAM,KAAK;QACtB,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK,SAAS,gBAAe;OAChC;AACD,aAAO,MAAM,UAAU,GAAG;IAC9B;IACO,WAAW,KAAgB;AAC9B,aAAO;QACH,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACL,eAAW,iCAAkB,sCAAyB,KAAK,SAAS;UACpE,iBAAiB,KAAK;UACtB,gBAAgB,KAAK;UACrB,UAAU,KAAK,SAAS,SAAQ;;;IAG5C;;;;AAMJ,SAAS,iCAAiC,MAA2B,UAAgC;AACjG,SAAO,SAAS,cAAc,KAAK;AACvC;AAFS;IAKI,uBAAmB,MAAA;8BAF/B,yCAAU,mCAAsB,GAAG,OACnC,kDAAmB,wBAAwB,gCAAgC,CAAC;;;;oBACpC;2CAAA,YAAgB;WAAA;;;;;;;;AAAzD,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACT,YAAmB,SAAgD;AAC/D,YAAM,OAAO;AACb,WAAK,YAAY,QAAQ;IAC7B;IACO,OAAO,KAAK,KAAY,KAAqB;AAChD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAqC,IAAI,QAAQ,CAAC;AACxD,aAAO,IAAI,KAAK;QACZ,QAAQ,IAAI;QACZ;OACH;IACL;IACO;IACA,UAAU,KAAsB;AACnC,WAAK,UAAU,oBAAM,KAAK,CAAC,KAAK,SAAS,CAAC;AAC1C,aAAO,MAAM,UAAU,GAAG;IAC9B;IACO,WAAW,KAAgB;AAC9B,aAAO;QACH,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACL,eAAW,iCAAkB,sCAAyB,KAAK,SAAS;;;IAGhF;;;;IAYS,uBAAmB,MAAA;8BAF/B,yCAAU,mCAAsB,GAAG,OACnC,8CAAc,CAAE;;;;oBACwB;2CAAA,YAAgB;WAAA;;;;;;;;AAAzD,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACT,YAAmB,SAAgD;AAC/D,YAAM,OAAO;AACb,WAAK,eAAe,QAAQ;AAC5B,WAAK,WAAW,qBAAS,KAAK,QAAQ,QAAQ;IAClD;IACO,OAAO,KAAK,KAAY,KAAqB;AAChD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,aAAa,IAAI,QAAQ,CAAC,IAAI;AACpC,uCAAgB,IAAI,QAAQ,UAAU,IAAI,aAAa,CAAC;AACxD,YAAM,eAA2D,CAAA;AACjE,eAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACjC,cAAM,SAAS,IAAI,IAAI;AACvB,qBAAa,KAAK;UACd,WAAW,IAAI,QAAQ,MAAM;UAC7B,OAAO,IAAI,QAAQ,SAAS,CAAC;SAChC;MACL;AACA,UAAI;AACJ,UAAI,IAAI,QAAQ,UAAU,IAAI,aAAa,GAAG;AAC1C,mBAAW,qBAAS,SAAS,IAAI,QAAQ,IAAI,aAAa,CAAC,CAAC;MAChE;AACA,aAAO,IAAI,KAAK;QACZ,QAAQ,IAAI;QACZ;QACA;OACH;IACL;IACO;IAIA;IACA,UAAU,KAAsB;AACnC,YAAM,aAAa,KAAK,aAAa,SAAS;AAC9C,WAAK,UAAU,IAAI,oBAAM,IAAI,aAAa,CAAC;AAC3C,WAAK,QAAQ,CAAC,IAAI;AAClB,eAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACjC,cAAM,SAAS,IAAI,IAAI;AACvB,aAAK,QAAQ,MAAM,IAAI,KAAK,aAAa,CAAC,EAAE;AAC5C,aAAK,QAAQ,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE;MACpD;AACA,WAAK,QAAQ,KAAK,QAAQ,SAAS,CAAC,KAAK,KAAK,YAAY,qBAAS,QAAO,GAAI,aAAY;AAC1F,aAAO,MAAM,UAAU,GAAG;IAC9B;IACO,WAAW,KAAgB;AAC9B,YAAM,UAAyB,CAAA;AAC/B,iBAAW,EAAE,WAAW,MAAK,KAAM,KAAK,cAAc;AAClD,oBAAQ,iCAAkB,sCAAyB,SAAS,CAAC,IACzD;MACR;AACA,UAAI,KAAK,UAAU;AACf,gBAAQ,WAAW,KAAK,SAAS,SAAQ;MAC7C;AACA,aAAO;QACH,GAAG,MAAM,WAAW,GAAG;QACvB;;IAER;;;;IAUS,oCAAgC,MAAA;8BAF5C,yCAAU,mCAAsB,gBAAgB,OAChD,8CAAc,CAAE;;;;oBACqC;wDAAA,YAAgB;WAAA;;;;;;;;AAAtE,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACT,YAAmB,SAA6D;AAC5E,YAAM,OAAO;AACb,WAAK,YAAY,QAAQ;AACzB,WAAK,YAAY,QAAQ;AACzB,WAAK,WAAW,qBAAS,KAAK,QAAQ,QAAQ;IAClD;IACO,OAAO,KAAK,KAAY,KAAqB;AAChD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAY,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,MAChC,SACA;AACN,YAAM,YAAqC,IAAI,QAAQ,CAAC;AACxD,UAAI;AACJ,UAAI,IAAI,QAAQ,UAAU,GAAG;AACzB,mBAAW,qBAAS,SAAS,IAAI,QAAQ,CAAC,CAAC;MAC/C;AACA,aAAO,IAAI,KAAK;QACZ,QAAQ,IAAI;QACZ;QACA;QACA;OACH;IACL;IACO;IACA;IACA;IACA,UAAU,KAAsB;AACnC,WAAK,UAAU,oBAAM,KAAK;QACtB,KAAK,cAAc,SAAS,KAAK;QACjC,KAAK;SACJ,KAAK,YAAY,qBAAS,QAAO,GAAI,aAAY;OACrD;AACD,aAAO,MAAM,UAAU,GAAG;IAC9B;IACO,WAAW,KAAgB;AAC9B,YAAM,UAAyB;QAC3B,eAAW,iCAAkB,sCAAyB,KAAK,SAAS;QACpE,WAAW,KAAK;;AAEpB,UAAI,KAAK,UAAU;AACf,gBAAQ,WAAW,KAAK,SAAS,SAAQ;MAC7C;AACA,aAAO;QACH,GAAG,MAAM,WAAW,GAAG;QACvB;;IAER;;;;IAQS,mCAA+B,MAAA;8BAF3C,yCAAU,mCAAsB,eAAe,OAC/C,8CAAc,CAAE;;;;oBACoC;uDAAA,YAAgB;WAAA;;;;;;;;AAArE,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACT,YAAmB,SAA4D;AAC3E,YAAM,OAAO;AACb,WAAK,YAAY,QAAQ;IAC7B;IACO,OAAO,KAAK,KAAY,KAAqB;AAChD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAqC,IAAI,QAAQ,CAAC;AACxD,aAAO,IAAI,KAAK;QACZ,QAAQ,IAAI;QACZ;OACH;IACL;IACO;IACA,UAAU,KAAsB;AACnC,WAAK,UAAU,oBAAM,KAAK,CAAC,KAAK,SAAS,CAAC;AAC1C,aAAO,MAAM,UAAU,GAAG;IAC9B;IACO,WAAW,KAAgB;AAC9B,aAAO;QACH,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACL,eAAW,iCAAkB,sCAAyB,KAAK,SAAS;;;IAGhF;;;;",
4
+ "sourcesContent": ["import * as __validateArgs from \"./WindowCoveringCC._validateArgs.js\";\nconst { validateArgs_WindowCoveringCCAPI_get, validateArgs_WindowCoveringCCAPI_set, validateArgs_WindowCoveringCCAPI_startLevelChange, validateArgs_WindowCoveringCCAPI_stopLevelChange } = __validateArgs;\nimport { CommandClasses, Duration, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, type SupervisionResult, ValueMetadata, type WithAddress, encodeBitMask, logList, logText, parseBitMask, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, isEnumMember, pick } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwMissingPropertyKey, throwUnsupportedProperty, throwUnsupportedPropertyKey, throwWrongValueType, } from \"../lib/API.js\";\nimport { windowCoveringParameterToLevelChangeLabel, windowCoveringParameterToMetadataStates, } from \"../lib/CCValueUtils.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { type LevelChangeDirection, WindowCoveringCommand, WindowCoveringParameter, } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { WindowCoveringCCValues } from \"./_CCValues.generated.js\";\nexport { WindowCoveringCCValues };\n@API(CommandClasses[\"Window Covering\"])\nexport class WindowCoveringCCAPI extends CCAPI {\n public supportsCommand(cmd: WindowCoveringCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case WindowCoveringCommand.Get:\n case WindowCoveringCommand.Set:\n case WindowCoveringCommand.SupportedGet:\n case WindowCoveringCommand.StartLevelChange:\n case WindowCoveringCommand.StopLevelChange:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: WindowCoveringCCAPI, { property, propertyKey }, value, options) {\n const valueId = {\n commandClass: this.ccId,\n property,\n propertyKey,\n };\n if (WindowCoveringCCValues.targetValue.is(valueId)) {\n if (typeof propertyKey !== \"number\"\n // Only odd-numbered parameters have position support and are writable\n || propertyKey % 2 === 0) {\n throwUnsupportedPropertyKey(this.ccId, property, propertyKey!);\n }\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n const parameter = propertyKey;\n const duration = Duration.from(options?.transitionDuration);\n return this.set([{ parameter, value }], duration);\n }\n else if (WindowCoveringCCValues.levelChangeUp.is(valueId)\n || WindowCoveringCCValues.levelChangeDown.is(valueId)) {\n if (typeof value !== \"boolean\") {\n throwWrongValueType(this.ccId, property, \"boolean\", typeof value);\n }\n const parameter = propertyKey as number;\n const direction = WindowCoveringCCValues.levelChangeUp.is(valueId)\n ? \"up\"\n : \"down\";\n if (value) {\n // Perform the level change\n const duration = Duration.from(options?.transitionDuration);\n return this.startLevelChange(parameter, direction, duration);\n }\n else {\n return this.stopLevelChange(parameter);\n }\n }\n else {\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property, propertyKey }, value, options) => {\n const valueId = {\n commandClass: this.ccId,\n property,\n propertyKey,\n };\n if (WindowCoveringCCValues.targetValue.is(valueId)) {\n if (typeof propertyKey !== \"number\")\n return;\n const parameter = propertyKey;\n const duration = Duration.from(options?.transitionDuration);\n const currentValueValueId = WindowCoveringCCValues.currentValue(parameter).endpoint(this.endpoint.index);\n return {\n // This is the target value for a split target/current state pair.\n isSplitStateTargetValue: true,\n // Window Covering commands may take some time to be executed.\n // Therefore we try to supervise the command execution and delay the\n // optimistic update until the final result is received.\n supervisionDelayedUpdates: true,\n supervisionOnSuccess: async () => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (value === 255) {\n // We don't know the status now, so refresh the current value\n try {\n await this.get(parameter);\n }\n catch {\n // ignore\n }\n }\n },\n supervisionOnFailure: async () => {\n // The transition failed, so now we don't know the status - refresh the current value\n try {\n await this.get(parameter);\n }\n catch {\n // ignore\n }\n },\n optimisticallyUpdateRelatedValues: (_supervisedAndSuccessful) => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node\n .physicalNodes.filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentValueValueId, value);\n }\n }\n }\n },\n verifyChanges: () => {\n if (this.isSinglecast()) {\n // We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n this.schedulePoll(currentValueValueId, value, {\n duration,\n });\n }\n else {\n // For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: WindowCoveringCCAPI, { property, propertyKey }) {\n switch (property) {\n case \"currentValue\":\n case \"targetValue\":\n case \"duration\":\n if (propertyKey == undefined) {\n throwMissingPropertyKey(this.ccId, property);\n }\n else if (typeof propertyKey !== \"number\") {\n throwUnsupportedPropertyKey(this.ccId, property, propertyKey);\n }\n return (await this.get(propertyKey))?.[property];\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n public async getSupported(): Promise<MaybeNotKnown<readonly WindowCoveringParameter[]>> {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.SupportedGet);\n const cc = new WindowCoveringCCSupportedGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<WindowCoveringCCSupportedReport>(cc, this.commandOptions);\n return response?.supportedParameters;\n }\n @validateArgs_WindowCoveringCCAPI_get()\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get(parameter: WindowCoveringParameter) {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.Get);\n const cc = new WindowCoveringCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n parameter,\n });\n const response = await this.host.sendCommand<WindowCoveringCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\"currentValue\", \"targetValue\", \"duration\"]);\n }\n }\n @validateArgs_WindowCoveringCCAPI_set()\n public async set(targetValues: {\n parameter: WindowCoveringParameter;\n value: number;\n }[], duration?: Duration | string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.Set);\n const cc = new WindowCoveringCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetValues,\n duration,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n @validateArgs_WindowCoveringCCAPI_startLevelChange()\n public async startLevelChange(parameter: WindowCoveringParameter, direction: keyof typeof LevelChangeDirection, duration?: Duration | string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.StartLevelChange);\n const cc = new WindowCoveringCCStartLevelChange({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n parameter,\n direction,\n duration,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n @validateArgs_WindowCoveringCCAPI_stopLevelChange()\n public async stopLevelChange(parameter: WindowCoveringParameter): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(WindowCoveringCommand, WindowCoveringCommand.StopLevelChange);\n const cc = new WindowCoveringCCStopLevelChange({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n parameter,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n}\n@commandClass(CommandClasses[\"Window Covering\"])\n@implementedVersion(1)\n@ccValues(WindowCoveringCCValues)\nexport class WindowCoveringCC extends CommandClass {\n declare ccCommand: WindowCoveringCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Window Covering\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n tag: \"interview\",\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying supported window covering parameters...\",\n direction: \"outbound\",\n });\n const supported = await api.getSupported();\n if (supported?.length) {\n const logMessage = logText(\"supported window covering parameters:\", {\n nested: logList(supported.map((p) => getEnumMemberName(WindowCoveringParameter, p))),\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n // Create metadata for all supported parameters\n for (const param of supported) {\n // Default values\n this.setMetadata(ctx, WindowCoveringCCValues.currentValue(param));\n this.setMetadata(ctx, WindowCoveringCCValues.targetValue(param));\n this.setMetadata(ctx, WindowCoveringCCValues.duration(param));\n // Level change values\n this.setMetadata(ctx, WindowCoveringCCValues.levelChangeUp(param));\n this.setMetadata(ctx, WindowCoveringCCValues.levelChangeDown(param));\n }\n // Query current values for all supported parameters\n await this.refreshValues(ctx, {\n tag: \"interview\",\n onProgress: (completed, total) => node.reportInterviewProgress(completed, total),\n });\n }\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Window Covering\"], ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n tag: options?.tag,\n });\n const parameters: number[] = this.getValue(ctx, WindowCoveringCCValues.supportedParameters) ?? [];\n // Only odd parameters have position support and need to be queried\n const queryableParameters = parameters.filter((param) => param % 2 != 0);\n for (const [i, param] of queryableParameters.entries()) {\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `querying position for parameter ${getEnumMemberName(WindowCoveringParameter, param)}...`,\n direction: \"outbound\",\n });\n await api.get(param);\n options?.onProgress?.(i + 1, queryableParameters.length);\n }\n }\n public translatePropertyKey(ctx: GetValueDB, property: string | number, propertyKey: string | number): string | undefined {\n if (typeof propertyKey === \"number\") {\n return getEnumMemberName(WindowCoveringParameter, propertyKey);\n }\n return super.translatePropertyKey(ctx, property, propertyKey);\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCSupportedReportOptions {\n supportedParameters: readonly WindowCoveringParameter[];\n}\n@CCCommand(WindowCoveringCommand.SupportedReport)\n@ccValueProperty(\"supportedParameters\", WindowCoveringCCValues.supportedParameters)\nexport class WindowCoveringCCSupportedReport extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCSupportedReportOptions>) {\n super(options);\n this.supportedParameters = options.supportedParameters;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCSupportedReport {\n validatePayload(raw.payload.length >= 1);\n const numBitmaskBytes = raw.payload[0] & 0b1111;\n validatePayload(raw.payload.length >= 1 + numBitmaskBytes);\n const bitmask = raw.payload.subarray(1, 1 + numBitmaskBytes);\n const supportedParameters: WindowCoveringParameter[] = parseBitMask(bitmask, WindowCoveringParameter[\"Outbound Left (no position)\"]);\n return new this({\n nodeId: ctx.sourceNodeId,\n supportedParameters,\n });\n }\n public readonly supportedParameters: readonly WindowCoveringParameter[];\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n const bitmask = encodeBitMask(this.supportedParameters, undefined, WindowCoveringParameter[\"Outbound Left (no position)\"]).subarray(0, 15);\n const numBitmaskBytes = bitmask.length & 0b1111;\n this.payload = Bytes.concat([\n [numBitmaskBytes],\n bitmask.subarray(0, numBitmaskBytes),\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"supported parameters\": logList(this.supportedParameters.map((p) => getEnumMemberName(WindowCoveringParameter, p))),\n },\n };\n }\n}\n@CCCommand(WindowCoveringCommand.SupportedGet)\n@expectedCCResponse(WindowCoveringCCSupportedReport)\nexport class WindowCoveringCCSupportedGet extends WindowCoveringCC {\n}\n// @publicAPI\nexport interface WindowCoveringCCReportOptions {\n parameter: WindowCoveringParameter;\n currentValue: number;\n targetValue: number;\n duration: Duration;\n}\n@CCCommand(WindowCoveringCommand.Report)\n@ccValueProperty(\"currentValue\", WindowCoveringCCValues.currentValue, (self) => [self.parameter])\n@ccValueProperty(\"targetValue\", WindowCoveringCCValues.targetValue, (self) => [self.parameter])\n@ccValueProperty(\"duration\", WindowCoveringCCValues.duration, (self) => [self.parameter])\nexport class WindowCoveringCCReport extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.parameter = options.parameter;\n this.currentValue = options.currentValue;\n this.targetValue = options.targetValue;\n this.duration = options.duration;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCReport {\n validatePayload(raw.payload.length >= 4);\n const parameter: WindowCoveringParameter = raw.payload[0];\n validatePayload(isEnumMember(WindowCoveringParameter, parameter));\n validatePayload(raw.payload[1] <= 99, raw.payload[2] <= 99);\n const currentValue = raw.payload[1];\n const targetValue = raw.payload[2];\n const duration = Duration.parseReport(raw.payload[3])\n ?? Duration.unknown();\n return new this({\n nodeId: ctx.sourceNodeId,\n parameter,\n currentValue,\n targetValue,\n duration,\n });\n }\n public readonly parameter: WindowCoveringParameter;\n public readonly currentValue: number;\n public readonly targetValue: number;\n public readonly duration: Duration;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.parameter,\n this.currentValue,\n this.targetValue,\n this.duration.serializeReport(),\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n parameter: getEnumMemberName(WindowCoveringParameter, this.parameter),\n \"current value\": this.currentValue,\n \"target value\": this.targetValue,\n duration: this.duration.toString(),\n },\n };\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCGetOptions {\n parameter: WindowCoveringParameter;\n}\nfunction testResponseForWindowCoveringGet(sent: WindowCoveringCCGet, received: WindowCoveringCCReport) {\n return received.parameter === sent.parameter;\n}\n@CCCommand(WindowCoveringCommand.Get)\n@expectedCCResponse(WindowCoveringCCReport, testResponseForWindowCoveringGet)\nexport class WindowCoveringCCGet extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCGetOptions>) {\n super(options);\n this.parameter = options.parameter;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCGet {\n validatePayload(raw.payload.length >= 1);\n const parameter: WindowCoveringParameter = raw.payload[0];\n return new this({\n nodeId: ctx.sourceNodeId,\n parameter,\n });\n }\n public parameter: WindowCoveringParameter;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.parameter]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n parameter: getEnumMemberName(WindowCoveringParameter, this.parameter),\n },\n };\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCSetOptions {\n targetValues: {\n parameter: WindowCoveringParameter;\n value: number;\n }[];\n duration?: Duration | string;\n}\n@CCCommand(WindowCoveringCommand.Set)\n@useSupervision()\nexport class WindowCoveringCCSet extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCSetOptions>) {\n super(options);\n this.targetValues = options.targetValues;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCSet {\n validatePayload(raw.payload.length >= 1);\n const numEntries = raw.payload[0] & 0b11111;\n validatePayload(raw.payload.length >= 1 + numEntries * 2);\n const targetValues: WindowCoveringCCSetOptions[\"targetValues\"] = [];\n for (let i = 0; i < numEntries; i++) {\n const offset = 1 + i * 2;\n targetValues.push({\n parameter: raw.payload[offset],\n value: raw.payload[offset + 1],\n });\n }\n let duration: Duration | undefined;\n if (raw.payload.length >= 2 + numEntries * 2) {\n duration = Duration.parseSet(raw.payload[1 + numEntries * 2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n targetValues,\n duration,\n });\n }\n public targetValues: {\n parameter: WindowCoveringParameter;\n value: number;\n }[];\n public duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n const numEntries = this.targetValues.length & 0b11111;\n this.payload = new Bytes(2 + numEntries * 2);\n this.payload[0] = numEntries;\n for (let i = 0; i < numEntries; i++) {\n const offset = 1 + i * 2;\n this.payload[offset] = this.targetValues[i].parameter;\n this.payload[offset + 1] = this.targetValues[i].value;\n }\n this.payload[this.payload.length - 1] = (this.duration ?? Duration.default()).serializeSet();\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {};\n for (const { parameter, value } of this.targetValues) {\n message[getEnumMemberName(WindowCoveringParameter, parameter)] =\n value;\n }\n if (this.duration) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCStartLevelChangeOptions {\n parameter: WindowCoveringParameter;\n direction: keyof typeof LevelChangeDirection;\n duration?: Duration | string;\n}\n@CCCommand(WindowCoveringCommand.StartLevelChange)\n@useSupervision()\nexport class WindowCoveringCCStartLevelChange extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCStartLevelChangeOptions>) {\n super(options);\n this.parameter = options.parameter;\n this.direction = options.direction;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCStartLevelChange {\n validatePayload(raw.payload.length >= 2);\n const direction = !!(raw.payload[0] & 64)\n ? \"down\"\n : \"up\";\n const parameter: WindowCoveringParameter = raw.payload[1];\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n duration = Duration.parseSet(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n direction,\n parameter,\n duration,\n });\n }\n public parameter: WindowCoveringParameter;\n public direction: keyof typeof LevelChangeDirection;\n public duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.direction === \"down\" ? 64 : 0,\n this.parameter,\n (this.duration ?? Duration.default()).serializeSet(),\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n parameter: getEnumMemberName(WindowCoveringParameter, this.parameter),\n direction: this.direction,\n };\n if (this.duration) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface WindowCoveringCCStopLevelChangeOptions {\n parameter: WindowCoveringParameter;\n}\n@CCCommand(WindowCoveringCommand.StopLevelChange)\n@useSupervision()\nexport class WindowCoveringCCStopLevelChange extends WindowCoveringCC {\n public constructor(options: WithAddress<WindowCoveringCCStopLevelChangeOptions>) {\n super(options);\n this.parameter = options.parameter;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCStopLevelChange {\n validatePayload(raw.payload.length >= 1);\n const parameter: WindowCoveringParameter = raw.payload[0];\n return new this({\n nodeId: ctx.sourceNodeId,\n parameter,\n });\n }\n public parameter: WindowCoveringParameter;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.parameter]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n parameter: getEnumMemberName(WindowCoveringParameter, this.parameter),\n },\n };\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -136,7 +136,8 @@ let ZWavePlusCC = (() => {
136
136
  const node = this.getNode(ctx);
137
137
  const endpoint = this.getEndpoint(ctx);
138
138
  const api = import_API.CCAPI.create(import_core.CommandClasses["Z-Wave Plus Info"], ctx, endpoint).withOptions({
139
- priority: import_core.MessagePriority.NodeQuery
139
+ priority: import_core.MessagePriority.NodeQuery,
140
+ tag: "interview"
140
141
  });
141
142
  ctx.logNode(node.id, {
142
143
  endpoint: this.endpointIndex,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src_gen/cc/ZWavePlusCC.ts"],
4
- "sourcesContent": ["import * as __validateArgs from \"./ZWavePlusCC._validateArgs.js\";\nconst { validateArgs_ZWavePlusCCAPI_sendReport } = __validateArgs;\nimport { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, type WithAddress, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, num2hex, pick } from \"@zwave-js/shared\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { ZWavePlusCommand, ZWavePlusNodeType, ZWavePlusRoleType, } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { ZWavePlusCCValues } from \"./_CCValues.generated.js\";\nexport { ZWavePlusCCValues };\n// @noSetValueAPI This CC is read-only\n@API(CommandClasses[\"Z-Wave Plus Info\"])\nexport class ZWavePlusCCAPI extends PhysicalCCAPI {\n public supportsCommand(cmd: ZWavePlusCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case ZWavePlusCommand.Get:\n case ZWavePlusCommand.Report:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(ZWavePlusCommand, ZWavePlusCommand.Get);\n const cc = new ZWavePlusCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<ZWavePlusCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\n \"zwavePlusVersion\",\n \"nodeType\",\n \"roleType\",\n \"installerIcon\",\n \"userIcon\",\n ]);\n }\n }\n @validateArgs_ZWavePlusCCAPI_sendReport()\n public async sendReport(options: ZWavePlusCCReportOptions): Promise<void> {\n this.assertSupportsCommand(ZWavePlusCommand, ZWavePlusCommand.Report);\n const cc = new ZWavePlusCCReport({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n ...options,\n });\n await this.host.sendCommand(cc, this.commandOptions);\n }\n}\n@commandClass(CommandClasses[\"Z-Wave Plus Info\"])\n@implementedVersion(2)\n@ccValues(ZWavePlusCCValues)\nexport class ZWavePlusCC extends CommandClass {\n declare ccCommand: ZWavePlusCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Z-Wave Plus Info\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying Z-Wave+ information...\",\n direction: \"outbound\",\n });\n const zwavePlusResponse = await api.get();\n if (zwavePlusResponse) {\n const logMessage = `received response for Z-Wave+ information:\nZ-Wave+ version: ${zwavePlusResponse.zwavePlusVersion}\nrole type: ${ZWavePlusRoleType[zwavePlusResponse.roleType]}\nnode type: ${ZWavePlusNodeType[zwavePlusResponse.nodeType]}\ninstaller icon: ${num2hex(zwavePlusResponse.installerIcon)}\nuser icon: ${num2hex(zwavePlusResponse.userIcon)}`;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n }\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n}\n// @publicAPI\nexport interface ZWavePlusCCReportOptions {\n zwavePlusVersion: number;\n nodeType: ZWavePlusNodeType;\n roleType: ZWavePlusRoleType;\n installerIcon: number;\n userIcon: number;\n}\n@CCCommand(ZWavePlusCommand.Report)\n@ccValueProperty(\"zwavePlusVersion\", ZWavePlusCCValues.zwavePlusVersion)\n@ccValueProperty(\"nodeType\", ZWavePlusCCValues.nodeType)\n@ccValueProperty(\"roleType\", ZWavePlusCCValues.roleType)\n@ccValueProperty(\"installerIcon\", ZWavePlusCCValues.installerIcon)\n@ccValueProperty(\"userIcon\", ZWavePlusCCValues.userIcon)\nexport class ZWavePlusCCReport extends ZWavePlusCC {\n public constructor(options: WithAddress<ZWavePlusCCReportOptions>) {\n super(options);\n this.zwavePlusVersion = options.zwavePlusVersion;\n this.roleType = options.roleType;\n this.nodeType = options.nodeType;\n this.installerIcon = options.installerIcon;\n this.userIcon = options.userIcon;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): ZWavePlusCCReport {\n validatePayload(raw.payload.length >= 7);\n const zwavePlusVersion = raw.payload[0];\n const roleType: ZWavePlusRoleType = raw.payload[1];\n const nodeType: ZWavePlusNodeType = raw.payload[2];\n const installerIcon = raw.payload.readUInt16BE(3);\n const userIcon = raw.payload.readUInt16BE(5);\n return new this({\n nodeId: ctx.sourceNodeId,\n zwavePlusVersion,\n roleType,\n nodeType,\n installerIcon,\n userIcon,\n });\n }\n public zwavePlusVersion: number;\n public nodeType: ZWavePlusNodeType;\n public roleType: ZWavePlusRoleType;\n public installerIcon: number;\n public userIcon: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.zwavePlusVersion,\n this.roleType,\n this.nodeType,\n // placeholder for icons\n 0,\n 0,\n 0,\n 0,\n ]);\n this.payload.writeUInt16BE(this.installerIcon, 3);\n this.payload.writeUInt16BE(this.userIcon, 5);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n version: this.zwavePlusVersion,\n \"node type\": getEnumMemberName(ZWavePlusNodeType, this.nodeType),\n \"role type\": getEnumMemberName(ZWavePlusRoleType, this.roleType),\n \"icon (mgmt.)\": num2hex(this.installerIcon),\n \"icon (user)\": num2hex(this.userIcon),\n },\n };\n }\n}\n@CCCommand(ZWavePlusCommand.Get)\n@expectedCCResponse(ZWavePlusCCReport)\nexport class ZWavePlusCCGet extends ZWavePlusCC {\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qBAAgC;AAEhC,kBAAmJ;AACnJ,oBAAwD;AACxD,iBAAqC;AACrC,0BAAiE;AACjE,oCAAiH;AAEjH,mBAAwE;AAExE,gCAAkC;AATlC,MAAM,EAAE,uCAAsC,IAAK;IAatC,kBAAc,MAAA;8BAD1B,mCAAI,2BAAe,kBAAkB,CAAC,CAAC;;;;oBACJ;;;sCAAA,YAAa;WAAA;;;;;;;;gCA2B5C,uCAAsC,CAAE;AACzC,qCAAA,MAAA,MAAA,wBAAA,EAAA,MAAA,UAAA,MAAA,cAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,gBAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,YAAb,OAAuB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AA5B3B,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACF,gBAAgB,KAAqB;AACxC,cAAQ,KAAK;QACT,KAAK,8BAAiB;QACtB,KAAK,8BAAiB;AAClB,iBAAO;MACf;AACA,aAAO,MAAM,gBAAgB,GAAG;IACpC;;IAEO,MAAM,MAAG;AACZ,WAAK,sBAAsB,+BAAkB,8BAAiB,GAAG;AACjE,YAAM,KAAK,IAAI,eAAe;QAC1B,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAChC;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAA+B,IAAI,KAAK,cAAc;AACvF,UAAI,UAAU;AACV,mBAAO,oBAAK,UAAU;UAClB;UACA;UACA;UACA;UACA;SACH;MACL;IACJ;IAEO,MAAM,WAAW,SAAiC;AACrD,WAAK,sBAAsB,+BAAkB,8BAAiB,MAAM;AACpE,YAAM,KAAK,IAAI,kBAAkB;QAC7B,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B,GAAG;OACN;AACD,YAAM,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACvD;;;AApCS,0CAAA,MAAA,0BAAA;;;;;IAyCA,eAAW,MAAA;8BAHvB,4CAAa,2BAAe,kBAAkB,CAAC,OAC/C,kDAAmB,CAAC,OACpB,wCAAS,2CAAiB,CAAC;;;;oBACK;mCAAA,YAAY;WAAA;;;;;;;;AAA7C,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IAEF,MAAM,UAAU,KAAqB;AACxC,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AACrC,YAAM,MAAM,iBAAM,OAAO,2BAAe,kBAAkB,GAAG,KAAK,QAAQ,EAAE,YAAY;QACpF,UAAU,4BAAgB;OAC7B;AACD,UAAI,QAAQ,KAAK,IAAI;QACjB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACd;AACD,UAAI,QAAQ,KAAK,IAAI;QACjB,UAAU,KAAK;QACf,SAAS;QACT,WAAW;OACd;AACD,YAAM,oBAAoB,MAAM,IAAI,IAAG;AACvC,UAAI,mBAAmB;AACnB,cAAM,aAAa;mBACZ,kBAAkB,gBAAgB;mBAClC,+BAAkB,kBAAkB,QAAQ,CAAC;mBAC7C,+BAAkB,kBAAkB,QAAQ,CAAC;uBAC7C,uBAAQ,kBAAkB,aAAa,CAAC;uBACxC,uBAAQ,kBAAkB,QAAQ,CAAC;AAC1C,YAAI,QAAQ,KAAK,IAAI;UACjB,UAAU,KAAK;UACf,SAAS;UACT,WAAW;SACd;MACL;AAEA,WAAK,qBAAqB,KAAK,IAAI;IACvC;;;;IAgBS,qBAAiB,MAAA;8BAN7B,yCAAU,8BAAiB,MAAM,OACjC,+CAAgB,oBAAoB,4CAAkB,gBAAgB,OACtE,+CAAgB,YAAY,4CAAkB,QAAQ,OACtD,+CAAgB,YAAY,4CAAkB,QAAQ,OACtD,+CAAgB,iBAAiB,4CAAkB,aAAa,OAChE,+CAAgB,YAAY,4CAAkB,QAAQ,CAAC;;;;oBACjB;yCAAA,YAAW;WAAA;;;;;;;;AAAlD,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACT,YAAmB,SAA8C;AAC7D,YAAM,OAAO;AACb,WAAK,mBAAmB,QAAQ;AAChC,WAAK,WAAW,QAAQ;AACxB,WAAK,WAAW,QAAQ;AACxB,WAAK,gBAAgB,QAAQ;AAC7B,WAAK,WAAW,QAAQ;IAC5B;IACO,OAAO,KAAK,KAAY,KAAqB;AAChD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,mBAAmB,IAAI,QAAQ,CAAC;AACtC,YAAM,WAA8B,IAAI,QAAQ,CAAC;AACjD,YAAM,WAA8B,IAAI,QAAQ,CAAC;AACjD,YAAM,gBAAgB,IAAI,QAAQ,aAAa,CAAC;AAChD,YAAM,WAAW,IAAI,QAAQ,aAAa,CAAC;AAC3C,aAAO,IAAI,KAAK;QACZ,QAAQ,IAAI;QACZ;QACA;QACA;QACA;QACA;OACH;IACL;IACO;IACA;IACA;IACA;IACA;IACA,UAAU,KAAsB;AACnC,WAAK,UAAU,oBAAM,KAAK;QACtB,KAAK;QACL,KAAK;QACL,KAAK;;QAEL;QACA;QACA;QACA;OACH;AACD,WAAK,QAAQ,cAAc,KAAK,eAAe,CAAC;AAChD,WAAK,QAAQ,cAAc,KAAK,UAAU,CAAC;AAC3C,aAAO,MAAM,UAAU,GAAG;IAC9B;IACO,WAAW,KAAgB;AAC9B,aAAO;QACH,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACL,SAAS,KAAK;UACd,iBAAa,iCAAkB,gCAAmB,KAAK,QAAQ;UAC/D,iBAAa,iCAAkB,gCAAmB,KAAK,QAAQ;UAC/D,oBAAgB,uBAAQ,KAAK,aAAa;UAC1C,mBAAe,uBAAQ,KAAK,QAAQ;;;IAGhD;;;;IAIS,kBAAc,MAAA;8BAF1B,yCAAU,8BAAiB,GAAG,OAC9B,kDAAmB,iBAAiB,CAAC;;;;oBACF;sCAAA,YAAW;WAAA;;;;;;;;AAA/C,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;;;;",
4
+ "sourcesContent": ["import * as __validateArgs from \"./ZWavePlusCC._validateArgs.js\";\nconst { validateArgs_ZWavePlusCCAPI_sendReport } = __validateArgs;\nimport { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, type WithAddress, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, num2hex, pick } from \"@zwave-js/shared\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { ZWavePlusCommand, ZWavePlusNodeType, ZWavePlusRoleType, } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { ZWavePlusCCValues } from \"./_CCValues.generated.js\";\nexport { ZWavePlusCCValues };\n// @noSetValueAPI This CC is read-only\n@API(CommandClasses[\"Z-Wave Plus Info\"])\nexport class ZWavePlusCCAPI extends PhysicalCCAPI {\n public supportsCommand(cmd: ZWavePlusCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case ZWavePlusCommand.Get:\n case ZWavePlusCommand.Report:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(ZWavePlusCommand, ZWavePlusCommand.Get);\n const cc = new ZWavePlusCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<ZWavePlusCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\n \"zwavePlusVersion\",\n \"nodeType\",\n \"roleType\",\n \"installerIcon\",\n \"userIcon\",\n ]);\n }\n }\n @validateArgs_ZWavePlusCCAPI_sendReport()\n public async sendReport(options: ZWavePlusCCReportOptions): Promise<void> {\n this.assertSupportsCommand(ZWavePlusCommand, ZWavePlusCommand.Report);\n const cc = new ZWavePlusCCReport({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n ...options,\n });\n await this.host.sendCommand(cc, this.commandOptions);\n }\n}\n@commandClass(CommandClasses[\"Z-Wave Plus Info\"])\n@implementedVersion(2)\n@ccValues(ZWavePlusCCValues)\nexport class ZWavePlusCC extends CommandClass {\n declare ccCommand: ZWavePlusCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Z-Wave Plus Info\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n tag: \"interview\",\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying Z-Wave+ information...\",\n direction: \"outbound\",\n });\n const zwavePlusResponse = await api.get();\n if (zwavePlusResponse) {\n const logMessage = `received response for Z-Wave+ information:\nZ-Wave+ version: ${zwavePlusResponse.zwavePlusVersion}\nrole type: ${ZWavePlusRoleType[zwavePlusResponse.roleType]}\nnode type: ${ZWavePlusNodeType[zwavePlusResponse.nodeType]}\ninstaller icon: ${num2hex(zwavePlusResponse.installerIcon)}\nuser icon: ${num2hex(zwavePlusResponse.userIcon)}`;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n }\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n}\n// @publicAPI\nexport interface ZWavePlusCCReportOptions {\n zwavePlusVersion: number;\n nodeType: ZWavePlusNodeType;\n roleType: ZWavePlusRoleType;\n installerIcon: number;\n userIcon: number;\n}\n@CCCommand(ZWavePlusCommand.Report)\n@ccValueProperty(\"zwavePlusVersion\", ZWavePlusCCValues.zwavePlusVersion)\n@ccValueProperty(\"nodeType\", ZWavePlusCCValues.nodeType)\n@ccValueProperty(\"roleType\", ZWavePlusCCValues.roleType)\n@ccValueProperty(\"installerIcon\", ZWavePlusCCValues.installerIcon)\n@ccValueProperty(\"userIcon\", ZWavePlusCCValues.userIcon)\nexport class ZWavePlusCCReport extends ZWavePlusCC {\n public constructor(options: WithAddress<ZWavePlusCCReportOptions>) {\n super(options);\n this.zwavePlusVersion = options.zwavePlusVersion;\n this.roleType = options.roleType;\n this.nodeType = options.nodeType;\n this.installerIcon = options.installerIcon;\n this.userIcon = options.userIcon;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): ZWavePlusCCReport {\n validatePayload(raw.payload.length >= 7);\n const zwavePlusVersion = raw.payload[0];\n const roleType: ZWavePlusRoleType = raw.payload[1];\n const nodeType: ZWavePlusNodeType = raw.payload[2];\n const installerIcon = raw.payload.readUInt16BE(3);\n const userIcon = raw.payload.readUInt16BE(5);\n return new this({\n nodeId: ctx.sourceNodeId,\n zwavePlusVersion,\n roleType,\n nodeType,\n installerIcon,\n userIcon,\n });\n }\n public zwavePlusVersion: number;\n public nodeType: ZWavePlusNodeType;\n public roleType: ZWavePlusRoleType;\n public installerIcon: number;\n public userIcon: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.zwavePlusVersion,\n this.roleType,\n this.nodeType,\n // placeholder for icons\n 0,\n 0,\n 0,\n 0,\n ]);\n this.payload.writeUInt16BE(this.installerIcon, 3);\n this.payload.writeUInt16BE(this.userIcon, 5);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n version: this.zwavePlusVersion,\n \"node type\": getEnumMemberName(ZWavePlusNodeType, this.nodeType),\n \"role type\": getEnumMemberName(ZWavePlusRoleType, this.roleType),\n \"icon (mgmt.)\": num2hex(this.installerIcon),\n \"icon (user)\": num2hex(this.userIcon),\n },\n };\n }\n}\n@CCCommand(ZWavePlusCommand.Get)\n@expectedCCResponse(ZWavePlusCCReport)\nexport class ZWavePlusCCGet extends ZWavePlusCC {\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -3773,7 +3773,7 @@ export declare const IrrigationCCValues: Readonly<{
3773
3773
  readonly meta: {
3774
3774
  readonly readable: true;
3775
3775
  readonly writeable: false;
3776
- readonly type: "boolean";
3776
+ readonly type: "number";
3777
3777
  readonly label: `${string}: Nominal current`;
3778
3778
  readonly unit: "mA";
3779
3779
  };
@@ -4106,7 +4106,7 @@ export declare const IrrigationCCValues: Readonly<{
4106
4106
  readonly readable: true;
4107
4107
  readonly writeable: false;
4108
4108
  readonly type: "boolean";
4109
- readonly label: `${string}: Error - Flow below high threshold`;
4109
+ readonly label: `${string}: Error - Flow below low threshold`;
4110
4110
  };
4111
4111
  }) & {
4112
4112
  is: (valueId: ValueID) => boolean;
@@ -12575,7 +12575,7 @@ export declare const CCValues: {
12575
12575
  readonly meta: {
12576
12576
  readonly readable: true;
12577
12577
  readonly writeable: false;
12578
- readonly type: "boolean";
12578
+ readonly type: "number";
12579
12579
  readonly label: `${string}: Nominal current`;
12580
12580
  readonly unit: "mA";
12581
12581
  };
@@ -12908,7 +12908,7 @@ export declare const CCValues: {
12908
12908
  readonly readable: true;
12909
12909
  readonly writeable: false;
12910
12910
  readonly type: "boolean";
12911
- readonly label: `${string}: Error - Flow below high threshold`;
12911
+ readonly label: `${string}: Error - Flow below low threshold`;
12912
12912
  };
12913
12913
  }) & {
12914
12914
  is: (valueId: ValueID) => boolean;
@@ -4114,7 +4114,7 @@ const IrrigationCCValues = Object.freeze({
4114
4114
  }), "endpoint"),
4115
4115
  get meta() {
4116
4116
  return {
4117
- ...import_core.ValueMetadata.ReadOnlyBoolean,
4117
+ ...import_core.ValueMetadata.ReadOnlyNumber,
4118
4118
  label: `${(0, import_CCValueUtils.irrigationValveIdToMetadataPrefix)(valveId)}: Nominal current`,
4119
4119
  unit: "mA"
4120
4120
  };
@@ -4513,7 +4513,7 @@ const IrrigationCCValues = Object.freeze({
4513
4513
  get meta() {
4514
4514
  return {
4515
4515
  ...import_core.ValueMetadata.ReadOnlyBoolean,
4516
- label: `${(0, import_CCValueUtils.irrigationValveIdToMetadataPrefix)(valveId)}: Error - Flow below high threshold`
4516
+ label: `${(0, import_CCValueUtils.irrigationValveIdToMetadataPrefix)(valveId)}: Error - Flow below low threshold`
4517
4517
  };
4518
4518
  }
4519
4519
  };