@zwave-js/cc 14.3.9 → 15.0.0-beta.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 (461) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +139 -57
  2. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  3. package/build/cjs/cc/AssociationCC.d.ts +178 -43
  4. package/build/cjs/cc/AssociationCC.js +0 -4
  5. package/build/cjs/cc/AssociationCC.js.map +2 -2
  6. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +138 -38
  7. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  8. package/build/cjs/cc/BarrierOperatorCC.d.ts +275 -73
  9. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  10. package/build/cjs/cc/BasicCC.d.ts +316 -71
  11. package/build/cjs/cc/BasicCC.js.map +2 -2
  12. package/build/cjs/cc/BatteryCC.d.ts +759 -164
  13. package/build/cjs/cc/BatteryCC.js.map +2 -2
  14. package/build/cjs/cc/BinarySensorCC.d.ts +91 -26
  15. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  16. package/build/cjs/cc/BinarySwitchCC.d.ts +190 -38
  17. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  18. package/build/cjs/cc/CRC16CC.d.ts +4 -8
  19. package/build/cjs/cc/CRC16CC.js +4 -27
  20. package/build/cjs/cc/CRC16CC.js.map +2 -2
  21. package/build/cjs/cc/CentralSceneCC.d.ts +272 -53
  22. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  23. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +150 -37
  24. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  25. package/build/cjs/cc/ClockCC.d.ts +3 -3
  26. package/build/cjs/cc/ClockCC.js.map +2 -2
  27. package/build/cjs/cc/ColorSwitchCC.d.ts +423 -96
  28. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  29. package/build/cjs/cc/ConfigurationCC._validateArgs.js +1 -1
  30. package/build/cjs/cc/ConfigurationCC._validateArgs.js.map +1 -1
  31. package/build/cjs/cc/ConfigurationCC.d.ts +101 -37
  32. package/build/cjs/cc/ConfigurationCC.js +0 -8
  33. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  34. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +1 -1
  35. package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
  36. package/build/cjs/cc/DoorLockCC._validateArgs.js +1 -1
  37. package/build/cjs/cc/DoorLockCC._validateArgs.js.map +1 -1
  38. package/build/cjs/cc/DoorLockCC.d.ts +1731 -419
  39. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  40. package/build/cjs/cc/DoorLockLoggingCC.d.ts +64 -12
  41. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  42. package/build/cjs/cc/EnergyProductionCC.d.ts +29 -14
  43. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  44. package/build/cjs/cc/EntryControlCC.d.ts +308 -57
  45. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  46. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  47. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +26 -0
  48. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  49. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +393 -67
  50. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +155 -12
  51. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  52. package/build/cjs/cc/HumidityControlModeCC.d.ts +125 -27
  53. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  54. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +64 -18
  55. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  56. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +116 -39
  57. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  58. package/build/cjs/cc/InclusionControllerCC.d.ts +4 -4
  59. package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
  60. package/build/cjs/cc/IndicatorCC.d.ts +325 -83
  61. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  62. package/build/cjs/cc/IrrigationCC.d.ts +2170 -683
  63. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  64. package/build/cjs/cc/LanguageCC.d.ts +128 -26
  65. package/build/cjs/cc/LanguageCC.js.map +2 -2
  66. package/build/cjs/cc/LockCC.d.ts +64 -14
  67. package/build/cjs/cc/LockCC.js.map +2 -2
  68. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
  69. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  70. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +219 -57
  71. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  72. package/build/cjs/cc/MeterCC.d.ts +364 -89
  73. package/build/cjs/cc/MeterCC.js.map +2 -2
  74. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +138 -40
  75. package/build/cjs/cc/MultiChannelAssociationCC.js +0 -5
  76. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  77. package/build/cjs/cc/MultiChannelCC.d.ts +469 -99
  78. package/build/cjs/cc/MultiChannelCC.js +8 -72
  79. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  80. package/build/cjs/cc/MultiCommandCC.d.ts +4 -8
  81. package/build/cjs/cc/MultiCommandCC.js +4 -37
  82. package/build/cjs/cc/MultiCommandCC.js.map +2 -2
  83. package/build/cjs/cc/MultilevelSensorCC.d.ts +118 -33
  84. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  85. package/build/cjs/cc/MultilevelSwitchCC.d.ts +490 -125
  86. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  87. package/build/cjs/cc/NodeNamingCC.d.ts +128 -26
  88. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  89. package/build/cjs/cc/NotificationCC.d.ts +603 -161
  90. package/build/cjs/cc/NotificationCC.js +12 -1
  91. package/build/cjs/cc/NotificationCC.js.map +2 -2
  92. package/build/cjs/cc/PowerlevelCC.d.ts +6 -6
  93. package/build/cjs/cc/PowerlevelCC.js.map +2 -2
  94. package/build/cjs/cc/ProtectionCC.d.ts +496 -94
  95. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  96. package/build/cjs/cc/SceneActivationCC.d.ts +127 -28
  97. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  98. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +52 -25
  99. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  100. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +53 -25
  101. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  102. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +268 -64
  103. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  104. package/build/cjs/cc/Security2CC.d.ts +15 -21
  105. package/build/cjs/cc/Security2CC.js +35 -347
  106. package/build/cjs/cc/Security2CC.js.map +3 -3
  107. package/build/cjs/cc/SecurityCC.d.ts +12 -19
  108. package/build/cjs/cc/SecurityCC.js +12 -106
  109. package/build/cjs/cc/SecurityCC.js.map +2 -2
  110. package/build/cjs/cc/SoundSwitchCC.d.ts +253 -64
  111. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  112. package/build/cjs/cc/SupervisionCC.d.ts +28 -16
  113. package/build/cjs/cc/SupervisionCC.js +4 -29
  114. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  115. package/build/cjs/cc/ThermostatFanModeCC.d.ts +187 -38
  116. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  117. package/build/cjs/cc/ThermostatFanStateCC.d.ts +64 -18
  118. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  119. package/build/cjs/cc/ThermostatModeCC.d.ts +189 -40
  120. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  121. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +65 -19
  122. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  123. package/build/cjs/cc/ThermostatSetbackCC.d.ts +4 -4
  124. package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
  125. package/build/cjs/cc/ThermostatSetpointCC.d.ts +116 -36
  126. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  127. package/build/cjs/cc/TimeCC.d.ts +6 -6
  128. package/build/cjs/cc/TimeCC.js.map +2 -2
  129. package/build/cjs/cc/TimeParametersCC.d.ts +63 -12
  130. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  131. package/build/cjs/cc/TransportServiceCC.d.ts +7 -12
  132. package/build/cjs/cc/TransportServiceCC.js +3 -20
  133. package/build/cjs/cc/TransportServiceCC.js.map +2 -2
  134. package/build/cjs/cc/UserCodeCC._validateArgs.js +1 -1
  135. package/build/cjs/cc/UserCodeCC._validateArgs.js.map +1 -1
  136. package/build/cjs/cc/UserCodeCC.d.ts +931 -176
  137. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  138. package/build/cjs/cc/VersionCC.d.ts +897 -185
  139. package/build/cjs/cc/VersionCC.js.map +2 -2
  140. package/build/cjs/cc/WakeUpCC.d.ts +190 -38
  141. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  142. package/build/cjs/cc/WindowCoveringCC.d.ts +193 -103
  143. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  144. package/build/cjs/cc/ZWavePlusCC.d.ts +311 -51
  145. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  146. package/build/cjs/cc/ZWaveProtocolCC.d.ts +28 -28
  147. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  148. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  149. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
  150. package/build/cjs/index.d.ts +1 -0
  151. package/build/cjs/index.js.map +1 -1
  152. package/build/cjs/index_browser.d.ts +9 -0
  153. package/build/cjs/index_browser.js +41 -1
  154. package/build/cjs/index_browser.js.map +2 -2
  155. package/build/cjs/lib/API.d.ts +7 -5
  156. package/build/cjs/lib/API.js +1 -1
  157. package/build/cjs/lib/API.js.map +2 -2
  158. package/build/cjs/lib/CommandClass.d.ts +10 -21
  159. package/build/cjs/lib/CommandClass.js +51 -106
  160. package/build/cjs/lib/CommandClass.js.map +3 -3
  161. package/build/cjs/lib/CommandClassDecorators.d.ts +1 -1
  162. package/build/cjs/lib/CommandClassDecorators.js +3 -3
  163. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  164. package/build/cjs/lib/Values.d.ts +2 -2
  165. package/build/cjs/lib/Values.js.map +2 -2
  166. package/build/cjs/lib/traits.d.ts +94 -0
  167. package/build/cjs/lib/traits.js +17 -0
  168. package/build/cjs/lib/traits.js.map +7 -0
  169. package/build/cjs/lib/utils.d.ts +2 -2
  170. package/build/cjs/lib/utils.js.map +2 -2
  171. package/build/esm/cc/AlarmSensorCC.d.ts +139 -57
  172. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  173. package/build/esm/cc/AlarmSensorCC.js +0 -1
  174. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  175. package/build/esm/cc/AssociationCC.d.ts +178 -43
  176. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  177. package/build/esm/cc/AssociationCC.js +0 -13
  178. package/build/esm/cc/AssociationCC.js.map +1 -1
  179. package/build/esm/cc/AssociationGroupInfoCC.d.ts +138 -38
  180. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  181. package/build/esm/cc/AssociationGroupInfoCC.js +0 -6
  182. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  183. package/build/esm/cc/BarrierOperatorCC.d.ts +275 -73
  184. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  185. package/build/esm/cc/BarrierOperatorCC.js +0 -3
  186. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  187. package/build/esm/cc/BasicCC.d.ts +316 -71
  188. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  189. package/build/esm/cc/BasicCC.js +0 -2
  190. package/build/esm/cc/BasicCC.js.map +1 -1
  191. package/build/esm/cc/BatteryCC.d.ts +759 -164
  192. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  193. package/build/esm/cc/BatteryCC.js +1 -2
  194. package/build/esm/cc/BatteryCC.js.map +1 -1
  195. package/build/esm/cc/BinarySensorCC.d.ts +91 -26
  196. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  197. package/build/esm/cc/BinarySensorCC.js +0 -3
  198. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  199. package/build/esm/cc/BinarySwitchCC.d.ts +190 -38
  200. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  201. package/build/esm/cc/BinarySwitchCC.js +0 -2
  202. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  203. package/build/esm/cc/CRC16CC.d.ts +4 -8
  204. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  205. package/build/esm/cc/CRC16CC.js +4 -34
  206. package/build/esm/cc/CRC16CC.js.map +1 -1
  207. package/build/esm/cc/CentralSceneCC.d.ts +272 -53
  208. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  209. package/build/esm/cc/CentralSceneCC.js +0 -1
  210. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  211. package/build/esm/cc/ClimateControlScheduleCC.d.ts +150 -37
  212. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  213. package/build/esm/cc/ClimateControlScheduleCC.js +0 -3
  214. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  215. package/build/esm/cc/ClockCC.d.ts +3 -3
  216. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  217. package/build/esm/cc/ClockCC.js +0 -1
  218. package/build/esm/cc/ClockCC.js.map +1 -1
  219. package/build/esm/cc/ColorSwitchCC.d.ts +423 -96
  220. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  221. package/build/esm/cc/ColorSwitchCC.js +0 -6
  222. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  223. package/build/esm/cc/ConfigurationCC._validateArgs.js +1 -1
  224. package/build/esm/cc/ConfigurationCC._validateArgs.js.map +1 -1
  225. package/build/esm/cc/ConfigurationCC.d.ts +101 -37
  226. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  227. package/build/esm/cc/ConfigurationCC.js +0 -25
  228. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  229. package/build/esm/cc/DeviceResetLocallyCC.d.ts +1 -1
  230. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  231. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  232. package/build/esm/cc/DoorLockCC._validateArgs.js +1 -1
  233. package/build/esm/cc/DoorLockCC._validateArgs.js.map +1 -1
  234. package/build/esm/cc/DoorLockCC.d.ts +1731 -419
  235. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  236. package/build/esm/cc/DoorLockCC.js +0 -2
  237. package/build/esm/cc/DoorLockCC.js.map +1 -1
  238. package/build/esm/cc/DoorLockLoggingCC.d.ts +64 -12
  239. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  240. package/build/esm/cc/DoorLockLoggingCC.js +0 -1
  241. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  242. package/build/esm/cc/EnergyProductionCC.d.ts +29 -14
  243. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  244. package/build/esm/cc/EnergyProductionCC.js +0 -2
  245. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  246. package/build/esm/cc/EntryControlCC.d.ts +308 -57
  247. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  248. package/build/esm/cc/EntryControlCC.js +0 -1
  249. package/build/esm/cc/EntryControlCC.js.map +1 -1
  250. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  251. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
  252. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +20 -0
  253. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  254. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +393 -67
  255. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  256. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +159 -34
  257. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  258. package/build/esm/cc/HumidityControlModeCC.d.ts +125 -27
  259. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  260. package/build/esm/cc/HumidityControlModeCC.js +0 -1
  261. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  262. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +64 -18
  263. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  264. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  265. package/build/esm/cc/HumidityControlSetpointCC.d.ts +116 -39
  266. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  267. package/build/esm/cc/HumidityControlSetpointCC.js +0 -4
  268. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  269. package/build/esm/cc/InclusionControllerCC.d.ts +4 -4
  270. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  271. package/build/esm/cc/InclusionControllerCC.js +0 -2
  272. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  273. package/build/esm/cc/IndicatorCC.d.ts +325 -83
  274. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  275. package/build/esm/cc/IndicatorCC.js +0 -7
  276. package/build/esm/cc/IndicatorCC.js.map +1 -1
  277. package/build/esm/cc/IrrigationCC.d.ts +2170 -683
  278. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  279. package/build/esm/cc/IrrigationCC.js +0 -9
  280. package/build/esm/cc/IrrigationCC.js.map +1 -1
  281. package/build/esm/cc/LanguageCC.d.ts +128 -26
  282. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  283. package/build/esm/cc/LanguageCC.js +0 -1
  284. package/build/esm/cc/LanguageCC.js.map +1 -1
  285. package/build/esm/cc/LockCC.d.ts +64 -14
  286. package/build/esm/cc/LockCC.d.ts.map +1 -1
  287. package/build/esm/cc/LockCC.js +0 -1
  288. package/build/esm/cc/LockCC.js.map +1 -1
  289. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
  290. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  291. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
  292. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  293. package/build/esm/cc/ManufacturerSpecificCC.d.ts +219 -57
  294. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  295. package/build/esm/cc/ManufacturerSpecificCC.js +0 -2
  296. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  297. package/build/esm/cc/MeterCC.d.ts +364 -89
  298. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  299. package/build/esm/cc/MeterCC.js +0 -4
  300. package/build/esm/cc/MeterCC.js.map +1 -1
  301. package/build/esm/cc/MultiChannelAssociationCC.d.ts +138 -40
  302. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  303. package/build/esm/cc/MultiChannelAssociationCC.js +0 -16
  304. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  305. package/build/esm/cc/MultiChannelCC.d.ts +469 -99
  306. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  307. package/build/esm/cc/MultiChannelCC.js +8 -101
  308. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  309. package/build/esm/cc/MultiCommandCC.d.ts +4 -8
  310. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  311. package/build/esm/cc/MultiCommandCC.js +4 -38
  312. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  313. package/build/esm/cc/MultilevelSensorCC.d.ts +118 -33
  314. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  315. package/build/esm/cc/MultilevelSensorCC.js +0 -5
  316. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  317. package/build/esm/cc/MultilevelSwitchCC.d.ts +490 -125
  318. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  319. package/build/esm/cc/MultilevelSwitchCC.js +0 -4
  320. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  321. package/build/esm/cc/NodeNamingCC.d.ts +128 -26
  322. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  323. package/build/esm/cc/NodeNamingCC.js +0 -2
  324. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  325. package/build/esm/cc/NotificationCC.d.ts +603 -161
  326. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  327. package/build/esm/cc/NotificationCC.js +18 -12
  328. package/build/esm/cc/NotificationCC.js.map +1 -1
  329. package/build/esm/cc/PowerlevelCC.d.ts +6 -6
  330. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  331. package/build/esm/cc/PowerlevelCC.js +0 -4
  332. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  333. package/build/esm/cc/ProtectionCC.d.ts +496 -94
  334. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  335. package/build/esm/cc/ProtectionCC.js +0 -3
  336. package/build/esm/cc/ProtectionCC.js.map +1 -1
  337. package/build/esm/cc/SceneActivationCC.d.ts +127 -28
  338. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  339. package/build/esm/cc/SceneActivationCC.js +0 -1
  340. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  341. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +52 -25
  342. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  343. package/build/esm/cc/SceneActuatorConfigurationCC.js +0 -2
  344. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  345. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +53 -25
  346. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  347. package/build/esm/cc/SceneControllerConfigurationCC.js +0 -2
  348. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  349. package/build/esm/cc/ScheduleEntryLockCC.d.ts +268 -64
  350. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  351. package/build/esm/cc/ScheduleEntryLockCC.js +0 -14
  352. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  353. package/build/esm/cc/Security2CC.d.ts +15 -21
  354. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  355. package/build/esm/cc/Security2CC.js +31 -475
  356. package/build/esm/cc/Security2CC.js.map +1 -1
  357. package/build/esm/cc/SecurityCC.d.ts +12 -19
  358. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  359. package/build/esm/cc/SecurityCC.js +13 -138
  360. package/build/esm/cc/SecurityCC.js.map +1 -1
  361. package/build/esm/cc/SoundSwitchCC.d.ts +253 -64
  362. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  363. package/build/esm/cc/SoundSwitchCC.js +0 -7
  364. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  365. package/build/esm/cc/SupervisionCC.d.ts +28 -16
  366. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  367. package/build/esm/cc/SupervisionCC.js +4 -34
  368. package/build/esm/cc/SupervisionCC.js.map +1 -1
  369. package/build/esm/cc/ThermostatFanModeCC.d.ts +187 -38
  370. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  371. package/build/esm/cc/ThermostatFanModeCC.js +0 -1
  372. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  373. package/build/esm/cc/ThermostatFanStateCC.d.ts +64 -18
  374. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  375. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  376. package/build/esm/cc/ThermostatModeCC.d.ts +189 -40
  377. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  378. package/build/esm/cc/ThermostatModeCC.js +0 -3
  379. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  380. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +65 -19
  381. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  382. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  383. package/build/esm/cc/ThermostatSetbackCC.d.ts +4 -4
  384. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  385. package/build/esm/cc/ThermostatSetbackCC.js +0 -2
  386. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  387. package/build/esm/cc/ThermostatSetpointCC.d.ts +116 -36
  388. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  389. package/build/esm/cc/ThermostatSetpointCC.js +0 -6
  390. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  391. package/build/esm/cc/TimeCC.d.ts +6 -6
  392. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  393. package/build/esm/cc/TimeCC.js +0 -4
  394. package/build/esm/cc/TimeCC.js.map +1 -1
  395. package/build/esm/cc/TimeParametersCC.d.ts +63 -12
  396. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  397. package/build/esm/cc/TimeParametersCC.js +0 -1
  398. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  399. package/build/esm/cc/TransportServiceCC.d.ts +7 -12
  400. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  401. package/build/esm/cc/TransportServiceCC.js +5 -38
  402. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  403. package/build/esm/cc/UserCodeCC._validateArgs.js +1 -1
  404. package/build/esm/cc/UserCodeCC._validateArgs.js.map +1 -1
  405. package/build/esm/cc/UserCodeCC.d.ts +931 -176
  406. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  407. package/build/esm/cc/UserCodeCC.js +0 -12
  408. package/build/esm/cc/UserCodeCC.js.map +1 -1
  409. package/build/esm/cc/VersionCC.d.ts +897 -185
  410. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  411. package/build/esm/cc/VersionCC.js +0 -4
  412. package/build/esm/cc/VersionCC.js.map +1 -1
  413. package/build/esm/cc/WakeUpCC.d.ts +190 -38
  414. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  415. package/build/esm/cc/WakeUpCC.js +0 -1
  416. package/build/esm/cc/WakeUpCC.js.map +1 -1
  417. package/build/esm/cc/WindowCoveringCC.d.ts +193 -103
  418. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  419. package/build/esm/cc/WindowCoveringCC.js +0 -5
  420. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  421. package/build/esm/cc/ZWavePlusCC.d.ts +311 -51
  422. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  423. package/build/esm/cc/ZWavePlusCC.js +0 -1
  424. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  425. package/build/esm/cc/ZWaveProtocolCC.d.ts +28 -28
  426. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  427. package/build/esm/cc/ZWaveProtocolCC.js +0 -27
  428. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  429. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  430. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  431. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +0 -3
  432. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  433. package/build/esm/index.d.ts +1 -0
  434. package/build/esm/index.d.ts.map +1 -1
  435. package/build/esm/index_browser.d.ts +9 -0
  436. package/build/esm/index_browser.d.ts.map +1 -1
  437. package/build/esm/index_browser.js +8 -1
  438. package/build/esm/index_browser.js.map +1 -1
  439. package/build/esm/lib/API.d.ts +7 -5
  440. package/build/esm/lib/API.d.ts.map +1 -1
  441. package/build/esm/lib/API.js +1 -1
  442. package/build/esm/lib/API.js.map +1 -1
  443. package/build/esm/lib/CommandClass.d.ts +10 -21
  444. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  445. package/build/esm/lib/CommandClass.js +8 -101
  446. package/build/esm/lib/CommandClass.js.map +1 -1
  447. package/build/esm/lib/CommandClassDecorators.d.ts +1 -1
  448. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  449. package/build/esm/lib/CommandClassDecorators.js +1 -1
  450. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  451. package/build/esm/lib/Values.d.ts +2 -2
  452. package/build/esm/lib/Values.d.ts.map +1 -1
  453. package/build/esm/lib/Values.js.map +1 -1
  454. package/build/esm/lib/traits.d.ts +94 -0
  455. package/build/esm/lib/traits.d.ts.map +1 -0
  456. package/build/esm/lib/traits.js +2 -0
  457. package/build/esm/lib/traits.js.map +1 -0
  458. package/build/esm/lib/utils.d.ts +2 -2
  459. package/build/esm/lib/utils.d.ts.map +1 -1
  460. package/build/esm/lib/utils.js.map +1 -1
  461. package/package.json +13 -13
@@ -155,98 +155,18 @@ function assertSecurityTX(ctx, destination) {
155
155
  return ret;
156
156
  }
157
157
  __name(assertSecurityTX, "assertSecurityTX");
158
- function decryptSinglecastSync(ctx, securityManager, sendingNodeId, curSequenceNumber, prevSequenceNumber, ciphertext, authData, authTag, spanState, extensions) {
159
- const decryptWithNonce = /* @__PURE__ */ __name((nonce) => {
160
- const { keyCCM: key } = securityManager.getKeysForNode(sendingNodeId);
161
- const iv = nonce;
162
- return {
163
- key,
164
- iv,
165
- // eslint-disable-next-line @typescript-eslint/no-deprecated
166
- ...(0, import_core.decryptAES128CCMSync)(key, iv, ciphertext, authData, authTag)
167
- };
168
- }, "decryptWithNonce");
169
- const getNonceAndDecrypt = /* @__PURE__ */ __name(() => {
170
- const iv = securityManager.nextNonce(sendingNodeId);
171
- return decryptWithNonce(iv);
172
- }, "getNonceAndDecrypt");
173
- if (spanState.type === import_core.SPANState.SPAN) {
174
- if (
175
- // The previous SPAN is still known, i.e. the node didn't send another command that was successfully decrypted
176
- !!spanState.currentSPAN && spanState.currentSPAN.expires > (0, import_core.highResTimestamp)() && prevSequenceNumber != void 0 && curSequenceNumber === (prevSequenceNumber + 1 & 255) && !ctx.__internalIsMockNode
177
- ) {
178
- const nonce = spanState.currentSPAN.nonce;
179
- spanState.currentSPAN = void 0;
180
- const result = decryptWithNonce(nonce);
181
- if (result.authOK) {
182
- return {
183
- ...result,
184
- securityClass: spanState.securityClass
185
- };
186
- }
187
- } else {
188
- spanState.currentSPAN = void 0;
189
- }
190
- return {
191
- ...getNonceAndDecrypt(),
192
- securityClass: spanState.securityClass
193
- };
194
- } else if (spanState.type === import_core.SPANState.LocalEI) {
195
- const senderEI = getSenderEI(extensions);
196
- if (!senderEI)
197
- failNoSPAN();
198
- const receiverEI = spanState.receiverEI;
199
- const isBootstrappingNode = securityManager.tempKeys.has(sendingNodeId);
200
- if (isBootstrappingNode) {
201
- securityManager.initializeTempSPAN(sendingNodeId, senderEI, receiverEI);
202
- const ret = getNonceAndDecrypt();
203
- if (ret.authOK) {
204
- return {
205
- ...ret,
206
- securityClass: import_core.SecurityClass.Temporary
207
- };
208
- }
209
- securityManager.setSPANState(sendingNodeId, spanState);
210
- }
211
- const possibleSecurityClasses = isBootstrappingNode ? [ctx.getHighestSecurityClass(sendingNodeId)] : import_core.securityClassOrder.filter((s) => ctx.hasSecurityClass(sendingNodeId, s) !== false);
212
- for (const secClass of possibleSecurityClasses) {
213
- if (!securityManager.hasKeysForSecurityClass(secClass)) {
214
- continue;
215
- }
216
- securityManager.initializeSPAN(sendingNodeId, secClass, senderEI, receiverEI);
217
- const ret = getNonceAndDecrypt();
218
- if (ret.authOK) {
219
- if (ctx.hasSecurityClass(sendingNodeId, secClass) === void 0) {
220
- ctx.setSecurityClass(sendingNodeId, secClass, true);
221
- }
222
- return {
223
- ...ret,
224
- securityClass: secClass
225
- };
226
- } else {
227
- securityManager.setSPANState(sendingNodeId, spanState);
228
- }
229
- }
230
- }
231
- return {
232
- plaintext: new Uint8Array(),
233
- authOK: false,
234
- securityClass: void 0
235
- };
236
- }
237
- __name(decryptSinglecastSync, "decryptSinglecastSync");
238
- async function decryptSinglecastAsync(ctx, securityManager, sendingNodeId, curSequenceNumber, prevSequenceNumber, ciphertext, authData, authTag, spanState, extensions) {
158
+ async function decryptSinglecast(ctx, securityManager, sendingNodeId, curSequenceNumber, prevSequenceNumber, ciphertext, authData, authTag, spanState, extensions) {
239
159
  const decryptWithNonce = /* @__PURE__ */ __name(async (nonce) => {
240
160
  const { keyCCM: key } = securityManager.getKeysForNode(sendingNodeId);
241
161
  const iv = nonce;
242
162
  return {
243
163
  key,
244
164
  iv,
245
- ...await (0, import_core.decryptAES128CCMAsync)(ciphertext, key, iv, authData, authTag)
165
+ ...await (0, import_core.decryptAES128CCM)(ciphertext, key, iv, authData, authTag)
246
166
  };
247
167
  }, "decryptWithNonce");
248
168
  const getNonceAndDecrypt = /* @__PURE__ */ __name(async () => {
249
- const iv = await securityManager.nextNonceAsync(sendingNodeId);
169
+ const iv = await securityManager.nextNonce(sendingNodeId);
250
170
  return decryptWithNonce(iv);
251
171
  }, "getNonceAndDecrypt");
252
172
  if (spanState.type === import_core.SPANState.SPAN) {
@@ -277,7 +197,7 @@ async function decryptSinglecastAsync(ctx, securityManager, sendingNodeId, curSe
277
197
  const receiverEI = spanState.receiverEI;
278
198
  const isBootstrappingNode = securityManager.tempKeys.has(sendingNodeId);
279
199
  if (isBootstrappingNode) {
280
- await securityManager.initializeTempSPANAsync(sendingNodeId, senderEI, receiverEI);
200
+ await securityManager.initializeTempSPAN(sendingNodeId, senderEI, receiverEI);
281
201
  const ret = await getNonceAndDecrypt();
282
202
  if (ret.authOK) {
283
203
  return {
@@ -292,7 +212,7 @@ async function decryptSinglecastAsync(ctx, securityManager, sendingNodeId, curSe
292
212
  if (!securityManager.hasKeysForSecurityClass(secClass)) {
293
213
  continue;
294
214
  }
295
- await securityManager.initializeSPANAsync(sendingNodeId, secClass, senderEI, receiverEI);
215
+ await securityManager.initializeSPAN(sendingNodeId, secClass, senderEI, receiverEI);
296
216
  const ret = await getNonceAndDecrypt();
297
217
  if (ret.authOK) {
298
218
  if (ctx.hasSecurityClass(sendingNodeId, secClass) === void 0) {
@@ -313,32 +233,19 @@ async function decryptSinglecastAsync(ctx, securityManager, sendingNodeId, curSe
313
233
  securityClass: void 0
314
234
  };
315
235
  }
316
- __name(decryptSinglecastAsync, "decryptSinglecastAsync");
317
- function decryptMulticastSync(sendingNodeId, securityManager, groupId, ciphertext, authData, authTag) {
318
- const iv = securityManager.nextPeerMPAN(sendingNodeId, groupId);
236
+ __name(decryptSinglecast, "decryptSinglecast");
237
+ async function decryptMulticast(sendingNodeId, securityManager, groupId, ciphertext, authData, authTag) {
238
+ const iv = await securityManager.nextPeerMPAN(sendingNodeId, groupId);
319
239
  const { keyCCM: key } = securityManager.getKeysForNode(sendingNodeId);
320
240
  return {
321
241
  key,
322
242
  iv,
323
- // eslint-disable-next-line @typescript-eslint/no-deprecated
324
- ...(0, import_core.decryptAES128CCMSync)(key, iv, ciphertext, authData, authTag),
243
+ ...await (0, import_core.decryptAES128CCM)(ciphertext, key, iv, authData, authTag),
325
244
  // The security class is irrelevant when decrypting multicast commands
326
245
  securityClass: void 0
327
246
  };
328
247
  }
329
- __name(decryptMulticastSync, "decryptMulticastSync");
330
- async function decryptMulticastAsync(sendingNodeId, securityManager, groupId, ciphertext, authData, authTag) {
331
- const iv = await securityManager.nextPeerMPANAsync(sendingNodeId, groupId);
332
- const { keyCCM: key } = securityManager.getKeysForNode(sendingNodeId);
333
- return {
334
- key,
335
- iv,
336
- ...await (0, import_core.decryptAES128CCMAsync)(ciphertext, key, iv, authData, authTag),
337
- // The security class is irrelevant when decrypting multicast commands
338
- securityClass: void 0
339
- };
340
- }
341
- __name(decryptMulticastAsync, "decryptMulticastAsync");
248
+ __name(decryptMulticast, "decryptMulticast");
342
249
  function parseExtensions(buffer, wasEncrypted) {
343
250
  const extensions = [];
344
251
  let mustDiscardCommand = false;
@@ -448,7 +355,7 @@ let Security2CCAPI = (() => {
448
355
  if (!securityManager) {
449
356
  throw new import_core.ZWaveError(`Nonces can only be sent if secure communication is set up!`, import_core.ZWaveErrorCodes.Driver_NoSecurity);
450
357
  }
451
- const receiverEI = await securityManager.generateNonceAsync(this.endpoint.nodeId);
358
+ const receiverEI = await securityManager.generateNonce(this.endpoint.nodeId);
452
359
  const cc = new Security2CCNonceReport({
453
360
  nodeId: this.endpoint.nodeId,
454
361
  endpointIndex: this.endpoint.index,
@@ -998,152 +905,7 @@ let Security2CCMessageEncapsulation = (() => {
998
905
  throw new import_core.ZWaveError("Multicast Security S2 encapsulation requires the MGRP extension", import_core.ZWaveErrorCodes.Security2CC_MissingExtension);
999
906
  }
1000
907
  }
1001
- /** @deprecated Use {@link fromAsync} instead */
1002
- static from(raw, ctx) {
1003
- const securityManager = assertSecurityRX(ctx);
1004
- (0, import_core.validatePayload)(raw.payload.length >= 2);
1005
- const sequenceNumber = raw.payload[0];
1006
- import_core.validatePayload.withReason("No security class granted")(ctx.getHighestSecurityClass(ctx.sourceNodeId) !== import_core.SecurityClass.None);
1007
- const hasExtensions = !!(raw.payload[1] & 1);
1008
- const hasEncryptedExtensions = !!(raw.payload[1] & 2);
1009
- let offset = 2;
1010
- const extensions = [];
1011
- let mustDiscardCommand = false;
1012
- if (hasExtensions) {
1013
- const parseResult = parseExtensions(raw.payload.subarray(offset), false);
1014
- extensions.push(...parseResult.extensions);
1015
- offset += parseResult.bytesRead;
1016
- mustDiscardCommand = parseResult.mustDiscardCommand;
1017
- }
1018
- const mcctx = (() => {
1019
- const multicastGroupId = getMulticastGroupId(extensions);
1020
- if (ctx.frameType === "multicast" || ctx.frameType === "broadcast") {
1021
- if (multicastGroupId == void 0) {
1022
- import_core.validatePayload.fail("Multicast frames without MGRP extension");
1023
- }
1024
- return {
1025
- isMulticast: true,
1026
- groupId: multicastGroupId
1027
- };
1028
- } else {
1029
- return { isMulticast: false, groupId: multicastGroupId };
1030
- }
1031
- })();
1032
- if (mustDiscardCommand) {
1033
- if (mcctx.isMulticast) {
1034
- securityManager.nextPeerMPAN(ctx.sourceNodeId, mcctx.groupId);
1035
- } else {
1036
- securityManager.nextNonce(ctx.sourceNodeId);
1037
- }
1038
- import_core.validatePayload.fail("Invalid S2 extension");
1039
- }
1040
- let prevSequenceNumber;
1041
- let mpanState;
1042
- if (mcctx.isMulticast) {
1043
- mpanState = securityManager.getPeerMPAN(ctx.sourceNodeId, mcctx.groupId);
1044
- } else {
1045
- prevSequenceNumber = validateSequenceNumber(securityManager, ctx.sourceNodeId, sequenceNumber);
1046
- if (mcctx.groupId == void 0) {
1047
- securityManager.resetOutOfSyncMPANs(ctx.sourceNodeId);
1048
- }
1049
- }
1050
- const unencryptedPayload = raw.payload.subarray(0, offset);
1051
- const ciphertext = raw.payload.subarray(offset, -SECURITY_S2_AUTH_TAG_LENGTH);
1052
- const authTag = raw.payload.subarray(-SECURITY_S2_AUTH_TAG_LENGTH);
1053
- const messageLength = 2 + raw.payload.length;
1054
- const authData = getAuthenticationData(ctx.sourceNodeId, getDestinationIDRX(ctx, extensions), ctx.homeId, messageLength, unencryptedPayload);
1055
- let decrypt;
1056
- if (mcctx.isMulticast) {
1057
- if (mpanState?.type !== import_core.MPANState.MPAN) {
1058
- securityManager.storePeerMPAN(ctx.sourceNodeId, mcctx.groupId, { type: import_core.MPANState.OutOfSync });
1059
- failNoMPAN();
1060
- }
1061
- decrypt = /* @__PURE__ */ __name(() => (
1062
- // eslint-disable-next-line @typescript-eslint/no-deprecated
1063
- decryptMulticastSync(ctx.sourceNodeId, securityManager, mcctx.groupId, ciphertext, authData, authTag)
1064
- ), "decrypt");
1065
- } else {
1066
- const spanState = securityManager.getSPANState(ctx.sourceNodeId);
1067
- if (spanState.type === import_core.SPANState.None) {
1068
- failNoSPAN();
1069
- } else if (spanState.type === import_core.SPANState.RemoteEI) {
1070
- failNoSPAN();
1071
- }
1072
- decrypt = /* @__PURE__ */ __name(() => (
1073
- // eslint-disable-next-line @typescript-eslint/no-deprecated
1074
- decryptSinglecastSync(ctx, securityManager, ctx.sourceNodeId, sequenceNumber, prevSequenceNumber, ciphertext, authData, authTag, spanState, extensions)
1075
- ), "decrypt");
1076
- }
1077
- let plaintext;
1078
- let authOK = false;
1079
- let key;
1080
- let iv;
1081
- let decryptionSecurityClass;
1082
- const decryptAttempts = mcctx.isMulticast ? MAX_DECRYPT_ATTEMPTS_MULTICAST : mcctx.groupId != void 0 ? MAX_DECRYPT_ATTEMPTS_SC_FOLLOWUP : MAX_DECRYPT_ATTEMPTS_SINGLECAST;
1083
- for (let i = 0; i < decryptAttempts; i++) {
1084
- ({
1085
- plaintext,
1086
- authOK,
1087
- key,
1088
- iv,
1089
- securityClass: decryptionSecurityClass
1090
- } = decrypt());
1091
- if (!!authOK && !!plaintext)
1092
- break;
1093
- if (!!getSenderEI(extensions))
1094
- break;
1095
- }
1096
- if (!authOK || !plaintext) {
1097
- if (mcctx.isMulticast) {
1098
- securityManager.storePeerMPAN(ctx.sourceNodeId, mcctx.groupId, { type: import_core.MPANState.OutOfSync });
1099
- import_core.validatePayload.fail(import_core.ZWaveErrorCodes.Security2CC_CannotDecodeMulticast);
1100
- } else {
1101
- import_core.validatePayload.fail(import_core.ZWaveErrorCodes.Security2CC_CannotDecode);
1102
- }
1103
- } else if (!mcctx.isMulticast && mcctx.groupId != void 0) {
1104
- securityManager.tryIncrementPeerMPAN(ctx.sourceNodeId, mcctx.groupId);
1105
- }
1106
- const securityClass = decryptionSecurityClass;
1107
- offset = 0;
1108
- if (hasEncryptedExtensions) {
1109
- const parseResult = parseExtensions(plaintext, true);
1110
- extensions.push(...parseResult.extensions);
1111
- offset += parseResult.bytesRead;
1112
- mustDiscardCommand = parseResult.mustDiscardCommand;
1113
- }
1114
- if (mustDiscardCommand) {
1115
- import_core.validatePayload.fail("Invalid extension");
1116
- }
1117
- if (!mcctx.isMulticast) {
1118
- const mpanExtension = extensions.find((e) => e instanceof import_Extension.MPANExtension);
1119
- if (mpanExtension) {
1120
- securityManager.storePeerMPAN(ctx.sourceNodeId, mpanExtension.groupId, {
1121
- type: import_core.MPANState.MPAN,
1122
- currentMPAN: mpanExtension.innerMPANState
1123
- });
1124
- }
1125
- }
1126
- const decryptedCCBytes = plaintext.subarray(offset);
1127
- let encapsulated;
1128
- if (decryptedCCBytes.length > 0) {
1129
- (0, import_core.validatePayload)(decryptedCCBytes.length >= 2);
1130
- encapsulated = import_CommandClass.CommandClass.parse(decryptedCCBytes, ctx);
1131
- }
1132
- const ret = new Security2CCMessageEncapsulation2({
1133
- nodeId: ctx.sourceNodeId,
1134
- sequenceNumber,
1135
- securityClass,
1136
- extensions,
1137
- encapsulated
1138
- });
1139
- ret.key = key;
1140
- ret.iv = iv;
1141
- ret.authData = authData;
1142
- ret.authTag = authTag;
1143
- ret.plaintext = decryptedCCBytes;
1144
- return ret;
1145
- }
1146
- static async fromAsync(raw, ctx) {
908
+ static async from(raw, ctx) {
1147
909
  const securityManager = assertSecurityRX(ctx);
1148
910
  (0, import_core.validatePayload)(raw.payload.length >= 2);
1149
911
  const sequenceNumber = raw.payload[0];
@@ -1175,9 +937,9 @@ let Security2CCMessageEncapsulation = (() => {
1175
937
  })();
1176
938
  if (mustDiscardCommand) {
1177
939
  if (mcctx.isMulticast) {
1178
- await securityManager.nextPeerMPANAsync(ctx.sourceNodeId, mcctx.groupId);
940
+ await securityManager.nextPeerMPAN(ctx.sourceNodeId, mcctx.groupId);
1179
941
  } else {
1180
- await securityManager.nextNonceAsync(ctx.sourceNodeId);
942
+ await securityManager.nextNonce(ctx.sourceNodeId);
1181
943
  }
1182
944
  import_core.validatePayload.fail("Invalid S2 extension");
1183
945
  }
@@ -1202,7 +964,7 @@ let Security2CCMessageEncapsulation = (() => {
1202
964
  securityManager.storePeerMPAN(ctx.sourceNodeId, mcctx.groupId, { type: import_core.MPANState.OutOfSync });
1203
965
  failNoMPAN();
1204
966
  }
1205
- decrypt = /* @__PURE__ */ __name(() => decryptMulticastAsync(ctx.sourceNodeId, securityManager, mcctx.groupId, ciphertext, authData, authTag), "decrypt");
967
+ decrypt = /* @__PURE__ */ __name(() => decryptMulticast(ctx.sourceNodeId, securityManager, mcctx.groupId, ciphertext, authData, authTag), "decrypt");
1206
968
  } else {
1207
969
  const spanState = securityManager.getSPANState(ctx.sourceNodeId);
1208
970
  if (spanState.type === import_core.SPANState.None) {
@@ -1210,7 +972,7 @@ let Security2CCMessageEncapsulation = (() => {
1210
972
  } else if (spanState.type === import_core.SPANState.RemoteEI) {
1211
973
  failNoSPAN();
1212
974
  }
1213
- decrypt = /* @__PURE__ */ __name(() => decryptSinglecastAsync(ctx, securityManager, ctx.sourceNodeId, sequenceNumber, prevSequenceNumber, ciphertext, authData, authTag, spanState, extensions), "decrypt");
975
+ decrypt = /* @__PURE__ */ __name(() => decryptSinglecast(ctx, securityManager, ctx.sourceNodeId, sequenceNumber, prevSequenceNumber, ciphertext, authData, authTag, spanState, extensions), "decrypt");
1214
976
  }
1215
977
  let plaintext;
1216
978
  let authOK = false;
@@ -1252,12 +1014,16 @@ let Security2CCMessageEncapsulation = (() => {
1252
1014
  if (mustDiscardCommand) {
1253
1015
  import_core.validatePayload.fail("Invalid extension");
1254
1016
  }
1017
+ const mpanExtension = extensions.find((e) => e instanceof import_Extension.MPANExtension);
1018
+ if (mcctx.groupId != void 0 && mpanExtension) {
1019
+ import_core.validatePayload.fail("Invalid combination of extensions");
1020
+ }
1255
1021
  if (!mcctx.isMulticast) {
1256
- const mpanExtension = extensions.find((e) => e instanceof import_Extension.MPANExtension);
1257
- if (mpanExtension) {
1258
- securityManager.storePeerMPAN(ctx.sourceNodeId, mpanExtension.groupId, {
1022
+ const mpanExtension2 = extensions.find((e) => e instanceof import_Extension.MPANExtension);
1023
+ if (mpanExtension2) {
1024
+ securityManager.storePeerMPAN(ctx.sourceNodeId, mpanExtension2.groupId, {
1259
1025
  type: import_core.MPANState.MPAN,
1260
- currentMPAN: mpanExtension.innerMPANState
1026
+ currentMPAN: mpanExtension2.innerMPANState
1261
1027
  });
1262
1028
  }
1263
1029
  }
@@ -1265,7 +1031,7 @@ let Security2CCMessageEncapsulation = (() => {
1265
1031
  let encapsulated;
1266
1032
  if (decryptedCCBytes.length > 0) {
1267
1033
  (0, import_core.validatePayload)(decryptedCCBytes.length >= 2);
1268
- encapsulated = await import_CommandClass.CommandClass.parseAsync(decryptedCCBytes, ctx);
1034
+ encapsulated = await import_CommandClass.CommandClass.parse(decryptedCCBytes, ctx);
1269
1035
  }
1270
1036
  const ret = new Security2CCMessageEncapsulation2({
1271
1037
  nodeId: ctx.sourceNodeId,
@@ -1318,36 +1084,7 @@ let Security2CCMessageEncapsulation = (() => {
1318
1084
  getMulticastGroupId() {
1319
1085
  return getMulticastGroupId(this.extensions);
1320
1086
  }
1321
- /** @deprecated Use {@link maybeAddSPANExtensionAsync} instead */
1322
- maybeAddSPANExtensionSync(ctx, securityManager) {
1323
- if (!this.isSinglecast())
1324
- return;
1325
- const receiverNodeId = this.nodeId;
1326
- const spanState = securityManager.getSPANState(receiverNodeId);
1327
- if (spanState.type === import_core.SPANState.None || spanState.type === import_core.SPANState.LocalEI) {
1328
- throw new import_core.ZWaveError(`Security S2 CC requires the receiver's nonce to be sent!`, import_core.ZWaveErrorCodes.Security2CC_NoSPAN);
1329
- } else if (spanState.type === import_core.SPANState.RemoteEI) {
1330
- const senderEI = securityManager.generateNonce(void 0);
1331
- const receiverEI = spanState.receiverEI;
1332
- if (this.securityClass == void 0 && securityManager.tempKeys.has(receiverNodeId)) {
1333
- securityManager.initializeTempSPAN(receiverNodeId, senderEI, receiverEI);
1334
- } else {
1335
- const securityClass = this.securityClass ?? ctx.getHighestSecurityClass(receiverNodeId);
1336
- if (securityClass == void 0) {
1337
- throw new import_core.ZWaveError("No security class defined for this command!", import_core.ZWaveErrorCodes.Security2CC_NoSPAN);
1338
- }
1339
- securityManager.initializeSPAN(receiverNodeId, securityClass, senderEI, receiverEI);
1340
- }
1341
- let spanExtension = this.extensions.find((e) => e instanceof import_Extension.SPANExtension);
1342
- if (spanExtension) {
1343
- spanExtension.senderEI = senderEI;
1344
- } else {
1345
- spanExtension = new import_Extension.SPANExtension({ senderEI });
1346
- this.extensions.push(spanExtension);
1347
- }
1348
- }
1349
- }
1350
- async maybeAddSPANExtensionAsync(ctx, securityManager) {
1087
+ async maybeAddSPANExtension(ctx, securityManager) {
1351
1088
  if (!this.isSinglecast())
1352
1089
  return;
1353
1090
  const receiverNodeId = this.nodeId;
@@ -1355,16 +1092,16 @@ let Security2CCMessageEncapsulation = (() => {
1355
1092
  if (spanState.type === import_core.SPANState.None || spanState.type === import_core.SPANState.LocalEI) {
1356
1093
  throw new import_core.ZWaveError(`Security S2 CC requires the receiver's nonce to be sent!`, import_core.ZWaveErrorCodes.Security2CC_NoSPAN);
1357
1094
  } else if (spanState.type === import_core.SPANState.RemoteEI) {
1358
- const senderEI = await securityManager.generateNonceAsync(void 0);
1095
+ const senderEI = await securityManager.generateNonce(void 0);
1359
1096
  const receiverEI = spanState.receiverEI;
1360
1097
  if (this.securityClass == void 0 && securityManager.tempKeys.has(receiverNodeId)) {
1361
- await securityManager.initializeTempSPANAsync(receiverNodeId, senderEI, receiverEI);
1098
+ await securityManager.initializeTempSPAN(receiverNodeId, senderEI, receiverEI);
1362
1099
  } else {
1363
1100
  const securityClass = this.securityClass ?? ctx.getHighestSecurityClass(receiverNodeId);
1364
1101
  if (securityClass == void 0) {
1365
1102
  throw new import_core.ZWaveError("No security class defined for this command!", import_core.ZWaveErrorCodes.Security2CC_NoSPAN);
1366
1103
  }
1367
- await securityManager.initializeSPANAsync(receiverNodeId, securityClass, senderEI, receiverEI);
1104
+ await securityManager.initializeSPAN(receiverNodeId, securityClass, senderEI, receiverEI);
1368
1105
  }
1369
1106
  let spanExtension = this.extensions.find((e) => e instanceof import_Extension.SPANExtension);
1370
1107
  if (spanExtension) {
@@ -1375,11 +1112,10 @@ let Security2CCMessageEncapsulation = (() => {
1375
1112
  }
1376
1113
  }
1377
1114
  }
1378
- /** @deprecated Use {@link serializeAsync} instead */
1379
- serialize(ctx) {
1115
+ async serialize(ctx) {
1380
1116
  const securityManager = assertSecurityTX(ctx, this.nodeId);
1381
1117
  this.ensureSequenceNumber(securityManager);
1382
- this.maybeAddSPANExtensionSync(ctx, securityManager);
1118
+ await this.maybeAddSPANExtension(ctx, securityManager);
1383
1119
  const unencryptedExtensions = this.extensions.filter((e) => !e.isEncrypted());
1384
1120
  const encryptedExtensions = this.extensions.filter((e) => e.isEncrypted());
1385
1121
  const unencryptedPayload = import_safe2.Bytes.concat([
@@ -1389,7 +1125,7 @@ let Security2CCMessageEncapsulation = (() => {
1389
1125
  ]),
1390
1126
  ...unencryptedExtensions.map((e, index) => e.serialize(index < unencryptedExtensions.length - 1))
1391
1127
  ]);
1392
- const serializedCC = this.encapsulated?.serialize(ctx) ?? new import_safe2.Bytes();
1128
+ const serializedCC = await this.encapsulated?.serialize(ctx) ?? new import_safe2.Bytes();
1393
1129
  const plaintextPayload = import_safe2.Bytes.concat([
1394
1130
  ...encryptedExtensions.map((e, index) => e.serialize(index < encryptedExtensions.length - 1)),
1395
1131
  serializedCC
@@ -1400,18 +1136,18 @@ let Security2CCMessageEncapsulation = (() => {
1400
1136
  let key;
1401
1137
  let iv;
1402
1138
  if (this.isSinglecast()) {
1403
- iv = securityManager.nextNonce(this.nodeId, true);
1139
+ iv = await securityManager.nextNonce(this.nodeId, true);
1404
1140
  const { keyCCM } = (
1405
1141
  // Prefer the overridden security class if it was given
1406
1142
  this.securityClass != void 0 ? securityManager.getKeysForSecurityClass(this.securityClass) : securityManager.getKeysForNode(this.nodeId)
1407
1143
  );
1408
1144
  key = keyCCM;
1409
1145
  } else {
1410
- const keyAndIV = securityManager.getMulticastKeyAndIV(destinationTag);
1146
+ const keyAndIV = await securityManager.getMulticastKeyAndIV(destinationTag);
1411
1147
  key = keyAndIV.key;
1412
1148
  iv = keyAndIV.iv;
1413
1149
  }
1414
- const { ciphertext: ciphertextPayload, authTag } = (0, import_core.encryptAES128CCMSync)(key, iv, plaintextPayload, authData, SECURITY_S2_AUTH_TAG_LENGTH);
1150
+ const { ciphertext: ciphertextPayload, authTag } = await (0, import_core.encryptAES128CCM)(plaintextPayload, key, iv, authData, SECURITY_S2_AUTH_TAG_LENGTH);
1415
1151
  this.key = key;
1416
1152
  this.iv = iv;
1417
1153
  this.authData = authData;
@@ -1424,54 +1160,6 @@ let Security2CCMessageEncapsulation = (() => {
1424
1160
  ]);
1425
1161
  return super.serialize(ctx);
1426
1162
  }
1427
- async serializeAsync(ctx) {
1428
- const securityManager = assertSecurityTX(ctx, this.nodeId);
1429
- this.ensureSequenceNumber(securityManager);
1430
- await this.maybeAddSPANExtensionAsync(ctx, securityManager);
1431
- const unencryptedExtensions = this.extensions.filter((e) => !e.isEncrypted());
1432
- const encryptedExtensions = this.extensions.filter((e) => e.isEncrypted());
1433
- const unencryptedPayload = import_safe2.Bytes.concat([
1434
- import_safe2.Bytes.from([
1435
- this.sequenceNumber,
1436
- (encryptedExtensions.length > 0 ? 2 : 0) | (unencryptedExtensions.length > 0 ? 1 : 0)
1437
- ]),
1438
- ...unencryptedExtensions.map((e, index) => e.serialize(index < unencryptedExtensions.length - 1))
1439
- ]);
1440
- const serializedCC = await this.encapsulated?.serializeAsync(ctx) ?? new import_safe2.Bytes();
1441
- const plaintextPayload = import_safe2.Bytes.concat([
1442
- ...encryptedExtensions.map((e, index) => e.serialize(index < encryptedExtensions.length - 1)),
1443
- serializedCC
1444
- ]);
1445
- const destinationTag = getDestinationIDTX.call(this);
1446
- const messageLength = this.computeEncapsulationOverhead() + serializedCC.length;
1447
- const authData = getAuthenticationData(ctx.ownNodeId, destinationTag, ctx.homeId, messageLength, unencryptedPayload);
1448
- let key;
1449
- let iv;
1450
- if (this.isSinglecast()) {
1451
- iv = await securityManager.nextNonceAsync(this.nodeId, true);
1452
- const { keyCCM } = (
1453
- // Prefer the overridden security class if it was given
1454
- this.securityClass != void 0 ? securityManager.getKeysForSecurityClass(this.securityClass) : securityManager.getKeysForNode(this.nodeId)
1455
- );
1456
- key = keyCCM;
1457
- } else {
1458
- const keyAndIV = await securityManager.getMulticastKeyAndIVAsync(destinationTag);
1459
- key = keyAndIV.key;
1460
- iv = keyAndIV.iv;
1461
- }
1462
- const { ciphertext: ciphertextPayload, authTag } = await (0, import_core.encryptAES128CCMAsync)(plaintextPayload, key, iv, authData, SECURITY_S2_AUTH_TAG_LENGTH);
1463
- this.key = key;
1464
- this.iv = iv;
1465
- this.authData = authData;
1466
- this.authTag = authTag;
1467
- this.ciphertext = ciphertextPayload;
1468
- this.payload = import_safe2.Bytes.concat([
1469
- unencryptedPayload,
1470
- ciphertextPayload,
1471
- authTag
1472
- ]);
1473
- return super.serializeAsync(ctx);
1474
- }
1475
1163
  computeEncapsulationOverhead() {
1476
1164
  const extensionBytes = this.extensions.map((e) => e.computeLength()).reduce((a, b) => a + b, 0);
1477
1165
  return super.computeEncapsulationOverhead() + 2 + SECURITY_S2_AUTH_TAG_LENGTH + extensionBytes;