@matter/model 0.13.1-alpha.0-20250508-047aa0277 → 0.13.1-alpha.0-20250511-74ef153aa
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/dist/cjs/aspects/Constraint.d.ts +2 -0
- package/dist/cjs/aspects/Constraint.d.ts.map +1 -1
- package/dist/cjs/aspects/Constraint.js +5 -1
- package/dist/cjs/aspects/Constraint.js.map +2 -2
- package/dist/cjs/common/Specification.d.ts +4 -4
- package/dist/cjs/common/Specification.d.ts.map +1 -1
- package/dist/cjs/common/Specification.js +2 -2
- package/dist/cjs/common/Specification.js.map +1 -1
- package/dist/cjs/logic/Scope.d.ts.map +1 -1
- package/dist/cjs/logic/Scope.js +36 -10
- package/dist/cjs/logic/Scope.js.map +1 -1
- package/dist/cjs/logic/definition-validation/CommandValidator.js +1 -2
- package/dist/cjs/logic/definition-validation/CommandValidator.js.map +1 -1
- package/dist/cjs/logic/definition-validation/ValueValidator.d.ts +1 -6
- package/dist/cjs/logic/definition-validation/ValueValidator.d.ts.map +1 -1
- package/dist/cjs/logic/definition-validation/ValueValidator.js +32 -17
- package/dist/cjs/logic/definition-validation/ValueValidator.js.map +1 -1
- package/dist/cjs/models/Globals.d.ts +1 -1
- package/dist/cjs/parser/Lexer.d.ts +1 -1
- package/dist/cjs/parser/Lexer.d.ts.map +1 -1
- package/dist/cjs/parser/Lexer.js.map +1 -1
- package/dist/cjs/parser/Token.d.ts +2 -2
- package/dist/cjs/parser/Token.d.ts.map +1 -1
- package/dist/cjs/standard/elements/AcceptedCommandList.d.ts.map +1 -1
- package/dist/cjs/standard/elements/AcceptedCommandList.js +1 -1
- package/dist/cjs/standard/elements/AcceptedCommandList.js.map +1 -1
- package/dist/cjs/standard/elements/AccessControl.d.ts.map +1 -1
- package/dist/cjs/standard/elements/AccessControl.js +8 -8
- package/dist/cjs/standard/elements/AccessControl.js.map +1 -1
- package/dist/cjs/standard/elements/AccountLogin.d.ts.map +1 -1
- package/dist/cjs/standard/elements/AccountLogin.js +5 -5
- package/dist/cjs/standard/elements/AccountLogin.js.map +1 -1
- package/dist/cjs/standard/elements/Actions.d.ts.map +1 -1
- package/dist/cjs/standard/elements/Actions.js +2 -2
- package/dist/cjs/standard/elements/Actions.js.map +1 -1
- package/dist/cjs/standard/elements/AdministratorCommissioning.d.ts.map +1 -1
- package/dist/cjs/standard/elements/AdministratorCommissioning.js +4 -4
- package/dist/cjs/standard/elements/AdministratorCommissioning.js.map +1 -1
- package/dist/cjs/standard/elements/ApplicationLauncher.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ApplicationLauncher.js +2 -2
- package/dist/cjs/standard/elements/ApplicationLauncher.js.map +1 -1
- package/dist/cjs/standard/elements/BallastConfiguration.d.ts.map +1 -1
- package/dist/cjs/standard/elements/BallastConfiguration.js +4 -4
- package/dist/cjs/standard/elements/BallastConfiguration.js.map +1 -1
- package/dist/cjs/standard/elements/BasicInformation.d.ts.map +1 -1
- package/dist/cjs/standard/elements/BasicInformation.js +5 -5
- package/dist/cjs/standard/elements/BasicInformation.js.map +1 -1
- package/dist/cjs/standard/elements/Binding.js +1 -1
- package/dist/cjs/standard/elements/BooleanStateConfiguration.js +1 -1
- package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.d.ts.map +1 -1
- package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.js +3 -3
- package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.js.map +1 -1
- package/dist/cjs/standard/elements/Channel.js +2 -2
- package/dist/cjs/standard/elements/ColorControl.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ColorControl.js +15 -15
- package/dist/cjs/standard/elements/ColorControl.js.map +1 -1
- package/dist/cjs/standard/elements/CommissionerControl.d.ts.map +1 -1
- package/dist/cjs/standard/elements/CommissionerControl.js +6 -6
- package/dist/cjs/standard/elements/CommissionerControl.js.map +1 -1
- package/dist/cjs/standard/elements/ConcentrationMeasurement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ConcentrationMeasurement.js +2 -2
- package/dist/cjs/standard/elements/ConcentrationMeasurement.js.map +1 -1
- package/dist/cjs/standard/elements/ContentControl.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ContentControl.js +4 -4
- package/dist/cjs/standard/elements/ContentControl.js.map +1 -1
- package/dist/cjs/standard/elements/ContentLauncher.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ContentLauncher.js +13 -15
- package/dist/cjs/standard/elements/ContentLauncher.js.map +1 -1
- package/dist/cjs/standard/elements/Descriptor.js +1 -1
- package/dist/cjs/standard/elements/DeviceEnergyManagement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/DeviceEnergyManagement.js +14 -14
- package/dist/cjs/standard/elements/DeviceEnergyManagement.js.map +1 -1
- package/dist/cjs/standard/elements/DeviceEnergyManagementDT.js +5 -5
- package/dist/cjs/standard/elements/DeviceEnergyManagementDT.js.map +1 -1
- package/dist/cjs/standard/elements/DiagnosticLogs.js +2 -2
- package/dist/cjs/standard/elements/DoorLock.d.ts.map +1 -1
- package/dist/cjs/standard/elements/DoorLock.js +16 -16
- package/dist/cjs/standard/elements/DoorLock.js.map +1 -1
- package/dist/cjs/standard/elements/EcosystemInformation.d.ts.map +1 -1
- package/dist/cjs/standard/elements/EcosystemInformation.js +4 -4
- package/dist/cjs/standard/elements/EcosystemInformation.js.map +1 -1
- package/dist/cjs/standard/elements/ElectricalEnergyMeasurement.js +1 -1
- package/dist/cjs/standard/elements/ElectricalPowerMeasurement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ElectricalPowerMeasurement.js +3 -3
- package/dist/cjs/standard/elements/ElectricalPowerMeasurement.js.map +1 -1
- package/dist/cjs/standard/elements/EnergyEvse.d.ts.map +1 -1
- package/dist/cjs/standard/elements/EnergyEvse.js +10 -10
- package/dist/cjs/standard/elements/EnergyEvse.js.map +1 -1
- package/dist/cjs/standard/elements/EnergyEvseMode.d.ts.map +1 -1
- package/dist/cjs/standard/elements/EnergyEvseMode.js +3 -3
- package/dist/cjs/standard/elements/EnergyEvseMode.js.map +1 -1
- package/dist/cjs/standard/elements/EnergyPreference.d.ts.map +1 -1
- package/dist/cjs/standard/elements/EnergyPreference.js +2 -2
- package/dist/cjs/standard/elements/EnergyPreference.js.map +1 -1
- package/dist/cjs/standard/elements/FeatureMap.d.ts.map +1 -1
- package/dist/cjs/standard/elements/FeatureMap.js +1 -1
- package/dist/cjs/standard/elements/FeatureMap.js.map +1 -1
- package/dist/cjs/standard/elements/FixedLabel.d.ts.map +1 -1
- package/dist/cjs/standard/elements/FixedLabel.js +1 -1
- package/dist/cjs/standard/elements/FixedLabel.js.map +1 -1
- package/dist/cjs/standard/elements/FlowMeasurement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/FlowMeasurement.js +1 -1
- package/dist/cjs/standard/elements/FlowMeasurement.js.map +1 -1
- package/dist/cjs/standard/elements/GeneralCommissioning.d.ts.map +1 -1
- package/dist/cjs/standard/elements/GeneralCommissioning.js +24 -25
- package/dist/cjs/standard/elements/GeneralCommissioning.js.map +1 -1
- package/dist/cjs/standard/elements/GeneralDiagnostics.d.ts.map +1 -1
- package/dist/cjs/standard/elements/GeneralDiagnostics.js +6 -6
- package/dist/cjs/standard/elements/GeneralDiagnostics.js.map +1 -1
- package/dist/cjs/standard/elements/GroupKeyManagement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/GroupKeyManagement.js +7 -7
- package/dist/cjs/standard/elements/GroupKeyManagement.js.map +1 -1
- package/dist/cjs/standard/elements/Groups.d.ts.map +1 -1
- package/dist/cjs/standard/elements/Groups.js +1 -1
- package/dist/cjs/standard/elements/Groups.js.map +1 -1
- package/dist/cjs/standard/elements/IcdManagement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/IcdManagement.js +4 -4
- package/dist/cjs/standard/elements/IcdManagement.js.map +1 -1
- package/dist/cjs/standard/elements/Identify.js +1 -1
- package/dist/cjs/standard/elements/{JointFabricDatastoreCluster.d.ts → JointFabricDatastore.d.ts} +2 -2
- package/dist/cjs/standard/elements/JointFabricDatastore.d.ts.map +1 -0
- package/dist/cjs/standard/elements/{JointFabricDatastoreCluster.js → JointFabricDatastore.js} +9 -9
- package/dist/cjs/standard/elements/{JointFabricDatastoreCluster.js.map → JointFabricDatastore.js.map} +2 -2
- package/dist/cjs/standard/elements/JointFabricPki.d.ts.map +1 -1
- package/dist/cjs/standard/elements/JointFabricPki.js +2 -2
- package/dist/cjs/standard/elements/JointFabricPki.js.map +1 -1
- package/dist/cjs/standard/elements/KeypadInput.d.ts.map +1 -1
- package/dist/cjs/standard/elements/KeypadInput.js +1 -1
- package/dist/cjs/standard/elements/KeypadInput.js.map +1 -1
- package/dist/cjs/standard/elements/LaundryWasherControls.d.ts.map +1 -1
- package/dist/cjs/standard/elements/LaundryWasherControls.js +2 -2
- package/dist/cjs/standard/elements/LaundryWasherControls.js.map +1 -1
- package/dist/cjs/standard/elements/LaundryWasherMode.d.ts.map +1 -1
- package/dist/cjs/standard/elements/LaundryWasherMode.js +11 -6
- package/dist/cjs/standard/elements/LaundryWasherMode.js.map +1 -1
- package/dist/cjs/standard/elements/LevelControl.d.ts.map +1 -1
- package/dist/cjs/standard/elements/LevelControl.js +4 -4
- package/dist/cjs/standard/elements/LevelControl.js.map +1 -1
- package/dist/cjs/standard/elements/LowPower.js +1 -1
- package/dist/cjs/standard/elements/MeasurementAccuracyRangeStruct.d.ts.map +1 -1
- package/dist/cjs/standard/elements/MeasurementAccuracyRangeStruct.js +1 -1
- package/dist/cjs/standard/elements/MeasurementAccuracyRangeStruct.js.map +1 -1
- package/dist/cjs/standard/elements/MediaInput.d.ts.map +1 -1
- package/dist/cjs/standard/elements/MediaInput.js +2 -2
- package/dist/cjs/standard/elements/MediaInput.js.map +1 -1
- package/dist/cjs/standard/elements/MediaPlayback.d.ts.map +1 -1
- package/dist/cjs/standard/elements/MediaPlayback.js +4 -4
- package/dist/cjs/standard/elements/MediaPlayback.js.map +1 -1
- package/dist/cjs/standard/elements/Messages.js +1 -1
- package/dist/cjs/standard/elements/ModeBase.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ModeBase.js +2 -2
- package/dist/cjs/standard/elements/ModeBase.js.map +1 -1
- package/dist/cjs/standard/elements/ModeSelect.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ModeSelect.js +4 -4
- package/dist/cjs/standard/elements/ModeSelect.js.map +1 -1
- package/dist/cjs/standard/elements/NetworkCommissioning.d.ts.map +1 -1
- package/dist/cjs/standard/elements/NetworkCommissioning.js +8 -8
- package/dist/cjs/standard/elements/NetworkCommissioning.js.map +1 -1
- package/dist/cjs/standard/elements/OccupancySensing.d.ts.map +1 -1
- package/dist/cjs/standard/elements/OccupancySensing.js +4 -4
- package/dist/cjs/standard/elements/OccupancySensing.js.map +1 -1
- package/dist/cjs/standard/elements/OperationalCredentials.d.ts.map +1 -1
- package/dist/cjs/standard/elements/OperationalCredentials.js +7 -7
- package/dist/cjs/standard/elements/OperationalCredentials.js.map +1 -1
- package/dist/cjs/standard/elements/OperationalState.d.ts.map +1 -1
- package/dist/cjs/standard/elements/OperationalState.js +6 -6
- package/dist/cjs/standard/elements/OperationalState.js.map +1 -1
- package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.d.ts.map +1 -1
- package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.js +4 -4
- package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.js.map +1 -1
- package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.d.ts.map +1 -1
- package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.js +2 -2
- package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.js.map +1 -1
- package/dist/cjs/standard/elements/OvenMode.d.ts.map +1 -1
- package/dist/cjs/standard/elements/OvenMode.js +11 -6
- package/dist/cjs/standard/elements/OvenMode.js.map +1 -1
- package/dist/cjs/standard/elements/PowerSource.d.ts.map +1 -1
- package/dist/cjs/standard/elements/PowerSource.js +5 -5
- package/dist/cjs/standard/elements/PowerSource.js.map +1 -1
- package/dist/cjs/standard/elements/PowerSourceNS.js +1 -1
- package/dist/cjs/standard/elements/PressureMeasurement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/PressureMeasurement.js +2 -2
- package/dist/cjs/standard/elements/PressureMeasurement.js.map +1 -1
- package/dist/cjs/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
- package/dist/cjs/standard/elements/PumpConfigurationAndControl.js +6 -6
- package/dist/cjs/standard/elements/PumpConfigurationAndControl.js.map +1 -1
- package/dist/cjs/standard/elements/ResourceMonitoring.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ResourceMonitoring.js +1 -1
- package/dist/cjs/standard/elements/ResourceMonitoring.js.map +1 -1
- package/dist/cjs/standard/elements/RootNodeDT.js +1 -1
- package/dist/cjs/standard/elements/RootNodeDT.js.map +1 -1
- package/dist/cjs/standard/elements/RvcRunMode.js +1 -1
- package/dist/cjs/standard/elements/ScenesManagement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ScenesManagement.js +3 -3
- package/dist/cjs/standard/elements/ScenesManagement.js.map +1 -1
- package/dist/cjs/standard/elements/ServiceArea.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ServiceArea.js +8 -8
- package/dist/cjs/standard/elements/ServiceArea.js.map +1 -1
- package/dist/cjs/standard/elements/SmokeCoAlarm.d.ts.map +1 -1
- package/dist/cjs/standard/elements/SmokeCoAlarm.js +17 -13
- package/dist/cjs/standard/elements/SmokeCoAlarm.js.map +1 -1
- package/dist/cjs/standard/elements/SoftwareDiagnostics.js +1 -1
- package/dist/cjs/standard/elements/Switch.js +1 -1
- package/dist/cjs/standard/elements/Thermostat.d.ts.map +1 -1
- package/dist/cjs/standard/elements/Thermostat.js +17 -17
- package/dist/cjs/standard/elements/Thermostat.js.map +1 -1
- package/dist/cjs/standard/elements/ThreadBorderRouterManagement.js +1 -1
- package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.d.ts.map +1 -1
- package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.js +5 -5
- package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.js.map +1 -1
- package/dist/cjs/standard/elements/ThreadNetworkDirectory.js +1 -1
- package/dist/cjs/standard/elements/TimeSynchronization.d.ts.map +1 -1
- package/dist/cjs/standard/elements/TimeSynchronization.js +4 -4
- package/dist/cjs/standard/elements/TimeSynchronization.js.map +1 -1
- package/dist/cjs/standard/elements/WakeOnLan.js +1 -1
- package/dist/cjs/standard/elements/WaterHeaterManagement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/WaterHeaterManagement.js +3 -3
- package/dist/cjs/standard/elements/WaterHeaterManagement.js.map +1 -1
- package/dist/cjs/standard/elements/WiFiNetworkManagement.d.ts.map +1 -1
- package/dist/cjs/standard/elements/WiFiNetworkManagement.js +2 -2
- package/dist/cjs/standard/elements/WiFiNetworkManagement.js.map +1 -1
- package/dist/cjs/standard/elements/WindowCovering.d.ts.map +1 -1
- package/dist/cjs/standard/elements/WindowCovering.js +2 -2
- package/dist/cjs/standard/elements/WindowCovering.js.map +1 -1
- package/dist/cjs/standard/elements/definitions.d.ts +1 -1
- package/dist/cjs/standard/elements/definitions.d.ts.map +1 -1
- package/dist/cjs/standard/elements/definitions.js +1 -1
- package/dist/cjs/standard/elements/definitions.js.map +1 -1
- package/dist/cjs/standard/elements/epoch-us.js +1 -1
- package/dist/cjs/standard/elements/locationdesc.js +2 -2
- package/dist/cjs/standard/elements/models.d.ts +1 -1
- package/dist/cjs/standard/elements/models.d.ts.map +1 -1
- package/dist/cjs/standard/elements/models.js +2 -2
- package/dist/cjs/standard/elements/models.js.map +1 -1
- package/dist/cjs/standard/elements/status.js +4 -4
- package/dist/cjs/standard/elements/temperature.d.ts.map +1 -1
- package/dist/cjs/standard/elements/temperature.js +1 -1
- package/dist/cjs/standard/elements/temperature.js.map +1 -1
- package/dist/esm/aspects/Constraint.d.ts +2 -0
- package/dist/esm/aspects/Constraint.d.ts.map +1 -1
- package/dist/esm/aspects/Constraint.js +5 -1
- package/dist/esm/aspects/Constraint.js.map +2 -2
- package/dist/esm/common/Specification.d.ts +4 -4
- package/dist/esm/common/Specification.d.ts.map +1 -1
- package/dist/esm/common/Specification.js +2 -2
- package/dist/esm/common/Specification.js.map +1 -1
- package/dist/esm/logic/Scope.d.ts.map +1 -1
- package/dist/esm/logic/Scope.js +36 -10
- package/dist/esm/logic/Scope.js.map +1 -1
- package/dist/esm/logic/definition-validation/CommandValidator.js +1 -2
- package/dist/esm/logic/definition-validation/CommandValidator.js.map +1 -1
- package/dist/esm/logic/definition-validation/ValueValidator.d.ts +1 -6
- package/dist/esm/logic/definition-validation/ValueValidator.d.ts.map +1 -1
- package/dist/esm/logic/definition-validation/ValueValidator.js +32 -17
- package/dist/esm/logic/definition-validation/ValueValidator.js.map +1 -1
- package/dist/esm/models/Globals.d.ts +1 -1
- package/dist/esm/parser/Lexer.d.ts +1 -1
- package/dist/esm/parser/Lexer.d.ts.map +1 -1
- package/dist/esm/parser/Lexer.js.map +1 -1
- package/dist/esm/parser/Token.d.ts +2 -2
- package/dist/esm/parser/Token.d.ts.map +1 -1
- package/dist/esm/standard/elements/AcceptedCommandList.d.ts.map +1 -1
- package/dist/esm/standard/elements/AcceptedCommandList.js +1 -1
- package/dist/esm/standard/elements/AcceptedCommandList.js.map +1 -1
- package/dist/esm/standard/elements/AccessControl.d.ts.map +1 -1
- package/dist/esm/standard/elements/AccessControl.js +8 -8
- package/dist/esm/standard/elements/AccessControl.js.map +1 -1
- package/dist/esm/standard/elements/AccountLogin.d.ts.map +1 -1
- package/dist/esm/standard/elements/AccountLogin.js +5 -5
- package/dist/esm/standard/elements/AccountLogin.js.map +1 -1
- package/dist/esm/standard/elements/Actions.d.ts.map +1 -1
- package/dist/esm/standard/elements/Actions.js +2 -2
- package/dist/esm/standard/elements/Actions.js.map +1 -1
- package/dist/esm/standard/elements/AdministratorCommissioning.d.ts.map +1 -1
- package/dist/esm/standard/elements/AdministratorCommissioning.js +4 -4
- package/dist/esm/standard/elements/AdministratorCommissioning.js.map +1 -1
- package/dist/esm/standard/elements/ApplicationLauncher.d.ts.map +1 -1
- package/dist/esm/standard/elements/ApplicationLauncher.js +2 -2
- package/dist/esm/standard/elements/ApplicationLauncher.js.map +1 -1
- package/dist/esm/standard/elements/BallastConfiguration.d.ts.map +1 -1
- package/dist/esm/standard/elements/BallastConfiguration.js +4 -4
- package/dist/esm/standard/elements/BallastConfiguration.js.map +1 -1
- package/dist/esm/standard/elements/BasicInformation.d.ts.map +1 -1
- package/dist/esm/standard/elements/BasicInformation.js +5 -5
- package/dist/esm/standard/elements/BasicInformation.js.map +1 -1
- package/dist/esm/standard/elements/Binding.js +1 -1
- package/dist/esm/standard/elements/BooleanStateConfiguration.js +1 -1
- package/dist/esm/standard/elements/BridgedDeviceBasicInformation.d.ts.map +1 -1
- package/dist/esm/standard/elements/BridgedDeviceBasicInformation.js +3 -3
- package/dist/esm/standard/elements/BridgedDeviceBasicInformation.js.map +1 -1
- package/dist/esm/standard/elements/Channel.js +2 -2
- package/dist/esm/standard/elements/ColorControl.d.ts.map +1 -1
- package/dist/esm/standard/elements/ColorControl.js +15 -15
- package/dist/esm/standard/elements/ColorControl.js.map +1 -1
- package/dist/esm/standard/elements/CommissionerControl.d.ts.map +1 -1
- package/dist/esm/standard/elements/CommissionerControl.js +6 -6
- package/dist/esm/standard/elements/CommissionerControl.js.map +1 -1
- package/dist/esm/standard/elements/ConcentrationMeasurement.d.ts.map +1 -1
- package/dist/esm/standard/elements/ConcentrationMeasurement.js +2 -2
- package/dist/esm/standard/elements/ConcentrationMeasurement.js.map +1 -1
- package/dist/esm/standard/elements/ContentControl.d.ts.map +1 -1
- package/dist/esm/standard/elements/ContentControl.js +4 -4
- package/dist/esm/standard/elements/ContentControl.js.map +1 -1
- package/dist/esm/standard/elements/ContentLauncher.d.ts.map +1 -1
- package/dist/esm/standard/elements/ContentLauncher.js +13 -15
- package/dist/esm/standard/elements/ContentLauncher.js.map +1 -1
- package/dist/esm/standard/elements/Descriptor.js +1 -1
- package/dist/esm/standard/elements/DeviceEnergyManagement.d.ts.map +1 -1
- package/dist/esm/standard/elements/DeviceEnergyManagement.js +14 -14
- package/dist/esm/standard/elements/DeviceEnergyManagement.js.map +1 -1
- package/dist/esm/standard/elements/DeviceEnergyManagementDT.js +5 -5
- package/dist/esm/standard/elements/DeviceEnergyManagementDT.js.map +1 -1
- package/dist/esm/standard/elements/DiagnosticLogs.js +2 -2
- package/dist/esm/standard/elements/DoorLock.d.ts.map +1 -1
- package/dist/esm/standard/elements/DoorLock.js +16 -16
- package/dist/esm/standard/elements/DoorLock.js.map +1 -1
- package/dist/esm/standard/elements/EcosystemInformation.d.ts.map +1 -1
- package/dist/esm/standard/elements/EcosystemInformation.js +4 -4
- package/dist/esm/standard/elements/EcosystemInformation.js.map +1 -1
- package/dist/esm/standard/elements/ElectricalEnergyMeasurement.js +1 -1
- package/dist/esm/standard/elements/ElectricalPowerMeasurement.d.ts.map +1 -1
- package/dist/esm/standard/elements/ElectricalPowerMeasurement.js +3 -3
- package/dist/esm/standard/elements/ElectricalPowerMeasurement.js.map +1 -1
- package/dist/esm/standard/elements/EnergyEvse.d.ts.map +1 -1
- package/dist/esm/standard/elements/EnergyEvse.js +10 -10
- package/dist/esm/standard/elements/EnergyEvse.js.map +1 -1
- package/dist/esm/standard/elements/EnergyEvseMode.d.ts.map +1 -1
- package/dist/esm/standard/elements/EnergyEvseMode.js +3 -3
- package/dist/esm/standard/elements/EnergyEvseMode.js.map +1 -1
- package/dist/esm/standard/elements/EnergyPreference.d.ts.map +1 -1
- package/dist/esm/standard/elements/EnergyPreference.js +2 -2
- package/dist/esm/standard/elements/EnergyPreference.js.map +1 -1
- package/dist/esm/standard/elements/FeatureMap.d.ts.map +1 -1
- package/dist/esm/standard/elements/FeatureMap.js +1 -1
- package/dist/esm/standard/elements/FeatureMap.js.map +1 -1
- package/dist/esm/standard/elements/FixedLabel.d.ts.map +1 -1
- package/dist/esm/standard/elements/FixedLabel.js +1 -1
- package/dist/esm/standard/elements/FixedLabel.js.map +1 -1
- package/dist/esm/standard/elements/FlowMeasurement.d.ts.map +1 -1
- package/dist/esm/standard/elements/FlowMeasurement.js +1 -1
- package/dist/esm/standard/elements/FlowMeasurement.js.map +1 -1
- package/dist/esm/standard/elements/GeneralCommissioning.d.ts.map +1 -1
- package/dist/esm/standard/elements/GeneralCommissioning.js +24 -25
- package/dist/esm/standard/elements/GeneralCommissioning.js.map +1 -1
- package/dist/esm/standard/elements/GeneralDiagnostics.d.ts.map +1 -1
- package/dist/esm/standard/elements/GeneralDiagnostics.js +6 -6
- package/dist/esm/standard/elements/GeneralDiagnostics.js.map +1 -1
- package/dist/esm/standard/elements/GroupKeyManagement.d.ts.map +1 -1
- package/dist/esm/standard/elements/GroupKeyManagement.js +7 -7
- package/dist/esm/standard/elements/GroupKeyManagement.js.map +1 -1
- package/dist/esm/standard/elements/Groups.d.ts.map +1 -1
- package/dist/esm/standard/elements/Groups.js +1 -1
- package/dist/esm/standard/elements/Groups.js.map +1 -1
- package/dist/esm/standard/elements/IcdManagement.d.ts.map +1 -1
- package/dist/esm/standard/elements/IcdManagement.js +4 -4
- package/dist/esm/standard/elements/IcdManagement.js.map +1 -1
- package/dist/esm/standard/elements/Identify.js +1 -1
- package/dist/esm/standard/elements/{JointFabricDatastoreCluster.d.ts → JointFabricDatastore.d.ts} +2 -2
- package/dist/esm/standard/elements/JointFabricDatastore.d.ts.map +1 -0
- package/dist/esm/standard/elements/{JointFabricDatastoreCluster.js → JointFabricDatastore.js} +6 -6
- package/dist/esm/standard/elements/{JointFabricDatastoreCluster.js.map → JointFabricDatastore.js.map} +2 -2
- package/dist/esm/standard/elements/JointFabricPki.d.ts.map +1 -1
- package/dist/esm/standard/elements/JointFabricPki.js +2 -2
- package/dist/esm/standard/elements/JointFabricPki.js.map +1 -1
- package/dist/esm/standard/elements/KeypadInput.d.ts.map +1 -1
- package/dist/esm/standard/elements/KeypadInput.js +1 -1
- package/dist/esm/standard/elements/KeypadInput.js.map +1 -1
- package/dist/esm/standard/elements/LaundryWasherControls.d.ts.map +1 -1
- package/dist/esm/standard/elements/LaundryWasherControls.js +2 -2
- package/dist/esm/standard/elements/LaundryWasherControls.js.map +1 -1
- package/dist/esm/standard/elements/LaundryWasherMode.d.ts.map +1 -1
- package/dist/esm/standard/elements/LaundryWasherMode.js +11 -6
- package/dist/esm/standard/elements/LaundryWasherMode.js.map +1 -1
- package/dist/esm/standard/elements/LevelControl.d.ts.map +1 -1
- package/dist/esm/standard/elements/LevelControl.js +4 -4
- package/dist/esm/standard/elements/LevelControl.js.map +1 -1
- package/dist/esm/standard/elements/LowPower.js +1 -1
- package/dist/esm/standard/elements/MeasurementAccuracyRangeStruct.d.ts.map +1 -1
- package/dist/esm/standard/elements/MeasurementAccuracyRangeStruct.js +1 -1
- package/dist/esm/standard/elements/MeasurementAccuracyRangeStruct.js.map +1 -1
- package/dist/esm/standard/elements/MediaInput.d.ts.map +1 -1
- package/dist/esm/standard/elements/MediaInput.js +2 -2
- package/dist/esm/standard/elements/MediaInput.js.map +1 -1
- package/dist/esm/standard/elements/MediaPlayback.d.ts.map +1 -1
- package/dist/esm/standard/elements/MediaPlayback.js +4 -4
- package/dist/esm/standard/elements/MediaPlayback.js.map +1 -1
- package/dist/esm/standard/elements/Messages.js +1 -1
- package/dist/esm/standard/elements/ModeBase.d.ts.map +1 -1
- package/dist/esm/standard/elements/ModeBase.js +2 -2
- package/dist/esm/standard/elements/ModeBase.js.map +1 -1
- package/dist/esm/standard/elements/ModeSelect.d.ts.map +1 -1
- package/dist/esm/standard/elements/ModeSelect.js +4 -4
- package/dist/esm/standard/elements/ModeSelect.js.map +1 -1
- package/dist/esm/standard/elements/NetworkCommissioning.d.ts.map +1 -1
- package/dist/esm/standard/elements/NetworkCommissioning.js +8 -8
- package/dist/esm/standard/elements/NetworkCommissioning.js.map +1 -1
- package/dist/esm/standard/elements/OccupancySensing.d.ts.map +1 -1
- package/dist/esm/standard/elements/OccupancySensing.js +4 -4
- package/dist/esm/standard/elements/OccupancySensing.js.map +1 -1
- package/dist/esm/standard/elements/OperationalCredentials.d.ts.map +1 -1
- package/dist/esm/standard/elements/OperationalCredentials.js +7 -7
- package/dist/esm/standard/elements/OperationalCredentials.js.map +1 -1
- package/dist/esm/standard/elements/OperationalState.d.ts.map +1 -1
- package/dist/esm/standard/elements/OperationalState.js +6 -6
- package/dist/esm/standard/elements/OperationalState.js.map +1 -1
- package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.d.ts.map +1 -1
- package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.js +4 -4
- package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.js.map +1 -1
- package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.d.ts.map +1 -1
- package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.js +2 -2
- package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.js.map +1 -1
- package/dist/esm/standard/elements/OvenMode.d.ts.map +1 -1
- package/dist/esm/standard/elements/OvenMode.js +11 -6
- package/dist/esm/standard/elements/OvenMode.js.map +1 -1
- package/dist/esm/standard/elements/PowerSource.d.ts.map +1 -1
- package/dist/esm/standard/elements/PowerSource.js +5 -5
- package/dist/esm/standard/elements/PowerSource.js.map +1 -1
- package/dist/esm/standard/elements/PowerSourceNS.js +1 -1
- package/dist/esm/standard/elements/PressureMeasurement.d.ts.map +1 -1
- package/dist/esm/standard/elements/PressureMeasurement.js +2 -2
- package/dist/esm/standard/elements/PressureMeasurement.js.map +1 -1
- package/dist/esm/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
- package/dist/esm/standard/elements/PumpConfigurationAndControl.js +6 -6
- package/dist/esm/standard/elements/PumpConfigurationAndControl.js.map +1 -1
- package/dist/esm/standard/elements/ResourceMonitoring.d.ts.map +1 -1
- package/dist/esm/standard/elements/ResourceMonitoring.js +1 -1
- package/dist/esm/standard/elements/ResourceMonitoring.js.map +1 -1
- package/dist/esm/standard/elements/RootNodeDT.js +1 -1
- package/dist/esm/standard/elements/RootNodeDT.js.map +1 -1
- package/dist/esm/standard/elements/RvcRunMode.js +1 -1
- package/dist/esm/standard/elements/ScenesManagement.d.ts.map +1 -1
- package/dist/esm/standard/elements/ScenesManagement.js +3 -3
- package/dist/esm/standard/elements/ScenesManagement.js.map +1 -1
- package/dist/esm/standard/elements/ServiceArea.d.ts.map +1 -1
- package/dist/esm/standard/elements/ServiceArea.js +8 -8
- package/dist/esm/standard/elements/ServiceArea.js.map +1 -1
- package/dist/esm/standard/elements/SmokeCoAlarm.d.ts.map +1 -1
- package/dist/esm/standard/elements/SmokeCoAlarm.js +17 -13
- package/dist/esm/standard/elements/SmokeCoAlarm.js.map +1 -1
- package/dist/esm/standard/elements/SoftwareDiagnostics.js +1 -1
- package/dist/esm/standard/elements/Switch.js +1 -1
- package/dist/esm/standard/elements/Thermostat.d.ts.map +1 -1
- package/dist/esm/standard/elements/Thermostat.js +17 -17
- package/dist/esm/standard/elements/Thermostat.js.map +1 -1
- package/dist/esm/standard/elements/ThreadBorderRouterManagement.js +1 -1
- package/dist/esm/standard/elements/ThreadNetworkDiagnostics.d.ts.map +1 -1
- package/dist/esm/standard/elements/ThreadNetworkDiagnostics.js +5 -5
- package/dist/esm/standard/elements/ThreadNetworkDiagnostics.js.map +1 -1
- package/dist/esm/standard/elements/ThreadNetworkDirectory.js +1 -1
- package/dist/esm/standard/elements/TimeSynchronization.d.ts.map +1 -1
- package/dist/esm/standard/elements/TimeSynchronization.js +4 -4
- package/dist/esm/standard/elements/TimeSynchronization.js.map +1 -1
- package/dist/esm/standard/elements/WakeOnLan.js +1 -1
- package/dist/esm/standard/elements/WaterHeaterManagement.d.ts.map +1 -1
- package/dist/esm/standard/elements/WaterHeaterManagement.js +3 -3
- package/dist/esm/standard/elements/WaterHeaterManagement.js.map +1 -1
- package/dist/esm/standard/elements/WiFiNetworkManagement.d.ts.map +1 -1
- package/dist/esm/standard/elements/WiFiNetworkManagement.js +2 -2
- package/dist/esm/standard/elements/WiFiNetworkManagement.js.map +1 -1
- package/dist/esm/standard/elements/WindowCovering.d.ts.map +1 -1
- package/dist/esm/standard/elements/WindowCovering.js +2 -2
- package/dist/esm/standard/elements/WindowCovering.js.map +1 -1
- package/dist/esm/standard/elements/definitions.d.ts +1 -1
- package/dist/esm/standard/elements/definitions.d.ts.map +1 -1
- package/dist/esm/standard/elements/definitions.js +1 -1
- package/dist/esm/standard/elements/epoch-us.js +1 -1
- package/dist/esm/standard/elements/locationdesc.js +2 -2
- package/dist/esm/standard/elements/models.d.ts +1 -1
- package/dist/esm/standard/elements/models.d.ts.map +1 -1
- package/dist/esm/standard/elements/models.js +2 -2
- package/dist/esm/standard/elements/models.js.map +1 -1
- package/dist/esm/standard/elements/status.js +4 -4
- package/dist/esm/standard/elements/temperature.d.ts.map +1 -1
- package/dist/esm/standard/elements/temperature.js +1 -1
- package/dist/esm/standard/elements/temperature.js.map +1 -1
- package/package.json +4 -4
- package/src/aspects/Constraint.ts +5 -1
- package/src/common/Specification.ts +7 -4
- package/src/logic/Scope.ts +41 -14
- package/src/logic/definition-validation/CommandValidator.ts +1 -2
- package/src/logic/definition-validation/ValueValidator.ts +39 -18
- package/src/parser/Lexer.ts +1 -1
- package/src/parser/Token.ts +2 -2
- package/src/standard/elements/AcceptedCommandList.ts +2 -3
- package/src/standard/elements/AccessControl.ts +18 -37
- package/src/standard/elements/AccountLogin.ts +13 -16
- package/src/standard/elements/Actions.ts +6 -10
- package/src/standard/elements/AdministratorCommissioning.ts +15 -17
- package/src/standard/elements/ApplicationLauncher.ts +6 -8
- package/src/standard/elements/BallastConfiguration.ts +7 -13
- package/src/standard/elements/BasicInformation.ts +12 -18
- package/src/standard/elements/Binding.ts +4 -4
- package/src/standard/elements/BooleanStateConfiguration.ts +3 -3
- package/src/standard/elements/BridgedDeviceBasicInformation.ts +9 -14
- package/src/standard/elements/Channel.ts +3 -3
- package/src/standard/elements/ColorControl.ts +34 -53
- package/src/standard/elements/CommissionerControl.ts +12 -23
- package/src/standard/elements/ConcentrationMeasurement.ts +3 -2
- package/src/standard/elements/ContentControl.ts +8 -12
- package/src/standard/elements/ContentLauncher.ts +18 -23
- package/src/standard/elements/Descriptor.ts +3 -3
- package/src/standard/elements/DeviceEnergyManagement.ts +24 -61
- package/src/standard/elements/DeviceEnergyManagementDT.ts +5 -5
- package/src/standard/elements/DiagnosticLogs.ts +2 -2
- package/src/standard/elements/DoorLock.ts +45 -58
- package/src/standard/elements/EcosystemInformation.ts +10 -16
- package/src/standard/elements/ElectricalEnergyMeasurement.ts +2 -2
- package/src/standard/elements/ElectricalPowerMeasurement.ts +6 -7
- package/src/standard/elements/EnergyEvse.ts +24 -31
- package/src/standard/elements/EnergyEvseMode.ts +6 -8
- package/src/standard/elements/EnergyPreference.ts +6 -5
- package/src/standard/elements/FeatureMap.ts +1 -3
- package/src/standard/elements/FixedLabel.ts +4 -5
- package/src/standard/elements/FlowMeasurement.ts +2 -3
- package/src/standard/elements/GeneralCommissioning.ts +37 -45
- package/src/standard/elements/GeneralDiagnostics.ts +10 -14
- package/src/standard/elements/GroupKeyManagement.ts +15 -19
- package/src/standard/elements/Groups.ts +1 -2
- package/src/standard/elements/IcdManagement.ts +3 -8
- package/src/standard/elements/Identify.ts +1 -1
- package/src/standard/elements/{JointFabricDatastoreCluster.ts → JointFabricDatastore.ts} +4 -6
- package/src/standard/elements/JointFabricPki.ts +2 -4
- package/src/standard/elements/KeypadInput.ts +1 -3
- package/src/standard/elements/LaundryWasherControls.ts +5 -7
- package/src/standard/elements/LaundryWasherMode.ts +12 -6
- package/src/standard/elements/LevelControl.ts +5 -7
- package/src/standard/elements/LowPower.ts +3 -3
- package/src/standard/elements/MeasurementAccuracyRangeStruct.ts +2 -3
- package/src/standard/elements/MediaInput.ts +2 -3
- package/src/standard/elements/MediaPlayback.ts +7 -12
- package/src/standard/elements/Messages.ts +4 -4
- package/src/standard/elements/ModeBase.ts +4 -8
- package/src/standard/elements/ModeSelect.ts +4 -9
- package/src/standard/elements/NetworkCommissioning.ts +23 -31
- package/src/standard/elements/OccupancySensing.ts +14 -20
- package/src/standard/elements/OperationalCredentials.ts +37 -40
- package/src/standard/elements/OperationalState.ts +8 -14
- package/src/standard/elements/OtaSoftwareUpdateProvider.ts +1 -14
- package/src/standard/elements/OtaSoftwareUpdateRequestor.ts +6 -8
- package/src/standard/elements/OvenMode.ts +12 -6
- package/src/standard/elements/PowerSource.ts +5 -10
- package/src/standard/elements/PowerSourceNS.ts +1 -1
- package/src/standard/elements/PressureMeasurement.ts +3 -6
- package/src/standard/elements/PumpConfigurationAndControl.ts +11 -19
- package/src/standard/elements/ResourceMonitoring.ts +4 -5
- package/src/standard/elements/RootNodeDT.ts +1 -1
- package/src/standard/elements/RvcRunMode.ts +4 -4
- package/src/standard/elements/ScenesManagement.ts +4 -7
- package/src/standard/elements/ServiceArea.ts +32 -33
- package/src/standard/elements/SmokeCoAlarm.ts +14 -13
- package/src/standard/elements/SoftwareDiagnostics.ts +1 -1
- package/src/standard/elements/Switch.ts +6 -6
- package/src/standard/elements/Thermostat.ts +44 -89
- package/src/standard/elements/ThreadBorderRouterManagement.ts +4 -4
- package/src/standard/elements/ThreadNetworkDiagnostics.ts +13 -21
- package/src/standard/elements/ThreadNetworkDirectory.ts +3 -3
- package/src/standard/elements/TimeSynchronization.ts +6 -8
- package/src/standard/elements/WakeOnLan.ts +6 -6
- package/src/standard/elements/WaterHeaterManagement.ts +16 -14
- package/src/standard/elements/WiFiNetworkManagement.ts +9 -11
- package/src/standard/elements/WindowCovering.ts +6 -4
- package/src/standard/elements/definitions.ts +1 -1
- package/src/standard/elements/epoch-us.ts +1 -1
- package/src/standard/elements/locationdesc.ts +6 -6
- package/src/standard/elements/models.ts +1 -1
- package/src/standard/elements/status.ts +4 -4
- package/src/standard/elements/temperature.ts +4 -7
- package/dist/cjs/standard/elements/JointFabricDatastoreCluster.d.ts.map +0 -1
- package/dist/esm/standard/elements/JointFabricDatastoreCluster.d.ts.map +0 -1
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { ModelTraversal } from "#logic/ModelTraversal.js";
|
|
7
8
|
import { Access, Aspect, Conformance, Constraint, Quality } from "../../aspects/index.js";
|
|
8
9
|
import { DefinitionError, FieldValue, Metatype } from "../../common/index.js";
|
|
9
10
|
import { ClusterModel, Globals, ValueModel } from "../../models/index.js";
|
|
@@ -23,7 +24,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
23
24
|
this.validateProperty({ name: "quality", type: Quality });
|
|
24
25
|
this.validateProperty({ name: "metatype", type: Metatype });
|
|
25
26
|
|
|
26
|
-
this
|
|
27
|
+
this.#validateAspect("conformance");
|
|
27
28
|
this.model.conformance.validateReferences(this, name => {
|
|
28
29
|
// Features are all caps, other names are field references
|
|
29
30
|
if (name.match(/^[A-Z0-9_$]+$/)) {
|
|
@@ -41,24 +42,24 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
41
42
|
}
|
|
42
43
|
});
|
|
43
44
|
|
|
44
|
-
this
|
|
45
|
-
this
|
|
46
|
-
this
|
|
45
|
+
this.#validateAspect("constraint");
|
|
46
|
+
this.#validateAspect("access");
|
|
47
|
+
this.#validateAspect("quality");
|
|
47
48
|
|
|
48
|
-
this
|
|
49
|
-
this
|
|
49
|
+
this.#validateType();
|
|
50
|
+
this.#validateEntries();
|
|
50
51
|
|
|
51
52
|
super.validate();
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
|
|
55
|
+
#validateAspect(name: string) {
|
|
55
56
|
const aspect = (this.model as any)[name] as Aspect;
|
|
56
57
|
if (aspect?.errors) {
|
|
57
58
|
aspect.errors.forEach((e: DefinitionError) => this.model.error(e.code, `${e.source}: ${e.message}`));
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
#validateType() {
|
|
62
63
|
if (this.model.effectiveType === undefined) {
|
|
63
64
|
if (this.model.metatype) {
|
|
64
65
|
// Not a derivative type
|
|
@@ -70,9 +71,13 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
72
73
|
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
// If the type is supposed to have a shadow but we didn't find it due to a case mismatch, we correct that
|
|
75
|
+
// now. Otherwise this is an error
|
|
76
|
+
if (!this.#correctCaseFromShadow()) {
|
|
77
|
+
// Non-global types must specify a base type
|
|
78
|
+
this.error("NO_TYPE", "No type information");
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
const base = this.model.base;
|
|
@@ -99,7 +104,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
99
104
|
return;
|
|
100
105
|
}
|
|
101
106
|
|
|
102
|
-
if (this
|
|
107
|
+
if (this.#validateSpecialDefault(metatype, defaultValue)) {
|
|
103
108
|
return;
|
|
104
109
|
}
|
|
105
110
|
|
|
@@ -159,7 +164,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
159
164
|
this.model.default = defaultValue;
|
|
160
165
|
}
|
|
161
166
|
|
|
162
|
-
|
|
167
|
+
#validateEntries() {
|
|
163
168
|
// Note - these checks only apply for first-order derived types, so use direct metatype
|
|
164
169
|
const metatype =
|
|
165
170
|
this.model.type === undefined
|
|
@@ -186,9 +191,9 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
186
191
|
}
|
|
187
192
|
|
|
188
193
|
if (metatype == Metatype.enum) {
|
|
189
|
-
this
|
|
194
|
+
this.#validateEnumKeys();
|
|
190
195
|
} else {
|
|
191
|
-
this
|
|
196
|
+
this.#validateBitFields();
|
|
192
197
|
}
|
|
193
198
|
break;
|
|
194
199
|
|
|
@@ -202,7 +207,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
202
207
|
}
|
|
203
208
|
}
|
|
204
209
|
|
|
205
|
-
|
|
210
|
+
#validateEnumKeys() {
|
|
206
211
|
const ids = new Set<number>();
|
|
207
212
|
const names = new Set<string>();
|
|
208
213
|
for (const c of this.model.children) {
|
|
@@ -222,7 +227,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
222
227
|
}
|
|
223
228
|
}
|
|
224
229
|
|
|
225
|
-
|
|
230
|
+
#validateBitFields() {
|
|
226
231
|
const ranges = Array<{ name: string; min: number; max: number }>();
|
|
227
232
|
for (const c of this.model.children) {
|
|
228
233
|
let min, max;
|
|
@@ -255,7 +260,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
255
260
|
}
|
|
256
261
|
}
|
|
257
262
|
|
|
258
|
-
|
|
263
|
+
#validateSpecialDefault(metatype: Metatype, def: any) {
|
|
259
264
|
// Special "reference" object referencing another field by name
|
|
260
265
|
if (typeof def === "object" && FieldValue.is(def, FieldValue.reference)) {
|
|
261
266
|
const reference = (def as FieldValue.Reference).name;
|
|
@@ -299,4 +304,20 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
|
|
|
299
304
|
return true;
|
|
300
305
|
}
|
|
301
306
|
}
|
|
307
|
+
|
|
308
|
+
#correctCaseFromShadow() {
|
|
309
|
+
const tag = this.model.tag;
|
|
310
|
+
const name = this.model.name.toLowerCase();
|
|
311
|
+
return (
|
|
312
|
+
false ===
|
|
313
|
+
new ModelTraversal().visitInheritance(this.model.parent?.base, owner => {
|
|
314
|
+
for (const child of owner.children) {
|
|
315
|
+
if (child.tag === tag && child.name.toLowerCase() === name) {
|
|
316
|
+
this.model.name = child.name;
|
|
317
|
+
return false;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
})
|
|
321
|
+
);
|
|
322
|
+
}
|
|
302
323
|
}
|
package/src/parser/Lexer.ts
CHANGED
|
@@ -16,7 +16,7 @@ function isNameChar(c: string) {
|
|
|
16
16
|
*
|
|
17
17
|
* Tokenizes simple text dialects. Currently sufficient for Matter conformance and constraint tokenization.
|
|
18
18
|
*/
|
|
19
|
-
export class Lexer<T extends BasicToken<KW>, const KW extends string[] = []> {
|
|
19
|
+
export class Lexer<T extends BasicToken<KW>, const KW extends readonly string[] = []> {
|
|
20
20
|
#keywords: Set<string>;
|
|
21
21
|
|
|
22
22
|
constructor(keywords?: KW) {
|
package/src/parser/Token.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface Token {
|
|
|
18
18
|
/**
|
|
19
19
|
* The base token produced by the tokenizer.
|
|
20
20
|
*/
|
|
21
|
-
export type BasicToken<KW extends string[] = []> =
|
|
21
|
+
export type BasicToken<KW extends readonly string[] = []> =
|
|
22
22
|
| BasicToken.Special
|
|
23
23
|
| BasicToken.Word
|
|
24
24
|
| BasicToken.Number
|
|
@@ -68,7 +68,7 @@ export namespace BasicToken {
|
|
|
68
68
|
value: FieldValue;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
export interface Keyword<T extends string[]> extends Token {
|
|
71
|
+
export interface Keyword<T extends readonly string[]> extends Token {
|
|
72
72
|
type: T[number];
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -22,9 +22,8 @@ export const AcceptedCommandList = Attribute(
|
|
|
22
22
|
"This attribute shall be a list of the command IDs for client generated commands that are supported " +
|
|
23
23
|
"and processed by the server." +
|
|
24
24
|
"\n" +
|
|
25
|
-
"For each client request command in this list that mandates a response from the server, the" +
|
|
26
|
-
"
|
|
27
|
-
"response command shall be indicated in the GeneratedCommandList attribute." +
|
|
25
|
+
"For each client request command in this list that mandates a response from the server, the response " +
|
|
26
|
+
"command shall be indicated in the GeneratedCommandList attribute." +
|
|
28
27
|
"\n" +
|
|
29
28
|
"If any attribute on a server supports atomic writes, this attribute shall contain the command ID for " +
|
|
30
29
|
"AtomicRequest.",
|
|
@@ -199,7 +199,7 @@ export const AccessControl = Cluster(
|
|
|
199
199
|
|
|
200
200
|
Attribute(
|
|
201
201
|
{
|
|
202
|
-
name: "
|
|
202
|
+
name: "CommissioningArl", id: 0x5, type: "list", access: "R V", conformance: "MNGD",
|
|
203
203
|
constraint: "desc", default: [], quality: "F",
|
|
204
204
|
|
|
205
205
|
details: "This attribute shall provide the set of CommissioningAccessRestrictionEntryStruct applied during " +
|
|
@@ -452,13 +452,11 @@ export const AccessControl = Cluster(
|
|
|
452
452
|
"\n" +
|
|
453
453
|
" • The query shall use the & delimiter between key/value pairs." +
|
|
454
454
|
"\n" +
|
|
455
|
-
" • The key-value pairs shall in the format name=<value> where name is the key name, and <value>" +
|
|
455
|
+
" • The key-value pairs shall in the format name=<value> where name is the key name, and <value> is " +
|
|
456
|
+
" the contents of the value encoded with proper URL-encoded escaping." +
|
|
456
457
|
"\n" +
|
|
457
|
-
"is
|
|
458
|
-
"\
|
|
459
|
-
" • If key MTcu is present, it shall have a value of \"_\" (i.e. MTcu=_). This is the \"callback URL" +
|
|
460
|
-
"\n" +
|
|
461
|
-
"backUrl) placeholder\"." +
|
|
458
|
+
" • If key MTcu is present, it shall have a value of \"_\" (i.e. MTcu=_). This is the \"callback URL " +
|
|
459
|
+
" (CallbackUrl) placeholder\"." +
|
|
462
460
|
"\n" +
|
|
463
461
|
" • Any key whose name begins with MT not mentioned in the previous bullets shall be reserved for " +
|
|
464
462
|
" future use by this specification. Manufacturers shall NOT include query keys starting with MT in " +
|
|
@@ -467,8 +465,6 @@ export const AccessControl = Cluster(
|
|
|
467
465
|
"Any other element in the ARLRequestFlowUrl query field not covered by the above rules, as well as " +
|
|
468
466
|
"the fragment field (if present), shall remain including the order of query key/value pairs present." +
|
|
469
467
|
"\n" +
|
|
470
|
-
"Expansion of ARLRequestFlowUrl by client" +
|
|
471
|
-
"\n" +
|
|
472
468
|
"Once the URL is obtained, it shall be expanded to form a final URL (ExpandedARLRequestFlowUrl) by " +
|
|
473
469
|
"proceeding with the following substitution algorithm on the original ARLRequestFlowUrl:" +
|
|
474
470
|
"\n" +
|
|
@@ -491,9 +487,8 @@ export const AccessControl = Cluster(
|
|
|
491
487
|
"\n" +
|
|
492
488
|
" • The query shall use the & delimiter between key/value pairs." +
|
|
493
489
|
"\n" +
|
|
494
|
-
" • The key-value pairs shall follow the format name=<value> where name is the key name, and" +
|
|
495
|
-
"
|
|
496
|
-
"<value> is the contents of the value encoded with proper URL-encoded escaping." +
|
|
490
|
+
" • The key-value pairs shall follow the format name=<value> where name is the key name, and <value> " +
|
|
491
|
+
" is the contents of the value encoded with proper URL-encoded escaping." +
|
|
497
492
|
"\n" +
|
|
498
493
|
" • If key MTaer is present, it shall have a value of \"_\" (i.e. MTaer=_). This is the placeholder " +
|
|
499
494
|
" for a \"access extension response\" provided by the manufacturer flow to the client. The " +
|
|
@@ -504,14 +499,10 @@ export const AccessControl = Cluster(
|
|
|
504
499
|
" • Any key whose name begins with MT not mentioned in the previous bullets shall be reserved for " +
|
|
505
500
|
" future use by this specification." +
|
|
506
501
|
"\n" +
|
|
507
|
-
"Any other element in the CallbackUrl query field not covered by the above rules, as well as the
|
|
508
|
-
"
|
|
509
|
-
"ment field (if present), shall remain as provided by the client through embedding within the" +
|
|
510
|
-
"\n" +
|
|
502
|
+
"Any other element in the CallbackUrl query field not covered by the above rules, as well as the " +
|
|
503
|
+
"fragment field (if present), shall remain as provided by the client through embedding within the " +
|
|
511
504
|
"ExpandedARLRequestFlowUrl, including the order of query key/value pairs present." +
|
|
512
505
|
"\n" +
|
|
513
|
-
"### Expansion of CallbackUrl by the manufacturer custom flow" +
|
|
514
|
-
"\n" +
|
|
515
506
|
"Once the CallbackUrl is obtained by the manufacturer flow, it may be expanded to form a final " +
|
|
516
507
|
"ExpandedARLRequestCallbackUrl URL to be used by proceeding with the following substitution algorithm " +
|
|
517
508
|
"on the provided CallbackUrl:" +
|
|
@@ -538,7 +529,7 @@ export const AccessControl = Cluster(
|
|
|
538
529
|
"ExpandedARLRequestCallbackUrl, on completion of the request, if an ExpandedARLRequestCallbackUrl was " +
|
|
539
530
|
"computed from the CallbackUrl and opening such a URL is supported." +
|
|
540
531
|
"\n" +
|
|
541
|
-
"Examples of ARLRequestFlowUrl URLs" +
|
|
532
|
+
"### Examples of ARLRequestFlowUrl URLs" +
|
|
542
533
|
"\n" +
|
|
543
534
|
"Below are some examples of valid ExpandedARLRequestFlowUrl for several valid values of " +
|
|
544
535
|
"ARLRequestFlowUrl, as well as some examples of invalid values of ARLRequestFlowUrl:" +
|
|
@@ -557,10 +548,9 @@ export const AccessControl = Cluster(
|
|
|
557
548
|
"\n" +
|
|
558
549
|
"https://company.domain.example/matter/arl?vid=FFF1&pid=1234&MTcu=_" +
|
|
559
550
|
"\n" +
|
|
560
|
-
" ◦ After expansion:" +
|
|
561
|
-
"
|
|
562
|
-
"
|
|
563
|
-
"lient.domain.example%2Fcb%3Ftoken%3DmAsJ6_vqbr-vjDiG_w%253D%253D%26MTaer%3D_" +
|
|
551
|
+
" ◦ After expansion: " +
|
|
552
|
+
" https://company.domain.example/matter/arl?vid=FFF1&pid=1234&MTcu=https%3A%2F%2Fc " +
|
|
553
|
+
" lient.domain.example%2Fcb%3Ftoken%3DmAsJ6_vqbr-vjDiG_w%253D%253D%26MTaer%3D_" +
|
|
564
554
|
"\n" +
|
|
565
555
|
" ◦ The ExpandedARLRequestFlowUrl URL contains:" +
|
|
566
556
|
"\n" +
|
|
@@ -572,7 +562,7 @@ export const AccessControl = Cluster(
|
|
|
572
562
|
" return access extension completion status of Success, the ExpandedARLRequestCallbackUrl would " +
|
|
573
563
|
" be:" +
|
|
574
564
|
"\n" +
|
|
575
|
-
"https://client.domain.example/cb?token=mAsJ6_vqbr-
|
|
565
|
+
"https://client.domain.example/cb?token=mAsJ6_vqbr-vjDiG_w%3D%3D&MTaer=Success" +
|
|
576
566
|
"\n" +
|
|
577
567
|
"Note that the MTcu key/value pair was initially provided URL-encoded within the " +
|
|
578
568
|
"ExpandedARLRequestFlowUrl URL and the MTaer=_ key/value pair placeholder now contains a substituted " +
|
|
@@ -652,9 +642,9 @@ export const AccessControl = Cluster(
|
|
|
652
642
|
Datatype(
|
|
653
643
|
{
|
|
654
644
|
name: "AccessControlEntryPrivilegeEnum", type: "enum8",
|
|
655
|
-
details: "Proxy View Value" +
|
|
645
|
+
details: "### Proxy View Value" +
|
|
656
646
|
"\n" +
|
|
657
|
-
"This value implicitly grants View privileges",
|
|
647
|
+
"### This value implicitly grants View privileges",
|
|
658
648
|
xref: { document: "core", section: "9.10.5.2" }
|
|
659
649
|
},
|
|
660
650
|
|
|
@@ -670,7 +660,7 @@ export const AccessControl = Cluster(
|
|
|
670
660
|
Field({
|
|
671
661
|
name: "Operate", id: 0x3, conformance: "M",
|
|
672
662
|
description: "View privileges, and can perform the primary function of this Node (except Access Control Cluster)",
|
|
673
|
-
details: "This value implicitly grants View privileges",
|
|
663
|
+
details: "### This value implicitly grants View privileges",
|
|
674
664
|
xref: { document: "core", section: "9.10.5.2.1" }
|
|
675
665
|
}),
|
|
676
666
|
|
|
@@ -730,8 +720,6 @@ export const AccessControl = Cluster(
|
|
|
730
720
|
name: "Privilege", id: 0x1, type: "AccessControlEntryPrivilegeEnum", access: "S", conformance: "M",
|
|
731
721
|
|
|
732
722
|
details: "The privilege field shall specify the level of privilege granted by this Access Control Entry." +
|
|
733
|
-
"\n" +
|
|
734
|
-
"NOTE The Proxy View privilege is provisional." +
|
|
735
723
|
"\n" +
|
|
736
724
|
"Each privilege builds upon its predecessor, expanding the set of actions that can be performed upon " +
|
|
737
725
|
"a Node. Administer is the highest privilege, and is special as it pertains to the administration of " +
|
|
@@ -741,8 +729,6 @@ export const AccessControl = Cluster(
|
|
|
741
729
|
"privilege levels as well. The following diagram illustrates how the higher privilege levels subsume " +
|
|
742
730
|
"the lower privilege levels:" +
|
|
743
731
|
"\n" +
|
|
744
|
-
"Figure 46. Access Control Privilege Levels" +
|
|
745
|
-
"\n" +
|
|
746
732
|
"Individual clusters shall define whether attributes are readable, writable, or both readable and " +
|
|
747
733
|
"writable. Clusters also shall define which privilege is minimally required to be able to perform a " +
|
|
748
734
|
"particular read or write action on those attributes, or invoke particular commands. Device type " +
|
|
@@ -777,8 +763,6 @@ export const AccessControl = Cluster(
|
|
|
777
763
|
"\n" +
|
|
778
764
|
"### Subject ID shall be of type uint64 with semantics depending on the entry’s AuthMode as follows:" +
|
|
779
765
|
"\n" +
|
|
780
|
-
"Subject Semantics" +
|
|
781
|
-
"\n" +
|
|
782
766
|
"An empty subjects list indicates a wildcard; that is, this entry shall grant access to any Node that " +
|
|
783
767
|
"successfully authenticates via AuthMode. The subjects list shall NOT be empty if the entry’s " +
|
|
784
768
|
"AuthMode is PASE." +
|
|
@@ -825,8 +809,6 @@ export const AccessControl = Cluster(
|
|
|
825
809
|
"\n" +
|
|
826
810
|
"A target grants access based on the presence of fields as follows:" +
|
|
827
811
|
"\n" +
|
|
828
|
-
"Target Semantics" +
|
|
829
|
-
"\n" +
|
|
830
812
|
"An empty targets list indicates a wildcard: that is, this entry shall grant access to all cluster " +
|
|
831
813
|
"instances on all endpoints on this Node.",
|
|
832
814
|
|
|
@@ -845,8 +827,7 @@ export const AccessControl = Cluster(
|
|
|
845
827
|
Field({
|
|
846
828
|
name: "Data", id: 0x1, type: "octstr", access: "S", conformance: "M", constraint: "max 128",
|
|
847
829
|
|
|
848
|
-
details: "This field may be used by manufacturers to store arbitrary TLV-encoded data related to a fabric’s" +
|
|
849
|
-
"\n" +
|
|
830
|
+
details: "This field may be used by manufacturers to store arbitrary TLV-encoded data related to a fabric’s " +
|
|
850
831
|
"Access Control Entries." +
|
|
851
832
|
"\n" +
|
|
852
833
|
"The contents shall consist of a top-level anonymous list; each list element shall include a " +
|
|
@@ -40,10 +40,9 @@ export const AccountLogin = Cluster(
|
|
|
40
40
|
"The cluster server for this cluster may be supported on each endpoint that represents a Content App " +
|
|
41
41
|
"on a Video Player device." +
|
|
42
42
|
"\n" +
|
|
43
|
-
"See Device Type Library document for details of how a Content App, represented as an endpoint on" +
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"for its users.",
|
|
43
|
+
"See Device Type Library document for details of how a Content App, represented as an endpoint on the " +
|
|
44
|
+
"Video Player device, may implement the cluster server for this cluster to simplify account login for " +
|
|
45
|
+
"its users.",
|
|
47
46
|
|
|
48
47
|
xref: { document: "cluster", section: "6.2" }
|
|
49
48
|
},
|
|
@@ -78,10 +77,9 @@ export const AccountLogin = Cluster(
|
|
|
78
77
|
"\n" +
|
|
79
78
|
"For example, a Video Player with a Content App Platform may invoke this command on one of its " +
|
|
80
79
|
"Content App endpoints to facilitate commissioning of a Phone App made by the same vendor as the " +
|
|
81
|
-
"Content App. If the accounts match, then the Content App may return a setup code that can be used" +
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"setup code." +
|
|
80
|
+
"Content App. If the accounts match, then the Content App may return a setup code that can be used by " +
|
|
81
|
+
"the Video Player to commission the Phone App without requiring the user to physically input a setup " +
|
|
82
|
+
"code." +
|
|
85
83
|
"\n" +
|
|
86
84
|
"The account match is determined by the Content App using a method which is outside the scope of this " +
|
|
87
85
|
"specification and will typically involve a central service which is in communication with both the " +
|
|
@@ -145,10 +143,10 @@ export const AccountLogin = Cluster(
|
|
|
145
143
|
details: "This field shall provide the setup PIN code as a text string at least 8 characters in length or " +
|
|
146
144
|
"empty string to indicate that the accounts do not match." +
|
|
147
145
|
"\n" +
|
|
148
|
-
"NOTE" +
|
|
146
|
+
"> [!NOTE]" +
|
|
149
147
|
"\n" +
|
|
150
|
-
"Newer cluster clients should be aware that AccountLogin cluster version 1 specified an 11 digit " +
|
|
151
|
-
"minimum length.",
|
|
148
|
+
"> Newer cluster clients should be aware that AccountLogin cluster version 1 specified an 11 digit " +
|
|
149
|
+
" minimum length.",
|
|
152
150
|
|
|
153
151
|
xref: { document: "cluster", section: "6.2.4.2.1" }
|
|
154
152
|
})
|
|
@@ -212,10 +210,10 @@ export const AccountLogin = Cluster(
|
|
|
212
210
|
|
|
213
211
|
details: "This field shall provide the setup PIN code as a text string at least 8 characters in length." +
|
|
214
212
|
"\n" +
|
|
215
|
-
"NOTE" +
|
|
213
|
+
"> [!NOTE]" +
|
|
216
214
|
"\n" +
|
|
217
|
-
"Newer cluster clients should be aware that AccountLogin cluster version 1 specified an 11 digit " +
|
|
218
|
-
"minimum length.",
|
|
215
|
+
"> Newer cluster clients should be aware that AccountLogin cluster version 1 specified an 11 digit " +
|
|
216
|
+
" minimum length.",
|
|
219
217
|
|
|
220
218
|
xref: { document: "cluster", section: "6.2.4.3.2" }
|
|
221
219
|
}),
|
|
@@ -239,8 +237,7 @@ export const AccountLogin = Cluster(
|
|
|
239
237
|
|
|
240
238
|
Field({
|
|
241
239
|
name: "Node", id: 0x0, type: "node-id", conformance: "O",
|
|
242
|
-
details: "This optional field shall provide the Node ID of the Client. This field can be used by the Content" +
|
|
243
|
-
"\n" +
|
|
240
|
+
details: "This optional field shall provide the Node ID of the Client. This field can be used by the Content " +
|
|
244
241
|
"App to keep track of Nodes which currently have access to it.",
|
|
245
242
|
xref: { document: "cluster", section: "6.2.4.4.1" }
|
|
246
243
|
})
|
|
@@ -505,9 +505,7 @@ export const Actions = Cluster(
|
|
|
505
505
|
"InstantActionWithTransition), or to bring these endpoints into a more dynamic state (typically using " +
|
|
506
506
|
"StartAction), where the endpoints would e.g. gradually cycle through certain colors for a pleasing " +
|
|
507
507
|
"effect. A voice controller could use \"set\" (to map to InstantAction) or \"play\" (to map to " +
|
|
508
|
-
"StartAction) to
|
|
509
|
-
"\n" +
|
|
510
|
-
"ger such actions." +
|
|
508
|
+
"StartAction) to trigger such actions." +
|
|
511
509
|
"\n" +
|
|
512
510
|
"Example: see examples 1 and 2.",
|
|
513
511
|
|
|
@@ -619,13 +617,11 @@ export const Actions = Cluster(
|
|
|
619
617
|
description: "User-configured group of endpoints where an endpoint can be in any number of zones",
|
|
620
618
|
|
|
621
619
|
details: "Is a more general concept where an endpoint can be part of multiple zones, e.g. a light in the " +
|
|
622
|
-
"living" +
|
|
623
|
-
"\
|
|
624
|
-
"room
|
|
625
|
-
"
|
|
626
|
-
"
|
|
627
|
-
"logically would like to control as a group, so Matter controllers could provide the user with a way " +
|
|
628
|
-
"to do as such.",
|
|
620
|
+
"living room can be part of the \"reading corner\" zone (subset of the lights in the living room) but " +
|
|
621
|
+
"also part of the \"downstairs\" zone which contains all the lights on a floor, e.g. combining living " +
|
|
622
|
+
"room, kitchen and hallway. This indicates that a user has defined this list of endpoints as " +
|
|
623
|
+
"something they logically would like to control as a group, so Matter controllers could provide the " +
|
|
624
|
+
"user with a way to do as such.",
|
|
629
625
|
|
|
630
626
|
xref: { document: "core", section: "9.14.4.5.3" }
|
|
631
627
|
})
|
|
@@ -62,11 +62,11 @@ export const AdministratorCommissioning = Cluster(
|
|
|
62
62
|
"\n" +
|
|
63
63
|
"This attribute shall revert to WindowNotOpen upon expiry of a commissioning window." +
|
|
64
64
|
"\n" +
|
|
65
|
-
"NOTE" +
|
|
65
|
+
"> [!NOTE]" +
|
|
66
66
|
"\n" +
|
|
67
|
-
"An initial commissioning window is not opened using either the OpenCommissioningWindow command or " +
|
|
68
|
-
"the OpenBasicCommissioningWindow command, and therefore this attribute shall be set to
|
|
69
|
-
"on initial commissioning.",
|
|
67
|
+
"> An initial commissioning window is not opened using either the OpenCommissioningWindow command or " +
|
|
68
|
+
" the OpenBasicCommissioningWindow command, and therefore this attribute shall be set to " +
|
|
69
|
+
" WindowNotOpen on initial commissioning.",
|
|
70
70
|
|
|
71
71
|
xref: { document: "core", section: "11.19.7.1" }
|
|
72
72
|
}),
|
|
@@ -114,9 +114,8 @@ export const AdministratorCommissioning = Cluster(
|
|
|
114
114
|
"\n" +
|
|
115
115
|
"When the OpenCommissioningWindow command expires or commissioning completes, the Node shall remove " +
|
|
116
116
|
"the Passcode by deleting the PAKE passcode verifier as well as stop publishing the DNS-SD record " +
|
|
117
|
-
"corresponding to this command as described in Section 4.3.1, “Commissionable" +
|
|
118
|
-
"
|
|
119
|
-
"Node Discovery”. The commissioning into a new Fabric completes when the Node successfully receives a " +
|
|
117
|
+
"corresponding to this command as described in Section 4.3.1, “Commissionable Node Discovery”. The " +
|
|
118
|
+
"commissioning into a new Fabric completes when the Node successfully receives a " +
|
|
120
119
|
"CommissioningComplete command, see Section 5.5, “Commissioning Flows”." +
|
|
121
120
|
"\n" +
|
|
122
121
|
"The parameters for OpenCommissioningWindow command are as follows:" +
|
|
@@ -155,13 +154,13 @@ export const AdministratorCommissioning = Cluster(
|
|
|
155
154
|
Field({
|
|
156
155
|
name: "PakePasscodeVerifier", id: 0x1, type: "octstr", conformance: "M", constraint: "97",
|
|
157
156
|
|
|
158
|
-
details: "This field shall specify an ephemeral PAKE passcode verifier (see Section 3.10, " +
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
157
|
+
details: "This field shall specify an ephemeral PAKE passcode verifier (see Section 3.10, “Password- " +
|
|
158
|
+
"Authenticated Key Exchange (PAKE)”) computed by the existing Administrator to be used for this " +
|
|
159
|
+
"commissioning. The field is concatenation of two values (w0 || L) shall be (CRYPTO_GROUP_SIZE_BYTES " +
|
|
160
|
+
"+ CRYPTO_PUBLIC_KEY_SIZE_BYTES)-octets long as detailed in Crypto_PAKEValues_Responder. It shall be " +
|
|
161
|
+
"derived from an ephemeral passcode (See PAKE). It shall be deleted by the Node at the end of " +
|
|
162
|
+
"commissioning or expiration of the OpenCommissioningWindow command, and shall be deleted by the " +
|
|
163
|
+
"existing Administrator after sending it to the Node(s).",
|
|
165
164
|
|
|
166
165
|
xref: { document: "core", section: "11.19.8.1.2" }
|
|
167
166
|
}),
|
|
@@ -268,9 +267,8 @@ export const AdministratorCommissioning = Cluster(
|
|
|
268
267
|
"specific status code of WindowNotOpen." +
|
|
269
268
|
"\n" +
|
|
270
269
|
"If the commissioning window was open and the fail-safe was armed when this command is received, the " +
|
|
271
|
-
"device shall immediately expire the fail-safe and perform the cleanup steps outlined" +
|
|
272
|
-
"
|
|
273
|
-
"in Section 11.10.7.2.2, “Behavior on expiry of Fail-Safe timer”.",
|
|
270
|
+
"device shall immediately expire the fail-safe and perform the cleanup steps outlined in Section " +
|
|
271
|
+
"11.10.7.2.2, “Behavior on expiry of Fail-Safe timer”.",
|
|
274
272
|
|
|
275
273
|
xref: { document: "core", section: "11.19.8.3" }
|
|
276
274
|
}),
|
|
@@ -104,12 +104,12 @@ export const ApplicationLauncher = Cluster(
|
|
|
104
104
|
|
|
105
105
|
details: "This field shall specify optional app-specific data to be sent to the app." +
|
|
106
106
|
"\n" +
|
|
107
|
-
"NOTE" +
|
|
107
|
+
"> [!NOTE]" +
|
|
108
108
|
"\n" +
|
|
109
|
-
"This format and meaning of this value is proprietary and outside the specification. It provides a " +
|
|
110
|
-
"transition path for device makers that use other protocols (like DIAL) which allow for proprietary " +
|
|
111
|
-
"data. Apps that are not yet Matter aware can be launched via Matter, while retaining the existing " +
|
|
112
|
-
"ability to launch with proprietary data.",
|
|
109
|
+
"> This format and meaning of this value is proprietary and outside the specification. It provides a " +
|
|
110
|
+
" transition path for device makers that use other protocols (like DIAL) which allow for proprietary " +
|
|
111
|
+
" data. Apps that are not yet Matter aware can be launched via Matter, while retaining the existing " +
|
|
112
|
+
" ability to launch with proprietary data.",
|
|
113
113
|
|
|
114
114
|
xref: { document: "cluster", section: "6.4.7.1.2" }
|
|
115
115
|
})
|
|
@@ -158,9 +158,7 @@ export const ApplicationLauncher = Cluster(
|
|
|
158
158
|
"constraints if any. The Status attribute shall be updated to ActiveHidden or Stopped, depending on " +
|
|
159
159
|
"the action taken, on the Application Basic cluster of the Endpoint corresponding to the application " +
|
|
160
160
|
"on which the action was taken. The Status attribute shall be updated on any other application whose " +
|
|
161
|
-
"Status may have changed as a result of this command."
|
|
162
|
-
"\n" +
|
|
163
|
-
"This command returns a Launcher Response.",
|
|
161
|
+
"Status may have changed as a result of this command. This command returns a Launcher Response.",
|
|
164
162
|
|
|
165
163
|
xref: { document: "cluster", section: "6.4.7.3" }
|
|
166
164
|
},
|
|
@@ -17,12 +17,9 @@ import {
|
|
|
17
17
|
export const BallastConfiguration = Cluster(
|
|
18
18
|
{
|
|
19
19
|
name: "BallastConfiguration", id: 0x301, classification: "application", pics: "BC",
|
|
20
|
-
details: "This cluster is used for configuring a lighting ballast."
|
|
21
|
-
"\n" +
|
|
22
|
-
"NOTE Support for Ballast Configuration cluster is provisional.",
|
|
20
|
+
details: "This cluster is used for configuring a lighting ballast.",
|
|
23
21
|
xref: { document: "cluster", section: "3.3" }
|
|
24
22
|
},
|
|
25
|
-
|
|
26
23
|
Attribute({ name: "ClusterRevision", id: 0xfffd, type: "ClusterRevision", default: 4 }),
|
|
27
24
|
|
|
28
25
|
Attribute({
|
|
@@ -75,11 +72,10 @@ export const BallastConfiguration = Cluster(
|
|
|
75
72
|
"(see Dimming Curve) when the Level Control Cluster’s CurrentLevel attribute equals to 254 (and the " +
|
|
76
73
|
"On/Off Cluster’s OnOff attribute equals to TRUE)." +
|
|
77
74
|
"\n" +
|
|
78
|
-
"The value of this attribute shall be both less than or equal to PhysicalMaxLevel and greater than" +
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"shall NOT be set.",
|
|
75
|
+
"The value of this attribute shall be both less than or equal to PhysicalMaxLevel and greater than or " +
|
|
76
|
+
"equal to MinLevel. If an attempt is made to set this attribute to a level where these conditions are " +
|
|
77
|
+
"not met, a response shall be returned with status code set to CONSTRAINT_ERROR, and the level shall " +
|
|
78
|
+
"NOT be set.",
|
|
83
79
|
|
|
84
80
|
xref: { document: "cluster", section: "3.3.6.5" }
|
|
85
81
|
}),
|
|
@@ -106,7 +102,7 @@ export const BallastConfiguration = Cluster(
|
|
|
106
102
|
"configured light output of the lamps. A typical use for this attribute is to compensate for " +
|
|
107
103
|
"reduction in efficiency over the lifetime of a lamp." +
|
|
108
104
|
"\n" +
|
|
109
|
-
"The light output is given by" +
|
|
105
|
+
"### The light output is given by" +
|
|
110
106
|
"\n" +
|
|
111
107
|
"actual light output = configured light output x BallastFactorAdjustment / 100%" +
|
|
112
108
|
"\n" +
|
|
@@ -169,9 +165,7 @@ export const BallastConfiguration = Cluster(
|
|
|
169
165
|
name: "LampAlarmMode", id: 0x34, type: "LampAlarmModeBitmap", access: "RW VM", conformance: "O",
|
|
170
166
|
default: 0,
|
|
171
167
|
details: "This attribute shall specify which attributes may cause an alarm notification to be generated. Ain " +
|
|
172
|
-
"each bit position means that its associated attribute is able to generate an alarm."
|
|
173
|
-
"\n" +
|
|
174
|
-
"NOTE All alarms are also logged in the alarm table – see Alarms cluster.",
|
|
168
|
+
"each bit position means that its associated attribute is able to generate an alarm.",
|
|
175
169
|
xref: { document: "cluster", section: "3.3.6.13" }
|
|
176
170
|
}),
|
|
177
171
|
|