@matterbridge/core 3.8.0-dev-20260525-eed6b4a → 3.8.0-dev-20260526-20ee3dc

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.
@@ -49,6 +49,17 @@ export declare namespace ClosureControl {
49
49
  readonly MoveToVentilationPosition: 3;
50
50
  readonly MoveToSignaturePosition: 4;
51
51
  }
52
+ interface FeatureFlags {
53
+ positioning?: boolean;
54
+ motionLatching?: boolean;
55
+ instantaneous?: boolean;
56
+ speed?: boolean;
57
+ ventilation?: boolean;
58
+ pedestrian?: boolean;
59
+ calibration?: boolean;
60
+ protection?: boolean;
61
+ manuallyOperable?: boolean;
62
+ }
52
63
  type Feature = FeatureEnum[keyof FeatureEnum];
53
64
  type Features = Feature;
54
65
  type ClosureError = ClosureErrorEnum[keyof ClosureErrorEnum];
@@ -125,7 +136,9 @@ export declare const ClosureControl: ClusterType.Concrete & {
125
136
  readonly attributes: ClusterType.AttributeObjects<ClosureControl.Attributes>;
126
137
  readonly commands: ClusterType.CommandObjects<ClosureControl.Commands>;
127
138
  readonly events: ClusterType.EventObjects<ClosureControl.Events>;
139
+ readonly features: ClusterType.Features<ClosureControl.Features>;
128
140
  readonly Feature: ClosureControl.FeatureEnum;
141
+ readonly FeatureMap: new (value?: Partial<ClosureControl.FeatureFlags> | number) => ClosureControl.FeatureFlags;
129
142
  readonly ClosureError: ClosureControl.ClosureErrorEnum;
130
143
  readonly CurrentPosition: ClosureControl.CurrentPositionEnum;
131
144
  readonly MainState: ClosureControl.MainStateEnum;
@@ -137,8 +150,15 @@ export declare const ClosureControl: ClusterType.Concrete & {
137
150
  readonly OperationalErrorEvent: new (value?: Partial<ClosureControl.OperationalErrorEvent>) => ClosureControl.OperationalErrorEvent;
138
151
  readonly EngageStateChangedEvent: new (value?: Partial<ClosureControl.EngageStateChangedEvent>) => ClosureControl.EngageStateChangedEvent;
139
152
  readonly SecureStateChangedEvent: new (value?: Partial<ClosureControl.SecureStateChangedEvent>) => ClosureControl.SecureStateChangedEvent;
140
- readonly Typing: ClosureControl.Typing;
141
- readonly Cluster: typeof ClosureControl;
153
+ readonly Typing: ClosureControl;
154
+ readonly Cluster: ClusterType.WithCompat<typeof ClosureControl, ClosureControl>;
142
155
  readonly Complete: typeof ClosureControl;
143
156
  with(...features: ClosureControl.Feature[]): typeof ClosureControl;
144
157
  };
158
+ export interface ClosureControl extends ClusterTyping {
159
+ Attributes: ClosureControl.Attributes;
160
+ Commands: ClosureControl.Commands;
161
+ Events: ClosureControl.Events;
162
+ Features: ClosureControl.Features;
163
+ Components: ClosureControl.Components;
164
+ }
@@ -1,3 +1,4 @@
1
+ import { inspect } from 'node:util';
1
2
  import { AttributeElement, ClusterElement, ClusterModel, CommandElement, DatatypeElement, EventElement, FieldElement, Matter, MatterDefinition } from '@matter/main/model';
2
3
  import { ClusterType } from '@matter/types/cluster';
3
4
  export const ClosureControlDefinition = ClusterElement({
@@ -12,4 +13,5 @@ if (!MatterDefinition.children.some((child) => child.id === ClosureControlDefini
12
13
  if (Matter.clusters(ClosureControlModel.id) === undefined) {
13
14
  Matter.children.push(ClosureControlModel);
14
15
  }
16
+ console.log('ClosureControl cluster:', inspect(ClusterType(ClosureControlModel), { depth: null, colors: true }));
15
17
  export const ClosureControl = ClusterType(ClosureControlModel);
@@ -71,6 +71,16 @@ export declare namespace ClosureDimension {
71
71
  readonly DepthMask: 10;
72
72
  readonly DepthSymmetry: 11;
73
73
  }
74
+ interface FeatureFlags {
75
+ positioning?: boolean;
76
+ motionLatching?: boolean;
77
+ unit?: boolean;
78
+ limitation?: boolean;
79
+ speed?: boolean;
80
+ translation?: boolean;
81
+ rotation?: boolean;
82
+ modulation?: boolean;
83
+ }
74
84
  type Feature = FeatureEnum[keyof FeatureEnum];
75
85
  type Features = Feature;
76
86
  type ClosureUnit = ClosureUnitEnum[keyof ClosureUnitEnum];
@@ -144,7 +154,9 @@ export declare const ClosureDimension: ClusterType.Concrete & {
144
154
  readonly attributes: ClusterType.AttributeObjects<ClosureDimension.Attributes>;
145
155
  readonly commands: ClusterType.CommandObjects<ClosureDimension.Commands>;
146
156
  readonly events: ClusterType.EventObjects<Record<string, never>>;
157
+ readonly features: ClusterType.Features<ClosureDimension.Features>;
147
158
  readonly Feature: ClosureDimension.FeatureEnum;
159
+ readonly FeatureMap: new (value?: Partial<ClosureDimension.FeatureFlags> | number) => ClosureDimension.FeatureFlags;
148
160
  readonly ClosureUnit: ClosureDimension.ClosureUnitEnum;
149
161
  readonly ModulationType: ClosureDimension.ModulationTypeEnum;
150
162
  readonly Overflow: ClosureDimension.OverflowEnum;
@@ -157,8 +169,14 @@ export declare const ClosureDimension: ClusterType.Concrete & {
157
169
  readonly UnitRange: new (value?: Partial<ClosureDimension.UnitRange>) => ClosureDimension.UnitRange;
158
170
  readonly SetTargetRequest: new (value?: Partial<ClosureDimension.SetTargetRequest>) => ClosureDimension.SetTargetRequest;
159
171
  readonly StepRequest: new (value?: Partial<ClosureDimension.StepRequest>) => ClosureDimension.StepRequest;
160
- readonly Typing: ClosureDimension.Typing;
161
- readonly Cluster: typeof ClosureDimension;
172
+ readonly Typing: ClosureDimension;
173
+ readonly Cluster: ClusterType.WithCompat<typeof ClosureDimension, ClosureDimension>;
162
174
  readonly Complete: typeof ClosureDimension;
163
175
  with(...features: ClosureDimension.Feature[]): typeof ClosureDimension;
164
176
  };
177
+ export interface ClosureDimension extends ClusterTyping {
178
+ Attributes: ClosureDimension.Attributes;
179
+ Commands: ClosureDimension.Commands;
180
+ Features: ClosureDimension.Features;
181
+ Components: ClosureDimension.Components;
182
+ }
@@ -1,3 +1,4 @@
1
+ import { inspect } from 'node:util';
1
2
  import { AttributeElement, ClusterElement, ClusterModel, CommandElement, DatatypeElement, FieldElement, Matter, MatterDefinition } from '@matter/main/model';
2
3
  import { ClusterType } from '@matter/types/cluster';
3
4
  export const ClosureDimensionDefinition = ClusterElement({
@@ -12,4 +13,5 @@ if (!MatterDefinition.children.some((child) => child.id === ClosureDimensionDefi
12
13
  if (Matter.clusters(ClosureDimensionModel.id) === undefined) {
13
14
  Matter.children.push(ClosureDimensionModel);
14
15
  }
16
+ console.log('ClosureDimension cluster:', inspect(ClusterType(ClosureDimensionModel), { depth: null, colors: true }));
15
17
  export const ClosureDimension = ClusterType(ClosureDimensionModel);
@@ -28,7 +28,12 @@ export declare const SoilMeasurement: ClusterType.Concrete & {
28
28
  readonly revision: 1;
29
29
  readonly schema: ClusterModel;
30
30
  readonly attributes: ClusterType.AttributeObjects<SoilMeasurement.Attributes>;
31
- readonly Typing: SoilMeasurement.Typing;
32
- readonly Cluster: typeof SoilMeasurement;
31
+ readonly features: Record<string, never>;
32
+ readonly Typing: SoilMeasurement;
33
+ readonly Cluster: ClusterType.WithCompat<typeof SoilMeasurement, SoilMeasurement>;
33
34
  readonly Complete: typeof SoilMeasurement;
34
35
  };
36
+ export interface SoilMeasurement extends ClusterTyping {
37
+ Attributes: SoilMeasurement.Attributes;
38
+ Components: SoilMeasurement.Components;
39
+ }
@@ -1,3 +1,4 @@
1
+ import { inspect } from 'node:util';
1
2
  import { AttributeElement, ClusterElement, ClusterModel, Matter, MatterDefinition } from '@matter/main/model';
2
3
  import { ClusterType } from '@matter/types/cluster';
3
4
  export const SoilMeasurementDefinition = ClusterElement({
@@ -26,4 +27,5 @@ if (!MatterDefinition.children.some((child) => child.id === SoilMeasurementDefin
26
27
  if (Matter.clusters(SoilMeasurementModel.id) === undefined) {
27
28
  Matter.children.push(SoilMeasurementModel);
28
29
  }
30
+ console.log('SoilMeasurement cluster:', inspect(ClusterType(SoilMeasurementModel), { depth: null, colors: true }));
29
31
  export const SoilMeasurement = ClusterType(SoilMeasurementModel);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matterbridge/core",
3
- "version": "3.8.0-dev-20260525-eed6b4a",
3
+ "version": "3.8.0-dev-20260526-20ee3dc",
4
4
  "description": "Matterbridge core library",
5
5
  "author": "https://github.com/Luligu",
6
6
  "homepage": "https://matterbridge.io/",
@@ -130,10 +130,10 @@
130
130
  ],
131
131
  "dependencies": {
132
132
  "@matter/main": "0.17.0",
133
- "@matterbridge/dgram": "3.8.0-dev-20260525-eed6b4a",
134
- "@matterbridge/thread": "3.8.0-dev-20260525-eed6b4a",
135
- "@matterbridge/types": "3.8.0-dev-20260525-eed6b4a",
136
- "@matterbridge/utils": "3.8.0-dev-20260525-eed6b4a",
133
+ "@matterbridge/dgram": "3.8.0-dev-20260526-20ee3dc",
134
+ "@matterbridge/thread": "3.8.0-dev-20260526-20ee3dc",
135
+ "@matterbridge/types": "3.8.0-dev-20260526-20ee3dc",
136
+ "@matterbridge/utils": "3.8.0-dev-20260526-20ee3dc",
137
137
  "escape-html": "1.0.3",
138
138
  "express": "5.2.1",
139
139
  "express-rate-limit": "8.5.2",