@zwave-js/cc 14.0.0-beta.4 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/cc/AlarmSensorCC.js +381 -266
- package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
- package/build/cjs/cc/AssociationCC.js +669 -503
- package/build/cjs/cc/AssociationCC.js.map +3 -3
- package/build/cjs/cc/AssociationGroupInfoCC.js +633 -492
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
- package/build/cjs/cc/BarrierOperatorCC.js +595 -429
- package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
- package/build/cjs/cc/BasicCC.js +354 -260
- package/build/cjs/cc/BasicCC.js.map +3 -3
- package/build/cjs/cc/BatteryCC.js +427 -345
- package/build/cjs/cc/BatteryCC.js.map +3 -3
- package/build/cjs/cc/BinarySensorCC.js +391 -276
- package/build/cjs/cc/BinarySensorCC.js.map +3 -3
- package/build/cjs/cc/BinarySwitchCC.js +347 -253
- package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
- package/build/cjs/cc/CRC16CC.js +160 -85
- package/build/cjs/cc/CRC16CC.js.map +3 -3
- package/build/cjs/cc/CentralSceneCC.js +459 -324
- package/build/cjs/cc/CentralSceneCC.js.map +3 -3
- package/build/cjs/cc/ClimateControlScheduleCC.js +459 -293
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
- package/build/cjs/cc/ClockCC.js +254 -150
- package/build/cjs/cc/ClockCC.js.map +3 -3
- package/build/cjs/cc/ColorSwitchCC.js +758 -610
- package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
- package/build/cjs/cc/ConfigurationCC.js +1700 -1453
- package/build/cjs/cc/ConfigurationCC.js.map +3 -3
- package/build/cjs/cc/DeviceResetLocallyCC.js +125 -49
- package/build/cjs/cc/DeviceResetLocallyCC.js.map +3 -3
- package/build/cjs/cc/DoorLockCC.js +904 -777
- package/build/cjs/cc/DoorLockCC.js.map +3 -3
- package/build/cjs/cc/DoorLockLoggingCC.js +321 -206
- package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
- package/build/cjs/cc/EnergyProductionCC.js +249 -160
- package/build/cjs/cc/EnergyProductionCC.js.map +3 -3
- package/build/cjs/cc/EntryControlCC.js +619 -458
- package/build/cjs/cc/EntryControlCC.js.map +3 -3
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +898 -698
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
- package/build/cjs/cc/HailCC.js +57 -11
- package/build/cjs/cc/HailCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlModeCC.js +359 -233
- package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +189 -103
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
- package/build/cjs/cc/HumidityControlSetpointCC.js +682 -495
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
- package/build/cjs/cc/InclusionControllerCC.js +205 -114
- package/build/cjs/cc/InclusionControllerCC.js.map +3 -3
- package/build/cjs/cc/IndicatorCC.js +897 -736
- package/build/cjs/cc/IndicatorCC.js.map +3 -3
- package/build/cjs/cc/IrrigationCC.js +1651 -1405
- package/build/cjs/cc/IrrigationCC.js.map +3 -3
- package/build/cjs/cc/LanguageCC.js +268 -171
- package/build/cjs/cc/LanguageCC.js.map +3 -3
- package/build/cjs/cc/LockCC.js +254 -154
- package/build/cjs/cc/LockCC.js.map +3 -3
- package/build/cjs/cc/ManufacturerProprietaryCC.js +189 -129
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerSpecificCC.js +319 -213
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
- package/build/cjs/cc/MeterCC.js +827 -707
- package/build/cjs/cc/MeterCC.js.map +3 -3
- package/build/cjs/cc/MultiChannelAssociationCC.js +612 -478
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
- package/build/cjs/cc/MultiChannelCC.js +1037 -819
- package/build/cjs/cc/MultiChannelCC.js.map +3 -3
- package/build/cjs/cc/MultiCommandCC.js +172 -97
- package/build/cjs/cc/MultiCommandCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSensorCC.js +589 -449
- package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSwitchCC.js +587 -439
- package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
- package/build/cjs/cc/NoOperationCC.js +89 -27
- package/build/cjs/cc/NoOperationCC.js.map +2 -2
- package/build/cjs/cc/NodeNamingCC.js +417 -277
- package/build/cjs/cc/NodeNamingCC.js.map +3 -3
- package/build/cjs/cc/NotificationCC.js +972 -818
- package/build/cjs/cc/NotificationCC.js.map +3 -3
- package/build/cjs/cc/PowerlevelCC.js +450 -303
- package/build/cjs/cc/PowerlevelCC.js.map +3 -3
- package/build/cjs/cc/ProtectionCC.js +686 -494
- package/build/cjs/cc/ProtectionCC.js.map +3 -3
- package/build/cjs/cc/SceneActivationCC.js +165 -97
- package/build/cjs/cc/SceneActivationCC.js.map +3 -3
- package/build/cjs/cc/SceneActuatorConfigurationCC.js +346 -243
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
- package/build/cjs/cc/SceneControllerConfigurationCC.js +401 -298
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
- package/build/cjs/cc/ScheduleEntryLockCC.js +1552 -1272
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +3 -3
- package/build/cjs/cc/Security2CC.js +1483 -1219
- package/build/cjs/cc/Security2CC.js.map +3 -3
- package/build/cjs/cc/SecurityCC.js +839 -619
- package/build/cjs/cc/SecurityCC.js.map +3 -3
- package/build/cjs/cc/SoundSwitchCC.js +707 -515
- package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
- package/build/cjs/cc/SupervisionCC.js +327 -237
- package/build/cjs/cc/SupervisionCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanModeCC.js +386 -263
- package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanStateCC.js +192 -106
- package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
- package/build/cjs/cc/ThermostatModeCC.js +425 -302
- package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
- package/build/cjs/cc/ThermostatOperatingStateCC.js +188 -102
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
- package/build/cjs/cc/ThermostatSetbackCC.js +277 -173
- package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
- package/build/cjs/cc/ThermostatSetpointCC.js +645 -491
- package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
- package/build/cjs/cc/TimeCC.js +515 -353
- package/build/cjs/cc/TimeCC.js.map +3 -3
- package/build/cjs/cc/TimeParametersCC.js +302 -202
- package/build/cjs/cc/TimeParametersCC.js.map +3 -3
- package/build/cjs/cc/TransportServiceCC.js +433 -315
- package/build/cjs/cc/TransportServiceCC.js.map +3 -3
- package/build/cjs/cc/UserCodeCC.js +1385 -1102
- package/build/cjs/cc/UserCodeCC.js.map +3 -3
- package/build/cjs/cc/VersionCC.js +696 -562
- package/build/cjs/cc/VersionCC.js.map +3 -3
- package/build/cjs/cc/WakeUpCC.js +499 -346
- package/build/cjs/cc/WakeUpCC.js.map +3 -3
- package/build/cjs/cc/WindowCoveringCC.js +626 -478
- package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
- package/build/cjs/cc/ZWaveLongRangeCC.js +57 -10
- package/build/cjs/cc/ZWaveLongRangeCC.js.map +2 -2
- package/build/cjs/cc/ZWavePlusCC.js +233 -159
- package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
- package/build/cjs/cc/ZWaveProtocolCC.js +1515 -948
- package/build/cjs/cc/ZWaveProtocolCC.js.map +3 -3
- package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +4 -4
- package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +1 -1
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +395 -274
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +3 -3
- package/build/cjs/lib/CommandClassDecorators.d.ts +11 -15
- package/build/cjs/lib/CommandClassDecorators.js +19 -20
- package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
- package/build/cjs/lib/Security2/Extension.d.ts +1 -1
- package/build/cjs/lib/Security2/Extension.js +217 -126
- package/build/cjs/lib/Security2/Extension.js.map +3 -3
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +389 -291
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +678 -537
- package/build/esm/cc/AssociationCC.js.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.js +659 -539
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +634 -493
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +380 -302
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +449 -384
- package/build/esm/cc/BatteryCC.js.map +1 -1
- package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySensorCC.js +395 -297
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +353 -274
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CRC16CC.js +162 -98
- package/build/esm/cc/CRC16CC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +465 -351
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +454 -313
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ClockCC.js +248 -159
- package/build/esm/cc/ClockCC.js.map +1 -1
- package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/ColorSwitchCC.js +802 -677
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +1899 -1687
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js +124 -59
- package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +951 -849
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +316 -218
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js +240 -164
- package/build/esm/cc/EnergyProductionCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +629 -493
- package/build/esm/cc/EntryControlCC.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js +938 -769
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HailCC.js +51 -12
- package/build/esm/cc/HailCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +357 -250
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js +182 -109
- package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +706 -546
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/InclusionControllerCC.js +197 -119
- package/build/esm/cc/InclusionControllerCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.js +973 -835
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +1697 -1496
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +266 -184
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/LockCC.d.ts.map +1 -1
- package/build/esm/cc/LockCC.js +247 -162
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +192 -141
- package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +312 -223
- package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/esm/cc/MeterCC.d.ts.map +1 -1
- package/build/esm/cc/MeterCC.js +896 -795
- package/build/esm/cc/MeterCC.js.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.js +631 -518
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +1106 -921
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultiCommandCC.js +166 -102
- package/build/esm/cc/MultiCommandCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +616 -497
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +621 -496
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NoOperationCC.js +82 -29
- package/build/esm/cc/NoOperationCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +413 -294
- package/build/esm/cc/NodeNamingCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +1097 -966
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/PowerlevelCC.js +437 -311
- package/build/esm/cc/PowerlevelCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +704 -543
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActivationCC.js +157 -100
- package/build/esm/cc/SceneActivationCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +357 -269
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +434 -346
- package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.js +1596 -1357
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.js +1633 -1406
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.js +876 -687
- package/build/esm/cc/SecurityCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +689 -526
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.js +349 -272
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +388 -284
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.js +184 -111
- package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatModeCC.js +435 -331
- package/build/esm/cc/ThermostatModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.js +180 -107
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.js +274 -185
- package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +674 -543
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.js +499 -360
- package/build/esm/cc/TimeCC.js.map +1 -1
- package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
- package/build/esm/cc/TimeParametersCC.js +296 -211
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/TransportServiceCC.js +464 -363
- package/build/esm/cc/TransportServiceCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +1443 -1205
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +744 -635
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
- package/build/esm/cc/WakeUpCC.js +494 -364
- package/build/esm/cc/WakeUpCC.js.map +1 -1
- package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/WindowCoveringCC.js +655 -530
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWaveLongRangeCC.js +51 -11
- package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +223 -162
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js +1443 -953
- package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +4 -4
- package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js +390 -286
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts +11 -15
- package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
- package/build/esm/lib/CommandClassDecorators.js +24 -24
- package/build/esm/lib/CommandClassDecorators.js.map +1 -1
- package/build/esm/lib/Security2/Extension.d.ts +1 -1
- package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
- package/build/esm/lib/Security2/Extension.js +207 -123
- package/build/esm/lib/Security2/Extension.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cc/ZWaveProtocolCC.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n\ttype BasicDeviceClass,\n\tCommandClasses,\n\ttype DataRate,\n\ttype FLiRS,\n\tMAX_NODES,\n\tMAX_REPEATERS,\n\ttype NodeInformationFrame,\n\ttype NodeProtocolInfoAndDeviceClass,\n\ttype NodeType,\n\ttype ProtocolVersion,\n\ttype WithAddress,\n\tZWaveDataRate,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tencodeBitMask,\n\tencodeNodeInformationFrame,\n\tencodeNodeProtocolInfoAndDeviceClass,\n\tparseBitMask,\n\tparseNodeInformationFrame,\n\tparseNodeProtocolInfoAndDeviceClass,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport type { CCEncodingContext, CCParsingContext } from \"@zwave-js/host\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport {\n\ttype NetworkTransferStatus,\n\tWakeUpTime,\n\tZWaveProtocolCommand,\n\tparseWakeUpTime,\n} from \"../lib/_Types.js\";\n\nenum DataRateBitmask {\n\t\"9k6\" = 0b001,\n\t\"40k\" = 0b010,\n\t\"100k\" = 0b100,\n}\n\nfunction dataRate2Bitmask(dataRate: ZWaveDataRate): DataRateBitmask {\n\treturn dataRate === ZWaveDataRate[\"100k\"]\n\t\t? DataRateBitmask[\"100k\"]\n\t\t: dataRate === ZWaveDataRate[\"40k\"]\n\t\t? DataRateBitmask[\"40k\"]\n\t\t: DataRateBitmask[\"9k6\"];\n}\n\nfunction bitmask2DataRate(mask: DataRateBitmask): ZWaveDataRate {\n\treturn mask === DataRateBitmask[\"100k\"]\n\t\t? ZWaveDataRate[\"100k\"]\n\t\t: mask === DataRateBitmask[\"40k\"]\n\t\t? ZWaveDataRate[\"40k\"]\n\t\t: ZWaveDataRate[\"9k6\"];\n}\n\n@commandClass(CommandClasses[\"Z-Wave Protocol\"])\n@implementedVersion(1)\nexport class ZWaveProtocolCC extends CommandClass {\n\tdeclare ccCommand: ZWaveProtocolCommand;\n}\n\n// @publicAPI\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ZWaveProtocolCCNodeInformationFrameOptions\n\textends NodeInformationFrame\n{}\n\n@CCCommand(ZWaveProtocolCommand.NodeInformationFrame)\nexport class ZWaveProtocolCCNodeInformationFrame extends ZWaveProtocolCC\n\timplements NodeInformationFrame\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNodeInformationFrameOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.basicDeviceClass = options.basicDeviceClass;\n\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t\tthis.specificDeviceClass = options.specificDeviceClass;\n\t\tthis.isListening = options.isListening;\n\t\tthis.isFrequentListening = options.isFrequentListening;\n\t\tthis.isRouting = options.isRouting;\n\t\tthis.supportedDataRates = options.supportedDataRates;\n\t\tthis.protocolVersion = options.protocolVersion;\n\t\tthis.optionalFunctionality = options.optionalFunctionality;\n\t\tthis.nodeType = options.nodeType;\n\t\tthis.supportsSecurity = options.supportsSecurity;\n\t\tthis.supportsBeaming = options.supportsBeaming;\n\t\tthis.supportedCCs = options.supportedCCs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNodeInformationFrame {\n\t\tconst nif = parseNodeInformationFrame(raw.payload);\n\n\t\treturn new ZWaveProtocolCCNodeInformationFrame({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t...nif,\n\t\t});\n\t}\n\n\tpublic basicDeviceClass: BasicDeviceClass;\n\tpublic genericDeviceClass: number;\n\tpublic specificDeviceClass: number;\n\tpublic isListening: boolean;\n\tpublic isFrequentListening: FLiRS;\n\tpublic isRouting: boolean;\n\tpublic supportedDataRates: DataRate[];\n\tpublic protocolVersion: ProtocolVersion;\n\tpublic optionalFunctionality: boolean;\n\tpublic nodeType: NodeType;\n\tpublic supportsSecurity: boolean;\n\tpublic supportsBeaming: boolean;\n\tpublic supportedCCs: CommandClasses[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = encodeNodeInformationFrame(this);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.RequestNodeInformationFrame)\n@expectedCCResponse(ZWaveProtocolCCNodeInformationFrame)\nexport class ZWaveProtocolCCRequestNodeInformationFrame\n\textends ZWaveProtocolCC\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCAssignIDsOptions {\n\tassignedNodeId: number;\n\thomeId: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignIDs)\nexport class ZWaveProtocolCCAssignIDs extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCAssignIDsOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.assignedNodeId = options.assignedNodeId;\n\t\tthis.homeId = options.homeId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCAssignIDs {\n\t\tvalidatePayload(raw.payload.length >= 5);\n\t\tconst assignedNodeId = raw.payload[0];\n\t\tconst homeId = raw.payload.readUInt32BE(1);\n\n\t\treturn new ZWaveProtocolCCAssignIDs({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tassignedNodeId,\n\t\t\thomeId,\n\t\t});\n\t}\n\n\tpublic assignedNodeId: number;\n\tpublic homeId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = new Bytes(5);\n\t\tthis.payload[0] = this.assignedNodeId;\n\t\tthis.payload.writeUInt32BE(this.homeId, 1);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCFindNodesInRangeOptions {\n\tcandidateNodeIds: number[];\n\twakeUpTime: WakeUpTime;\n\tdataRate?: ZWaveDataRate;\n}\n\n@CCCommand(ZWaveProtocolCommand.FindNodesInRange)\nexport class ZWaveProtocolCCFindNodesInRange extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCFindNodesInRangeOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.candidateNodeIds = options.candidateNodeIds;\n\t\tthis.wakeUpTime = options.wakeUpTime;\n\t\tthis.dataRate = options.dataRate ?? ZWaveDataRate[\"9k6\"];\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCFindNodesInRange {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst speedPresent = raw.payload[0] & 0b1000_0000;\n\t\tconst bitmaskLength = raw.payload[0] & 0b0001_1111;\n\n\t\tvalidatePayload(raw.payload.length >= 1 + bitmaskLength);\n\t\tconst candidateNodeIds = parseBitMask(\n\t\t\traw.payload.subarray(1, 1 + bitmaskLength),\n\t\t);\n\t\tconst rest = raw.payload.subarray(1 + bitmaskLength);\n\n\t\tlet dataRate: ZWaveDataRate;\n\t\tlet wakeUpTime: WakeUpTime;\n\t\tif (speedPresent) {\n\t\t\tvalidatePayload(rest.length >= 1);\n\t\t\tif (rest.length === 1) {\n\t\t\t\tdataRate = rest[0] & 0b111;\n\t\t\t\twakeUpTime = WakeUpTime.None;\n\t\t\t} else if (rest.length === 2) {\n\t\t\t\twakeUpTime = parseWakeUpTime(rest[0]);\n\t\t\t\tdataRate = rest[1] & 0b111;\n\t\t\t} else {\n\t\t\t\tvalidatePayload.fail(\"Invalid payload length\");\n\t\t\t}\n\t\t} else if (rest.length >= 1) {\n\t\t\twakeUpTime = parseWakeUpTime(rest[0]);\n\t\t\tdataRate = ZWaveDataRate[\"9k6\"];\n\t\t} else {\n\t\t\twakeUpTime = WakeUpTime.None;\n\t\t\tdataRate = ZWaveDataRate[\"9k6\"];\n\t\t}\n\n\t\treturn new ZWaveProtocolCCFindNodesInRange({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tcandidateNodeIds,\n\t\t\tdataRate,\n\t\t\twakeUpTime,\n\t\t});\n\t}\n\n\tpublic candidateNodeIds: number[];\n\tpublic wakeUpTime: WakeUpTime;\n\tpublic dataRate: ZWaveDataRate;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst nodesBitmask = encodeBitMask(this.candidateNodeIds, MAX_NODES);\n\t\tconst speedAndLength = 0b1000_0000 | nodesBitmask.length;\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([speedAndLength]),\n\t\t\tnodesBitmask,\n\t\t\tBytes.from([this.wakeUpTime, this.dataRate]),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCRangeInfoOptions {\n\tneighborNodeIds: number[];\n\twakeUpTime?: WakeUpTime;\n}\n\n@CCCommand(ZWaveProtocolCommand.RangeInfo)\nexport class ZWaveProtocolCCRangeInfo extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCRangeInfoOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.neighborNodeIds = options.neighborNodeIds;\n\t\tthis.wakeUpTime = options.wakeUpTime;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCRangeInfo {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst bitmaskLength = raw.payload[0] & 0b0001_1111;\n\n\t\tvalidatePayload(raw.payload.length >= 1 + bitmaskLength);\n\t\tconst neighborNodeIds = parseBitMask(\n\t\t\traw.payload.subarray(1, 1 + bitmaskLength),\n\t\t);\n\n\t\tlet wakeUpTime: WakeUpTime | undefined;\n\t\tif (raw.payload.length >= 2 + bitmaskLength) {\n\t\t\twakeUpTime = parseWakeUpTime(\n\t\t\t\traw.payload[1 + bitmaskLength],\n\t\t\t);\n\t\t}\n\n\t\treturn new ZWaveProtocolCCRangeInfo({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tneighborNodeIds,\n\t\t\twakeUpTime,\n\t\t});\n\t}\n\n\tpublic neighborNodeIds: number[];\n\tpublic wakeUpTime?: WakeUpTime;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst nodesBitmask = encodeBitMask(this.neighborNodeIds, MAX_NODES);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([nodesBitmask.length]),\n\t\t\tnodesBitmask,\n\t\t\tthis.wakeUpTime != undefined\n\t\t\t\t? Bytes.from([this.wakeUpTime])\n\t\t\t\t: new Bytes(),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.GetNodesInRange)\n@expectedCCResponse(ZWaveProtocolCCRangeInfo)\nexport class ZWaveProtocolCCGetNodesInRange extends ZWaveProtocolCC {}\n\n// @publicAPI\nexport interface ZWaveProtocolCCCommandCompleteOptions {\n\tsequenceNumber: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.CommandComplete)\nexport class ZWaveProtocolCCCommandComplete extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCCommandCompleteOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sequenceNumber = options.sequenceNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCCommandComplete {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst sequenceNumber = raw.payload[0];\n\n\t\treturn new ZWaveProtocolCCCommandComplete({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsequenceNumber,\n\t\t});\n\t}\n\n\tpublic sequenceNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.sequenceNumber]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferPresentationOptions {\n\tsupportsNWI: boolean;\n\tincludeNode: boolean;\n\texcludeNode: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferPresentation)\nexport class ZWaveProtocolCCTransferPresentation extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCTransferPresentationOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.includeNode && options.excludeNode) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`${this.constructor.name}: the includeNode and excludeNode options cannot both be true`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.supportsNWI = options.supportsNWI;\n\t\tthis.includeNode = options.includeNode;\n\t\tthis.excludeNode = options.excludeNode;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferPresentation {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst option = raw.payload[0];\n\t\tconst supportsNWI = !!(option & 0b0001);\n\t\tconst excludeNode = !!(option & 0b0010);\n\t\tconst includeNode = !!(option & 0b0100);\n\n\t\treturn new ZWaveProtocolCCTransferPresentation({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportsNWI,\n\t\t\texcludeNode,\n\t\t\tincludeNode,\n\t\t});\n\t}\n\n\tpublic supportsNWI: boolean;\n\tpublic includeNode: boolean;\n\tpublic excludeNode: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\t(this.supportsNWI ? 0b0001 : 0)\n\t\t\t| (this.excludeNode ? 0b0010 : 0)\n\t\t\t| (this.includeNode ? 0b0100 : 0),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferNodeInformationOptions\n\textends NodeProtocolInfoAndDeviceClass\n{\n\tsequenceNumber: number;\n\tsourceNodeId: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferNodeInformation)\nexport class ZWaveProtocolCCTransferNodeInformation extends ZWaveProtocolCC\n\timplements NodeProtocolInfoAndDeviceClass\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCTransferNodeInformationOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.sequenceNumber = options.sequenceNumber;\n\t\tthis.sourceNodeId = options.sourceNodeId;\n\n\t\tthis.basicDeviceClass = options.basicDeviceClass;\n\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t\tthis.specificDeviceClass = options.specificDeviceClass;\n\t\tthis.isListening = options.isListening;\n\t\tthis.isFrequentListening = options.isFrequentListening;\n\t\tthis.isRouting = options.isRouting;\n\t\tthis.supportedDataRates = options.supportedDataRates;\n\t\tthis.protocolVersion = options.protocolVersion;\n\t\tthis.optionalFunctionality = options.optionalFunctionality;\n\t\tthis.nodeType = options.nodeType;\n\t\tthis.supportsSecurity = options.supportsSecurity;\n\t\tthis.supportsBeaming = options.supportsBeaming;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferNodeInformation {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst sequenceNumber = raw.payload[0];\n\t\tconst sourceNodeId = raw.payload[1];\n\n\t\tconst { info } = parseNodeProtocolInfoAndDeviceClass(\n\t\t\traw.payload.subarray(2),\n\t\t);\n\n\t\treturn new ZWaveProtocolCCTransferNodeInformation({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsequenceNumber,\n\t\t\tsourceNodeId,\n\t\t\t...info,\n\t\t});\n\t}\n\n\tpublic sequenceNumber: number;\n\tpublic sourceNodeId: number;\n\tpublic basicDeviceClass: BasicDeviceClass;\n\tpublic genericDeviceClass: number;\n\tpublic specificDeviceClass: number;\n\tpublic isListening: boolean;\n\tpublic isFrequentListening: FLiRS;\n\tpublic isRouting: boolean;\n\tpublic supportedDataRates: DataRate[];\n\tpublic protocolVersion: ProtocolVersion;\n\tpublic optionalFunctionality: boolean;\n\tpublic nodeType: NodeType;\n\tpublic supportsSecurity: boolean;\n\tpublic supportsBeaming: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.sequenceNumber, this.sourceNodeId]),\n\t\t\tencodeNodeProtocolInfoAndDeviceClass(this),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferRangeInformationOptions {\n\tsequenceNumber: number;\n\ttestedNodeId: number;\n\tneighborNodeIds: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferRangeInformation)\nexport class ZWaveProtocolCCTransferRangeInformation extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCTransferRangeInformationOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sequenceNumber = options.sequenceNumber;\n\t\tthis.testedNodeId = options.testedNodeId;\n\t\tthis.neighborNodeIds = options.neighborNodeIds;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferRangeInformation {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst sequenceNumber = raw.payload[0];\n\t\tconst testedNodeId = raw.payload[1];\n\t\tconst bitmaskLength = raw.payload[2];\n\n\t\tvalidatePayload(raw.payload.length >= 3 + bitmaskLength);\n\t\tconst neighborNodeIds = parseBitMask(\n\t\t\traw.payload.subarray(3, 3 + bitmaskLength),\n\t\t);\n\n\t\treturn new ZWaveProtocolCCTransferRangeInformation({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsequenceNumber,\n\t\t\ttestedNodeId,\n\t\t\tneighborNodeIds,\n\t\t});\n\t}\n\n\tpublic sequenceNumber: number;\n\tpublic testedNodeId: number;\n\tpublic neighborNodeIds: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst nodesBitmask = encodeBitMask(this.neighborNodeIds, MAX_NODES);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\tthis.sequenceNumber,\n\t\t\t\tthis.testedNodeId,\n\t\t\t\tnodesBitmask.length,\n\t\t\t]),\n\t\t\tnodesBitmask,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferEndOptions {\n\tstatus: NetworkTransferStatus;\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferEnd)\nexport class ZWaveProtocolCCTransferEnd extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCTransferEndOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.status = options.status;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferEnd {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: NetworkTransferStatus = raw.payload[0];\n\n\t\treturn new ZWaveProtocolCCTransferEnd({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic status: NetworkTransferStatus;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.status]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCAssignReturnRouteOptions {\n\tdestinationNodeId: number;\n\trouteIndex: number;\n\trepeaters: number[];\n\tdestinationWakeUp: WakeUpTime;\n\tdestinationSpeed: ZWaveDataRate;\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignReturnRoute)\nexport class ZWaveProtocolCCAssignReturnRoute extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCAssignReturnRouteOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.repeaters.length > MAX_REPEATERS) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`${this.constructor.name}: too many repeaters`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tthis.destinationNodeId = options.destinationNodeId;\n\t\tthis.routeIndex = options.routeIndex;\n\t\tthis.repeaters = options.repeaters;\n\t\tthis.destinationWakeUp = options.destinationWakeUp;\n\t\tthis.destinationSpeed = options.destinationSpeed;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCAssignReturnRoute {\n\t\tvalidatePayload(raw.payload.length >= 7);\n\t\tconst destinationNodeId = raw.payload[0];\n\t\tconst routeIndex = raw.payload[1] >>> 4;\n\t\tconst numRepeaters = raw.payload[1] & 0b1111;\n\t\tconst repeaters = [...raw.payload.subarray(2, 2 + numRepeaters)];\n\t\tconst speedAndWakeup = raw.payload[2 + numRepeaters];\n\t\tconst destinationSpeed = bitmask2DataRate(\n\t\t\t(speedAndWakeup >>> 3) & 0b111,\n\t\t);\n\t\tconst destinationWakeUp: WakeUpTime = (speedAndWakeup >>> 1) & 0b11;\n\n\t\treturn new ZWaveProtocolCCAssignReturnRoute({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tdestinationNodeId,\n\t\t\trouteIndex,\n\t\t\trepeaters,\n\t\t\tdestinationSpeed,\n\t\t\tdestinationWakeUp,\n\t\t});\n\t}\n\n\tpublic destinationNodeId: number;\n\tpublic routeIndex: number;\n\tpublic repeaters: number[];\n\tpublic destinationWakeUp: WakeUpTime;\n\tpublic destinationSpeed: ZWaveDataRate;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst routeByte = (this.routeIndex << 4) | this.repeaters.length;\n\t\tconst speedMask = dataRate2Bitmask(this.destinationSpeed);\n\t\tconst speedByte = (speedMask << 3) | (this.destinationWakeUp << 1);\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.destinationNodeId,\n\t\t\trouteByte,\n\t\t\t...this.repeaters,\n\t\t\tspeedByte,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNewNodeRegisteredOptions\n\textends NodeInformationFrame\n{\n\tnewNodeId: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.NewNodeRegistered)\nexport class ZWaveProtocolCCNewNodeRegistered extends ZWaveProtocolCC\n\timplements NodeInformationFrame\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNewNodeRegisteredOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.newNodeId = options.newNodeId;\n\t\tthis.basicDeviceClass = options.basicDeviceClass;\n\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t\tthis.specificDeviceClass = options.specificDeviceClass;\n\t\tthis.isListening = options.isListening;\n\t\tthis.isFrequentListening = options.isFrequentListening;\n\t\tthis.isRouting = options.isRouting;\n\t\tthis.supportedDataRates = options.supportedDataRates;\n\t\tthis.protocolVersion = options.protocolVersion;\n\t\tthis.optionalFunctionality = options.optionalFunctionality;\n\t\tthis.nodeType = options.nodeType;\n\t\tthis.supportsSecurity = options.supportsSecurity;\n\t\tthis.supportsBeaming = options.supportsBeaming;\n\t\tthis.supportedCCs = options.supportedCCs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNewNodeRegistered {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst newNodeId = raw.payload[0];\n\n\t\tconst nif = parseNodeInformationFrame(raw.payload.subarray(1));\n\n\t\treturn new ZWaveProtocolCCNewNodeRegistered({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnewNodeId,\n\t\t\t...nif,\n\t\t});\n\t}\n\n\tpublic newNodeId: number;\n\tpublic basicDeviceClass: BasicDeviceClass;\n\tpublic genericDeviceClass: number;\n\tpublic specificDeviceClass: number;\n\tpublic isListening: boolean;\n\tpublic isFrequentListening: FLiRS;\n\tpublic isRouting: boolean;\n\tpublic supportedDataRates: DataRate[];\n\tpublic protocolVersion: ProtocolVersion;\n\tpublic optionalFunctionality: boolean;\n\tpublic nodeType: NodeType;\n\tpublic supportsSecurity: boolean;\n\tpublic supportsBeaming: boolean;\n\tpublic supportedCCs: CommandClasses[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.newNodeId]),\n\t\t\tencodeNodeInformationFrame(this),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNewRangeRegisteredOptions {\n\ttestedNodeId: number;\n\tneighborNodeIds: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.NewRangeRegistered)\nexport class ZWaveProtocolCCNewRangeRegistered extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNewRangeRegisteredOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.testedNodeId = options.testedNodeId;\n\t\tthis.neighborNodeIds = options.neighborNodeIds;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNewRangeRegistered {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst testedNodeId = raw.payload[0];\n\t\tconst numNeighbors = raw.payload[1];\n\t\tconst neighborNodeIds = [\n\t\t\t...raw.payload.subarray(2, 2 + numNeighbors),\n\t\t];\n\n\t\treturn new ZWaveProtocolCCNewRangeRegistered({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttestedNodeId,\n\t\t\tneighborNodeIds,\n\t\t});\n\t}\n\n\tpublic testedNodeId: number;\n\tpublic neighborNodeIds: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst nodesBitmask = encodeBitMask(this.neighborNodeIds, MAX_NODES);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.testedNodeId, nodesBitmask.length]),\n\t\t\tnodesBitmask,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferNewPrimaryControllerCompleteOptions {\n\tgenericDeviceClass: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferNewPrimaryControllerComplete)\nexport class ZWaveProtocolCCTransferNewPrimaryControllerComplete\n\textends ZWaveProtocolCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tZWaveProtocolCCTransferNewPrimaryControllerCompleteOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferNewPrimaryControllerComplete {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst genericDeviceClass = raw.payload[0];\n\n\t\treturn new ZWaveProtocolCCTransferNewPrimaryControllerComplete({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgenericDeviceClass,\n\t\t});\n\t}\n\n\tpublic genericDeviceClass: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.genericDeviceClass]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.AutomaticControllerUpdateStart)\nexport class ZWaveProtocolCCAutomaticControllerUpdateStart\n\textends ZWaveProtocolCC\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSUCNodeIDOptions {\n\tsucNodeId: number;\n\tisSIS: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.SUCNodeID)\nexport class ZWaveProtocolCCSUCNodeID extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCSUCNodeIDOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sucNodeId = options.sucNodeId;\n\t\tthis.isSIS = options.isSIS;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSUCNodeID {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst sucNodeId = raw.payload[0];\n\t\tconst capabilities = raw.payload[1] ?? 0;\n\t\tconst isSIS = !!(capabilities & 0b1);\n\n\t\treturn new ZWaveProtocolCCSUCNodeID({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsucNodeId,\n\t\t\tisSIS,\n\t\t});\n\t}\n\n\tpublic sucNodeId: number;\n\tpublic isSIS: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.sucNodeId, this.isSIS ? 0b1 : 0]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSetSUCOptions {\n\tenableSIS: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.SetSUC)\nexport class ZWaveProtocolCCSetSUC extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCSetSUCOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.enableSIS = options.enableSIS;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSetSUC {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\t// Byte 0 must be 0x01 or ignored\n\t\tconst capabilities = raw.payload[1] ?? 0;\n\t\tconst enableSIS = !!(capabilities & 0b1);\n\n\t\treturn new ZWaveProtocolCCSetSUC({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tenableSIS,\n\t\t});\n\t}\n\n\tpublic enableSIS: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([0x01, this.enableSIS ? 0b1 : 0]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSetSUCAckOptions {\n\taccepted: boolean;\n\tisSIS: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.SetSUCAck)\nexport class ZWaveProtocolCCSetSUCAck extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCSetSUCAckOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.accepted = options.accepted;\n\t\tthis.isSIS = options.isSIS;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSetSUCAck {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst accepted = raw.payload[0] === 0x01;\n\t\tconst capabilities = raw.payload[1] ?? 0;\n\t\tconst isSIS = !!(capabilities & 0b1);\n\n\t\treturn new ZWaveProtocolCCSetSUCAck({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\taccepted,\n\t\t\tisSIS,\n\t\t});\n\t}\n\n\tpublic accepted: boolean;\n\tpublic isSIS: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.accepted ? 0x01 : 0x00,\n\t\t\tthis.isSIS ? 0b1 : 0,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignSUCReturnRoute)\nexport class ZWaveProtocolCCAssignSUCReturnRoute\n\textends ZWaveProtocolCCAssignReturnRoute\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCStaticRouteRequestOptions {\n\tnodeIds: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.StaticRouteRequest)\nexport class ZWaveProtocolCCStaticRouteRequest extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCStaticRouteRequestOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.nodeIds.some((n) => n < 1 || n > MAX_NODES)) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`All node IDs must be between 1 and ${MAX_NODES}!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.nodeIds = options.nodeIds;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCStaticRouteRequest {\n\t\tvalidatePayload(raw.payload.length >= 5);\n\t\tconst nodeIds = [...raw.payload.subarray(0, 5)].filter(\n\t\t\t(id) => id > 0 && id <= MAX_NODES,\n\t\t);\n\n\t\treturn new ZWaveProtocolCCStaticRouteRequest({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnodeIds,\n\t\t});\n\t}\n\n\tpublic nodeIds: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.alloc(5, 0);\n\t\tfor (let i = 0; i < this.nodeIds.length && i < 5; i++) {\n\t\t\tthis.payload[i] = this.nodeIds[i];\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCLostOptions {\n\tlostNodeId: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.Lost)\nexport class ZWaveProtocolCCLost extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCLostOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.lostNodeId = options.lostNodeId;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCLost {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst lostNodeId = raw.payload[0];\n\n\t\treturn new ZWaveProtocolCCLost({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tlostNodeId,\n\t\t});\n\t}\n\n\tpublic lostNodeId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.lostNodeId]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCAcceptLostOptions {\n\taccepted: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.AcceptLost)\nexport class ZWaveProtocolCCAcceptLost extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCAcceptLostOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.accepted = options.accepted;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCAcceptLost {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tvalidatePayload(\n\t\t\traw.payload[0] === 0x04 || raw.payload[0] === 0x05,\n\t\t);\n\t\tconst accepted = raw.payload[0] === 0x05;\n\n\t\treturn new ZWaveProtocolCCAcceptLost({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\taccepted,\n\t\t});\n\t}\n\n\tpublic accepted: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.accepted ? 0x05 : 0x04]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNOPPowerOptions {\n\tpowerDampening: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.NOPPower)\nexport class ZWaveProtocolCCNOPPower extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNOPPowerOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.powerDampening < 0 || options.powerDampening > 14) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`${this.constructor.name}: power dampening must be between 0 and 14 dBm!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.powerDampening = options.powerDampening;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNOPPower {\n\t\tlet powerDampening;\n\n\t\tif (raw.payload.length >= 2) {\n\t\t\t// Ignore byte 0\n\t\t\tpowerDampening = raw.payload[1];\n\t\t} else if (raw.payload.length === 1) {\n\t\t\tpowerDampening = [\n\t\t\t\t0xf0,\n\t\t\t\t0xc8,\n\t\t\t\t0xa7,\n\t\t\t\t0x91,\n\t\t\t\t0x77,\n\t\t\t\t0x67,\n\t\t\t\t0x60,\n\t\t\t\t0x46,\n\t\t\t\t0x38,\n\t\t\t\t0x35,\n\t\t\t\t0x32,\n\t\t\t\t0x30,\n\t\t\t\t0x24,\n\t\t\t\t0x22,\n\t\t\t\t0x20,\n\t\t\t].indexOf(raw.payload[0]);\n\t\t\tif (powerDampening === -1) powerDampening = 0;\n\t\t} else {\n\t\t\tvalidatePayload.fail(\"Invalid payload length!\");\n\t\t}\n\n\t\treturn new ZWaveProtocolCCNOPPower({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tpowerDampening,\n\t\t});\n\t}\n\n\t// Power dampening in (negative) dBm. A value of 2 means -2 dBm.\n\tpublic powerDampening: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([0, this.powerDampening]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCReservedIDsOptions {\n\treservedNodeIDs: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.ReservedIDs)\nexport class ZWaveProtocolCCReservedIDs extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCReservedIDsOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.reservedNodeIDs = options.reservedNodeIDs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCReservedIDs {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst numNodeIDs = raw.payload[0];\n\t\tvalidatePayload(raw.payload.length >= 1 + numNodeIDs);\n\t\tconst reservedNodeIDs = [\n\t\t\t...raw.payload.subarray(1, 1 + numNodeIDs),\n\t\t];\n\n\t\treturn new ZWaveProtocolCCReservedIDs({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\treservedNodeIDs,\n\t\t});\n\t}\n\n\tpublic reservedNodeIDs: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.reservedNodeIDs.length,\n\t\t\t...this.reservedNodeIDs,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCReserveNodeIDsOptions {\n\tnumNodeIDs: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.ReserveNodeIDs)\n@expectedCCResponse(ZWaveProtocolCCReservedIDs)\nexport class ZWaveProtocolCCReserveNodeIDs extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCReserveNodeIDsOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.numNodeIDs = options.numNodeIDs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCReserveNodeIDs {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst numNodeIDs = raw.payload[0];\n\n\t\treturn new ZWaveProtocolCCReserveNodeIDs({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnumNodeIDs,\n\t\t});\n\t}\n\n\tpublic numNodeIDs: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.numNodeIDs]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNodesExistReplyOptions {\n\tnodeMaskType: number;\n\tnodeListUpdated: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.NodesExistReply)\nexport class ZWaveProtocolCCNodesExistReply extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNodesExistReplyOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.nodeMaskType = options.nodeMaskType;\n\t\tthis.nodeListUpdated = options.nodeListUpdated;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNodesExistReply {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst nodeMaskType = raw.payload[0];\n\t\tconst nodeListUpdated = raw.payload[1] === 0x01;\n\n\t\treturn new ZWaveProtocolCCNodesExistReply({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnodeMaskType,\n\t\t\tnodeListUpdated,\n\t\t});\n\t}\n\n\tpublic nodeMaskType: number;\n\tpublic nodeListUpdated: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.nodeMaskType,\n\t\t\tthis.nodeListUpdated ? 0x01 : 0x00,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\nfunction testResponseForZWaveProtocolNodesExist(\n\tsent: ZWaveProtocolCCNodesExist,\n\treceived: ZWaveProtocolCCNodesExistReply,\n) {\n\treturn received.nodeMaskType === sent.nodeMaskType;\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNodesExistOptions {\n\tnodeMaskType: number;\n\tnodeIDs: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.NodesExist)\n@expectedCCResponse(\n\tZWaveProtocolCCNodesExistReply,\n\ttestResponseForZWaveProtocolNodesExist,\n)\nexport class ZWaveProtocolCCNodesExist extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNodesExistOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.nodeMaskType = options.nodeMaskType;\n\t\tthis.nodeIDs = options.nodeIDs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNodesExist {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst nodeMaskType = raw.payload[0];\n\t\tconst numNodeIDs = raw.payload[1];\n\t\tvalidatePayload(raw.payload.length >= 2 + numNodeIDs);\n\t\tconst nodeIDs = [...raw.payload.subarray(2, 2 + numNodeIDs)];\n\n\t\treturn new ZWaveProtocolCCNodesExist({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnodeMaskType,\n\t\t\tnodeIDs,\n\t\t});\n\t}\n\n\tpublic nodeMaskType: number;\n\tpublic nodeIDs: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.nodeMaskType,\n\t\t\tthis.nodeIDs.length,\n\t\t\t...this.nodeIDs,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSetNWIModeOptions {\n\tenabled: boolean;\n\ttimeoutMinutes?: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.SetNWIMode)\nexport class ZWaveProtocolCCSetNWIMode extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCSetNWIModeOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.enabled = options.enabled;\n\t\tthis.timeoutMinutes = options.timeoutMinutes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSetNWIMode {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst enabled = raw.payload[0] === 0x01;\n\t\tconst timeoutMinutes: number | undefined = raw.payload[1] || undefined;\n\n\t\treturn new ZWaveProtocolCCSetNWIMode({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tenabled,\n\t\t\ttimeoutMinutes,\n\t\t});\n\t}\n\n\tpublic enabled: boolean;\n\tpublic timeoutMinutes?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.enabled ? 0x01 : 0x00,\n\t\t\tthis.timeoutMinutes ?? 0x00,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.ExcludeRequest)\nexport class ZWaveProtocolCCExcludeRequest\n\textends ZWaveProtocolCCNodeInformationFrame\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCAssignReturnRoutePriorityOptions {\n\ttargetNodeId: number;\n\trouteNumber: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignReturnRoutePriority)\nexport class ZWaveProtocolCCAssignReturnRoutePriority extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCAssignReturnRoutePriorityOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.targetNodeId = options.targetNodeId;\n\t\tthis.routeNumber = options.routeNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCAssignReturnRoutePriority {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst targetNodeId = raw.payload[0];\n\t\tconst routeNumber = raw.payload[1];\n\n\t\treturn new ZWaveProtocolCCAssignReturnRoutePriority({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttargetNodeId,\n\t\t\trouteNumber,\n\t\t});\n\t}\n\n\tpublic targetNodeId: number;\n\tpublic routeNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.targetNodeId, this.routeNumber]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignSUCReturnRoutePriority)\nexport class ZWaveProtocolCCAssignSUCReturnRoutePriority\n\textends ZWaveProtocolCCAssignReturnRoutePriority\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSmartStartIncludedNodeInformationOptions {\n\tnwiHomeId: Uint8Array;\n}\n\n@CCCommand(ZWaveProtocolCommand.SmartStartIncludedNodeInformation)\nexport class ZWaveProtocolCCSmartStartIncludedNodeInformation\n\textends ZWaveProtocolCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tZWaveProtocolCCSmartStartIncludedNodeInformationOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.nwiHomeId.length !== 4) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`nwiHomeId must have length 4`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.nwiHomeId = options.nwiHomeId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSmartStartIncludedNodeInformation {\n\t\tvalidatePayload(raw.payload.length >= 4);\n\t\tconst nwiHomeId = raw.payload.subarray(0, 4);\n\n\t\treturn new ZWaveProtocolCCSmartStartIncludedNodeInformation({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnwiHomeId,\n\t\t});\n\t}\n\n\tpublic nwiHomeId: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from(this.nwiHomeId);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.SmartStartPrime)\nexport class ZWaveProtocolCCSmartStartPrime\n\textends ZWaveProtocolCCNodeInformationFrame\n{}\n\n@CCCommand(ZWaveProtocolCommand.SmartStartInclusionRequest)\nexport class ZWaveProtocolCCSmartStartInclusionRequest\n\textends ZWaveProtocolCCNodeInformationFrame\n{}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["DataRateBitmask"
|
|
4
|
+
"sourcesContent": ["import {\n\ttype BasicDeviceClass,\n\tCommandClasses,\n\ttype DataRate,\n\ttype FLiRS,\n\tMAX_NODES,\n\tMAX_REPEATERS,\n\ttype NodeInformationFrame,\n\ttype NodeProtocolInfoAndDeviceClass,\n\ttype NodeType,\n\ttype ProtocolVersion,\n\ttype WithAddress,\n\tZWaveDataRate,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tencodeBitMask,\n\tencodeNodeInformationFrame,\n\tencodeNodeProtocolInfoAndDeviceClass,\n\tparseBitMask,\n\tparseNodeInformationFrame,\n\tparseNodeProtocolInfoAndDeviceClass,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport type { CCEncodingContext, CCParsingContext } from \"@zwave-js/host\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport {\n\ttype NetworkTransferStatus,\n\tWakeUpTime,\n\tZWaveProtocolCommand,\n\tparseWakeUpTime,\n} from \"../lib/_Types.js\";\n\nenum DataRateBitmask {\n\t\"9k6\" = 0b001,\n\t\"40k\" = 0b010,\n\t\"100k\" = 0b100,\n}\n\nfunction dataRate2Bitmask(dataRate: ZWaveDataRate): DataRateBitmask {\n\treturn dataRate === ZWaveDataRate[\"100k\"]\n\t\t? DataRateBitmask[\"100k\"]\n\t\t: dataRate === ZWaveDataRate[\"40k\"]\n\t\t? DataRateBitmask[\"40k\"]\n\t\t: DataRateBitmask[\"9k6\"];\n}\n\nfunction bitmask2DataRate(mask: DataRateBitmask): ZWaveDataRate {\n\treturn mask === DataRateBitmask[\"100k\"]\n\t\t? ZWaveDataRate[\"100k\"]\n\t\t: mask === DataRateBitmask[\"40k\"]\n\t\t? ZWaveDataRate[\"40k\"]\n\t\t: ZWaveDataRate[\"9k6\"];\n}\n\n@commandClass(CommandClasses[\"Z-Wave Protocol\"])\n@implementedVersion(1)\nexport class ZWaveProtocolCC extends CommandClass {\n\tdeclare ccCommand: ZWaveProtocolCommand;\n}\n\n// @publicAPI\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ZWaveProtocolCCNodeInformationFrameOptions\n\textends NodeInformationFrame\n{}\n\n@CCCommand(ZWaveProtocolCommand.NodeInformationFrame)\nexport class ZWaveProtocolCCNodeInformationFrame extends ZWaveProtocolCC\n\timplements NodeInformationFrame\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNodeInformationFrameOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.basicDeviceClass = options.basicDeviceClass;\n\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t\tthis.specificDeviceClass = options.specificDeviceClass;\n\t\tthis.isListening = options.isListening;\n\t\tthis.isFrequentListening = options.isFrequentListening;\n\t\tthis.isRouting = options.isRouting;\n\t\tthis.supportedDataRates = options.supportedDataRates;\n\t\tthis.protocolVersion = options.protocolVersion;\n\t\tthis.optionalFunctionality = options.optionalFunctionality;\n\t\tthis.nodeType = options.nodeType;\n\t\tthis.supportsSecurity = options.supportsSecurity;\n\t\tthis.supportsBeaming = options.supportsBeaming;\n\t\tthis.supportedCCs = options.supportedCCs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNodeInformationFrame {\n\t\tconst nif = parseNodeInformationFrame(raw.payload);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t...nif,\n\t\t});\n\t}\n\n\tpublic basicDeviceClass: BasicDeviceClass;\n\tpublic genericDeviceClass: number;\n\tpublic specificDeviceClass: number;\n\tpublic isListening: boolean;\n\tpublic isFrequentListening: FLiRS;\n\tpublic isRouting: boolean;\n\tpublic supportedDataRates: DataRate[];\n\tpublic protocolVersion: ProtocolVersion;\n\tpublic optionalFunctionality: boolean;\n\tpublic nodeType: NodeType;\n\tpublic supportsSecurity: boolean;\n\tpublic supportsBeaming: boolean;\n\tpublic supportedCCs: CommandClasses[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = encodeNodeInformationFrame(this);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.RequestNodeInformationFrame)\n@expectedCCResponse(ZWaveProtocolCCNodeInformationFrame)\nexport class ZWaveProtocolCCRequestNodeInformationFrame\n\textends ZWaveProtocolCC\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCAssignIDsOptions {\n\tassignedNodeId: number;\n\thomeId: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignIDs)\nexport class ZWaveProtocolCCAssignIDs extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCAssignIDsOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.assignedNodeId = options.assignedNodeId;\n\t\tthis.homeId = options.homeId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCAssignIDs {\n\t\tvalidatePayload(raw.payload.length >= 5);\n\t\tconst assignedNodeId = raw.payload[0];\n\t\tconst homeId = raw.payload.readUInt32BE(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tassignedNodeId,\n\t\t\thomeId,\n\t\t});\n\t}\n\n\tpublic assignedNodeId: number;\n\tpublic homeId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = new Bytes(5);\n\t\tthis.payload[0] = this.assignedNodeId;\n\t\tthis.payload.writeUInt32BE(this.homeId, 1);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCFindNodesInRangeOptions {\n\tcandidateNodeIds: number[];\n\twakeUpTime: WakeUpTime;\n\tdataRate?: ZWaveDataRate;\n}\n\n@CCCommand(ZWaveProtocolCommand.FindNodesInRange)\nexport class ZWaveProtocolCCFindNodesInRange extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCFindNodesInRangeOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.candidateNodeIds = options.candidateNodeIds;\n\t\tthis.wakeUpTime = options.wakeUpTime;\n\t\tthis.dataRate = options.dataRate ?? ZWaveDataRate[\"9k6\"];\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCFindNodesInRange {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst speedPresent = raw.payload[0] & 0b1000_0000;\n\t\tconst bitmaskLength = raw.payload[0] & 0b0001_1111;\n\n\t\tvalidatePayload(raw.payload.length >= 1 + bitmaskLength);\n\t\tconst candidateNodeIds = parseBitMask(\n\t\t\traw.payload.subarray(1, 1 + bitmaskLength),\n\t\t);\n\t\tconst rest = raw.payload.subarray(1 + bitmaskLength);\n\n\t\tlet dataRate: ZWaveDataRate;\n\t\tlet wakeUpTime: WakeUpTime;\n\t\tif (speedPresent) {\n\t\t\tvalidatePayload(rest.length >= 1);\n\t\t\tif (rest.length === 1) {\n\t\t\t\tdataRate = rest[0] & 0b111;\n\t\t\t\twakeUpTime = WakeUpTime.None;\n\t\t\t} else if (rest.length === 2) {\n\t\t\t\twakeUpTime = parseWakeUpTime(rest[0]);\n\t\t\t\tdataRate = rest[1] & 0b111;\n\t\t\t} else {\n\t\t\t\tvalidatePayload.fail(\"Invalid payload length\");\n\t\t\t}\n\t\t} else if (rest.length >= 1) {\n\t\t\twakeUpTime = parseWakeUpTime(rest[0]);\n\t\t\tdataRate = ZWaveDataRate[\"9k6\"];\n\t\t} else {\n\t\t\twakeUpTime = WakeUpTime.None;\n\t\t\tdataRate = ZWaveDataRate[\"9k6\"];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tcandidateNodeIds,\n\t\t\tdataRate,\n\t\t\twakeUpTime,\n\t\t});\n\t}\n\n\tpublic candidateNodeIds: number[];\n\tpublic wakeUpTime: WakeUpTime;\n\tpublic dataRate: ZWaveDataRate;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst nodesBitmask = encodeBitMask(this.candidateNodeIds, MAX_NODES);\n\t\tconst speedAndLength = 0b1000_0000 | nodesBitmask.length;\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([speedAndLength]),\n\t\t\tnodesBitmask,\n\t\t\tBytes.from([this.wakeUpTime, this.dataRate]),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCRangeInfoOptions {\n\tneighborNodeIds: number[];\n\twakeUpTime?: WakeUpTime;\n}\n\n@CCCommand(ZWaveProtocolCommand.RangeInfo)\nexport class ZWaveProtocolCCRangeInfo extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCRangeInfoOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.neighborNodeIds = options.neighborNodeIds;\n\t\tthis.wakeUpTime = options.wakeUpTime;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCRangeInfo {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst bitmaskLength = raw.payload[0] & 0b0001_1111;\n\n\t\tvalidatePayload(raw.payload.length >= 1 + bitmaskLength);\n\t\tconst neighborNodeIds = parseBitMask(\n\t\t\traw.payload.subarray(1, 1 + bitmaskLength),\n\t\t);\n\n\t\tlet wakeUpTime: WakeUpTime | undefined;\n\t\tif (raw.payload.length >= 2 + bitmaskLength) {\n\t\t\twakeUpTime = parseWakeUpTime(\n\t\t\t\traw.payload[1 + bitmaskLength],\n\t\t\t);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tneighborNodeIds,\n\t\t\twakeUpTime,\n\t\t});\n\t}\n\n\tpublic neighborNodeIds: number[];\n\tpublic wakeUpTime?: WakeUpTime;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst nodesBitmask = encodeBitMask(this.neighborNodeIds, MAX_NODES);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([nodesBitmask.length]),\n\t\t\tnodesBitmask,\n\t\t\tthis.wakeUpTime != undefined\n\t\t\t\t? Bytes.from([this.wakeUpTime])\n\t\t\t\t: new Bytes(),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.GetNodesInRange)\n@expectedCCResponse(ZWaveProtocolCCRangeInfo)\nexport class ZWaveProtocolCCGetNodesInRange extends ZWaveProtocolCC {}\n\n// @publicAPI\nexport interface ZWaveProtocolCCCommandCompleteOptions {\n\tsequenceNumber: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.CommandComplete)\nexport class ZWaveProtocolCCCommandComplete extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCCommandCompleteOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sequenceNumber = options.sequenceNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCCommandComplete {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst sequenceNumber = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsequenceNumber,\n\t\t});\n\t}\n\n\tpublic sequenceNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.sequenceNumber]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferPresentationOptions {\n\tsupportsNWI: boolean;\n\tincludeNode: boolean;\n\texcludeNode: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferPresentation)\nexport class ZWaveProtocolCCTransferPresentation extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCTransferPresentationOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.includeNode && options.excludeNode) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`${this.constructor.name}: the includeNode and excludeNode options cannot both be true`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.supportsNWI = options.supportsNWI;\n\t\tthis.includeNode = options.includeNode;\n\t\tthis.excludeNode = options.excludeNode;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferPresentation {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst option = raw.payload[0];\n\t\tconst supportsNWI = !!(option & 0b0001);\n\t\tconst excludeNode = !!(option & 0b0010);\n\t\tconst includeNode = !!(option & 0b0100);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportsNWI,\n\t\t\texcludeNode,\n\t\t\tincludeNode,\n\t\t});\n\t}\n\n\tpublic supportsNWI: boolean;\n\tpublic includeNode: boolean;\n\tpublic excludeNode: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\t(this.supportsNWI ? 0b0001 : 0)\n\t\t\t| (this.excludeNode ? 0b0010 : 0)\n\t\t\t| (this.includeNode ? 0b0100 : 0),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferNodeInformationOptions\n\textends NodeProtocolInfoAndDeviceClass\n{\n\tsequenceNumber: number;\n\tsourceNodeId: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferNodeInformation)\nexport class ZWaveProtocolCCTransferNodeInformation extends ZWaveProtocolCC\n\timplements NodeProtocolInfoAndDeviceClass\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCTransferNodeInformationOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.sequenceNumber = options.sequenceNumber;\n\t\tthis.sourceNodeId = options.sourceNodeId;\n\n\t\tthis.basicDeviceClass = options.basicDeviceClass;\n\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t\tthis.specificDeviceClass = options.specificDeviceClass;\n\t\tthis.isListening = options.isListening;\n\t\tthis.isFrequentListening = options.isFrequentListening;\n\t\tthis.isRouting = options.isRouting;\n\t\tthis.supportedDataRates = options.supportedDataRates;\n\t\tthis.protocolVersion = options.protocolVersion;\n\t\tthis.optionalFunctionality = options.optionalFunctionality;\n\t\tthis.nodeType = options.nodeType;\n\t\tthis.supportsSecurity = options.supportsSecurity;\n\t\tthis.supportsBeaming = options.supportsBeaming;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferNodeInformation {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst sequenceNumber = raw.payload[0];\n\t\tconst sourceNodeId = raw.payload[1];\n\n\t\tconst { info } = parseNodeProtocolInfoAndDeviceClass(\n\t\t\traw.payload.subarray(2),\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsequenceNumber,\n\t\t\tsourceNodeId,\n\t\t\t...info,\n\t\t});\n\t}\n\n\tpublic sequenceNumber: number;\n\tpublic sourceNodeId: number;\n\tpublic basicDeviceClass: BasicDeviceClass;\n\tpublic genericDeviceClass: number;\n\tpublic specificDeviceClass: number;\n\tpublic isListening: boolean;\n\tpublic isFrequentListening: FLiRS;\n\tpublic isRouting: boolean;\n\tpublic supportedDataRates: DataRate[];\n\tpublic protocolVersion: ProtocolVersion;\n\tpublic optionalFunctionality: boolean;\n\tpublic nodeType: NodeType;\n\tpublic supportsSecurity: boolean;\n\tpublic supportsBeaming: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.sequenceNumber, this.sourceNodeId]),\n\t\t\tencodeNodeProtocolInfoAndDeviceClass(this),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferRangeInformationOptions {\n\tsequenceNumber: number;\n\ttestedNodeId: number;\n\tneighborNodeIds: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferRangeInformation)\nexport class ZWaveProtocolCCTransferRangeInformation extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCTransferRangeInformationOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sequenceNumber = options.sequenceNumber;\n\t\tthis.testedNodeId = options.testedNodeId;\n\t\tthis.neighborNodeIds = options.neighborNodeIds;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferRangeInformation {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst sequenceNumber = raw.payload[0];\n\t\tconst testedNodeId = raw.payload[1];\n\t\tconst bitmaskLength = raw.payload[2];\n\n\t\tvalidatePayload(raw.payload.length >= 3 + bitmaskLength);\n\t\tconst neighborNodeIds = parseBitMask(\n\t\t\traw.payload.subarray(3, 3 + bitmaskLength),\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsequenceNumber,\n\t\t\ttestedNodeId,\n\t\t\tneighborNodeIds,\n\t\t});\n\t}\n\n\tpublic sequenceNumber: number;\n\tpublic testedNodeId: number;\n\tpublic neighborNodeIds: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst nodesBitmask = encodeBitMask(this.neighborNodeIds, MAX_NODES);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\tthis.sequenceNumber,\n\t\t\t\tthis.testedNodeId,\n\t\t\t\tnodesBitmask.length,\n\t\t\t]),\n\t\t\tnodesBitmask,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferEndOptions {\n\tstatus: NetworkTransferStatus;\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferEnd)\nexport class ZWaveProtocolCCTransferEnd extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCTransferEndOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.status = options.status;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferEnd {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: NetworkTransferStatus = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic status: NetworkTransferStatus;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.status]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCAssignReturnRouteOptions {\n\tdestinationNodeId: number;\n\trouteIndex: number;\n\trepeaters: number[];\n\tdestinationWakeUp: WakeUpTime;\n\tdestinationSpeed: ZWaveDataRate;\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignReturnRoute)\nexport class ZWaveProtocolCCAssignReturnRoute extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCAssignReturnRouteOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.repeaters.length > MAX_REPEATERS) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`${this.constructor.name}: too many repeaters`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tthis.destinationNodeId = options.destinationNodeId;\n\t\tthis.routeIndex = options.routeIndex;\n\t\tthis.repeaters = options.repeaters;\n\t\tthis.destinationWakeUp = options.destinationWakeUp;\n\t\tthis.destinationSpeed = options.destinationSpeed;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCAssignReturnRoute {\n\t\tvalidatePayload(raw.payload.length >= 7);\n\t\tconst destinationNodeId = raw.payload[0];\n\t\tconst routeIndex = raw.payload[1] >>> 4;\n\t\tconst numRepeaters = raw.payload[1] & 0b1111;\n\t\tconst repeaters = [...raw.payload.subarray(2, 2 + numRepeaters)];\n\t\tconst speedAndWakeup = raw.payload[2 + numRepeaters];\n\t\tconst destinationSpeed = bitmask2DataRate(\n\t\t\t(speedAndWakeup >>> 3) & 0b111,\n\t\t);\n\t\tconst destinationWakeUp: WakeUpTime = (speedAndWakeup >>> 1) & 0b11;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tdestinationNodeId,\n\t\t\trouteIndex,\n\t\t\trepeaters,\n\t\t\tdestinationSpeed,\n\t\t\tdestinationWakeUp,\n\t\t});\n\t}\n\n\tpublic destinationNodeId: number;\n\tpublic routeIndex: number;\n\tpublic repeaters: number[];\n\tpublic destinationWakeUp: WakeUpTime;\n\tpublic destinationSpeed: ZWaveDataRate;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst routeByte = (this.routeIndex << 4) | this.repeaters.length;\n\t\tconst speedMask = dataRate2Bitmask(this.destinationSpeed);\n\t\tconst speedByte = (speedMask << 3) | (this.destinationWakeUp << 1);\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.destinationNodeId,\n\t\t\trouteByte,\n\t\t\t...this.repeaters,\n\t\t\tspeedByte,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNewNodeRegisteredOptions\n\textends NodeInformationFrame\n{\n\tnewNodeId: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.NewNodeRegistered)\nexport class ZWaveProtocolCCNewNodeRegistered extends ZWaveProtocolCC\n\timplements NodeInformationFrame\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNewNodeRegisteredOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.newNodeId = options.newNodeId;\n\t\tthis.basicDeviceClass = options.basicDeviceClass;\n\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t\tthis.specificDeviceClass = options.specificDeviceClass;\n\t\tthis.isListening = options.isListening;\n\t\tthis.isFrequentListening = options.isFrequentListening;\n\t\tthis.isRouting = options.isRouting;\n\t\tthis.supportedDataRates = options.supportedDataRates;\n\t\tthis.protocolVersion = options.protocolVersion;\n\t\tthis.optionalFunctionality = options.optionalFunctionality;\n\t\tthis.nodeType = options.nodeType;\n\t\tthis.supportsSecurity = options.supportsSecurity;\n\t\tthis.supportsBeaming = options.supportsBeaming;\n\t\tthis.supportedCCs = options.supportedCCs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNewNodeRegistered {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst newNodeId = raw.payload[0];\n\n\t\tconst nif = parseNodeInformationFrame(raw.payload.subarray(1));\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnewNodeId,\n\t\t\t...nif,\n\t\t});\n\t}\n\n\tpublic newNodeId: number;\n\tpublic basicDeviceClass: BasicDeviceClass;\n\tpublic genericDeviceClass: number;\n\tpublic specificDeviceClass: number;\n\tpublic isListening: boolean;\n\tpublic isFrequentListening: FLiRS;\n\tpublic isRouting: boolean;\n\tpublic supportedDataRates: DataRate[];\n\tpublic protocolVersion: ProtocolVersion;\n\tpublic optionalFunctionality: boolean;\n\tpublic nodeType: NodeType;\n\tpublic supportsSecurity: boolean;\n\tpublic supportsBeaming: boolean;\n\tpublic supportedCCs: CommandClasses[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.newNodeId]),\n\t\t\tencodeNodeInformationFrame(this),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNewRangeRegisteredOptions {\n\ttestedNodeId: number;\n\tneighborNodeIds: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.NewRangeRegistered)\nexport class ZWaveProtocolCCNewRangeRegistered extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNewRangeRegisteredOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.testedNodeId = options.testedNodeId;\n\t\tthis.neighborNodeIds = options.neighborNodeIds;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNewRangeRegistered {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst testedNodeId = raw.payload[0];\n\t\tconst numNeighbors = raw.payload[1];\n\t\tconst neighborNodeIds = [\n\t\t\t...raw.payload.subarray(2, 2 + numNeighbors),\n\t\t];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttestedNodeId,\n\t\t\tneighborNodeIds,\n\t\t});\n\t}\n\n\tpublic testedNodeId: number;\n\tpublic neighborNodeIds: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst nodesBitmask = encodeBitMask(this.neighborNodeIds, MAX_NODES);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.testedNodeId, nodesBitmask.length]),\n\t\t\tnodesBitmask,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCTransferNewPrimaryControllerCompleteOptions {\n\tgenericDeviceClass: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.TransferNewPrimaryControllerComplete)\nexport class ZWaveProtocolCCTransferNewPrimaryControllerComplete\n\textends ZWaveProtocolCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tZWaveProtocolCCTransferNewPrimaryControllerCompleteOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\t\tthis.genericDeviceClass = options.genericDeviceClass;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCTransferNewPrimaryControllerComplete {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst genericDeviceClass = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgenericDeviceClass,\n\t\t});\n\t}\n\n\tpublic genericDeviceClass: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.genericDeviceClass]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.AutomaticControllerUpdateStart)\nexport class ZWaveProtocolCCAutomaticControllerUpdateStart\n\textends ZWaveProtocolCC\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSUCNodeIDOptions {\n\tsucNodeId: number;\n\tisSIS: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.SUCNodeID)\nexport class ZWaveProtocolCCSUCNodeID extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCSUCNodeIDOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sucNodeId = options.sucNodeId;\n\t\tthis.isSIS = options.isSIS;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSUCNodeID {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst sucNodeId = raw.payload[0];\n\t\tconst capabilities = raw.payload[1] ?? 0;\n\t\tconst isSIS = !!(capabilities & 0b1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsucNodeId,\n\t\t\tisSIS,\n\t\t});\n\t}\n\n\tpublic sucNodeId: number;\n\tpublic isSIS: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.sucNodeId, this.isSIS ? 0b1 : 0]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSetSUCOptions {\n\tenableSIS: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.SetSUC)\nexport class ZWaveProtocolCCSetSUC extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCSetSUCOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.enableSIS = options.enableSIS;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSetSUC {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\t// Byte 0 must be 0x01 or ignored\n\t\tconst capabilities = raw.payload[1] ?? 0;\n\t\tconst enableSIS = !!(capabilities & 0b1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tenableSIS,\n\t\t});\n\t}\n\n\tpublic enableSIS: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([0x01, this.enableSIS ? 0b1 : 0]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSetSUCAckOptions {\n\taccepted: boolean;\n\tisSIS: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.SetSUCAck)\nexport class ZWaveProtocolCCSetSUCAck extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCSetSUCAckOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.accepted = options.accepted;\n\t\tthis.isSIS = options.isSIS;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSetSUCAck {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst accepted = raw.payload[0] === 0x01;\n\t\tconst capabilities = raw.payload[1] ?? 0;\n\t\tconst isSIS = !!(capabilities & 0b1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\taccepted,\n\t\t\tisSIS,\n\t\t});\n\t}\n\n\tpublic accepted: boolean;\n\tpublic isSIS: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.accepted ? 0x01 : 0x00,\n\t\t\tthis.isSIS ? 0b1 : 0,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignSUCReturnRoute)\nexport class ZWaveProtocolCCAssignSUCReturnRoute\n\textends ZWaveProtocolCCAssignReturnRoute\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCStaticRouteRequestOptions {\n\tnodeIds: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.StaticRouteRequest)\nexport class ZWaveProtocolCCStaticRouteRequest extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCStaticRouteRequestOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.nodeIds.some((n) => n < 1 || n > MAX_NODES)) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`All node IDs must be between 1 and ${MAX_NODES}!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.nodeIds = options.nodeIds;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCStaticRouteRequest {\n\t\tvalidatePayload(raw.payload.length >= 5);\n\t\tconst nodeIds = [...raw.payload.subarray(0, 5)].filter(\n\t\t\t(id) => id > 0 && id <= MAX_NODES,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnodeIds,\n\t\t});\n\t}\n\n\tpublic nodeIds: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.alloc(5, 0);\n\t\tfor (let i = 0; i < this.nodeIds.length && i < 5; i++) {\n\t\t\tthis.payload[i] = this.nodeIds[i];\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCLostOptions {\n\tlostNodeId: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.Lost)\nexport class ZWaveProtocolCCLost extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCLostOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.lostNodeId = options.lostNodeId;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCLost {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst lostNodeId = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tlostNodeId,\n\t\t});\n\t}\n\n\tpublic lostNodeId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.lostNodeId]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCAcceptLostOptions {\n\taccepted: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.AcceptLost)\nexport class ZWaveProtocolCCAcceptLost extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCAcceptLostOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.accepted = options.accepted;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCAcceptLost {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tvalidatePayload(\n\t\t\traw.payload[0] === 0x04 || raw.payload[0] === 0x05,\n\t\t);\n\t\tconst accepted = raw.payload[0] === 0x05;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\taccepted,\n\t\t});\n\t}\n\n\tpublic accepted: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.accepted ? 0x05 : 0x04]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNOPPowerOptions {\n\tpowerDampening: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.NOPPower)\nexport class ZWaveProtocolCCNOPPower extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNOPPowerOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.powerDampening < 0 || options.powerDampening > 14) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`${this.constructor.name}: power dampening must be between 0 and 14 dBm!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.powerDampening = options.powerDampening;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNOPPower {\n\t\tlet powerDampening;\n\n\t\tif (raw.payload.length >= 2) {\n\t\t\t// Ignore byte 0\n\t\t\tpowerDampening = raw.payload[1];\n\t\t} else if (raw.payload.length === 1) {\n\t\t\tpowerDampening = [\n\t\t\t\t0xf0,\n\t\t\t\t0xc8,\n\t\t\t\t0xa7,\n\t\t\t\t0x91,\n\t\t\t\t0x77,\n\t\t\t\t0x67,\n\t\t\t\t0x60,\n\t\t\t\t0x46,\n\t\t\t\t0x38,\n\t\t\t\t0x35,\n\t\t\t\t0x32,\n\t\t\t\t0x30,\n\t\t\t\t0x24,\n\t\t\t\t0x22,\n\t\t\t\t0x20,\n\t\t\t].indexOf(raw.payload[0]);\n\t\t\tif (powerDampening === -1) powerDampening = 0;\n\t\t} else {\n\t\t\tvalidatePayload.fail(\"Invalid payload length!\");\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tpowerDampening,\n\t\t});\n\t}\n\n\t// Power dampening in (negative) dBm. A value of 2 means -2 dBm.\n\tpublic powerDampening: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([0, this.powerDampening]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCReservedIDsOptions {\n\treservedNodeIDs: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.ReservedIDs)\nexport class ZWaveProtocolCCReservedIDs extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCReservedIDsOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.reservedNodeIDs = options.reservedNodeIDs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCReservedIDs {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst numNodeIDs = raw.payload[0];\n\t\tvalidatePayload(raw.payload.length >= 1 + numNodeIDs);\n\t\tconst reservedNodeIDs = [\n\t\t\t...raw.payload.subarray(1, 1 + numNodeIDs),\n\t\t];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\treservedNodeIDs,\n\t\t});\n\t}\n\n\tpublic reservedNodeIDs: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.reservedNodeIDs.length,\n\t\t\t...this.reservedNodeIDs,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCReserveNodeIDsOptions {\n\tnumNodeIDs: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.ReserveNodeIDs)\n@expectedCCResponse(ZWaveProtocolCCReservedIDs)\nexport class ZWaveProtocolCCReserveNodeIDs extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCReserveNodeIDsOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.numNodeIDs = options.numNodeIDs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCReserveNodeIDs {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst numNodeIDs = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnumNodeIDs,\n\t\t});\n\t}\n\n\tpublic numNodeIDs: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.numNodeIDs]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNodesExistReplyOptions {\n\tnodeMaskType: number;\n\tnodeListUpdated: boolean;\n}\n\n@CCCommand(ZWaveProtocolCommand.NodesExistReply)\nexport class ZWaveProtocolCCNodesExistReply extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNodesExistReplyOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.nodeMaskType = options.nodeMaskType;\n\t\tthis.nodeListUpdated = options.nodeListUpdated;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNodesExistReply {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst nodeMaskType = raw.payload[0];\n\t\tconst nodeListUpdated = raw.payload[1] === 0x01;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnodeMaskType,\n\t\t\tnodeListUpdated,\n\t\t});\n\t}\n\n\tpublic nodeMaskType: number;\n\tpublic nodeListUpdated: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.nodeMaskType,\n\t\t\tthis.nodeListUpdated ? 0x01 : 0x00,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\nfunction testResponseForZWaveProtocolNodesExist(\n\tsent: ZWaveProtocolCCNodesExist,\n\treceived: ZWaveProtocolCCNodesExistReply,\n) {\n\treturn received.nodeMaskType === sent.nodeMaskType;\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCNodesExistOptions {\n\tnodeMaskType: number;\n\tnodeIDs: number[];\n}\n\n@CCCommand(ZWaveProtocolCommand.NodesExist)\n@expectedCCResponse(\n\tZWaveProtocolCCNodesExistReply,\n\ttestResponseForZWaveProtocolNodesExist,\n)\nexport class ZWaveProtocolCCNodesExist extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCNodesExistOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.nodeMaskType = options.nodeMaskType;\n\t\tthis.nodeIDs = options.nodeIDs;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCNodesExist {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst nodeMaskType = raw.payload[0];\n\t\tconst numNodeIDs = raw.payload[1];\n\t\tvalidatePayload(raw.payload.length >= 2 + numNodeIDs);\n\t\tconst nodeIDs = [...raw.payload.subarray(2, 2 + numNodeIDs)];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnodeMaskType,\n\t\t\tnodeIDs,\n\t\t});\n\t}\n\n\tpublic nodeMaskType: number;\n\tpublic nodeIDs: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.nodeMaskType,\n\t\t\tthis.nodeIDs.length,\n\t\t\t...this.nodeIDs,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSetNWIModeOptions {\n\tenabled: boolean;\n\ttimeoutMinutes?: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.SetNWIMode)\nexport class ZWaveProtocolCCSetNWIMode extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCSetNWIModeOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.enabled = options.enabled;\n\t\tthis.timeoutMinutes = options.timeoutMinutes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSetNWIMode {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst enabled = raw.payload[0] === 0x01;\n\t\tconst timeoutMinutes: number | undefined = raw.payload[1] || undefined;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tenabled,\n\t\t\ttimeoutMinutes,\n\t\t});\n\t}\n\n\tpublic enabled: boolean;\n\tpublic timeoutMinutes?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.enabled ? 0x01 : 0x00,\n\t\t\tthis.timeoutMinutes ?? 0x00,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.ExcludeRequest)\nexport class ZWaveProtocolCCExcludeRequest\n\textends ZWaveProtocolCCNodeInformationFrame\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCAssignReturnRoutePriorityOptions {\n\ttargetNodeId: number;\n\trouteNumber: number;\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignReturnRoutePriority)\nexport class ZWaveProtocolCCAssignReturnRoutePriority extends ZWaveProtocolCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ZWaveProtocolCCAssignReturnRoutePriorityOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.targetNodeId = options.targetNodeId;\n\t\tthis.routeNumber = options.routeNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCAssignReturnRoutePriority {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst targetNodeId = raw.payload[0];\n\t\tconst routeNumber = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttargetNodeId,\n\t\t\trouteNumber,\n\t\t});\n\t}\n\n\tpublic targetNodeId: number;\n\tpublic routeNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.targetNodeId, this.routeNumber]);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.AssignSUCReturnRoutePriority)\nexport class ZWaveProtocolCCAssignSUCReturnRoutePriority\n\textends ZWaveProtocolCCAssignReturnRoutePriority\n{}\n\n// @publicAPI\nexport interface ZWaveProtocolCCSmartStartIncludedNodeInformationOptions {\n\tnwiHomeId: Uint8Array;\n}\n\n@CCCommand(ZWaveProtocolCommand.SmartStartIncludedNodeInformation)\nexport class ZWaveProtocolCCSmartStartIncludedNodeInformation\n\textends ZWaveProtocolCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tZWaveProtocolCCSmartStartIncludedNodeInformationOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.nwiHomeId.length !== 4) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`nwiHomeId must have length 4`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.nwiHomeId = options.nwiHomeId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ZWaveProtocolCCSmartStartIncludedNodeInformation {\n\t\tvalidatePayload(raw.payload.length >= 4);\n\t\tconst nwiHomeId = raw.payload.subarray(0, 4);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnwiHomeId,\n\t\t});\n\t}\n\n\tpublic nwiHomeId: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from(this.nwiHomeId);\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n@CCCommand(ZWaveProtocolCommand.SmartStartPrime)\nexport class ZWaveProtocolCCSmartStartPrime\n\textends ZWaveProtocolCCNodeInformationFrame\n{}\n\n@CCCommand(ZWaveProtocolCommand.SmartStartInclusionRequest)\nexport class ZWaveProtocolCCSmartStartInclusionRequest\n\textends ZWaveProtocolCCNodeInformationFrame\n{}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAsBO;AAEP,kBAAsB;AACtB,0BAAyC;AACzC,oCAKO;AACP,mBAKO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEP,IAAK;CAAL,SAAKA,kBAAe;AACnB,EAAAA,iBAAAA,iBAAA,KAAA,IAAA,CAAA,IAAA;AACA,EAAAA,iBAAAA,iBAAA,KAAA,IAAA,CAAA,IAAA;AACA,EAAAA,iBAAAA,iBAAA,MAAA,IAAA,CAAA,IAAA;AACD,GAJK,oBAAA,kBAAe,CAAA,EAAA;AAMpB,SAAS,iBAAiB,UAAuB;AAChD,SAAO,aAAa,0BAAc,MAAM,IACrC,gBAAgB,MAAM,IACtB,aAAa,0BAAc,KAAK,IAChC,gBAAgB,KAAK,IACrB,gBAAgB,KAAK;AACzB;AAEA,SAAS,iBAAiB,MAAqB;AAC9C,SAAO,SAAS,gBAAgB,MAAM,IACnC,0BAAc,MAAM,IACpB,SAAS,gBAAgB,KAAK,IAC9B,0BAAc,KAAK,IACnB,0BAAc,KAAK;AACvB;IAIa,mBAAe,MAAA;8BAF3B,4CAAa,2BAAe,iBAAiB,CAAC,OAC9C,kDAAmB,CAAC,CAAC;;;;oBACe;uCAAA,YAAY;;;;;;AAAjD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAWA,uCAAmC,MAAA;8BAD/C,yCAAU,kCAAqB,oBAAoB,CAAC;;;;oBACI;2DAAA,YAAe;;;;;;AAAxE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAAgE;AAEhE,YAAM,OAAO;AAEb,WAAK,mBAAmB,QAAQ;AAChC,WAAK,qBAAqB,QAAQ;AAClC,WAAK,sBAAsB,QAAQ;AACnC,WAAK,cAAc,QAAQ;AAC3B,WAAK,sBAAsB,QAAQ;AACnC,WAAK,YAAY,QAAQ;AACzB,WAAK,qBAAqB,QAAQ;AAClC,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,wBAAwB,QAAQ;AACrC,WAAK,WAAW,QAAQ;AACxB,WAAK,mBAAmB,QAAQ;AAChC,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,eAAe,QAAQ;IAC7B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,YAAM,UAAM,uCAA0B,IAAI,OAAO;AAEjD,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ,GAAG;OACH;IACF;IAEO;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,cAAU,wCAA2B,IAAI;AAC9C,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAKY,8CAA0C,MAAA;8BAFtD,yCAAU,kCAAqB,2BAA2B,OAC1D,kDAAmB,mCAAmC,CAAC;;;;oBAE/C;kEAAA,YAAe;;;;;;AADxB,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAWA,4BAAwB,MAAA;8BADpC,yCAAU,kCAAqB,SAAS,CAAC;;;;oBACI;gDAAA,YAAe;;;;;;AAA7D,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,SAAqD;AAErD,YAAM,OAAO;AACb,WAAK,iBAAiB,QAAQ;AAC9B,WAAK,SAAS,QAAQ;IACvB;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,iBAAiB,IAAI,QAAQ,CAAC;AACpC,YAAM,SAAS,IAAI,QAAQ,aAAa,CAAC;AAEzC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,IAAI,kBAAM,CAAC;AAC1B,WAAK,QAAQ,CAAC,IAAI,KAAK;AACvB,WAAK,QAAQ,cAAc,KAAK,QAAQ,CAAC;AACzC,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAWY,mCAA+B,MAAA;8BAD3C,yCAAU,kCAAqB,gBAAgB,CAAC;;;;oBACI;uDAAA,YAAe;;;;;;AAApE,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,SAA4D;AAE5D,YAAM,OAAO;AACb,WAAK,mBAAmB,QAAQ;AAChC,WAAK,aAAa,QAAQ;AAC1B,WAAK,WAAW,QAAQ,YAAY,0BAAc,KAAK;IACxD;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,eAAe,IAAI,QAAQ,CAAC,IAAI;AACtC,YAAM,gBAAgB,IAAI,QAAQ,CAAC,IAAI;AAEvC,uCAAgB,IAAI,QAAQ,UAAU,IAAI,aAAa;AACvD,YAAM,uBAAmB,0BACxB,IAAI,QAAQ,SAAS,GAAG,IAAI,aAAa,CAAC;AAE3C,YAAM,OAAO,IAAI,QAAQ,SAAS,IAAI,aAAa;AAEnD,UAAI;AACJ,UAAI;AACJ,UAAI,cAAc;AACjB,yCAAgB,KAAK,UAAU,CAAC;AAChC,YAAI,KAAK,WAAW,GAAG;AACtB,qBAAW,KAAK,CAAC,IAAI;AACrB,uBAAa,wBAAW;QACzB,WAAW,KAAK,WAAW,GAAG;AAC7B,2BAAa,8BAAgB,KAAK,CAAC,CAAC;AACpC,qBAAW,KAAK,CAAC,IAAI;QACtB,OAAO;AACN,sCAAgB,KAAK,wBAAwB;QAC9C;MACD,WAAW,KAAK,UAAU,GAAG;AAC5B,yBAAa,8BAAgB,KAAK,CAAC,CAAC;AACpC,mBAAW,0BAAc,KAAK;MAC/B,OAAO;AACN,qBAAa,wBAAW;AACxB,mBAAW,0BAAc,KAAK;MAC/B;AAEA,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;OACA;IACF;IAEO;IACA;IACA;IAEA,UAAU,KAAsB;AACtC,YAAM,mBAAe,2BAAc,KAAK,kBAAkB,qBAAS;AACnE,YAAM,iBAAiB,MAAc,aAAa;AAClD,WAAK,UAAU,kBAAM,OAAO;QAC3B,kBAAM,KAAK,CAAC,cAAc,CAAC;QAC3B;QACA,kBAAM,KAAK,CAAC,KAAK,YAAY,KAAK,QAAQ,CAAC;OAC3C;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAUY,4BAAwB,MAAA;8BADpC,yCAAU,kCAAqB,SAAS,CAAC;;;;oBACI;gDAAA,YAAe;;;;;;AAA7D,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,SAAqD;AAErD,YAAM,OAAO;AACb,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,aAAa,QAAQ;IAC3B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,gBAAgB,IAAI,QAAQ,CAAC,IAAI;AAEvC,uCAAgB,IAAI,QAAQ,UAAU,IAAI,aAAa;AACvD,YAAM,sBAAkB,0BACvB,IAAI,QAAQ,SAAS,GAAG,IAAI,aAAa,CAAC;AAG3C,UAAI;AACJ,UAAI,IAAI,QAAQ,UAAU,IAAI,eAAe;AAC5C,yBAAa,8BACZ,IAAI,QAAQ,IAAI,aAAa,CAAC;MAEhC;AAEA,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,YAAM,mBAAe,2BAAc,KAAK,iBAAiB,qBAAS;AAClE,WAAK,UAAU,kBAAM,OAAO;QAC3B,kBAAM,KAAK,CAAC,aAAa,MAAM,CAAC;QAChC;QACA,KAAK,cAAc,SAChB,kBAAM,KAAK,CAAC,KAAK,UAAU,CAAC,IAC5B,IAAI,kBAAK;OACZ;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAKY,kCAA8B,MAAA;8BAF1C,yCAAU,kCAAqB,eAAe,OAC9C,kDAAmB,wBAAwB,CAAC;;;;oBACO;sDAAA,YAAe;;;;;;AAAnE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAQA,kCAA8B,MAAA;8BAD1C,yCAAU,kCAAqB,eAAe,CAAC;;;;oBACI;sDAAA,YAAe;;;;;;AAAnE,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,iBAAiB,QAAQ;IAC/B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,iBAAiB,IAAI,QAAQ,CAAC;AAEpC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,KAAK,cAAc,CAAC;AAC/C,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAWY,uCAAmC,MAAA;8BAD/C,yCAAU,kCAAqB,oBAAoB,CAAC;;;;oBACI;2DAAA,YAAe;;;;;;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,SAAgE;AAEhE,YAAM,OAAO;AACb,UAAI,QAAQ,eAAe,QAAQ,aAAa;AAC/C,cAAM,IAAI,uBACT,GAAG,KAAK,YAAY,IAAI,iEACxB,4BAAgB,gBAAgB;MAElC;AACA,WAAK,cAAc,QAAQ;AAC3B,WAAK,cAAc,QAAQ;AAC3B,WAAK,cAAc,QAAQ;IAC5B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,SAAS,IAAI,QAAQ,CAAC;AAC5B,YAAM,cAAc,CAAC,EAAE,SAAS;AAChC,YAAM,cAAc,CAAC,EAAE,SAAS;AAChC,YAAM,cAAc,CAAC,EAAE,SAAS;AAEhC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;OACA;IACF;IAEO;IACA;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK;SACxB,KAAK,cAAc,IAAS,MAC1B,KAAK,cAAc,IAAS,MAC5B,KAAK,cAAc,IAAS;OAC/B;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAYY,0CAAsC,MAAA;8BADlD,yCAAU,kCAAqB,uBAAuB,CAAC;;;;oBACI;8DAAA,YAAe;;;;;;AAA3E,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAAmE;AAEnE,YAAM,OAAO;AAEb,WAAK,iBAAiB,QAAQ;AAC9B,WAAK,eAAe,QAAQ;AAE5B,WAAK,mBAAmB,QAAQ;AAChC,WAAK,qBAAqB,QAAQ;AAClC,WAAK,sBAAsB,QAAQ;AACnC,WAAK,cAAc,QAAQ;AAC3B,WAAK,sBAAsB,QAAQ;AACnC,WAAK,YAAY,QAAQ;AACzB,WAAK,qBAAqB,QAAQ;AAClC,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,wBAAwB,QAAQ;AACrC,WAAK,WAAW,QAAQ;AACxB,WAAK,mBAAmB,QAAQ;AAChC,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,iBAAiB,IAAI,QAAQ,CAAC;AACpC,YAAM,eAAe,IAAI,QAAQ,CAAC;AAElC,YAAM,EAAE,KAAI,QAAK,iDAChB,IAAI,QAAQ,SAAS,CAAC,CAAC;AAGxB,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA,GAAG;OACH;IACF;IAEO;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,OAAO;QAC3B,kBAAM,KAAK,CAAC,KAAK,gBAAgB,KAAK,YAAY,CAAC;YACnD,kDAAqC,IAAI;OACzC;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAWY,2CAAuC,MAAA;8BADnD,yCAAU,kCAAqB,wBAAwB,CAAC;;;;oBACI;+DAAA,YAAe;;;;;;AAA5E,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,SAAoE;AAEpE,YAAM,OAAO;AACb,WAAK,iBAAiB,QAAQ;AAC9B,WAAK,eAAe,QAAQ;AAC5B,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,iBAAiB,IAAI,QAAQ,CAAC;AACpC,YAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,YAAM,gBAAgB,IAAI,QAAQ,CAAC;AAEnC,uCAAgB,IAAI,QAAQ,UAAU,IAAI,aAAa;AACvD,YAAM,sBAAkB,0BACvB,IAAI,QAAQ,SAAS,GAAG,IAAI,aAAa,CAAC;AAG3C,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;OACA;IACF;IAEO;IACA;IACA;IAEA,UAAU,KAAsB;AACtC,YAAM,mBAAe,2BAAc,KAAK,iBAAiB,qBAAS;AAClE,WAAK,UAAU,kBAAM,OAAO;QAC3B,kBAAM,KAAK;UACV,KAAK;UACL,KAAK;UACL,aAAa;SACb;QACD;OACA;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IASY,8BAA0B,MAAA;8BADtC,yCAAU,kCAAqB,WAAW,CAAC;;;;oBACI;kDAAA,YAAe;;;;;;AAA/D,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,SAAuD;AAEvD,YAAM,OAAO;AACb,WAAK,SAAS,QAAQ;IACvB;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,SAAgC,IAAI,QAAQ,CAAC;AAEnD,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,KAAK,MAAM,CAAC;AACvC,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAaY,oCAAgC,MAAA;8BAD5C,yCAAU,kCAAqB,iBAAiB,CAAC;;;;oBACI;wDAAA,YAAe;;;;;;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,SAA6D;AAE7D,YAAM,OAAO;AACb,UAAI,QAAQ,UAAU,SAAS,2BAAe;AAC7C,cAAM,IAAI,uBACT,GAAG,KAAK,YAAY,IAAI,wBACxB,4BAAgB,gBAAgB;MAElC;AAEA,WAAK,oBAAoB,QAAQ;AACjC,WAAK,aAAa,QAAQ;AAC1B,WAAK,YAAY,QAAQ;AACzB,WAAK,oBAAoB,QAAQ;AACjC,WAAK,mBAAmB,QAAQ;IACjC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,oBAAoB,IAAI,QAAQ,CAAC;AACvC,YAAM,aAAa,IAAI,QAAQ,CAAC,MAAM;AACtC,YAAM,eAAe,IAAI,QAAQ,CAAC,IAAI;AACtC,YAAM,YAAY,CAAC,GAAG,IAAI,QAAQ,SAAS,GAAG,IAAI,YAAY,CAAC;AAC/D,YAAM,iBAAiB,IAAI,QAAQ,IAAI,YAAY;AACnD,YAAM,mBAAmB,iBACvB,mBAAmB,IAAK,CAAK;AAE/B,YAAM,oBAAiC,mBAAmB,IAAK;AAE/D,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;QACA;QACA;OACA;IACF;IAEO;IACA;IACA;IACA;IACA;IAEA,UAAU,KAAsB;AACtC,YAAM,YAAa,KAAK,cAAc,IAAK,KAAK,UAAU;AAC1D,YAAM,YAAY,iBAAiB,KAAK,gBAAgB;AACxD,YAAM,YAAa,aAAa,IAAM,KAAK,qBAAqB;AAChE,WAAK,UAAU,kBAAM,KAAK;QACzB,KAAK;QACL;QACA,GAAG,KAAK;QACR;OACA;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAWY,oCAAgC,MAAA;8BAD5C,yCAAU,kCAAqB,iBAAiB,CAAC;;;;oBACI;wDAAA,YAAe;;;;;;AAArE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAA6D;AAE7D,YAAM,OAAO;AAEb,WAAK,YAAY,QAAQ;AACzB,WAAK,mBAAmB,QAAQ;AAChC,WAAK,qBAAqB,QAAQ;AAClC,WAAK,sBAAsB,QAAQ;AACnC,WAAK,cAAc,QAAQ;AAC3B,WAAK,sBAAsB,QAAQ;AACnC,WAAK,YAAY,QAAQ;AACzB,WAAK,qBAAqB,QAAQ;AAClC,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,wBAAwB,QAAQ;AACrC,WAAK,WAAW,QAAQ;AACxB,WAAK,mBAAmB,QAAQ;AAChC,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,eAAe,QAAQ;IAC7B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAY,IAAI,QAAQ,CAAC;AAE/B,YAAM,UAAM,uCAA0B,IAAI,QAAQ,SAAS,CAAC,CAAC;AAE7D,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA,GAAG;OACH;IACF;IAEO;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,OAAO;QAC3B,kBAAM,KAAK,CAAC,KAAK,SAAS,CAAC;YAC3B,wCAA2B,IAAI;OAC/B;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAUY,qCAAiC,MAAA;8BAD7C,yCAAU,kCAAqB,kBAAkB,CAAC;;;;oBACI;yDAAA,YAAe;;;;;;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,SAA8D;AAE9D,YAAM,OAAO;AACb,WAAK,eAAe,QAAQ;AAC5B,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,YAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,YAAM,kBAAkB;QACvB,GAAG,IAAI,QAAQ,SAAS,GAAG,IAAI,YAAY;;AAG5C,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,YAAM,mBAAe,2BAAc,KAAK,iBAAiB,qBAAS;AAClE,WAAK,UAAU,kBAAM,OAAO;QAC3B,kBAAM,KAAK,CAAC,KAAK,cAAc,aAAa,MAAM,CAAC;QACnD;OACA;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IASY,uDAAmD,MAAA;8BAD/D,yCAAU,kCAAqB,oCAAoC,CAAC;;;;oBAE5D;2EAAA,YAAe;;;;;;AADxB,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAEC;AAED,YAAM,OAAO;AACb,WAAK,qBAAqB,QAAQ;IACnC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,qBAAqB,IAAI,QAAQ,CAAC;AAExC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,KAAK,kBAAkB,CAAC;AACnD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAIY,iDAA6C,MAAA;8BADzD,yCAAU,kCAAqB,8BAA8B,CAAC;;;;oBAEtD;qEAAA,YAAe;;;;;;AADxB,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAWA,4BAAwB,MAAA;8BADpC,yCAAU,kCAAqB,SAAS,CAAC;;;;oBACI;gDAAA,YAAe;;;;;;AAA7D,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,SAAqD;AAErD,YAAM,OAAO;AACb,WAAK,YAAY,QAAQ;AACzB,WAAK,QAAQ,QAAQ;IACtB;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAY,IAAI,QAAQ,CAAC;AAC/B,YAAM,eAAe,IAAI,QAAQ,CAAC,KAAK;AACvC,YAAM,QAAQ,CAAC,EAAE,eAAe;AAEhC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,KAAK,WAAW,KAAK,QAAQ,IAAM,CAAC,CAAC;AAChE,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IASY,yBAAqB,MAAA;8BADjC,yCAAU,kCAAqB,MAAM,CAAC;;;;oBACI;6CAAA,YAAe;;;;;;AAA1D,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,SAAkD;AAElD,YAAM,OAAO;AACb,WAAK,YAAY,QAAQ;IAC1B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AAEvC,YAAM,eAAe,IAAI,QAAQ,CAAC,KAAK;AACvC,YAAM,YAAY,CAAC,EAAE,eAAe;AAEpC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,GAAM,KAAK,YAAY,IAAM,CAAC,CAAC;AAC1D,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAUY,4BAAwB,MAAA;8BADpC,yCAAU,kCAAqB,SAAS,CAAC;;;;oBACI;gDAAA,YAAe;;;;;;AAA7D,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,SAAqD;AAErD,YAAM,OAAO;AACb,WAAK,WAAW,QAAQ;AACxB,WAAK,QAAQ,QAAQ;IACtB;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,WAAW,IAAI,QAAQ,CAAC,MAAM;AACpC,YAAM,eAAe,IAAI,QAAQ,CAAC,KAAK;AACvC,YAAM,QAAQ,CAAC,EAAE,eAAe;AAEhC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK;QACzB,KAAK,WAAW,IAAO;QACvB,KAAK,QAAQ,IAAM;OACnB;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAIY,uCAAmC,MAAA;8BAD/C,yCAAU,kCAAqB,oBAAoB,CAAC;;;;oBAE5C;2DAAA,YAAgC;;;;;;AADzC,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAUA,qCAAiC,MAAA;8BAD7C,yCAAU,kCAAqB,kBAAkB,CAAC;;;;oBACI;yDAAA,YAAe;;;;;;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,SAA8D;AAE9D,YAAM,OAAO;AACb,UAAI,QAAQ,QAAQ,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,qBAAS,GAAG;AACxD,cAAM,IAAI,uBACT,sCAAsC,qBAAS,KAC/C,4BAAgB,gBAAgB;MAElC;AACA,WAAK,UAAU,QAAQ;IACxB;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,UAAU,CAAC,GAAG,IAAI,QAAQ,SAAS,GAAG,CAAC,CAAC,EAAE,OAC/C,CAAC,OAAO,KAAK,KAAK,MAAM,qBAAS;AAGlC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,MAAM,GAAG,CAAC;AAC/B,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,UAAU,IAAI,GAAG,KAAK;AACtD,aAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;MACjC;AACA,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IASY,uBAAmB,MAAA;8BAD/B,yCAAU,kCAAqB,IAAI,CAAC;;;;oBACI;2CAAA,YAAe;;;;;;AAAxD,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,SAAgD;AAEhD,YAAM,OAAO;AACb,WAAK,aAAa,QAAQ;IAC3B;IAEO,OAAO,KAAK,KAAY,KAAqB;AACnD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,aAAa,IAAI,QAAQ,CAAC;AAEhC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,KAAK,UAAU,CAAC;AAC3C,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IASY,6BAAyB,MAAA;8BADrC,yCAAU,kCAAqB,UAAU,CAAC;;;;oBACI;iDAAA,YAAe;;;;;;AAA9D,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,SAAsD;AAEtD,YAAM,OAAO;AACb,WAAK,WAAW,QAAQ;IACzB;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,uCACC,IAAI,QAAQ,CAAC,MAAM,KAAQ,IAAI,QAAQ,CAAC,MAAM,CAAI;AAEnD,YAAM,WAAW,IAAI,QAAQ,CAAC,MAAM;AAEpC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,KAAK,WAAW,IAAO,CAAI,CAAC;AACvD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IASY,2BAAuB,MAAA;8BADnC,yCAAU,kCAAqB,QAAQ,CAAC;;;;oBACI;+CAAA,YAAe;;;;;;AAA5D,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,SAAoD;AAEpD,YAAM,OAAO;AACb,UAAI,QAAQ,iBAAiB,KAAK,QAAQ,iBAAiB,IAAI;AAC9D,cAAM,IAAI,uBACT,GAAG,KAAK,YAAY,IAAI,mDACxB,4BAAgB,gBAAgB;MAElC;AACA,WAAK,iBAAiB,QAAQ;IAC/B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,UAAI;AAEJ,UAAI,IAAI,QAAQ,UAAU,GAAG;AAE5B,yBAAiB,IAAI,QAAQ,CAAC;MAC/B,WAAW,IAAI,QAAQ,WAAW,GAAG;AACpC,yBAAiB;UAChB;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACC,QAAQ,IAAI,QAAQ,CAAC,CAAC;AACxB,YAAI,mBAAmB;AAAI,2BAAiB;MAC7C,OAAO;AACN,oCAAgB,KAAK,yBAAyB;MAC/C;AAEA,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;;IAGO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC;AAClD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IASY,8BAA0B,MAAA;8BADtC,yCAAU,kCAAqB,WAAW,CAAC;;;;oBACI;kDAAA,YAAe;;;;;;AAA/D,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,SAAuD;AAEvD,YAAM,OAAO;AACb,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,aAAa,IAAI,QAAQ,CAAC;AAChC,uCAAgB,IAAI,QAAQ,UAAU,IAAI,UAAU;AACpD,YAAM,kBAAkB;QACvB,GAAG,IAAI,QAAQ,SAAS,GAAG,IAAI,UAAU;;AAG1C,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK;QACzB,KAAK,gBAAgB;QACrB,GAAG,KAAK;OACR;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAUY,iCAA6B,MAAA;8BAFzC,yCAAU,kCAAqB,cAAc,OAC7C,kDAAmB,0BAA0B,CAAC;;;;oBACI;qDAAA,YAAe;;;;;;AAAlE,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,aAAa,QAAQ;IAC3B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,aAAa,IAAI,QAAQ,CAAC;AAEhC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,KAAK,UAAU,CAAC;AAC3C,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAUY,kCAA8B,MAAA;8BAD1C,yCAAU,kCAAqB,eAAe,CAAC;;;;oBACI;sDAAA,YAAe;;;;;;AAAnE,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,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,YAAM,kBAAkB,IAAI,QAAQ,CAAC,MAAM;AAE3C,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK;QACzB,KAAK;QACL,KAAK,kBAAkB,IAAO;OAC9B;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;AAGD,SAAS,uCACR,MACA,UAAwC;AAExC,SAAO,SAAS,iBAAiB,KAAK;AACvC;IAaa,6BAAyB,MAAA;8BALrC,yCAAU,kCAAqB,UAAU,OACzC,kDACA,gCACA,sCAAsC,CACtC;;;;oBAC8C;iDAAA,YAAe;;;;;;AAA9D,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,SAAsD;AAEtD,YAAM,OAAO;AACb,WAAK,eAAe,QAAQ;AAC5B,WAAK,UAAU,QAAQ;IACxB;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,YAAM,aAAa,IAAI,QAAQ,CAAC;AAChC,uCAAgB,IAAI,QAAQ,UAAU,IAAI,UAAU;AACpD,YAAM,UAAU,CAAC,GAAG,IAAI,QAAQ,SAAS,GAAG,IAAI,UAAU,CAAC;AAE3D,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK;QACzB,KAAK;QACL,KAAK,QAAQ;QACb,GAAG,KAAK;OACR;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAUY,6BAAyB,MAAA;8BADrC,yCAAU,kCAAqB,UAAU,CAAC;;;;oBACI;iDAAA,YAAe;;;;;;AAA9D,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,SAAsD;AAEtD,YAAM,OAAO;AACb,WAAK,UAAU,QAAQ;AACvB,WAAK,iBAAiB,QAAQ;IAC/B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,UAAU,IAAI,QAAQ,CAAC,MAAM;AACnC,YAAM,iBAAqC,IAAI,QAAQ,CAAC,KAAK;AAE7D,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK;QACzB,KAAK,UAAU,IAAO;QACtB,KAAK,kBAAkB;OACvB;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAIY,iCAA6B,MAAA;8BADzC,yCAAU,kCAAqB,cAAc,CAAC;;;;oBAEtC;qDAAA,YAAmC;;;;;;AAD5C,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAWA,4CAAwC,MAAA;8BADpD,yCAAU,kCAAqB,yBAAyB,CAAC;;;;oBACI;gEAAA,YAAe;;;;;;AAA7E,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,SAAqE;AAErE,YAAM,OAAO;AACb,WAAK,eAAe,QAAQ;AAC5B,WAAK,cAAc,QAAQ;IAC5B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,YAAM,cAAc,IAAI,QAAQ,CAAC;AAEjC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,CAAC,KAAK,cAAc,KAAK,WAAW,CAAC;AAC/D,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAIY,+CAA2C,MAAA;8BADvD,yCAAU,kCAAqB,4BAA4B,CAAC;;;;oBAEpD;mEAAA,YAAwC;;;;;;AADjD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAUA,oDAAgD,MAAA;8BAD5D,yCAAU,kCAAqB,iCAAiC,CAAC;;;;oBAEzD;wEAAA,YAAe;;;;;;AADxB,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAEC;AAED,YAAM,OAAO;AACb,UAAI,QAAQ,UAAU,WAAW,GAAG;AACnC,cAAM,IAAI,uBACT,gCACA,4BAAgB,gBAAgB;MAElC;AACA,WAAK,YAAY,QAAQ;IAC1B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,YAAY,IAAI,QAAQ,SAAS,GAAG,CAAC;AAE3C,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,kBAAM,KAAK,KAAK,SAAS;AACxC,aAAO,MAAM,UAAU,GAAG;IAC3B;;;;IAIY,kCAA8B,MAAA;8BAD1C,yCAAU,kCAAqB,eAAe,CAAC;;;;oBAEvC;sDAAA,YAAmC;;;;;;AAD5C,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAKA,6CAAyC,MAAA;8BADrD,yCAAU,kCAAqB,0BAA0B,CAAC;;;;oBAElD;iEAAA,YAAmC;;;;;;AAD5C,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;",
|
|
6
|
+
"names": ["DataRateBitmask"]
|
|
7
7
|
}
|
|
@@ -5,7 +5,7 @@ import type { FibaroCC } from "./FibaroCC.js";
|
|
|
5
5
|
* @publicAPI
|
|
6
6
|
* Defines the Manufacturer ID associated with a specific implementation of the Manufacturer Proprietary CC
|
|
7
7
|
*/
|
|
8
|
-
export declare const manufacturerId: <TTarget extends ManufacturerProprietaryCC>(manufacturerId: number) => import("@zwave-js/shared").TypedClassDecorator<TTarget>;
|
|
8
|
+
export declare const manufacturerId: <TTarget extends typeof ManufacturerProprietaryCC>(manufacturerId: number) => import("@zwave-js/shared").TypedClassDecorator<TTarget>;
|
|
9
9
|
/**
|
|
10
10
|
* @publicAPI
|
|
11
11
|
* Retrieves the Manufacturer ID defined for a specific implementation of the Manufacturer Proprietary CC
|
|
@@ -25,7 +25,7 @@ export declare const getManufacturerProprietaryCCConstructor: (manufacturerId: n
|
|
|
25
25
|
* @publicAPI
|
|
26
26
|
* Defines the manufacturer ID a Proprietary CC API implementation belongs to
|
|
27
27
|
*/
|
|
28
|
-
export declare const manufacturerProprietaryAPI: <TTarget extends CCAPI>(manufacturerId: number) => import("@zwave-js/shared").TypedClassDecorator<TTarget>;
|
|
28
|
+
export declare const manufacturerProprietaryAPI: <TTarget extends typeof CCAPI>(manufacturerId: number) => import("@zwave-js/shared").TypedClassDecorator<TTarget>;
|
|
29
29
|
/**
|
|
30
30
|
* @publicAPI
|
|
31
31
|
* Retrieves the Proprietary CC API constructor for a given Manufacturer ID
|
|
@@ -35,7 +35,7 @@ export declare const getManufacturerProprietaryAPI: (manufacturerId: number) =>
|
|
|
35
35
|
* @publicAPI
|
|
36
36
|
* Defines the Fibaro CC ID a subclass of a Fibaro CC implements
|
|
37
37
|
*/
|
|
38
|
-
export declare const fibaroCC: <TTarget extends FibaroCC>(fibaroCCId: number) => import("@zwave-js/shared").TypedClassDecorator<TTarget>;
|
|
38
|
+
export declare const fibaroCC: <TTarget extends typeof FibaroCC>(fibaroCCId: number) => import("@zwave-js/shared").TypedClassDecorator<TTarget>;
|
|
39
39
|
/**
|
|
40
40
|
* @publicAPI
|
|
41
41
|
* Retrieves the Fibaro CC ID a subclass of a Fibaro CC implements
|
|
@@ -50,7 +50,7 @@ export declare const getFibaroCCConstructor: (fibaroCCId: number) => Manufacture
|
|
|
50
50
|
* @publicAPI
|
|
51
51
|
* Defines the Fibaro CC command a subclass of the Fibaro CC implements
|
|
52
52
|
*/
|
|
53
|
-
export declare const fibaroCCCommand: <TTarget extends FibaroCC>(fibaroCCCommand: number) => import("@zwave-js/shared").TypedClassDecorator<TTarget>;
|
|
53
|
+
export declare const fibaroCCCommand: <TTarget extends typeof FibaroCC>(fibaroCCCommand: number) => import("@zwave-js/shared").TypedClassDecorator<TTarget>;
|
|
54
54
|
/**
|
|
55
55
|
* @publicAPI
|
|
56
56
|
* Retrieves the Fibaro CC command a subclass of a Fibaro CC implements
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/cc/manufacturerProprietary/Decorators.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n\tZWaveError,\n\tZWaveErrorCodes,\n\tcreateReflectionDecoratorPair,\n\tcreateSimpleReflectionDecorator,\n} from \"@zwave-js/core\";\nimport type { APIConstructor, CCAPI } from \"../../lib/API.js\";\nimport type {\n\tManufacturerProprietaryCC,\n\tManufacturerProprietaryCCAPI,\n\tManufacturerProprietaryCCConstructor,\n} from \"../ManufacturerProprietaryCC.js\";\nimport type { FibaroCC } from \"./FibaroCC.js\";\n\n// === Define the manufacturer ID for a given Manufacturer Proprietary CC subclass\n\nconst manufacturerIdDecorator = createSimpleReflectionDecorator<\n\
|
|
4
|
+
"sourcesContent": ["import {\n\tZWaveError,\n\tZWaveErrorCodes,\n\tcreateReflectionDecoratorPair,\n\tcreateSimpleReflectionDecorator,\n} from \"@zwave-js/core\";\nimport type { APIConstructor, CCAPI } from \"../../lib/API.js\";\nimport type {\n\tManufacturerProprietaryCC,\n\tManufacturerProprietaryCCAPI,\n\tManufacturerProprietaryCCConstructor,\n} from \"../ManufacturerProprietaryCC.js\";\nimport type { FibaroCC } from \"./FibaroCC.js\";\n\n// === Define the manufacturer ID for a given Manufacturer Proprietary CC subclass\n\nconst manufacturerIdDecorator = createSimpleReflectionDecorator<\n\ttypeof ManufacturerProprietaryCC,\n\t[manufacturerId: number],\n\tManufacturerProprietaryCCConstructor\n>({\n\tname: \"manufacturerId\",\n});\n\n/**\n * @publicAPI\n * Defines the Manufacturer ID associated with a specific implementation of the Manufacturer Proprietary CC\n */\nexport const manufacturerId = manufacturerIdDecorator.decorator;\n\n/**\n * @publicAPI\n * Retrieves the Manufacturer ID defined for a specific implementation of the Manufacturer Proprietary CC\n */\nexport const getManufacturerId = manufacturerIdDecorator.lookupValue;\n\n/**\n * @publicAPI\n * Retrieves the Manufacturer ID defined for a specific implementation of the Manufacturer Proprietary CC\n */\nexport function getManufacturerIdStatic<\n\tT extends ManufacturerProprietaryCCConstructor,\n>(classConstructor: T): number {\n\t// retrieve the current metadata\n\tconst ret = manufacturerIdDecorator.lookupValueStatic(classConstructor);\n\tif (ret == undefined) {\n\t\tthrow new ZWaveError(\n\t\t\t`No manufacturer ID defined for ${classConstructor.name}!`,\n\t\t\tZWaveErrorCodes.CC_Invalid,\n\t\t);\n\t}\n\treturn ret;\n}\n\n/**\n * @publicAPI\n * Looks up the Manufacturer Proprietary CC constructor for a given Manufacturer ID\n */\nexport const getManufacturerProprietaryCCConstructor =\n\tmanufacturerIdDecorator.lookupConstructor;\n\nconst manufacturerProprietaryAPIDecorator = createSimpleReflectionDecorator<\n\ttypeof CCAPI,\n\t[manufacturerId: number],\n\tAPIConstructor<ManufacturerProprietaryCCAPI>\n>({\n\tname: \"manufacturerProprietaryAPI\",\n});\n\n/**\n * @publicAPI\n * Defines the manufacturer ID a Proprietary CC API implementation belongs to\n */\nexport const manufacturerProprietaryAPI =\n\tmanufacturerProprietaryAPIDecorator.decorator;\n\n/**\n * @publicAPI\n * Retrieves the Proprietary CC API constructor for a given Manufacturer ID\n */\nexport const getManufacturerProprietaryAPI =\n\tmanufacturerProprietaryAPIDecorator.lookupConstructor;\n\n// Fibaro CC specific decorators\n\n// Decorators for easy lookup\n\nconst FibaroCCAndCommandDecorator = createReflectionDecoratorPair<\n\ttypeof FibaroCC,\n\t[fibaroCCId: number],\n\t[fibaroCCCommand: number],\n\tManufacturerProprietaryCCConstructor<typeof FibaroCC>\n>({ superName: \"fibaroCC\", subName: \"fibaroCCCommand\" });\n\n/**\n * @publicAPI\n * Defines the Fibaro CC ID a subclass of a Fibaro CC implements\n */\nexport const fibaroCC = FibaroCCAndCommandDecorator.superDecorator;\n\n/**\n * @publicAPI\n * Retrieves the Fibaro CC ID a subclass of a Fibaro CC implements\n */\nexport const getFibaroCCId = FibaroCCAndCommandDecorator.lookupSuperValue;\n\n/**\n * @publicAPI\n * Looks up the Fibaro CC constructor for a given Fibaro CC ID\n */\nexport const getFibaroCCConstructor =\n\tFibaroCCAndCommandDecorator.lookupSuperConstructor;\n\n/**\n * @publicAPI\n * Defines the Fibaro CC command a subclass of the Fibaro CC implements\n */\n\nexport const fibaroCCCommand = FibaroCCAndCommandDecorator.subDecorator;\n\n/**\n * @publicAPI\n * Retrieves the Fibaro CC command a subclass of a Fibaro CC implements\n */\nexport const getFibaroCCCommand = FibaroCCAndCommandDecorator.lookupSubValue;\n\n/**\n * @publicAPI\n * Looks up the Fibaro CC constructor for a given Fibaro CC ID and command\n */\nexport const getFibaroCCCommandConstructor =\n\tFibaroCCAndCommandDecorator.lookupSubConstructor;\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;AAAA,kBAKO;AAWP,MAAM,8BAA0B,6CAI9B;EACD,MAAM;CACN;AAMM,MAAM,iBAAiB,wBAAwB;AAM/C,MAAM,oBAAoB,wBAAwB;AAMnD,SAAU,wBAEd,kBAAmB;AAEpB,QAAM,MAAM,wBAAwB,kBAAkB,gBAAgB;AACtE,MAAI,OAAO,QAAW;AACrB,UAAM,IAAI,uBACT,kCAAkC,iBAAiB,IAAI,KACvD,4BAAgB,UAAU;EAE5B;AACA,SAAO;AACR;AAMO,MAAM,0CACZ,wBAAwB;AAEzB,MAAM,0CAAsC,6CAI1C;EACD,MAAM;CACN;AAMM,MAAM,6BACZ,oCAAoC;AAM9B,MAAM,gCACZ,oCAAoC;AAMrC,MAAM,kCAA8B,2CAKlC,EAAE,WAAW,YAAY,SAAS,kBAAiB,CAAE;AAMhD,MAAM,WAAW,4BAA4B;AAM7C,MAAM,gBAAgB,4BAA4B;AAMlD,MAAM,yBACZ,4BAA4B;AAOtB,MAAM,kBAAkB,4BAA4B;AAMpD,MAAM,qBAAqB,4BAA4B;AAMvD,MAAM,gCACZ,4BAA4B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|