@zwave-js/cc 14.0.0-beta.4 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/build/cjs/cc/AlarmSensorCC.js +381 -266
  2. package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
  3. package/build/cjs/cc/AssociationCC.js +669 -503
  4. package/build/cjs/cc/AssociationCC.js.map +3 -3
  5. package/build/cjs/cc/AssociationGroupInfoCC.js +633 -492
  6. package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
  7. package/build/cjs/cc/BarrierOperatorCC.js +595 -429
  8. package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
  9. package/build/cjs/cc/BasicCC.js +354 -260
  10. package/build/cjs/cc/BasicCC.js.map +3 -3
  11. package/build/cjs/cc/BatteryCC.js +427 -345
  12. package/build/cjs/cc/BatteryCC.js.map +3 -3
  13. package/build/cjs/cc/BinarySensorCC.js +391 -276
  14. package/build/cjs/cc/BinarySensorCC.js.map +3 -3
  15. package/build/cjs/cc/BinarySwitchCC.js +347 -253
  16. package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
  17. package/build/cjs/cc/CRC16CC.js +160 -85
  18. package/build/cjs/cc/CRC16CC.js.map +3 -3
  19. package/build/cjs/cc/CentralSceneCC.js +459 -324
  20. package/build/cjs/cc/CentralSceneCC.js.map +3 -3
  21. package/build/cjs/cc/ClimateControlScheduleCC.js +459 -293
  22. package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
  23. package/build/cjs/cc/ClockCC.js +254 -150
  24. package/build/cjs/cc/ClockCC.js.map +3 -3
  25. package/build/cjs/cc/ColorSwitchCC.js +758 -610
  26. package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
  27. package/build/cjs/cc/ConfigurationCC.js +1700 -1453
  28. package/build/cjs/cc/ConfigurationCC.js.map +3 -3
  29. package/build/cjs/cc/DeviceResetLocallyCC.js +125 -49
  30. package/build/cjs/cc/DeviceResetLocallyCC.js.map +3 -3
  31. package/build/cjs/cc/DoorLockCC.js +904 -777
  32. package/build/cjs/cc/DoorLockCC.js.map +3 -3
  33. package/build/cjs/cc/DoorLockLoggingCC.js +321 -206
  34. package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
  35. package/build/cjs/cc/EnergyProductionCC.js +249 -160
  36. package/build/cjs/cc/EnergyProductionCC.js.map +3 -3
  37. package/build/cjs/cc/EntryControlCC.js +619 -458
  38. package/build/cjs/cc/EntryControlCC.js.map +3 -3
  39. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +898 -698
  40. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
  41. package/build/cjs/cc/HailCC.js +57 -11
  42. package/build/cjs/cc/HailCC.js.map +2 -2
  43. package/build/cjs/cc/HumidityControlModeCC.js +359 -233
  44. package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
  45. package/build/cjs/cc/HumidityControlOperatingStateCC.js +189 -103
  46. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
  47. package/build/cjs/cc/HumidityControlSetpointCC.js +682 -495
  48. package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
  49. package/build/cjs/cc/InclusionControllerCC.js +205 -114
  50. package/build/cjs/cc/InclusionControllerCC.js.map +3 -3
  51. package/build/cjs/cc/IndicatorCC.js +897 -736
  52. package/build/cjs/cc/IndicatorCC.js.map +3 -3
  53. package/build/cjs/cc/IrrigationCC.js +1651 -1405
  54. package/build/cjs/cc/IrrigationCC.js.map +3 -3
  55. package/build/cjs/cc/LanguageCC.js +268 -171
  56. package/build/cjs/cc/LanguageCC.js.map +3 -3
  57. package/build/cjs/cc/LockCC.js +254 -154
  58. package/build/cjs/cc/LockCC.js.map +3 -3
  59. package/build/cjs/cc/ManufacturerProprietaryCC.js +189 -129
  60. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  61. package/build/cjs/cc/ManufacturerSpecificCC.js +319 -213
  62. package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
  63. package/build/cjs/cc/MeterCC.js +827 -707
  64. package/build/cjs/cc/MeterCC.js.map +3 -3
  65. package/build/cjs/cc/MultiChannelAssociationCC.js +612 -478
  66. package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
  67. package/build/cjs/cc/MultiChannelCC.js +1037 -819
  68. package/build/cjs/cc/MultiChannelCC.js.map +3 -3
  69. package/build/cjs/cc/MultiCommandCC.js +172 -97
  70. package/build/cjs/cc/MultiCommandCC.js.map +3 -3
  71. package/build/cjs/cc/MultilevelSensorCC.js +589 -449
  72. package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
  73. package/build/cjs/cc/MultilevelSwitchCC.js +587 -439
  74. package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
  75. package/build/cjs/cc/NoOperationCC.js +89 -27
  76. package/build/cjs/cc/NoOperationCC.js.map +2 -2
  77. package/build/cjs/cc/NodeNamingCC.js +417 -277
  78. package/build/cjs/cc/NodeNamingCC.js.map +3 -3
  79. package/build/cjs/cc/NotificationCC.js +972 -818
  80. package/build/cjs/cc/NotificationCC.js.map +3 -3
  81. package/build/cjs/cc/PowerlevelCC.js +450 -303
  82. package/build/cjs/cc/PowerlevelCC.js.map +3 -3
  83. package/build/cjs/cc/ProtectionCC.js +686 -494
  84. package/build/cjs/cc/ProtectionCC.js.map +3 -3
  85. package/build/cjs/cc/SceneActivationCC.js +165 -97
  86. package/build/cjs/cc/SceneActivationCC.js.map +3 -3
  87. package/build/cjs/cc/SceneActuatorConfigurationCC.js +346 -243
  88. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
  89. package/build/cjs/cc/SceneControllerConfigurationCC.js +401 -298
  90. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
  91. package/build/cjs/cc/ScheduleEntryLockCC.js +1552 -1272
  92. package/build/cjs/cc/ScheduleEntryLockCC.js.map +3 -3
  93. package/build/cjs/cc/Security2CC.js +1483 -1219
  94. package/build/cjs/cc/Security2CC.js.map +3 -3
  95. package/build/cjs/cc/SecurityCC.js +839 -619
  96. package/build/cjs/cc/SecurityCC.js.map +3 -3
  97. package/build/cjs/cc/SoundSwitchCC.js +707 -515
  98. package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
  99. package/build/cjs/cc/SupervisionCC.js +327 -237
  100. package/build/cjs/cc/SupervisionCC.js.map +3 -3
  101. package/build/cjs/cc/ThermostatFanModeCC.js +386 -263
  102. package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
  103. package/build/cjs/cc/ThermostatFanStateCC.js +192 -106
  104. package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
  105. package/build/cjs/cc/ThermostatModeCC.js +425 -302
  106. package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
  107. package/build/cjs/cc/ThermostatOperatingStateCC.js +188 -102
  108. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
  109. package/build/cjs/cc/ThermostatSetbackCC.js +277 -173
  110. package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
  111. package/build/cjs/cc/ThermostatSetpointCC.js +645 -491
  112. package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
  113. package/build/cjs/cc/TimeCC.js +515 -353
  114. package/build/cjs/cc/TimeCC.js.map +3 -3
  115. package/build/cjs/cc/TimeParametersCC.js +302 -202
  116. package/build/cjs/cc/TimeParametersCC.js.map +3 -3
  117. package/build/cjs/cc/TransportServiceCC.js +433 -315
  118. package/build/cjs/cc/TransportServiceCC.js.map +3 -3
  119. package/build/cjs/cc/UserCodeCC.js +1385 -1102
  120. package/build/cjs/cc/UserCodeCC.js.map +3 -3
  121. package/build/cjs/cc/VersionCC.js +696 -562
  122. package/build/cjs/cc/VersionCC.js.map +3 -3
  123. package/build/cjs/cc/WakeUpCC.js +499 -346
  124. package/build/cjs/cc/WakeUpCC.js.map +3 -3
  125. package/build/cjs/cc/WindowCoveringCC.js +626 -478
  126. package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
  127. package/build/cjs/cc/ZWaveLongRangeCC.js +57 -10
  128. package/build/cjs/cc/ZWaveLongRangeCC.js.map +2 -2
  129. package/build/cjs/cc/ZWavePlusCC.js +233 -159
  130. package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
  131. package/build/cjs/cc/ZWaveProtocolCC.js +1515 -948
  132. package/build/cjs/cc/ZWaveProtocolCC.js.map +3 -3
  133. package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  134. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +1 -1
  135. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +395 -274
  136. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +3 -3
  137. package/build/cjs/lib/CommandClassDecorators.d.ts +11 -15
  138. package/build/cjs/lib/CommandClassDecorators.js +19 -20
  139. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  140. package/build/cjs/lib/Security2/Extension.d.ts +1 -1
  141. package/build/cjs/lib/Security2/Extension.js +217 -126
  142. package/build/cjs/lib/Security2/Extension.js.map +3 -3
  143. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  144. package/build/esm/cc/AlarmSensorCC.js +389 -291
  145. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  146. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  147. package/build/esm/cc/AssociationCC.js +678 -537
  148. package/build/esm/cc/AssociationCC.js.map +1 -1
  149. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  150. package/build/esm/cc/AssociationGroupInfoCC.js +659 -539
  151. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  152. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  153. package/build/esm/cc/BarrierOperatorCC.js +634 -493
  154. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  155. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  156. package/build/esm/cc/BasicCC.js +380 -302
  157. package/build/esm/cc/BasicCC.js.map +1 -1
  158. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  159. package/build/esm/cc/BatteryCC.js +449 -384
  160. package/build/esm/cc/BatteryCC.js.map +1 -1
  161. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  162. package/build/esm/cc/BinarySensorCC.js +395 -297
  163. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  164. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  165. package/build/esm/cc/BinarySwitchCC.js +353 -274
  166. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  167. package/build/esm/cc/CRC16CC.js +162 -98
  168. package/build/esm/cc/CRC16CC.js.map +1 -1
  169. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  170. package/build/esm/cc/CentralSceneCC.js +465 -351
  171. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  172. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  173. package/build/esm/cc/ClimateControlScheduleCC.js +454 -313
  174. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  175. package/build/esm/cc/ClockCC.js +248 -159
  176. package/build/esm/cc/ClockCC.js.map +1 -1
  177. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  178. package/build/esm/cc/ColorSwitchCC.js +802 -677
  179. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  180. package/build/esm/cc/ConfigurationCC.js +1899 -1687
  181. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  182. package/build/esm/cc/DeviceResetLocallyCC.js +124 -59
  183. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  184. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  185. package/build/esm/cc/DoorLockCC.js +951 -849
  186. package/build/esm/cc/DoorLockCC.js.map +1 -1
  187. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  188. package/build/esm/cc/DoorLockLoggingCC.js +316 -218
  189. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  190. package/build/esm/cc/EnergyProductionCC.js +240 -164
  191. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  192. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  193. package/build/esm/cc/EntryControlCC.js +629 -493
  194. package/build/esm/cc/EntryControlCC.js.map +1 -1
  195. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  196. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +938 -769
  197. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  198. package/build/esm/cc/HailCC.js +51 -12
  199. package/build/esm/cc/HailCC.js.map +1 -1
  200. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  201. package/build/esm/cc/HumidityControlModeCC.js +357 -250
  202. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  203. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  204. package/build/esm/cc/HumidityControlOperatingStateCC.js +182 -109
  205. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  206. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  207. package/build/esm/cc/HumidityControlSetpointCC.js +706 -546
  208. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  209. package/build/esm/cc/InclusionControllerCC.js +197 -119
  210. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  211. package/build/esm/cc/IndicatorCC.js +973 -835
  212. package/build/esm/cc/IndicatorCC.js.map +1 -1
  213. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  214. package/build/esm/cc/IrrigationCC.js +1697 -1496
  215. package/build/esm/cc/IrrigationCC.js.map +1 -1
  216. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  217. package/build/esm/cc/LanguageCC.js +266 -184
  218. package/build/esm/cc/LanguageCC.js.map +1 -1
  219. package/build/esm/cc/LockCC.d.ts.map +1 -1
  220. package/build/esm/cc/LockCC.js +247 -162
  221. package/build/esm/cc/LockCC.js.map +1 -1
  222. package/build/esm/cc/ManufacturerProprietaryCC.js +192 -141
  223. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  224. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  225. package/build/esm/cc/ManufacturerSpecificCC.js +312 -223
  226. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  227. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  228. package/build/esm/cc/MeterCC.js +896 -795
  229. package/build/esm/cc/MeterCC.js.map +1 -1
  230. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  231. package/build/esm/cc/MultiChannelAssociationCC.js +631 -518
  232. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  233. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  234. package/build/esm/cc/MultiChannelCC.js +1106 -921
  235. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  236. package/build/esm/cc/MultiCommandCC.js +166 -102
  237. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  238. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  239. package/build/esm/cc/MultilevelSensorCC.js +616 -497
  240. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  241. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  242. package/build/esm/cc/MultilevelSwitchCC.js +621 -496
  243. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  244. package/build/esm/cc/NoOperationCC.js +82 -29
  245. package/build/esm/cc/NoOperationCC.js.map +1 -1
  246. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  247. package/build/esm/cc/NodeNamingCC.js +413 -294
  248. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  249. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  250. package/build/esm/cc/NotificationCC.js +1097 -966
  251. package/build/esm/cc/NotificationCC.js.map +1 -1
  252. package/build/esm/cc/PowerlevelCC.js +437 -311
  253. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  254. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  255. package/build/esm/cc/ProtectionCC.js +704 -543
  256. package/build/esm/cc/ProtectionCC.js.map +1 -1
  257. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  258. package/build/esm/cc/SceneActivationCC.js +157 -100
  259. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  260. package/build/esm/cc/SceneActuatorConfigurationCC.js +357 -269
  261. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  262. package/build/esm/cc/SceneControllerConfigurationCC.js +434 -346
  263. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  264. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  265. package/build/esm/cc/ScheduleEntryLockCC.js +1596 -1357
  266. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  267. package/build/esm/cc/Security2CC.js +1633 -1406
  268. package/build/esm/cc/Security2CC.js.map +1 -1
  269. package/build/esm/cc/SecurityCC.js +876 -687
  270. package/build/esm/cc/SecurityCC.js.map +1 -1
  271. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  272. package/build/esm/cc/SoundSwitchCC.js +689 -526
  273. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  274. package/build/esm/cc/SupervisionCC.js +349 -272
  275. package/build/esm/cc/SupervisionCC.js.map +1 -1
  276. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  277. package/build/esm/cc/ThermostatFanModeCC.js +388 -284
  278. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  279. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  280. package/build/esm/cc/ThermostatFanStateCC.js +184 -111
  281. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  282. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  283. package/build/esm/cc/ThermostatModeCC.js +435 -331
  284. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  285. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  286. package/build/esm/cc/ThermostatOperatingStateCC.js +180 -107
  287. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  288. package/build/esm/cc/ThermostatSetbackCC.js +274 -185
  289. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  290. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  291. package/build/esm/cc/ThermostatSetpointCC.js +674 -543
  292. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  293. package/build/esm/cc/TimeCC.js +499 -360
  294. package/build/esm/cc/TimeCC.js.map +1 -1
  295. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  296. package/build/esm/cc/TimeParametersCC.js +296 -211
  297. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  298. package/build/esm/cc/TransportServiceCC.js +464 -363
  299. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  300. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  301. package/build/esm/cc/UserCodeCC.js +1443 -1205
  302. package/build/esm/cc/UserCodeCC.js.map +1 -1
  303. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  304. package/build/esm/cc/VersionCC.js +744 -635
  305. package/build/esm/cc/VersionCC.js.map +1 -1
  306. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  307. package/build/esm/cc/WakeUpCC.js +494 -364
  308. package/build/esm/cc/WakeUpCC.js.map +1 -1
  309. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  310. package/build/esm/cc/WindowCoveringCC.js +655 -530
  311. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  312. package/build/esm/cc/ZWaveLongRangeCC.js +51 -11
  313. package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -1
  314. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  315. package/build/esm/cc/ZWavePlusCC.js +223 -162
  316. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  317. package/build/esm/cc/ZWaveProtocolCC.js +1443 -953
  318. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  319. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  320. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
  321. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +390 -286
  322. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  323. package/build/esm/lib/CommandClassDecorators.d.ts +11 -15
  324. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  325. package/build/esm/lib/CommandClassDecorators.js +24 -24
  326. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  327. package/build/esm/lib/Security2/Extension.d.ts +1 -1
  328. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  329. package/build/esm/lib/Security2/Extension.js +207 -123
  330. package/build/esm/lib/Security2/Extension.js.map +1 -1
  331. package/package.json +6 -6
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/BinarySwitchCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\tDuration,\n\ttype MaybeNotKnown,\n\ttype MaybeUnknown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype SupervisionResult,\n\tUNKNOWN_STATE,\n\tValueMetadata,\n\ttype WithAddress,\n\tencodeMaybeBoolean,\n\tmaybeUnknownToString,\n\tparseMaybeBoolean,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\tSET_VALUE_HOOKS,\n\ttype SetValueImplementation,\n\ttype SetValueImplementationHooksFactory,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValue,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BinarySwitchCommand } from \"../lib/_Types.js\";\n\nexport const BinarySwitchCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Binary Switch\"], {\n\t\t...V.staticProperty(\n\t\t\t\"currentValue\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyBoolean,\n\t\t\t\tlabel: \"Current value\",\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"targetValue\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Boolean,\n\t\t\t\tlabel: \"Target value\",\n\t\t\t\tvalueChangeOptions: [\"transitionDuration\"],\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"duration\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyDuration,\n\t\t\t\tlabel: \"Remaining duration\",\n\t\t\t} as const,\n\t\t\t{ minVersion: 2 } as const,\n\t\t),\n\t}),\n});\n\n@API(CommandClasses[\"Binary Switch\"])\nexport class BinarySwitchCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: BinarySwitchCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase BinarySwitchCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase BinarySwitchCommand.Set:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(\n\t\t\tBinarySwitchCommand,\n\t\t\tBinarySwitchCommand.Get,\n\t\t);\n\n\t\tconst cc = new BinarySwitchCCGet({\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<BinarySwitchCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\t// interpret unknown values as false\n\t\t\t\tcurrentValue: response.currentValue || false,\n\t\t\t\ttargetValue: response.targetValue,\n\t\t\t\tduration: response.duration,\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Sets the switch to the given value\n\t * @param targetValue The target value to set\n\t * @param duration The duration after which the target value should be reached. Can be a Duration instance or a user-friendly duration string like `\"1m17s\"`. Only supported in V2 and above.\n\t */\n\t@validateArgs()\n\tpublic async set(\n\t\ttargetValue: boolean,\n\t\tduration?: Duration | string,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBinarySwitchCommand,\n\t\t\tBinarySwitchCommand.Set,\n\t\t);\n\n\t\tconst cc = new BinarySwitchCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\ttargetValue,\n\t\t\tduration,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: BinarySwitchCCAPI,\n\t\t\t{ property },\n\t\t\tvalue,\n\t\t\toptions,\n\t\t) {\n\t\t\tif (property !== \"targetValue\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof value !== \"boolean\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"boolean\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst duration = Duration.from(options?.transitionDuration);\n\t\t\treturn this.set(value, duration);\n\t\t};\n\t}\n\n\tprotected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = (\n\t\t{ property },\n\t\tvalue,\n\t\toptions,\n\t) => {\n\t\tif (property === \"targetValue\") {\n\t\t\tconst currentValueValueId = BinarySwitchCCValues.currentValue\n\t\t\t\t.endpoint(this.endpoint.index);\n\n\t\t\treturn {\n\t\t\t\toptimisticallyUpdateRelatedValues: (\n\t\t\t\t\t_supervisedAndSuccessful,\n\t\t\t\t) => {\n\t\t\t\t\t// After setting targetValue, optimistically update currentValue\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\t\t\t\tcurrentValueValueId,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (this.isMulticast()) {\n\t\t\t\t\t\t// Figure out which nodes were affected by this command\n\t\t\t\t\t\tconst affectedNodes = this.endpoint.node.physicalNodes\n\t\t\t\t\t\t\t.filter((node) =>\n\t\t\t\t\t\t\t\tnode\n\t\t\t\t\t\t\t\t\t.getEndpoint(this.endpoint.index)\n\t\t\t\t\t\t\t\t\t?.supportsCC(this.ccId)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t// and optimistically update the currentValue\n\t\t\t\t\t\tfor (const node of affectedNodes) {\n\t\t\t\t\t\t\tthis.host\n\t\t\t\t\t\t\t\t.tryGetValueDB(node.id)\n\t\t\t\t\t\t\t\t?.setValue(currentValueValueId, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tverifyChanges: () => {\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\t// We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n\t\t\t\t\t\tthis.schedulePoll(currentValueValueId, value, {\n\t\t\t\t\t\t\tduration: Duration.from(\n\t\t\t\t\t\t\t\toptions?.transitionDuration,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t// on/off \"transitions\" are usually fast\n\t\t\t\t\t\t\ttransition: \"fast\",\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t};\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: BinarySwitchCCAPI, { property }) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"currentValue\":\n\t\t\t\tcase \"targetValue\":\n\t\t\t\tcase \"duration\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n}\n\n@commandClass(CommandClasses[\"Binary Switch\"])\n@implementedVersion(2)\n@ccValues(BinarySwitchCCValues)\nexport class BinarySwitchCC extends CommandClass {\n\tdeclare ccCommand: BinarySwitchCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\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\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\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[\"Binary Switch\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// Query the current state\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying Binary Switch state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst resp = await api.get();\n\t\tif (resp) {\n\t\t\tlet logMessage = `received Binary Switch state:\ncurrent value: ${resp.currentValue}`;\n\t\t\tif (resp.targetValue != undefined) {\n\t\t\t\tlogMessage += `\ntarget value: ${resp.targetValue}\nremaining duration: ${resp.duration?.toString() ?? \"undefined\"}`;\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}\n\t}\n\n\tpublic setMappedBasicValue(\n\t\tctx: GetValueDB,\n\t\tvalue: number,\n\t): boolean {\n\t\tthis.setValue(ctx, BinarySwitchCCValues.currentValue, value > 0);\n\t\treturn true;\n\t}\n}\n\n// @publicAPI\nexport interface BinarySwitchCCSetOptions {\n\ttargetValue: boolean;\n\tduration?: Duration | string;\n}\n\n@CCCommand(BinarySwitchCommand.Set)\n@useSupervision()\nexport class BinarySwitchCCSet extends BinarySwitchCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BinarySwitchCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.targetValue = options.targetValue;\n\t\tthis.duration = Duration.from(options.duration);\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): BinarySwitchCCSet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst targetValue = !!raw.payload[0];\n\t\tlet duration: Duration | undefined;\n\n\t\tif (raw.payload.length >= 2) {\n\t\t\tduration = Duration.parseSet(raw.payload[1]);\n\t\t}\n\n\t\treturn new BinarySwitchCCSet({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttargetValue,\n\t\t\tduration,\n\t\t});\n\t}\n\n\tpublic targetValue: boolean;\n\tpublic duration: Duration | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.targetValue ? 0xff : 0x00,\n\t\t\t(this.duration ?? Duration.default()).serializeSet(),\n\t\t]);\n\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (\n\t\t\tccVersion < 2 && ctx.getDeviceConfig?.(\n\t\t\t\tthis.nodeId as number,\n\t\t\t)?.compat?.encodeCCsUsingTargetVersion\n\t\t) {\n\t\t\t// When forcing CC version 1, only send the target value\n\t\t\tthis.payload = this.payload.subarray(0, 1);\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\"target value\": this.targetValue,\n\t\t};\n\t\tif (this.duration != undefined) {\n\t\t\tmessage.duration = this.duration.toString();\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 BinarySwitchCCReportOptions {\n\tcurrentValue?: MaybeUnknown<boolean>;\n\ttargetValue?: MaybeUnknown<boolean>;\n\tduration?: Duration | string;\n}\n\n@CCCommand(BinarySwitchCommand.Report)\nexport class BinarySwitchCCReport extends BinarySwitchCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BinarySwitchCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.currentValue = options.currentValue;\n\t\tthis.targetValue = options.targetValue;\n\t\tthis.duration = Duration.from(options.duration);\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): BinarySwitchCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst currentValue: MaybeUnknown<boolean> | undefined =\n\t\t\tparseMaybeBoolean(\n\t\t\t\traw.payload[0],\n\t\t\t);\n\t\tlet targetValue: MaybeUnknown<boolean> | undefined;\n\t\tlet duration: Duration | undefined;\n\n\t\tif (raw.payload.length >= 3) {\n\t\t\ttargetValue = parseMaybeBoolean(raw.payload[1]);\n\t\t\tduration = Duration.parseReport(raw.payload[2]);\n\t\t}\n\n\t\treturn new BinarySwitchCCReport({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tcurrentValue,\n\t\t\ttargetValue,\n\t\t\tduration,\n\t\t});\n\t}\n\n\t@ccValue(BinarySwitchCCValues.currentValue)\n\tpublic readonly currentValue: MaybeUnknown<boolean> | undefined;\n\n\t@ccValue(BinarySwitchCCValues.targetValue)\n\tpublic readonly targetValue: MaybeUnknown<boolean> | undefined;\n\n\t@ccValue(BinarySwitchCCValues.duration)\n\tpublic readonly duration: Duration | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tencodeMaybeBoolean(this.currentValue ?? UNKNOWN_STATE),\n\t\t]);\n\t\tif (this.targetValue !== undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from([\n\t\t\t\t\tencodeMaybeBoolean(this.targetValue),\n\t\t\t\t\t(this.duration ?? Duration.default()).serializeReport(),\n\t\t\t\t]),\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\"current value\": maybeUnknownToString(this.currentValue),\n\t\t};\n\t\tif (this.targetValue !== undefined) {\n\t\t\tmessage[\"target value\"] = maybeUnknownToString(this.targetValue);\n\t\t}\n\t\tif (this.duration != undefined) {\n\t\t\tmessage.duration = this.duration.toString();\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@CCCommand(BinarySwitchCommand.Get)\n@expectedCCResponse(BinarySwitchCCReport)\nexport class BinarySwitchCCGet extends BinarySwitchCC {}\n"],
5
- "mappings": "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",
6
- "names": ["import_safe", "BinarySwitchCCAPI", "BinarySwitchCC", "BinarySwitchCCSet", "BinarySwitchCCReport", "BinarySwitchCCGet"]
4
+ "sourcesContent": ["import {\n\tCommandClasses,\n\tDuration,\n\ttype MaybeNotKnown,\n\ttype MaybeUnknown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype SupervisionResult,\n\tUNKNOWN_STATE,\n\tValueMetadata,\n\ttype WithAddress,\n\tencodeMaybeBoolean,\n\tmaybeUnknownToString,\n\tparseMaybeBoolean,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\tSET_VALUE_HOOKS,\n\ttype SetValueImplementation,\n\ttype SetValueImplementationHooksFactory,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BinarySwitchCommand } from \"../lib/_Types.js\";\n\nexport const BinarySwitchCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Binary Switch\"], {\n\t\t...V.staticProperty(\n\t\t\t\"currentValue\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyBoolean,\n\t\t\t\tlabel: \"Current value\",\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"targetValue\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Boolean,\n\t\t\t\tlabel: \"Target value\",\n\t\t\t\tvalueChangeOptions: [\"transitionDuration\"],\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"duration\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyDuration,\n\t\t\t\tlabel: \"Remaining duration\",\n\t\t\t} as const,\n\t\t\t{ minVersion: 2 } as const,\n\t\t),\n\t}),\n});\n\n@API(CommandClasses[\"Binary Switch\"])\nexport class BinarySwitchCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: BinarySwitchCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase BinarySwitchCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase BinarySwitchCommand.Set:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(\n\t\t\tBinarySwitchCommand,\n\t\t\tBinarySwitchCommand.Get,\n\t\t);\n\n\t\tconst cc = new BinarySwitchCCGet({\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<BinarySwitchCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\t// interpret unknown values as false\n\t\t\t\tcurrentValue: response.currentValue || false,\n\t\t\t\ttargetValue: response.targetValue,\n\t\t\t\tduration: response.duration,\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Sets the switch to the given value\n\t * @param targetValue The target value to set\n\t * @param duration The duration after which the target value should be reached. Can be a Duration instance or a user-friendly duration string like `\"1m17s\"`. Only supported in V2 and above.\n\t */\n\t@validateArgs()\n\tpublic async set(\n\t\ttargetValue: boolean,\n\t\tduration?: Duration | string,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBinarySwitchCommand,\n\t\t\tBinarySwitchCommand.Set,\n\t\t);\n\n\t\tconst cc = new BinarySwitchCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\ttargetValue,\n\t\t\tduration,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: BinarySwitchCCAPI,\n\t\t\t{ property },\n\t\t\tvalue,\n\t\t\toptions,\n\t\t) {\n\t\t\tif (property !== \"targetValue\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof value !== \"boolean\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"boolean\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst duration = Duration.from(options?.transitionDuration);\n\t\t\treturn this.set(value, duration);\n\t\t};\n\t}\n\n\tprotected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = (\n\t\t{ property },\n\t\tvalue,\n\t\toptions,\n\t) => {\n\t\tif (property === \"targetValue\") {\n\t\t\tconst currentValueValueId = BinarySwitchCCValues.currentValue\n\t\t\t\t.endpoint(this.endpoint.index);\n\n\t\t\treturn {\n\t\t\t\toptimisticallyUpdateRelatedValues: (\n\t\t\t\t\t_supervisedAndSuccessful,\n\t\t\t\t) => {\n\t\t\t\t\t// After setting targetValue, optimistically update currentValue\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\t\t\t\tcurrentValueValueId,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (this.isMulticast()) {\n\t\t\t\t\t\t// Figure out which nodes were affected by this command\n\t\t\t\t\t\tconst affectedNodes = this.endpoint.node.physicalNodes\n\t\t\t\t\t\t\t.filter((node) =>\n\t\t\t\t\t\t\t\tnode\n\t\t\t\t\t\t\t\t\t.getEndpoint(this.endpoint.index)\n\t\t\t\t\t\t\t\t\t?.supportsCC(this.ccId)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t// and optimistically update the currentValue\n\t\t\t\t\t\tfor (const node of affectedNodes) {\n\t\t\t\t\t\t\tthis.host\n\t\t\t\t\t\t\t\t.tryGetValueDB(node.id)\n\t\t\t\t\t\t\t\t?.setValue(currentValueValueId, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tverifyChanges: () => {\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\t// We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n\t\t\t\t\t\tthis.schedulePoll(currentValueValueId, value, {\n\t\t\t\t\t\t\tduration: Duration.from(\n\t\t\t\t\t\t\t\toptions?.transitionDuration,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t// on/off \"transitions\" are usually fast\n\t\t\t\t\t\t\ttransition: \"fast\",\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t};\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: BinarySwitchCCAPI, { property }) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"currentValue\":\n\t\t\t\tcase \"targetValue\":\n\t\t\t\tcase \"duration\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n}\n\n@commandClass(CommandClasses[\"Binary Switch\"])\n@implementedVersion(2)\n@ccValues(BinarySwitchCCValues)\nexport class BinarySwitchCC extends CommandClass {\n\tdeclare ccCommand: BinarySwitchCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\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\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\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[\"Binary Switch\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// Query the current state\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying Binary Switch state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst resp = await api.get();\n\t\tif (resp) {\n\t\t\tlet logMessage = `received Binary Switch state:\ncurrent value: ${resp.currentValue}`;\n\t\t\tif (resp.targetValue != undefined) {\n\t\t\t\tlogMessage += `\ntarget value: ${resp.targetValue}\nremaining duration: ${resp.duration?.toString() ?? \"undefined\"}`;\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}\n\t}\n\n\tpublic setMappedBasicValue(\n\t\tctx: GetValueDB,\n\t\tvalue: number,\n\t): boolean {\n\t\tthis.setValue(ctx, BinarySwitchCCValues.currentValue, value > 0);\n\t\treturn true;\n\t}\n}\n\n// @publicAPI\nexport interface BinarySwitchCCSetOptions {\n\ttargetValue: boolean;\n\tduration?: Duration | string;\n}\n\n@CCCommand(BinarySwitchCommand.Set)\n@useSupervision()\nexport class BinarySwitchCCSet extends BinarySwitchCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BinarySwitchCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.targetValue = options.targetValue;\n\t\tthis.duration = Duration.from(options.duration);\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): BinarySwitchCCSet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst targetValue = !!raw.payload[0];\n\t\tlet duration: Duration | undefined;\n\n\t\tif (raw.payload.length >= 2) {\n\t\t\tduration = Duration.parseSet(raw.payload[1]);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttargetValue,\n\t\t\tduration,\n\t\t});\n\t}\n\n\tpublic targetValue: boolean;\n\tpublic duration: Duration | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.targetValue ? 0xff : 0x00,\n\t\t\t(this.duration ?? Duration.default()).serializeSet(),\n\t\t]);\n\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (\n\t\t\tccVersion < 2 && ctx.getDeviceConfig?.(\n\t\t\t\tthis.nodeId as number,\n\t\t\t)?.compat?.encodeCCsUsingTargetVersion\n\t\t) {\n\t\t\t// When forcing CC version 1, only send the target value\n\t\t\tthis.payload = this.payload.subarray(0, 1);\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\"target value\": this.targetValue,\n\t\t};\n\t\tif (this.duration != undefined) {\n\t\t\tmessage.duration = this.duration.toString();\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 BinarySwitchCCReportOptions {\n\tcurrentValue?: MaybeUnknown<boolean>;\n\ttargetValue?: MaybeUnknown<boolean>;\n\tduration?: Duration | string;\n}\n\n@CCCommand(BinarySwitchCommand.Report)\n@ccValueProperty(\"currentValue\", BinarySwitchCCValues.currentValue)\n@ccValueProperty(\"targetValue\", BinarySwitchCCValues.targetValue)\n@ccValueProperty(\"duration\", BinarySwitchCCValues.duration)\nexport class BinarySwitchCCReport extends BinarySwitchCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BinarySwitchCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.currentValue = options.currentValue;\n\t\tthis.targetValue = options.targetValue;\n\t\tthis.duration = Duration.from(options.duration);\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): BinarySwitchCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst currentValue: MaybeUnknown<boolean> | undefined =\n\t\t\tparseMaybeBoolean(\n\t\t\t\traw.payload[0],\n\t\t\t);\n\t\tlet targetValue: MaybeUnknown<boolean> | undefined;\n\t\tlet duration: Duration | undefined;\n\n\t\tif (raw.payload.length >= 3) {\n\t\t\ttargetValue = parseMaybeBoolean(raw.payload[1]);\n\t\t\tduration = Duration.parseReport(raw.payload[2]);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tcurrentValue,\n\t\t\ttargetValue,\n\t\t\tduration,\n\t\t});\n\t}\n\n\tpublic readonly currentValue: MaybeUnknown<boolean> | undefined;\n\n\tpublic readonly targetValue: MaybeUnknown<boolean> | undefined;\n\n\tpublic readonly duration: Duration | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tencodeMaybeBoolean(this.currentValue ?? UNKNOWN_STATE),\n\t\t]);\n\t\tif (this.targetValue !== undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from([\n\t\t\t\t\tencodeMaybeBoolean(this.targetValue),\n\t\t\t\t\t(this.duration ?? Duration.default()).serializeReport(),\n\t\t\t\t]),\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\"current value\": maybeUnknownToString(this.currentValue),\n\t\t};\n\t\tif (this.targetValue !== undefined) {\n\t\t\tmessage[\"target value\"] = maybeUnknownToString(this.targetValue);\n\t\t}\n\t\tif (this.duration != undefined) {\n\t\t\tmessage.duration = this.duration.toString();\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@CCCommand(BinarySwitchCommand.Get)\n@expectedCCResponse(BinarySwitchCCReport)\nexport class BinarySwitchCCGet extends BinarySwitchCC {}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_safe"]
7
7
  }
@@ -29,101 +29,176 @@ var import_CommandClass = require("../lib/CommandClass.js");
29
29
  var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
30
30
  var import_safe2 = require("@zwave-js/shared/safe");
31
31
  var import_Types = require("../lib/_Types.js");
32
- var __decorate = function(decorators, target, key, desc) {
33
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
35
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
36
- return c > 3 && r && Object.defineProperty(target, key, r), r;
37
- };
38
- var CRC16CCCommandEncapsulation_1;
39
- const headerBuffer = import_safe2.Bytes.from([
40
- import_safe.CommandClasses["CRC-16 Encapsulation"],
41
- import_Types.CRC16Command.CommandEncapsulation
42
- ]);
43
- let CRC16CCAPI = class CRC16CCAPI2 extends import_API.CCAPI {
44
- supportsCommand(_cmd) {
45
- return true;
32
+ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
33
+ function accept(f) {
34
+ if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
35
+ return f;
46
36
  }
47
- async sendEncapsulated(encapsulatedCC) {
48
- this.assertSupportsCommand(import_Types.CRC16Command, import_Types.CRC16Command.CommandEncapsulation);
49
- const cc = new CRC16CCCommandEncapsulation({
50
- nodeId: this.endpoint.nodeId,
51
- endpointIndex: this.endpoint.index,
52
- encapsulated: encapsulatedCC
53
- });
54
- await this.host.sendCommand(cc, this.commandOptions);
37
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
38
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
39
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
40
+ var _, done = false;
41
+ for (var i = decorators.length - 1; i >= 0; i--) {
42
+ var context = {};
43
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
44
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
45
+ context.addInitializer = function(f) {
46
+ if (done) throw new TypeError("Cannot add initializers after decoration has completed");
47
+ extraInitializers.push(accept(f || null));
48
+ };
49
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
50
+ if (kind === "accessor") {
51
+ if (result === void 0) continue;
52
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
53
+ if (_ = accept(result.get)) descriptor.get = _;
54
+ if (_ = accept(result.set)) descriptor.set = _;
55
+ if (_ = accept(result.init)) initializers.unshift(_);
56
+ } else if (_ = accept(result)) {
57
+ if (kind === "field") initializers.unshift(_);
58
+ else descriptor[key] = _;
59
+ }
55
60
  }
61
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
62
+ done = true;
56
63
  };
57
- CRC16CCAPI = __decorate([
58
- (0, import_CommandClassDecorators.API)(import_safe.CommandClasses["CRC-16 Encapsulation"])
59
- ], CRC16CCAPI);
60
- let CRC16CC = class CRC16CC2 extends import_CommandClass.CommandClass {
61
- /** Tests if a command should be supervised and thus requires encapsulation */
62
- static requiresEncapsulation(cc) {
63
- return !!(cc.encapsulationFlags & import_safe.EncapsulationFlags.CRC16) && !(cc instanceof CRC16CCCommandEncapsulation);
64
- }
65
- /** Encapsulates a command in a CRC-16 CC */
66
- static encapsulate(cc) {
67
- const ret = new CRC16CCCommandEncapsulation({
68
- nodeId: cc.nodeId,
69
- encapsulated: cc
70
- });
71
- ret.encapsulationFlags = cc.encapsulationFlags & ~import_safe.EncapsulationFlags.CRC16;
72
- return ret;
64
+ var __runInitializers = function(thisArg, initializers, value) {
65
+ var useValue = arguments.length > 2;
66
+ for (var i = 0; i < initializers.length; i++) {
67
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
73
68
  }
69
+ return useValue ? value : void 0;
74
70
  };
75
- CRC16CC = __decorate([
76
- (0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["CRC-16 Encapsulation"]),
77
- (0, import_CommandClassDecorators.implementedVersion)(1)
78
- ], CRC16CC);
71
+ const headerBuffer = import_safe2.Bytes.from([
72
+ import_safe.CommandClasses["CRC-16 Encapsulation"],
73
+ import_Types.CRC16Command.CommandEncapsulation
74
+ ]);
75
+ let CRC16CCAPI = (() => {
76
+ let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["CRC-16 Encapsulation"])];
77
+ let _classDescriptor;
78
+ let _classExtraInitializers = [];
79
+ let _classThis;
80
+ let _classSuper = import_API.CCAPI;
81
+ var CRC16CCAPI2 = class extends _classSuper {
82
+ static {
83
+ _classThis = this;
84
+ }
85
+ static {
86
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
87
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
88
+ CRC16CCAPI2 = _classThis = _classDescriptor.value;
89
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
90
+ __runInitializers(_classThis, _classExtraInitializers);
91
+ }
92
+ supportsCommand(_cmd) {
93
+ return true;
94
+ }
95
+ async sendEncapsulated(encapsulatedCC) {
96
+ this.assertSupportsCommand(import_Types.CRC16Command, import_Types.CRC16Command.CommandEncapsulation);
97
+ const cc = new CRC16CCCommandEncapsulation({
98
+ nodeId: this.endpoint.nodeId,
99
+ endpointIndex: this.endpoint.index,
100
+ encapsulated: encapsulatedCC
101
+ });
102
+ await this.host.sendCommand(cc, this.commandOptions);
103
+ }
104
+ };
105
+ return CRC16CCAPI2 = _classThis;
106
+ })();
107
+ let CRC16CC = (() => {
108
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["CRC-16 Encapsulation"]), (0, import_CommandClassDecorators.implementedVersion)(1)];
109
+ let _classDescriptor;
110
+ let _classExtraInitializers = [];
111
+ let _classThis;
112
+ let _classSuper = import_CommandClass.CommandClass;
113
+ var CRC16CC2 = class extends _classSuper {
114
+ static {
115
+ _classThis = this;
116
+ }
117
+ static {
118
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
119
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
120
+ CRC16CC2 = _classThis = _classDescriptor.value;
121
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
122
+ __runInitializers(_classThis, _classExtraInitializers);
123
+ }
124
+ /** Tests if a command should be supervised and thus requires encapsulation */
125
+ static requiresEncapsulation(cc) {
126
+ return !!(cc.encapsulationFlags & import_safe.EncapsulationFlags.CRC16) && !(cc instanceof CRC16CCCommandEncapsulation);
127
+ }
128
+ /** Encapsulates a command in a CRC-16 CC */
129
+ static encapsulate(cc) {
130
+ const ret = new CRC16CCCommandEncapsulation({
131
+ nodeId: cc.nodeId,
132
+ encapsulated: cc
133
+ });
134
+ ret.encapsulationFlags = cc.encapsulationFlags & ~import_safe.EncapsulationFlags.CRC16;
135
+ return ret;
136
+ }
137
+ };
138
+ return CRC16CC2 = _classThis;
139
+ })();
79
140
  function getCCResponseForCommandEncapsulation(sent) {
80
141
  if (sent.encapsulated?.expectsCCResponse()) {
81
142
  return CRC16CCCommandEncapsulation;
82
143
  }
83
144
  }
84
- let CRC16CCCommandEncapsulation = CRC16CCCommandEncapsulation_1 = class CRC16CCCommandEncapsulation2 extends CRC16CC {
85
- constructor(options) {
86
- super(options);
87
- this.encapsulated = options.encapsulated;
88
- this.encapsulated.encapsulatingCC = this;
89
- }
90
- static from(raw, ctx) {
91
- (0, import_safe.validatePayload)(raw.payload.length >= 3);
92
- const ccBuffer = raw.payload.subarray(0, -2);
93
- let expectedCRC = (0, import_safe.CRC16_CCITT)(headerBuffer);
94
- expectedCRC = (0, import_safe.CRC16_CCITT)(ccBuffer, expectedCRC);
95
- const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);
96
- (0, import_safe.validatePayload)(expectedCRC === actualCRC);
97
- const encapsulated = import_CommandClass.CommandClass.parse(ccBuffer, ctx);
98
- return new CRC16CCCommandEncapsulation_1({
99
- nodeId: ctx.sourceNodeId,
100
- encapsulated
101
- });
102
- }
103
- encapsulated;
104
- serialize(ctx) {
105
- const commandBuffer = this.encapsulated.serialize(ctx);
106
- this.payload = import_safe2.Bytes.concat([commandBuffer, new import_safe2.Bytes(2)]);
107
- let crc = (0, import_safe.CRC16_CCITT)(headerBuffer);
108
- crc = (0, import_safe.CRC16_CCITT)(commandBuffer, crc);
109
- this.payload.writeUInt16BE(crc, this.payload.length - 2);
110
- return super.serialize(ctx);
111
- }
112
- computeEncapsulationOverhead() {
113
- return super.computeEncapsulationOverhead() + 2;
114
- }
115
- toLogEntry(ctx) {
116
- return {
117
- ...super.toLogEntry(ctx),
118
- // Hide the default payload line
119
- message: void 0
120
- };
121
- }
122
- };
123
- CRC16CCCommandEncapsulation = CRC16CCCommandEncapsulation_1 = __decorate([
124
- (0, import_CommandClassDecorators.CCCommand)(import_Types.CRC16Command.CommandEncapsulation),
125
- (0, import_CommandClassDecorators.expectedCCResponse)(getCCResponseForCommandEncapsulation, () => "checkEncapsulated")
126
- ], CRC16CCCommandEncapsulation);
145
+ let CRC16CCCommandEncapsulation = (() => {
146
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.CRC16Command.CommandEncapsulation), (0, import_CommandClassDecorators.expectedCCResponse)(getCCResponseForCommandEncapsulation, () => "checkEncapsulated")];
147
+ let _classDescriptor;
148
+ let _classExtraInitializers = [];
149
+ let _classThis;
150
+ let _classSuper = CRC16CC;
151
+ var CRC16CCCommandEncapsulation2 = class extends _classSuper {
152
+ static {
153
+ _classThis = this;
154
+ }
155
+ static {
156
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
157
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
158
+ CRC16CCCommandEncapsulation2 = _classThis = _classDescriptor.value;
159
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
160
+ __runInitializers(_classThis, _classExtraInitializers);
161
+ }
162
+ constructor(options) {
163
+ super(options);
164
+ this.encapsulated = options.encapsulated;
165
+ this.encapsulated.encapsulatingCC = this;
166
+ }
167
+ static from(raw, ctx) {
168
+ (0, import_safe.validatePayload)(raw.payload.length >= 3);
169
+ const ccBuffer = raw.payload.subarray(0, -2);
170
+ let expectedCRC = (0, import_safe.CRC16_CCITT)(headerBuffer);
171
+ expectedCRC = (0, import_safe.CRC16_CCITT)(ccBuffer, expectedCRC);
172
+ const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);
173
+ (0, import_safe.validatePayload)(expectedCRC === actualCRC);
174
+ const encapsulated = import_CommandClass.CommandClass.parse(ccBuffer, ctx);
175
+ return new this({
176
+ nodeId: ctx.sourceNodeId,
177
+ encapsulated
178
+ });
179
+ }
180
+ encapsulated;
181
+ serialize(ctx) {
182
+ const commandBuffer = this.encapsulated.serialize(ctx);
183
+ this.payload = import_safe2.Bytes.concat([commandBuffer, new import_safe2.Bytes(2)]);
184
+ let crc = (0, import_safe.CRC16_CCITT)(headerBuffer);
185
+ crc = (0, import_safe.CRC16_CCITT)(commandBuffer, crc);
186
+ this.payload.writeUInt16BE(crc, this.payload.length - 2);
187
+ return super.serialize(ctx);
188
+ }
189
+ computeEncapsulationOverhead() {
190
+ return super.computeEncapsulationOverhead() + 2;
191
+ }
192
+ toLogEntry(ctx) {
193
+ return {
194
+ ...super.toLogEntry(ctx),
195
+ // Hide the default payload line
196
+ message: void 0
197
+ };
198
+ }
199
+ };
200
+ return CRC16CCCommandEncapsulation2 = _classThis;
201
+ })();
127
202
  // Annotate the CommonJS export names for ESM import in node:
128
203
  0 && (module.exports = {
129
204
  CRC16CC,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/CRC16CC.ts"],
4
- "sourcesContent": ["import {\n\tCRC16_CCITT,\n\tCommandClasses,\n\tEncapsulationFlags,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\ttype WithAddress,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { CCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\n\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { CRC16Command } from \"../lib/_Types.js\";\n\nconst headerBuffer = Bytes.from([\n\tCommandClasses[\"CRC-16 Encapsulation\"],\n\tCRC16Command.CommandEncapsulation,\n]);\n\n// @noSetValueAPI\n// @noInterview This CC only has a single encapsulation command\n\n// Encapsulation CCs are used internally and too frequently that we\n// want to pay the cost of validating each call\n/* eslint-disable @zwave-js/ccapi-validate-args */\n\n@API(CommandClasses[\"CRC-16 Encapsulation\"])\nexport class CRC16CCAPI extends CCAPI {\n\tpublic supportsCommand(_cmd: CRC16Command): MaybeNotKnown<boolean> {\n\t\t// switch (cmd) {\n\t\t// \tcase CRC16Command.CommandEncapsulation:\n\t\treturn true; // This is mandatory\n\t\t// }\n\t\t// return super.supportsCommand(cmd);\n\t}\n\n\tpublic async sendEncapsulated(encapsulatedCC: CommandClass): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tCRC16Command,\n\t\t\tCRC16Command.CommandEncapsulation,\n\t\t);\n\n\t\tconst cc = new CRC16CCCommandEncapsulation({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tencapsulated: encapsulatedCC,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses[\"CRC-16 Encapsulation\"])\n@implementedVersion(1)\nexport class CRC16CC extends CommandClass {\n\tdeclare ccCommand: CRC16Command;\n\n\t/** Tests if a command should be supervised and thus requires encapsulation */\n\tpublic static requiresEncapsulation(cc: CommandClass): boolean {\n\t\treturn (\n\t\t\t!!(cc.encapsulationFlags & EncapsulationFlags.CRC16)\n\t\t\t&& !(cc instanceof CRC16CCCommandEncapsulation)\n\t\t);\n\t}\n\n\t/** Encapsulates a command in a CRC-16 CC */\n\tpublic static encapsulate(\n\t\tcc: CommandClass,\n\t): CRC16CCCommandEncapsulation {\n\t\tconst ret = new CRC16CCCommandEncapsulation({\n\t\t\tnodeId: cc.nodeId,\n\t\t\tencapsulated: cc,\n\t\t});\n\n\t\t// Copy the encapsulation flags from the encapsulated command\n\t\t// but omit CRC-16, since we're doing that right now\n\t\tret.encapsulationFlags = cc.encapsulationFlags\n\t\t\t& ~EncapsulationFlags.CRC16;\n\n\t\treturn ret;\n\t}\n}\n\n// @publicAPI\nexport interface CRC16CCCommandEncapsulationOptions {\n\tencapsulated: CommandClass;\n}\n\nfunction getCCResponseForCommandEncapsulation(\n\tsent: CRC16CCCommandEncapsulation,\n) {\n\tif (sent.encapsulated?.expectsCCResponse()) {\n\t\treturn CRC16CCCommandEncapsulation;\n\t}\n}\n\n@CCCommand(CRC16Command.CommandEncapsulation)\n@expectedCCResponse(\n\tgetCCResponseForCommandEncapsulation,\n\t() => \"checkEncapsulated\",\n)\nexport class CRC16CCCommandEncapsulation extends CRC16CC {\n\tpublic constructor(\n\t\toptions: WithAddress<CRC16CCCommandEncapsulationOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.encapsulated = options.encapsulated;\n\t\tthis.encapsulated.encapsulatingCC = this as any;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): CRC16CCCommandEncapsulation {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\n\t\tconst ccBuffer = raw.payload.subarray(0, -2);\n\n\t\t// Verify the CRC\n\t\tlet expectedCRC = CRC16_CCITT(headerBuffer);\n\t\texpectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n\t\tconst actualCRC = raw.payload.readUInt16BE(\n\t\t\traw.payload.length - 2,\n\t\t);\n\t\tvalidatePayload(expectedCRC === actualCRC);\n\n\t\tconst encapsulated = CommandClass.parse(ccBuffer, ctx);\n\t\treturn new CRC16CCCommandEncapsulation({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tencapsulated,\n\t\t});\n\t}\n\n\tpublic encapsulated: CommandClass;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst commandBuffer = this.encapsulated.serialize(ctx);\n\t\t// Reserve 2 bytes for the CRC\n\t\tthis.payload = Bytes.concat([commandBuffer, new Bytes(2)]);\n\n\t\t// Compute and save the CRC16 in the payload\n\t\t// The CC header is included in the CRC computation\n\t\tlet crc = CRC16_CCITT(headerBuffer);\n\t\tcrc = CRC16_CCITT(commandBuffer, crc);\n\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tprotected computeEncapsulationOverhead(): number {\n\t\t// CRC16 adds two bytes CRC to the default overhead\n\t\treturn super.computeEncapsulationOverhead() + 2;\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\t// Hide the default payload line\n\t\t\tmessage: undefined,\n\t\t};\n\t}\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAQO;AAMP,iBAAsB;AACtB,0BAAyC;AACzC,oCAMO;AAEP,IAAAA,eAAsB;AACtB,mBAA6B;;;;;;;;AAE7B,MAAM,eAAe,mBAAM,KAAK;EAC/B,2BAAe,sBAAsB;EACrC,0BAAa;CACb;AAUM,IAAM,aAAN,MAAMC,oBAAmB,iBAAK;EAC7B,gBAAgB,MAAkB;AAGxC,WAAO;EAGR;EAEO,MAAM,iBAAiB,gBAA4B;AACzD,SAAK,sBACJ,2BACA,0BAAa,oBAAoB;AAGlC,UAAM,KAAK,IAAI,4BAA4B;MAC1C,QAAQ,KAAK,SAAS;MACtB,eAAe,KAAK,SAAS;MAC7B,cAAc;KACd;AACD,UAAM,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;EACpD;;AArBY,aAAU,WAAA;MADtB,mCAAI,2BAAe,sBAAsB,CAAC;GAC9B,UAAU;AA0BhB,IAAM,UAAN,MAAMC,iBAAgB,iCAAY;;EAIjC,OAAO,sBAAsB,IAAgB;AACnD,WACC,CAAC,EAAE,GAAG,qBAAqB,+BAAmB,UAC3C,EAAE,cAAc;EAErB;;EAGO,OAAO,YACb,IAAgB;AAEhB,UAAM,MAAM,IAAI,4BAA4B;MAC3C,QAAQ,GAAG;MACX,cAAc;KACd;AAID,QAAI,qBAAqB,GAAG,qBACzB,CAAC,+BAAmB;AAEvB,WAAO;EACR;;AA1BY,UAAO,WAAA;MAFnB,4CAAa,2BAAe,sBAAsB,CAAC;MACnD,kDAAmB,CAAC;GACR,OAAO;AAkCpB,SAAS,qCACR,MAAiC;AAEjC,MAAI,KAAK,cAAc,kBAAiB,GAAI;AAC3C,WAAO;EACR;AACD;AAOO,IAAM,8BAA2B,gCAAjC,MAAMC,qCAAoC,QAAO;EACvD,YACC,SAAwD;AAExD,UAAM,OAAO;AACb,SAAK,eAAe,QAAQ;AAC5B,SAAK,aAAa,kBAAkB;EACrC;EAEO,OAAO,KACb,KACA,KAAqB;AAErB,qCAAgB,IAAI,QAAQ,UAAU,CAAC;AAEvC,UAAM,WAAW,IAAI,QAAQ,SAAS,GAAG,EAAE;AAG3C,QAAI,kBAAc,yBAAY,YAAY;AAC1C,sBAAc,yBAAY,UAAU,WAAW;AAC/C,UAAM,YAAY,IAAI,QAAQ,aAC7B,IAAI,QAAQ,SAAS,CAAC;AAEvB,qCAAgB,gBAAgB,SAAS;AAEzC,UAAM,eAAe,iCAAa,MAAM,UAAU,GAAG;AACrD,WAAO,IAAI,8BAA4B;MACtC,QAAQ,IAAI;MACZ;KACA;EACF;EAEO;EAEA,UAAU,KAAsB;AACtC,UAAM,gBAAgB,KAAK,aAAa,UAAU,GAAG;AAErD,SAAK,UAAU,mBAAM,OAAO,CAAC,eAAe,IAAI,mBAAM,CAAC,CAAC,CAAC;AAIzD,QAAI,UAAM,yBAAY,YAAY;AAClC,cAAM,yBAAY,eAAe,GAAG;AACpC,SAAK,QAAQ,cAAc,KAAK,KAAK,QAAQ,SAAS,CAAC;AAEvD,WAAO,MAAM,UAAU,GAAG;EAC3B;EAEU,+BAA4B;AAErC,WAAO,MAAM,6BAA4B,IAAK;EAC/C;EAEO,WAAW,KAAgB;AACjC,WAAO;MACN,GAAG,MAAM,WAAW,GAAG;;MAEvB,SAAS;;EAEX;;AA3DY,8BAA2B,gCAAA,WAAA;MALvC,yCAAU,0BAAa,oBAAoB;MAC3C,kDACA,sCACA,MAAM,mBAAmB;GAEb,2BAA2B;",
6
- "names": ["import_safe", "CRC16CCAPI", "CRC16CC", "CRC16CCCommandEncapsulation"]
4
+ "sourcesContent": ["import {\n\tCRC16_CCITT,\n\tCommandClasses,\n\tEncapsulationFlags,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\ttype WithAddress,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { CCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\n\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { CRC16Command } from \"../lib/_Types.js\";\n\nconst headerBuffer = Bytes.from([\n\tCommandClasses[\"CRC-16 Encapsulation\"],\n\tCRC16Command.CommandEncapsulation,\n]);\n\n// @noSetValueAPI\n// @noInterview This CC only has a single encapsulation command\n\n// Encapsulation CCs are used internally and too frequently that we\n// want to pay the cost of validating each call\n/* eslint-disable @zwave-js/ccapi-validate-args */\n\n@API(CommandClasses[\"CRC-16 Encapsulation\"])\nexport class CRC16CCAPI extends CCAPI {\n\tpublic supportsCommand(_cmd: CRC16Command): MaybeNotKnown<boolean> {\n\t\t// switch (cmd) {\n\t\t// \tcase CRC16Command.CommandEncapsulation:\n\t\treturn true; // This is mandatory\n\t\t// }\n\t\t// return super.supportsCommand(cmd);\n\t}\n\n\tpublic async sendEncapsulated(encapsulatedCC: CommandClass): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tCRC16Command,\n\t\t\tCRC16Command.CommandEncapsulation,\n\t\t);\n\n\t\tconst cc = new CRC16CCCommandEncapsulation({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tencapsulated: encapsulatedCC,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses[\"CRC-16 Encapsulation\"])\n@implementedVersion(1)\nexport class CRC16CC extends CommandClass {\n\tdeclare ccCommand: CRC16Command;\n\n\t/** Tests if a command should be supervised and thus requires encapsulation */\n\tpublic static requiresEncapsulation(cc: CommandClass): boolean {\n\t\treturn (\n\t\t\t!!(cc.encapsulationFlags & EncapsulationFlags.CRC16)\n\t\t\t&& !(cc instanceof CRC16CCCommandEncapsulation)\n\t\t);\n\t}\n\n\t/** Encapsulates a command in a CRC-16 CC */\n\tpublic static encapsulate(\n\t\tcc: CommandClass,\n\t): CRC16CCCommandEncapsulation {\n\t\tconst ret = new CRC16CCCommandEncapsulation({\n\t\t\tnodeId: cc.nodeId,\n\t\t\tencapsulated: cc,\n\t\t});\n\n\t\t// Copy the encapsulation flags from the encapsulated command\n\t\t// but omit CRC-16, since we're doing that right now\n\t\tret.encapsulationFlags = cc.encapsulationFlags\n\t\t\t& ~EncapsulationFlags.CRC16;\n\n\t\treturn ret;\n\t}\n}\n\n// @publicAPI\nexport interface CRC16CCCommandEncapsulationOptions {\n\tencapsulated: CommandClass;\n}\n\nfunction getCCResponseForCommandEncapsulation(\n\tsent: CRC16CCCommandEncapsulation,\n) {\n\tif (sent.encapsulated?.expectsCCResponse()) {\n\t\treturn CRC16CCCommandEncapsulation;\n\t}\n}\n\n@CCCommand(CRC16Command.CommandEncapsulation)\n@expectedCCResponse(\n\tgetCCResponseForCommandEncapsulation,\n\t() => \"checkEncapsulated\",\n)\nexport class CRC16CCCommandEncapsulation extends CRC16CC {\n\tpublic constructor(\n\t\toptions: WithAddress<CRC16CCCommandEncapsulationOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.encapsulated = options.encapsulated;\n\t\tthis.encapsulated.encapsulatingCC = this as any;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): CRC16CCCommandEncapsulation {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\n\t\tconst ccBuffer = raw.payload.subarray(0, -2);\n\n\t\t// Verify the CRC\n\t\tlet expectedCRC = CRC16_CCITT(headerBuffer);\n\t\texpectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n\t\tconst actualCRC = raw.payload.readUInt16BE(\n\t\t\traw.payload.length - 2,\n\t\t);\n\t\tvalidatePayload(expectedCRC === actualCRC);\n\n\t\tconst encapsulated = CommandClass.parse(ccBuffer, ctx);\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tencapsulated,\n\t\t});\n\t}\n\n\tpublic encapsulated: CommandClass;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst commandBuffer = this.encapsulated.serialize(ctx);\n\t\t// Reserve 2 bytes for the CRC\n\t\tthis.payload = Bytes.concat([commandBuffer, new Bytes(2)]);\n\n\t\t// Compute and save the CRC16 in the payload\n\t\t// The CC header is included in the CRC computation\n\t\tlet crc = CRC16_CCITT(headerBuffer);\n\t\tcrc = CRC16_CCITT(commandBuffer, crc);\n\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tprotected computeEncapsulationOverhead(): number {\n\t\t// CRC16 adds two bytes CRC to the default overhead\n\t\treturn super.computeEncapsulationOverhead() + 2;\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\t// Hide the default payload line\n\t\t\tmessage: undefined,\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_safe"]
7
7
  }