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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/build/cjs/cc/AlarmSensorCC.js +381 -266
  2. package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
  3. package/build/cjs/cc/AssociationCC.js +669 -503
  4. package/build/cjs/cc/AssociationCC.js.map +3 -3
  5. package/build/cjs/cc/AssociationGroupInfoCC.js +633 -492
  6. package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
  7. package/build/cjs/cc/BarrierOperatorCC.js +595 -429
  8. package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
  9. package/build/cjs/cc/BasicCC.js +354 -260
  10. package/build/cjs/cc/BasicCC.js.map +3 -3
  11. package/build/cjs/cc/BatteryCC.js +427 -345
  12. package/build/cjs/cc/BatteryCC.js.map +3 -3
  13. package/build/cjs/cc/BinarySensorCC.js +391 -276
  14. package/build/cjs/cc/BinarySensorCC.js.map +3 -3
  15. package/build/cjs/cc/BinarySwitchCC.js +347 -253
  16. package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
  17. package/build/cjs/cc/CRC16CC.js +160 -85
  18. package/build/cjs/cc/CRC16CC.js.map +3 -3
  19. package/build/cjs/cc/CentralSceneCC.js +459 -324
  20. package/build/cjs/cc/CentralSceneCC.js.map +3 -3
  21. package/build/cjs/cc/ClimateControlScheduleCC.js +459 -293
  22. package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
  23. package/build/cjs/cc/ClockCC.js +254 -150
  24. package/build/cjs/cc/ClockCC.js.map +3 -3
  25. package/build/cjs/cc/ColorSwitchCC.js +758 -610
  26. package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
  27. package/build/cjs/cc/ConfigurationCC.js +1700 -1453
  28. package/build/cjs/cc/ConfigurationCC.js.map +3 -3
  29. package/build/cjs/cc/DeviceResetLocallyCC.js +125 -49
  30. package/build/cjs/cc/DeviceResetLocallyCC.js.map +3 -3
  31. package/build/cjs/cc/DoorLockCC.js +904 -777
  32. package/build/cjs/cc/DoorLockCC.js.map +3 -3
  33. package/build/cjs/cc/DoorLockLoggingCC.js +321 -206
  34. package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
  35. package/build/cjs/cc/EnergyProductionCC.js +249 -160
  36. package/build/cjs/cc/EnergyProductionCC.js.map +3 -3
  37. package/build/cjs/cc/EntryControlCC.js +619 -458
  38. package/build/cjs/cc/EntryControlCC.js.map +3 -3
  39. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +898 -698
  40. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
  41. package/build/cjs/cc/HailCC.js +57 -11
  42. package/build/cjs/cc/HailCC.js.map +2 -2
  43. package/build/cjs/cc/HumidityControlModeCC.js +359 -233
  44. package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
  45. package/build/cjs/cc/HumidityControlOperatingStateCC.js +189 -103
  46. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
  47. package/build/cjs/cc/HumidityControlSetpointCC.js +682 -495
  48. package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
  49. package/build/cjs/cc/InclusionControllerCC.js +205 -114
  50. package/build/cjs/cc/InclusionControllerCC.js.map +3 -3
  51. package/build/cjs/cc/IndicatorCC.js +897 -736
  52. package/build/cjs/cc/IndicatorCC.js.map +3 -3
  53. package/build/cjs/cc/IrrigationCC.js +1651 -1405
  54. package/build/cjs/cc/IrrigationCC.js.map +3 -3
  55. package/build/cjs/cc/LanguageCC.js +268 -171
  56. package/build/cjs/cc/LanguageCC.js.map +3 -3
  57. package/build/cjs/cc/LockCC.js +254 -154
  58. package/build/cjs/cc/LockCC.js.map +3 -3
  59. package/build/cjs/cc/ManufacturerProprietaryCC.js +189 -129
  60. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  61. package/build/cjs/cc/ManufacturerSpecificCC.js +319 -213
  62. package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
  63. package/build/cjs/cc/MeterCC.js +827 -707
  64. package/build/cjs/cc/MeterCC.js.map +3 -3
  65. package/build/cjs/cc/MultiChannelAssociationCC.js +612 -478
  66. package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
  67. package/build/cjs/cc/MultiChannelCC.js +1037 -819
  68. package/build/cjs/cc/MultiChannelCC.js.map +3 -3
  69. package/build/cjs/cc/MultiCommandCC.js +172 -97
  70. package/build/cjs/cc/MultiCommandCC.js.map +3 -3
  71. package/build/cjs/cc/MultilevelSensorCC.js +589 -449
  72. package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
  73. package/build/cjs/cc/MultilevelSwitchCC.js +587 -439
  74. package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
  75. package/build/cjs/cc/NoOperationCC.js +89 -27
  76. package/build/cjs/cc/NoOperationCC.js.map +2 -2
  77. package/build/cjs/cc/NodeNamingCC.js +417 -277
  78. package/build/cjs/cc/NodeNamingCC.js.map +3 -3
  79. package/build/cjs/cc/NotificationCC.js +972 -818
  80. package/build/cjs/cc/NotificationCC.js.map +3 -3
  81. package/build/cjs/cc/PowerlevelCC.js +450 -303
  82. package/build/cjs/cc/PowerlevelCC.js.map +3 -3
  83. package/build/cjs/cc/ProtectionCC.js +686 -494
  84. package/build/cjs/cc/ProtectionCC.js.map +3 -3
  85. package/build/cjs/cc/SceneActivationCC.js +165 -97
  86. package/build/cjs/cc/SceneActivationCC.js.map +3 -3
  87. package/build/cjs/cc/SceneActuatorConfigurationCC.js +346 -243
  88. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
  89. package/build/cjs/cc/SceneControllerConfigurationCC.js +401 -298
  90. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
  91. package/build/cjs/cc/ScheduleEntryLockCC.js +1552 -1272
  92. package/build/cjs/cc/ScheduleEntryLockCC.js.map +3 -3
  93. package/build/cjs/cc/Security2CC.js +1483 -1219
  94. package/build/cjs/cc/Security2CC.js.map +3 -3
  95. package/build/cjs/cc/SecurityCC.js +839 -619
  96. package/build/cjs/cc/SecurityCC.js.map +3 -3
  97. package/build/cjs/cc/SoundSwitchCC.js +707 -515
  98. package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
  99. package/build/cjs/cc/SupervisionCC.js +327 -237
  100. package/build/cjs/cc/SupervisionCC.js.map +3 -3
  101. package/build/cjs/cc/ThermostatFanModeCC.js +386 -263
  102. package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
  103. package/build/cjs/cc/ThermostatFanStateCC.js +192 -106
  104. package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
  105. package/build/cjs/cc/ThermostatModeCC.js +425 -302
  106. package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
  107. package/build/cjs/cc/ThermostatOperatingStateCC.js +188 -102
  108. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
  109. package/build/cjs/cc/ThermostatSetbackCC.js +277 -173
  110. package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
  111. package/build/cjs/cc/ThermostatSetpointCC.js +645 -491
  112. package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
  113. package/build/cjs/cc/TimeCC.js +515 -353
  114. package/build/cjs/cc/TimeCC.js.map +3 -3
  115. package/build/cjs/cc/TimeParametersCC.js +302 -202
  116. package/build/cjs/cc/TimeParametersCC.js.map +3 -3
  117. package/build/cjs/cc/TransportServiceCC.js +433 -315
  118. package/build/cjs/cc/TransportServiceCC.js.map +3 -3
  119. package/build/cjs/cc/UserCodeCC.js +1385 -1102
  120. package/build/cjs/cc/UserCodeCC.js.map +3 -3
  121. package/build/cjs/cc/VersionCC.js +696 -562
  122. package/build/cjs/cc/VersionCC.js.map +3 -3
  123. package/build/cjs/cc/WakeUpCC.js +499 -346
  124. package/build/cjs/cc/WakeUpCC.js.map +3 -3
  125. package/build/cjs/cc/WindowCoveringCC.js +626 -478
  126. package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
  127. package/build/cjs/cc/ZWaveLongRangeCC.js +57 -10
  128. package/build/cjs/cc/ZWaveLongRangeCC.js.map +2 -2
  129. package/build/cjs/cc/ZWavePlusCC.js +233 -159
  130. package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
  131. package/build/cjs/cc/ZWaveProtocolCC.js +1515 -948
  132. package/build/cjs/cc/ZWaveProtocolCC.js.map +3 -3
  133. package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  134. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +1 -1
  135. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +395 -274
  136. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +3 -3
  137. package/build/cjs/lib/CommandClassDecorators.d.ts +11 -15
  138. package/build/cjs/lib/CommandClassDecorators.js +19 -20
  139. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  140. package/build/cjs/lib/Security2/Extension.d.ts +1 -1
  141. package/build/cjs/lib/Security2/Extension.js +217 -126
  142. package/build/cjs/lib/Security2/Extension.js.map +3 -3
  143. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  144. package/build/esm/cc/AlarmSensorCC.js +389 -291
  145. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  146. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  147. package/build/esm/cc/AssociationCC.js +678 -537
  148. package/build/esm/cc/AssociationCC.js.map +1 -1
  149. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  150. package/build/esm/cc/AssociationGroupInfoCC.js +659 -539
  151. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  152. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  153. package/build/esm/cc/BarrierOperatorCC.js +634 -493
  154. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  155. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  156. package/build/esm/cc/BasicCC.js +380 -302
  157. package/build/esm/cc/BasicCC.js.map +1 -1
  158. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  159. package/build/esm/cc/BatteryCC.js +449 -384
  160. package/build/esm/cc/BatteryCC.js.map +1 -1
  161. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  162. package/build/esm/cc/BinarySensorCC.js +395 -297
  163. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  164. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  165. package/build/esm/cc/BinarySwitchCC.js +353 -274
  166. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  167. package/build/esm/cc/CRC16CC.js +162 -98
  168. package/build/esm/cc/CRC16CC.js.map +1 -1
  169. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  170. package/build/esm/cc/CentralSceneCC.js +465 -351
  171. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  172. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  173. package/build/esm/cc/ClimateControlScheduleCC.js +454 -313
  174. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  175. package/build/esm/cc/ClockCC.js +248 -159
  176. package/build/esm/cc/ClockCC.js.map +1 -1
  177. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  178. package/build/esm/cc/ColorSwitchCC.js +802 -677
  179. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  180. package/build/esm/cc/ConfigurationCC.js +1899 -1687
  181. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  182. package/build/esm/cc/DeviceResetLocallyCC.js +124 -59
  183. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  184. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  185. package/build/esm/cc/DoorLockCC.js +951 -849
  186. package/build/esm/cc/DoorLockCC.js.map +1 -1
  187. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  188. package/build/esm/cc/DoorLockLoggingCC.js +316 -218
  189. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  190. package/build/esm/cc/EnergyProductionCC.js +240 -164
  191. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  192. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  193. package/build/esm/cc/EntryControlCC.js +629 -493
  194. package/build/esm/cc/EntryControlCC.js.map +1 -1
  195. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  196. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +938 -769
  197. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  198. package/build/esm/cc/HailCC.js +51 -12
  199. package/build/esm/cc/HailCC.js.map +1 -1
  200. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  201. package/build/esm/cc/HumidityControlModeCC.js +357 -250
  202. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  203. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  204. package/build/esm/cc/HumidityControlOperatingStateCC.js +182 -109
  205. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  206. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  207. package/build/esm/cc/HumidityControlSetpointCC.js +706 -546
  208. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  209. package/build/esm/cc/InclusionControllerCC.js +197 -119
  210. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  211. package/build/esm/cc/IndicatorCC.js +973 -835
  212. package/build/esm/cc/IndicatorCC.js.map +1 -1
  213. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  214. package/build/esm/cc/IrrigationCC.js +1697 -1496
  215. package/build/esm/cc/IrrigationCC.js.map +1 -1
  216. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  217. package/build/esm/cc/LanguageCC.js +266 -184
  218. package/build/esm/cc/LanguageCC.js.map +1 -1
  219. package/build/esm/cc/LockCC.d.ts.map +1 -1
  220. package/build/esm/cc/LockCC.js +247 -162
  221. package/build/esm/cc/LockCC.js.map +1 -1
  222. package/build/esm/cc/ManufacturerProprietaryCC.js +192 -141
  223. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  224. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  225. package/build/esm/cc/ManufacturerSpecificCC.js +312 -223
  226. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  227. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  228. package/build/esm/cc/MeterCC.js +896 -795
  229. package/build/esm/cc/MeterCC.js.map +1 -1
  230. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  231. package/build/esm/cc/MultiChannelAssociationCC.js +631 -518
  232. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  233. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  234. package/build/esm/cc/MultiChannelCC.js +1106 -921
  235. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  236. package/build/esm/cc/MultiCommandCC.js +166 -102
  237. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  238. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  239. package/build/esm/cc/MultilevelSensorCC.js +616 -497
  240. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  241. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  242. package/build/esm/cc/MultilevelSwitchCC.js +621 -496
  243. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  244. package/build/esm/cc/NoOperationCC.js +82 -29
  245. package/build/esm/cc/NoOperationCC.js.map +1 -1
  246. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  247. package/build/esm/cc/NodeNamingCC.js +413 -294
  248. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  249. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  250. package/build/esm/cc/NotificationCC.js +1097 -966
  251. package/build/esm/cc/NotificationCC.js.map +1 -1
  252. package/build/esm/cc/PowerlevelCC.js +437 -311
  253. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  254. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  255. package/build/esm/cc/ProtectionCC.js +704 -543
  256. package/build/esm/cc/ProtectionCC.js.map +1 -1
  257. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  258. package/build/esm/cc/SceneActivationCC.js +157 -100
  259. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  260. package/build/esm/cc/SceneActuatorConfigurationCC.js +357 -269
  261. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  262. package/build/esm/cc/SceneControllerConfigurationCC.js +434 -346
  263. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  264. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  265. package/build/esm/cc/ScheduleEntryLockCC.js +1596 -1357
  266. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  267. package/build/esm/cc/Security2CC.js +1633 -1406
  268. package/build/esm/cc/Security2CC.js.map +1 -1
  269. package/build/esm/cc/SecurityCC.js +876 -687
  270. package/build/esm/cc/SecurityCC.js.map +1 -1
  271. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  272. package/build/esm/cc/SoundSwitchCC.js +689 -526
  273. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  274. package/build/esm/cc/SupervisionCC.js +349 -272
  275. package/build/esm/cc/SupervisionCC.js.map +1 -1
  276. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  277. package/build/esm/cc/ThermostatFanModeCC.js +388 -284
  278. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  279. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  280. package/build/esm/cc/ThermostatFanStateCC.js +184 -111
  281. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  282. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  283. package/build/esm/cc/ThermostatModeCC.js +435 -331
  284. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  285. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  286. package/build/esm/cc/ThermostatOperatingStateCC.js +180 -107
  287. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  288. package/build/esm/cc/ThermostatSetbackCC.js +274 -185
  289. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  290. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  291. package/build/esm/cc/ThermostatSetpointCC.js +674 -543
  292. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  293. package/build/esm/cc/TimeCC.js +499 -360
  294. package/build/esm/cc/TimeCC.js.map +1 -1
  295. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  296. package/build/esm/cc/TimeParametersCC.js +296 -211
  297. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  298. package/build/esm/cc/TransportServiceCC.js +464 -363
  299. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  300. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  301. package/build/esm/cc/UserCodeCC.js +1443 -1205
  302. package/build/esm/cc/UserCodeCC.js.map +1 -1
  303. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  304. package/build/esm/cc/VersionCC.js +744 -635
  305. package/build/esm/cc/VersionCC.js.map +1 -1
  306. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  307. package/build/esm/cc/WakeUpCC.js +494 -364
  308. package/build/esm/cc/WakeUpCC.js.map +1 -1
  309. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  310. package/build/esm/cc/WindowCoveringCC.js +655 -530
  311. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  312. package/build/esm/cc/ZWaveLongRangeCC.js +51 -11
  313. package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -1
  314. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  315. package/build/esm/cc/ZWavePlusCC.js +223 -162
  316. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  317. package/build/esm/cc/ZWaveProtocolCC.js +1443 -953
  318. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  319. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  320. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
  321. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +390 -286
  322. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  323. package/build/esm/lib/CommandClassDecorators.d.ts +11 -15
  324. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  325. package/build/esm/lib/CommandClassDecorators.js +24 -24
  326. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  327. package/build/esm/lib/Security2/Extension.d.ts +1 -1
  328. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  329. package/build/esm/lib/Security2/Extension.js +207 -123
  330. package/build/esm/lib/Security2/Extension.js.map +1 -1
  331. package/package.json +6 -6
@@ -35,13 +35,45 @@ module.exports = __toCommonJS(Extension_exports);
35
35
  var import_core = require("@zwave-js/core");
36
36
  var import_safe = require("@zwave-js/core/safe");
37
37
  var import_safe2 = require("@zwave-js/shared/safe");
38
- var __decorate = function(decorators, target, key, desc) {
39
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42
- return c > 3 && r && Object.defineProperty(target, key, r), r;
38
+ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
39
+ function accept(f) {
40
+ if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
41
+ return f;
42
+ }
43
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
44
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
45
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
46
+ var _, done = false;
47
+ for (var i = decorators.length - 1; i >= 0; i--) {
48
+ var context = {};
49
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
50
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
51
+ context.addInitializer = function(f) {
52
+ if (done) throw new TypeError("Cannot add initializers after decoration has completed");
53
+ extraInitializers.push(accept(f || null));
54
+ };
55
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
56
+ if (kind === "accessor") {
57
+ if (result === void 0) continue;
58
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
59
+ if (_ = accept(result.get)) descriptor.get = _;
60
+ if (_ = accept(result.set)) descriptor.set = _;
61
+ if (_ = accept(result.init)) initializers.unshift(_);
62
+ } else if (_ = accept(result)) {
63
+ if (kind === "field") initializers.unshift(_);
64
+ else descriptor[key] = _;
65
+ }
66
+ }
67
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
68
+ done = true;
69
+ };
70
+ var __runInitializers = function(thisArg, initializers, value) {
71
+ var useValue = arguments.length > 2;
72
+ for (var i = 0; i < initializers.length; i++) {
73
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
74
+ }
75
+ return useValue ? value : void 0;
43
76
  };
44
- var SPANExtension_1, MPANExtension_1, MGRPExtension_1;
45
77
  var S2ExtensionType;
46
78
  (function(S2ExtensionType2) {
47
79
  S2ExtensionType2[S2ExtensionType2["SPAN"] = 1] = "SPAN";
@@ -192,129 +224,188 @@ class Security2Extension {
192
224
  }
193
225
  class InvalidExtension extends Security2Extension {
194
226
  }
195
- let SPANExtension = class SPANExtension2 extends Security2Extension {
196
- static {
197
- SPANExtension_1 = this;
198
- }
199
- constructor(options) {
200
- if (options.senderEI.length !== 16) {
201
- throw new import_safe.ZWaveError("The sender's entropy must be a 16-byte buffer!", import_safe.ZWaveErrorCodes.Argument_Invalid);
227
+ let SPANExtension = (() => {
228
+ let _classDecorators = [extensionType(S2ExtensionType.SPAN)];
229
+ let _classDescriptor;
230
+ let _classExtraInitializers = [];
231
+ let _classThis;
232
+ let _classSuper = Security2Extension;
233
+ var SPANExtension2 = class extends _classSuper {
234
+ static {
235
+ _classThis = this;
202
236
  }
203
- super({ critical: true, ...options });
204
- this.senderEI = options.senderEI;
205
- }
206
- static from(raw) {
207
- (0, import_safe.validatePayload)(raw.payload.length === 16);
208
- const senderEI = raw.payload;
209
- return new SPANExtension_1({
210
- critical: raw.critical,
211
- moreToFollow: raw.moreToFollow,
212
- senderEI
213
- });
214
- }
215
- senderEI;
216
- static expectedLength = 18;
217
- serialize(moreToFollow) {
218
- this.payload = this.senderEI;
219
- return super.serialize(moreToFollow);
220
- }
221
- toLogEntry() {
222
- let ret = super.toLogEntry().replace(/^ payload:.+$/m, "");
223
- ret += ` sender EI: ${(0, import_safe2.buffer2hex)(this.senderEI)}`;
224
- return ret;
225
- }
226
- };
227
- SPANExtension = SPANExtension_1 = __decorate([
228
- extensionType(S2ExtensionType.SPAN)
229
- ], SPANExtension);
230
- let MPANExtension = class MPANExtension2 extends Security2Extension {
231
- static {
232
- MPANExtension_1 = this;
233
- }
234
- constructor(options) {
235
- if (options.innerMPANState.length !== 16) {
236
- throw new import_safe.ZWaveError("The inner MPAN state must be a 16-byte buffer!", import_safe.ZWaveErrorCodes.Argument_Invalid);
237
+ static {
238
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
239
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
240
+ SPANExtension2 = _classThis = _classDescriptor.value;
241
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
237
242
  }
238
- super({ critical: true, ...options });
239
- this.groupId = options.groupId;
240
- this.innerMPANState = options.innerMPANState;
241
- }
242
- static from(raw) {
243
- (0, import_safe.validatePayload)(raw.payload.length === 17);
244
- const groupId = raw.payload[0];
245
- const innerMPANState = raw.payload.subarray(1);
246
- return new MPANExtension_1({
247
- critical: raw.critical,
248
- moreToFollow: raw.moreToFollow,
249
- groupId,
250
- innerMPANState
251
- });
252
- }
253
- groupId;
254
- innerMPANState;
255
- isEncrypted() {
256
- return true;
257
- }
258
- static expectedLength = 19;
259
- serialize(moreToFollow) {
260
- this.payload = import_safe2.Bytes.concat([
261
- [this.groupId],
262
- this.innerMPANState
263
- ]);
264
- return super.serialize(moreToFollow);
265
- }
266
- toLogEntry() {
267
- const mpanState = process.env.NODE_ENV === "test" || process.env.NODE_ENV === "development" ? (0, import_safe2.buffer2hex)(this.innerMPANState) : "(hidden)";
268
- let ret = super.toLogEntry().replace(/^ payload:.+$/m, "");
269
- ret += ` group ID: ${this.groupId}
243
+ constructor(options) {
244
+ if (options.senderEI.length !== 16) {
245
+ throw new import_safe.ZWaveError("The sender's entropy must be a 16-byte buffer!", import_safe.ZWaveErrorCodes.Argument_Invalid);
246
+ }
247
+ super({ critical: true, ...options });
248
+ this.senderEI = options.senderEI;
249
+ }
250
+ static from(raw) {
251
+ (0, import_safe.validatePayload)(raw.payload.length === 16);
252
+ const senderEI = raw.payload;
253
+ return new SPANExtension2({
254
+ critical: raw.critical,
255
+ moreToFollow: raw.moreToFollow,
256
+ senderEI
257
+ });
258
+ }
259
+ senderEI;
260
+ static expectedLength = 18;
261
+ serialize(moreToFollow) {
262
+ this.payload = this.senderEI;
263
+ return super.serialize(moreToFollow);
264
+ }
265
+ toLogEntry() {
266
+ let ret = super.toLogEntry().replace(/^ payload:.+$/m, "");
267
+ ret += ` sender EI: ${(0, import_safe2.buffer2hex)(this.senderEI)}`;
268
+ return ret;
269
+ }
270
+ static {
271
+ __runInitializers(_classThis, _classExtraInitializers);
272
+ }
273
+ };
274
+ return SPANExtension2 = _classThis;
275
+ })();
276
+ let MPANExtension = (() => {
277
+ let _classDecorators = [extensionType(S2ExtensionType.MPAN)];
278
+ let _classDescriptor;
279
+ let _classExtraInitializers = [];
280
+ let _classThis;
281
+ let _classSuper = Security2Extension;
282
+ var MPANExtension2 = class extends _classSuper {
283
+ static {
284
+ _classThis = this;
285
+ }
286
+ static {
287
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
288
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
289
+ MPANExtension2 = _classThis = _classDescriptor.value;
290
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
291
+ }
292
+ constructor(options) {
293
+ if (options.innerMPANState.length !== 16) {
294
+ throw new import_safe.ZWaveError("The inner MPAN state must be a 16-byte buffer!", import_safe.ZWaveErrorCodes.Argument_Invalid);
295
+ }
296
+ super({ critical: true, ...options });
297
+ this.groupId = options.groupId;
298
+ this.innerMPANState = options.innerMPANState;
299
+ }
300
+ static from(raw) {
301
+ (0, import_safe.validatePayload)(raw.payload.length === 17);
302
+ const groupId = raw.payload[0];
303
+ const innerMPANState = raw.payload.subarray(1);
304
+ return new MPANExtension2({
305
+ critical: raw.critical,
306
+ moreToFollow: raw.moreToFollow,
307
+ groupId,
308
+ innerMPANState
309
+ });
310
+ }
311
+ groupId;
312
+ innerMPANState;
313
+ isEncrypted() {
314
+ return true;
315
+ }
316
+ static expectedLength = 19;
317
+ serialize(moreToFollow) {
318
+ this.payload = import_safe2.Bytes.concat([
319
+ [this.groupId],
320
+ this.innerMPANState
321
+ ]);
322
+ return super.serialize(moreToFollow);
323
+ }
324
+ toLogEntry() {
325
+ const mpanState = process.env.NODE_ENV === "test" || process.env.NODE_ENV === "development" ? (0, import_safe2.buffer2hex)(this.innerMPANState) : "(hidden)";
326
+ let ret = super.toLogEntry().replace(/^ payload:.+$/m, "");
327
+ ret += ` group ID: ${this.groupId}
270
328
  MPAN state: ${mpanState}`;
271
- return ret;
272
- }
273
- };
274
- MPANExtension = MPANExtension_1 = __decorate([
275
- extensionType(S2ExtensionType.MPAN)
276
- ], MPANExtension);
277
- let MGRPExtension = class MGRPExtension2 extends Security2Extension {
278
- static {
279
- MGRPExtension_1 = this;
280
- }
281
- constructor(options) {
282
- super({ critical: true, ...options });
283
- this.groupId = options.groupId;
284
- }
285
- static from(raw) {
286
- (0, import_safe.validatePayload)(raw.payload.length === 1);
287
- const groupId = raw.payload[0];
288
- return new MGRPExtension_1({
289
- critical: raw.critical,
290
- moreToFollow: raw.moreToFollow,
291
- groupId
292
- });
293
- }
294
- groupId;
295
- static expectedLength = 3;
296
- serialize(moreToFollow) {
297
- this.payload = import_safe2.Bytes.from([this.groupId]);
298
- return super.serialize(moreToFollow);
299
- }
300
- toLogEntry() {
301
- let ret = super.toLogEntry().replace(/^ payload:.+$/m, "");
302
- ret += ` group ID: ${this.groupId}`;
303
- return ret;
304
- }
305
- };
306
- MGRPExtension = MGRPExtension_1 = __decorate([
307
- extensionType(S2ExtensionType.MGRP)
308
- ], MGRPExtension);
309
- let MOSExtension = class MOSExtension2 extends Security2Extension {
310
- constructor(options = {}) {
311
- super({ critical: false, ...options });
312
- }
313
- static expectedLength = 2;
314
- };
315
- MOSExtension = __decorate([
316
- extensionType(S2ExtensionType.MOS)
317
- ], MOSExtension);
329
+ return ret;
330
+ }
331
+ static {
332
+ __runInitializers(_classThis, _classExtraInitializers);
333
+ }
334
+ };
335
+ return MPANExtension2 = _classThis;
336
+ })();
337
+ let MGRPExtension = (() => {
338
+ let _classDecorators = [extensionType(S2ExtensionType.MGRP)];
339
+ let _classDescriptor;
340
+ let _classExtraInitializers = [];
341
+ let _classThis;
342
+ let _classSuper = Security2Extension;
343
+ var MGRPExtension2 = class extends _classSuper {
344
+ static {
345
+ _classThis = this;
346
+ }
347
+ static {
348
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
349
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
350
+ MGRPExtension2 = _classThis = _classDescriptor.value;
351
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
352
+ }
353
+ constructor(options) {
354
+ super({ critical: true, ...options });
355
+ this.groupId = options.groupId;
356
+ }
357
+ static from(raw) {
358
+ (0, import_safe.validatePayload)(raw.payload.length === 1);
359
+ const groupId = raw.payload[0];
360
+ return new MGRPExtension2({
361
+ critical: raw.critical,
362
+ moreToFollow: raw.moreToFollow,
363
+ groupId
364
+ });
365
+ }
366
+ groupId;
367
+ static expectedLength = 3;
368
+ serialize(moreToFollow) {
369
+ this.payload = import_safe2.Bytes.from([this.groupId]);
370
+ return super.serialize(moreToFollow);
371
+ }
372
+ toLogEntry() {
373
+ let ret = super.toLogEntry().replace(/^ payload:.+$/m, "");
374
+ ret += ` group ID: ${this.groupId}`;
375
+ return ret;
376
+ }
377
+ static {
378
+ __runInitializers(_classThis, _classExtraInitializers);
379
+ }
380
+ };
381
+ return MGRPExtension2 = _classThis;
382
+ })();
383
+ let MOSExtension = (() => {
384
+ let _classDecorators = [extensionType(S2ExtensionType.MOS)];
385
+ let _classDescriptor;
386
+ let _classExtraInitializers = [];
387
+ let _classThis;
388
+ let _classSuper = Security2Extension;
389
+ var MOSExtension2 = class extends _classSuper {
390
+ static {
391
+ _classThis = this;
392
+ }
393
+ static {
394
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
395
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
396
+ MOSExtension2 = _classThis = _classDescriptor.value;
397
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
398
+ }
399
+ constructor(options = {}) {
400
+ super({ critical: false, ...options });
401
+ }
402
+ static expectedLength = 2;
403
+ static {
404
+ __runInitializers(_classThis, _classExtraInitializers);
405
+ }
406
+ };
407
+ return MOSExtension2 = _classThis;
408
+ })();
318
409
  // Annotate the CommonJS export names for ESM import in node:
319
410
  0 && (module.exports = {
320
411
  InvalidExtension,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/Security2/Extension.ts"],
4
- "sourcesContent": ["import { createSimpleReflectionDecorator } from \"@zwave-js/core\";\nimport {\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes, buffer2hex, getEnumMemberName } from \"@zwave-js/shared/safe\";\n\nenum S2ExtensionType {\n\tSPAN = 0x01,\n\tMPAN = 0x02,\n\tMGRP = 0x03,\n\tMOS = 0x04,\n}\n\nconst extensionTypeDecorator = createSimpleReflectionDecorator<\n\tSecurity2Extension,\n\t[type: S2ExtensionType],\n\tSecurity2ExtensionConstructor<Security2Extension>\n>({\n\tname: \"extensionType\",\n});\n\n/** Defines which S2 extension type a subclass of S2Extension has */\nexport const extensionType = extensionTypeDecorator.decorator;\n\n/** Returns which S2 extension type a subclass of S2Extension has */\nexport const getExtensionType = extensionTypeDecorator.lookupValue;\n\n/**\n * Looks up the S2 extension constructor for a given S2 extension type\n */\nexport const getS2ExtensionConstructor =\n\textensionTypeDecorator.lookupConstructor;\n\nexport type Security2ExtensionConstructor<T extends Security2Extension> =\n\t& typeof Security2Extension\n\t& {\n\t\tnew (options: Security2ExtensionOptions): T;\n\t};\n\nexport enum ValidateS2ExtensionResult {\n\tOK,\n\tDiscardExtension,\n\tDiscardCommand,\n}\n\n/** Tests if the extension may be accepted */\nexport function validateS2Extension(\n\text: Security2Extension,\n\twasEncrypted: boolean,\n): ValidateS2ExtensionResult {\n\tif (ext instanceof InvalidExtension) {\n\t\t// The extension could not be parsed, ignore it\n\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t}\n\n\tif (ext.critical && !(ext.type in S2ExtensionType)) {\n\t\t// A receiving node MUST discard the entire command if the Critical flag\n\t\t// is set to \u20181\u2019 and the Type field advertises a value that the\n\t\t// receiving node does not support.\n\t\treturn ValidateS2ExtensionResult.DiscardCommand;\n\t}\n\n\t// Check if the extension is correctly encrypted or not encrypted\n\tswitch (ext.type) {\n\t\tcase S2ExtensionType.MPAN:\n\t\t\tif (!wasEncrypted) {\n\t\t\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase S2ExtensionType.SPAN:\n\t\tcase S2ExtensionType.MGRP:\n\t\tcase S2ExtensionType.MOS:\n\t\t\tif (wasEncrypted) {\n\t\t\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\treturn ValidateS2ExtensionResult.OK;\n}\n\nexport class Security2ExtensionRaw {\n\tpublic constructor(\n\t\tpublic type: S2ExtensionType,\n\t\tpublic critical: boolean,\n\t\tpublic readonly moreToFollow: boolean,\n\t\tpublic payload: Uint8Array,\n\t) {}\n\n\tpublic static parse(data: Uint8Array): Security2ExtensionRaw {\n\t\tvalidatePayload(data.length >= 2);\n\t\tconst totalLength = data[0];\n\t\tconst moreToFollow = !!(data[1] & 0b1000_0000);\n\t\tconst critical = !!(data[1] & 0b0100_0000);\n\t\tconst type = data[1] & 0b11_1111;\n\t\tconst payload = data.subarray(2, totalLength);\n\n\t\treturn new Security2ExtensionRaw(type, critical, moreToFollow, payload);\n\t}\n\n\tpublic withPayload(payload: Bytes): Security2ExtensionRaw {\n\t\treturn new Security2ExtensionRaw(\n\t\t\tthis.type,\n\t\t\tthis.critical,\n\t\t\tthis.moreToFollow,\n\t\t\tpayload,\n\t\t);\n\t}\n}\n\ninterface Security2ExtensionBaseOptions {\n\tcritical?: boolean;\n\tmoreToFollow?: boolean;\n}\n\ninterface Security2ExtensionOptions extends Security2ExtensionBaseOptions {\n\ttype?: S2ExtensionType;\n\tpayload?: Uint8Array;\n}\n\nexport class Security2Extension {\n\tpublic constructor(options: Security2ExtensionOptions) {\n\t\tconst {\n\t\t\t// Try to determine the extension type if none is given\n\t\t\ttype = getExtensionType(this),\n\t\t\tcritical = false,\n\t\t\tmoreToFollow = false,\n\t\t\tpayload = new Uint8Array(),\n\t\t} = options;\n\n\t\tif (type == undefined) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"A Security2Extension must have a given or predefined extension type\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tthis.type = type;\n\t\tthis.critical = critical;\n\t\tthis.moreToFollow = moreToFollow;\n\t\tthis.payload = payload;\n\t}\n\n\tpublic static parse(\n\t\tdata: Uint8Array,\n\t): Security2Extension {\n\t\tconst raw = Security2ExtensionRaw.parse(data);\n\t\tconst Constructor = getS2ExtensionConstructor(raw.type)\n\t\t\t?? Security2Extension;\n\t\treturn Constructor.from(raw);\n\t}\n\n\t/** Creates an instance of the message that is serialized in the given buffer */\n\tpublic static from(\n\t\traw: Security2ExtensionRaw,\n\t): Security2Extension {\n\t\treturn new this({\n\t\t\ttype: raw.type,\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tpayload: raw.payload,\n\t\t});\n\t}\n\n\tpublic type: S2ExtensionType;\n\tpublic critical: boolean;\n\tpublic readonly moreToFollow?: boolean;\n\tpublic payload: Uint8Array;\n\n\tpublic isEncrypted(): boolean {\n\t\treturn false;\n\t}\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\treturn Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t2 + this.payload.length,\n\t\t\t\t(moreToFollow ? 0b1000_0000 : 0)\n\t\t\t\t| (this.critical ? 0b0100_0000 : 0)\n\t\t\t\t| (this.type & 0b11_1111),\n\t\t\t]),\n\t\t\tthis.payload,\n\t\t]);\n\t}\n\n\t/** Returns the number of bytes the first extension in the buffer occupies */\n\tpublic static getExtensionLength(\n\t\tdata: Uint8Array,\n\t): { expected?: number; actual: number } {\n\t\tconst actual = data[0];\n\t\tlet expected: number | undefined;\n\n\t\t// For known extensions, return the expected length\n\t\tconst type = data[1] & 0b11_1111;\n\t\tswitch (type) {\n\t\t\tcase S2ExtensionType.SPAN:\n\t\t\t\texpected = SPANExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MPAN:\n\t\t\t\texpected = MPANExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MGRP:\n\t\t\t\texpected = MGRPExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MOS:\n\t\t\t\texpected = MOSExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn { expected, actual };\n\t}\n\n\t/** Returns the number of bytes the serialized extension will occupy */\n\tpublic computeLength(): number {\n\t\treturn 2 + this.payload.length;\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = `\n\u00B7 type: ${getEnumMemberName(S2ExtensionType, this.type)}`;\n\t\tif (this.payload.length > 0) {\n\t\t\tret += `\n payload: ${buffer2hex(this.payload)}`;\n\t\t}\n\t\treturn ret;\n\t}\n}\n\nexport class InvalidExtension extends Security2Extension {\n}\n\ninterface SPANExtensionOptions {\n\tsenderEI: Uint8Array;\n}\n\n@extensionType(S2ExtensionType.SPAN)\nexport class SPANExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: SPANExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tif (options.senderEI.length !== 16) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The sender's entropy must be a 16-byte buffer!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tsuper({ critical: true, ...options });\n\t\tthis.senderEI = options.senderEI;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 16);\n\t\tconst senderEI = raw.payload;\n\n\t\treturn new SPANExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tsenderEI,\n\t\t});\n\t}\n\n\tpublic senderEI: Uint8Array;\n\tpublic static readonly expectedLength = 18;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = this.senderEI;\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` sender EI: ${buffer2hex(this.senderEI)}`;\n\t\treturn ret;\n\t}\n}\n\ninterface MPANExtensionOptions {\n\tgroupId: number;\n\tinnerMPANState: Uint8Array;\n}\n\n@extensionType(S2ExtensionType.MPAN)\nexport class MPANExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: MPANExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tif (options.innerMPANState.length !== 16) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The inner MPAN state must be a 16-byte buffer!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tsuper({ critical: true, ...options });\n\t\tthis.groupId = options.groupId;\n\t\tthis.innerMPANState = options.innerMPANState;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 17);\n\t\tconst groupId = raw.payload[0];\n\t\tconst innerMPANState = raw.payload.subarray(1);\n\n\t\treturn new MPANExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tgroupId,\n\t\t\tinnerMPANState,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\tpublic innerMPANState: Uint8Array;\n\n\tpublic isEncrypted(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic static readonly expectedLength = 19;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.groupId],\n\t\t\tthis.innerMPANState,\n\t\t]);\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tconst mpanState = process.env.NODE_ENV === \"test\"\n\t\t\t\t|| process.env.NODE_ENV === \"development\"\n\t\t\t? buffer2hex(this.innerMPANState)\n\t\t\t: \"(hidden)\";\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` group ID: ${this.groupId}\n MPAN state: ${mpanState}`;\n\t\treturn ret;\n\t}\n}\n\ninterface MGRPExtensionOptions {\n\tgroupId: number;\n}\n\n@extensionType(S2ExtensionType.MGRP)\nexport class MGRPExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: MGRPExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tsuper({ critical: true, ...options });\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 1);\n\t\tconst groupId = raw.payload[0];\n\n\t\treturn new MGRPExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic static readonly expectedLength = 3;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = Bytes.from([this.groupId]);\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` group ID: ${this.groupId}`;\n\t\treturn ret;\n\t}\n}\n\n@extensionType(S2ExtensionType.MOS)\nexport class MOSExtension extends Security2Extension {\n\tpublic constructor(options: Security2ExtensionBaseOptions = {}) {\n\t\tsuper({ critical: false, ...options });\n\t}\n\n\tpublic static readonly expectedLength = 2;\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_safe", "S2ExtensionType", "ValidateS2ExtensionResult", "SPANExtension", "MPANExtension", "MGRPExtension", "MOSExtension"]
4
+ "sourcesContent": ["import { createSimpleReflectionDecorator } from \"@zwave-js/core\";\nimport {\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes, buffer2hex, getEnumMemberName } from \"@zwave-js/shared/safe\";\n\nenum S2ExtensionType {\n\tSPAN = 0x01,\n\tMPAN = 0x02,\n\tMGRP = 0x03,\n\tMOS = 0x04,\n}\n\nconst extensionTypeDecorator = createSimpleReflectionDecorator<\n\ttypeof Security2Extension,\n\t[type: S2ExtensionType],\n\tSecurity2ExtensionConstructor<Security2Extension>\n>({\n\tname: \"extensionType\",\n});\n\n/** Defines which S2 extension type a subclass of S2Extension has */\nexport const extensionType = extensionTypeDecorator.decorator;\n\n/** Returns which S2 extension type a subclass of S2Extension has */\nexport const getExtensionType = extensionTypeDecorator.lookupValue;\n\n/**\n * Looks up the S2 extension constructor for a given S2 extension type\n */\nexport const getS2ExtensionConstructor =\n\textensionTypeDecorator.lookupConstructor;\n\nexport type Security2ExtensionConstructor<T extends Security2Extension> =\n\t& typeof Security2Extension\n\t& {\n\t\tnew (options: Security2ExtensionOptions): T;\n\t};\n\nexport enum ValidateS2ExtensionResult {\n\tOK,\n\tDiscardExtension,\n\tDiscardCommand,\n}\n\n/** Tests if the extension may be accepted */\nexport function validateS2Extension(\n\text: Security2Extension,\n\twasEncrypted: boolean,\n): ValidateS2ExtensionResult {\n\tif (ext instanceof InvalidExtension) {\n\t\t// The extension could not be parsed, ignore it\n\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t}\n\n\tif (ext.critical && !(ext.type in S2ExtensionType)) {\n\t\t// A receiving node MUST discard the entire command if the Critical flag\n\t\t// is set to \u20181\u2019 and the Type field advertises a value that the\n\t\t// receiving node does not support.\n\t\treturn ValidateS2ExtensionResult.DiscardCommand;\n\t}\n\n\t// Check if the extension is correctly encrypted or not encrypted\n\tswitch (ext.type) {\n\t\tcase S2ExtensionType.MPAN:\n\t\t\tif (!wasEncrypted) {\n\t\t\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase S2ExtensionType.SPAN:\n\t\tcase S2ExtensionType.MGRP:\n\t\tcase S2ExtensionType.MOS:\n\t\t\tif (wasEncrypted) {\n\t\t\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\treturn ValidateS2ExtensionResult.OK;\n}\n\nexport class Security2ExtensionRaw {\n\tpublic constructor(\n\t\tpublic type: S2ExtensionType,\n\t\tpublic critical: boolean,\n\t\tpublic readonly moreToFollow: boolean,\n\t\tpublic payload: Uint8Array,\n\t) {}\n\n\tpublic static parse(data: Uint8Array): Security2ExtensionRaw {\n\t\tvalidatePayload(data.length >= 2);\n\t\tconst totalLength = data[0];\n\t\tconst moreToFollow = !!(data[1] & 0b1000_0000);\n\t\tconst critical = !!(data[1] & 0b0100_0000);\n\t\tconst type = data[1] & 0b11_1111;\n\t\tconst payload = data.subarray(2, totalLength);\n\n\t\treturn new Security2ExtensionRaw(type, critical, moreToFollow, payload);\n\t}\n\n\tpublic withPayload(payload: Bytes): Security2ExtensionRaw {\n\t\treturn new Security2ExtensionRaw(\n\t\t\tthis.type,\n\t\t\tthis.critical,\n\t\t\tthis.moreToFollow,\n\t\t\tpayload,\n\t\t);\n\t}\n}\n\ninterface Security2ExtensionBaseOptions {\n\tcritical?: boolean;\n\tmoreToFollow?: boolean;\n}\n\ninterface Security2ExtensionOptions extends Security2ExtensionBaseOptions {\n\ttype?: S2ExtensionType;\n\tpayload?: Uint8Array;\n}\n\nexport class Security2Extension {\n\tpublic constructor(options: Security2ExtensionOptions) {\n\t\tconst {\n\t\t\t// Try to determine the extension type if none is given\n\t\t\ttype = getExtensionType(this),\n\t\t\tcritical = false,\n\t\t\tmoreToFollow = false,\n\t\t\tpayload = new Uint8Array(),\n\t\t} = options;\n\n\t\tif (type == undefined) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"A Security2Extension must have a given or predefined extension type\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tthis.type = type;\n\t\tthis.critical = critical;\n\t\tthis.moreToFollow = moreToFollow;\n\t\tthis.payload = payload;\n\t}\n\n\tpublic static parse(\n\t\tdata: Uint8Array,\n\t): Security2Extension {\n\t\tconst raw = Security2ExtensionRaw.parse(data);\n\t\tconst Constructor = getS2ExtensionConstructor(raw.type)\n\t\t\t?? Security2Extension;\n\t\treturn Constructor.from(raw);\n\t}\n\n\t/** Creates an instance of the message that is serialized in the given buffer */\n\tpublic static from(\n\t\traw: Security2ExtensionRaw,\n\t): Security2Extension {\n\t\treturn new this({\n\t\t\ttype: raw.type,\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tpayload: raw.payload,\n\t\t});\n\t}\n\n\tpublic type: S2ExtensionType;\n\tpublic critical: boolean;\n\tpublic readonly moreToFollow?: boolean;\n\tpublic payload: Uint8Array;\n\n\tpublic isEncrypted(): boolean {\n\t\treturn false;\n\t}\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\treturn Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t2 + this.payload.length,\n\t\t\t\t(moreToFollow ? 0b1000_0000 : 0)\n\t\t\t\t| (this.critical ? 0b0100_0000 : 0)\n\t\t\t\t| (this.type & 0b11_1111),\n\t\t\t]),\n\t\t\tthis.payload,\n\t\t]);\n\t}\n\n\t/** Returns the number of bytes the first extension in the buffer occupies */\n\tpublic static getExtensionLength(\n\t\tdata: Uint8Array,\n\t): { expected?: number; actual: number } {\n\t\tconst actual = data[0];\n\t\tlet expected: number | undefined;\n\n\t\t// For known extensions, return the expected length\n\t\tconst type = data[1] & 0b11_1111;\n\t\tswitch (type) {\n\t\t\tcase S2ExtensionType.SPAN:\n\t\t\t\texpected = SPANExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MPAN:\n\t\t\t\texpected = MPANExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MGRP:\n\t\t\t\texpected = MGRPExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MOS:\n\t\t\t\texpected = MOSExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn { expected, actual };\n\t}\n\n\t/** Returns the number of bytes the serialized extension will occupy */\n\tpublic computeLength(): number {\n\t\treturn 2 + this.payload.length;\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = `\n\u00B7 type: ${getEnumMemberName(S2ExtensionType, this.type)}`;\n\t\tif (this.payload.length > 0) {\n\t\t\tret += `\n payload: ${buffer2hex(this.payload)}`;\n\t\t}\n\t\treturn ret;\n\t}\n}\n\nexport class InvalidExtension extends Security2Extension {\n}\n\ninterface SPANExtensionOptions {\n\tsenderEI: Uint8Array;\n}\n\n@extensionType(S2ExtensionType.SPAN)\nexport class SPANExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: SPANExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tif (options.senderEI.length !== 16) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The sender's entropy must be a 16-byte buffer!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tsuper({ critical: true, ...options });\n\t\tthis.senderEI = options.senderEI;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 16);\n\t\tconst senderEI = raw.payload;\n\n\t\treturn new SPANExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tsenderEI,\n\t\t});\n\t}\n\n\tpublic senderEI: Uint8Array;\n\tpublic static readonly expectedLength = 18;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = this.senderEI;\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` sender EI: ${buffer2hex(this.senderEI)}`;\n\t\treturn ret;\n\t}\n}\n\ninterface MPANExtensionOptions {\n\tgroupId: number;\n\tinnerMPANState: Uint8Array;\n}\n\n@extensionType(S2ExtensionType.MPAN)\nexport class MPANExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: MPANExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tif (options.innerMPANState.length !== 16) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The inner MPAN state must be a 16-byte buffer!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tsuper({ critical: true, ...options });\n\t\tthis.groupId = options.groupId;\n\t\tthis.innerMPANState = options.innerMPANState;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 17);\n\t\tconst groupId = raw.payload[0];\n\t\tconst innerMPANState = raw.payload.subarray(1);\n\n\t\treturn new MPANExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tgroupId,\n\t\t\tinnerMPANState,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\tpublic innerMPANState: Uint8Array;\n\n\tpublic isEncrypted(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic static readonly expectedLength = 19;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.groupId],\n\t\t\tthis.innerMPANState,\n\t\t]);\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tconst mpanState = process.env.NODE_ENV === \"test\"\n\t\t\t\t|| process.env.NODE_ENV === \"development\"\n\t\t\t? buffer2hex(this.innerMPANState)\n\t\t\t: \"(hidden)\";\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` group ID: ${this.groupId}\n MPAN state: ${mpanState}`;\n\t\treturn ret;\n\t}\n}\n\ninterface MGRPExtensionOptions {\n\tgroupId: number;\n}\n\n@extensionType(S2ExtensionType.MGRP)\nexport class MGRPExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: MGRPExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tsuper({ critical: true, ...options });\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 1);\n\t\tconst groupId = raw.payload[0];\n\n\t\treturn new MGRPExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic static readonly expectedLength = 3;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = Bytes.from([this.groupId]);\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` group ID: ${this.groupId}`;\n\t\treturn ret;\n\t}\n}\n\n@extensionType(S2ExtensionType.MOS)\nexport class MOSExtension extends Security2Extension {\n\tpublic constructor(options: Security2ExtensionBaseOptions = {}) {\n\t\tsuper({ critical: false, ...options });\n\t}\n\n\tpublic static readonly expectedLength = 2;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_safe", "S2ExtensionType", "ValidateS2ExtensionResult", "SPANExtension", "MPANExtension", "MGRPExtension"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AlarmSensorCC.d.ts","sourceRoot":"","sources":["../../../src/cc/AlarmSensorCC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AlarmSensorCC.d.ts","sourceRoot":"","sources":["../../../src/cc/AlarmSensorCC.ts"],"names":[],"mappings":"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"}