@zwave-js/cc 15.28.0 → 15.30.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 (404) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +3 -1
  2. package/build/cjs/cc/AlarmSensorCC.js +22 -2
  3. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  4. package/build/cjs/cc/AssociationCC.js +6 -5
  5. package/build/cjs/cc/AssociationCC.js.map +2 -2
  6. package/build/cjs/cc/AssociationGroupInfoCC.js +4 -5
  7. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  8. package/build/cjs/cc/BarrierOperatorCC.d.ts +6 -3
  9. package/build/cjs/cc/BarrierOperatorCC.js +40 -6
  10. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  11. package/build/cjs/cc/BasicCC.d.ts +4 -1
  12. package/build/cjs/cc/BasicCC.js +18 -0
  13. package/build/cjs/cc/BasicCC.js.map +3 -3
  14. package/build/cjs/cc/BasicWindowCoveringCC.js.map +2 -2
  15. package/build/cjs/cc/BatteryCC.js +16 -3
  16. package/build/cjs/cc/BatteryCC.js.map +2 -2
  17. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  18. package/build/cjs/cc/BinarySwitchCC.d.ts +4 -1
  19. package/build/cjs/cc/BinarySwitchCC.js +18 -0
  20. package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
  21. package/build/cjs/cc/CRC16CC.d.ts +3 -2
  22. package/build/cjs/cc/CRC16CC.js +7 -1
  23. package/build/cjs/cc/CRC16CC.js.map +3 -3
  24. package/build/cjs/cc/CentralSceneCC.d.ts +4 -1
  25. package/build/cjs/cc/CentralSceneCC.js +34 -2
  26. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  27. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +6 -3
  28. package/build/cjs/cc/ClimateControlScheduleCC.js +54 -6
  29. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  30. package/build/cjs/cc/ClockCC.d.ts +2 -1
  31. package/build/cjs/cc/ClockCC.js +19 -2
  32. package/build/cjs/cc/ClockCC.js.map +2 -2
  33. package/build/cjs/cc/ColorSwitchCC.js +1 -4
  34. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  35. package/build/cjs/cc/ConfigurationCC.d.ts +3 -2
  36. package/build/cjs/cc/ConfigurationCC.js +62 -8
  37. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  38. package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
  39. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  40. package/build/cjs/cc/DoorLockLoggingCC.d.ts +3 -1
  41. package/build/cjs/cc/DoorLockLoggingCC.js +35 -2
  42. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  43. package/build/cjs/cc/EntryControlCC.d.ts +5 -1
  44. package/build/cjs/cc/EntryControlCC.js +57 -2
  45. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  46. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +4 -16
  47. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  48. package/build/cjs/cc/HumidityControlModeCC.d.ts +3 -1
  49. package/build/cjs/cc/HumidityControlModeCC.js +14 -2
  50. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  51. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +3 -1
  52. package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -0
  53. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  54. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +8 -4
  55. package/build/cjs/cc/HumidityControlSetpointCC.js +61 -12
  56. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  57. package/build/cjs/cc/IndicatorCC.js +1 -5
  58. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  59. package/build/cjs/cc/IrrigationCC.d.ts +15 -9
  60. package/build/cjs/cc/IrrigationCC.js +260 -24
  61. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  62. package/build/cjs/cc/LanguageCC.d.ts +2 -1
  63. package/build/cjs/cc/LanguageCC.js +18 -2
  64. package/build/cjs/cc/LanguageCC.js.map +2 -2
  65. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  66. package/build/cjs/cc/ManufacturerSpecificCC.js +4 -5
  67. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  68. package/build/cjs/cc/MeterCC.js +8 -21
  69. package/build/cjs/cc/MeterCC.js.map +2 -2
  70. package/build/cjs/cc/MultiChannelAssociationCC.js +11 -7
  71. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  72. package/build/cjs/cc/MultiChannelCC.d.ts +5 -2
  73. package/build/cjs/cc/MultiChannelCC.js +35 -12
  74. package/build/cjs/cc/MultiChannelCC.js.map +3 -3
  75. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  76. package/build/cjs/cc/MultilevelSwitchCC.d.ts +5 -1
  77. package/build/cjs/cc/MultilevelSwitchCC.js +30 -0
  78. package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
  79. package/build/cjs/cc/NotificationCC.js +29 -11
  80. package/build/cjs/cc/NotificationCC.js.map +2 -2
  81. package/build/cjs/cc/PowerlevelCC.js.map +1 -1
  82. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  83. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +3 -2
  84. package/build/cjs/cc/SceneActuatorConfigurationCC.js +38 -5
  85. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  86. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +3 -2
  87. package/build/cjs/cc/SceneControllerConfigurationCC.js +25 -4
  88. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  89. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  90. package/build/cjs/cc/Security2CC.d.ts +2 -1
  91. package/build/cjs/cc/Security2CC.js +31 -3
  92. package/build/cjs/cc/Security2CC.js.map +2 -2
  93. package/build/cjs/cc/SecurityCC.d.ts +2 -1
  94. package/build/cjs/cc/SecurityCC.js +7 -6
  95. package/build/cjs/cc/SecurityCC.js.map +2 -2
  96. package/build/cjs/cc/SoundSwitchCC.js +6 -6
  97. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  98. package/build/cjs/cc/SupervisionCC.d.ts +2 -1
  99. package/build/cjs/cc/SupervisionCC.js +6 -0
  100. package/build/cjs/cc/SupervisionCC.js.map +3 -3
  101. package/build/cjs/cc/ThermostatFanModeCC.d.ts +3 -1
  102. package/build/cjs/cc/ThermostatFanModeCC.js +17 -2
  103. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  104. package/build/cjs/cc/ThermostatFanStateCC.d.ts +3 -1
  105. package/build/cjs/cc/ThermostatFanStateCC.js +4 -0
  106. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  107. package/build/cjs/cc/ThermostatModeCC.js +2 -4
  108. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  109. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  110. package/build/cjs/cc/ThermostatSetpointCC.d.ts +4 -1
  111. package/build/cjs/cc/ThermostatSetpointCC.js +18 -0
  112. package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
  113. package/build/cjs/cc/TimeCC.d.ts +1 -1
  114. package/build/cjs/cc/TimeCC.js +11 -2
  115. package/build/cjs/cc/TimeCC.js.map +2 -2
  116. package/build/cjs/cc/TransportServiceCC.js.map +2 -2
  117. package/build/cjs/cc/UserCodeCC.d.ts +2 -1
  118. package/build/cjs/cc/UserCodeCC.js +32 -8
  119. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  120. package/build/cjs/cc/UserCredentialCC.js +4 -6
  121. package/build/cjs/cc/UserCredentialCC.js.map +2 -2
  122. package/build/cjs/cc/VersionCC.d.ts +1 -0
  123. package/build/cjs/cc/VersionCC.js +32 -0
  124. package/build/cjs/cc/VersionCC.js.map +2 -2
  125. package/build/cjs/cc/WakeUpCC.d.ts +2 -0
  126. package/build/cjs/cc/WakeUpCC.js +14 -0
  127. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  128. package/build/cjs/cc/WindowCoveringCC.js +5 -1
  129. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  130. package/build/cjs/cc/ZWaveProtocolCC.js +3 -11
  131. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  132. package/build/cjs/cc/_CCValues.generated.d.ts +2 -2
  133. package/build/cjs/cc/_CCValues.generated.js.map +2 -2
  134. package/build/cjs/cc/index.d.ts +179 -179
  135. package/build/cjs/cc/index.js.map +1 -1
  136. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +2 -2
  137. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +2 -1
  138. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +30 -2
  139. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
  140. package/build/cjs/lib/API.d.ts +3 -2
  141. package/build/cjs/lib/API.js.map +2 -2
  142. package/build/cjs/lib/CommandClass.d.ts +20 -0
  143. package/build/cjs/lib/CommandClass.js +52 -11
  144. package/build/cjs/lib/CommandClass.js.map +3 -3
  145. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  146. package/build/cjs/lib/EncapsulatingCommandClass.js.map +2 -2
  147. package/build/cjs/lib/NotificationEventPayload.js.map +2 -2
  148. package/build/cjs/lib/Security2/Extension.js +1 -4
  149. package/build/cjs/lib/Security2/Extension.js.map +2 -2
  150. package/build/cjs/lib/Security2/shared.js.map +2 -2
  151. package/build/cjs/lib/SetValueResult.js.map +1 -1
  152. package/build/cjs/lib/Values.d.ts +1 -1
  153. package/build/cjs/lib/Values.js.map +2 -2
  154. package/build/cjs/lib/_CCAPI.generated.js.map +1 -1
  155. package/build/cjs/lib/_Types.d.ts +30 -30
  156. package/build/cjs/lib/_Types.js.map +2 -2
  157. package/build/cjs/lib/serializers.js +1 -4
  158. package/build/cjs/lib/serializers.js.map +2 -2
  159. package/build/cjs/lib/utils.js.map +2 -2
  160. package/build/esm/cc/AlarmSensorCC.d.ts +3 -1
  161. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  162. package/build/esm/cc/AlarmSensorCC.js +26 -9
  163. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  164. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  165. package/build/esm/cc/AssociationCC.js +8 -7
  166. package/build/esm/cc/AssociationCC.js.map +1 -1
  167. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  168. package/build/esm/cc/AssociationGroupInfoCC.js +10 -12
  169. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  170. package/build/esm/cc/BarrierOperatorCC.d.ts +6 -3
  171. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  172. package/build/esm/cc/BarrierOperatorCC.js +55 -27
  173. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  174. package/build/esm/cc/BasicCC.d.ts +4 -1
  175. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  176. package/build/esm/cc/BasicCC.js +30 -7
  177. package/build/esm/cc/BasicCC.js.map +1 -1
  178. package/build/esm/cc/BasicWindowCoveringCC.d.ts.map +1 -1
  179. package/build/esm/cc/BasicWindowCoveringCC.js +2 -5
  180. package/build/esm/cc/BasicWindowCoveringCC.js.map +1 -1
  181. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  182. package/build/esm/cc/BatteryCC.js +12 -12
  183. package/build/esm/cc/BatteryCC.js.map +1 -1
  184. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  185. package/build/esm/cc/BinarySensorCC.js +4 -5
  186. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  187. package/build/esm/cc/BinarySwitchCC.d.ts +4 -1
  188. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  189. package/build/esm/cc/BinarySwitchCC.js +31 -6
  190. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  191. package/build/esm/cc/CRC16CC.d.ts +3 -2
  192. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  193. package/build/esm/cc/CRC16CC.js +10 -4
  194. package/build/esm/cc/CRC16CC.js.map +1 -1
  195. package/build/esm/cc/CentralSceneCC.d.ts +4 -1
  196. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  197. package/build/esm/cc/CentralSceneCC.js +37 -7
  198. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  199. package/build/esm/cc/ClimateControlScheduleCC.d.ts +6 -3
  200. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  201. package/build/esm/cc/ClimateControlScheduleCC.js +63 -18
  202. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  203. package/build/esm/cc/ClockCC.d.ts +2 -1
  204. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  205. package/build/esm/cc/ClockCC.js +26 -9
  206. package/build/esm/cc/ClockCC.js.map +1 -1
  207. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  208. package/build/esm/cc/ColorSwitchCC.js +17 -20
  209. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  210. package/build/esm/cc/ConfigurationCC.d.ts +3 -2
  211. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  212. package/build/esm/cc/ConfigurationCC.js +83 -41
  213. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  214. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  215. package/build/esm/cc/DeviceResetLocallyCC.js +1 -2
  216. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  217. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  218. package/build/esm/cc/DoorLockCC.js +25 -29
  219. package/build/esm/cc/DoorLockCC.js.map +1 -1
  220. package/build/esm/cc/DoorLockLoggingCC.d.ts +3 -1
  221. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  222. package/build/esm/cc/DoorLockLoggingCC.js +39 -5
  223. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  224. package/build/esm/cc/EntryControlCC.d.ts +5 -1
  225. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  226. package/build/esm/cc/EntryControlCC.js +74 -14
  227. package/build/esm/cc/EntryControlCC.js.map +1 -1
  228. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  229. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +15 -27
  230. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  231. package/build/esm/cc/HumidityControlModeCC.d.ts +3 -1
  232. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  233. package/build/esm/cc/HumidityControlModeCC.js +15 -7
  234. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  235. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +3 -1
  236. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  237. package/build/esm/cc/HumidityControlOperatingStateCC.js +5 -1
  238. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  239. package/build/esm/cc/HumidityControlSetpointCC.d.ts +8 -4
  240. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  241. package/build/esm/cc/HumidityControlSetpointCC.js +60 -34
  242. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  243. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  244. package/build/esm/cc/IndicatorCC.js +19 -38
  245. package/build/esm/cc/IndicatorCC.js.map +1 -1
  246. package/build/esm/cc/IrrigationCC.d.ts +15 -9
  247. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  248. package/build/esm/cc/IrrigationCC.js +276 -67
  249. package/build/esm/cc/IrrigationCC.js.map +1 -1
  250. package/build/esm/cc/LanguageCC.d.ts +2 -1
  251. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  252. package/build/esm/cc/LanguageCC.js +18 -6
  253. package/build/esm/cc/LanguageCC.js.map +1 -1
  254. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  255. package/build/esm/cc/ManufacturerProprietaryCC.js +1 -2
  256. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  257. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  258. package/build/esm/cc/ManufacturerSpecificCC.js +5 -8
  259. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  260. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  261. package/build/esm/cc/MeterCC.js +15 -29
  262. package/build/esm/cc/MeterCC.js.map +1 -1
  263. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  264. package/build/esm/cc/MultiChannelAssociationCC.js +15 -20
  265. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  266. package/build/esm/cc/MultiChannelCC.d.ts +5 -2
  267. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  268. package/build/esm/cc/MultiChannelCC.js +43 -29
  269. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  270. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  271. package/build/esm/cc/MultilevelSensorCC.js +11 -11
  272. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  273. package/build/esm/cc/MultilevelSwitchCC.d.ts +5 -1
  274. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  275. package/build/esm/cc/MultilevelSwitchCC.js +56 -16
  276. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  277. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  278. package/build/esm/cc/NotificationCC.js +66 -55
  279. package/build/esm/cc/NotificationCC.js.map +1 -1
  280. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  281. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  282. package/build/esm/cc/ProtectionCC.js +10 -9
  283. package/build/esm/cc/ProtectionCC.js.map +1 -1
  284. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +3 -2
  285. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  286. package/build/esm/cc/SceneActuatorConfigurationCC.js +44 -21
  287. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  288. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +3 -2
  289. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  290. package/build/esm/cc/SceneControllerConfigurationCC.js +35 -28
  291. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  292. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  293. package/build/esm/cc/ScheduleEntryLockCC.js +13 -20
  294. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  295. package/build/esm/cc/Security2CC.d.ts +2 -1
  296. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  297. package/build/esm/cc/Security2CC.js +68 -32
  298. package/build/esm/cc/Security2CC.js.map +1 -1
  299. package/build/esm/cc/SecurityCC.d.ts +2 -1
  300. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  301. package/build/esm/cc/SecurityCC.js +16 -11
  302. package/build/esm/cc/SecurityCC.js.map +1 -1
  303. package/build/esm/cc/SoundSwitchCC.js +2 -2
  304. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  305. package/build/esm/cc/SupervisionCC.d.ts +2 -1
  306. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  307. package/build/esm/cc/SupervisionCC.js +13 -6
  308. package/build/esm/cc/SupervisionCC.js.map +1 -1
  309. package/build/esm/cc/ThermostatFanModeCC.d.ts +3 -1
  310. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  311. package/build/esm/cc/ThermostatFanModeCC.js +19 -9
  312. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  313. package/build/esm/cc/ThermostatFanStateCC.d.ts +3 -1
  314. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  315. package/build/esm/cc/ThermostatFanStateCC.js +5 -1
  316. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  317. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  318. package/build/esm/cc/ThermostatModeCC.js +2 -4
  319. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  320. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  321. package/build/esm/cc/ThermostatOperatingStateCC.js +1 -2
  322. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  323. package/build/esm/cc/ThermostatSetpointCC.d.ts +4 -1
  324. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  325. package/build/esm/cc/ThermostatSetpointCC.js +31 -19
  326. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  327. package/build/esm/cc/TimeCC.d.ts +1 -1
  328. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  329. package/build/esm/cc/TimeCC.js +18 -9
  330. package/build/esm/cc/TimeCC.js.map +1 -1
  331. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  332. package/build/esm/cc/TransportServiceCC.js +8 -8
  333. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  334. package/build/esm/cc/UserCodeCC.d.ts +2 -1
  335. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  336. package/build/esm/cc/UserCodeCC.js +51 -36
  337. package/build/esm/cc/UserCodeCC.js.map +1 -1
  338. package/build/esm/cc/UserCredentialCC.d.ts.map +1 -1
  339. package/build/esm/cc/UserCredentialCC.js +42 -59
  340. package/build/esm/cc/UserCredentialCC.js.map +1 -1
  341. package/build/esm/cc/VersionCC.d.ts +1 -0
  342. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  343. package/build/esm/cc/VersionCC.js +37 -3
  344. package/build/esm/cc/VersionCC.js.map +1 -1
  345. package/build/esm/cc/WakeUpCC.d.ts +2 -0
  346. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  347. package/build/esm/cc/WakeUpCC.js +14 -0
  348. package/build/esm/cc/WakeUpCC.js.map +1 -1
  349. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  350. package/build/esm/cc/WindowCoveringCC.js +10 -9
  351. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  352. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  353. package/build/esm/cc/ZWaveProtocolCC.js +5 -26
  354. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  355. package/build/esm/cc/_CCValues.generated.d.ts +2 -2
  356. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
  357. package/build/esm/cc/_CCValues.generated.js +637 -678
  358. package/build/esm/cc/_CCValues.generated.js.map +1 -1
  359. package/build/esm/cc/index.d.ts +179 -179
  360. package/build/esm/cc/index.d.ts.map +1 -1
  361. package/build/esm/cc/index.js +124 -124
  362. package/build/esm/cc/index.js.map +1 -1
  363. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
  364. package/build/esm/cc/manufacturerProprietary/Decorators.js.map +1 -1
  365. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +2 -1
  366. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  367. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +34 -4
  368. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  369. package/build/esm/lib/API.d.ts +3 -2
  370. package/build/esm/lib/API.d.ts.map +1 -1
  371. package/build/esm/lib/API.js +1 -1
  372. package/build/esm/lib/API.js.map +1 -1
  373. package/build/esm/lib/CommandClass.d.ts +20 -0
  374. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  375. package/build/esm/lib/CommandClass.js +50 -16
  376. package/build/esm/lib/CommandClass.js.map +1 -1
  377. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  378. package/build/esm/lib/CommandClassDecorators.js +1 -2
  379. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  380. package/build/esm/lib/EncapsulatingCommandClass.d.ts.map +1 -1
  381. package/build/esm/lib/EncapsulatingCommandClass.js.map +1 -1
  382. package/build/esm/lib/NotificationEventPayload.d.ts.map +1 -1
  383. package/build/esm/lib/NotificationEventPayload.js.map +1 -1
  384. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  385. package/build/esm/lib/Security2/Extension.js +2 -6
  386. package/build/esm/lib/Security2/Extension.js.map +1 -1
  387. package/build/esm/lib/Security2/shared.d.ts.map +1 -1
  388. package/build/esm/lib/Security2/shared.js.map +1 -1
  389. package/build/esm/lib/SetValueResult.d.ts.map +1 -1
  390. package/build/esm/lib/Values.d.ts +1 -1
  391. package/build/esm/lib/Values.d.ts.map +1 -1
  392. package/build/esm/lib/Values.js.map +1 -1
  393. package/build/esm/lib/_CCAPI.generated.d.ts.map +1 -1
  394. package/build/esm/lib/_Types.d.ts +30 -30
  395. package/build/esm/lib/_Types.d.ts.map +1 -1
  396. package/build/esm/lib/_Types.js.map +1 -1
  397. package/build/esm/lib/serializers.d.ts.map +1 -1
  398. package/build/esm/lib/serializers.js +1 -4
  399. package/build/esm/lib/serializers.js.map +1 -1
  400. package/build/esm/lib/traits.d.ts.map +1 -1
  401. package/build/esm/lib/utils.d.ts.map +1 -1
  402. package/build/esm/lib/utils.js +25 -31
  403. package/build/esm/lib/utils.js.map +1 -1
  404. package/package.json +7 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src_gen/cc/TransportServiceCC.ts"],
4
- "sourcesContent": ["import { CRC16_CCITT, CommandClasses, type GetValueDB, type MessageOrCCLogEntry, type SinglecastCC, type WithAddress, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, type BytesView, buffer2hex } from \"@zwave-js/shared\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport { CCCommand, commandClass, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\nimport { TransportServiceCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nexport const MAX_SEGMENT_SIZE = 39;\nexport const RELAXED_TIMING_THRESHOLD = 2;\n// TODO: Figure out how we know if communicating with R2 or R3\n/** @publicAPI */\nexport const TransportServiceTimeouts = {\n /** Waiting time before requesting a missing segment at data rate R2 */\n requestMissingSegmentR2: 800,\n /** Waiting time before requesting a missing segment at data rate R3 */\n requestMissingSegmentR3: 400,\n /** Waiting time before sending another datagram at data rate R2 */\n segmentCompleteR2: 1000,\n /** Waiting time before sending another datagram at data rate R3 */\n segmentCompleteR3: 500,\n /** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R2 */\n relaxedTimingDelayR2: 35,\n /** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R3 */\n relaxedTimingDelayR3: 15,\n};\n@commandClass(CommandClasses[\"Transport Service\"])\n@implementedVersion(2)\nexport class TransportServiceCC extends CommandClass implements SinglecastCC<TransportServiceCC> {\n declare ccCommand: TransportServiceCommand;\n declare nodeId: number;\n}\n// @publicAPI\nexport interface TransportServiceCCFirstSegmentOptions {\n datagramSize: number;\n sessionId: number;\n headerExtension?: BytesView | undefined;\n partialDatagram: BytesView;\n}\n/** @publicAPI */\nexport function isTransportServiceEncapsulation(command: CommandClass): command is TransportServiceCCFirstSegment | TransportServiceCCSubsequentSegment {\n return (command.ccId === CommandClasses[\"Transport Service\"]\n && (command.ccCommand === TransportServiceCommand.FirstSegment\n || command.ccCommand === TransportServiceCommand.SubsequentSegment));\n}\n@CCCommand(TransportServiceCommand.FirstSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCFirstSegment extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCFirstSegmentOptions>) {\n super(options);\n this.datagramSize = options.datagramSize;\n this.sessionId = options.sessionId;\n this.headerExtension = options.headerExtension;\n this.partialDatagram = options.partialDatagram;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCFirstSegment {\n // Deserialization has already split the datagram size from the ccCommand.\n // Therefore we have one more payload byte\n validatePayload(raw.payload.length >= 6); // 2 bytes dgram size, 1 byte sessid/ext, 1+ bytes payload, 2 bytes checksum\n // Verify the CRC\n const headerBuffer = Bytes.from([\n CommandClasses[\"Transport Service\"],\n TransportServiceCommand.FirstSegment | raw.payload[0],\n ]);\n const ccBuffer = raw.payload.subarray(1, -2);\n let expectedCRC = CRC16_CCITT(headerBuffer);\n expectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);\n validatePayload(expectedCRC === actualCRC);\n const datagramSize = raw.payload.readUInt16BE(0);\n const sessionId = raw.payload[2] >>> 4;\n let payloadOffset = 3;\n // If there is a header extension, read it\n const hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n let headerExtension: BytesView | undefined;\n if (hasHeaderExtension) {\n const extLength = raw.payload[3];\n headerExtension = raw.payload.subarray(4, 4 + extLength);\n payloadOffset += 1 + extLength;\n }\n const partialDatagram: BytesView = raw.payload.subarray(payloadOffset, -2);\n // A node supporting the Transport Service Command Class, version 2\n // MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n validatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n return new this({\n nodeId: ctx.sourceNodeId,\n datagramSize,\n sessionId,\n headerExtension,\n partialDatagram,\n });\n }\n public datagramSize: number;\n public sessionId: number;\n public headerExtension: BytesView | undefined;\n public partialDatagram: BytesView;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n // Transport Service re-uses the lower 3 bits of the ccCommand as payload\n this.ccCommand = (this.ccCommand & 248)\n | ((this.datagramSize >>> 8) & 0b111);\n const ext = !!this.headerExtension && this.headerExtension.length >= 1;\n this.payload = Bytes.from([\n this.datagramSize & 0xff,\n ((this.sessionId & 0b1111) << 4) | (ext ? 0b1000 : 0),\n ]);\n if (ext) {\n this.payload = Bytes.concat([\n this.payload,\n [this.headerExtension!.length],\n this.headerExtension!,\n ]);\n }\n this.payload = Bytes.concat([\n this.payload,\n this.partialDatagram,\n Bytes.alloc(2, 0), // checksum\n ]);\n // Compute and save the CRC16 in the payload\n // The CC header is included in the CRC computation\n const headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n let crc = CRC16_CCITT(headerBuffer);\n crc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n // Write the checksum into the last two bytes of the payload\n this.payload.writeUInt16BE(crc, this.payload.length - 2);\n return super.serialize(ctx);\n }\n protected computeEncapsulationOverhead(): number {\n // Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 2 bytes checksum and (0 OR n+1) bytes header extension\n return (super.computeEncapsulationOverhead()\n + 4\n + (this.headerExtension?.length\n ? 1 + this.headerExtension.length\n : 0));\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n \"datagram size\": this.datagramSize,\n \"byte range\": `0...${this.partialDatagram.length - 1}`,\n payload: buffer2hex(this.partialDatagram),\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSubsequentSegmentOptions extends TransportServiceCCFirstSegmentOptions {\n datagramOffset: number;\n}\n@CCCommand(TransportServiceCommand.SubsequentSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSubsequentSegment extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSubsequentSegmentOptions>) {\n super(options);\n this.datagramSize = options.datagramSize;\n this.datagramOffset = options.datagramOffset;\n this.sessionId = options.sessionId;\n this.headerExtension = options.headerExtension;\n this.partialDatagram = options.partialDatagram;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSubsequentSegment {\n // Deserialization has already split the datagram size from the ccCommand.\n // Therefore we have one more payload byte\n validatePayload(raw.payload.length >= 7); // 2 bytes dgram size, 1 byte sessid/ext/offset, 1 byte offset, 1+ bytes payload, 2 bytes checksum\n // Verify the CRC\n const headerBuffer = Bytes.from([\n CommandClasses[\"Transport Service\"],\n TransportServiceCommand.SubsequentSegment | raw.payload[0],\n ]);\n const ccBuffer = raw.payload.subarray(1, -2);\n let expectedCRC = CRC16_CCITT(headerBuffer);\n expectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);\n validatePayload(expectedCRC === actualCRC);\n const datagramSize = raw.payload.readUInt16BE(0);\n const sessionId = raw.payload[2] >>> 4;\n const datagramOffset = ((raw.payload[2] & 0b111) << 8)\n + raw.payload[3];\n let payloadOffset = 4;\n // If there is a header extension, read it\n const hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n let headerExtension: Bytes | undefined;\n if (hasHeaderExtension) {\n const extLength = raw.payload[4];\n headerExtension = raw.payload.subarray(5, 5 + extLength);\n payloadOffset += 1 + extLength;\n }\n const partialDatagram: Bytes = raw.payload.subarray(payloadOffset, -2);\n // A node supporting the Transport Service Command Class, version 2\n // MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n validatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n return new this({\n nodeId: ctx.sourceNodeId,\n datagramSize,\n sessionId,\n datagramOffset,\n headerExtension,\n partialDatagram,\n });\n }\n public datagramSize: number;\n public datagramOffset: number;\n public sessionId: number;\n public headerExtension: BytesView | undefined;\n public partialDatagram: BytesView;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n // Transport Service re-uses the lower 3 bits of the ccCommand as payload\n this.ccCommand = (this.ccCommand & 248)\n | ((this.datagramSize >>> 8) & 0b111);\n const ext = !!this.headerExtension && this.headerExtension.length >= 1;\n this.payload = Bytes.from([\n this.datagramSize & 0xff,\n ((this.sessionId & 0b1111) << 4)\n | (ext ? 0b1000 : 0)\n | ((this.datagramOffset >>> 8) & 0b111),\n this.datagramOffset & 0xff,\n ]);\n if (ext) {\n this.payload = Bytes.concat([\n this.payload,\n [this.headerExtension!.length],\n this.headerExtension!,\n ]);\n }\n this.payload = Bytes.concat([\n this.payload,\n this.partialDatagram,\n Bytes.alloc(2, 0), // checksum\n ]);\n // Compute and save the CRC16 in the payload\n // The CC header is included in the CRC computation\n const headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n let crc = CRC16_CCITT(headerBuffer);\n crc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n // Write the checksum into the last two bytes of the payload\n this.payload.writeUInt16BE(crc, this.payload.length - 2);\n return super.serialize(ctx);\n }\n protected computeEncapsulationOverhead(): number {\n // Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 1 byte offset, 2 bytes checksum and (0 OR n+1) bytes header extension\n return (super.computeEncapsulationOverhead()\n + 5\n + (this.headerExtension?.length\n ? 1 + this.headerExtension.length\n : 0));\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n \"datagram size\": this.datagramSize,\n \"byte range\": `${this.datagramOffset}...${this.datagramOffset + this.partialDatagram.length - 1}`,\n payload: buffer2hex(this.partialDatagram),\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentRequestOptions {\n sessionId: number;\n datagramOffset: number;\n}\n@CCCommand(TransportServiceCommand.SegmentRequest)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSegmentRequest extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentRequestOptions>) {\n super(options);\n this.sessionId = options.sessionId;\n this.datagramOffset = options.datagramOffset;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentRequest {\n validatePayload(raw.payload.length >= 3);\n const sessionId = raw.payload[1] >>> 4;\n const datagramOffset = ((raw.payload[1] & 0b111) << 8)\n + raw.payload[2];\n return new this({\n nodeId: ctx.sourceNodeId,\n sessionId,\n datagramOffset,\n });\n }\n public sessionId: number;\n public datagramOffset: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n ((this.sessionId & 0b1111) << 4)\n | ((this.datagramOffset >>> 8) & 0b111),\n this.datagramOffset & 0xff,\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n offset: this.datagramOffset,\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentCompleteOptions {\n sessionId: number;\n}\n@CCCommand(TransportServiceCommand.SegmentComplete)\nexport class TransportServiceCCSegmentComplete extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentCompleteOptions>) {\n super(options);\n this.sessionId = options.sessionId;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentComplete {\n validatePayload(raw.payload.length >= 2);\n const sessionId = raw.payload[1] >>> 4;\n return new this({\n nodeId: ctx.sourceNodeId,\n sessionId,\n });\n }\n public sessionId: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([(this.sessionId & 0b1111) << 4]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"session ID\": this.sessionId },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentWaitOptions {\n pendingSegments: number;\n}\n@CCCommand(TransportServiceCommand.SegmentWait)\nexport class TransportServiceCCSegmentWait extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentWaitOptions>) {\n super(options);\n this.pendingSegments = options.pendingSegments;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentWait {\n validatePayload(raw.payload.length >= 2);\n const pendingSegments = raw.payload[1];\n return new this({\n nodeId: ctx.sourceNodeId,\n pendingSegments,\n });\n }\n public pendingSegments: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.pendingSegments]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"pending segments\": this.pendingSegments },\n };\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { CRC16_CCITT, CommandClasses, type GetValueDB, type MessageOrCCLogEntry, type SinglecastCC, type WithAddress, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, type BytesView, buffer2hex } from \"@zwave-js/shared\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport { CCCommand, commandClass, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\nimport { TransportServiceCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nexport const MAX_SEGMENT_SIZE = 39;\nexport const RELAXED_TIMING_THRESHOLD = 2;\n// TODO: Figure out how we know if communicating with R2 or R3\n/** @publicAPI */\nexport const TransportServiceTimeouts = {\n /** Waiting time before requesting a missing segment at data rate R2 */\n requestMissingSegmentR2: 800,\n /** Waiting time before requesting a missing segment at data rate R3 */\n requestMissingSegmentR3: 400,\n /** Waiting time before sending another datagram at data rate R2 */\n segmentCompleteR2: 1000,\n /** Waiting time before sending another datagram at data rate R3 */\n segmentCompleteR3: 500,\n /** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R2 */\n relaxedTimingDelayR2: 35,\n /** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R3 */\n relaxedTimingDelayR3: 15,\n};\n@commandClass(CommandClasses[\"Transport Service\"])\n@implementedVersion(2)\nexport class TransportServiceCC extends CommandClass implements SinglecastCC<TransportServiceCC> {\n declare ccCommand: TransportServiceCommand;\n declare nodeId: number;\n}\n// @publicAPI\nexport interface TransportServiceCCFirstSegmentOptions {\n datagramSize: number;\n sessionId: number;\n headerExtension?: BytesView | undefined;\n partialDatagram: BytesView;\n}\n/** @publicAPI */\nexport function isTransportServiceEncapsulation(command: CommandClass): command is TransportServiceCCFirstSegment | TransportServiceCCSubsequentSegment {\n return (command.ccId === CommandClasses[\"Transport Service\"]\n && (command.ccCommand === TransportServiceCommand.FirstSegment\n || command.ccCommand === TransportServiceCommand.SubsequentSegment));\n}\n@CCCommand(TransportServiceCommand.FirstSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCFirstSegment extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCFirstSegmentOptions>) {\n super(options);\n this.datagramSize = options.datagramSize;\n this.sessionId = options.sessionId;\n this.headerExtension = options.headerExtension;\n this.partialDatagram = options.partialDatagram;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCFirstSegment {\n // Deserialization has already split the datagram size from the ccCommand.\n // Therefore we have one more payload byte\n validatePayload(raw.payload.length >= 6); // 2 bytes dgram size, 1 byte sessid/ext, 1+ bytes payload, 2 bytes checksum\n // Verify the CRC\n const headerBuffer = Bytes.from([\n CommandClasses[\"Transport Service\"],\n TransportServiceCommand.FirstSegment | raw.payload[0],\n ]);\n const ccBuffer = raw.payload.subarray(1, -2);\n let expectedCRC = CRC16_CCITT(headerBuffer);\n expectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);\n validatePayload(expectedCRC === actualCRC);\n const datagramSize = raw.payload.readUInt16BE(0);\n const sessionId = raw.payload[2] >>> 4;\n let payloadOffset = 3;\n // If there is a header extension, read it\n const hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n let headerExtension: BytesView | undefined;\n if (hasHeaderExtension) {\n const extLength = raw.payload[3];\n headerExtension = raw.payload.subarray(4, 4 + extLength);\n payloadOffset += 1 + extLength;\n }\n const partialDatagram: BytesView = raw.payload.subarray(payloadOffset, -2);\n // A node supporting the Transport Service Command Class, version 2\n // MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n validatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n return new this({\n nodeId: ctx.sourceNodeId,\n datagramSize,\n sessionId,\n headerExtension,\n partialDatagram,\n });\n }\n public datagramSize: number;\n public sessionId: number;\n public headerExtension: BytesView | undefined;\n public partialDatagram: BytesView;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n // Transport Service re-uses the lower 3 bits of the ccCommand as payload\n this.ccCommand =\n (this.ccCommand & 248)\n | ((this.datagramSize >>> 8) & 0b111);\n const ext = !!this.headerExtension && this.headerExtension.length >= 1;\n this.payload = Bytes.from([\n this.datagramSize & 0xff,\n ((this.sessionId & 0b1111) << 4) | (ext ? 0b1000 : 0),\n ]);\n if (ext) {\n this.payload = Bytes.concat([\n this.payload,\n [this.headerExtension!.length],\n this.headerExtension!,\n ]);\n }\n this.payload = Bytes.concat([\n this.payload,\n this.partialDatagram,\n Bytes.alloc(2, 0), // checksum\n ]);\n // Compute and save the CRC16 in the payload\n // The CC header is included in the CRC computation\n const headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n let crc = CRC16_CCITT(headerBuffer);\n crc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n // Write the checksum into the last two bytes of the payload\n this.payload.writeUInt16BE(crc, this.payload.length - 2);\n return super.serialize(ctx);\n }\n protected computeEncapsulationOverhead(): number {\n // Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 2 bytes checksum and (0 OR n+1) bytes header extension\n return (super.computeEncapsulationOverhead()\n + 4\n + (this.headerExtension?.length\n ? 1 + this.headerExtension.length\n : 0));\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n \"datagram size\": this.datagramSize,\n \"byte range\": `0...${this.partialDatagram.length - 1}`,\n payload: buffer2hex(this.partialDatagram),\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSubsequentSegmentOptions extends TransportServiceCCFirstSegmentOptions {\n datagramOffset: number;\n}\n@CCCommand(TransportServiceCommand.SubsequentSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSubsequentSegment extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSubsequentSegmentOptions>) {\n super(options);\n this.datagramSize = options.datagramSize;\n this.datagramOffset = options.datagramOffset;\n this.sessionId = options.sessionId;\n this.headerExtension = options.headerExtension;\n this.partialDatagram = options.partialDatagram;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSubsequentSegment {\n // Deserialization has already split the datagram size from the ccCommand.\n // Therefore we have one more payload byte\n validatePayload(raw.payload.length >= 7); // 2 bytes dgram size, 1 byte sessid/ext/offset, 1 byte offset, 1+ bytes payload, 2 bytes checksum\n // Verify the CRC\n const headerBuffer = Bytes.from([\n CommandClasses[\"Transport Service\"],\n TransportServiceCommand.SubsequentSegment | raw.payload[0],\n ]);\n const ccBuffer = raw.payload.subarray(1, -2);\n let expectedCRC = CRC16_CCITT(headerBuffer);\n expectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);\n validatePayload(expectedCRC === actualCRC);\n const datagramSize = raw.payload.readUInt16BE(0);\n const sessionId = raw.payload[2] >>> 4;\n const datagramOffset = ((raw.payload[2] & 0b111) << 8) + raw.payload[3];\n let payloadOffset = 4;\n // If there is a header extension, read it\n const hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n let headerExtension: Bytes | undefined;\n if (hasHeaderExtension) {\n const extLength = raw.payload[4];\n headerExtension = raw.payload.subarray(5, 5 + extLength);\n payloadOffset += 1 + extLength;\n }\n const partialDatagram: Bytes = raw.payload.subarray(payloadOffset, -2);\n // A node supporting the Transport Service Command Class, version 2\n // MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n validatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n return new this({\n nodeId: ctx.sourceNodeId,\n datagramSize,\n sessionId,\n datagramOffset,\n headerExtension,\n partialDatagram,\n });\n }\n public datagramSize: number;\n public datagramOffset: number;\n public sessionId: number;\n public headerExtension: BytesView | undefined;\n public partialDatagram: BytesView;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n // Transport Service re-uses the lower 3 bits of the ccCommand as payload\n this.ccCommand =\n (this.ccCommand & 248)\n | ((this.datagramSize >>> 8) & 0b111);\n const ext = !!this.headerExtension && this.headerExtension.length >= 1;\n this.payload = Bytes.from([\n this.datagramSize & 0xff,\n ((this.sessionId & 0b1111) << 4)\n | (ext ? 0b1000 : 0)\n | ((this.datagramOffset >>> 8) & 0b111),\n this.datagramOffset & 0xff,\n ]);\n if (ext) {\n this.payload = Bytes.concat([\n this.payload,\n [this.headerExtension!.length],\n this.headerExtension!,\n ]);\n }\n this.payload = Bytes.concat([\n this.payload,\n this.partialDatagram,\n Bytes.alloc(2, 0), // checksum\n ]);\n // Compute and save the CRC16 in the payload\n // The CC header is included in the CRC computation\n const headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n let crc = CRC16_CCITT(headerBuffer);\n crc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n // Write the checksum into the last two bytes of the payload\n this.payload.writeUInt16BE(crc, this.payload.length - 2);\n return super.serialize(ctx);\n }\n protected computeEncapsulationOverhead(): number {\n // Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 1 byte offset, 2 bytes checksum and (0 OR n+1) bytes header extension\n return (super.computeEncapsulationOverhead()\n + 5\n + (this.headerExtension?.length\n ? 1 + this.headerExtension.length\n : 0));\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n \"datagram size\": this.datagramSize,\n \"byte range\": `${this.datagramOffset}...${this.datagramOffset + this.partialDatagram.length - 1}`,\n payload: buffer2hex(this.partialDatagram),\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentRequestOptions {\n sessionId: number;\n datagramOffset: number;\n}\n@CCCommand(TransportServiceCommand.SegmentRequest)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSegmentRequest extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentRequestOptions>) {\n super(options);\n this.sessionId = options.sessionId;\n this.datagramOffset = options.datagramOffset;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentRequest {\n validatePayload(raw.payload.length >= 3);\n const sessionId = raw.payload[1] >>> 4;\n const datagramOffset = ((raw.payload[1] & 0b111) << 8) + raw.payload[2];\n return new this({\n nodeId: ctx.sourceNodeId,\n sessionId,\n datagramOffset,\n });\n }\n public sessionId: number;\n public datagramOffset: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n ((this.sessionId & 0b1111) << 4)\n | ((this.datagramOffset >>> 8) & 0b111),\n this.datagramOffset & 0xff,\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n offset: this.datagramOffset,\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentCompleteOptions {\n sessionId: number;\n}\n@CCCommand(TransportServiceCommand.SegmentComplete)\nexport class TransportServiceCCSegmentComplete extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentCompleteOptions>) {\n super(options);\n this.sessionId = options.sessionId;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentComplete {\n validatePayload(raw.payload.length >= 2);\n const sessionId = raw.payload[1] >>> 4;\n return new this({\n nodeId: ctx.sourceNodeId,\n sessionId,\n });\n }\n public sessionId: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([(this.sessionId & 0b1111) << 4]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"session ID\": this.sessionId },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentWaitOptions {\n pendingSegments: number;\n}\n@CCCommand(TransportServiceCommand.SegmentWait)\nexport class TransportServiceCCSegmentWait extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentWaitOptions>) {\n super(options);\n this.pendingSegments = options.pendingSegments;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentWait {\n validatePayload(raw.payload.length >= 2);\n const pendingSegments = raw.payload[1];\n return new this({\n nodeId: ctx.sourceNodeId,\n pendingSegments,\n });\n }\n public pendingSegments: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.pendingSegments]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"pending segments\": this.pendingSegments },\n };\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -266,6 +266,7 @@ export declare class UserCodeCCExtendedUserCodeReport extends UserCodeCC {
266
266
  persistValues(ctx: PersistValuesContext): boolean;
267
267
  readonly userCodes: readonly UserCode[];
268
268
  readonly nextUserId: number;
269
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
269
270
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
270
271
  }
271
272
  export interface UserCodeCCExtendedUserCodeGetOptions {
@@ -274,7 +275,7 @@ export interface UserCodeCCExtendedUserCodeGetOptions {
274
275
  }
275
276
  export declare class UserCodeCCExtendedUserCodeGet extends UserCodeCC {
276
277
  constructor(options: WithAddress<UserCodeCCExtendedUserCodeGetOptions>);
277
- static from(_raw: CCRaw, _ctx: CCParsingContext): UserCodeCCExtendedUserCodeGet;
278
+ static from(raw: CCRaw, ctx: CCParsingContext): UserCodeCCExtendedUserCodeGet;
278
279
  userId: number;
279
280
  reportMore: boolean;
280
281
  serialize(ctx: CCEncodingContext): Promise<Bytes>;
@@ -1614,12 +1614,7 @@ let UserCodeCCExtendedUserCodeSet = (() => {
1614
1614
  serialize(ctx) {
1615
1615
  const userCodeBuffers = this.userCodes.map((code) => {
1616
1616
  const ret = import_shared.Bytes.concat([
1617
- [
1618
- 0,
1619
- 0,
1620
- code.userIdStatus,
1621
- code.userCode?.length ?? 0
1622
- ],
1617
+ [0, 0, code.userIdStatus, code.userCode?.length ?? 0],
1623
1618
  (0, import_shared.isUint8Array)(code.userCode) ? code.userCode : import_shared.Bytes.from(code.userCode ?? "", "ascii")
1624
1619
  ]);
1625
1620
  ret.writeUInt16BE(code.userId, 0);
@@ -1697,6 +1692,30 @@ let UserCodeCCExtendedUserCodeReport = (() => {
1697
1692
  }
1698
1693
  userCodes;
1699
1694
  nextUserId;
1695
+ serialize(ctx) {
1696
+ if (this.userCodes.length > 255) {
1697
+ throw new import_core.ZWaveError("An extended user code report can contain at most 255 codes", import_core.ZWaveErrorCodes.Argument_Invalid);
1698
+ }
1699
+ const codes = this.userCodes.map((code) => {
1700
+ const userCode = import_shared.Bytes.from(code.userCode, "ascii");
1701
+ if (userCode.length > 15) {
1702
+ throw new import_core.ZWaveError("User codes must not be longer than 15 characters", import_core.ZWaveErrorCodes.Argument_Invalid);
1703
+ }
1704
+ const buffer = import_shared.Bytes.concat([
1705
+ [0, 0, code.userIdStatus, userCode.length],
1706
+ userCode
1707
+ ]);
1708
+ buffer.writeUInt16BE(code.userId, 0);
1709
+ return buffer;
1710
+ });
1711
+ this.payload = import_shared.Bytes.concat([
1712
+ [this.userCodes.length],
1713
+ ...codes,
1714
+ [0, 0]
1715
+ ]);
1716
+ this.payload.writeUInt16BE(this.nextUserId, this.payload.length - 2);
1717
+ return super.serialize(ctx);
1718
+ }
1700
1719
  toLogEntry(ctx) {
1701
1720
  const message = {};
1702
1721
  for (const { userId, userIdStatus, userCode } of this.userCodes) {
@@ -1736,8 +1755,13 @@ let UserCodeCCExtendedUserCodeGet = (() => {
1736
1755
  this.userId = options.userId;
1737
1756
  this.reportMore = !!options.reportMore;
1738
1757
  }
1739
- static from(_raw, _ctx) {
1740
- throw new import_core.ZWaveError(`${this.name}: deserialization not implemented`, import_core.ZWaveErrorCodes.Deserialization_NotImplemented);
1758
+ static from(raw, ctx) {
1759
+ (0, import_core.validatePayload)(raw.payload.length >= 3);
1760
+ return new this({
1761
+ nodeId: ctx.sourceNodeId,
1762
+ userId: raw.payload.readUInt16BE(0),
1763
+ reportMore: !!(raw.payload[2] & 1)
1764
+ });
1741
1765
  }
1742
1766
  userId;
1743
1767
  reportMore;