@zwave-js/cc 15.1.0 → 15.1.2

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 (537) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +7 -7
  2. package/build/cjs/cc/AlarmSensorCC.js +22 -23
  3. package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
  4. package/build/cjs/cc/AssociationCC.d.ts +8 -9
  5. package/build/cjs/cc/AssociationCC.js +29 -29
  6. package/build/cjs/cc/AssociationCC.js.map +3 -3
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +7 -7
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +31 -32
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +8 -8
  11. package/build/cjs/cc/BarrierOperatorCC.js +35 -36
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
  13. package/build/cjs/cc/BasicCC.d.ts +4 -4
  14. package/build/cjs/cc/BasicCC.js +23 -24
  15. package/build/cjs/cc/BasicCC.js.map +3 -3
  16. package/build/cjs/cc/BatteryCC.d.ts +6 -8
  17. package/build/cjs/cc/BatteryCC.js +24 -28
  18. package/build/cjs/cc/BatteryCC.js.map +3 -3
  19. package/build/cjs/cc/BinarySensorCC.d.ts +5 -5
  20. package/build/cjs/cc/BinarySensorCC.js +20 -21
  21. package/build/cjs/cc/BinarySensorCC.js.map +3 -3
  22. package/build/cjs/cc/BinarySwitchCC._validateArgs.js +2 -2
  23. package/build/cjs/cc/BinarySwitchCC.d.ts +6 -6
  24. package/build/cjs/cc/BinarySwitchCC.js +26 -26
  25. package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
  26. package/build/cjs/cc/CRC16CC.d.ts +3 -3
  27. package/build/cjs/cc/CRC16CC.js +15 -15
  28. package/build/cjs/cc/CRC16CC.js.map +3 -3
  29. package/build/cjs/cc/CentralSceneCC.d.ts +8 -8
  30. package/build/cjs/cc/CentralSceneCC.js +23 -24
  31. package/build/cjs/cc/CentralSceneCC.js.map +3 -3
  32. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +6 -6
  33. package/build/cjs/cc/ClimateControlScheduleCC.js +19 -20
  34. package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
  35. package/build/cjs/cc/ClockCC.d.ts +3 -4
  36. package/build/cjs/cc/ClockCC.js +13 -14
  37. package/build/cjs/cc/ClockCC.js.map +3 -3
  38. package/build/cjs/cc/ColorSwitchCC.d.ts +3 -4
  39. package/build/cjs/cc/ColorSwitchCC.js +22 -24
  40. package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
  41. package/build/cjs/cc/ConfigurationCC.d.ts +3 -3
  42. package/build/cjs/cc/ConfigurationCC.js +114 -115
  43. package/build/cjs/cc/ConfigurationCC.js.map +3 -3
  44. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +2 -2
  45. package/build/cjs/cc/DeviceResetLocallyCC.js +5 -5
  46. package/build/cjs/cc/DeviceResetLocallyCC.js.map +1 -1
  47. package/build/cjs/cc/DoorLockCC.d.ts +29 -29
  48. package/build/cjs/cc/DoorLockCC.js +39 -40
  49. package/build/cjs/cc/DoorLockCC.js.map +3 -3
  50. package/build/cjs/cc/DoorLockLoggingCC.d.ts +4 -4
  51. package/build/cjs/cc/DoorLockLoggingCC.js +13 -14
  52. package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
  53. package/build/cjs/cc/EnergyProductionCC.d.ts +2 -3
  54. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  55. package/build/cjs/cc/EntryControlCC.d.ts +8 -8
  56. package/build/cjs/cc/EntryControlCC.js +41 -42
  57. package/build/cjs/cc/EntryControlCC.js.map +3 -3
  58. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +9 -10
  59. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +52 -53
  60. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
  61. package/build/cjs/cc/HailCC.js +2 -2
  62. package/build/cjs/cc/HailCC.js.map +1 -1
  63. package/build/cjs/cc/HumidityControlModeCC.d.ts +5 -5
  64. package/build/cjs/cc/HumidityControlModeCC.js +20 -21
  65. package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
  66. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +3 -3
  67. package/build/cjs/cc/HumidityControlOperatingStateCC.js +9 -9
  68. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
  69. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +6 -6
  70. package/build/cjs/cc/HumidityControlSetpointCC.js +43 -44
  71. package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
  72. package/build/cjs/cc/InclusionControllerCC.d.ts +2 -3
  73. package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
  74. package/build/cjs/cc/IndicatorCC.d.ts +3 -3
  75. package/build/cjs/cc/IndicatorCC.js +50 -52
  76. package/build/cjs/cc/IndicatorCC.js.map +3 -3
  77. package/build/cjs/cc/IrrigationCC.d.ts +3 -3
  78. package/build/cjs/cc/IrrigationCC.js +74 -75
  79. package/build/cjs/cc/IrrigationCC.js.map +3 -3
  80. package/build/cjs/cc/LanguageCC.d.ts +5 -6
  81. package/build/cjs/cc/LanguageCC.js +14 -15
  82. package/build/cjs/cc/LanguageCC.js.map +3 -3
  83. package/build/cjs/cc/LockCC.d.ts +4 -4
  84. package/build/cjs/cc/LockCC.js +10 -10
  85. package/build/cjs/cc/LockCC.js.map +3 -3
  86. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +4 -3
  87. package/build/cjs/cc/ManufacturerProprietaryCC.js +14 -12
  88. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +3 -3
  89. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +7 -8
  90. package/build/cjs/cc/ManufacturerSpecificCC.js +20 -21
  91. package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
  92. package/build/cjs/cc/MeterCC.d.ts +4 -6
  93. package/build/cjs/cc/MeterCC.js +52 -54
  94. package/build/cjs/cc/MeterCC.js.map +3 -3
  95. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +7 -8
  96. package/build/cjs/cc/MultiChannelAssociationCC.js +34 -35
  97. package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
  98. package/build/cjs/cc/MultiChannelCC.d.ts +13 -12
  99. package/build/cjs/cc/MultiChannelCC.js +104 -56
  100. package/build/cjs/cc/MultiChannelCC.js.map +3 -3
  101. package/build/cjs/cc/MultiCommandCC.d.ts +3 -3
  102. package/build/cjs/cc/MultiCommandCC.js +13 -13
  103. package/build/cjs/cc/MultiCommandCC.js.map +3 -3
  104. package/build/cjs/cc/MultilevelSensorCC.d.ts +4 -7
  105. package/build/cjs/cc/MultilevelSensorCC.js +26 -28
  106. package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
  107. package/build/cjs/cc/MultilevelSwitchCC._validateArgs.js +3 -3
  108. package/build/cjs/cc/MultilevelSwitchCC.d.ts +13 -13
  109. package/build/cjs/cc/MultilevelSwitchCC.js +36 -37
  110. package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
  111. package/build/cjs/cc/NoOperationCC.js +4 -4
  112. package/build/cjs/cc/NoOperationCC.js.map +1 -1
  113. package/build/cjs/cc/NodeNamingCC.d.ts +5 -5
  114. package/build/cjs/cc/NodeNamingCC.js +20 -20
  115. package/build/cjs/cc/NodeNamingCC.js.map +3 -3
  116. package/build/cjs/cc/NotificationCC.d.ts +4 -5
  117. package/build/cjs/cc/NotificationCC.js +66 -68
  118. package/build/cjs/cc/NotificationCC.js.map +3 -3
  119. package/build/cjs/cc/PowerlevelCC.d.ts +3 -3
  120. package/build/cjs/cc/PowerlevelCC.js +25 -26
  121. package/build/cjs/cc/PowerlevelCC.js.map +3 -3
  122. package/build/cjs/cc/ProtectionCC._validateArgs.js +2 -2
  123. package/build/cjs/cc/ProtectionCC.d.ts +11 -11
  124. package/build/cjs/cc/ProtectionCC.js +35 -36
  125. package/build/cjs/cc/ProtectionCC.js.map +3 -3
  126. package/build/cjs/cc/SceneActivationCC._validateArgs.js +2 -2
  127. package/build/cjs/cc/SceneActivationCC.d.ts +5 -6
  128. package/build/cjs/cc/SceneActivationCC.js +10 -10
  129. package/build/cjs/cc/SceneActivationCC.js.map +3 -3
  130. package/build/cjs/cc/SceneActuatorConfigurationCC._validateArgs.js +2 -2
  131. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +5 -5
  132. package/build/cjs/cc/SceneActuatorConfigurationCC.js +19 -20
  133. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
  134. package/build/cjs/cc/SceneControllerConfigurationCC._validateArgs.js +2 -2
  135. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +6 -6
  136. package/build/cjs/cc/SceneControllerConfigurationCC.js +25 -26
  137. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
  138. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +2 -3
  139. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  140. package/build/cjs/cc/Security2CC.d.ts +3 -4
  141. package/build/cjs/cc/Security2CC.js +60 -62
  142. package/build/cjs/cc/Security2CC.js.map +3 -3
  143. package/build/cjs/cc/SecurityCC.d.ts +3 -4
  144. package/build/cjs/cc/SecurityCC.js +25 -26
  145. package/build/cjs/cc/SecurityCC.js.map +3 -3
  146. package/build/cjs/cc/SoundSwitchCC.d.ts +7 -7
  147. package/build/cjs/cc/SoundSwitchCC.js +28 -29
  148. package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
  149. package/build/cjs/cc/SupervisionCC.d.ts +4 -4
  150. package/build/cjs/cc/SupervisionCC.js +28 -29
  151. package/build/cjs/cc/SupervisionCC.js.map +3 -3
  152. package/build/cjs/cc/ThermostatFanModeCC.d.ts +6 -6
  153. package/build/cjs/cc/ThermostatFanModeCC.js +21 -22
  154. package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
  155. package/build/cjs/cc/ThermostatFanStateCC.d.ts +3 -3
  156. package/build/cjs/cc/ThermostatFanStateCC.js +9 -9
  157. package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
  158. package/build/cjs/cc/ThermostatModeCC.d.ts +6 -6
  159. package/build/cjs/cc/ThermostatModeCC.js +30 -31
  160. package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
  161. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +3 -4
  162. package/build/cjs/cc/ThermostatOperatingStateCC.js +9 -9
  163. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
  164. package/build/cjs/cc/ThermostatSetbackCC.d.ts +3 -3
  165. package/build/cjs/cc/ThermostatSetbackCC.js +14 -15
  166. package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
  167. package/build/cjs/cc/ThermostatSetpointCC.d.ts +6 -6
  168. package/build/cjs/cc/ThermostatSetpointCC.js +48 -49
  169. package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
  170. package/build/cjs/cc/TimeCC.d.ts +3 -4
  171. package/build/cjs/cc/TimeCC.js +9 -10
  172. package/build/cjs/cc/TimeCC.js.map +3 -3
  173. package/build/cjs/cc/TimeParametersCC.d.ts +3 -4
  174. package/build/cjs/cc/TimeParametersCC.js +2 -2
  175. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  176. package/build/cjs/cc/TransportServiceCC.d.ts +3 -3
  177. package/build/cjs/cc/TransportServiceCC.js +44 -45
  178. package/build/cjs/cc/TransportServiceCC.js.map +3 -3
  179. package/build/cjs/cc/UserCodeCC.d.ts +19 -19
  180. package/build/cjs/cc/UserCodeCC.js +102 -103
  181. package/build/cjs/cc/UserCodeCC.js.map +3 -3
  182. package/build/cjs/cc/VersionCC.d.ts +17 -17
  183. package/build/cjs/cc/VersionCC.js +46 -47
  184. package/build/cjs/cc/VersionCC.js.map +3 -3
  185. package/build/cjs/cc/WakeUpCC.d.ts +6 -6
  186. package/build/cjs/cc/WakeUpCC.js +16 -17
  187. package/build/cjs/cc/WakeUpCC.js.map +3 -3
  188. package/build/cjs/cc/WindowCoveringCC.d.ts +3 -4
  189. package/build/cjs/cc/WindowCoveringCC.js +17 -18
  190. package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
  191. package/build/cjs/cc/ZWavePlusCC.d.ts +8 -8
  192. package/build/cjs/cc/ZWavePlusCC.js +15 -16
  193. package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
  194. package/build/cjs/cc/ZWaveProtocolCC.d.ts +2 -2
  195. package/build/cjs/cc/ZWaveProtocolCC.js +35 -35
  196. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  197. package/build/cjs/cc/_CCValues.generated.d.ts +2 -0
  198. package/build/cjs/cc/_CCValues.generated.js +28 -27
  199. package/build/cjs/cc/_CCValues.generated.js.map +3 -3
  200. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
  201. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +14 -14
  202. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  203. package/build/cjs/lib/API.d.ts +3 -3
  204. package/build/cjs/lib/API.js.map +2 -2
  205. package/build/cjs/lib/CommandClass.d.ts +5 -6
  206. package/build/cjs/lib/CommandClass.js +45 -45
  207. package/build/cjs/lib/CommandClass.js.map +3 -3
  208. package/build/cjs/lib/CommandClassDecorators.d.ts +2 -2
  209. package/build/cjs/lib/CommandClassDecorators.js +3 -3
  210. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  211. package/build/cjs/lib/Security2/Extension.d.ts +2 -2
  212. package/build/cjs/lib/Security2/Extension.js +17 -17
  213. package/build/cjs/lib/Security2/Extension.js.map +3 -3
  214. package/build/cjs/lib/SetValueResult.d.ts +1 -1
  215. package/build/cjs/lib/SetValueResult.js.map +1 -1
  216. package/build/cjs/lib/Values.d.ts +3 -3
  217. package/build/cjs/lib/Values.js +6 -6
  218. package/build/cjs/lib/Values.js.map +2 -2
  219. package/build/cjs/lib/_Types.d.ts +2 -2
  220. package/build/cjs/lib/_Types.js +3 -3
  221. package/build/cjs/lib/_Types.js.map +1 -1
  222. package/build/cjs/lib/serializers.d.ts +1 -1
  223. package/build/cjs/lib/serializers.js +5 -5
  224. package/build/cjs/lib/serializers.js.map +2 -2
  225. package/build/cjs/lib/traits.d.ts +2 -2
  226. package/build/cjs/lib/utils.d.ts +2 -2
  227. package/build/cjs/lib/utils.js +60 -60
  228. package/build/cjs/lib/utils.js.map +3 -3
  229. package/build/esm/cc/AlarmSensorCC.d.ts +7 -7
  230. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  231. package/build/esm/cc/AlarmSensorCC.js +2 -3
  232. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  233. package/build/esm/cc/AssociationCC.d.ts +8 -9
  234. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  235. package/build/esm/cc/AssociationCC.js +2 -2
  236. package/build/esm/cc/AssociationCC.js.map +1 -1
  237. package/build/esm/cc/AssociationGroupInfoCC.d.ts +7 -7
  238. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  239. package/build/esm/cc/AssociationGroupInfoCC.js +2 -3
  240. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  241. package/build/esm/cc/BarrierOperatorCC.d.ts +8 -8
  242. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  243. package/build/esm/cc/BarrierOperatorCC.js +2 -3
  244. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  245. package/build/esm/cc/BasicCC.d.ts +4 -4
  246. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  247. package/build/esm/cc/BasicCC.js +2 -3
  248. package/build/esm/cc/BasicCC.js.map +1 -1
  249. package/build/esm/cc/BatteryCC.d.ts +6 -8
  250. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  251. package/build/esm/cc/BatteryCC.js +13 -15
  252. package/build/esm/cc/BatteryCC.js.map +1 -1
  253. package/build/esm/cc/BinarySensorCC.d.ts +5 -5
  254. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  255. package/build/esm/cc/BinarySensorCC.js +2 -3
  256. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  257. package/build/esm/cc/BinarySwitchCC._validateArgs.js +1 -1
  258. package/build/esm/cc/BinarySwitchCC._validateArgs.js.map +1 -1
  259. package/build/esm/cc/BinarySwitchCC.d.ts +6 -6
  260. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  261. package/build/esm/cc/BinarySwitchCC.js +2 -2
  262. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  263. package/build/esm/cc/CRC16CC.d.ts +3 -3
  264. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  265. package/build/esm/cc/CRC16CC.js +2 -2
  266. package/build/esm/cc/CRC16CC.js.map +1 -1
  267. package/build/esm/cc/CentralSceneCC.d.ts +8 -8
  268. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  269. package/build/esm/cc/CentralSceneCC.js +2 -3
  270. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  271. package/build/esm/cc/ClimateControlScheduleCC.d.ts +6 -6
  272. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  273. package/build/esm/cc/ClimateControlScheduleCC.js +2 -3
  274. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  275. package/build/esm/cc/ClockCC.d.ts +3 -4
  276. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  277. package/build/esm/cc/ClockCC.js +2 -3
  278. package/build/esm/cc/ClockCC.js.map +1 -1
  279. package/build/esm/cc/ColorSwitchCC.d.ts +3 -4
  280. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  281. package/build/esm/cc/ColorSwitchCC.js +2 -4
  282. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  283. package/build/esm/cc/ConfigurationCC.d.ts +3 -3
  284. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  285. package/build/esm/cc/ConfigurationCC.js +2 -3
  286. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  287. package/build/esm/cc/DeviceResetLocallyCC.d.ts +2 -2
  288. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  289. package/build/esm/cc/DeviceResetLocallyCC.js +1 -1
  290. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  291. package/build/esm/cc/DoorLockCC.d.ts +29 -29
  292. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  293. package/build/esm/cc/DoorLockCC.js +2 -3
  294. package/build/esm/cc/DoorLockCC.js.map +1 -1
  295. package/build/esm/cc/DoorLockLoggingCC.d.ts +4 -4
  296. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  297. package/build/esm/cc/DoorLockLoggingCC.js +2 -3
  298. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  299. package/build/esm/cc/EnergyProductionCC.d.ts +2 -3
  300. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  301. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  302. package/build/esm/cc/EntryControlCC.d.ts +8 -8
  303. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  304. package/build/esm/cc/EntryControlCC.js +2 -3
  305. package/build/esm/cc/EntryControlCC.js.map +1 -1
  306. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +9 -10
  307. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  308. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +2 -3
  309. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  310. package/build/esm/cc/HailCC.js +1 -1
  311. package/build/esm/cc/HailCC.js.map +1 -1
  312. package/build/esm/cc/HumidityControlModeCC.d.ts +5 -5
  313. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  314. package/build/esm/cc/HumidityControlModeCC.js +2 -3
  315. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  316. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +3 -3
  317. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  318. package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -2
  319. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  320. package/build/esm/cc/HumidityControlSetpointCC.d.ts +6 -6
  321. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  322. package/build/esm/cc/HumidityControlSetpointCC.js +2 -3
  323. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  324. package/build/esm/cc/InclusionControllerCC.d.ts +2 -3
  325. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  326. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  327. package/build/esm/cc/IndicatorCC.d.ts +3 -3
  328. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  329. package/build/esm/cc/IndicatorCC.js +2 -4
  330. package/build/esm/cc/IndicatorCC.js.map +1 -1
  331. package/build/esm/cc/IrrigationCC.d.ts +3 -3
  332. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  333. package/build/esm/cc/IrrigationCC.js +2 -3
  334. package/build/esm/cc/IrrigationCC.js.map +1 -1
  335. package/build/esm/cc/LanguageCC.d.ts +5 -6
  336. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  337. package/build/esm/cc/LanguageCC.js +2 -3
  338. package/build/esm/cc/LanguageCC.js.map +1 -1
  339. package/build/esm/cc/LockCC.d.ts +4 -4
  340. package/build/esm/cc/LockCC.d.ts.map +1 -1
  341. package/build/esm/cc/LockCC.js +2 -2
  342. package/build/esm/cc/LockCC.js.map +1 -1
  343. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +4 -3
  344. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  345. package/build/esm/cc/ManufacturerProprietaryCC.js +5 -3
  346. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  347. package/build/esm/cc/ManufacturerSpecificCC.d.ts +7 -8
  348. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  349. package/build/esm/cc/ManufacturerSpecificCC.js +2 -3
  350. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  351. package/build/esm/cc/MeterCC.d.ts +4 -6
  352. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  353. package/build/esm/cc/MeterCC.js +2 -4
  354. package/build/esm/cc/MeterCC.js.map +1 -1
  355. package/build/esm/cc/MultiChannelAssociationCC.d.ts +7 -8
  356. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  357. package/build/esm/cc/MultiChannelAssociationCC.js +2 -3
  358. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  359. package/build/esm/cc/MultiChannelCC.d.ts +13 -12
  360. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  361. package/build/esm/cc/MultiChannelCC.js +65 -16
  362. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  363. package/build/esm/cc/MultiCommandCC.d.ts +3 -3
  364. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  365. package/build/esm/cc/MultiCommandCC.js +2 -2
  366. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  367. package/build/esm/cc/MultilevelSensorCC.d.ts +4 -7
  368. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  369. package/build/esm/cc/MultilevelSensorCC.js +2 -4
  370. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  371. package/build/esm/cc/MultilevelSwitchCC._validateArgs.js +1 -1
  372. package/build/esm/cc/MultilevelSwitchCC._validateArgs.js.map +1 -1
  373. package/build/esm/cc/MultilevelSwitchCC.d.ts +13 -13
  374. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  375. package/build/esm/cc/MultilevelSwitchCC.js +2 -3
  376. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  377. package/build/esm/cc/NoOperationCC.js +1 -1
  378. package/build/esm/cc/NoOperationCC.js.map +1 -1
  379. package/build/esm/cc/NodeNamingCC.d.ts +5 -5
  380. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  381. package/build/esm/cc/NodeNamingCC.js +2 -2
  382. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  383. package/build/esm/cc/NotificationCC.d.ts +4 -5
  384. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  385. package/build/esm/cc/NotificationCC.js +2 -4
  386. package/build/esm/cc/NotificationCC.js.map +1 -1
  387. package/build/esm/cc/PowerlevelCC.d.ts +3 -3
  388. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  389. package/build/esm/cc/PowerlevelCC.js +2 -3
  390. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  391. package/build/esm/cc/ProtectionCC._validateArgs.js +1 -1
  392. package/build/esm/cc/ProtectionCC._validateArgs.js.map +1 -1
  393. package/build/esm/cc/ProtectionCC.d.ts +11 -11
  394. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  395. package/build/esm/cc/ProtectionCC.js +2 -3
  396. package/build/esm/cc/ProtectionCC.js.map +1 -1
  397. package/build/esm/cc/SceneActivationCC._validateArgs.js +1 -1
  398. package/build/esm/cc/SceneActivationCC._validateArgs.js.map +1 -1
  399. package/build/esm/cc/SceneActivationCC.d.ts +5 -6
  400. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  401. package/build/esm/cc/SceneActivationCC.js +2 -2
  402. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  403. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js +1 -1
  404. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js.map +1 -1
  405. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +5 -5
  406. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  407. package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -3
  408. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  409. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js +1 -1
  410. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js.map +1 -1
  411. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +6 -6
  412. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  413. package/build/esm/cc/SceneControllerConfigurationCC.js +2 -3
  414. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  415. package/build/esm/cc/ScheduleEntryLockCC.d.ts +2 -3
  416. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  417. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  418. package/build/esm/cc/Security2CC.d.ts +3 -4
  419. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  420. package/build/esm/cc/Security2CC.js +2 -4
  421. package/build/esm/cc/Security2CC.js.map +1 -1
  422. package/build/esm/cc/SecurityCC.d.ts +3 -4
  423. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  424. package/build/esm/cc/SecurityCC.js +1 -2
  425. package/build/esm/cc/SecurityCC.js.map +1 -1
  426. package/build/esm/cc/SoundSwitchCC.d.ts +7 -7
  427. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  428. package/build/esm/cc/SoundSwitchCC.js +2 -3
  429. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  430. package/build/esm/cc/SupervisionCC.d.ts +4 -4
  431. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  432. package/build/esm/cc/SupervisionCC.js +2 -3
  433. package/build/esm/cc/SupervisionCC.js.map +1 -1
  434. package/build/esm/cc/ThermostatFanModeCC.d.ts +6 -6
  435. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  436. package/build/esm/cc/ThermostatFanModeCC.js +2 -3
  437. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  438. package/build/esm/cc/ThermostatFanStateCC.d.ts +3 -3
  439. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  440. package/build/esm/cc/ThermostatFanStateCC.js +2 -2
  441. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  442. package/build/esm/cc/ThermostatModeCC.d.ts +6 -6
  443. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  444. package/build/esm/cc/ThermostatModeCC.js +2 -3
  445. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  446. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +3 -4
  447. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  448. package/build/esm/cc/ThermostatOperatingStateCC.js +2 -2
  449. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  450. package/build/esm/cc/ThermostatSetbackCC.d.ts +3 -3
  451. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  452. package/build/esm/cc/ThermostatSetbackCC.js +2 -3
  453. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  454. package/build/esm/cc/ThermostatSetpointCC.d.ts +6 -6
  455. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  456. package/build/esm/cc/ThermostatSetpointCC.js +2 -3
  457. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  458. package/build/esm/cc/TimeCC.d.ts +3 -4
  459. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  460. package/build/esm/cc/TimeCC.js +1 -2
  461. package/build/esm/cc/TimeCC.js.map +1 -1
  462. package/build/esm/cc/TimeParametersCC.d.ts +3 -4
  463. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  464. package/build/esm/cc/TimeParametersCC.js +1 -1
  465. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  466. package/build/esm/cc/TransportServiceCC.d.ts +3 -3
  467. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  468. package/build/esm/cc/TransportServiceCC.js +2 -3
  469. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  470. package/build/esm/cc/UserCodeCC.d.ts +19 -19
  471. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  472. package/build/esm/cc/UserCodeCC.js +2 -3
  473. package/build/esm/cc/UserCodeCC.js.map +1 -1
  474. package/build/esm/cc/VersionCC.d.ts +17 -17
  475. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  476. package/build/esm/cc/VersionCC.js +2 -3
  477. package/build/esm/cc/VersionCC.js.map +1 -1
  478. package/build/esm/cc/WakeUpCC.d.ts +6 -6
  479. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  480. package/build/esm/cc/WakeUpCC.js +2 -3
  481. package/build/esm/cc/WakeUpCC.js.map +1 -1
  482. package/build/esm/cc/WindowCoveringCC.d.ts +3 -4
  483. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  484. package/build/esm/cc/WindowCoveringCC.js +1 -2
  485. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  486. package/build/esm/cc/ZWavePlusCC.d.ts +8 -8
  487. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  488. package/build/esm/cc/ZWavePlusCC.js +2 -3
  489. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  490. package/build/esm/cc/ZWaveProtocolCC.d.ts +2 -2
  491. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  492. package/build/esm/cc/ZWaveProtocolCC.js +1 -1
  493. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  494. package/build/esm/cc/_CCValues.generated.d.ts +2 -0
  495. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
  496. package/build/esm/cc/_CCValues.generated.js +5 -4
  497. package/build/esm/cc/_CCValues.generated.js.map +1 -1
  498. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
  499. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  500. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +1 -1
  501. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  502. package/build/esm/lib/API.d.ts +3 -3
  503. package/build/esm/lib/API.d.ts.map +1 -1
  504. package/build/esm/lib/API.js.map +1 -1
  505. package/build/esm/lib/CommandClass.d.ts +5 -6
  506. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  507. package/build/esm/lib/CommandClass.js +2 -2
  508. package/build/esm/lib/CommandClass.js.map +1 -1
  509. package/build/esm/lib/CommandClassDecorators.d.ts +2 -2
  510. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  511. package/build/esm/lib/CommandClassDecorators.js +1 -1
  512. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  513. package/build/esm/lib/Security2/Extension.d.ts +2 -2
  514. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  515. package/build/esm/lib/Security2/Extension.js +2 -2
  516. package/build/esm/lib/Security2/Extension.js.map +1 -1
  517. package/build/esm/lib/SetValueResult.d.ts +1 -1
  518. package/build/esm/lib/SetValueResult.d.ts.map +1 -1
  519. package/build/esm/lib/Values.d.ts +3 -3
  520. package/build/esm/lib/Values.d.ts.map +1 -1
  521. package/build/esm/lib/Values.js +1 -1
  522. package/build/esm/lib/Values.js.map +1 -1
  523. package/build/esm/lib/_Types.d.ts +2 -2
  524. package/build/esm/lib/_Types.d.ts.map +1 -1
  525. package/build/esm/lib/_Types.js +1 -1
  526. package/build/esm/lib/_Types.js.map +1 -1
  527. package/build/esm/lib/serializers.d.ts +1 -1
  528. package/build/esm/lib/serializers.d.ts.map +1 -1
  529. package/build/esm/lib/serializers.js +1 -1
  530. package/build/esm/lib/serializers.js.map +1 -1
  531. package/build/esm/lib/traits.d.ts +2 -2
  532. package/build/esm/lib/traits.d.ts.map +1 -1
  533. package/build/esm/lib/utils.d.ts +2 -2
  534. package/build/esm/lib/utils.d.ts.map +1 -1
  535. package/build/esm/lib/utils.js +2 -2
  536. package/build/esm/lib/utils.js.map +1 -1
  537. package/package.json +6 -6
@@ -46,9 +46,8 @@ __export(FirmwareUpdateMetaDataCC_exports, {
46
46
  });
47
47
  module.exports = __toCommonJS(FirmwareUpdateMetaDataCC_exports);
48
48
  var __validateArgs = __toESM(require("./FirmwareUpdateMetaDataCC._validateArgs.js"), 1);
49
- var import_safe = require("@zwave-js/core/safe");
50
- var import_safe2 = require("@zwave-js/shared/safe");
51
- var import_safe3 = require("@zwave-js/shared/safe");
49
+ var import_core = require("@zwave-js/core");
50
+ var import_shared = require("@zwave-js/shared");
52
51
  var import_API = require("../lib/API.js");
53
52
  var import_CommandClass = require("../lib/CommandClass.js");
54
53
  var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
@@ -97,7 +96,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
97
96
  };
98
97
  const { validateArgs_FirmwareUpdateMetaDataCCAPI_reportMetaData, validateArgs_FirmwareUpdateMetaDataCCAPI_requestUpdate, validateArgs_FirmwareUpdateMetaDataCCAPI_respondToUpdateRequest, validateArgs_FirmwareUpdateMetaDataCCAPI_respondToDownloadRequest, validateArgs_FirmwareUpdateMetaDataCCAPI_sendFirmwareFragment, validateArgs_FirmwareUpdateMetaDataCCAPI_activateFirmware } = __validateArgs;
99
98
  let FirmwareUpdateMetaDataCCAPI = (() => {
100
- let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Firmware Update Meta Data"])];
99
+ let _classDecorators = [(0, import_CommandClassDecorators.API)(import_core.CommandClasses["Firmware Update Meta Data"])];
101
100
  let _classDescriptor;
102
101
  let _classExtraInitializers = [];
103
102
  let _classThis;
@@ -163,7 +162,7 @@ let FirmwareUpdateMetaDataCCAPI = (() => {
163
162
  });
164
163
  const response = await this.host.sendCommand(cc, this.commandOptions);
165
164
  if (response) {
166
- return (0, import_safe3.pick)(response, [
165
+ return (0, import_shared.pick)(response, [
167
166
  "manufacturerId",
168
167
  "firmwareId",
169
168
  "checksum",
@@ -270,7 +269,7 @@ let FirmwareUpdateMetaDataCCAPI = (() => {
270
269
  return FirmwareUpdateMetaDataCCAPI2 = _classThis;
271
270
  })();
272
271
  let FirmwareUpdateMetaDataCC = (() => {
273
- let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Firmware Update Meta Data"]), (0, import_CommandClassDecorators.implementedVersion)(8), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.FirmwareUpdateMetaDataCCValues)];
272
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_core.CommandClasses["Firmware Update Meta Data"]), (0, import_CommandClassDecorators.implementedVersion)(8), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.FirmwareUpdateMetaDataCCValues)];
274
273
  let _classDescriptor;
275
274
  let _classExtraInitializers = [];
276
275
  let _classThis;
@@ -295,8 +294,8 @@ let FirmwareUpdateMetaDataCC = (() => {
295
294
  async interview(ctx) {
296
295
  const node = this.getNode(ctx);
297
296
  const endpoint = this.getEndpoint(ctx);
298
- const api = import_API.CCAPI.create(import_safe.CommandClasses["Firmware Update Meta Data"], ctx, endpoint).withOptions({
299
- priority: import_safe.MessagePriority.NodeQuery
297
+ const api = import_API.CCAPI.create(import_core.CommandClasses["Firmware Update Meta Data"], ctx, endpoint).withOptions({
298
+ priority: import_core.MessagePriority.NodeQuery
300
299
  });
301
300
  ctx.logNode(node.id, {
302
301
  endpoint: this.endpointIndex,
@@ -380,7 +379,7 @@ let FirmwareUpdateMetaDataCCMetaDataReport = (() => {
380
379
  this.supportsNonSecureTransfer = options.supportsNonSecureTransfer;
381
380
  }
382
381
  static from(raw, ctx) {
383
- (0, import_safe.validatePayload)(raw.payload.length >= 6);
382
+ (0, import_core.validatePayload)(raw.payload.length >= 6);
384
383
  const manufacturerId = raw.payload.readUInt16BE(0);
385
384
  const firmwareId = raw.payload.readUInt16BE(2);
386
385
  const checksum = raw.payload.readUInt16BE(4);
@@ -396,7 +395,7 @@ let FirmwareUpdateMetaDataCCMetaDataReport = (() => {
396
395
  maxFragmentSize = raw.payload.readUInt16BE(8);
397
396
  const numAdditionalFirmwares = raw.payload[7];
398
397
  additionalFirmwareIDs = [];
399
- (0, import_safe.validatePayload)(raw.payload.length >= 10 + 2 * numAdditionalFirmwares);
398
+ (0, import_core.validatePayload)(raw.payload.length >= 10 + 2 * numAdditionalFirmwares);
400
399
  for (let i = 0; i < numAdditionalFirmwares; i++) {
401
400
  additionalFirmwareIDs.push(raw.payload.readUInt16BE(10 + 2 * i));
402
401
  }
@@ -441,7 +440,7 @@ let FirmwareUpdateMetaDataCCMetaDataReport = (() => {
441
440
  supportsResuming;
442
441
  supportsNonSecureTransfer;
443
442
  serialize(ctx) {
444
- this.payload = import_safe2.Bytes.alloc(12 + 2 * this.additionalFirmwareIDs.length);
443
+ this.payload = import_shared.Bytes.alloc(12 + 2 * this.additionalFirmwareIDs.length);
445
444
  this.payload.writeUInt16BE(this.manufacturerId, 0);
446
445
  this.payload.writeUInt16BE(this.firmwareId, 2);
447
446
  this.payload.writeUInt16BE(this.checksum, 4);
@@ -543,7 +542,7 @@ let FirmwareUpdateMetaDataCCRequestReport = (() => {
543
542
  this.nonSecureTransfer = options.nonSecureTransfer;
544
543
  }
545
544
  static from(raw, ctx) {
546
- (0, import_safe.validatePayload)(raw.payload.length >= 1);
545
+ (0, import_core.validatePayload)(raw.payload.length >= 1);
547
546
  const status = raw.payload[0];
548
547
  let resume;
549
548
  let nonSecureTransfer;
@@ -562,7 +561,7 @@ let FirmwareUpdateMetaDataCCRequestReport = (() => {
562
561
  resume;
563
562
  nonSecureTransfer;
564
563
  serialize(ctx) {
565
- this.payload = import_safe2.Bytes.from([
564
+ this.payload = import_shared.Bytes.from([
566
565
  this.status,
567
566
  (this.resume ? 4 : 0) | (this.nonSecureTransfer ? 2 : 0)
568
567
  ]);
@@ -570,7 +569,7 @@ let FirmwareUpdateMetaDataCCRequestReport = (() => {
570
569
  }
571
570
  toLogEntry(ctx) {
572
571
  const message = {
573
- status: (0, import_safe3.getEnumMemberName)(import_Types.FirmwareUpdateRequestStatus, this.status)
572
+ status: (0, import_shared.getEnumMemberName)(import_Types.FirmwareUpdateRequestStatus, this.status)
574
573
  };
575
574
  if (this.resume != void 0) {
576
575
  message.resume = this.resume;
@@ -621,7 +620,7 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
621
620
  }
622
621
  }
623
622
  static from(raw, ctx) {
624
- (0, import_safe.validatePayload)(raw.payload.length >= 6);
623
+ (0, import_core.validatePayload)(raw.payload.length >= 6);
625
624
  const manufacturerId = raw.payload.readUInt16BE(0);
626
625
  const firmwareId = raw.payload.readUInt16BE(2);
627
626
  const checksum = raw.payload.readUInt16BE(4);
@@ -670,7 +669,7 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
670
669
  resume;
671
670
  nonSecureTransfer;
672
671
  serialize(ctx) {
673
- this.payload = import_safe2.Bytes.alloc(10, 0);
672
+ this.payload = import_shared.Bytes.alloc(10, 0);
674
673
  this.payload.writeUInt16BE(this.manufacturerId, 0);
675
674
  this.payload.writeUInt16BE(this.firmwareId, 2);
676
675
  this.payload.writeUInt16BE(this.checksum, 4);
@@ -678,7 +677,7 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
678
677
  this.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);
679
678
  this.payload[9] = (this.activation ? 1 : 0) | (this.nonSecureTransfer ? 2 : 0) | (this.resume ? 4 : 0);
680
679
  if (this.hardwareVersion != void 0) {
681
- this.payload = import_safe2.Bytes.concat([
680
+ this.payload = import_shared.Bytes.concat([
682
681
  this.payload,
683
682
  [this.hardwareVersion]
684
683
  ]);
@@ -687,9 +686,9 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
687
686
  }
688
687
  toLogEntry(ctx) {
689
688
  const message = {
690
- "manufacturer id": (0, import_safe3.num2hex)(this.manufacturerId),
691
- "firmware id": (0, import_safe3.num2hex)(this.firmwareId),
692
- checksum: (0, import_safe3.num2hex)(this.checksum)
689
+ "manufacturer id": (0, import_shared.num2hex)(this.manufacturerId),
690
+ "firmware id": (0, import_shared.num2hex)(this.firmwareId),
691
+ checksum: (0, import_shared.num2hex)(this.checksum)
693
692
  };
694
693
  if (this.firmwareTarget != void 0) {
695
694
  message["firmware target"] = this.firmwareTarget;
@@ -743,7 +742,7 @@ let FirmwareUpdateMetaDataCCGet = (() => {
743
742
  this.reportNumber = options.reportNumber;
744
743
  }
745
744
  static from(raw, ctx) {
746
- (0, import_safe.validatePayload)(raw.payload.length >= 3);
745
+ (0, import_core.validatePayload)(raw.payload.length >= 3);
747
746
  const numReports = raw.payload[0];
748
747
  const reportNumber = raw.payload.readUInt16BE(1) & 32767;
749
748
  return new this({
@@ -755,7 +754,7 @@ let FirmwareUpdateMetaDataCCGet = (() => {
755
754
  numReports;
756
755
  reportNumber;
757
756
  serialize(ctx) {
758
- this.payload = new import_safe2.Bytes(3);
757
+ this.payload = new import_shared.Bytes(3);
759
758
  this.payload[0] = this.numReports;
760
759
  this.payload.writeUInt16BE(this.reportNumber & 32767, 1);
761
760
  return super.serialize(ctx);
@@ -799,25 +798,25 @@ let FirmwareUpdateMetaDataCCReport = (() => {
799
798
  this.isLast = options.isLast;
800
799
  }
801
800
  static from(_raw, _ctx) {
802
- throw new import_safe.ZWaveError(`${this.name}: deserialization not implemented`, import_safe.ZWaveErrorCodes.Deserialization_NotImplemented);
801
+ throw new import_core.ZWaveError(`${this.name}: deserialization not implemented`, import_core.ZWaveErrorCodes.Deserialization_NotImplemented);
803
802
  }
804
803
  isLast;
805
804
  reportNumber;
806
805
  firmwareData;
807
806
  serialize(ctx) {
808
- const commandBuffer = import_safe2.Bytes.concat([
809
- new import_safe2.Bytes(2),
807
+ const commandBuffer = import_shared.Bytes.concat([
808
+ new import_shared.Bytes(2),
810
809
  // placeholder for report number
811
810
  this.firmwareData
812
811
  ]);
813
812
  commandBuffer.writeUInt16BE(this.reportNumber & 32767 | (this.isLast ? 32768 : 0), 0);
814
813
  const ccVersion = (0, import_CommandClass.getEffectiveCCVersion)(ctx, this);
815
814
  if (ccVersion >= 2) {
816
- let crc = (0, import_safe.CRC16_CCITT)(import_safe2.Bytes.from([this.ccId, this.ccCommand]));
817
- crc = (0, import_safe.CRC16_CCITT)(commandBuffer, crc);
818
- this.payload = import_safe2.Bytes.concat([
815
+ let crc = (0, import_core.CRC16_CCITT)(import_shared.Bytes.from([this.ccId, this.ccCommand]));
816
+ crc = (0, import_core.CRC16_CCITT)(commandBuffer, crc);
817
+ this.payload = import_shared.Bytes.concat([
819
818
  commandBuffer,
820
- new import_safe2.Bytes(2)
819
+ new import_shared.Bytes(2)
821
820
  ]);
822
821
  this.payload.writeUInt16BE(crc, this.payload.length - 2);
823
822
  } else {
@@ -863,7 +862,7 @@ let FirmwareUpdateMetaDataCCStatusReport = (() => {
863
862
  this.waitTime = options.waitTime;
864
863
  }
865
864
  static from(raw, ctx) {
866
- (0, import_safe.validatePayload)(raw.payload.length >= 1);
865
+ (0, import_core.validatePayload)(raw.payload.length >= 1);
867
866
  const status = raw.payload[0];
868
867
  let waitTime;
869
868
  if (raw.payload.length >= 3) {
@@ -879,14 +878,14 @@ let FirmwareUpdateMetaDataCCStatusReport = (() => {
879
878
  /** The wait time in seconds before the node becomes available for communication after the update */
880
879
  waitTime;
881
880
  serialize(ctx) {
882
- this.payload = new import_safe2.Bytes(3);
881
+ this.payload = new import_shared.Bytes(3);
883
882
  this.payload[0] = this.status;
884
883
  this.payload.writeUInt16BE(this.waitTime ?? 0, 1);
885
884
  return super.serialize(ctx);
886
885
  }
887
886
  toLogEntry(ctx) {
888
887
  const message = {
889
- status: (0, import_safe3.getEnumMemberName)(import_Types.FirmwareUpdateStatus, this.status)
888
+ status: (0, import_shared.getEnumMemberName)(import_Types.FirmwareUpdateStatus, this.status)
890
889
  };
891
890
  if (this.waitTime != void 0) {
892
891
  message["wait time"] = `${this.waitTime} seconds`;
@@ -929,7 +928,7 @@ let FirmwareUpdateMetaDataCCActivationReport = (() => {
929
928
  this.hardwareVersion = options.hardwareVersion;
930
929
  }
931
930
  static from(raw, ctx) {
932
- (0, import_safe.validatePayload)(raw.payload.length >= 8);
931
+ (0, import_core.validatePayload)(raw.payload.length >= 8);
933
932
  const manufacturerId = raw.payload.readUInt16BE(0);
934
933
  const firmwareId = raw.payload.readUInt16BE(2);
935
934
  const checksum = raw.payload.readUInt16BE(4);
@@ -956,14 +955,14 @@ let FirmwareUpdateMetaDataCCActivationReport = (() => {
956
955
  activationStatus;
957
956
  hardwareVersion;
958
957
  serialize(ctx) {
959
- this.payload = new import_safe2.Bytes(8);
958
+ this.payload = new import_shared.Bytes(8);
960
959
  this.payload.writeUInt16BE(this.manufacturerId, 0);
961
960
  this.payload.writeUInt16BE(this.firmwareId, 2);
962
961
  this.payload.writeUInt16BE(this.checksum, 4);
963
962
  this.payload[6] = this.firmwareTarget;
964
963
  this.payload[7] = this.activationStatus;
965
964
  if (this.hardwareVersion != void 0) {
966
- this.payload = import_safe2.Bytes.concat([
965
+ this.payload = import_shared.Bytes.concat([
967
966
  this.payload,
968
967
  [this.hardwareVersion]
969
968
  ]);
@@ -972,11 +971,11 @@ let FirmwareUpdateMetaDataCCActivationReport = (() => {
972
971
  }
973
972
  toLogEntry(ctx) {
974
973
  const message = {
975
- "manufacturer id": (0, import_safe3.num2hex)(this.manufacturerId),
976
- "firmware id": (0, import_safe3.num2hex)(this.firmwareId),
977
- checksum: (0, import_safe3.num2hex)(this.checksum),
974
+ "manufacturer id": (0, import_shared.num2hex)(this.manufacturerId),
975
+ "firmware id": (0, import_shared.num2hex)(this.firmwareId),
976
+ checksum: (0, import_shared.num2hex)(this.checksum),
978
977
  "firmware target": this.firmwareTarget,
979
- "activation status": (0, import_safe3.getEnumMemberName)(import_Types.FirmwareUpdateActivationStatus, this.activationStatus)
978
+ "activation status": (0, import_shared.getEnumMemberName)(import_Types.FirmwareUpdateActivationStatus, this.activationStatus)
980
979
  };
981
980
  if (this.hardwareVersion != void 0) {
982
981
  message.hardwareVersion = this.hardwareVersion;
@@ -1018,7 +1017,7 @@ let FirmwareUpdateMetaDataCCActivationSet = (() => {
1018
1017
  this.hardwareVersion = options.hardwareVersion;
1019
1018
  }
1020
1019
  static from(raw, ctx) {
1021
- (0, import_safe.validatePayload)(raw.payload.length >= 7);
1020
+ (0, import_core.validatePayload)(raw.payload.length >= 7);
1022
1021
  const manufacturerId = raw.payload.readUInt16BE(0);
1023
1022
  const firmwareId = raw.payload.readUInt16BE(2);
1024
1023
  const checksum = raw.payload.readUInt16BE(4);
@@ -1042,13 +1041,13 @@ let FirmwareUpdateMetaDataCCActivationSet = (() => {
1042
1041
  firmwareTarget;
1043
1042
  hardwareVersion;
1044
1043
  serialize(ctx) {
1045
- this.payload = new import_safe2.Bytes(7);
1044
+ this.payload = new import_shared.Bytes(7);
1046
1045
  this.payload.writeUInt16BE(this.manufacturerId, 0);
1047
1046
  this.payload.writeUInt16BE(this.firmwareId, 2);
1048
1047
  this.payload.writeUInt16BE(this.checksum, 4);
1049
1048
  this.payload[6] = this.firmwareTarget;
1050
1049
  if (this.hardwareVersion != void 0) {
1051
- this.payload = import_safe2.Bytes.concat([
1050
+ this.payload = import_shared.Bytes.concat([
1052
1051
  this.payload,
1053
1052
  [this.hardwareVersion]
1054
1053
  ]);
@@ -1057,9 +1056,9 @@ let FirmwareUpdateMetaDataCCActivationSet = (() => {
1057
1056
  }
1058
1057
  toLogEntry(ctx) {
1059
1058
  const message = {
1060
- "manufacturer id": (0, import_safe3.num2hex)(this.manufacturerId),
1061
- "firmware id": (0, import_safe3.num2hex)(this.firmwareId),
1062
- checksum: (0, import_safe3.num2hex)(this.checksum),
1059
+ "manufacturer id": (0, import_shared.num2hex)(this.manufacturerId),
1060
+ "firmware id": (0, import_shared.num2hex)(this.firmwareId),
1061
+ checksum: (0, import_shared.num2hex)(this.checksum),
1063
1062
  "firmware target": this.firmwareTarget
1064
1063
  };
1065
1064
  if (this.hardwareVersion != void 0) {
@@ -1099,7 +1098,7 @@ let FirmwareUpdateMetaDataCCPrepareReport = (() => {
1099
1098
  this.checksum = options.checksum;
1100
1099
  }
1101
1100
  static from(raw, ctx) {
1102
- (0, import_safe.validatePayload)(raw.payload.length >= 3);
1101
+ (0, import_core.validatePayload)(raw.payload.length >= 3);
1103
1102
  const status = raw.payload[0];
1104
1103
  const checksum = raw.payload.readUInt16BE(1);
1105
1104
  return new this({
@@ -1111,7 +1110,7 @@ let FirmwareUpdateMetaDataCCPrepareReport = (() => {
1111
1110
  status;
1112
1111
  checksum;
1113
1112
  serialize(ctx) {
1114
- this.payload = new import_safe2.Bytes(3);
1113
+ this.payload = new import_shared.Bytes(3);
1115
1114
  this.payload[0] = this.status;
1116
1115
  this.payload.writeUInt16BE(this.checksum, 1);
1117
1116
  return super.serialize(ctx);
@@ -1120,8 +1119,8 @@ let FirmwareUpdateMetaDataCCPrepareReport = (() => {
1120
1119
  return {
1121
1120
  ...super.toLogEntry(ctx),
1122
1121
  message: {
1123
- status: (0, import_safe3.getEnumMemberName)(import_Types.FirmwareDownloadStatus, this.status),
1124
- checksum: (0, import_safe3.num2hex)(this.checksum)
1122
+ status: (0, import_shared.getEnumMemberName)(import_Types.FirmwareDownloadStatus, this.status),
1123
+ checksum: (0, import_shared.num2hex)(this.checksum)
1125
1124
  }
1126
1125
  };
1127
1126
  }
@@ -1157,7 +1156,7 @@ let FirmwareUpdateMetaDataCCPrepareGet = (() => {
1157
1156
  this.hardwareVersion = options.hardwareVersion;
1158
1157
  }
1159
1158
  static from(raw, ctx) {
1160
- (0, import_safe.validatePayload)(raw.payload.length >= 8);
1159
+ (0, import_core.validatePayload)(raw.payload.length >= 8);
1161
1160
  const manufacturerId = raw.payload.readUInt16BE(0);
1162
1161
  const firmwareId = raw.payload.readUInt16BE(2);
1163
1162
  const firmwareTarget = raw.payload[4];
@@ -1178,7 +1177,7 @@ let FirmwareUpdateMetaDataCCPrepareGet = (() => {
1178
1177
  fragmentSize;
1179
1178
  hardwareVersion;
1180
1179
  serialize(ctx) {
1181
- this.payload = new import_safe2.Bytes(8);
1180
+ this.payload = new import_shared.Bytes(8);
1182
1181
  this.payload.writeUInt16BE(this.manufacturerId, 0);
1183
1182
  this.payload.writeUInt16BE(this.firmwareId, 2);
1184
1183
  this.payload[4] = this.firmwareTarget;
@@ -1190,8 +1189,8 @@ let FirmwareUpdateMetaDataCCPrepareGet = (() => {
1190
1189
  return {
1191
1190
  ...super.toLogEntry(ctx),
1192
1191
  message: {
1193
- "manufacturer id": (0, import_safe3.num2hex)(this.manufacturerId),
1194
- "firmware id": (0, import_safe3.num2hex)(this.firmwareId),
1192
+ "manufacturer id": (0, import_shared.num2hex)(this.manufacturerId),
1193
+ "firmware id": (0, import_shared.num2hex)(this.firmwareId),
1195
1194
  "firmware target": this.firmwareTarget,
1196
1195
  "fragment size": this.fragmentSize,
1197
1196
  "hardware version": this.hardwareVersion
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/FirmwareUpdateMetaDataCC.ts"],
4
- "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCRC16_CCITT,\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport {\n\ttype AllOrNone,\n\tgetEnumMemberName,\n\tnum2hex,\n\tpick,\n} from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tFirmwareDownloadStatus,\n\tFirmwareUpdateActivationStatus,\n\ttype FirmwareUpdateMetaData,\n\tFirmwareUpdateMetaDataCommand,\n\tFirmwareUpdateRequestStatus,\n\tFirmwareUpdateStatus,\n} from \"../lib/_Types.js\";\n\n// @noSetValueAPI There are no values to set here\n\nexport const FirmwareUpdateMetaDataCCValues = V.defineCCValues(\n\tCommandClasses[\"Firmware Update Meta Data\"],\n\t{\n\t\t...V.staticProperty(\"supportsActivation\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"firmwareUpgradable\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"additionalFirmwareIDs\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"continuesToFunction\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsResuming\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsNonSecureTransfer\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t},\n);\n\n@API(CommandClasses[\"Firmware Update Meta Data\"])\nexport class FirmwareUpdateMetaDataCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: FirmwareUpdateMetaDataCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.Report:\n\t\t\tcase FirmwareUpdateMetaDataCommand.StatusReport:\n\t\t\t\treturn true;\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.ActivationSet:\n\t\t\t\treturn (\n\t\t\t\t\tthis.version >= 4\n\t\t\t\t\t&& (this.version < 7\n\t\t\t\t\t\t|| this.tryGetValueDB()?.getValue(\n\t\t\t\t\t\t\t\tFirmwareUpdateMetaDataCCValues\n\t\t\t\t\t\t\t\t\t.supportsActivation.endpoint(\n\t\t\t\t\t\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t) === true)\n\t\t\t\t);\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareReport:\n\t\t\t\treturn this.version >= 5;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Requests information about the current firmware on the device\n\t */\n\tpublic async getMetaData(): Promise<MaybeNotKnown<FirmwareUpdateMetaData>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.MetaDataGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCMetaDataReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"manufacturerId\",\n\t\t\t\t\"firmwareId\",\n\t\t\t\t\"checksum\",\n\t\t\t\t\"firmwareUpgradable\",\n\t\t\t\t\"maxFragmentSize\",\n\t\t\t\t\"additionalFirmwareIDs\",\n\t\t\t\t\"hardwareVersion\",\n\t\t\t\t\"continuesToFunction\",\n\t\t\t\t\"supportsActivation\",\n\t\t\t\t\"supportsResuming\",\n\t\t\t\t\"supportsNonSecureTransfer\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportMetaData(\n\t\toptions: FirmwareUpdateMetaDataCCMetaDataReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Requests the device to start the firmware update process and waits for a response.\n\t * This response may time out on some devices, in which case the caller of this method\n\t * should wait manually.\n\t */\n\t@validateArgs()\n\tpublic requestUpdate(\n\t\toptions: FirmwareUpdateMetaDataCCRequestGetOptions,\n\t): Promise<FirmwareUpdateMetaDataCCRequestReport | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Responds to a firmware update request\n\t */\n\t@validateArgs()\n\tpublic async respondToUpdateRequest(\n\t\toptions: FirmwareUpdateMetaDataCCRequestReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Responds to a firmware download request\n\t */\n\t@validateArgs()\n\tpublic async respondToDownloadRequest(\n\t\toptions: FirmwareUpdateMetaDataCCPrepareReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.PrepareReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCPrepareReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Sends a fragment of the new firmware to the device\n\t */\n\t@validateArgs()\n\tpublic async sendFirmwareFragment(\n\t\tfragmentNumber: number,\n\t\tisLastFragment: boolean,\n\t\tdata: Uint8Array,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\treportNumber: fragmentNumber,\n\t\t\tisLast: isLastFragment,\n\t\t\tfirmwareData: data,\n\t\t});\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/** Activates a previously transferred firmware image */\n\t@validateArgs()\n\tpublic async activateFirmware(\n\t\toptions: FirmwareUpdateMetaDataCCActivationSetOptions,\n\t): Promise<MaybeNotKnown<FirmwareUpdateActivationStatus>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.ActivationSet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCActivationSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCActivationReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.activationStatus;\n\t}\n}\n\n@commandClass(CommandClasses[\"Firmware Update Meta Data\"])\n@implementedVersion(8)\n@ccValues(FirmwareUpdateMetaDataCCValues)\nexport class FirmwareUpdateMetaDataCC extends CommandClass {\n\tdeclare ccCommand: FirmwareUpdateMetaDataCommand;\n\n\tpublic skipEndpointInterview(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Firmware Update Meta Data\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"Querying firmware update capabilities...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst caps = await api.getMetaData();\n\t\tif (caps) {\n\t\t\tlet logMessage = `Received firmware update capabilities:`;\n\t\t\tif (caps.firmwareUpgradable) {\n\t\t\t\tlogMessage += `\n firmware targets: ${[0, ...caps.additionalFirmwareIDs].join(\", \")}\n continues to function: ${caps.continuesToFunction}\n supports activation: ${caps.supportsActivation}`;\n\t\t\t\tif (caps.supportsResuming != undefined) {\n\t\t\t\t\tlogMessage += `\n supports resuming: ${caps.supportsResuming}`;\n\t\t\t\t}\n\t\t\t\tif (caps.supportsNonSecureTransfer != undefined) {\n\t\t\t\t\tlogMessage += `\n supports non-secure transfer: ${caps.supportsNonSecureTransfer}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogMessage += `\\nfirmware upgradeable: false`;\n\t\t\t}\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"Firmware update capability query timed out\",\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCMetaDataReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId?: number;\n\tchecksum?: number;\n\tfirmwareUpgradable: boolean;\n\tmaxFragmentSize?: number;\n\tadditionalFirmwareIDs?: readonly number[];\n\thardwareVersion?: number;\n\tcontinuesToFunction?: MaybeNotKnown<boolean>;\n\tsupportsActivation?: MaybeNotKnown<boolean>;\n\tsupportsResuming?: MaybeNotKnown<boolean>;\n\tsupportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataReport)\n@ccValueProperty(\n\t\"firmwareUpgradable\",\n\tFirmwareUpdateMetaDataCCValues.firmwareUpgradable,\n)\n@ccValueProperty(\n\t\"additionalFirmwareIDs\",\n\tFirmwareUpdateMetaDataCCValues.additionalFirmwareIDs,\n)\n@ccValueProperty(\n\t\"continuesToFunction\",\n\tFirmwareUpdateMetaDataCCValues.continuesToFunction,\n)\n@ccValueProperty(\n\t\"supportsActivation\",\n\tFirmwareUpdateMetaDataCCValues.supportsActivation,\n)\n@ccValueProperty(\n\t\"supportsResuming\",\n\tFirmwareUpdateMetaDataCCValues.supportsResuming,\n)\n@ccValueProperty(\n\t\"supportsNonSecureTransfer\",\n\tFirmwareUpdateMetaDataCCValues.supportsNonSecureTransfer,\n)\nexport class FirmwareUpdateMetaDataCCMetaDataReport\n\textends FirmwareUpdateMetaDataCC\n\timplements FirmwareUpdateMetaData\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCMetaDataReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId ?? 0;\n\t\tthis.checksum = options.checksum ?? 0;\n\t\tthis.firmwareUpgradable = options.firmwareUpgradable;\n\t\tthis.maxFragmentSize = options.maxFragmentSize;\n\t\tthis.additionalFirmwareIDs = options.additionalFirmwareIDs ?? [];\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\tthis.continuesToFunction = options.continuesToFunction;\n\t\tthis.supportsActivation = options.supportsActivation;\n\t\tthis.supportsResuming = options.supportsResuming;\n\t\tthis.supportsNonSecureTransfer = options.supportsNonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCMetaDataReport {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\t// V1/V2 only have a single firmware which must be upgradable\n\t\tconst firmwareUpgradable = raw.payload[6] === 0xff\n\t\t\t|| raw.payload[6] == undefined;\n\n\t\tlet maxFragmentSize: number | undefined;\n\t\tlet additionalFirmwareIDs: number[] | undefined;\n\t\tlet hardwareVersion: number | undefined;\n\t\tlet continuesToFunction: MaybeNotKnown<boolean>;\n\t\tlet supportsActivation: MaybeNotKnown<boolean>;\n\t\tlet supportsResuming: MaybeNotKnown<boolean>;\n\t\tlet supportsNonSecureTransfer: MaybeNotKnown<boolean>;\n\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V3+\n\t\t\tmaxFragmentSize = raw.payload.readUInt16BE(8);\n\t\t\t// Read variable length list of additional firmwares\n\t\t\tconst numAdditionalFirmwares = raw.payload[7];\n\t\t\tadditionalFirmwareIDs = [];\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 10 + 2 * numAdditionalFirmwares,\n\t\t\t);\n\t\t\tfor (let i = 0; i < numAdditionalFirmwares; i++) {\n\t\t\t\tadditionalFirmwareIDs.push(\n\t\t\t\t\traw.payload.readUInt16BE(10 + 2 * i),\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Read hardware version (if it exists)\n\t\t\tlet offset = 10 + 2 * numAdditionalFirmwares;\n\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t// V5+\n\t\t\t\thardwareVersion = raw.payload[offset];\n\t\t\t\toffset++;\n\t\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t\t// V6+\n\t\t\t\t\tconst capabilities = raw.payload[offset];\n\t\t\t\t\toffset++;\n\n\t\t\t\t\tcontinuesToFunction = !!(capabilities & 0b1);\n\t\t\t\t\t// V7+\n\t\t\t\t\tsupportsActivation = !!(capabilities & 0b10);\n\t\t\t\t\t// V8+\n\t\t\t\t\tsupportsResuming = !!(capabilities & 0b1000);\n\t\t\t\t\tsupportsNonSecureTransfer = !!(capabilities & 0b100);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareUpgradable,\n\t\t\tmaxFragmentSize,\n\t\t\tadditionalFirmwareIDs,\n\t\t\thardwareVersion,\n\t\t\tcontinuesToFunction,\n\t\t\tsupportsActivation,\n\t\t\tsupportsResuming,\n\t\t\tsupportsNonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\n\tpublic readonly firmwareUpgradable: boolean;\n\tpublic readonly maxFragmentSize?: number;\n\n\tpublic readonly additionalFirmwareIDs: readonly number[] = [];\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic readonly continuesToFunction: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsActivation: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsResuming?: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(\n\t\t\t12 + 2 * this.additionalFirmwareIDs.length,\n\t\t);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareUpgradable ? 0xff : 0;\n\t\tthis.payload[7] = this.additionalFirmwareIDs.length;\n\t\tthis.payload.writeUInt16BE(this.maxFragmentSize ?? 0xff, 8);\n\t\tlet offset = 10;\n\t\tfor (const id of this.additionalFirmwareIDs) {\n\t\t\tthis.payload.writeUInt16BE(id, offset);\n\t\t\toffset += 2;\n\t\t}\n\t\tthis.payload[offset++] = this.hardwareVersion ?? 0xff;\n\t\tthis.payload[offset++] = (this.continuesToFunction ? 0b1 : 0)\n\t\t\t| (this.supportsActivation ? 0b10 : 0)\n\t\t\t| (this.supportsNonSecureTransfer ? 0b100 : 0)\n\t\t\t| (this.supportsResuming ? 0b1000 : 0);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": this.manufacturerId,\n\t\t\t\"firmware id\": this.firmwareId,\n\t\t\tchecksum: this.checksum,\n\t\t\t\"firmware upgradable\": this.firmwareUpgradable,\n\t\t};\n\t\tif (this.maxFragmentSize != undefined) {\n\t\t\tmessage[\"max fragment size\"] = this.maxFragmentSize;\n\t\t}\n\t\tif (this.additionalFirmwareIDs.length) {\n\t\t\tmessage[\"additional firmware IDs\"] = JSON.stringify(\n\t\t\t\tthis.additionalFirmwareIDs,\n\t\t\t);\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\tif (this.continuesToFunction != undefined) {\n\t\t\tmessage[\"continues to function\"] = this.continuesToFunction;\n\t\t}\n\t\tif (this.supportsActivation != undefined) {\n\t\t\tmessage[\"supports activation\"] = this.supportsActivation;\n\t\t}\n\t\tif (this.supportsResuming != undefined) {\n\t\t\tmessage[\"supports resuming\"] = this.supportsResuming;\n\t\t}\n\t\tif (this.supportsNonSecureTransfer != undefined) {\n\t\t\tmessage[\"supports non-secure transfer\"] =\n\t\t\t\tthis.supportsNonSecureTransfer;\n\t\t}\n\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCMetaDataReport)\nexport class FirmwareUpdateMetaDataCCMetaDataGet\n\textends FirmwareUpdateMetaDataCC\n{}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCRequestReportOptions {\n\tstatus: FirmwareUpdateRequestStatus;\n\tresume?: boolean;\n\tnonSecureTransfer?: boolean;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestReport)\nexport class FirmwareUpdateMetaDataCCRequestReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.resume = options.resume;\n\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateRequestStatus = raw.payload[0];\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tif (raw.payload.length >= 2) {\n\t\t\tresume = !!(raw.payload[1] & 0b100);\n\t\t\tnonSecureTransfer = !!(raw.payload[1] & 0b10);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateRequestStatus;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.status,\n\t\t\t(this.resume ? 0b100 : 0) | (this.nonSecureTransfer ? 0b10 : 0),\n\t\t]);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(\n\t\t\t\tFirmwareUpdateRequestStatus,\n\t\t\t\tthis.status,\n\t\t\t),\n\t\t};\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type FirmwareUpdateMetaDataCCRequestGetOptions =\n\t& {\n\t\tmanufacturerId: number;\n\t\tfirmwareId: number;\n\t\tchecksum: number;\n\t}\n\t& AllOrNone<{\n\t\t// V3+\n\t\tfirmwareTarget: number;\n\t\tfragmentSize: number;\n\t\t// V4+\n\t\tactivation?: boolean;\n\t\t// V5+\n\t\thardwareVersion?: number;\n\t\t// V8+\n\t\tresume?: boolean;\n\t\tnonSecureTransfer?: boolean;\n\t}>;\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestGet)\n// The response may take a while to be received on some devices, so manual waiting might be required\n@expectedCCResponse(FirmwareUpdateMetaDataCCRequestReport)\nexport class FirmwareUpdateMetaDataCCRequestGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tif (\"firmwareTarget\" in options) {\n\t\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\t\tthis.fragmentSize = options.fragmentSize;\n\t\t\tthis.activation = options.activation ?? false;\n\t\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\t\tthis.resume = options.resume;\n\t\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t\t}\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestGet {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\tif (raw.payload.length < 9) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmanufacturerId,\n\t\t\t\tfirmwareId,\n\t\t\t\tchecksum,\n\t\t\t});\n\t\t}\n\n\t\t// V3+\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(7);\n\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tlet activation: boolean | undefined;\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V4+\n\t\t\tactivation = !!(raw.payload[9] & 0b1);\n\t\t\tnonSecureTransfer = !!(raw.payload[9] & 0b10);\n\t\t\tresume = !!(raw.payload[9] & 0b100);\n\t\t}\n\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 11) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[10];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\tactivation,\n\t\t\thardwareVersion,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget?: number;\n\tpublic fragmentSize?: number;\n\tpublic activation?: boolean;\n\tpublic hardwareVersion?: number;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(10, 0);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget ?? 0;\n\t\t// 32 seems like a reasonable default fragment size,\n\t\t// but it should be specified anyways\n\t\tthis.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);\n\t\tthis.payload[9] = (this.activation ? 0b1 : 0)\n\t\t\t| (this.nonSecureTransfer ? 0b10 : 0)\n\t\t\t| (this.resume ? 0b100 : 0);\n\t\t// Hardware version is not always set, but devices check it\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t};\n\t\tif (this.firmwareTarget != undefined) {\n\t\t\tmessage[\"firmware target\"] = this.firmwareTarget;\n\t\t}\n\t\tif (this.fragmentSize != undefined) {\n\t\t\tmessage[\"fragment size\"] = this.fragmentSize;\n\t\t}\n\t\tif (this.activation != undefined) {\n\t\t\tmessage.activation = this.activation;\n\t\t}\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCGetOptions {\n\tnumReports: number;\n\treportNumber: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Get)\n// This is sent to us from the node, so we expect no response\nexport class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.numReports = options.numReports;\n\t\tthis.reportNumber = options.reportNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCGet {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst numReports = raw.payload[0];\n\t\tconst reportNumber = raw.payload.readUInt16BE(1) & 0x7fff;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnumReports,\n\t\t\treportNumber,\n\t\t});\n\t}\n\n\tpublic readonly numReports: number;\n\tpublic readonly reportNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.numReports;\n\t\tthis.payload.writeUInt16BE(this.reportNumber & 0x7fff, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"total # of reports\": this.numReports,\n\t\t\t\t\"report number\": this.reportNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCReportOptions {\n\tisLast: boolean;\n\treportNumber: number;\n\tfirmwareData: Uint8Array;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Report)\n// We send this in reply to the Get command and expect no response\nexport class FirmwareUpdateMetaDataCCReport extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.reportNumber = options.reportNumber;\n\t\tthis.firmwareData = options.firmwareData;\n\t\tthis.isLast = options.isLast;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCReport {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCReport({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic isLast: boolean;\n\tpublic reportNumber: number;\n\tpublic firmwareData: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst commandBuffer = Bytes.concat([\n\t\t\tnew Bytes(2), // placeholder for report number\n\t\t\tthis.firmwareData,\n\t\t]);\n\t\tcommandBuffer.writeUInt16BE(\n\t\t\t(this.reportNumber & 0x7fff) | (this.isLast ? 0x8000 : 0),\n\t\t\t0,\n\t\t);\n\n\t\t// V1 devices would consider the checksum to be part of the firmware data\n\t\t// so it must not be included for those\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (ccVersion >= 2) {\n\t\t\t// Compute and save the CRC16 in the payload\n\t\t\t// The CC header is included in the CRC computation\n\t\t\tlet crc = CRC16_CCITT(Bytes.from([this.ccId, this.ccCommand]));\n\t\t\tcrc = CRC16_CCITT(commandBuffer, crc);\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tcommandBuffer,\n\t\t\t\tnew Bytes(2),\n\t\t\t]);\n\t\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\t\t} else {\n\t\t\tthis.payload = commandBuffer;\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"report #\": this.reportNumber,\n\t\t\t\t\"is last\": this.isLast,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCStatusReportOptions {\n\tstatus: FirmwareUpdateStatus;\n\twaitTime?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.StatusReport)\nexport class FirmwareUpdateMetaDataCCStatusReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCStatusReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.waitTime = options.waitTime;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCStatusReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateStatus = raw.payload[0];\n\t\tlet waitTime: number | undefined;\n\t\tif (raw.payload.length >= 3) {\n\t\t\twaitTime = raw.payload.readUInt16BE(1);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\twaitTime,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateStatus;\n\t/** The wait time in seconds before the node becomes available for communication after the update */\n\tpublic readonly waitTime?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.waitTime ?? 0, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(FirmwareUpdateStatus, this.status),\n\t\t};\n\t\tif (this.waitTime != undefined) {\n\t\t\tmessage[\"wait time\"] = `${this.waitTime} seconds`;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\tactivationStatus: FirmwareUpdateActivationStatus;\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.activationStatus = options.activationStatus;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationReport {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst activationStatus: FirmwareUpdateActivationStatus = raw.payload[7];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 9) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[8];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tactivationStatus,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\tpublic readonly firmwareTarget: number;\n\tpublic readonly activationStatus: FirmwareUpdateActivationStatus;\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tthis.payload[7] = this.activationStatus;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\"activation status\": getEnumMemberName(\n\t\t\t\tFirmwareUpdateActivationStatus,\n\t\t\t\tthis.activationStatus,\n\t\t\t),\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage.hardwareVersion = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationSetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\t// V5+\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationSet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationSet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationSet {\n\t\tvalidatePayload(raw.payload.length >= 7);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 8) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[7];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget: number;\n\tpublic hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(7);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareReportOptions {\n\tstatus: FirmwareDownloadStatus;\n\tchecksum: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.checksum = options.checksum;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst status: FirmwareDownloadStatus = raw.payload[0];\n\t\tconst checksum = raw.payload.readUInt16BE(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tchecksum,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareDownloadStatus;\n\tpublic readonly checksum: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.checksum, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\tstatus: getEnumMemberName(FirmwareDownloadStatus, this.status),\n\t\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareGetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tfirmwareTarget: number;\n\tfragmentSize: number;\n\thardwareVersion: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCPrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.fragmentSize = options.fragmentSize;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareGet {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst firmwareTarget = raw.payload[4];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(5);\n\t\tconst hardwareVersion = raw.payload[7];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic firmwareTarget: number;\n\tpublic fragmentSize: number;\n\tpublic hardwareVersion: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload[4] = this.firmwareTarget;\n\t\tthis.payload.writeUInt16BE(this.fragmentSize, 5);\n\t\tthis.payload[7] = this.hardwareVersion;\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\t\"fragment size\": this.fragmentSize,\n\t\t\t\t\"hardware version\": this.hardwareVersion,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_safe"]
4
+ "sourcesContent": ["import type { CCEncodingContext, CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCRC16_CCITT,\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport {\n\ttype AllOrNone,\n\tBytes,\n\tgetEnumMemberName,\n\tnum2hex,\n\tpick,\n} from \"@zwave-js/shared\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tFirmwareDownloadStatus,\n\tFirmwareUpdateActivationStatus,\n\ttype FirmwareUpdateMetaData,\n\tFirmwareUpdateMetaDataCommand,\n\tFirmwareUpdateRequestStatus,\n\tFirmwareUpdateStatus,\n} from \"../lib/_Types.js\";\n\n// @noSetValueAPI There are no values to set here\n\nexport const FirmwareUpdateMetaDataCCValues = V.defineCCValues(\n\tCommandClasses[\"Firmware Update Meta Data\"],\n\t{\n\t\t...V.staticProperty(\"supportsActivation\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"firmwareUpgradable\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"additionalFirmwareIDs\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"continuesToFunction\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsResuming\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsNonSecureTransfer\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t},\n);\n\n@API(CommandClasses[\"Firmware Update Meta Data\"])\nexport class FirmwareUpdateMetaDataCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: FirmwareUpdateMetaDataCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.Report:\n\t\t\tcase FirmwareUpdateMetaDataCommand.StatusReport:\n\t\t\t\treturn true;\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.ActivationSet:\n\t\t\t\treturn (\n\t\t\t\t\tthis.version >= 4\n\t\t\t\t\t&& (this.version < 7\n\t\t\t\t\t\t|| this.tryGetValueDB()?.getValue(\n\t\t\t\t\t\t\t\tFirmwareUpdateMetaDataCCValues\n\t\t\t\t\t\t\t\t\t.supportsActivation.endpoint(\n\t\t\t\t\t\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t) === true)\n\t\t\t\t);\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareReport:\n\t\t\t\treturn this.version >= 5;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Requests information about the current firmware on the device\n\t */\n\tpublic async getMetaData(): Promise<MaybeNotKnown<FirmwareUpdateMetaData>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.MetaDataGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCMetaDataReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"manufacturerId\",\n\t\t\t\t\"firmwareId\",\n\t\t\t\t\"checksum\",\n\t\t\t\t\"firmwareUpgradable\",\n\t\t\t\t\"maxFragmentSize\",\n\t\t\t\t\"additionalFirmwareIDs\",\n\t\t\t\t\"hardwareVersion\",\n\t\t\t\t\"continuesToFunction\",\n\t\t\t\t\"supportsActivation\",\n\t\t\t\t\"supportsResuming\",\n\t\t\t\t\"supportsNonSecureTransfer\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportMetaData(\n\t\toptions: FirmwareUpdateMetaDataCCMetaDataReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Requests the device to start the firmware update process and waits for a response.\n\t * This response may time out on some devices, in which case the caller of this method\n\t * should wait manually.\n\t */\n\t@validateArgs()\n\tpublic requestUpdate(\n\t\toptions: FirmwareUpdateMetaDataCCRequestGetOptions,\n\t): Promise<FirmwareUpdateMetaDataCCRequestReport | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Responds to a firmware update request\n\t */\n\t@validateArgs()\n\tpublic async respondToUpdateRequest(\n\t\toptions: FirmwareUpdateMetaDataCCRequestReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Responds to a firmware download request\n\t */\n\t@validateArgs()\n\tpublic async respondToDownloadRequest(\n\t\toptions: FirmwareUpdateMetaDataCCPrepareReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.PrepareReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCPrepareReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Sends a fragment of the new firmware to the device\n\t */\n\t@validateArgs()\n\tpublic async sendFirmwareFragment(\n\t\tfragmentNumber: number,\n\t\tisLastFragment: boolean,\n\t\tdata: Uint8Array,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\treportNumber: fragmentNumber,\n\t\t\tisLast: isLastFragment,\n\t\t\tfirmwareData: data,\n\t\t});\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/** Activates a previously transferred firmware image */\n\t@validateArgs()\n\tpublic async activateFirmware(\n\t\toptions: FirmwareUpdateMetaDataCCActivationSetOptions,\n\t): Promise<MaybeNotKnown<FirmwareUpdateActivationStatus>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.ActivationSet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCActivationSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCActivationReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.activationStatus;\n\t}\n}\n\n@commandClass(CommandClasses[\"Firmware Update Meta Data\"])\n@implementedVersion(8)\n@ccValues(FirmwareUpdateMetaDataCCValues)\nexport class FirmwareUpdateMetaDataCC extends CommandClass {\n\tdeclare ccCommand: FirmwareUpdateMetaDataCommand;\n\n\tpublic skipEndpointInterview(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Firmware Update Meta Data\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"Querying firmware update capabilities...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst caps = await api.getMetaData();\n\t\tif (caps) {\n\t\t\tlet logMessage = `Received firmware update capabilities:`;\n\t\t\tif (caps.firmwareUpgradable) {\n\t\t\t\tlogMessage += `\n firmware targets: ${[0, ...caps.additionalFirmwareIDs].join(\", \")}\n continues to function: ${caps.continuesToFunction}\n supports activation: ${caps.supportsActivation}`;\n\t\t\t\tif (caps.supportsResuming != undefined) {\n\t\t\t\t\tlogMessage += `\n supports resuming: ${caps.supportsResuming}`;\n\t\t\t\t}\n\t\t\t\tif (caps.supportsNonSecureTransfer != undefined) {\n\t\t\t\t\tlogMessage += `\n supports non-secure transfer: ${caps.supportsNonSecureTransfer}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogMessage += `\\nfirmware upgradeable: false`;\n\t\t\t}\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"Firmware update capability query timed out\",\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCMetaDataReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId?: number;\n\tchecksum?: number;\n\tfirmwareUpgradable: boolean;\n\tmaxFragmentSize?: number;\n\tadditionalFirmwareIDs?: readonly number[];\n\thardwareVersion?: number;\n\tcontinuesToFunction?: MaybeNotKnown<boolean>;\n\tsupportsActivation?: MaybeNotKnown<boolean>;\n\tsupportsResuming?: MaybeNotKnown<boolean>;\n\tsupportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataReport)\n@ccValueProperty(\n\t\"firmwareUpgradable\",\n\tFirmwareUpdateMetaDataCCValues.firmwareUpgradable,\n)\n@ccValueProperty(\n\t\"additionalFirmwareIDs\",\n\tFirmwareUpdateMetaDataCCValues.additionalFirmwareIDs,\n)\n@ccValueProperty(\n\t\"continuesToFunction\",\n\tFirmwareUpdateMetaDataCCValues.continuesToFunction,\n)\n@ccValueProperty(\n\t\"supportsActivation\",\n\tFirmwareUpdateMetaDataCCValues.supportsActivation,\n)\n@ccValueProperty(\n\t\"supportsResuming\",\n\tFirmwareUpdateMetaDataCCValues.supportsResuming,\n)\n@ccValueProperty(\n\t\"supportsNonSecureTransfer\",\n\tFirmwareUpdateMetaDataCCValues.supportsNonSecureTransfer,\n)\nexport class FirmwareUpdateMetaDataCCMetaDataReport\n\textends FirmwareUpdateMetaDataCC\n\timplements FirmwareUpdateMetaData\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCMetaDataReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId ?? 0;\n\t\tthis.checksum = options.checksum ?? 0;\n\t\tthis.firmwareUpgradable = options.firmwareUpgradable;\n\t\tthis.maxFragmentSize = options.maxFragmentSize;\n\t\tthis.additionalFirmwareIDs = options.additionalFirmwareIDs ?? [];\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\tthis.continuesToFunction = options.continuesToFunction;\n\t\tthis.supportsActivation = options.supportsActivation;\n\t\tthis.supportsResuming = options.supportsResuming;\n\t\tthis.supportsNonSecureTransfer = options.supportsNonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCMetaDataReport {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\t// V1/V2 only have a single firmware which must be upgradable\n\t\tconst firmwareUpgradable = raw.payload[6] === 0xff\n\t\t\t|| raw.payload[6] == undefined;\n\n\t\tlet maxFragmentSize: number | undefined;\n\t\tlet additionalFirmwareIDs: number[] | undefined;\n\t\tlet hardwareVersion: number | undefined;\n\t\tlet continuesToFunction: MaybeNotKnown<boolean>;\n\t\tlet supportsActivation: MaybeNotKnown<boolean>;\n\t\tlet supportsResuming: MaybeNotKnown<boolean>;\n\t\tlet supportsNonSecureTransfer: MaybeNotKnown<boolean>;\n\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V3+\n\t\t\tmaxFragmentSize = raw.payload.readUInt16BE(8);\n\t\t\t// Read variable length list of additional firmwares\n\t\t\tconst numAdditionalFirmwares = raw.payload[7];\n\t\t\tadditionalFirmwareIDs = [];\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 10 + 2 * numAdditionalFirmwares,\n\t\t\t);\n\t\t\tfor (let i = 0; i < numAdditionalFirmwares; i++) {\n\t\t\t\tadditionalFirmwareIDs.push(\n\t\t\t\t\traw.payload.readUInt16BE(10 + 2 * i),\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Read hardware version (if it exists)\n\t\t\tlet offset = 10 + 2 * numAdditionalFirmwares;\n\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t// V5+\n\t\t\t\thardwareVersion = raw.payload[offset];\n\t\t\t\toffset++;\n\t\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t\t// V6+\n\t\t\t\t\tconst capabilities = raw.payload[offset];\n\t\t\t\t\toffset++;\n\n\t\t\t\t\tcontinuesToFunction = !!(capabilities & 0b1);\n\t\t\t\t\t// V7+\n\t\t\t\t\tsupportsActivation = !!(capabilities & 0b10);\n\t\t\t\t\t// V8+\n\t\t\t\t\tsupportsResuming = !!(capabilities & 0b1000);\n\t\t\t\t\tsupportsNonSecureTransfer = !!(capabilities & 0b100);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareUpgradable,\n\t\t\tmaxFragmentSize,\n\t\t\tadditionalFirmwareIDs,\n\t\t\thardwareVersion,\n\t\t\tcontinuesToFunction,\n\t\t\tsupportsActivation,\n\t\t\tsupportsResuming,\n\t\t\tsupportsNonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\n\tpublic readonly firmwareUpgradable: boolean;\n\tpublic readonly maxFragmentSize?: number;\n\n\tpublic readonly additionalFirmwareIDs: readonly number[] = [];\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic readonly continuesToFunction: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsActivation: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsResuming?: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(\n\t\t\t12 + 2 * this.additionalFirmwareIDs.length,\n\t\t);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareUpgradable ? 0xff : 0;\n\t\tthis.payload[7] = this.additionalFirmwareIDs.length;\n\t\tthis.payload.writeUInt16BE(this.maxFragmentSize ?? 0xff, 8);\n\t\tlet offset = 10;\n\t\tfor (const id of this.additionalFirmwareIDs) {\n\t\t\tthis.payload.writeUInt16BE(id, offset);\n\t\t\toffset += 2;\n\t\t}\n\t\tthis.payload[offset++] = this.hardwareVersion ?? 0xff;\n\t\tthis.payload[offset++] = (this.continuesToFunction ? 0b1 : 0)\n\t\t\t| (this.supportsActivation ? 0b10 : 0)\n\t\t\t| (this.supportsNonSecureTransfer ? 0b100 : 0)\n\t\t\t| (this.supportsResuming ? 0b1000 : 0);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": this.manufacturerId,\n\t\t\t\"firmware id\": this.firmwareId,\n\t\t\tchecksum: this.checksum,\n\t\t\t\"firmware upgradable\": this.firmwareUpgradable,\n\t\t};\n\t\tif (this.maxFragmentSize != undefined) {\n\t\t\tmessage[\"max fragment size\"] = this.maxFragmentSize;\n\t\t}\n\t\tif (this.additionalFirmwareIDs.length) {\n\t\t\tmessage[\"additional firmware IDs\"] = JSON.stringify(\n\t\t\t\tthis.additionalFirmwareIDs,\n\t\t\t);\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\tif (this.continuesToFunction != undefined) {\n\t\t\tmessage[\"continues to function\"] = this.continuesToFunction;\n\t\t}\n\t\tif (this.supportsActivation != undefined) {\n\t\t\tmessage[\"supports activation\"] = this.supportsActivation;\n\t\t}\n\t\tif (this.supportsResuming != undefined) {\n\t\t\tmessage[\"supports resuming\"] = this.supportsResuming;\n\t\t}\n\t\tif (this.supportsNonSecureTransfer != undefined) {\n\t\t\tmessage[\"supports non-secure transfer\"] =\n\t\t\t\tthis.supportsNonSecureTransfer;\n\t\t}\n\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCMetaDataReport)\nexport class FirmwareUpdateMetaDataCCMetaDataGet\n\textends FirmwareUpdateMetaDataCC\n{}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCRequestReportOptions {\n\tstatus: FirmwareUpdateRequestStatus;\n\tresume?: boolean;\n\tnonSecureTransfer?: boolean;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestReport)\nexport class FirmwareUpdateMetaDataCCRequestReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.resume = options.resume;\n\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateRequestStatus = raw.payload[0];\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tif (raw.payload.length >= 2) {\n\t\t\tresume = !!(raw.payload[1] & 0b100);\n\t\t\tnonSecureTransfer = !!(raw.payload[1] & 0b10);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateRequestStatus;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.status,\n\t\t\t(this.resume ? 0b100 : 0) | (this.nonSecureTransfer ? 0b10 : 0),\n\t\t]);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(\n\t\t\t\tFirmwareUpdateRequestStatus,\n\t\t\t\tthis.status,\n\t\t\t),\n\t\t};\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type FirmwareUpdateMetaDataCCRequestGetOptions =\n\t& {\n\t\tmanufacturerId: number;\n\t\tfirmwareId: number;\n\t\tchecksum: number;\n\t}\n\t& AllOrNone<{\n\t\t// V3+\n\t\tfirmwareTarget: number;\n\t\tfragmentSize: number;\n\t\t// V4+\n\t\tactivation?: boolean;\n\t\t// V5+\n\t\thardwareVersion?: number;\n\t\t// V8+\n\t\tresume?: boolean;\n\t\tnonSecureTransfer?: boolean;\n\t}>;\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestGet)\n// The response may take a while to be received on some devices, so manual waiting might be required\n@expectedCCResponse(FirmwareUpdateMetaDataCCRequestReport)\nexport class FirmwareUpdateMetaDataCCRequestGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tif (\"firmwareTarget\" in options) {\n\t\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\t\tthis.fragmentSize = options.fragmentSize;\n\t\t\tthis.activation = options.activation ?? false;\n\t\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\t\tthis.resume = options.resume;\n\t\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t\t}\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestGet {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\tif (raw.payload.length < 9) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmanufacturerId,\n\t\t\t\tfirmwareId,\n\t\t\t\tchecksum,\n\t\t\t});\n\t\t}\n\n\t\t// V3+\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(7);\n\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tlet activation: boolean | undefined;\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V4+\n\t\t\tactivation = !!(raw.payload[9] & 0b1);\n\t\t\tnonSecureTransfer = !!(raw.payload[9] & 0b10);\n\t\t\tresume = !!(raw.payload[9] & 0b100);\n\t\t}\n\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 11) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[10];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\tactivation,\n\t\t\thardwareVersion,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget?: number;\n\tpublic fragmentSize?: number;\n\tpublic activation?: boolean;\n\tpublic hardwareVersion?: number;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(10, 0);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget ?? 0;\n\t\t// 32 seems like a reasonable default fragment size,\n\t\t// but it should be specified anyways\n\t\tthis.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);\n\t\tthis.payload[9] = (this.activation ? 0b1 : 0)\n\t\t\t| (this.nonSecureTransfer ? 0b10 : 0)\n\t\t\t| (this.resume ? 0b100 : 0);\n\t\t// Hardware version is not always set, but devices check it\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t};\n\t\tif (this.firmwareTarget != undefined) {\n\t\t\tmessage[\"firmware target\"] = this.firmwareTarget;\n\t\t}\n\t\tif (this.fragmentSize != undefined) {\n\t\t\tmessage[\"fragment size\"] = this.fragmentSize;\n\t\t}\n\t\tif (this.activation != undefined) {\n\t\t\tmessage.activation = this.activation;\n\t\t}\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCGetOptions {\n\tnumReports: number;\n\treportNumber: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Get)\n// This is sent to us from the node, so we expect no response\nexport class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.numReports = options.numReports;\n\t\tthis.reportNumber = options.reportNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCGet {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst numReports = raw.payload[0];\n\t\tconst reportNumber = raw.payload.readUInt16BE(1) & 0x7fff;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnumReports,\n\t\t\treportNumber,\n\t\t});\n\t}\n\n\tpublic readonly numReports: number;\n\tpublic readonly reportNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.numReports;\n\t\tthis.payload.writeUInt16BE(this.reportNumber & 0x7fff, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"total # of reports\": this.numReports,\n\t\t\t\t\"report number\": this.reportNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCReportOptions {\n\tisLast: boolean;\n\treportNumber: number;\n\tfirmwareData: Uint8Array;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Report)\n// We send this in reply to the Get command and expect no response\nexport class FirmwareUpdateMetaDataCCReport extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.reportNumber = options.reportNumber;\n\t\tthis.firmwareData = options.firmwareData;\n\t\tthis.isLast = options.isLast;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCReport {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCReport({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic isLast: boolean;\n\tpublic reportNumber: number;\n\tpublic firmwareData: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst commandBuffer = Bytes.concat([\n\t\t\tnew Bytes(2), // placeholder for report number\n\t\t\tthis.firmwareData,\n\t\t]);\n\t\tcommandBuffer.writeUInt16BE(\n\t\t\t(this.reportNumber & 0x7fff) | (this.isLast ? 0x8000 : 0),\n\t\t\t0,\n\t\t);\n\n\t\t// V1 devices would consider the checksum to be part of the firmware data\n\t\t// so it must not be included for those\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (ccVersion >= 2) {\n\t\t\t// Compute and save the CRC16 in the payload\n\t\t\t// The CC header is included in the CRC computation\n\t\t\tlet crc = CRC16_CCITT(Bytes.from([this.ccId, this.ccCommand]));\n\t\t\tcrc = CRC16_CCITT(commandBuffer, crc);\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tcommandBuffer,\n\t\t\t\tnew Bytes(2),\n\t\t\t]);\n\t\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\t\t} else {\n\t\t\tthis.payload = commandBuffer;\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"report #\": this.reportNumber,\n\t\t\t\t\"is last\": this.isLast,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCStatusReportOptions {\n\tstatus: FirmwareUpdateStatus;\n\twaitTime?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.StatusReport)\nexport class FirmwareUpdateMetaDataCCStatusReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCStatusReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.waitTime = options.waitTime;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCStatusReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateStatus = raw.payload[0];\n\t\tlet waitTime: number | undefined;\n\t\tif (raw.payload.length >= 3) {\n\t\t\twaitTime = raw.payload.readUInt16BE(1);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\twaitTime,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateStatus;\n\t/** The wait time in seconds before the node becomes available for communication after the update */\n\tpublic readonly waitTime?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.waitTime ?? 0, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(FirmwareUpdateStatus, this.status),\n\t\t};\n\t\tif (this.waitTime != undefined) {\n\t\t\tmessage[\"wait time\"] = `${this.waitTime} seconds`;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\tactivationStatus: FirmwareUpdateActivationStatus;\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.activationStatus = options.activationStatus;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationReport {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst activationStatus: FirmwareUpdateActivationStatus = raw.payload[7];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 9) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[8];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tactivationStatus,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\tpublic readonly firmwareTarget: number;\n\tpublic readonly activationStatus: FirmwareUpdateActivationStatus;\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tthis.payload[7] = this.activationStatus;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\"activation status\": getEnumMemberName(\n\t\t\t\tFirmwareUpdateActivationStatus,\n\t\t\t\tthis.activationStatus,\n\t\t\t),\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage.hardwareVersion = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationSetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\t// V5+\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationSet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationSet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationSet {\n\t\tvalidatePayload(raw.payload.length >= 7);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 8) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[7];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget: number;\n\tpublic hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(7);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareReportOptions {\n\tstatus: FirmwareDownloadStatus;\n\tchecksum: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.checksum = options.checksum;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst status: FirmwareDownloadStatus = raw.payload[0];\n\t\tconst checksum = raw.payload.readUInt16BE(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tchecksum,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareDownloadStatus;\n\tpublic readonly checksum: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.checksum, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\tstatus: getEnumMemberName(FirmwareDownloadStatus, this.status),\n\t\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareGetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tfirmwareTarget: number;\n\tfragmentSize: number;\n\thardwareVersion: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCPrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.fragmentSize = options.fragmentSize;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareGet {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst firmwareTarget = raw.payload[4];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(5);\n\t\tconst hardwareVersion = raw.payload[7];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic firmwareTarget: number;\n\tpublic fragmentSize: number;\n\tpublic hardwareVersion: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload[4] = this.firmwareTarget;\n\t\tthis.payload.writeUInt16BE(this.fragmentSize, 5);\n\t\tthis.payload[7] = this.hardwareVersion;\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\t\"fragment size\": this.fragmentSize,\n\t\t\t\t\"hardware version\": this.hardwareVersion,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
7
  }