@zwave-js/cc 14.3.10 → 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 +389 -64
  50. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +154 -8
  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 +32 -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 +389 -64
  255. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  256. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +158 -30
  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 +27 -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);
319
- const { keyCCM: key } = securityManager.getKeysForNode(sendingNodeId);
320
- return {
321
- key,
322
- iv,
323
- // eslint-disable-next-line @typescript-eslint/no-deprecated
324
- ...(0, import_core.decryptAES128CCMSync)(key, iv, ciphertext, authData, authTag),
325
- // The security class is irrelevant when decrypting multicast commands
326
- securityClass: void 0
327
- };
328
- }
329
- __name(decryptMulticastSync, "decryptMulticastSync");
330
- async function decryptMulticastAsync(sendingNodeId, securityManager, groupId, ciphertext, authData, authTag) {
331
- const iv = await securityManager.nextPeerMPANAsync(sendingNodeId, groupId);
236
+ __name(decryptSinglecast, "decryptSinglecast");
237
+ async function decryptMulticast(sendingNodeId, securityManager, groupId, ciphertext, authData, authTag) {
238
+ const iv = await securityManager.nextPeerMPAN(sendingNodeId, groupId);
332
239
  const { keyCCM: key } = securityManager.getKeysForNode(sendingNodeId);
333
240
  return {
334
241
  key,
335
242
  iv,
336
- ...await (0, import_core.decryptAES128CCMAsync)(ciphertext, key, iv, authData, authTag),
243
+ ...await (0, import_core.decryptAES128CCM)(ciphertext, key, iv, authData, authTag),
337
244
  // The security class is irrelevant when decrypting multicast commands
338
245
  securityClass: void 0
339
246
  };
340
247
  }
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,8 +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) {
908
+ static async from(raw, ctx) {
1003
909
  const securityManager = assertSecurityRX(ctx);
1004
910
  (0, import_core.validatePayload)(raw.payload.length >= 2);
1005
911
  const sequenceNumber = raw.payload[0];
@@ -1031,9 +937,9 @@ let Security2CCMessageEncapsulation = (() => {
1031
937
  })();
1032
938
  if (mustDiscardCommand) {
1033
939
  if (mcctx.isMulticast) {
1034
- securityManager.nextPeerMPAN(ctx.sourceNodeId, mcctx.groupId);
940
+ await securityManager.nextPeerMPAN(ctx.sourceNodeId, mcctx.groupId);
1035
941
  } else {
1036
- securityManager.nextNonce(ctx.sourceNodeId);
942
+ await securityManager.nextNonce(ctx.sourceNodeId);
1037
943
  }
1038
944
  import_core.validatePayload.fail("Invalid S2 extension");
1039
945
  }
@@ -1058,10 +964,7 @@ let Security2CCMessageEncapsulation = (() => {
1058
964
  securityManager.storePeerMPAN(ctx.sourceNodeId, mcctx.groupId, { type: import_core.MPANState.OutOfSync });
1059
965
  failNoMPAN();
1060
966
  }
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");
967
+ decrypt = /* @__PURE__ */ __name(() => decryptMulticast(ctx.sourceNodeId, securityManager, mcctx.groupId, ciphertext, authData, authTag), "decrypt");
1065
968
  } else {
1066
969
  const spanState = securityManager.getSPANState(ctx.sourceNodeId);
1067
970
  if (spanState.type === import_core.SPANState.None) {
@@ -1069,10 +972,7 @@ let Security2CCMessageEncapsulation = (() => {
1069
972
  } else if (spanState.type === import_core.SPANState.RemoteEI) {
1070
973
  failNoSPAN();
1071
974
  }
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");
975
+ decrypt = /* @__PURE__ */ __name(() => decryptSinglecast(ctx, securityManager, ctx.sourceNodeId, sequenceNumber, prevSequenceNumber, ciphertext, authData, authTag, spanState, extensions), "decrypt");
1076
976
  }
1077
977
  let plaintext;
1078
978
  let authOK = false;
@@ -1087,7 +987,7 @@ let Security2CCMessageEncapsulation = (() => {
1087
987
  key,
1088
988
  iv,
1089
989
  securityClass: decryptionSecurityClass
1090
- } = decrypt());
990
+ } = await decrypt());
1091
991
  if (!!authOK && !!plaintext)
1092
992
  break;
1093
993
  if (!!getSenderEI(extensions))
@@ -1119,10 +1019,11 @@ let Security2CCMessageEncapsulation = (() => {
1119
1019
  import_core.validatePayload.fail("Invalid combination of extensions");
1120
1020
  }
1121
1021
  if (!mcctx.isMulticast) {
1122
- if (mpanExtension) {
1123
- 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, {
1124
1025
  type: import_core.MPANState.MPAN,
1125
- currentMPAN: mpanExtension.innerMPANState
1026
+ currentMPAN: mpanExtension2.innerMPANState
1126
1027
  });
1127
1028
  }
1128
1029
  }
@@ -1130,145 +1031,7 @@ let Security2CCMessageEncapsulation = (() => {
1130
1031
  let encapsulated;
1131
1032
  if (decryptedCCBytes.length > 0) {
1132
1033
  (0, import_core.validatePayload)(decryptedCCBytes.length >= 2);
1133
- encapsulated = import_CommandClass.CommandClass.parse(decryptedCCBytes, ctx);
1134
- }
1135
- const ret = new Security2CCMessageEncapsulation2({
1136
- nodeId: ctx.sourceNodeId,
1137
- sequenceNumber,
1138
- securityClass,
1139
- extensions,
1140
- encapsulated
1141
- });
1142
- ret.key = key;
1143
- ret.iv = iv;
1144
- ret.authData = authData;
1145
- ret.authTag = authTag;
1146
- ret.plaintext = decryptedCCBytes;
1147
- return ret;
1148
- }
1149
- static async fromAsync(raw, ctx) {
1150
- const securityManager = assertSecurityRX(ctx);
1151
- (0, import_core.validatePayload)(raw.payload.length >= 2);
1152
- const sequenceNumber = raw.payload[0];
1153
- import_core.validatePayload.withReason("No security class granted")(ctx.getHighestSecurityClass(ctx.sourceNodeId) !== import_core.SecurityClass.None);
1154
- const hasExtensions = !!(raw.payload[1] & 1);
1155
- const hasEncryptedExtensions = !!(raw.payload[1] & 2);
1156
- let offset = 2;
1157
- const extensions = [];
1158
- let mustDiscardCommand = false;
1159
- if (hasExtensions) {
1160
- const parseResult = parseExtensions(raw.payload.subarray(offset), false);
1161
- extensions.push(...parseResult.extensions);
1162
- offset += parseResult.bytesRead;
1163
- mustDiscardCommand = parseResult.mustDiscardCommand;
1164
- }
1165
- const mcctx = (() => {
1166
- const multicastGroupId = getMulticastGroupId(extensions);
1167
- if (ctx.frameType === "multicast" || ctx.frameType === "broadcast") {
1168
- if (multicastGroupId == void 0) {
1169
- import_core.validatePayload.fail("Multicast frames without MGRP extension");
1170
- }
1171
- return {
1172
- isMulticast: true,
1173
- groupId: multicastGroupId
1174
- };
1175
- } else {
1176
- return { isMulticast: false, groupId: multicastGroupId };
1177
- }
1178
- })();
1179
- if (mustDiscardCommand) {
1180
- if (mcctx.isMulticast) {
1181
- await securityManager.nextPeerMPANAsync(ctx.sourceNodeId, mcctx.groupId);
1182
- } else {
1183
- await securityManager.nextNonceAsync(ctx.sourceNodeId);
1184
- }
1185
- import_core.validatePayload.fail("Invalid S2 extension");
1186
- }
1187
- let prevSequenceNumber;
1188
- let mpanState;
1189
- if (mcctx.isMulticast) {
1190
- mpanState = securityManager.getPeerMPAN(ctx.sourceNodeId, mcctx.groupId);
1191
- } else {
1192
- prevSequenceNumber = validateSequenceNumber(securityManager, ctx.sourceNodeId, sequenceNumber);
1193
- if (mcctx.groupId == void 0) {
1194
- securityManager.resetOutOfSyncMPANs(ctx.sourceNodeId);
1195
- }
1196
- }
1197
- const unencryptedPayload = raw.payload.subarray(0, offset);
1198
- const ciphertext = raw.payload.subarray(offset, -SECURITY_S2_AUTH_TAG_LENGTH);
1199
- const authTag = raw.payload.subarray(-SECURITY_S2_AUTH_TAG_LENGTH);
1200
- const messageLength = 2 + raw.payload.length;
1201
- const authData = getAuthenticationData(ctx.sourceNodeId, getDestinationIDRX(ctx, extensions), ctx.homeId, messageLength, unencryptedPayload);
1202
- let decrypt;
1203
- if (mcctx.isMulticast) {
1204
- if (mpanState?.type !== import_core.MPANState.MPAN) {
1205
- securityManager.storePeerMPAN(ctx.sourceNodeId, mcctx.groupId, { type: import_core.MPANState.OutOfSync });
1206
- failNoMPAN();
1207
- }
1208
- decrypt = /* @__PURE__ */ __name(() => decryptMulticastAsync(ctx.sourceNodeId, securityManager, mcctx.groupId, ciphertext, authData, authTag), "decrypt");
1209
- } else {
1210
- const spanState = securityManager.getSPANState(ctx.sourceNodeId);
1211
- if (spanState.type === import_core.SPANState.None) {
1212
- failNoSPAN();
1213
- } else if (spanState.type === import_core.SPANState.RemoteEI) {
1214
- failNoSPAN();
1215
- }
1216
- decrypt = /* @__PURE__ */ __name(() => decryptSinglecastAsync(ctx, securityManager, ctx.sourceNodeId, sequenceNumber, prevSequenceNumber, ciphertext, authData, authTag, spanState, extensions), "decrypt");
1217
- }
1218
- let plaintext;
1219
- let authOK = false;
1220
- let key;
1221
- let iv;
1222
- let decryptionSecurityClass;
1223
- const decryptAttempts = mcctx.isMulticast ? MAX_DECRYPT_ATTEMPTS_MULTICAST : mcctx.groupId != void 0 ? MAX_DECRYPT_ATTEMPTS_SC_FOLLOWUP : MAX_DECRYPT_ATTEMPTS_SINGLECAST;
1224
- for (let i = 0; i < decryptAttempts; i++) {
1225
- ({
1226
- plaintext,
1227
- authOK,
1228
- key,
1229
- iv,
1230
- securityClass: decryptionSecurityClass
1231
- } = await decrypt());
1232
- if (!!authOK && !!plaintext)
1233
- break;
1234
- if (!!getSenderEI(extensions))
1235
- break;
1236
- }
1237
- if (!authOK || !plaintext) {
1238
- if (mcctx.isMulticast) {
1239
- securityManager.storePeerMPAN(ctx.sourceNodeId, mcctx.groupId, { type: import_core.MPANState.OutOfSync });
1240
- import_core.validatePayload.fail(import_core.ZWaveErrorCodes.Security2CC_CannotDecodeMulticast);
1241
- } else {
1242
- import_core.validatePayload.fail(import_core.ZWaveErrorCodes.Security2CC_CannotDecode);
1243
- }
1244
- } else if (!mcctx.isMulticast && mcctx.groupId != void 0) {
1245
- securityManager.tryIncrementPeerMPAN(ctx.sourceNodeId, mcctx.groupId);
1246
- }
1247
- const securityClass = decryptionSecurityClass;
1248
- offset = 0;
1249
- if (hasEncryptedExtensions) {
1250
- const parseResult = parseExtensions(plaintext, true);
1251
- extensions.push(...parseResult.extensions);
1252
- offset += parseResult.bytesRead;
1253
- mustDiscardCommand = parseResult.mustDiscardCommand;
1254
- }
1255
- if (mustDiscardCommand) {
1256
- import_core.validatePayload.fail("Invalid extension");
1257
- }
1258
- if (!mcctx.isMulticast) {
1259
- const mpanExtension = extensions.find((e) => e instanceof import_Extension.MPANExtension);
1260
- if (mpanExtension) {
1261
- securityManager.storePeerMPAN(ctx.sourceNodeId, mpanExtension.groupId, {
1262
- type: import_core.MPANState.MPAN,
1263
- currentMPAN: mpanExtension.innerMPANState
1264
- });
1265
- }
1266
- }
1267
- const decryptedCCBytes = plaintext.subarray(offset);
1268
- let encapsulated;
1269
- if (decryptedCCBytes.length > 0) {
1270
- (0, import_core.validatePayload)(decryptedCCBytes.length >= 2);
1271
- encapsulated = await import_CommandClass.CommandClass.parseAsync(decryptedCCBytes, ctx);
1034
+ encapsulated = await import_CommandClass.CommandClass.parse(decryptedCCBytes, ctx);
1272
1035
  }
1273
1036
  const ret = new Security2CCMessageEncapsulation2({
1274
1037
  nodeId: ctx.sourceNodeId,
@@ -1321,36 +1084,7 @@ let Security2CCMessageEncapsulation = (() => {
1321
1084
  getMulticastGroupId() {
1322
1085
  return getMulticastGroupId(this.extensions);
1323
1086
  }
1324
- /** @deprecated Use {@link maybeAddSPANExtensionAsync} instead */
1325
- maybeAddSPANExtensionSync(ctx, securityManager) {
1326
- if (!this.isSinglecast())
1327
- return;
1328
- const receiverNodeId = this.nodeId;
1329
- const spanState = securityManager.getSPANState(receiverNodeId);
1330
- if (spanState.type === import_core.SPANState.None || spanState.type === import_core.SPANState.LocalEI) {
1331
- throw new import_core.ZWaveError(`Security S2 CC requires the receiver's nonce to be sent!`, import_core.ZWaveErrorCodes.Security2CC_NoSPAN);
1332
- } else if (spanState.type === import_core.SPANState.RemoteEI) {
1333
- const senderEI = securityManager.generateNonce(void 0);
1334
- const receiverEI = spanState.receiverEI;
1335
- if (this.securityClass == void 0 && securityManager.tempKeys.has(receiverNodeId)) {
1336
- securityManager.initializeTempSPAN(receiverNodeId, senderEI, receiverEI);
1337
- } else {
1338
- const securityClass = this.securityClass ?? ctx.getHighestSecurityClass(receiverNodeId);
1339
- if (securityClass == void 0) {
1340
- throw new import_core.ZWaveError("No security class defined for this command!", import_core.ZWaveErrorCodes.Security2CC_NoSPAN);
1341
- }
1342
- securityManager.initializeSPAN(receiverNodeId, securityClass, senderEI, receiverEI);
1343
- }
1344
- let spanExtension = this.extensions.find((e) => e instanceof import_Extension.SPANExtension);
1345
- if (spanExtension) {
1346
- spanExtension.senderEI = senderEI;
1347
- } else {
1348
- spanExtension = new import_Extension.SPANExtension({ senderEI });
1349
- this.extensions.push(spanExtension);
1350
- }
1351
- }
1352
- }
1353
- async maybeAddSPANExtensionAsync(ctx, securityManager) {
1087
+ async maybeAddSPANExtension(ctx, securityManager) {
1354
1088
  if (!this.isSinglecast())
1355
1089
  return;
1356
1090
  const receiverNodeId = this.nodeId;
@@ -1358,16 +1092,16 @@ let Security2CCMessageEncapsulation = (() => {
1358
1092
  if (spanState.type === import_core.SPANState.None || spanState.type === import_core.SPANState.LocalEI) {
1359
1093
  throw new import_core.ZWaveError(`Security S2 CC requires the receiver's nonce to be sent!`, import_core.ZWaveErrorCodes.Security2CC_NoSPAN);
1360
1094
  } else if (spanState.type === import_core.SPANState.RemoteEI) {
1361
- const senderEI = await securityManager.generateNonceAsync(void 0);
1095
+ const senderEI = await securityManager.generateNonce(void 0);
1362
1096
  const receiverEI = spanState.receiverEI;
1363
1097
  if (this.securityClass == void 0 && securityManager.tempKeys.has(receiverNodeId)) {
1364
- await securityManager.initializeTempSPANAsync(receiverNodeId, senderEI, receiverEI);
1098
+ await securityManager.initializeTempSPAN(receiverNodeId, senderEI, receiverEI);
1365
1099
  } else {
1366
1100
  const securityClass = this.securityClass ?? ctx.getHighestSecurityClass(receiverNodeId);
1367
1101
  if (securityClass == void 0) {
1368
1102
  throw new import_core.ZWaveError("No security class defined for this command!", import_core.ZWaveErrorCodes.Security2CC_NoSPAN);
1369
1103
  }
1370
- await securityManager.initializeSPANAsync(receiverNodeId, securityClass, senderEI, receiverEI);
1104
+ await securityManager.initializeSPAN(receiverNodeId, securityClass, senderEI, receiverEI);
1371
1105
  }
1372
1106
  let spanExtension = this.extensions.find((e) => e instanceof import_Extension.SPANExtension);
1373
1107
  if (spanExtension) {
@@ -1378,11 +1112,10 @@ let Security2CCMessageEncapsulation = (() => {
1378
1112
  }
1379
1113
  }
1380
1114
  }
1381
- /** @deprecated Use {@link serializeAsync} instead */
1382
- serialize(ctx) {
1115
+ async serialize(ctx) {
1383
1116
  const securityManager = assertSecurityTX(ctx, this.nodeId);
1384
1117
  this.ensureSequenceNumber(securityManager);
1385
- this.maybeAddSPANExtensionSync(ctx, securityManager);
1118
+ await this.maybeAddSPANExtension(ctx, securityManager);
1386
1119
  const unencryptedExtensions = this.extensions.filter((e) => !e.isEncrypted());
1387
1120
  const encryptedExtensions = this.extensions.filter((e) => e.isEncrypted());
1388
1121
  const unencryptedPayload = import_safe2.Bytes.concat([
@@ -1392,7 +1125,7 @@ let Security2CCMessageEncapsulation = (() => {
1392
1125
  ]),
1393
1126
  ...unencryptedExtensions.map((e, index) => e.serialize(index < unencryptedExtensions.length - 1))
1394
1127
  ]);
1395
- const serializedCC = this.encapsulated?.serialize(ctx) ?? new import_safe2.Bytes();
1128
+ const serializedCC = await this.encapsulated?.serialize(ctx) ?? new import_safe2.Bytes();
1396
1129
  const plaintextPayload = import_safe2.Bytes.concat([
1397
1130
  ...encryptedExtensions.map((e, index) => e.serialize(index < encryptedExtensions.length - 1)),
1398
1131
  serializedCC
@@ -1403,18 +1136,18 @@ let Security2CCMessageEncapsulation = (() => {
1403
1136
  let key;
1404
1137
  let iv;
1405
1138
  if (this.isSinglecast()) {
1406
- iv = securityManager.nextNonce(this.nodeId, true);
1139
+ iv = await securityManager.nextNonce(this.nodeId, true);
1407
1140
  const { keyCCM } = (
1408
1141
  // Prefer the overridden security class if it was given
1409
1142
  this.securityClass != void 0 ? securityManager.getKeysForSecurityClass(this.securityClass) : securityManager.getKeysForNode(this.nodeId)
1410
1143
  );
1411
1144
  key = keyCCM;
1412
1145
  } else {
1413
- const keyAndIV = securityManager.getMulticastKeyAndIV(destinationTag);
1146
+ const keyAndIV = await securityManager.getMulticastKeyAndIV(destinationTag);
1414
1147
  key = keyAndIV.key;
1415
1148
  iv = keyAndIV.iv;
1416
1149
  }
1417
- 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);
1418
1151
  this.key = key;
1419
1152
  this.iv = iv;
1420
1153
  this.authData = authData;
@@ -1427,54 +1160,6 @@ let Security2CCMessageEncapsulation = (() => {
1427
1160
  ]);
1428
1161
  return super.serialize(ctx);
1429
1162
  }
1430
- async serializeAsync(ctx) {
1431
- const securityManager = assertSecurityTX(ctx, this.nodeId);
1432
- this.ensureSequenceNumber(securityManager);
1433
- await this.maybeAddSPANExtensionAsync(ctx, securityManager);
1434
- const unencryptedExtensions = this.extensions.filter((e) => !e.isEncrypted());
1435
- const encryptedExtensions = this.extensions.filter((e) => e.isEncrypted());
1436
- const unencryptedPayload = import_safe2.Bytes.concat([
1437
- import_safe2.Bytes.from([
1438
- this.sequenceNumber,
1439
- (encryptedExtensions.length > 0 ? 2 : 0) | (unencryptedExtensions.length > 0 ? 1 : 0)
1440
- ]),
1441
- ...unencryptedExtensions.map((e, index) => e.serialize(index < unencryptedExtensions.length - 1))
1442
- ]);
1443
- const serializedCC = await this.encapsulated?.serializeAsync(ctx) ?? new import_safe2.Bytes();
1444
- const plaintextPayload = import_safe2.Bytes.concat([
1445
- ...encryptedExtensions.map((e, index) => e.serialize(index < encryptedExtensions.length - 1)),
1446
- serializedCC
1447
- ]);
1448
- const destinationTag = getDestinationIDTX.call(this);
1449
- const messageLength = this.computeEncapsulationOverhead() + serializedCC.length;
1450
- const authData = getAuthenticationData(ctx.ownNodeId, destinationTag, ctx.homeId, messageLength, unencryptedPayload);
1451
- let key;
1452
- let iv;
1453
- if (this.isSinglecast()) {
1454
- iv = await securityManager.nextNonceAsync(this.nodeId, true);
1455
- const { keyCCM } = (
1456
- // Prefer the overridden security class if it was given
1457
- this.securityClass != void 0 ? securityManager.getKeysForSecurityClass(this.securityClass) : securityManager.getKeysForNode(this.nodeId)
1458
- );
1459
- key = keyCCM;
1460
- } else {
1461
- const keyAndIV = await securityManager.getMulticastKeyAndIVAsync(destinationTag);
1462
- key = keyAndIV.key;
1463
- iv = keyAndIV.iv;
1464
- }
1465
- const { ciphertext: ciphertextPayload, authTag } = await (0, import_core.encryptAES128CCMAsync)(plaintextPayload, key, iv, authData, SECURITY_S2_AUTH_TAG_LENGTH);
1466
- this.key = key;
1467
- this.iv = iv;
1468
- this.authData = authData;
1469
- this.authTag = authTag;
1470
- this.ciphertext = ciphertextPayload;
1471
- this.payload = import_safe2.Bytes.concat([
1472
- unencryptedPayload,
1473
- ciphertextPayload,
1474
- authTag
1475
- ]);
1476
- return super.serializeAsync(ctx);
1477
- }
1478
1163
  computeEncapsulationOverhead() {
1479
1164
  const extensionBytes = this.extensions.map((e) => e.computeLength()).reduce((a, b) => a + b, 0);
1480
1165
  return super.computeEncapsulationOverhead() + 2 + SECURITY_S2_AUTH_TAG_LENGTH + extensionBytes;