@zwave-js/cc 14.3.7 → 14.3.8-0-pr-7581-401b2ca

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 (451) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +139 -57
  2. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  3. package/build/cjs/cc/AssociationCC.d.ts +178 -43
  4. package/build/cjs/cc/AssociationCC.js +0 -4
  5. package/build/cjs/cc/AssociationCC.js.map +2 -2
  6. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +138 -38
  7. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  8. package/build/cjs/cc/BarrierOperatorCC.d.ts +275 -73
  9. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  10. package/build/cjs/cc/BasicCC.d.ts +316 -71
  11. package/build/cjs/cc/BasicCC.js.map +2 -2
  12. package/build/cjs/cc/BatteryCC.d.ts +759 -164
  13. package/build/cjs/cc/BatteryCC.js.map +2 -2
  14. package/build/cjs/cc/BinarySensorCC.d.ts +91 -26
  15. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  16. package/build/cjs/cc/BinarySwitchCC.d.ts +190 -38
  17. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  18. package/build/cjs/cc/CRC16CC.d.ts +4 -8
  19. package/build/cjs/cc/CRC16CC.js +4 -27
  20. package/build/cjs/cc/CRC16CC.js.map +2 -2
  21. package/build/cjs/cc/CentralSceneCC.d.ts +272 -53
  22. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  23. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +150 -37
  24. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  25. package/build/cjs/cc/ClockCC.d.ts +3 -3
  26. package/build/cjs/cc/ClockCC.js.map +2 -2
  27. package/build/cjs/cc/ColorSwitchCC.d.ts +423 -96
  28. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  29. package/build/cjs/cc/ConfigurationCC.d.ts +101 -37
  30. package/build/cjs/cc/ConfigurationCC.js +0 -8
  31. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  32. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +1 -1
  33. package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
  34. package/build/cjs/cc/DoorLockCC.d.ts +1731 -419
  35. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  36. package/build/cjs/cc/DoorLockLoggingCC.d.ts +64 -12
  37. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  38. package/build/cjs/cc/EnergyProductionCC.d.ts +29 -14
  39. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  40. package/build/cjs/cc/EntryControlCC.d.ts +308 -57
  41. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  42. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  43. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +26 -0
  44. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  45. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +389 -64
  46. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +154 -8
  47. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  48. package/build/cjs/cc/HumidityControlModeCC.d.ts +125 -27
  49. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  50. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +64 -18
  51. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  52. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +116 -39
  53. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  54. package/build/cjs/cc/InclusionControllerCC.d.ts +4 -4
  55. package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
  56. package/build/cjs/cc/IndicatorCC.d.ts +325 -83
  57. package/build/cjs/cc/IndicatorCC.js +0 -3
  58. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  59. package/build/cjs/cc/IrrigationCC.d.ts +2170 -683
  60. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  61. package/build/cjs/cc/LanguageCC.d.ts +128 -26
  62. package/build/cjs/cc/LanguageCC.js.map +2 -2
  63. package/build/cjs/cc/LockCC.d.ts +64 -14
  64. package/build/cjs/cc/LockCC.js.map +2 -2
  65. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
  66. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  67. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +219 -57
  68. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  69. package/build/cjs/cc/MeterCC.d.ts +364 -89
  70. package/build/cjs/cc/MeterCC.js.map +2 -2
  71. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +138 -40
  72. package/build/cjs/cc/MultiChannelAssociationCC.js +0 -5
  73. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  74. package/build/cjs/cc/MultiChannelCC.d.ts +469 -99
  75. package/build/cjs/cc/MultiChannelCC.js +8 -72
  76. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  77. package/build/cjs/cc/MultiCommandCC.d.ts +4 -8
  78. package/build/cjs/cc/MultiCommandCC.js +4 -37
  79. package/build/cjs/cc/MultiCommandCC.js.map +2 -2
  80. package/build/cjs/cc/MultilevelSensorCC.d.ts +118 -33
  81. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  82. package/build/cjs/cc/MultilevelSwitchCC.d.ts +490 -125
  83. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  84. package/build/cjs/cc/NodeNamingCC.d.ts +128 -26
  85. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  86. package/build/cjs/cc/NotificationCC.d.ts +603 -161
  87. package/build/cjs/cc/NotificationCC.js +12 -1
  88. package/build/cjs/cc/NotificationCC.js.map +2 -2
  89. package/build/cjs/cc/PowerlevelCC.d.ts +6 -6
  90. package/build/cjs/cc/PowerlevelCC.js.map +2 -2
  91. package/build/cjs/cc/ProtectionCC.d.ts +496 -94
  92. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  93. package/build/cjs/cc/SceneActivationCC.d.ts +127 -28
  94. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  95. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +52 -25
  96. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  97. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +53 -25
  98. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  99. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +268 -64
  100. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  101. package/build/cjs/cc/Security2CC.d.ts +15 -21
  102. package/build/cjs/cc/Security2CC.js +35 -347
  103. package/build/cjs/cc/Security2CC.js.map +3 -3
  104. package/build/cjs/cc/SecurityCC.d.ts +12 -19
  105. package/build/cjs/cc/SecurityCC.js +12 -106
  106. package/build/cjs/cc/SecurityCC.js.map +2 -2
  107. package/build/cjs/cc/SoundSwitchCC.d.ts +253 -64
  108. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  109. package/build/cjs/cc/SupervisionCC.d.ts +28 -16
  110. package/build/cjs/cc/SupervisionCC.js +4 -29
  111. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  112. package/build/cjs/cc/ThermostatFanModeCC.d.ts +187 -38
  113. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  114. package/build/cjs/cc/ThermostatFanStateCC.d.ts +64 -18
  115. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  116. package/build/cjs/cc/ThermostatModeCC.d.ts +189 -40
  117. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  118. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +65 -19
  119. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  120. package/build/cjs/cc/ThermostatSetbackCC.d.ts +4 -4
  121. package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
  122. package/build/cjs/cc/ThermostatSetpointCC.d.ts +116 -36
  123. package/build/cjs/cc/ThermostatSetpointCC.js +1 -0
  124. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  125. package/build/cjs/cc/TimeCC.d.ts +6 -6
  126. package/build/cjs/cc/TimeCC.js.map +2 -2
  127. package/build/cjs/cc/TimeParametersCC.d.ts +63 -12
  128. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  129. package/build/cjs/cc/TransportServiceCC.d.ts +7 -12
  130. package/build/cjs/cc/TransportServiceCC.js +3 -20
  131. package/build/cjs/cc/TransportServiceCC.js.map +2 -2
  132. package/build/cjs/cc/UserCodeCC.d.ts +931 -176
  133. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  134. package/build/cjs/cc/VersionCC.d.ts +897 -185
  135. package/build/cjs/cc/VersionCC.js.map +2 -2
  136. package/build/cjs/cc/WakeUpCC.d.ts +190 -38
  137. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  138. package/build/cjs/cc/WindowCoveringCC.d.ts +193 -103
  139. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  140. package/build/cjs/cc/ZWavePlusCC.d.ts +311 -51
  141. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  142. package/build/cjs/cc/ZWaveProtocolCC.d.ts +28 -28
  143. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  144. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  145. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
  146. package/build/cjs/index.d.ts +1 -0
  147. package/build/cjs/index.js.map +1 -1
  148. package/build/cjs/index_browser.d.ts +9 -0
  149. package/build/cjs/index_browser.js +41 -1
  150. package/build/cjs/index_browser.js.map +2 -2
  151. package/build/cjs/lib/API.d.ts +7 -5
  152. package/build/cjs/lib/API.js +1 -1
  153. package/build/cjs/lib/API.js.map +2 -2
  154. package/build/cjs/lib/CommandClass.d.ts +10 -21
  155. package/build/cjs/lib/CommandClass.js +51 -106
  156. package/build/cjs/lib/CommandClass.js.map +3 -3
  157. package/build/cjs/lib/CommandClassDecorators.d.ts +1 -1
  158. package/build/cjs/lib/CommandClassDecorators.js +3 -3
  159. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  160. package/build/cjs/lib/Values.d.ts +2 -2
  161. package/build/cjs/lib/Values.js.map +2 -2
  162. package/build/cjs/lib/traits.d.ts +94 -0
  163. package/build/cjs/lib/traits.js +17 -0
  164. package/build/cjs/lib/traits.js.map +7 -0
  165. package/build/cjs/lib/utils.d.ts +2 -2
  166. package/build/cjs/lib/utils.js.map +2 -2
  167. package/build/esm/cc/AlarmSensorCC.d.ts +139 -57
  168. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  169. package/build/esm/cc/AlarmSensorCC.js +0 -1
  170. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  171. package/build/esm/cc/AssociationCC.d.ts +178 -43
  172. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  173. package/build/esm/cc/AssociationCC.js +0 -13
  174. package/build/esm/cc/AssociationCC.js.map +1 -1
  175. package/build/esm/cc/AssociationGroupInfoCC.d.ts +138 -38
  176. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  177. package/build/esm/cc/AssociationGroupInfoCC.js +0 -6
  178. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  179. package/build/esm/cc/BarrierOperatorCC.d.ts +275 -73
  180. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  181. package/build/esm/cc/BarrierOperatorCC.js +0 -3
  182. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  183. package/build/esm/cc/BasicCC.d.ts +316 -71
  184. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  185. package/build/esm/cc/BasicCC.js +0 -2
  186. package/build/esm/cc/BasicCC.js.map +1 -1
  187. package/build/esm/cc/BatteryCC.d.ts +759 -164
  188. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  189. package/build/esm/cc/BatteryCC.js +1 -2
  190. package/build/esm/cc/BatteryCC.js.map +1 -1
  191. package/build/esm/cc/BinarySensorCC.d.ts +91 -26
  192. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  193. package/build/esm/cc/BinarySensorCC.js +0 -3
  194. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  195. package/build/esm/cc/BinarySwitchCC.d.ts +190 -38
  196. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  197. package/build/esm/cc/BinarySwitchCC.js +0 -2
  198. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  199. package/build/esm/cc/CRC16CC.d.ts +4 -8
  200. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  201. package/build/esm/cc/CRC16CC.js +4 -34
  202. package/build/esm/cc/CRC16CC.js.map +1 -1
  203. package/build/esm/cc/CentralSceneCC.d.ts +272 -53
  204. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  205. package/build/esm/cc/CentralSceneCC.js +0 -1
  206. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  207. package/build/esm/cc/ClimateControlScheduleCC.d.ts +150 -37
  208. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  209. package/build/esm/cc/ClimateControlScheduleCC.js +0 -3
  210. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  211. package/build/esm/cc/ClockCC.d.ts +3 -3
  212. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  213. package/build/esm/cc/ClockCC.js +0 -1
  214. package/build/esm/cc/ClockCC.js.map +1 -1
  215. package/build/esm/cc/ColorSwitchCC.d.ts +423 -96
  216. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  217. package/build/esm/cc/ColorSwitchCC.js +0 -6
  218. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  219. package/build/esm/cc/ConfigurationCC.d.ts +101 -37
  220. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  221. package/build/esm/cc/ConfigurationCC.js +0 -25
  222. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  223. package/build/esm/cc/DeviceResetLocallyCC.d.ts +1 -1
  224. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  225. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  226. package/build/esm/cc/DoorLockCC.d.ts +1731 -419
  227. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  228. package/build/esm/cc/DoorLockCC.js +0 -2
  229. package/build/esm/cc/DoorLockCC.js.map +1 -1
  230. package/build/esm/cc/DoorLockLoggingCC.d.ts +64 -12
  231. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  232. package/build/esm/cc/DoorLockLoggingCC.js +0 -1
  233. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  234. package/build/esm/cc/EnergyProductionCC.d.ts +29 -14
  235. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  236. package/build/esm/cc/EnergyProductionCC.js +0 -2
  237. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  238. package/build/esm/cc/EntryControlCC.d.ts +308 -57
  239. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  240. package/build/esm/cc/EntryControlCC.js +0 -1
  241. package/build/esm/cc/EntryControlCC.js.map +1 -1
  242. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  243. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
  244. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +20 -0
  245. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  246. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +389 -64
  247. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  248. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +158 -30
  249. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  250. package/build/esm/cc/HumidityControlModeCC.d.ts +125 -27
  251. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  252. package/build/esm/cc/HumidityControlModeCC.js +0 -1
  253. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  254. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +64 -18
  255. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  256. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  257. package/build/esm/cc/HumidityControlSetpointCC.d.ts +116 -39
  258. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  259. package/build/esm/cc/HumidityControlSetpointCC.js +0 -4
  260. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  261. package/build/esm/cc/InclusionControllerCC.d.ts +4 -4
  262. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  263. package/build/esm/cc/InclusionControllerCC.js +0 -2
  264. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  265. package/build/esm/cc/IndicatorCC.d.ts +325 -83
  266. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  267. package/build/esm/cc/IndicatorCC.js +0 -10
  268. package/build/esm/cc/IndicatorCC.js.map +1 -1
  269. package/build/esm/cc/IrrigationCC.d.ts +2170 -683
  270. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  271. package/build/esm/cc/IrrigationCC.js +0 -9
  272. package/build/esm/cc/IrrigationCC.js.map +1 -1
  273. package/build/esm/cc/LanguageCC.d.ts +128 -26
  274. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  275. package/build/esm/cc/LanguageCC.js +0 -1
  276. package/build/esm/cc/LanguageCC.js.map +1 -1
  277. package/build/esm/cc/LockCC.d.ts +64 -14
  278. package/build/esm/cc/LockCC.d.ts.map +1 -1
  279. package/build/esm/cc/LockCC.js +0 -1
  280. package/build/esm/cc/LockCC.js.map +1 -1
  281. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
  282. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  283. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
  284. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  285. package/build/esm/cc/ManufacturerSpecificCC.d.ts +219 -57
  286. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  287. package/build/esm/cc/ManufacturerSpecificCC.js +0 -2
  288. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  289. package/build/esm/cc/MeterCC.d.ts +364 -89
  290. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  291. package/build/esm/cc/MeterCC.js +0 -4
  292. package/build/esm/cc/MeterCC.js.map +1 -1
  293. package/build/esm/cc/MultiChannelAssociationCC.d.ts +138 -40
  294. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  295. package/build/esm/cc/MultiChannelAssociationCC.js +0 -16
  296. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  297. package/build/esm/cc/MultiChannelCC.d.ts +469 -99
  298. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  299. package/build/esm/cc/MultiChannelCC.js +8 -101
  300. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  301. package/build/esm/cc/MultiCommandCC.d.ts +4 -8
  302. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  303. package/build/esm/cc/MultiCommandCC.js +4 -38
  304. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  305. package/build/esm/cc/MultilevelSensorCC.d.ts +118 -33
  306. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  307. package/build/esm/cc/MultilevelSensorCC.js +0 -5
  308. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  309. package/build/esm/cc/MultilevelSwitchCC.d.ts +490 -125
  310. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  311. package/build/esm/cc/MultilevelSwitchCC.js +0 -4
  312. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  313. package/build/esm/cc/NodeNamingCC.d.ts +128 -26
  314. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  315. package/build/esm/cc/NodeNamingCC.js +0 -2
  316. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  317. package/build/esm/cc/NotificationCC.d.ts +603 -161
  318. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  319. package/build/esm/cc/NotificationCC.js +17 -11
  320. package/build/esm/cc/NotificationCC.js.map +1 -1
  321. package/build/esm/cc/PowerlevelCC.d.ts +6 -6
  322. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  323. package/build/esm/cc/PowerlevelCC.js +0 -4
  324. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  325. package/build/esm/cc/ProtectionCC.d.ts +496 -94
  326. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  327. package/build/esm/cc/ProtectionCC.js +0 -3
  328. package/build/esm/cc/ProtectionCC.js.map +1 -1
  329. package/build/esm/cc/SceneActivationCC.d.ts +127 -28
  330. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  331. package/build/esm/cc/SceneActivationCC.js +0 -1
  332. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  333. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +52 -25
  334. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  335. package/build/esm/cc/SceneActuatorConfigurationCC.js +0 -2
  336. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  337. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +53 -25
  338. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  339. package/build/esm/cc/SceneControllerConfigurationCC.js +0 -2
  340. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  341. package/build/esm/cc/ScheduleEntryLockCC.d.ts +268 -64
  342. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  343. package/build/esm/cc/ScheduleEntryLockCC.js +0 -14
  344. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  345. package/build/esm/cc/Security2CC.d.ts +15 -21
  346. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  347. package/build/esm/cc/Security2CC.js +31 -475
  348. package/build/esm/cc/Security2CC.js.map +1 -1
  349. package/build/esm/cc/SecurityCC.d.ts +12 -19
  350. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  351. package/build/esm/cc/SecurityCC.js +13 -138
  352. package/build/esm/cc/SecurityCC.js.map +1 -1
  353. package/build/esm/cc/SoundSwitchCC.d.ts +253 -64
  354. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  355. package/build/esm/cc/SoundSwitchCC.js +0 -7
  356. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  357. package/build/esm/cc/SupervisionCC.d.ts +28 -16
  358. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  359. package/build/esm/cc/SupervisionCC.js +4 -34
  360. package/build/esm/cc/SupervisionCC.js.map +1 -1
  361. package/build/esm/cc/ThermostatFanModeCC.d.ts +187 -38
  362. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  363. package/build/esm/cc/ThermostatFanModeCC.js +0 -1
  364. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  365. package/build/esm/cc/ThermostatFanStateCC.d.ts +64 -18
  366. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  367. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  368. package/build/esm/cc/ThermostatModeCC.d.ts +189 -40
  369. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  370. package/build/esm/cc/ThermostatModeCC.js +0 -3
  371. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  372. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +65 -19
  373. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  374. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  375. package/build/esm/cc/ThermostatSetbackCC.d.ts +4 -4
  376. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  377. package/build/esm/cc/ThermostatSetbackCC.js +0 -2
  378. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  379. package/build/esm/cc/ThermostatSetpointCC.d.ts +116 -36
  380. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  381. package/build/esm/cc/ThermostatSetpointCC.js +2 -6
  382. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  383. package/build/esm/cc/TimeCC.d.ts +6 -6
  384. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  385. package/build/esm/cc/TimeCC.js +0 -4
  386. package/build/esm/cc/TimeCC.js.map +1 -1
  387. package/build/esm/cc/TimeParametersCC.d.ts +63 -12
  388. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  389. package/build/esm/cc/TimeParametersCC.js +0 -1
  390. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  391. package/build/esm/cc/TransportServiceCC.d.ts +7 -12
  392. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  393. package/build/esm/cc/TransportServiceCC.js +5 -38
  394. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  395. package/build/esm/cc/UserCodeCC.d.ts +931 -176
  396. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  397. package/build/esm/cc/UserCodeCC.js +0 -12
  398. package/build/esm/cc/UserCodeCC.js.map +1 -1
  399. package/build/esm/cc/VersionCC.d.ts +897 -185
  400. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  401. package/build/esm/cc/VersionCC.js +0 -4
  402. package/build/esm/cc/VersionCC.js.map +1 -1
  403. package/build/esm/cc/WakeUpCC.d.ts +190 -38
  404. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  405. package/build/esm/cc/WakeUpCC.js +0 -1
  406. package/build/esm/cc/WakeUpCC.js.map +1 -1
  407. package/build/esm/cc/WindowCoveringCC.d.ts +193 -103
  408. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  409. package/build/esm/cc/WindowCoveringCC.js +0 -5
  410. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  411. package/build/esm/cc/ZWavePlusCC.d.ts +311 -51
  412. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  413. package/build/esm/cc/ZWavePlusCC.js +0 -1
  414. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  415. package/build/esm/cc/ZWaveProtocolCC.d.ts +28 -28
  416. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  417. package/build/esm/cc/ZWaveProtocolCC.js +0 -27
  418. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  419. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  420. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  421. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +0 -3
  422. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  423. package/build/esm/index.d.ts +1 -0
  424. package/build/esm/index.d.ts.map +1 -1
  425. package/build/esm/index_browser.d.ts +9 -0
  426. package/build/esm/index_browser.d.ts.map +1 -1
  427. package/build/esm/index_browser.js +8 -1
  428. package/build/esm/index_browser.js.map +1 -1
  429. package/build/esm/lib/API.d.ts +7 -5
  430. package/build/esm/lib/API.d.ts.map +1 -1
  431. package/build/esm/lib/API.js +1 -1
  432. package/build/esm/lib/API.js.map +1 -1
  433. package/build/esm/lib/CommandClass.d.ts +10 -21
  434. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  435. package/build/esm/lib/CommandClass.js +8 -101
  436. package/build/esm/lib/CommandClass.js.map +1 -1
  437. package/build/esm/lib/CommandClassDecorators.d.ts +1 -1
  438. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  439. package/build/esm/lib/CommandClassDecorators.js +1 -1
  440. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  441. package/build/esm/lib/Values.d.ts +2 -2
  442. package/build/esm/lib/Values.d.ts.map +1 -1
  443. package/build/esm/lib/Values.js.map +1 -1
  444. package/build/esm/lib/traits.d.ts +94 -0
  445. package/build/esm/lib/traits.d.ts.map +1 -0
  446. package/build/esm/lib/traits.js +2 -0
  447. package/build/esm/lib/traits.js.map +1 -0
  448. package/build/esm/lib/utils.d.ts +2 -2
  449. package/build/esm/lib/utils.d.ts.map +1 -1
  450. package/build/esm/lib/utils.js.map +1 -1
  451. package/package.json +12 -11
@@ -1,5 +1,5 @@
1
- import { type MessageOrCCLogEntry, type SinglecastCC, type WithAddress } from "@zwave-js/core/safe";
2
- import type { CCEncodingContext, CCParsingContext, GetValueDB } from "@zwave-js/host/safe";
1
+ import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
+ import { type GetValueDB, type MessageOrCCLogEntry, type SinglecastCC, type WithAddress } from "@zwave-js/core/safe";
3
3
  import { Bytes } from "@zwave-js/shared/safe";
4
4
  import { type CCRaw, CommandClass } from "../lib/CommandClass.js";
5
5
  import { TransportServiceCommand } from "../lib/_Types.js";
@@ -40,7 +40,7 @@ export declare class TransportServiceCCFirstSegment extends TransportServiceCC {
40
40
  headerExtension: Uint8Array | undefined;
41
41
  partialDatagram: Uint8Array;
42
42
  encapsulated: CommandClass;
43
- serialize(ctx: CCEncodingContext): Bytes;
43
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
44
44
  expectMoreMessages(): boolean;
45
45
  getPartialCCSessionId(): Record<string, any> | undefined;
46
46
  protected computeEncapsulationOverhead(): number;
@@ -64,16 +64,11 @@ export declare class TransportServiceCCSubsequentSegment extends TransportServic
64
64
  ...TransportServiceCCSubsequentSegment[]
65
65
  ]): boolean;
66
66
  getPartialCCSessionId(): Record<string, any> | undefined;
67
- /** @deprecated Use {@link mergePartialCCsAsync} instead */
68
67
  mergePartialCCs(partials: [
69
68
  TransportServiceCCFirstSegment,
70
69
  ...TransportServiceCCSubsequentSegment[]
71
- ], ctx: CCParsingContext): void;
72
- mergePartialCCsAsync(partials: [
73
- TransportServiceCCFirstSegment,
74
- ...TransportServiceCCSubsequentSegment[]
75
70
  ], ctx: CCParsingContext): Promise<void>;
76
- serialize(ctx: CCEncodingContext): Bytes;
71
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
77
72
  protected computeEncapsulationOverhead(): number;
78
73
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
79
74
  }
@@ -86,7 +81,7 @@ export declare class TransportServiceCCSegmentRequest extends TransportServiceCC
86
81
  static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentRequest;
87
82
  sessionId: number;
88
83
  datagramOffset: number;
89
- serialize(ctx: CCEncodingContext): Bytes;
84
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
90
85
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
91
86
  }
92
87
  export interface TransportServiceCCSegmentCompleteOptions {
@@ -96,7 +91,7 @@ export declare class TransportServiceCCSegmentComplete extends TransportServiceC
96
91
  constructor(options: WithAddress<TransportServiceCCSegmentCompleteOptions>);
97
92
  static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentComplete;
98
93
  sessionId: number;
99
- serialize(ctx: CCEncodingContext): Bytes;
94
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
100
95
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
101
96
  }
102
97
  export interface TransportServiceCCSegmentWaitOptions {
@@ -106,7 +101,7 @@ export declare class TransportServiceCCSegmentWait extends TransportServiceCC {
106
101
  constructor(options: WithAddress<TransportServiceCCSegmentWaitOptions>);
107
102
  static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentWait;
108
103
  pendingSegments: number;
109
- serialize(ctx: CCEncodingContext): Bytes;
104
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
110
105
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
111
106
  }
112
107
  //# sourceMappingURL=TransportServiceCC.d.ts.map
@@ -320,8 +320,7 @@ let TransportServiceCCSubsequentSegment = (() => {
320
320
  getPartialCCSessionId() {
321
321
  return { ccCommand: void 0, sessionId: this.sessionId };
322
322
  }
323
- /** @deprecated Use {@link mergePartialCCsAsync} instead */
324
- mergePartialCCs(partials, ctx) {
323
+ async mergePartialCCs(partials, ctx) {
325
324
  const datagram = new import_safe2.Bytes(this.datagramSize);
326
325
  for (const partial of [...partials, this]) {
327
326
  const offset = partial instanceof TransportServiceCCFirstSegment ? 0 : partial.datagramOffset;
@@ -330,19 +329,7 @@ let TransportServiceCCSubsequentSegment = (() => {
330
329
  }
331
330
  datagram.set(partial.partialDatagram, offset);
332
331
  }
333
- this._encapsulated = import_CommandClass.CommandClass.parse(datagram, ctx);
334
- this._encapsulated.encapsulatingCC = this;
335
- }
336
- async mergePartialCCsAsync(partials, ctx) {
337
- const datagram = new import_safe2.Bytes(this.datagramSize);
338
- for (const partial of [...partials, this]) {
339
- const offset = partial instanceof TransportServiceCCFirstSegment ? 0 : partial.datagramOffset;
340
- if (offset + partial.partialDatagram.length > datagram.length) {
341
- throw new import_safe.ZWaveError(`The partial datagram offset and length in a segment are not compatible to the communicated datagram length`, import_safe.ZWaveErrorCodes.PacketFormat_InvalidPayload);
342
- }
343
- datagram.set(partial.partialDatagram, offset);
344
- }
345
- this._encapsulated = await import_CommandClass.CommandClass.parseAsync(datagram, ctx);
332
+ this._encapsulated = await import_CommandClass.CommandClass.parse(datagram, ctx);
346
333
  this._encapsulated.encapsulatingCC = this;
347
334
  }
348
335
  serialize(ctx) {
@@ -389,12 +376,8 @@ let TransportServiceCCSubsequentSegment = (() => {
389
376
  };
390
377
  return TransportServiceCCSubsequentSegment2 = _classThis;
391
378
  })();
392
- function testResponseForSegmentRequest(sent, received) {
393
- return sent.datagramOffset === 0 && received instanceof TransportServiceCCFirstSegment && received.sessionId === sent.sessionId || sent.datagramOffset > 0 && received instanceof TransportServiceCCSubsequentSegment && sent.datagramOffset === received.datagramOffset && received.sessionId === sent.sessionId;
394
- }
395
- __name(testResponseForSegmentRequest, "testResponseForSegmentRequest");
396
379
  let TransportServiceCCSegmentRequest = (() => {
397
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.TransportServiceCommand.SegmentRequest), (0, import_CommandClassDecorators.expectedCCResponse)(TransportServiceCC, testResponseForSegmentRequest)];
380
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.TransportServiceCommand.SegmentRequest)];
398
381
  let _classDescriptor;
399
382
  let _classExtraInitializers = [];
400
383
  let _classThis;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/TransportServiceCC.ts"],
4
- "sourcesContent": ["import {\n\tCRC16_CCITT,\n\tCommandClasses,\n\ttype MessageOrCCLogEntry,\n\ttype SinglecastCC,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { buffer2hex } from \"@zwave-js/shared/safe\";\nimport {\n\ttype CCRaw,\n\ttype CCResponseRole,\n\tCommandClass,\n} from \"../lib/CommandClass.js\";\nimport {\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { TransportServiceCommand } from \"../lib/_Types.js\";\n\nexport const MAX_SEGMENT_SIZE = 39;\n\nexport const RELAXED_TIMING_THRESHOLD = 2;\n\n// TODO: Figure out how we know if communicating with R2 or R3\n/** @publicAPI */\nexport const TransportServiceTimeouts = {\n\t/** Waiting time before requesting a missing segment at data rate R2 */\n\trequestMissingSegmentR2: 800,\n\t/** Waiting time before requesting a missing segment at data rate R3 */\n\trequestMissingSegmentR3: 400,\n\t/** Waiting time before sending another datagram at data rate R2 */\n\tsegmentCompleteR2: 1000,\n\t/** Waiting time before sending another datagram at data rate R3 */\n\tsegmentCompleteR3: 500,\n\t/** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R2 */\n\trelaxedTimingDelayR2: 35,\n\t/** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R3 */\n\trelaxedTimingDelayR3: 15,\n};\n\n@commandClass(CommandClasses[\"Transport Service\"])\n@implementedVersion(2)\nexport class TransportServiceCC extends CommandClass\n\timplements SinglecastCC<TransportServiceCC>\n{\n\tdeclare ccCommand: TransportServiceCommand;\n\tdeclare nodeId: number;\n}\n\n// @publicAPI\nexport interface TransportServiceCCFirstSegmentOptions {\n\tdatagramSize: number;\n\tsessionId: number;\n\theaderExtension?: Uint8Array | undefined;\n\tpartialDatagram: Uint8Array;\n}\n\n/** @publicAPI */\nexport function isTransportServiceEncapsulation(\n\tcommand: CommandClass,\n): command is\n\t| TransportServiceCCFirstSegment\n\t| TransportServiceCCSubsequentSegment\n{\n\treturn (\n\t\tcommand.ccId === CommandClasses[\"Transport Service\"]\n\t\t&& (command.ccCommand === TransportServiceCommand.FirstSegment\n\t\t\t|| command.ccCommand === TransportServiceCommand.SubsequentSegment)\n\t);\n}\n\n@CCCommand(TransportServiceCommand.FirstSegment)\n// @expectedCCResponse(TransportServiceCCReport)\nexport class TransportServiceCCFirstSegment extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCFirstSegmentOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.datagramSize = options.datagramSize;\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.headerExtension = options.headerExtension;\n\t\tthis.partialDatagram = options.partialDatagram;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCFirstSegment {\n\t\t// Deserialization has already split the datagram size from the ccCommand.\n\t\t// Therefore we have one more payload byte\n\n\t\tvalidatePayload(raw.payload.length >= 6); // 2 bytes dgram size, 1 byte sessid/ext, 1+ bytes payload, 2 bytes checksum\n\n\t\t// Verify the CRC\n\t\tconst headerBuffer = Bytes.from([\n\t\t\tCommandClasses[\"Transport Service\"],\n\t\t\tTransportServiceCommand.FirstSegment | raw.payload[0],\n\t\t]);\n\t\tconst ccBuffer = raw.payload.subarray(1, -2);\n\t\tlet expectedCRC = CRC16_CCITT(headerBuffer);\n\t\texpectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n\t\tconst actualCRC = raw.payload.readUInt16BE(\n\t\t\traw.payload.length - 2,\n\t\t);\n\t\tvalidatePayload(expectedCRC === actualCRC);\n\t\tconst datagramSize = raw.payload.readUInt16BE(0);\n\t\tconst sessionId = raw.payload[2] >>> 4;\n\t\tlet payloadOffset = 3;\n\n\t\t// If there is a header extension, read it\n\t\tconst hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n\t\tlet headerExtension: Uint8Array | undefined;\n\n\t\tif (hasHeaderExtension) {\n\t\t\tconst extLength = raw.payload[3];\n\t\t\theaderExtension = raw.payload.subarray(4, 4 + extLength);\n\t\t\tpayloadOffset += 1 + extLength;\n\t\t}\n\t\tconst partialDatagram: Uint8Array = raw.payload.subarray(\n\t\t\tpayloadOffset,\n\t\t\t-2,\n\t\t);\n\n\t\t// A node supporting the Transport Service Command Class, version 2\n\t\t// MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n\t\tvalidatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tdatagramSize,\n\t\t\tsessionId,\n\t\t\theaderExtension,\n\t\t\tpartialDatagram,\n\t\t});\n\t}\n\n\tpublic datagramSize: number;\n\tpublic sessionId: number;\n\tpublic headerExtension: Uint8Array | undefined;\n\tpublic partialDatagram: Uint8Array;\n\tpublic encapsulated!: CommandClass;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\t// Transport Service re-uses the lower 3 bits of the ccCommand as payload\n\t\tthis.ccCommand = (this.ccCommand & 0b11111_000)\n\t\t\t| ((this.datagramSize >>> 8) & 0b111);\n\n\t\tconst ext = !!this.headerExtension && this.headerExtension.length >= 1;\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.datagramSize & 0xff,\n\t\t\t((this.sessionId & 0b1111) << 4) | (ext ? 0b1000 : 0),\n\t\t]);\n\t\tif (ext) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from([this.headerExtension!.length]),\n\t\t\t\tthis.headerExtension!,\n\t\t\t]);\n\t\t}\n\t\tthis.payload = Bytes.concat([\n\t\t\tthis.payload,\n\t\t\tthis.partialDatagram,\n\t\t\tBytes.alloc(2, 0), // checksum\n\t\t]);\n\n\t\t// Compute and save the CRC16 in the payload\n\t\t// The CC header is included in the CRC computation\n\t\tconst headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n\t\tlet crc = CRC16_CCITT(headerBuffer);\n\t\tcrc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n\t\t// Write the checksum into the last two bytes of the payload\n\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic expectMoreMessages(): boolean {\n\t\treturn true; // The FirstSegment message always expects more messages\n\t}\n\n\tpublic getPartialCCSessionId(): Record<string, any> | undefined {\n\t\t// Only use the session ID to identify the session, not the CC command\n\t\treturn { ccCommand: undefined, sessionId: this.sessionId };\n\t}\n\n\tprotected computeEncapsulationOverhead(): number {\n\t\t// 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\t\treturn (\n\t\t\tsuper.computeEncapsulationOverhead()\n\t\t\t+ 4\n\t\t\t+ (this.headerExtension?.length\n\t\t\t\t? 1 + this.headerExtension.length\n\t\t\t\t: 0)\n\t\t);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"session ID\": this.sessionId,\n\t\t\t\t\"datagram size\": this.datagramSize,\n\t\t\t\t\"byte range\": `0...${this.partialDatagram.length - 1}`,\n\t\t\t\tpayload: buffer2hex(this.partialDatagram),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TransportServiceCCSubsequentSegmentOptions\n\textends TransportServiceCCFirstSegmentOptions\n{\n\tdatagramOffset: number;\n}\n\n@CCCommand(TransportServiceCommand.SubsequentSegment)\n// @expectedCCResponse(TransportServiceCCReport)\nexport class TransportServiceCCSubsequentSegment extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCSubsequentSegmentOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.datagramSize = options.datagramSize;\n\t\tthis.datagramOffset = options.datagramOffset;\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.headerExtension = options.headerExtension;\n\t\tthis.partialDatagram = options.partialDatagram;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCSubsequentSegment {\n\t\t// Deserialization has already split the datagram size from the ccCommand.\n\t\t// Therefore we have one more payload byte\n\n\t\tvalidatePayload(raw.payload.length >= 7); // 2 bytes dgram size, 1 byte sessid/ext/offset, 1 byte offset, 1+ bytes payload, 2 bytes checksum\n\n\t\t// Verify the CRC\n\t\tconst headerBuffer = Bytes.from([\n\t\t\tCommandClasses[\"Transport Service\"],\n\t\t\tTransportServiceCommand.SubsequentSegment | raw.payload[0],\n\t\t]);\n\t\tconst ccBuffer = raw.payload.subarray(1, -2);\n\t\tlet expectedCRC = CRC16_CCITT(headerBuffer);\n\t\texpectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n\t\tconst actualCRC = raw.payload.readUInt16BE(\n\t\t\traw.payload.length - 2,\n\t\t);\n\t\tvalidatePayload(expectedCRC === actualCRC);\n\t\tconst datagramSize = raw.payload.readUInt16BE(0);\n\t\tconst sessionId = raw.payload[2] >>> 4;\n\t\tconst datagramOffset = ((raw.payload[2] & 0b111) << 8)\n\t\t\t+ raw.payload[3];\n\t\tlet payloadOffset = 4;\n\n\t\t// If there is a header extension, read it\n\t\tconst hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n\t\tlet headerExtension: Bytes | undefined;\n\n\t\tif (hasHeaderExtension) {\n\t\t\tconst extLength = raw.payload[4];\n\t\t\theaderExtension = raw.payload.subarray(5, 5 + extLength);\n\t\t\tpayloadOffset += 1 + extLength;\n\t\t}\n\t\tconst partialDatagram: Bytes = raw.payload.subarray(payloadOffset, -2);\n\n\t\t// A node supporting the Transport Service Command Class, version 2\n\t\t// MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n\t\tvalidatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tdatagramSize,\n\t\t\tsessionId,\n\t\t\tdatagramOffset,\n\t\t\theaderExtension,\n\t\t\tpartialDatagram,\n\t\t});\n\t}\n\n\tpublic datagramSize: number;\n\tpublic datagramOffset: number;\n\tpublic sessionId: number;\n\tpublic headerExtension: Uint8Array | undefined;\n\tpublic partialDatagram: Uint8Array;\n\n\t// This can only be received\n\tprivate _encapsulated!: CommandClass;\n\tpublic get encapsulated(): CommandClass {\n\t\treturn this._encapsulated;\n\t}\n\n\tpublic expectMoreMessages(\n\t\tsession: [\n\t\t\tTransportServiceCCFirstSegment,\n\t\t\t...TransportServiceCCSubsequentSegment[],\n\t\t],\n\t): boolean {\n\t\tif (!(session[0] instanceof TransportServiceCCFirstSegment)) {\n\t\t\t// First segment is missing\n\t\t\treturn true;\n\t\t}\n\t\tconst datagramSize = session[0].datagramSize;\n\t\tconst receivedBytes = new Array<boolean>(datagramSize).fill(false);\n\t\tfor (const segment of [...session, this]) {\n\t\t\tconst offset = segment instanceof TransportServiceCCFirstSegment\n\t\t\t\t? 0\n\t\t\t\t: segment.datagramOffset;\n\t\t\tfor (\n\t\t\t\tlet i = offset;\n\t\t\t\ti <= offset + segment.partialDatagram.length;\n\t\t\t\ti++\n\t\t\t) {\n\t\t\t\treceivedBytes[i] = true;\n\t\t\t}\n\t\t}\n\t\t// Expect more messages as long as we haven't received everything\n\t\treturn receivedBytes.includes(false);\n\t}\n\n\tpublic getPartialCCSessionId(): Record<string, any> | undefined {\n\t\t// Only use the session ID to identify the session, not the CC command\n\t\treturn { ccCommand: undefined, sessionId: this.sessionId };\n\t}\n\n\t/** @deprecated Use {@link mergePartialCCsAsync} instead */\n\tpublic mergePartialCCs(\n\t\tpartials: [\n\t\t\tTransportServiceCCFirstSegment,\n\t\t\t...TransportServiceCCSubsequentSegment[],\n\t\t],\n\t\tctx: CCParsingContext,\n\t): void {\n\t\t// Concat the CC buffers\n\t\tconst datagram = new Bytes(this.datagramSize);\n\t\tfor (const partial of [...partials, this]) {\n\t\t\t// Ensure that we don't try to write out-of-bounds\n\t\t\tconst offset = partial instanceof TransportServiceCCFirstSegment\n\t\t\t\t? 0\n\t\t\t\t: partial.datagramOffset;\n\t\t\tif (offset + partial.partialDatagram.length > datagram.length) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`The partial datagram offset and length in a segment are not compatible to the communicated datagram length`,\n\t\t\t\t\tZWaveErrorCodes.PacketFormat_InvalidPayload,\n\t\t\t\t);\n\t\t\t}\n\t\t\tdatagram.set(partial.partialDatagram, offset);\n\t\t}\n\n\t\t// and deserialize the CC\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\tthis._encapsulated = CommandClass.parse(datagram, ctx);\n\t\tthis._encapsulated.encapsulatingCC = this as any;\n\t}\n\n\tpublic async mergePartialCCsAsync(\n\t\tpartials: [\n\t\t\tTransportServiceCCFirstSegment,\n\t\t\t...TransportServiceCCSubsequentSegment[],\n\t\t],\n\t\tctx: CCParsingContext,\n\t): Promise<void> {\n\t\t// Concat the CC buffers\n\t\tconst datagram = new Bytes(this.datagramSize);\n\t\tfor (const partial of [...partials, this]) {\n\t\t\t// Ensure that we don't try to write out-of-bounds\n\t\t\tconst offset = partial instanceof TransportServiceCCFirstSegment\n\t\t\t\t? 0\n\t\t\t\t: partial.datagramOffset;\n\t\t\tif (offset + partial.partialDatagram.length > datagram.length) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`The partial datagram offset and length in a segment are not compatible to the communicated datagram length`,\n\t\t\t\t\tZWaveErrorCodes.PacketFormat_InvalidPayload,\n\t\t\t\t);\n\t\t\t}\n\t\t\tdatagram.set(partial.partialDatagram, offset);\n\t\t}\n\n\t\t// and deserialize the CC\n\t\tthis._encapsulated = await CommandClass.parseAsync(datagram, ctx);\n\t\tthis._encapsulated.encapsulatingCC = this as any;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\t// Transport Service re-uses the lower 3 bits of the ccCommand as payload\n\t\tthis.ccCommand = (this.ccCommand & 0b11111_000)\n\t\t\t| ((this.datagramSize >>> 8) & 0b111);\n\n\t\tconst ext = !!this.headerExtension && this.headerExtension.length >= 1;\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.datagramSize & 0xff,\n\t\t\t((this.sessionId & 0b1111) << 4)\n\t\t\t| (ext ? 0b1000 : 0)\n\t\t\t| ((this.datagramOffset >>> 8) & 0b111),\n\t\t\tthis.datagramOffset & 0xff,\n\t\t]);\n\t\tif (ext) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from([this.headerExtension!.length]),\n\t\t\t\tthis.headerExtension!,\n\t\t\t]);\n\t\t}\n\t\tthis.payload = Bytes.concat([\n\t\t\tthis.payload,\n\t\t\tthis.partialDatagram,\n\t\t\tBytes.alloc(2, 0), // checksum\n\t\t]);\n\n\t\t// Compute and save the CRC16 in the payload\n\t\t// The CC header is included in the CRC computation\n\t\tconst headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n\t\tlet crc = CRC16_CCITT(headerBuffer);\n\t\tcrc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n\t\t// Write the checksum into the last two bytes of the payload\n\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tprotected computeEncapsulationOverhead(): number {\n\t\t// 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\t\treturn (\n\t\t\tsuper.computeEncapsulationOverhead()\n\t\t\t+ 5\n\t\t\t+ (this.headerExtension?.length\n\t\t\t\t? 1 + this.headerExtension.length\n\t\t\t\t: 0)\n\t\t);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"session ID\": this.sessionId,\n\t\t\t\t\"datagram size\": this.datagramSize,\n\t\t\t\t\"byte range\": `${this.datagramOffset}...${\n\t\t\t\t\tthis.datagramOffset + this.partialDatagram.length - 1\n\t\t\t\t}`,\n\t\t\t\tpayload: buffer2hex(this.partialDatagram),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TransportServiceCCSegmentRequestOptions {\n\tsessionId: number;\n\tdatagramOffset: number;\n}\n\nfunction testResponseForSegmentRequest(\n\tsent: TransportServiceCCSegmentRequest,\n\treceived: TransportServiceCC,\n): CCResponseRole {\n\treturn (\n\t\t(sent.datagramOffset === 0\n\t\t\t&& received instanceof TransportServiceCCFirstSegment\n\t\t\t&& received.sessionId === sent.sessionId)\n\t\t|| (sent.datagramOffset > 0\n\t\t\t&& received instanceof TransportServiceCCSubsequentSegment\n\t\t\t&& sent.datagramOffset === received.datagramOffset\n\t\t\t&& received.sessionId === sent.sessionId)\n\t);\n}\n\n@CCCommand(TransportServiceCommand.SegmentRequest)\n@expectedCCResponse(TransportServiceCC, testResponseForSegmentRequest)\nexport class TransportServiceCCSegmentRequest extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCSegmentRequestOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.datagramOffset = options.datagramOffset;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCSegmentRequest {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst sessionId = raw.payload[1] >>> 4;\n\t\tconst datagramOffset = ((raw.payload[1] & 0b111) << 8)\n\t\t\t+ raw.payload[2];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsessionId,\n\t\t\tdatagramOffset,\n\t\t});\n\t}\n\n\tpublic sessionId: number;\n\tpublic datagramOffset: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\t((this.sessionId & 0b1111) << 4)\n\t\t\t| ((this.datagramOffset >>> 8) & 0b111),\n\t\t\tthis.datagramOffset & 0xff,\n\t\t]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"session ID\": this.sessionId,\n\t\t\t\toffset: this.datagramOffset,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TransportServiceCCSegmentCompleteOptions {\n\tsessionId: number;\n}\n\n@CCCommand(TransportServiceCommand.SegmentComplete)\nexport class TransportServiceCCSegmentComplete extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCSegmentCompleteOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sessionId = options.sessionId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCSegmentComplete {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst sessionId = raw.payload[1] >>> 4;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsessionId,\n\t\t});\n\t}\n\n\tpublic sessionId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([(this.sessionId & 0b1111) << 4]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"session ID\": this.sessionId },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TransportServiceCCSegmentWaitOptions {\n\tpendingSegments: number;\n}\n\n@CCCommand(TransportServiceCommand.SegmentWait)\nexport class TransportServiceCCSegmentWait extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCSegmentWaitOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.pendingSegments = options.pendingSegments;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCSegmentWait {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst pendingSegments = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tpendingSegments,\n\t\t});\n\t}\n\n\tpublic pendingSegments: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.pendingSegments]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"pending segments\": this.pendingSegments },\n\t\t};\n\t}\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBASO;AAMP,IAAAA,eAAsB;AACtB,IAAAA,eAA2B;AAC3B,0BAIO;AACP,oCAKO;AACP,mBAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjC,MAAM,mBAAmB;AAEzB,MAAM,2BAA2B;AAIjC,MAAM,2BAA2B;;EAEvC,yBAAyB;;EAEzB,yBAAyB;;EAEzB,mBAAmB;;EAEnB,mBAAmB;;EAEnB,sBAAsB;;EAEtB,sBAAsB;;IAKV,sBAAkB,MAAA;8BAF9B,4CAAa,2BAAe,mBAAmB,CAAC,OAChD,kDAAmB,CAAC,CAAC;;;;oBACkB;0CAAA,YAAY;WAAA;;;;;;;;AAApD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;AAgBP,SAAU,gCACf,SAAqB;AAKrB,SACC,QAAQ,SAAS,2BAAe,mBAAmB,MAC/C,QAAQ,cAAc,qCAAwB,gBAC9C,QAAQ,cAAc,qCAAwB;AAEpD;AAXgB;IAeH,kCAA8B,MAAA;8BAF1C,yCAAU,qCAAwB,YAAY,CAAC;;;;oBAEI;sDAAA,YAAkB;WAAA;;;;;;;;AAAtE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAA2D;AAE3D,YAAM,OAAO;AACb,WAAK,eAAe,QAAQ;AAC5B,WAAK,YAAY,QAAQ;AACzB,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAKrB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AAGvC,YAAM,eAAe,mBAAM,KAAK;QAC/B,2BAAe,mBAAmB;QAClC,qCAAwB,eAAe,IAAI,QAAQ,CAAC;OACpD;AACD,YAAM,WAAW,IAAI,QAAQ,SAAS,GAAG,EAAE;AAC3C,UAAI,kBAAc,yBAAY,YAAY;AAC1C,wBAAc,yBAAY,UAAU,WAAW;AAC/C,YAAM,YAAY,IAAI,QAAQ,aAC7B,IAAI,QAAQ,SAAS,CAAC;AAEvB,uCAAgB,gBAAgB,SAAS;AACzC,YAAM,eAAe,IAAI,QAAQ,aAAa,CAAC;AAC/C,YAAM,YAAY,IAAI,QAAQ,CAAC,MAAM;AACrC,UAAI,gBAAgB;AAGpB,YAAM,qBAAqB,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI;AAC/C,UAAI;AAEJ,UAAI,oBAAoB;AACvB,cAAM,YAAY,IAAI,QAAQ,CAAC;AAC/B,0BAAkB,IAAI,QAAQ,SAAS,GAAG,IAAI,SAAS;AACvD,yBAAiB,IAAI;MACtB;AACA,YAAM,kBAA8B,IAAI,QAAQ,SAC/C,eACA,EAAE;AAKH,uCAAgB,gBAAgB,UAAU,gBAAgB;AAE1D,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;QACA;OACA;IACF;IAEO;IACA;IACA;IACA;IACA;IAEA,UAAU,KAAsB;AAEtC,WAAK,YAAa,KAAK,YAAY,MAC9B,KAAK,iBAAiB,IAAK;AAEhC,YAAM,MAAM,CAAC,CAAC,KAAK,mBAAmB,KAAK,gBAAgB,UAAU;AACrE,WAAK,UAAU,mBAAM,KAAK;QACzB,KAAK,eAAe;SAClB,KAAK,YAAY,OAAW,KAAM,MAAM,IAAS;OACnD;AACD,UAAI,KAAK;AACR,aAAK,UAAU,mBAAM,OAAO;UAC3B,KAAK;UACL,mBAAM,KAAK,CAAC,KAAK,gBAAiB,MAAM,CAAC;UACzC,KAAK;SACL;MACF;AACA,WAAK,UAAU,mBAAM,OAAO;QAC3B,KAAK;QACL,KAAK;QACL,mBAAM,MAAM,GAAG,CAAC;;OAChB;AAID,YAAM,eAAe,mBAAM,KAAK,CAAC,KAAK,MAAM,KAAK,SAAS,CAAC;AAC3D,UAAI,UAAM,yBAAY,YAAY;AAClC,gBAAM,yBAAY,KAAK,QAAQ,SAAS,GAAG,EAAE,GAAG,GAAG;AAEnD,WAAK,QAAQ,cAAc,KAAK,KAAK,QAAQ,SAAS,CAAC;AAGvD,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,qBAAkB;AACxB,aAAO;IACR;IAEO,wBAAqB;AAE3B,aAAO,EAAE,WAAW,QAAW,WAAW,KAAK,UAAS;IACzD;IAEU,+BAA4B;AAErC,aACC,MAAM,6BAA4B,IAChC,KACC,KAAK,iBAAiB,SACtB,IAAI,KAAK,gBAAgB,SACzB;IAEL;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,cAAc,KAAK;UACnB,iBAAiB,KAAK;UACtB,cAAc,OAAO,KAAK,gBAAgB,SAAS,CAAC;UACpD,aAAS,yBAAW,KAAK,eAAe;;;IAG3C;;;;IAYY,uCAAmC,MAAA;8BAF/C,yCAAU,qCAAwB,iBAAiB,CAAC;;;;oBAEI;2DAAA,YAAkB;WAAA;;;;;;;;AAA3E,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAgE;AAEhE,YAAM,OAAO;AACb,WAAK,eAAe,QAAQ;AAC5B,WAAK,iBAAiB,QAAQ;AAC9B,WAAK,YAAY,QAAQ;AACzB,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAKrB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AAGvC,YAAM,eAAe,mBAAM,KAAK;QAC/B,2BAAe,mBAAmB;QAClC,qCAAwB,oBAAoB,IAAI,QAAQ,CAAC;OACzD;AACD,YAAM,WAAW,IAAI,QAAQ,SAAS,GAAG,EAAE;AAC3C,UAAI,kBAAc,yBAAY,YAAY;AAC1C,wBAAc,yBAAY,UAAU,WAAW;AAC/C,YAAM,YAAY,IAAI,QAAQ,aAC7B,IAAI,QAAQ,SAAS,CAAC;AAEvB,uCAAgB,gBAAgB,SAAS;AACzC,YAAM,eAAe,IAAI,QAAQ,aAAa,CAAC;AAC/C,YAAM,YAAY,IAAI,QAAQ,CAAC,MAAM;AACrC,YAAM,mBAAmB,IAAI,QAAQ,CAAC,IAAI,MAAU,KACjD,IAAI,QAAQ,CAAC;AAChB,UAAI,gBAAgB;AAGpB,YAAM,qBAAqB,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI;AAC/C,UAAI;AAEJ,UAAI,oBAAoB;AACvB,cAAM,YAAY,IAAI,QAAQ,CAAC;AAC/B,0BAAkB,IAAI,QAAQ,SAAS,GAAG,IAAI,SAAS;AACvD,yBAAiB,IAAI;MACtB;AACA,YAAM,kBAAyB,IAAI,QAAQ,SAAS,eAAe,EAAE;AAIrE,uCAAgB,gBAAgB,UAAU,gBAAgB;AAE1D,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;QACA;QACA;OACA;IACF;IAEO;IACA;IACA;IACA;IACA;;IAGC;IACR,IAAW,eAAY;AACtB,aAAO,KAAK;IACb;IAEO,mBACN,SAGC;AAED,UAAI,EAAE,QAAQ,CAAC,aAAa,iCAAiC;AAE5D,eAAO;MACR;AACA,YAAM,eAAe,QAAQ,CAAC,EAAE;AAChC,YAAM,gBAAgB,IAAI,MAAe,YAAY,EAAE,KAAK,KAAK;AACjE,iBAAW,WAAW,CAAC,GAAG,SAAS,IAAI,GAAG;AACzC,cAAM,SAAS,mBAAmB,iCAC/B,IACA,QAAQ;AACX,iBACK,IAAI,QACR,KAAK,SAAS,QAAQ,gBAAgB,QACtC,KACC;AACD,wBAAc,CAAC,IAAI;QACpB;MACD;AAEA,aAAO,cAAc,SAAS,KAAK;IACpC;IAEO,wBAAqB;AAE3B,aAAO,EAAE,WAAW,QAAW,WAAW,KAAK,UAAS;IACzD;;IAGO,gBACN,UAIA,KAAqB;AAGrB,YAAM,WAAW,IAAI,mBAAM,KAAK,YAAY;AAC5C,iBAAW,WAAW,CAAC,GAAG,UAAU,IAAI,GAAG;AAE1C,cAAM,SAAS,mBAAmB,iCAC/B,IACA,QAAQ;AACX,YAAI,SAAS,QAAQ,gBAAgB,SAAS,SAAS,QAAQ;AAC9D,gBAAM,IAAI,uBACT,8GACA,4BAAgB,2BAA2B;QAE7C;AACA,iBAAS,IAAI,QAAQ,iBAAiB,MAAM;MAC7C;AAIA,WAAK,gBAAgB,iCAAa,MAAM,UAAU,GAAG;AACrD,WAAK,cAAc,kBAAkB;IACtC;IAEO,MAAM,qBACZ,UAIA,KAAqB;AAGrB,YAAM,WAAW,IAAI,mBAAM,KAAK,YAAY;AAC5C,iBAAW,WAAW,CAAC,GAAG,UAAU,IAAI,GAAG;AAE1C,cAAM,SAAS,mBAAmB,iCAC/B,IACA,QAAQ;AACX,YAAI,SAAS,QAAQ,gBAAgB,SAAS,SAAS,QAAQ;AAC9D,gBAAM,IAAI,uBACT,8GACA,4BAAgB,2BAA2B;QAE7C;AACA,iBAAS,IAAI,QAAQ,iBAAiB,MAAM;MAC7C;AAGA,WAAK,gBAAgB,MAAM,iCAAa,WAAW,UAAU,GAAG;AAChE,WAAK,cAAc,kBAAkB;IACtC;IAEO,UAAU,KAAsB;AAEtC,WAAK,YAAa,KAAK,YAAY,MAC9B,KAAK,iBAAiB,IAAK;AAEhC,YAAM,MAAM,CAAC,CAAC,KAAK,mBAAmB,KAAK,gBAAgB,UAAU;AACrE,WAAK,UAAU,mBAAM,KAAK;QACzB,KAAK,eAAe;SAClB,KAAK,YAAY,OAAW,KAC3B,MAAM,IAAS,KACd,KAAK,mBAAmB,IAAK;QACjC,KAAK,iBAAiB;OACtB;AACD,UAAI,KAAK;AACR,aAAK,UAAU,mBAAM,OAAO;UAC3B,KAAK;UACL,mBAAM,KAAK,CAAC,KAAK,gBAAiB,MAAM,CAAC;UACzC,KAAK;SACL;MACF;AACA,WAAK,UAAU,mBAAM,OAAO;QAC3B,KAAK;QACL,KAAK;QACL,mBAAM,MAAM,GAAG,CAAC;;OAChB;AAID,YAAM,eAAe,mBAAM,KAAK,CAAC,KAAK,MAAM,KAAK,SAAS,CAAC;AAC3D,UAAI,UAAM,yBAAY,YAAY;AAClC,gBAAM,yBAAY,KAAK,QAAQ,SAAS,GAAG,EAAE,GAAG,GAAG;AAEnD,WAAK,QAAQ,cAAc,KAAK,KAAK,QAAQ,SAAS,CAAC;AAGvD,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEU,+BAA4B;AAErC,aACC,MAAM,6BAA4B,IAChC,KACC,KAAK,iBAAiB,SACtB,IAAI,KAAK,gBAAgB,SACzB;IAEL;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,cAAc,KAAK;UACnB,iBAAiB,KAAK;UACtB,cAAc,GAAG,KAAK,cAAc,MACnC,KAAK,iBAAiB,KAAK,gBAAgB,SAAS,CACrD;UACA,aAAS,yBAAW,KAAK,eAAe;;;IAG3C;;;;AASD,SAAS,8BACR,MACA,UAA4B;AAE5B,SACE,KAAK,mBAAmB,KACrB,oBAAoB,kCACpB,SAAS,cAAc,KAAK,aAC5B,KAAK,iBAAiB,KACtB,oBAAoB,uCACpB,KAAK,mBAAmB,SAAS,kBACjC,SAAS,cAAc,KAAK;AAElC;AAbS;IAiBI,oCAAgC,MAAA;8BAF5C,yCAAU,qCAAwB,cAAc,OAChD,kDAAmB,oBAAoB,6BAA6B,CAAC;;;;oBAChB;wDAAA,YAAkB;WAAA;;;;;;;;AAAxE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAA6D;AAE7D,YAAM,OAAO;AACb,WAAK,YAAY,QAAQ;AACzB,WAAK,iBAAiB,QAAQ;IAC/B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAY,IAAI,QAAQ,CAAC,MAAM;AACrC,YAAM,mBAAmB,IAAI,QAAQ,CAAC,IAAI,MAAU,KACjD,IAAI,QAAQ,CAAC;AAEhB,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,mBAAM,KAAK;SACvB,KAAK,YAAY,OAAW,IAC1B,KAAK,mBAAmB,IAAK;QACjC,KAAK,iBAAiB;OACtB;AAED,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,cAAc,KAAK;UACnB,QAAQ,KAAK;;;IAGhB;;;;IASY,qCAAiC,MAAA;8BAD7C,yCAAU,qCAAwB,eAAe,CAAC;;;;oBACI;yDAAA,YAAkB;WAAA;;;;;;;;AAAzE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAA8D;AAE9D,YAAM,OAAO;AACb,WAAK,YAAY,QAAQ;IAC1B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAY,IAAI,QAAQ,CAAC,MAAM;AAErC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,mBAAM,KAAK,EAAE,KAAK,YAAY,OAAW,CAAC,CAAC;AAE1D,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS,EAAE,cAAc,KAAK,UAAS;;IAEzC;;;;IASY,iCAA6B,MAAA;8BADzC,yCAAU,qCAAwB,WAAW,CAAC;;;;oBACI;qDAAA,YAAkB;WAAA;;;;;;;;AAArE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAA0D;AAE1D,YAAM,OAAO;AACb,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,kBAAkB,IAAI,QAAQ,CAAC;AAErC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,mBAAM,KAAK,CAAC,KAAK,eAAe,CAAC;AAEhD,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS,EAAE,oBAAoB,KAAK,gBAAe;;IAErD;;;;",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCRC16_CCITT,\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MessageOrCCLogEntry,\n\ttype SinglecastCC,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { buffer2hex } from \"@zwave-js/shared/safe\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tCCCommand,\n\tcommandClass,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { TransportServiceCommand } from \"../lib/_Types.js\";\n\nexport const MAX_SEGMENT_SIZE = 39;\n\nexport const RELAXED_TIMING_THRESHOLD = 2;\n\n// TODO: Figure out how we know if communicating with R2 or R3\n/** @publicAPI */\nexport const TransportServiceTimeouts = {\n\t/** Waiting time before requesting a missing segment at data rate R2 */\n\trequestMissingSegmentR2: 800,\n\t/** Waiting time before requesting a missing segment at data rate R3 */\n\trequestMissingSegmentR3: 400,\n\t/** Waiting time before sending another datagram at data rate R2 */\n\tsegmentCompleteR2: 1000,\n\t/** Waiting time before sending another datagram at data rate R3 */\n\tsegmentCompleteR3: 500,\n\t/** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R2 */\n\trelaxedTimingDelayR2: 35,\n\t/** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R3 */\n\trelaxedTimingDelayR3: 15,\n};\n\n@commandClass(CommandClasses[\"Transport Service\"])\n@implementedVersion(2)\nexport class TransportServiceCC extends CommandClass\n\timplements SinglecastCC<TransportServiceCC>\n{\n\tdeclare ccCommand: TransportServiceCommand;\n\tdeclare nodeId: number;\n}\n\n// @publicAPI\nexport interface TransportServiceCCFirstSegmentOptions {\n\tdatagramSize: number;\n\tsessionId: number;\n\theaderExtension?: Uint8Array | undefined;\n\tpartialDatagram: Uint8Array;\n}\n\n/** @publicAPI */\nexport function isTransportServiceEncapsulation(\n\tcommand: CommandClass,\n): command is\n\t| TransportServiceCCFirstSegment\n\t| TransportServiceCCSubsequentSegment\n{\n\treturn (\n\t\tcommand.ccId === CommandClasses[\"Transport Service\"]\n\t\t&& (command.ccCommand === TransportServiceCommand.FirstSegment\n\t\t\t|| command.ccCommand === TransportServiceCommand.SubsequentSegment)\n\t);\n}\n\n@CCCommand(TransportServiceCommand.FirstSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCFirstSegment extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCFirstSegmentOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.datagramSize = options.datagramSize;\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.headerExtension = options.headerExtension;\n\t\tthis.partialDatagram = options.partialDatagram;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCFirstSegment {\n\t\t// Deserialization has already split the datagram size from the ccCommand.\n\t\t// Therefore we have one more payload byte\n\n\t\tvalidatePayload(raw.payload.length >= 6); // 2 bytes dgram size, 1 byte sessid/ext, 1+ bytes payload, 2 bytes checksum\n\n\t\t// Verify the CRC\n\t\tconst headerBuffer = Bytes.from([\n\t\t\tCommandClasses[\"Transport Service\"],\n\t\t\tTransportServiceCommand.FirstSegment | raw.payload[0],\n\t\t]);\n\t\tconst ccBuffer = raw.payload.subarray(1, -2);\n\t\tlet expectedCRC = CRC16_CCITT(headerBuffer);\n\t\texpectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n\t\tconst actualCRC = raw.payload.readUInt16BE(\n\t\t\traw.payload.length - 2,\n\t\t);\n\t\tvalidatePayload(expectedCRC === actualCRC);\n\t\tconst datagramSize = raw.payload.readUInt16BE(0);\n\t\tconst sessionId = raw.payload[2] >>> 4;\n\t\tlet payloadOffset = 3;\n\n\t\t// If there is a header extension, read it\n\t\tconst hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n\t\tlet headerExtension: Uint8Array | undefined;\n\n\t\tif (hasHeaderExtension) {\n\t\t\tconst extLength = raw.payload[3];\n\t\t\theaderExtension = raw.payload.subarray(4, 4 + extLength);\n\t\t\tpayloadOffset += 1 + extLength;\n\t\t}\n\t\tconst partialDatagram: Uint8Array = raw.payload.subarray(\n\t\t\tpayloadOffset,\n\t\t\t-2,\n\t\t);\n\n\t\t// A node supporting the Transport Service Command Class, version 2\n\t\t// MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n\t\tvalidatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tdatagramSize,\n\t\t\tsessionId,\n\t\t\theaderExtension,\n\t\t\tpartialDatagram,\n\t\t});\n\t}\n\n\tpublic datagramSize: number;\n\tpublic sessionId: number;\n\tpublic headerExtension: Uint8Array | undefined;\n\tpublic partialDatagram: Uint8Array;\n\tpublic encapsulated!: CommandClass;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\t// Transport Service re-uses the lower 3 bits of the ccCommand as payload\n\t\tthis.ccCommand = (this.ccCommand & 0b11111_000)\n\t\t\t| ((this.datagramSize >>> 8) & 0b111);\n\n\t\tconst ext = !!this.headerExtension && this.headerExtension.length >= 1;\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.datagramSize & 0xff,\n\t\t\t((this.sessionId & 0b1111) << 4) | (ext ? 0b1000 : 0),\n\t\t]);\n\t\tif (ext) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from([this.headerExtension!.length]),\n\t\t\t\tthis.headerExtension!,\n\t\t\t]);\n\t\t}\n\t\tthis.payload = Bytes.concat([\n\t\t\tthis.payload,\n\t\t\tthis.partialDatagram,\n\t\t\tBytes.alloc(2, 0), // checksum\n\t\t]);\n\n\t\t// Compute and save the CRC16 in the payload\n\t\t// The CC header is included in the CRC computation\n\t\tconst headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n\t\tlet crc = CRC16_CCITT(headerBuffer);\n\t\tcrc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n\t\t// Write the checksum into the last two bytes of the payload\n\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic expectMoreMessages(): boolean {\n\t\treturn true; // The FirstSegment message always expects more messages\n\t}\n\n\tpublic getPartialCCSessionId(): Record<string, any> | undefined {\n\t\t// Only use the session ID to identify the session, not the CC command\n\t\treturn { ccCommand: undefined, sessionId: this.sessionId };\n\t}\n\n\tprotected computeEncapsulationOverhead(): number {\n\t\t// 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\t\treturn (\n\t\t\tsuper.computeEncapsulationOverhead()\n\t\t\t+ 4\n\t\t\t+ (this.headerExtension?.length\n\t\t\t\t? 1 + this.headerExtension.length\n\t\t\t\t: 0)\n\t\t);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"session ID\": this.sessionId,\n\t\t\t\t\"datagram size\": this.datagramSize,\n\t\t\t\t\"byte range\": `0...${this.partialDatagram.length - 1}`,\n\t\t\t\tpayload: buffer2hex(this.partialDatagram),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TransportServiceCCSubsequentSegmentOptions\n\textends TransportServiceCCFirstSegmentOptions\n{\n\tdatagramOffset: number;\n}\n\n@CCCommand(TransportServiceCommand.SubsequentSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSubsequentSegment extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCSubsequentSegmentOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.datagramSize = options.datagramSize;\n\t\tthis.datagramOffset = options.datagramOffset;\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.headerExtension = options.headerExtension;\n\t\tthis.partialDatagram = options.partialDatagram;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCSubsequentSegment {\n\t\t// Deserialization has already split the datagram size from the ccCommand.\n\t\t// Therefore we have one more payload byte\n\n\t\tvalidatePayload(raw.payload.length >= 7); // 2 bytes dgram size, 1 byte sessid/ext/offset, 1 byte offset, 1+ bytes payload, 2 bytes checksum\n\n\t\t// Verify the CRC\n\t\tconst headerBuffer = Bytes.from([\n\t\t\tCommandClasses[\"Transport Service\"],\n\t\t\tTransportServiceCommand.SubsequentSegment | raw.payload[0],\n\t\t]);\n\t\tconst ccBuffer = raw.payload.subarray(1, -2);\n\t\tlet expectedCRC = CRC16_CCITT(headerBuffer);\n\t\texpectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n\t\tconst actualCRC = raw.payload.readUInt16BE(\n\t\t\traw.payload.length - 2,\n\t\t);\n\t\tvalidatePayload(expectedCRC === actualCRC);\n\t\tconst datagramSize = raw.payload.readUInt16BE(0);\n\t\tconst sessionId = raw.payload[2] >>> 4;\n\t\tconst datagramOffset = ((raw.payload[2] & 0b111) << 8)\n\t\t\t+ raw.payload[3];\n\t\tlet payloadOffset = 4;\n\n\t\t// If there is a header extension, read it\n\t\tconst hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n\t\tlet headerExtension: Bytes | undefined;\n\n\t\tif (hasHeaderExtension) {\n\t\t\tconst extLength = raw.payload[4];\n\t\t\theaderExtension = raw.payload.subarray(5, 5 + extLength);\n\t\t\tpayloadOffset += 1 + extLength;\n\t\t}\n\t\tconst partialDatagram: Bytes = raw.payload.subarray(payloadOffset, -2);\n\n\t\t// A node supporting the Transport Service Command Class, version 2\n\t\t// MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n\t\tvalidatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tdatagramSize,\n\t\t\tsessionId,\n\t\t\tdatagramOffset,\n\t\t\theaderExtension,\n\t\t\tpartialDatagram,\n\t\t});\n\t}\n\n\tpublic datagramSize: number;\n\tpublic datagramOffset: number;\n\tpublic sessionId: number;\n\tpublic headerExtension: Uint8Array | undefined;\n\tpublic partialDatagram: Uint8Array;\n\n\t// This can only be received\n\tprivate _encapsulated!: CommandClass;\n\tpublic get encapsulated(): CommandClass {\n\t\treturn this._encapsulated;\n\t}\n\n\tpublic expectMoreMessages(\n\t\tsession: [\n\t\t\tTransportServiceCCFirstSegment,\n\t\t\t...TransportServiceCCSubsequentSegment[],\n\t\t],\n\t): boolean {\n\t\tif (!(session[0] instanceof TransportServiceCCFirstSegment)) {\n\t\t\t// First segment is missing\n\t\t\treturn true;\n\t\t}\n\t\tconst datagramSize = session[0].datagramSize;\n\t\tconst receivedBytes = new Array<boolean>(datagramSize).fill(false);\n\t\tfor (const segment of [...session, this]) {\n\t\t\tconst offset = segment instanceof TransportServiceCCFirstSegment\n\t\t\t\t? 0\n\t\t\t\t: segment.datagramOffset;\n\t\t\tfor (\n\t\t\t\tlet i = offset;\n\t\t\t\ti <= offset + segment.partialDatagram.length;\n\t\t\t\ti++\n\t\t\t) {\n\t\t\t\treceivedBytes[i] = true;\n\t\t\t}\n\t\t}\n\t\t// Expect more messages as long as we haven't received everything\n\t\treturn receivedBytes.includes(false);\n\t}\n\n\tpublic getPartialCCSessionId(): Record<string, any> | undefined {\n\t\t// Only use the session ID to identify the session, not the CC command\n\t\treturn { ccCommand: undefined, sessionId: this.sessionId };\n\t}\n\n\tpublic async mergePartialCCs(\n\t\tpartials: [\n\t\t\tTransportServiceCCFirstSegment,\n\t\t\t...TransportServiceCCSubsequentSegment[],\n\t\t],\n\t\tctx: CCParsingContext,\n\t): Promise<void> {\n\t\t// Concat the CC buffers\n\t\tconst datagram = new Bytes(this.datagramSize);\n\t\tfor (const partial of [...partials, this]) {\n\t\t\t// Ensure that we don't try to write out-of-bounds\n\t\t\tconst offset = partial instanceof TransportServiceCCFirstSegment\n\t\t\t\t? 0\n\t\t\t\t: partial.datagramOffset;\n\t\t\tif (offset + partial.partialDatagram.length > datagram.length) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`The partial datagram offset and length in a segment are not compatible to the communicated datagram length`,\n\t\t\t\t\tZWaveErrorCodes.PacketFormat_InvalidPayload,\n\t\t\t\t);\n\t\t\t}\n\t\t\tdatagram.set(partial.partialDatagram, offset);\n\t\t}\n\n\t\t// and deserialize the CC\n\t\tthis._encapsulated = await CommandClass.parse(datagram, ctx);\n\t\tthis._encapsulated.encapsulatingCC = this as any;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\t// Transport Service re-uses the lower 3 bits of the ccCommand as payload\n\t\tthis.ccCommand = (this.ccCommand & 0b11111_000)\n\t\t\t| ((this.datagramSize >>> 8) & 0b111);\n\n\t\tconst ext = !!this.headerExtension && this.headerExtension.length >= 1;\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.datagramSize & 0xff,\n\t\t\t((this.sessionId & 0b1111) << 4)\n\t\t\t| (ext ? 0b1000 : 0)\n\t\t\t| ((this.datagramOffset >>> 8) & 0b111),\n\t\t\tthis.datagramOffset & 0xff,\n\t\t]);\n\t\tif (ext) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from([this.headerExtension!.length]),\n\t\t\t\tthis.headerExtension!,\n\t\t\t]);\n\t\t}\n\t\tthis.payload = Bytes.concat([\n\t\t\tthis.payload,\n\t\t\tthis.partialDatagram,\n\t\t\tBytes.alloc(2, 0), // checksum\n\t\t]);\n\n\t\t// Compute and save the CRC16 in the payload\n\t\t// The CC header is included in the CRC computation\n\t\tconst headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n\t\tlet crc = CRC16_CCITT(headerBuffer);\n\t\tcrc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n\t\t// Write the checksum into the last two bytes of the payload\n\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tprotected computeEncapsulationOverhead(): number {\n\t\t// 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\t\treturn (\n\t\t\tsuper.computeEncapsulationOverhead()\n\t\t\t+ 5\n\t\t\t+ (this.headerExtension?.length\n\t\t\t\t? 1 + this.headerExtension.length\n\t\t\t\t: 0)\n\t\t);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"session ID\": this.sessionId,\n\t\t\t\t\"datagram size\": this.datagramSize,\n\t\t\t\t\"byte range\": `${this.datagramOffset}...${\n\t\t\t\t\tthis.datagramOffset + this.partialDatagram.length - 1\n\t\t\t\t}`,\n\t\t\t\tpayload: buffer2hex(this.partialDatagram),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TransportServiceCCSegmentRequestOptions {\n\tsessionId: number;\n\tdatagramOffset: number;\n}\n\n@CCCommand(TransportServiceCommand.SegmentRequest)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSegmentRequest extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCSegmentRequestOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.datagramOffset = options.datagramOffset;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCSegmentRequest {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst sessionId = raw.payload[1] >>> 4;\n\t\tconst datagramOffset = ((raw.payload[1] & 0b111) << 8)\n\t\t\t+ raw.payload[2];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsessionId,\n\t\t\tdatagramOffset,\n\t\t});\n\t}\n\n\tpublic sessionId: number;\n\tpublic datagramOffset: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\t((this.sessionId & 0b1111) << 4)\n\t\t\t| ((this.datagramOffset >>> 8) & 0b111),\n\t\t\tthis.datagramOffset & 0xff,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"session ID\": this.sessionId,\n\t\t\t\toffset: this.datagramOffset,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TransportServiceCCSegmentCompleteOptions {\n\tsessionId: number;\n}\n\n@CCCommand(TransportServiceCommand.SegmentComplete)\nexport class TransportServiceCCSegmentComplete extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCSegmentCompleteOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sessionId = options.sessionId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCSegmentComplete {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst sessionId = raw.payload[1] >>> 4;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsessionId,\n\t\t});\n\t}\n\n\tpublic sessionId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([(this.sessionId & 0b1111) << 4]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"session ID\": this.sessionId },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TransportServiceCCSegmentWaitOptions {\n\tpendingSegments: number;\n}\n\n@CCCommand(TransportServiceCommand.SegmentWait)\nexport class TransportServiceCCSegmentWait extends TransportServiceCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TransportServiceCCSegmentWaitOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.pendingSegments = options.pendingSegments;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TransportServiceCCSegmentWait {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst pendingSegments = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tpendingSegments,\n\t\t});\n\t}\n\n\tpublic pendingSegments: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.pendingSegments]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"pending segments\": this.pendingSegments },\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }