@zwave-js/cc 15.28.0 → 15.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/cc/AlarmSensorCC.d.ts +3 -1
- package/build/cjs/cc/AlarmSensorCC.js +22 -2
- package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
- package/build/cjs/cc/AssociationCC.js +6 -5
- package/build/cjs/cc/AssociationCC.js.map +2 -2
- package/build/cjs/cc/AssociationGroupInfoCC.js +4 -5
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
- package/build/cjs/cc/BarrierOperatorCC.d.ts +6 -3
- package/build/cjs/cc/BarrierOperatorCC.js +40 -6
- package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
- package/build/cjs/cc/BasicCC.d.ts +4 -1
- package/build/cjs/cc/BasicCC.js +18 -0
- package/build/cjs/cc/BasicCC.js.map +3 -3
- package/build/cjs/cc/BasicWindowCoveringCC.js.map +2 -2
- package/build/cjs/cc/BatteryCC.js +16 -3
- package/build/cjs/cc/BatteryCC.js.map +2 -2
- package/build/cjs/cc/BinarySensorCC.js.map +2 -2
- package/build/cjs/cc/BinarySwitchCC.d.ts +4 -1
- package/build/cjs/cc/BinarySwitchCC.js +18 -0
- package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
- package/build/cjs/cc/CRC16CC.d.ts +3 -2
- package/build/cjs/cc/CRC16CC.js +7 -1
- package/build/cjs/cc/CRC16CC.js.map +3 -3
- package/build/cjs/cc/CentralSceneCC.d.ts +4 -1
- package/build/cjs/cc/CentralSceneCC.js +34 -2
- package/build/cjs/cc/CentralSceneCC.js.map +2 -2
- package/build/cjs/cc/ClimateControlScheduleCC.d.ts +6 -3
- package/build/cjs/cc/ClimateControlScheduleCC.js +54 -6
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
- package/build/cjs/cc/ClockCC.d.ts +2 -1
- package/build/cjs/cc/ClockCC.js +19 -2
- package/build/cjs/cc/ClockCC.js.map +2 -2
- package/build/cjs/cc/ColorSwitchCC.js +1 -4
- package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
- package/build/cjs/cc/ConfigurationCC.d.ts +3 -2
- package/build/cjs/cc/ConfigurationCC.js +62 -8
- package/build/cjs/cc/ConfigurationCC.js.map +2 -2
- package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
- package/build/cjs/cc/DoorLockCC.js.map +2 -2
- package/build/cjs/cc/DoorLockLoggingCC.d.ts +3 -1
- package/build/cjs/cc/DoorLockLoggingCC.js +35 -2
- package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
- package/build/cjs/cc/EntryControlCC.d.ts +5 -1
- package/build/cjs/cc/EntryControlCC.js +57 -2
- package/build/cjs/cc/EntryControlCC.js.map +2 -2
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +4 -16
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlModeCC.d.ts +3 -1
- package/build/cjs/cc/HumidityControlModeCC.js +14 -2
- package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +3 -1
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -0
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlSetpointCC.d.ts +8 -4
- package/build/cjs/cc/HumidityControlSetpointCC.js +61 -12
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
- package/build/cjs/cc/IndicatorCC.js +1 -5
- package/build/cjs/cc/IndicatorCC.js.map +2 -2
- package/build/cjs/cc/IrrigationCC.d.ts +15 -9
- package/build/cjs/cc/IrrigationCC.js +260 -24
- package/build/cjs/cc/IrrigationCC.js.map +2 -2
- package/build/cjs/cc/LanguageCC.d.ts +2 -1
- package/build/cjs/cc/LanguageCC.js +18 -2
- package/build/cjs/cc/LanguageCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerSpecificCC.js +4 -5
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
- package/build/cjs/cc/MeterCC.js +8 -21
- package/build/cjs/cc/MeterCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelAssociationCC.js +11 -7
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelCC.d.ts +5 -2
- package/build/cjs/cc/MultiChannelCC.js +35 -12
- package/build/cjs/cc/MultiChannelCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSwitchCC.d.ts +5 -1
- package/build/cjs/cc/MultilevelSwitchCC.js +30 -0
- package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
- package/build/cjs/cc/NotificationCC.js +29 -11
- package/build/cjs/cc/NotificationCC.js.map +2 -2
- package/build/cjs/cc/PowerlevelCC.js.map +1 -1
- package/build/cjs/cc/ProtectionCC.js.map +2 -2
- package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +3 -2
- package/build/cjs/cc/SceneActuatorConfigurationCC.js +38 -5
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +3 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.js +25 -4
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
- package/build/cjs/cc/Security2CC.d.ts +2 -1
- package/build/cjs/cc/Security2CC.js +31 -3
- package/build/cjs/cc/Security2CC.js.map +2 -2
- package/build/cjs/cc/SecurityCC.d.ts +2 -1
- package/build/cjs/cc/SecurityCC.js +7 -6
- package/build/cjs/cc/SecurityCC.js.map +2 -2
- package/build/cjs/cc/SoundSwitchCC.js +6 -6
- package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
- package/build/cjs/cc/SupervisionCC.d.ts +2 -1
- package/build/cjs/cc/SupervisionCC.js +6 -0
- package/build/cjs/cc/SupervisionCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanModeCC.d.ts +3 -1
- package/build/cjs/cc/ThermostatFanModeCC.js +17 -2
- package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanStateCC.d.ts +3 -1
- package/build/cjs/cc/ThermostatFanStateCC.js +4 -0
- package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatModeCC.js +2 -4
- package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetpointCC.d.ts +4 -1
- package/build/cjs/cc/ThermostatSetpointCC.js +18 -0
- package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
- package/build/cjs/cc/TimeCC.d.ts +1 -1
- package/build/cjs/cc/TimeCC.js +11 -2
- package/build/cjs/cc/TimeCC.js.map +2 -2
- package/build/cjs/cc/TransportServiceCC.js.map +2 -2
- package/build/cjs/cc/UserCodeCC.d.ts +2 -1
- package/build/cjs/cc/UserCodeCC.js +32 -8
- package/build/cjs/cc/UserCodeCC.js.map +2 -2
- package/build/cjs/cc/UserCredentialCC.js +4 -6
- package/build/cjs/cc/UserCredentialCC.js.map +2 -2
- package/build/cjs/cc/VersionCC.d.ts +1 -0
- package/build/cjs/cc/VersionCC.js +32 -0
- package/build/cjs/cc/VersionCC.js.map +2 -2
- package/build/cjs/cc/WakeUpCC.d.ts +2 -0
- package/build/cjs/cc/WakeUpCC.js +14 -0
- package/build/cjs/cc/WakeUpCC.js.map +2 -2
- package/build/cjs/cc/WindowCoveringCC.js +5 -1
- package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
- package/build/cjs/cc/ZWaveProtocolCC.js +3 -11
- package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
- package/build/cjs/cc/_CCValues.generated.d.ts +2 -2
- package/build/cjs/cc/_CCValues.generated.js.map +2 -2
- package/build/cjs/cc/index.d.ts +179 -179
- package/build/cjs/cc/index.js.map +1 -1
- package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +2 -2
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +2 -1
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +30 -2
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
- package/build/cjs/lib/API.d.ts +3 -2
- package/build/cjs/lib/API.js.map +2 -2
- package/build/cjs/lib/CommandClass.d.ts +20 -0
- package/build/cjs/lib/CommandClass.js +52 -11
- package/build/cjs/lib/CommandClass.js.map +3 -3
- package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
- package/build/cjs/lib/EncapsulatingCommandClass.js.map +2 -2
- package/build/cjs/lib/NotificationEventPayload.js.map +2 -2
- package/build/cjs/lib/Security2/Extension.js +1 -4
- package/build/cjs/lib/Security2/Extension.js.map +2 -2
- package/build/cjs/lib/Security2/shared.js.map +2 -2
- package/build/cjs/lib/SetValueResult.js.map +1 -1
- package/build/cjs/lib/Values.d.ts +1 -1
- package/build/cjs/lib/Values.js.map +2 -2
- package/build/cjs/lib/_CCAPI.generated.js.map +1 -1
- package/build/cjs/lib/_Types.d.ts +30 -30
- package/build/cjs/lib/_Types.js.map +2 -2
- package/build/cjs/lib/serializers.js +1 -4
- package/build/cjs/lib/serializers.js.map +2 -2
- package/build/cjs/lib/utils.js.map +2 -2
- package/build/esm/cc/AlarmSensorCC.d.ts +3 -1
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +26 -9
- 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 +8 -7
- 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 +10 -12
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts +6 -3
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +55 -27
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts +4 -1
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +30 -7
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BasicWindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/BasicWindowCoveringCC.js +2 -5
- package/build/esm/cc/BasicWindowCoveringCC.js.map +1 -1
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +12 -12
- 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 +4 -5
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts +4 -1
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +31 -6
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CRC16CC.d.ts +3 -2
- package/build/esm/cc/CRC16CC.d.ts.map +1 -1
- package/build/esm/cc/CRC16CC.js +10 -4
- package/build/esm/cc/CRC16CC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts +4 -1
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +37 -7
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.d.ts +6 -3
- package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +63 -18
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ClockCC.d.ts +2 -1
- package/build/esm/cc/ClockCC.d.ts.map +1 -1
- package/build/esm/cc/ClockCC.js +26 -9
- 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 +17 -20
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.d.ts +3 -2
- package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +83 -41
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js +1 -2
- 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 +25 -29
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts +3 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +39 -5
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts +5 -1
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +74 -14
- 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 +15 -27
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts +3 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +15 -7
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +3 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js +5 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.d.ts +8 -4
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +60 -34
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
- package/build/esm/cc/IndicatorCC.js +19 -38
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts +15 -9
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +276 -67
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts +2 -1
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +18 -6
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +1 -2
- 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 +5 -8
- 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 +15 -29
- 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 +15 -20
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts +5 -2
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +43 -29
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +11 -11
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts +5 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +56 -16
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +66 -55
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +10 -9
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +3 -2
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +44 -21
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts +3 -2
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +35 -28
- 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 +13 -20
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.d.ts +2 -1
- package/build/esm/cc/Security2CC.d.ts.map +1 -1
- package/build/esm/cc/Security2CC.js +68 -32
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.d.ts +2 -1
- package/build/esm/cc/SecurityCC.d.ts.map +1 -1
- package/build/esm/cc/SecurityCC.js +16 -11
- package/build/esm/cc/SecurityCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +2 -2
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.d.ts +2 -1
- package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
- package/build/esm/cc/SupervisionCC.js +13 -6
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts +3 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +19 -9
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts +3 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.js +5 -1
- 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 +2 -4
- 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 +1 -2
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts +4 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +31 -19
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.d.ts +1 -1
- package/build/esm/cc/TimeCC.d.ts.map +1 -1
- package/build/esm/cc/TimeCC.js +18 -9
- package/build/esm/cc/TimeCC.js.map +1 -1
- package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
- package/build/esm/cc/TransportServiceCC.js +8 -8
- package/build/esm/cc/TransportServiceCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts +2 -1
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +51 -36
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/UserCredentialCC.d.ts.map +1 -1
- package/build/esm/cc/UserCredentialCC.js +42 -59
- package/build/esm/cc/UserCredentialCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts +1 -0
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +37 -3
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.d.ts +2 -0
- package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
- package/build/esm/cc/WakeUpCC.js +14 -0
- 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 +10 -9
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js +5 -26
- package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
- package/build/esm/cc/_CCValues.generated.d.ts +2 -2
- package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
- package/build/esm/cc/_CCValues.generated.js +637 -678
- package/build/esm/cc/_CCValues.generated.js.map +1 -1
- package/build/esm/cc/index.d.ts +179 -179
- package/build/esm/cc/index.d.ts.map +1 -1
- package/build/esm/cc/index.js +124 -124
- package/build/esm/cc/index.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/Decorators.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +2 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js +34 -4
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/lib/API.d.ts +3 -2
- package/build/esm/lib/API.d.ts.map +1 -1
- package/build/esm/lib/API.js +1 -1
- package/build/esm/lib/API.js.map +1 -1
- package/build/esm/lib/CommandClass.d.ts +20 -0
- package/build/esm/lib/CommandClass.d.ts.map +1 -1
- package/build/esm/lib/CommandClass.js +50 -16
- package/build/esm/lib/CommandClass.js.map +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
- package/build/esm/lib/CommandClassDecorators.js +1 -2
- package/build/esm/lib/CommandClassDecorators.js.map +1 -1
- package/build/esm/lib/EncapsulatingCommandClass.d.ts.map +1 -1
- package/build/esm/lib/EncapsulatingCommandClass.js.map +1 -1
- package/build/esm/lib/NotificationEventPayload.d.ts.map +1 -1
- package/build/esm/lib/NotificationEventPayload.js.map +1 -1
- package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
- package/build/esm/lib/Security2/Extension.js +2 -6
- package/build/esm/lib/Security2/Extension.js.map +1 -1
- package/build/esm/lib/Security2/shared.d.ts.map +1 -1
- package/build/esm/lib/Security2/shared.js.map +1 -1
- package/build/esm/lib/SetValueResult.d.ts.map +1 -1
- package/build/esm/lib/Values.d.ts +1 -1
- package/build/esm/lib/Values.d.ts.map +1 -1
- package/build/esm/lib/Values.js.map +1 -1
- package/build/esm/lib/_CCAPI.generated.d.ts.map +1 -1
- package/build/esm/lib/_Types.d.ts +30 -30
- package/build/esm/lib/_Types.d.ts.map +1 -1
- package/build/esm/lib/_Types.js.map +1 -1
- package/build/esm/lib/serializers.d.ts.map +1 -1
- package/build/esm/lib/serializers.js +1 -4
- package/build/esm/lib/serializers.js.map +1 -1
- package/build/esm/lib/traits.d.ts.map +1 -1
- package/build/esm/lib/utils.d.ts.map +1 -1
- package/build/esm/lib/utils.js +25 -31
- package/build/esm/lib/utils.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src_gen/cc/TransportServiceCC.ts"],
|
|
4
|
-
"sourcesContent": ["import { CRC16_CCITT, CommandClasses, type GetValueDB, type MessageOrCCLogEntry, type SinglecastCC, type WithAddress, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, type BytesView, buffer2hex } from \"@zwave-js/shared\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport { CCCommand, commandClass, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\nimport { TransportServiceCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nexport const MAX_SEGMENT_SIZE = 39;\nexport const RELAXED_TIMING_THRESHOLD = 2;\n// TODO: Figure out how we know if communicating with R2 or R3\n/** @publicAPI */\nexport const TransportServiceTimeouts = {\n /** Waiting time before requesting a missing segment at data rate R2 */\n requestMissingSegmentR2: 800,\n /** Waiting time before requesting a missing segment at data rate R3 */\n requestMissingSegmentR3: 400,\n /** Waiting time before sending another datagram at data rate R2 */\n segmentCompleteR2: 1000,\n /** Waiting time before sending another datagram at data rate R3 */\n segmentCompleteR3: 500,\n /** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R2 */\n relaxedTimingDelayR2: 35,\n /** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R3 */\n relaxedTimingDelayR3: 15,\n};\n@commandClass(CommandClasses[\"Transport Service\"])\n@implementedVersion(2)\nexport class TransportServiceCC extends CommandClass implements SinglecastCC<TransportServiceCC> {\n declare ccCommand: TransportServiceCommand;\n declare nodeId: number;\n}\n// @publicAPI\nexport interface TransportServiceCCFirstSegmentOptions {\n datagramSize: number;\n sessionId: number;\n headerExtension?: BytesView | undefined;\n partialDatagram: BytesView;\n}\n/** @publicAPI */\nexport function isTransportServiceEncapsulation(command: CommandClass): command is TransportServiceCCFirstSegment | TransportServiceCCSubsequentSegment {\n return (command.ccId === CommandClasses[\"Transport Service\"]\n && (command.ccCommand === TransportServiceCommand.FirstSegment\n || command.ccCommand === TransportServiceCommand.SubsequentSegment));\n}\n@CCCommand(TransportServiceCommand.FirstSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCFirstSegment extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCFirstSegmentOptions>) {\n super(options);\n this.datagramSize = options.datagramSize;\n this.sessionId = options.sessionId;\n this.headerExtension = options.headerExtension;\n this.partialDatagram = options.partialDatagram;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCFirstSegment {\n // Deserialization has already split the datagram size from the ccCommand.\n // Therefore we have one more payload byte\n validatePayload(raw.payload.length >= 6); // 2 bytes dgram size, 1 byte sessid/ext, 1+ bytes payload, 2 bytes checksum\n // Verify the CRC\n const headerBuffer = Bytes.from([\n CommandClasses[\"Transport Service\"],\n TransportServiceCommand.FirstSegment | raw.payload[0],\n ]);\n const ccBuffer = raw.payload.subarray(1, -2);\n let expectedCRC = CRC16_CCITT(headerBuffer);\n expectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);\n validatePayload(expectedCRC === actualCRC);\n const datagramSize = raw.payload.readUInt16BE(0);\n const sessionId = raw.payload[2] >>> 4;\n let payloadOffset = 3;\n // If there is a header extension, read it\n const hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n let headerExtension: BytesView | undefined;\n if (hasHeaderExtension) {\n const extLength = raw.payload[3];\n headerExtension = raw.payload.subarray(4, 4 + extLength);\n payloadOffset += 1 + extLength;\n }\n const partialDatagram: BytesView = raw.payload.subarray(payloadOffset, -2);\n // A node supporting the Transport Service Command Class, version 2\n // MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n validatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n return new this({\n nodeId: ctx.sourceNodeId,\n datagramSize,\n sessionId,\n headerExtension,\n partialDatagram,\n });\n }\n public datagramSize: number;\n public sessionId: number;\n public headerExtension: BytesView | undefined;\n public partialDatagram: BytesView;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n // Transport Service re-uses the lower 3 bits of the ccCommand as payload\n this.ccCommand = (this.ccCommand & 248)\n | ((this.datagramSize >>> 8) & 0b111);\n const ext = !!this.headerExtension && this.headerExtension.length >= 1;\n this.payload = Bytes.from([\n this.datagramSize & 0xff,\n ((this.sessionId & 0b1111) << 4) | (ext ? 0b1000 : 0),\n ]);\n if (ext) {\n this.payload = Bytes.concat([\n this.payload,\n [this.headerExtension!.length],\n this.headerExtension!,\n ]);\n }\n this.payload = Bytes.concat([\n this.payload,\n this.partialDatagram,\n Bytes.alloc(2, 0), // checksum\n ]);\n // Compute and save the CRC16 in the payload\n // The CC header is included in the CRC computation\n const headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n let crc = CRC16_CCITT(headerBuffer);\n crc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n // Write the checksum into the last two bytes of the payload\n this.payload.writeUInt16BE(crc, this.payload.length - 2);\n return super.serialize(ctx);\n }\n protected computeEncapsulationOverhead(): number {\n // Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 2 bytes checksum and (0 OR n+1) bytes header extension\n return (super.computeEncapsulationOverhead()\n + 4\n + (this.headerExtension?.length\n ? 1 + this.headerExtension.length\n : 0));\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n \"datagram size\": this.datagramSize,\n \"byte range\": `0...${this.partialDatagram.length - 1}`,\n payload: buffer2hex(this.partialDatagram),\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSubsequentSegmentOptions extends TransportServiceCCFirstSegmentOptions {\n datagramOffset: number;\n}\n@CCCommand(TransportServiceCommand.SubsequentSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSubsequentSegment extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSubsequentSegmentOptions>) {\n super(options);\n this.datagramSize = options.datagramSize;\n this.datagramOffset = options.datagramOffset;\n this.sessionId = options.sessionId;\n this.headerExtension = options.headerExtension;\n this.partialDatagram = options.partialDatagram;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSubsequentSegment {\n // Deserialization has already split the datagram size from the ccCommand.\n // Therefore we have one more payload byte\n validatePayload(raw.payload.length >= 7); // 2 bytes dgram size, 1 byte sessid/ext/offset, 1 byte offset, 1+ bytes payload, 2 bytes checksum\n // Verify the CRC\n const headerBuffer = Bytes.from([\n CommandClasses[\"Transport Service\"],\n TransportServiceCommand.SubsequentSegment | raw.payload[0],\n ]);\n const ccBuffer = raw.payload.subarray(1, -2);\n let expectedCRC = CRC16_CCITT(headerBuffer);\n expectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);\n validatePayload(expectedCRC === actualCRC);\n const datagramSize = raw.payload.readUInt16BE(0);\n const sessionId = raw.payload[2] >>> 4;\n const datagramOffset = ((raw.payload[2] & 0b111) << 8)\n + raw.payload[3];\n let payloadOffset = 4;\n // If there is a header extension, read it\n const hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n let headerExtension: Bytes | undefined;\n if (hasHeaderExtension) {\n const extLength = raw.payload[4];\n headerExtension = raw.payload.subarray(5, 5 + extLength);\n payloadOffset += 1 + extLength;\n }\n const partialDatagram: Bytes = raw.payload.subarray(payloadOffset, -2);\n // A node supporting the Transport Service Command Class, version 2\n // MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n validatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n return new this({\n nodeId: ctx.sourceNodeId,\n datagramSize,\n sessionId,\n datagramOffset,\n headerExtension,\n partialDatagram,\n });\n }\n public datagramSize: number;\n public datagramOffset: number;\n public sessionId: number;\n public headerExtension: BytesView | undefined;\n public partialDatagram: BytesView;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n // Transport Service re-uses the lower 3 bits of the ccCommand as payload\n this.ccCommand = (this.ccCommand & 248)\n | ((this.datagramSize >>> 8) & 0b111);\n const ext = !!this.headerExtension && this.headerExtension.length >= 1;\n this.payload = Bytes.from([\n this.datagramSize & 0xff,\n ((this.sessionId & 0b1111) << 4)\n | (ext ? 0b1000 : 0)\n | ((this.datagramOffset >>> 8) & 0b111),\n this.datagramOffset & 0xff,\n ]);\n if (ext) {\n this.payload = Bytes.concat([\n this.payload,\n [this.headerExtension!.length],\n this.headerExtension!,\n ]);\n }\n this.payload = Bytes.concat([\n this.payload,\n this.partialDatagram,\n Bytes.alloc(2, 0), // checksum\n ]);\n // Compute and save the CRC16 in the payload\n // The CC header is included in the CRC computation\n const headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n let crc = CRC16_CCITT(headerBuffer);\n crc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n // Write the checksum into the last two bytes of the payload\n this.payload.writeUInt16BE(crc, this.payload.length - 2);\n return super.serialize(ctx);\n }\n protected computeEncapsulationOverhead(): number {\n // Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 1 byte offset, 2 bytes checksum and (0 OR n+1) bytes header extension\n return (super.computeEncapsulationOverhead()\n + 5\n + (this.headerExtension?.length\n ? 1 + this.headerExtension.length\n : 0));\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n \"datagram size\": this.datagramSize,\n \"byte range\": `${this.datagramOffset}...${this.datagramOffset + this.partialDatagram.length - 1}`,\n payload: buffer2hex(this.partialDatagram),\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentRequestOptions {\n sessionId: number;\n datagramOffset: number;\n}\n@CCCommand(TransportServiceCommand.SegmentRequest)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSegmentRequest extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentRequestOptions>) {\n super(options);\n this.sessionId = options.sessionId;\n this.datagramOffset = options.datagramOffset;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentRequest {\n validatePayload(raw.payload.length >= 3);\n const sessionId = raw.payload[1] >>> 4;\n const datagramOffset = ((raw.payload[1] & 0b111) << 8)\n + raw.payload[2];\n return new this({\n nodeId: ctx.sourceNodeId,\n sessionId,\n datagramOffset,\n });\n }\n public sessionId: number;\n public datagramOffset: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n ((this.sessionId & 0b1111) << 4)\n | ((this.datagramOffset >>> 8) & 0b111),\n this.datagramOffset & 0xff,\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n offset: this.datagramOffset,\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentCompleteOptions {\n sessionId: number;\n}\n@CCCommand(TransportServiceCommand.SegmentComplete)\nexport class TransportServiceCCSegmentComplete extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentCompleteOptions>) {\n super(options);\n this.sessionId = options.sessionId;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentComplete {\n validatePayload(raw.payload.length >= 2);\n const sessionId = raw.payload[1] >>> 4;\n return new this({\n nodeId: ctx.sourceNodeId,\n sessionId,\n });\n }\n public sessionId: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([(this.sessionId & 0b1111) << 4]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"session ID\": this.sessionId },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentWaitOptions {\n pendingSegments: number;\n}\n@CCCommand(TransportServiceCommand.SegmentWait)\nexport class TransportServiceCCSegmentWait extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentWaitOptions>) {\n super(options);\n this.pendingSegments = options.pendingSegments;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentWait {\n validatePayload(raw.payload.length >= 2);\n const pendingSegments = raw.payload[1];\n return new this({\n nodeId: ctx.sourceNodeId,\n pendingSegments,\n });\n }\n public pendingSegments: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.pendingSegments]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"pending segments\": this.pendingSegments },\n };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAA8I;AAC9I,oBAAkD;AAClD,0BAAyC;AACzC,oCAA6D;AAC7D,mBAAwC;AAEjC,MAAM,mBAAmB;AACzB,MAAM,2BAA2B;AAGjC,MAAM,2BAA2B;;EAEpC,yBAAyB;;EAEzB,yBAAyB;;EAEzB,mBAAmB;;EAEnB,mBAAmB;;EAEnB,sBAAsB;;EAEtB,sBAAsB;;IAIb,sBAAkB,MAAA;8BAF9B,4CAAa,2BAAe,mBAAmB,CAAC,OAChD,kDAAmB,CAAC,CAAC;;;;oBACkB;0CAAA,YAAY;WAAA;;;;;;;;AAApD,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;;;;AAYP,SAAU,gCAAgC,SAAqB;AACjE,SAAQ,QAAQ,SAAS,2BAAe,mBAAmB,MACnD,QAAQ,cAAc,qCAAwB,gBAC3C,QAAQ,cAAc,qCAAwB;AAC7D;AAJgB;IAOH,kCAA8B,MAAA;8BAF1C,yCAAU,qCAAwB,YAAY,CAAC;;;;oBAEI;sDAAA,YAAkB;WAAA;;;;;;;;AAAtE,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACT,YAAmB,SAA2D;AAC1E,YAAM,OAAO;AACb,WAAK,eAAe,QAAQ;AAC5B,WAAK,YAAY,QAAQ;AACzB,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,kBAAkB,QAAQ;IACnC;IACO,OAAO,KAAK,KAAY,KAAqB;AAGhD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AAEvC,YAAM,eAAe,oBAAM,KAAK;QAC5B,2BAAe,mBAAmB;QAClC,qCAAwB,eAAe,IAAI,QAAQ,CAAC;OACvD;AACD,YAAM,WAAW,IAAI,QAAQ,SAAS,GAAG,EAAE;AAC3C,UAAI,kBAAc,yBAAY,YAAY;AAC1C,wBAAc,yBAAY,UAAU,WAAW;AAC/C,YAAM,YAAY,IAAI,QAAQ,aAAa,IAAI,QAAQ,SAAS,CAAC;AACjE,uCAAgB,gBAAgB,SAAS;AACzC,YAAM,eAAe,IAAI,QAAQ,aAAa,CAAC;AAC/C,YAAM,YAAY,IAAI,QAAQ,CAAC,MAAM;AACrC,UAAI,gBAAgB;AAEpB,YAAM,qBAAqB,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI;AAC/C,UAAI;AACJ,UAAI,oBAAoB;AACpB,cAAM,YAAY,IAAI,QAAQ,CAAC;AAC/B,0BAAkB,IAAI,QAAQ,SAAS,GAAG,IAAI,SAAS;AACvD,yBAAiB,IAAI;MACzB;AACA,YAAM,kBAA6B,IAAI,QAAQ,SAAS,eAAe,EAAE;AAGzE,uCAAgB,gBAAgB,UAAU,gBAAgB;AAC1D,aAAO,IAAI,KAAK;QACZ,QAAQ,IAAI;QACZ;QACA;QACA;QACA;OACH;IACL;IACO;IACA;IACA;IACA;IACA,UAAU,KAAsB;AAEnC,WAAK,
|
|
4
|
+
"sourcesContent": ["import { CRC16_CCITT, CommandClasses, type GetValueDB, type MessageOrCCLogEntry, type SinglecastCC, type WithAddress, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, type BytesView, buffer2hex } from \"@zwave-js/shared\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport { CCCommand, commandClass, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\nimport { TransportServiceCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nexport const MAX_SEGMENT_SIZE = 39;\nexport const RELAXED_TIMING_THRESHOLD = 2;\n// TODO: Figure out how we know if communicating with R2 or R3\n/** @publicAPI */\nexport const TransportServiceTimeouts = {\n /** Waiting time before requesting a missing segment at data rate R2 */\n requestMissingSegmentR2: 800,\n /** Waiting time before requesting a missing segment at data rate R3 */\n requestMissingSegmentR3: 400,\n /** Waiting time before sending another datagram at data rate R2 */\n segmentCompleteR2: 1000,\n /** Waiting time before sending another datagram at data rate R3 */\n segmentCompleteR3: 500,\n /** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R2 */\n relaxedTimingDelayR2: 35,\n /** Waiting time between segments when sending more than {@link RELAXED_TIMING_THRESHOLD} segments at data rate R3 */\n relaxedTimingDelayR3: 15,\n};\n@commandClass(CommandClasses[\"Transport Service\"])\n@implementedVersion(2)\nexport class TransportServiceCC extends CommandClass implements SinglecastCC<TransportServiceCC> {\n declare ccCommand: TransportServiceCommand;\n declare nodeId: number;\n}\n// @publicAPI\nexport interface TransportServiceCCFirstSegmentOptions {\n datagramSize: number;\n sessionId: number;\n headerExtension?: BytesView | undefined;\n partialDatagram: BytesView;\n}\n/** @publicAPI */\nexport function isTransportServiceEncapsulation(command: CommandClass): command is TransportServiceCCFirstSegment | TransportServiceCCSubsequentSegment {\n return (command.ccId === CommandClasses[\"Transport Service\"]\n && (command.ccCommand === TransportServiceCommand.FirstSegment\n || command.ccCommand === TransportServiceCommand.SubsequentSegment));\n}\n@CCCommand(TransportServiceCommand.FirstSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCFirstSegment extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCFirstSegmentOptions>) {\n super(options);\n this.datagramSize = options.datagramSize;\n this.sessionId = options.sessionId;\n this.headerExtension = options.headerExtension;\n this.partialDatagram = options.partialDatagram;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCFirstSegment {\n // Deserialization has already split the datagram size from the ccCommand.\n // Therefore we have one more payload byte\n validatePayload(raw.payload.length >= 6); // 2 bytes dgram size, 1 byte sessid/ext, 1+ bytes payload, 2 bytes checksum\n // Verify the CRC\n const headerBuffer = Bytes.from([\n CommandClasses[\"Transport Service\"],\n TransportServiceCommand.FirstSegment | raw.payload[0],\n ]);\n const ccBuffer = raw.payload.subarray(1, -2);\n let expectedCRC = CRC16_CCITT(headerBuffer);\n expectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);\n validatePayload(expectedCRC === actualCRC);\n const datagramSize = raw.payload.readUInt16BE(0);\n const sessionId = raw.payload[2] >>> 4;\n let payloadOffset = 3;\n // If there is a header extension, read it\n const hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n let headerExtension: BytesView | undefined;\n if (hasHeaderExtension) {\n const extLength = raw.payload[3];\n headerExtension = raw.payload.subarray(4, 4 + extLength);\n payloadOffset += 1 + extLength;\n }\n const partialDatagram: BytesView = raw.payload.subarray(payloadOffset, -2);\n // A node supporting the Transport Service Command Class, version 2\n // MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n validatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n return new this({\n nodeId: ctx.sourceNodeId,\n datagramSize,\n sessionId,\n headerExtension,\n partialDatagram,\n });\n }\n public datagramSize: number;\n public sessionId: number;\n public headerExtension: BytesView | undefined;\n public partialDatagram: BytesView;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n // Transport Service re-uses the lower 3 bits of the ccCommand as payload\n this.ccCommand =\n (this.ccCommand & 248)\n | ((this.datagramSize >>> 8) & 0b111);\n const ext = !!this.headerExtension && this.headerExtension.length >= 1;\n this.payload = Bytes.from([\n this.datagramSize & 0xff,\n ((this.sessionId & 0b1111) << 4) | (ext ? 0b1000 : 0),\n ]);\n if (ext) {\n this.payload = Bytes.concat([\n this.payload,\n [this.headerExtension!.length],\n this.headerExtension!,\n ]);\n }\n this.payload = Bytes.concat([\n this.payload,\n this.partialDatagram,\n Bytes.alloc(2, 0), // checksum\n ]);\n // Compute and save the CRC16 in the payload\n // The CC header is included in the CRC computation\n const headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n let crc = CRC16_CCITT(headerBuffer);\n crc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n // Write the checksum into the last two bytes of the payload\n this.payload.writeUInt16BE(crc, this.payload.length - 2);\n return super.serialize(ctx);\n }\n protected computeEncapsulationOverhead(): number {\n // Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 2 bytes checksum and (0 OR n+1) bytes header extension\n return (super.computeEncapsulationOverhead()\n + 4\n + (this.headerExtension?.length\n ? 1 + this.headerExtension.length\n : 0));\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n \"datagram size\": this.datagramSize,\n \"byte range\": `0...${this.partialDatagram.length - 1}`,\n payload: buffer2hex(this.partialDatagram),\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSubsequentSegmentOptions extends TransportServiceCCFirstSegmentOptions {\n datagramOffset: number;\n}\n@CCCommand(TransportServiceCommand.SubsequentSegment)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSubsequentSegment extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSubsequentSegmentOptions>) {\n super(options);\n this.datagramSize = options.datagramSize;\n this.datagramOffset = options.datagramOffset;\n this.sessionId = options.sessionId;\n this.headerExtension = options.headerExtension;\n this.partialDatagram = options.partialDatagram;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSubsequentSegment {\n // Deserialization has already split the datagram size from the ccCommand.\n // Therefore we have one more payload byte\n validatePayload(raw.payload.length >= 7); // 2 bytes dgram size, 1 byte sessid/ext/offset, 1 byte offset, 1+ bytes payload, 2 bytes checksum\n // Verify the CRC\n const headerBuffer = Bytes.from([\n CommandClasses[\"Transport Service\"],\n TransportServiceCommand.SubsequentSegment | raw.payload[0],\n ]);\n const ccBuffer = raw.payload.subarray(1, -2);\n let expectedCRC = CRC16_CCITT(headerBuffer);\n expectedCRC = CRC16_CCITT(ccBuffer, expectedCRC);\n const actualCRC = raw.payload.readUInt16BE(raw.payload.length - 2);\n validatePayload(expectedCRC === actualCRC);\n const datagramSize = raw.payload.readUInt16BE(0);\n const sessionId = raw.payload[2] >>> 4;\n const datagramOffset = ((raw.payload[2] & 0b111) << 8) + raw.payload[3];\n let payloadOffset = 4;\n // If there is a header extension, read it\n const hasHeaderExtension = !!(raw.payload[2] & 0b1000);\n let headerExtension: Bytes | undefined;\n if (hasHeaderExtension) {\n const extLength = raw.payload[4];\n headerExtension = raw.payload.subarray(5, 5 + extLength);\n payloadOffset += 1 + extLength;\n }\n const partialDatagram: Bytes = raw.payload.subarray(payloadOffset, -2);\n // A node supporting the Transport Service Command Class, version 2\n // MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.\n validatePayload(partialDatagram.length <= MAX_SEGMENT_SIZE);\n return new this({\n nodeId: ctx.sourceNodeId,\n datagramSize,\n sessionId,\n datagramOffset,\n headerExtension,\n partialDatagram,\n });\n }\n public datagramSize: number;\n public datagramOffset: number;\n public sessionId: number;\n public headerExtension: BytesView | undefined;\n public partialDatagram: BytesView;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n // Transport Service re-uses the lower 3 bits of the ccCommand as payload\n this.ccCommand =\n (this.ccCommand & 248)\n | ((this.datagramSize >>> 8) & 0b111);\n const ext = !!this.headerExtension && this.headerExtension.length >= 1;\n this.payload = Bytes.from([\n this.datagramSize & 0xff,\n ((this.sessionId & 0b1111) << 4)\n | (ext ? 0b1000 : 0)\n | ((this.datagramOffset >>> 8) & 0b111),\n this.datagramOffset & 0xff,\n ]);\n if (ext) {\n this.payload = Bytes.concat([\n this.payload,\n [this.headerExtension!.length],\n this.headerExtension!,\n ]);\n }\n this.payload = Bytes.concat([\n this.payload,\n this.partialDatagram,\n Bytes.alloc(2, 0), // checksum\n ]);\n // Compute and save the CRC16 in the payload\n // The CC header is included in the CRC computation\n const headerBuffer = Bytes.from([this.ccId, this.ccCommand]);\n let crc = CRC16_CCITT(headerBuffer);\n crc = CRC16_CCITT(this.payload.subarray(0, -2), crc);\n // Write the checksum into the last two bytes of the payload\n this.payload.writeUInt16BE(crc, this.payload.length - 2);\n return super.serialize(ctx);\n }\n protected computeEncapsulationOverhead(): number {\n // Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 1 byte offset, 2 bytes checksum and (0 OR n+1) bytes header extension\n return (super.computeEncapsulationOverhead()\n + 5\n + (this.headerExtension?.length\n ? 1 + this.headerExtension.length\n : 0));\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n \"datagram size\": this.datagramSize,\n \"byte range\": `${this.datagramOffset}...${this.datagramOffset + this.partialDatagram.length - 1}`,\n payload: buffer2hex(this.partialDatagram),\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentRequestOptions {\n sessionId: number;\n datagramOffset: number;\n}\n@CCCommand(TransportServiceCommand.SegmentRequest)\n// Handling expected responses is done by the RX state machine\nexport class TransportServiceCCSegmentRequest extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentRequestOptions>) {\n super(options);\n this.sessionId = options.sessionId;\n this.datagramOffset = options.datagramOffset;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentRequest {\n validatePayload(raw.payload.length >= 3);\n const sessionId = raw.payload[1] >>> 4;\n const datagramOffset = ((raw.payload[1] & 0b111) << 8) + raw.payload[2];\n return new this({\n nodeId: ctx.sourceNodeId,\n sessionId,\n datagramOffset,\n });\n }\n public sessionId: number;\n public datagramOffset: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n ((this.sessionId & 0b1111) << 4)\n | ((this.datagramOffset >>> 8) & 0b111),\n this.datagramOffset & 0xff,\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"session ID\": this.sessionId,\n offset: this.datagramOffset,\n },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentCompleteOptions {\n sessionId: number;\n}\n@CCCommand(TransportServiceCommand.SegmentComplete)\nexport class TransportServiceCCSegmentComplete extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentCompleteOptions>) {\n super(options);\n this.sessionId = options.sessionId;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentComplete {\n validatePayload(raw.payload.length >= 2);\n const sessionId = raw.payload[1] >>> 4;\n return new this({\n nodeId: ctx.sourceNodeId,\n sessionId,\n });\n }\n public sessionId: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([(this.sessionId & 0b1111) << 4]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"session ID\": this.sessionId },\n };\n }\n}\n// @publicAPI\nexport interface TransportServiceCCSegmentWaitOptions {\n pendingSegments: number;\n}\n@CCCommand(TransportServiceCommand.SegmentWait)\nexport class TransportServiceCCSegmentWait extends TransportServiceCC {\n public constructor(options: WithAddress<TransportServiceCCSegmentWaitOptions>) {\n super(options);\n this.pendingSegments = options.pendingSegments;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): TransportServiceCCSegmentWait {\n validatePayload(raw.payload.length >= 2);\n const pendingSegments = raw.payload[1];\n return new this({\n nodeId: ctx.sourceNodeId,\n pendingSegments,\n });\n }\n public pendingSegments: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.pendingSegments]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"pending segments\": this.pendingSegments },\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -266,6 +266,7 @@ export declare class UserCodeCCExtendedUserCodeReport extends UserCodeCC {
|
|
|
266
266
|
persistValues(ctx: PersistValuesContext): boolean;
|
|
267
267
|
readonly userCodes: readonly UserCode[];
|
|
268
268
|
readonly nextUserId: number;
|
|
269
|
+
serialize(ctx: CCEncodingContext): Promise<Bytes>;
|
|
269
270
|
toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
|
|
270
271
|
}
|
|
271
272
|
export interface UserCodeCCExtendedUserCodeGetOptions {
|
|
@@ -274,7 +275,7 @@ export interface UserCodeCCExtendedUserCodeGetOptions {
|
|
|
274
275
|
}
|
|
275
276
|
export declare class UserCodeCCExtendedUserCodeGet extends UserCodeCC {
|
|
276
277
|
constructor(options: WithAddress<UserCodeCCExtendedUserCodeGetOptions>);
|
|
277
|
-
static from(
|
|
278
|
+
static from(raw: CCRaw, ctx: CCParsingContext): UserCodeCCExtendedUserCodeGet;
|
|
278
279
|
userId: number;
|
|
279
280
|
reportMore: boolean;
|
|
280
281
|
serialize(ctx: CCEncodingContext): Promise<Bytes>;
|
|
@@ -1614,12 +1614,7 @@ let UserCodeCCExtendedUserCodeSet = (() => {
|
|
|
1614
1614
|
serialize(ctx) {
|
|
1615
1615
|
const userCodeBuffers = this.userCodes.map((code) => {
|
|
1616
1616
|
const ret = import_shared.Bytes.concat([
|
|
1617
|
-
[
|
|
1618
|
-
0,
|
|
1619
|
-
0,
|
|
1620
|
-
code.userIdStatus,
|
|
1621
|
-
code.userCode?.length ?? 0
|
|
1622
|
-
],
|
|
1617
|
+
[0, 0, code.userIdStatus, code.userCode?.length ?? 0],
|
|
1623
1618
|
(0, import_shared.isUint8Array)(code.userCode) ? code.userCode : import_shared.Bytes.from(code.userCode ?? "", "ascii")
|
|
1624
1619
|
]);
|
|
1625
1620
|
ret.writeUInt16BE(code.userId, 0);
|
|
@@ -1697,6 +1692,30 @@ let UserCodeCCExtendedUserCodeReport = (() => {
|
|
|
1697
1692
|
}
|
|
1698
1693
|
userCodes;
|
|
1699
1694
|
nextUserId;
|
|
1695
|
+
serialize(ctx) {
|
|
1696
|
+
if (this.userCodes.length > 255) {
|
|
1697
|
+
throw new import_core.ZWaveError("An extended user code report can contain at most 255 codes", import_core.ZWaveErrorCodes.Argument_Invalid);
|
|
1698
|
+
}
|
|
1699
|
+
const codes = this.userCodes.map((code) => {
|
|
1700
|
+
const userCode = import_shared.Bytes.from(code.userCode, "ascii");
|
|
1701
|
+
if (userCode.length > 15) {
|
|
1702
|
+
throw new import_core.ZWaveError("User codes must not be longer than 15 characters", import_core.ZWaveErrorCodes.Argument_Invalid);
|
|
1703
|
+
}
|
|
1704
|
+
const buffer = import_shared.Bytes.concat([
|
|
1705
|
+
[0, 0, code.userIdStatus, userCode.length],
|
|
1706
|
+
userCode
|
|
1707
|
+
]);
|
|
1708
|
+
buffer.writeUInt16BE(code.userId, 0);
|
|
1709
|
+
return buffer;
|
|
1710
|
+
});
|
|
1711
|
+
this.payload = import_shared.Bytes.concat([
|
|
1712
|
+
[this.userCodes.length],
|
|
1713
|
+
...codes,
|
|
1714
|
+
[0, 0]
|
|
1715
|
+
]);
|
|
1716
|
+
this.payload.writeUInt16BE(this.nextUserId, this.payload.length - 2);
|
|
1717
|
+
return super.serialize(ctx);
|
|
1718
|
+
}
|
|
1700
1719
|
toLogEntry(ctx) {
|
|
1701
1720
|
const message = {};
|
|
1702
1721
|
for (const { userId, userIdStatus, userCode } of this.userCodes) {
|
|
@@ -1736,8 +1755,13 @@ let UserCodeCCExtendedUserCodeGet = (() => {
|
|
|
1736
1755
|
this.userId = options.userId;
|
|
1737
1756
|
this.reportMore = !!options.reportMore;
|
|
1738
1757
|
}
|
|
1739
|
-
static from(
|
|
1740
|
-
|
|
1758
|
+
static from(raw, ctx) {
|
|
1759
|
+
(0, import_core.validatePayload)(raw.payload.length >= 3);
|
|
1760
|
+
return new this({
|
|
1761
|
+
nodeId: ctx.sourceNodeId,
|
|
1762
|
+
userId: raw.payload.readUInt16BE(0),
|
|
1763
|
+
reportMore: !!(raw.payload[2] & 1)
|
|
1764
|
+
});
|
|
1741
1765
|
}
|
|
1742
1766
|
userId;
|
|
1743
1767
|
reportMore;
|