@matterbridge/core 3.7.10 → 3.8.0-dev-20260524-92c5fdd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/behaviors/activatedCarbonFilterMonitoringServer.d.ts +5 -2
  2. package/dist/behaviors/bindingServer.js +0 -2
  3. package/dist/behaviors/booleanStateConfigurationServer.d.ts +6 -1
  4. package/dist/behaviors/colorControlServer.d.ts +20 -774
  5. package/dist/behaviors/deviceEnergyManagementServer.d.ts +9 -299
  6. package/dist/behaviors/doorLockServer.d.ts +29 -47
  7. package/dist/behaviors/doorLockServer.js +11 -299
  8. package/dist/behaviors/fanControlServer.d.ts +8 -1
  9. package/dist/behaviors/hepaFilterMonitoringServer.d.ts +5 -2
  10. package/dist/behaviors/smokeCoAlarmServer.d.ts +4 -77
  11. package/dist/behaviors/thermostatServer.d.ts +20 -722
  12. package/dist/behaviors/valveConfigurationAndControlServer.d.ts +4 -1
  13. package/dist/behaviors/windowCoveringServer.d.ts +28 -564
  14. package/dist/clusters/closure-control.d.ts +130 -620
  15. package/dist/clusters/closure-control.js +15 -170
  16. package/dist/clusters/closure-dimension.d.ts +148 -814
  17. package/dist/clusters/closure-dimension.js +15 -202
  18. package/dist/clusters/export.d.ts +1 -3
  19. package/dist/clusters/export.js +1 -3
  20. package/dist/clusters/soil-measurement.d.ts +31 -31
  21. package/dist/clusters/soil-measurement.js +29 -19
  22. package/dist/devices/closure.d.ts +14 -291
  23. package/dist/devices/closure.js +6 -13
  24. package/dist/devices/closurePanel.d.ts +13 -370
  25. package/dist/devices/closurePanel.js +9 -15
  26. package/dist/devices/evse.d.ts +7 -1
  27. package/dist/devices/heatPump.js +5 -5
  28. package/dist/devices/irrigationSystem.js +2 -2
  29. package/dist/devices/microwaveOven.d.ts +5 -76
  30. package/dist/devices/roboticVacuumCleaner.js +5 -5
  31. package/dist/devices/soilSensor.d.ts +0 -15
  32. package/dist/devices/soilSensor.js +4 -20
  33. package/dist/devices/temperatureControl.d.ts +10 -130
  34. package/dist/helpers.js +0 -8
  35. package/dist/jestutils/jestBroadcastServerSpy.d.ts +2 -2
  36. package/dist/jestutils/jestMatterTest.js +4 -4
  37. package/dist/jestutils/jestMatterbridgeEndpointSpy.d.ts +34 -37
  38. package/dist/jestutils/jestMatterbridgePlatformSpy.d.ts +4 -4
  39. package/dist/jestutils/jestMatterbridgeTest.js +1 -1
  40. package/dist/matter/export.d.ts +11 -0
  41. package/dist/matter/export.js +11 -0
  42. package/dist/matterbridge.js +3 -1
  43. package/dist/matterbridgeDeviceTypes.d.ts +15 -0
  44. package/dist/matterbridgeDeviceTypes.js +305 -162
  45. package/dist/matterbridgeEndpoint.d.ts +35 -25
  46. package/dist/matterbridgeEndpoint.js +6 -7
  47. package/dist/matterbridgeEndpointCommandHandler.d.ts +3 -59
  48. package/dist/matterbridgeEndpointHelpers.d.ts +83 -1382
  49. package/dist/matterbridgeEndpointHelpers.js +20 -5
  50. package/package.json +6 -6
@@ -1,6 +1,6 @@
1
1
  import { AtLeastOne } from '@matter/general';
2
2
  import { ActionContext, Behavior, Endpoint, ServerNode } from '@matter/node';
3
- import { ClusterType } from '@matter/types/cluster';
3
+ import { ClusterType, type ClusterTyping } from '@matter/types/cluster';
4
4
  import { AirQuality } from '@matter/types/clusters/air-quality';
5
5
  import { ColorControl } from '@matter/types/clusters/color-control';
6
6
  import { ConcentrationMeasurement } from '@matter/types/clusters/concentration-measurement';
@@ -26,22 +26,34 @@ import { AnsiLogger, LogLevel } from 'node-ansi-logger';
26
26
  import { DeviceTypeDefinition } from './matterbridgeDeviceTypes.js';
27
27
  import { CommandHandler, CommandHandlerData, CommandHandlerExecutionResult, CommandHandlerFunction, CommandHandlers } from './matterbridgeEndpointCommandHandler.js';
28
28
  import { MatterbridgeEndpointOptions, SerializedMatterbridgeEndpoint } from './matterbridgeEndpointTypes.js';
29
- type BehaviorCommandName<T extends Behavior.Type> = {
30
- [K in keyof CommandsOfBehavior<T>]: K;
31
- }[keyof CommandsOfBehavior<T>] & string;
29
+ type FirstCommandParam<Params extends unknown[]> = Params extends [] ? undefined : Params[0];
32
30
  type BehaviorCluster<T extends Behavior.Type> = T extends {
33
31
  cluster: infer C extends ClusterType;
34
- } ? C : ClusterType.Unknown;
35
- type ClusterEventName<T extends ClusterType> = keyof ClusterType.EventsOf<T> & string;
36
- type ClusterEventPayload<T extends ClusterType, E extends string> = E extends keyof ClusterType.EventsOf<T> ? ClusterType.EventsOf<T>[E] extends {
37
- schema: infer S extends import('@matter/types/tlv').TlvSchema<unknown>;
38
- } ? import('@matter/types/tlv').TypeFromSchema<S> : never : never;
39
- type BehaviorEventName<T extends Behavior.Type> = ClusterEventName<BehaviorCluster<T>>;
40
- type BehaviorEventPayload<T extends Behavior.Type, E extends string> = ClusterEventPayload<BehaviorCluster<T>, E>;
41
- type CommandsOfBehavior<T extends Behavior.Type> = {
42
- [K in keyof InstanceType<T> as InstanceType<T>[K] extends (...args: infer _P) => infer _R ? K : never]: InstanceType<T>[K] extends (...args: infer P) => infer R ? (input: P[0], context?: ActionContext) => Promise<Awaited<R>> : never;
43
- };
44
- type BehaviorCommandParams<T extends Behavior.Type, C extends BehaviorCommandName<T>> = CommandsOfBehavior<T>[C] extends (input: infer P, context?: ActionContext) => Promise<unknown> ? P : never;
32
+ } ? C : ClusterType;
33
+ type CommandsOfBehavior<T extends Behavior.Type> = BehaviorCluster<T>['Typing'] extends {
34
+ Commands: infer Commands;
35
+ } ? Commands : Record<string, never>;
36
+ type BehaviorCommandName<T extends Behavior.Type> = keyof CommandsOfBehavior<T> & string;
37
+ type BehaviorCommandParams<T extends Behavior.Type, C extends BehaviorCommandName<T>> = CommandsOfBehavior<T>[C] extends (...args: infer P) => unknown ? FirstCommandParam<P> : never;
38
+ type BehaviorInterface<T extends Behavior.Type> = T extends {
39
+ Interface: infer N extends ClusterTyping;
40
+ } ? N : ClusterTyping;
41
+ type BehaviorEvents<T extends Behavior.Type> = NonNullable<BehaviorInterface<T>['Events']>;
42
+ type BehaviorEventName<T extends Behavior.Type> = keyof BehaviorEvents<T> & string;
43
+ type BehaviorEventPayload<T extends Behavior.Type, E extends string> = E extends BehaviorEventName<T> ? BehaviorEvents<T>[E] : never;
44
+ type ClusterAttributesOf<T extends ClusterType> = T['Typing'] extends {
45
+ Attributes: infer Attributes;
46
+ } ? Attributes : {};
47
+ type ClusterCommandsOf<T extends ClusterType> = T['Typing'] extends {
48
+ Commands: infer Commands;
49
+ } ? Commands : Record<string, never>;
50
+ type ClusterCommandName<T extends ClusterType> = keyof ClusterCommandsOf<T> & string;
51
+ type ClusterCommandParams<T extends ClusterType, C extends ClusterCommandName<T>> = ClusterCommandsOf<T>[C] extends (...args: infer P) => unknown ? FirstCommandParam<P> : never;
52
+ type ClusterEventsOf<T extends ClusterType> = T['Typing'] extends {
53
+ Events: infer Events;
54
+ } ? Events : Record<string, never>;
55
+ type ClusterEventName<T extends ClusterType> = keyof ClusterEventsOf<T> & string;
56
+ type ClusterEventPayload<T extends ClusterType, E extends string> = E extends keyof ClusterEventsOf<T> ? ClusterEventsOf<T>[E] : never;
45
57
  export declare function isMatterbridgeEndpoint(value: unknown): value is MatterbridgeEndpoint;
46
58
  export declare function assertMatterbridgeEndpoint(value: unknown, context?: string): asserts value is MatterbridgeEndpoint;
47
59
  export declare class MatterbridgeEndpoint extends Endpoint {
@@ -76,22 +88,22 @@ export declare class MatterbridgeEndpoint extends Endpoint {
76
88
  hasAttributeServer(cluster: Behavior.Type | ClusterType | ClusterId | string, attribute: string): boolean;
77
89
  getClusterServerOptions(cluster: Behavior.Type | ClusterType | ClusterId | string): Record<string, boolean | number | bigint | string | object | null> | undefined;
78
90
  getAttribute<T extends Behavior.Type, A extends keyof Behavior.StateOf<T>>(cluster: T, attribute: A, log?: AnsiLogger): Behavior.StateOf<T>[A] | undefined;
79
- getAttribute<T extends ClusterType, A extends keyof ClusterType.AttributeValues<T>>(cluster: T, attribute: A, log?: AnsiLogger): ClusterType.AttributeValues<T>[A] | undefined;
91
+ getAttribute<T extends ClusterType, A extends keyof ClusterAttributesOf<T>>(cluster: T, attribute: A, log?: AnsiLogger): ClusterAttributesOf<T>[A] | undefined;
80
92
  getAttribute(cluster: ClusterId | string, attribute: string, log?: AnsiLogger): any;
81
93
  setAttribute<T extends Behavior.Type, A extends keyof Behavior.StateOf<T>>(clusterId: T, attribute: A, value: Behavior.StateOf<T>[A], log?: AnsiLogger): Promise<boolean>;
82
- setAttribute<T extends ClusterType, A extends keyof ClusterType.AttributeValues<T>>(clusterId: T, attribute: A, value: ClusterType.AttributeValues<T>[A], log?: AnsiLogger): Promise<boolean>;
94
+ setAttribute<T extends ClusterType, A extends keyof ClusterAttributesOf<T>>(clusterId: T, attribute: A, value: ClusterAttributesOf<T>[A], log?: AnsiLogger): Promise<boolean>;
83
95
  setAttribute(clusterId: ClusterId | string, attribute: string, value: boolean | number | bigint | string | object | null, log?: AnsiLogger): Promise<boolean>;
84
96
  updateAttribute<T extends Behavior.Type, A extends keyof Behavior.StateOf<T>>(cluster: T, attribute: A, value: Behavior.StateOf<T>[A], log?: AnsiLogger): Promise<boolean>;
85
- updateAttribute<T extends ClusterType, A extends keyof ClusterType.AttributeValues<T>>(cluster: T, attribute: A, value: ClusterType.AttributeValues<T>[A], log?: AnsiLogger): Promise<boolean>;
97
+ updateAttribute<T extends ClusterType, A extends keyof ClusterAttributesOf<T>>(cluster: T, attribute: A, value: ClusterAttributesOf<T>[A], log?: AnsiLogger): Promise<boolean>;
86
98
  updateAttribute(cluster: ClusterId | string, attribute: string, value: boolean | number | bigint | string | object | null, log?: AnsiLogger): Promise<boolean>;
87
99
  subscribeAttribute<T extends Behavior.Type, A extends keyof Behavior.StateOf<T>>(cluster: T, attribute: A, listener: (newValue: Behavior.StateOf<T>[A], oldValue: Behavior.StateOf<T>[A], context: ActionContext) => void, log?: AnsiLogger): Promise<boolean>;
88
- subscribeAttribute<T extends ClusterType, A extends keyof ClusterType.AttributeValues<T>>(cluster: T, attribute: A, listener: (newValue: ClusterType.AttributeValues<T>[A], oldValue: ClusterType.AttributeValues<T>[A], context: ActionContext) => void, log?: AnsiLogger): Promise<boolean>;
100
+ subscribeAttribute<T extends ClusterType, A extends keyof ClusterAttributesOf<T>>(cluster: T, attribute: A, listener: (newValue: ClusterAttributesOf<T>[A], oldValue: ClusterAttributesOf<T>[A], context: ActionContext) => void, log?: AnsiLogger): Promise<boolean>;
89
101
  subscribeAttribute(cluster: ClusterId | string, attribute: string, listener: (newValue: any, oldValue: any, context: ActionContext) => void, log?: AnsiLogger): Promise<boolean>;
90
102
  setCluster<T extends Behavior.Type>(cluster: T, value: Behavior.StateOf<T>, log?: AnsiLogger): Promise<boolean>;
91
- setCluster<T extends ClusterType>(cluster: T, value: ClusterType.AttributeValues<T>, log?: AnsiLogger): Promise<boolean>;
103
+ setCluster<T extends ClusterType>(cluster: T, value: ClusterAttributesOf<T>, log?: AnsiLogger): Promise<boolean>;
92
104
  setCluster(cluster: ClusterId | string, value: Record<string, boolean | number | bigint | string | object | undefined | null>, log?: AnsiLogger): Promise<boolean>;
93
105
  getCluster<T extends Behavior.Type>(cluster: T, log?: AnsiLogger): Behavior.StateOf<T> | undefined;
94
- getCluster<T extends ClusterType>(cluster: T, log?: AnsiLogger): ClusterType.AttributeValues<T> | undefined;
106
+ getCluster<T extends ClusterType>(cluster: T, log?: AnsiLogger): ClusterAttributesOf<T> | undefined;
95
107
  getCluster(cluster: ClusterId | string, log?: AnsiLogger): Record<string, boolean | number | bigint | string | object | undefined | null> | undefined;
96
108
  triggerEvent<T extends Behavior.Type, E extends BehaviorEventName<T>>(cluster: T, event: E, payload: BehaviorEventPayload<T, E>, log?: AnsiLogger): Promise<boolean>;
97
109
  triggerEvent<T extends ClusterType, E extends ClusterEventName<T>>(cluster: T, event: E, payload: ClusterEventPayload<T, E>, log?: AnsiLogger): Promise<boolean>;
@@ -103,9 +115,7 @@ export declare class MatterbridgeEndpoint extends Endpoint {
103
115
  removeCommandHandler<C extends CommandHandlers>(command: C, handler: CommandHandlerFunction<C>): this;
104
116
  executeCommandHandler<C extends CommandHandlers>(command: C, request: CommandHandlerData<C>['request'], cluster: CommandHandlerData<C>['cluster'], attributes: CommandHandlerData<C>['attributes'], endpoint: CommandHandlerData<C>['endpoint']): Promise<CommandHandlerExecutionResult<C>>;
105
117
  invokeBehaviorCommand<T extends Behavior.Type, C extends BehaviorCommandName<T>>(cluster: T, command: C, params?: BehaviorCommandParams<T, C>): Promise<void>;
106
- invokeBehaviorCommand<T extends ClusterType, C extends keyof ClusterType.CommandsOf<T>>(cluster: T, command: C, params?: ClusterType.CommandsOf<T>[C] extends {
107
- requestSchema: infer S extends import('@matter/types/tlv').TlvSchema<unknown>;
108
- } ? import('@matter/types/tlv').TypeFromSchema<S> : never): Promise<void>;
118
+ invokeBehaviorCommand<T extends ClusterType, C extends ClusterCommandName<T>>(cluster: T, command: C, params?: ClusterCommandParams<T, C>): Promise<void>;
109
119
  invokeBehaviorCommand(cluster: ClusterId | string, command: CommandHandlers, params?: Record<string, boolean | number | bigint | string | object | null>): Promise<void>;
110
120
  addRequiredClusterServers(): MatterbridgeEndpoint;
111
121
  addOptionalClusterServers(): MatterbridgeEndpoint;
@@ -158,7 +168,7 @@ export declare class MatterbridgeEndpoint extends Endpoint {
158
168
  setWindowCoveringTargetAndCurrentPosition(liftPosition: number, tiltPosition?: number): Promise<void>;
159
169
  createDefaultThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, occupiedCoolingSetpoint?: number, minSetpointDeadBand?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
160
170
  createDefaultHeatingThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
161
- createDefaultPresetsThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, occupiedCoolingSetpoint?: number, minSetpointDeadBand?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined, activePresetHandle?: Uint8Array | null, presetsList?: Thermostat.Preset[] | null | undefined, presetTypes?: Thermostat.PresetType[] | null | undefined): this;
171
+ createDefaultPresetsThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, occupiedCoolingSetpoint?: number, minSetpointDeadBand?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined, activePresetHandle?: Uint8Array | null, presets?: Thermostat.Preset[], presetTypes?: Thermostat.PresetType[]): this;
162
172
  createDefaultCoolingThermostatClusterServer(localTemperature?: number, occupiedCoolingSetpoint?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
163
173
  createDefaultThermostatUserInterfaceConfigurationClusterServer(temperatureDisplayMode?: ThermostatUserInterfaceConfiguration.TemperatureDisplayMode, keypadLockout?: ThermostatUserInterfaceConfiguration.KeypadLockout, scheduleProgrammingVisibility?: ThermostatUserInterfaceConfiguration.ScheduleProgrammingVisibility): this;
164
174
  createDefaultFanControlClusterServer(fanMode?: FanControl.FanMode, fanModeSequence?: FanControl.FanModeSequence, percentSetting?: number, percentCurrent?: number): this;
@@ -905,7 +905,10 @@ export class MatterbridgeEndpoint extends Endpoint {
905
905
  });
906
906
  return this;
907
907
  }
908
- createDefaultPresetsThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 0, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50, unoccupiedHeatingSetpoint = undefined, unoccupiedCoolingSetpoint = undefined, occupied = undefined, outdoorTemperature = undefined, activePresetHandle = null, presetsList = undefined, presetTypes = undefined) {
908
+ createDefaultPresetsThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 0, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50, unoccupiedHeatingSetpoint = undefined, unoccupiedCoolingSetpoint = undefined, occupied = undefined, outdoorTemperature = undefined, activePresetHandle = null, presets = [], presetTypes = [
909
+ { presetScenario: Thermostat.PresetScenario.Occupied, numberOfPresets: 2, presetTypeFeatures: { automatic: false, supportsNames: true } },
910
+ { presetScenario: Thermostat.PresetScenario.Unoccupied, numberOfPresets: 2, presetTypeFeatures: { automatic: false, supportsNames: true } },
911
+ ]) {
909
912
  this.behaviors.require(MatterbridgeThermostatServer.with(Thermostat.Feature.Heating, Thermostat.Feature.Cooling, Thermostat.Feature.AutoMode, ...(occupied !== undefined ? [Thermostat.Feature.Occupancy] : []), Thermostat.Feature.Presets), {
910
913
  localTemperature: localTemperature * 100,
911
914
  externalMeasuredIndoorTemperature: localTemperature * 100,
@@ -928,9 +931,9 @@ export class MatterbridgeEndpoint extends Endpoint {
928
931
  ...(occupied !== undefined ? { unoccupiedCoolingSetpoint: unoccupiedCoolingSetpoint !== undefined ? unoccupiedCoolingSetpoint * 100 : 2700 } : {}),
929
932
  ...(occupied !== undefined ? { occupancy: { occupied } } : {}),
930
933
  ...(occupied !== undefined ? { externallyMeasuredOccupancy: true } : {}),
931
- numberOfPresets: Math.max(Array.isArray(presetsList) ? presetsList.length : 0, 10),
934
+ numberOfPresets: Math.max(Array.isArray(presets) ? presets.length : 0, 10),
932
935
  activePresetHandle: activePresetHandle ? Uint8Array.from([activePresetHandle]) : null,
933
- presets: (presetsList ?? []).map((p) => ({
936
+ presets: (presets ?? []).map((p) => ({
934
937
  presetHandle: p.presetHandle ? Uint8Array.from(p.presetHandle) : null,
935
938
  presetScenario: p.presetScenario,
936
939
  name: p.name,
@@ -1139,9 +1142,7 @@ export class MatterbridgeEndpoint extends Endpoint {
1139
1142
  this.behaviors.require(MatterbridgeSmokeCoAlarmServer.with(SmokeCoAlarm.Feature.SmokeAlarm, SmokeCoAlarm.Feature.CoAlarm).enable({
1140
1143
  events: {
1141
1144
  smokeAlarm: true,
1142
- interconnectSmokeAlarm: false,
1143
1145
  coAlarm: true,
1144
- interconnectCoAlarm: false,
1145
1146
  lowBattery: true,
1146
1147
  hardwareFault: true,
1147
1148
  endOfService: true,
@@ -1166,7 +1167,6 @@ export class MatterbridgeEndpoint extends Endpoint {
1166
1167
  this.behaviors.require(MatterbridgeSmokeCoAlarmServer.with(SmokeCoAlarm.Feature.SmokeAlarm).enable({
1167
1168
  events: {
1168
1169
  smokeAlarm: true,
1169
- interconnectSmokeAlarm: false,
1170
1170
  lowBattery: true,
1171
1171
  hardwareFault: true,
1172
1172
  endOfService: true,
@@ -1190,7 +1190,6 @@ export class MatterbridgeEndpoint extends Endpoint {
1190
1190
  this.behaviors.require(MatterbridgeSmokeCoAlarmServer.with(SmokeCoAlarm.Feature.CoAlarm).enable({
1191
1191
  events: {
1192
1192
  coAlarm: true,
1193
- interconnectCoAlarm: false,
1194
1193
  lowBattery: true,
1195
1194
  hardwareFault: true,
1196
1195
  endOfService: true,
@@ -1,6 +1,6 @@
1
1
  import { HandlerFunction } from '@matter/general';
2
- import { ActionContext } from '@matter/node';
3
- import type { Attribute } from '@matter/types/cluster';
2
+ import { ActionContext } from '@matter/main';
3
+ import type { ClusterType } from '@matter/types/cluster';
4
4
  import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
5
5
  import { BooleanStateConfiguration } from '@matter/types/clusters/boolean-state-configuration';
6
6
  import { ColorControl } from '@matter/types/clusters/color-control';
@@ -118,7 +118,7 @@ type OptionalKeys<T> = {
118
118
  optional: true;
119
119
  } ? K : never;
120
120
  }[keyof T];
121
- type AttributeValue<T> = T extends Attribute<infer JsType, infer _F> ? JsType : never;
121
+ type AttributeValue<T> = T extends ClusterType.Attribute<infer JsType> ? JsType : never;
122
122
  export type ClusterAttributeValues<T extends Record<string, unknown>> = {
123
123
  -readonly [K in Exclude<keyof T, OptionalKeys<T>>]: AttributeValue<T[K]>;
124
124
  } & {
@@ -411,62 +411,6 @@ export type CommandHandlerDataMap = {
411
411
  attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
412
412
  endpoint: MatterbridgeEndpoint;
413
413
  };
414
- 'DoorLock.setPinCode': {
415
- command: 'setPinCode';
416
- request: DoorLock.SetPinCodeRequest;
417
- cluster: 'doorLock';
418
- attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
419
- endpoint: MatterbridgeEndpoint;
420
- };
421
- 'DoorLock.getPinCode': {
422
- command: 'getPinCode';
423
- request: DoorLock.GetPinCodeRequest;
424
- cluster: 'doorLock';
425
- attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
426
- endpoint: MatterbridgeEndpoint;
427
- };
428
- 'DoorLock.clearPinCode': {
429
- command: 'clearPinCode';
430
- request: DoorLock.ClearPinCodeRequest;
431
- cluster: 'doorLock';
432
- attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
433
- endpoint: MatterbridgeEndpoint;
434
- };
435
- 'DoorLock.clearAllPinCodes': {
436
- command: 'clearAllPinCodes';
437
- request: {};
438
- cluster: 'doorLock';
439
- attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
440
- endpoint: MatterbridgeEndpoint;
441
- };
442
- 'DoorLock.setUserStatus': {
443
- command: 'setUserStatus';
444
- request: DoorLock.SetUserStatusRequest;
445
- cluster: 'doorLock';
446
- attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
447
- endpoint: MatterbridgeEndpoint;
448
- };
449
- 'DoorLock.getUserStatus': {
450
- command: 'getUserStatus';
451
- request: DoorLock.GetUserStatusRequest;
452
- cluster: 'doorLock';
453
- attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
454
- endpoint: MatterbridgeEndpoint;
455
- };
456
- 'DoorLock.setUserType': {
457
- command: 'setUserType';
458
- request: DoorLock.SetUserTypeRequest;
459
- cluster: 'doorLock';
460
- attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
461
- endpoint: MatterbridgeEndpoint;
462
- };
463
- 'DoorLock.getUserType': {
464
- command: 'getUserType';
465
- request: DoorLock.GetUserTypeRequest;
466
- cluster: 'doorLock';
467
- attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
468
- endpoint: MatterbridgeEndpoint;
469
- };
470
414
  'DoorLock.setUser': {
471
415
  command: 'setUser';
472
416
  request: DoorLock.SetUserRequest;