@matter/node 0.16.0-alpha.0-20251103-b47ffa15b → 0.16.0-alpha.0-20251104-8c3166ea3
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/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehavior.js +8 -5
- package/dist/cjs/behavior/cluster/ClusterBehavior.js.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.d.ts +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js +7 -32
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
- package/dist/cjs/behavior/cluster/ValidatedElements.d.ts +13 -0
- package/dist/cjs/behavior/cluster/ValidatedElements.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ValidatedElements.js +34 -11
- package/dist/cjs/behavior/cluster/ValidatedElements.js.map +1 -1
- package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
- package/dist/cjs/behavior/internal/ClientBehaviorBacking.js +2 -1
- package/dist/cjs/behavior/internal/ClientBehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
- package/dist/cjs/behavior/internal/ServerBehaviorBacking.js +2 -0
- package/dist/cjs/behavior/internal/ServerBehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.d.ts +6 -0
- package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.js +14 -0
- package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/cjs/node/client/ClientBehavior.d.ts.map +1 -1
- package/dist/cjs/node/client/ClientBehavior.js +49 -3
- package/dist/cjs/node/client/ClientBehavior.js.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehavior.js +9 -6
- package/dist/esm/behavior/cluster/ClusterBehavior.js.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.d.ts +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js +7 -34
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
- package/dist/esm/behavior/cluster/ValidatedElements.d.ts +13 -0
- package/dist/esm/behavior/cluster/ValidatedElements.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ValidatedElements.js +35 -12
- package/dist/esm/behavior/cluster/ValidatedElements.js.map +1 -1
- package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
- package/dist/esm/behavior/internal/ClientBehaviorBacking.js +2 -1
- package/dist/esm/behavior/internal/ClientBehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
- package/dist/esm/behavior/internal/ServerBehaviorBacking.js +2 -0
- package/dist/esm/behavior/internal/ServerBehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.d.ts +6 -0
- package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.js +14 -0
- package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/esm/node/client/ClientBehavior.d.ts.map +1 -1
- package/dist/esm/node/client/ClientBehavior.js +50 -4
- package/dist/esm/node/client/ClientBehavior.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/cluster/ClusterBehavior.ts +18 -10
- package/src/behavior/cluster/ClusterBehaviorUtil.ts +10 -52
- package/src/behavior/cluster/ValidatedElements.ts +41 -14
- package/src/behavior/internal/ClientBehaviorBacking.ts +2 -3
- package/src/behavior/internal/ServerBehaviorBacking.ts +3 -1
- package/src/behavior/system/commissioning/CommissioningClient.ts +1 -1
- package/src/endpoint/properties/Behaviors.ts +18 -0
- package/src/node/client/ClientBehavior.ts +80 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Behaviors.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/properties/Behaviors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAIH,UAAU,EAEV,SAAS,EAET,SAAS,EAET,YAAY,EAEf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAiB,GAAG,EAAE,MAAM,WAAW,CAAC;AAEpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,SAAS;;
|
|
1
|
+
{"version":3,"file":"Behaviors.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/properties/Behaviors.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,20 @@ class Behaviors {
|
|
|
39
39
|
get supported() {
|
|
40
40
|
return this.#supported;
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Obtain the specific {@link Behavior.Type} used by the endpoint for implementation if the endpoint supports
|
|
44
|
+
* {@link type}.
|
|
45
|
+
*/
|
|
46
|
+
typeFor(type) {
|
|
47
|
+
const supported = this.#supported[type.id];
|
|
48
|
+
if (!supported) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (!supported.supports(type)) {
|
|
52
|
+
return void 0;
|
|
53
|
+
}
|
|
54
|
+
return supported;
|
|
55
|
+
}
|
|
42
56
|
/**
|
|
43
57
|
* The list of active behaviors.
|
|
44
58
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/endpoint/properties/Behaviors.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["name", "type", "promise"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientBehavior.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,
|
|
1
|
+
{"version":3,"file":"ClientBehavior.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAA2D,aAAa,EAAU,MAAM,QAAQ,CAAC;AAIxG,OAAO,EAEH,WAAW,EAEX,SAAS,EAGT,SAAS,EAMZ,MAAM,QAAQ,CAAC;AAMhB;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI,CAoBvF;AAED,yBAAiB,cAAc,CAAC;IAC5B,UAAiB,YAAY;QACzB,EAAE,EAAE,SAAS,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC;QACjC,UAAU,EAAE,WAAW,EAAE,CAAC;QAC1B,QAAQ,EAAE,SAAS,EAAE,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5C,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;KAC3C;CACJ"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
|
|
7
7
|
import { camelize, capitalize, InternalError } from "#general";
|
|
8
|
-
import { AttributeModel, ClusterModel, CommandModel, Matter } from "#model";
|
|
8
|
+
import { AttributeModel, ClusterModel, CommandModel, Conformance, Matter } from "#model";
|
|
9
9
|
import { Node } from "#node/Node.js";
|
|
10
10
|
import { Invoke } from "#protocol";
|
|
11
11
|
import {
|
|
@@ -44,7 +44,7 @@ function generateType(analysis, baseType) {
|
|
|
44
44
|
}
|
|
45
45
|
let { schema } = analysis;
|
|
46
46
|
let isCloned = false;
|
|
47
|
-
const { extraAttrs, extraCommands } = analysis;
|
|
47
|
+
const { attrSupportOverrides, extraAttrs, commandSupportOverrides, extraCommands } = analysis;
|
|
48
48
|
let { cluster } = baseType;
|
|
49
49
|
if (!cluster) {
|
|
50
50
|
cluster = MutableCluster({ id: schema.id, name: schema.name, revision: schema.revision });
|
|
@@ -62,7 +62,7 @@ function generateType(analysis, baseType) {
|
|
|
62
62
|
cloneSchema();
|
|
63
63
|
cluster = new ClusterComposer(cluster, true).compose(featureNames.map(capitalize));
|
|
64
64
|
}
|
|
65
|
-
if (schema.revision !== analysis.shape.revision || extraAttrs.size || extraCommands.size) {
|
|
65
|
+
if (schema.revision !== analysis.shape.revision || extraAttrs.size || extraCommands.size || Object.keys(attrSupportOverrides).length || Object.keys(commandSupportOverrides).length) {
|
|
66
66
|
cloneSchema();
|
|
67
67
|
cluster = {
|
|
68
68
|
...cluster,
|
|
@@ -70,11 +70,21 @@ function generateType(analysis, baseType) {
|
|
|
70
70
|
attributes: { ...cluster.attributes },
|
|
71
71
|
commands: { ...cluster.commands }
|
|
72
72
|
};
|
|
73
|
+
if (attrSupportOverrides) {
|
|
74
|
+
for (const [attr, isSupported] of attrSupportOverrides.entries()) {
|
|
75
|
+
schema.children.push(attr.extend({ operationalIsSupported: isSupported }));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
73
78
|
for (const id of extraAttrs) {
|
|
74
79
|
const name = createUnknownName("attr", id);
|
|
75
80
|
cluster.attributes[camelize(name, false)] = Attribute(id, TlvAny);
|
|
76
81
|
schema.children.push(new AttributeModel({ id, name, type: "any" }));
|
|
77
82
|
}
|
|
83
|
+
if (commandSupportOverrides) {
|
|
84
|
+
for (const [command, isSupported] of commandSupportOverrides.entries()) {
|
|
85
|
+
schema.children.push(command.extend({ operationalIsSupported: isSupported }));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
78
88
|
for (const id of extraCommands) {
|
|
79
89
|
const name = createUnknownName("command", id);
|
|
80
90
|
cluster.commands[camelize(name, false)] = Command(id, TlvAny, 0, TlvNoResponse);
|
|
@@ -148,22 +158,58 @@ function createUnknownName(prefix, id) {
|
|
|
148
158
|
return `${prefix}$${id.toString(16)}`;
|
|
149
159
|
}
|
|
150
160
|
function ShapeAnalysis(shape) {
|
|
151
|
-
const
|
|
161
|
+
const standardCluster = Matter.get(ClusterModel, shape.id);
|
|
162
|
+
const schema = standardCluster ?? new ClusterModel({ id: shape.id, name: createUnknownName("Cluster", shape.id), revision: shape.revision });
|
|
163
|
+
const attrSupportOverrides = /* @__PURE__ */ new Map();
|
|
152
164
|
const extraAttrs = new Set(shape.attributes);
|
|
153
165
|
for (const attr of schema.attributes) {
|
|
166
|
+
maybeOverrideSupport(standardCluster, attr, extraAttrs, attrSupportOverrides);
|
|
167
|
+
if (standardCluster) {
|
|
168
|
+
const supported = extraAttrs.has(attr.id);
|
|
169
|
+
const applicability = attr.conformance.applicabilityFor(standardCluster);
|
|
170
|
+
if (!supported) {
|
|
171
|
+
if (applicability) {
|
|
172
|
+
attrSupportOverrides.set(attr, false);
|
|
173
|
+
}
|
|
174
|
+
} else {
|
|
175
|
+
if (applicability !== Conformance.Applicability.Mandatory) {
|
|
176
|
+
attrSupportOverrides.set(attr, true);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
154
180
|
extraAttrs.delete(attr.id);
|
|
155
181
|
}
|
|
182
|
+
const commandSupportOverrides = /* @__PURE__ */ new Map();
|
|
156
183
|
const extraCommands = new Set(shape.commands);
|
|
157
184
|
for (const command of schema.commands) {
|
|
185
|
+
maybeOverrideSupport(standardCluster, command, extraCommands, commandSupportOverrides);
|
|
158
186
|
extraCommands.delete(command.id);
|
|
159
187
|
}
|
|
160
188
|
return {
|
|
161
189
|
schema,
|
|
162
190
|
shape,
|
|
191
|
+
attrSupportOverrides,
|
|
163
192
|
extraAttrs,
|
|
193
|
+
commandSupportOverrides,
|
|
164
194
|
extraCommands
|
|
165
195
|
};
|
|
166
196
|
}
|
|
197
|
+
function maybeOverrideSupport(standardCluster, element, supported, overrides) {
|
|
198
|
+
if (!standardCluster) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const isSupported = supported.has(element.id);
|
|
202
|
+
const applicability = element.conformance.applicabilityFor(standardCluster);
|
|
203
|
+
if (!isSupported) {
|
|
204
|
+
if (applicability) {
|
|
205
|
+
overrides.set(element, false);
|
|
206
|
+
}
|
|
207
|
+
} else {
|
|
208
|
+
if (applicability !== Conformance.Applicability.Mandatory) {
|
|
209
|
+
overrides.set(element, true);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
167
213
|
export {
|
|
168
214
|
ClientBehavior
|
|
169
215
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/node/client/ClientBehavior.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,uBAAuB;AAChC,SAAS,UAAU,YAAY,qBAAqB;AACpD,SAAS,gBAAgB,cAAc,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/node",
|
|
3
|
-
"version": "0.16.0-alpha.0-
|
|
3
|
+
"version": "0.16.0-alpha.0-20251104-8c3166ea3",
|
|
4
4
|
"description": "API for building Matter nodes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -42,14 +42,14 @@
|
|
|
42
42
|
"#*": "./src/*"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@matter/general": "0.16.0-alpha.0-
|
|
46
|
-
"@matter/model": "0.16.0-alpha.0-
|
|
47
|
-
"@matter/types": "0.16.0-alpha.0-
|
|
48
|
-
"@matter/protocol": "0.16.0-alpha.0-
|
|
45
|
+
"@matter/general": "0.16.0-alpha.0-20251104-8c3166ea3",
|
|
46
|
+
"@matter/model": "0.16.0-alpha.0-20251104-8c3166ea3",
|
|
47
|
+
"@matter/types": "0.16.0-alpha.0-20251104-8c3166ea3",
|
|
48
|
+
"@matter/protocol": "0.16.0-alpha.0-20251104-8c3166ea3"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@matter/tools": "0.16.0-alpha.0-
|
|
52
|
-
"@matter/testing": "0.16.0-alpha.0-
|
|
51
|
+
"@matter/tools": "0.16.0-alpha.0-20251104-8c3166ea3",
|
|
52
|
+
"@matter/testing": "0.16.0-alpha.0-20251104-8c3166ea3"
|
|
53
53
|
},
|
|
54
54
|
"files": [
|
|
55
55
|
"dist/**/*",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { Events } from "#behavior/Events.js";
|
|
8
8
|
import type { Agent } from "#endpoint/Agent.js";
|
|
9
9
|
import { ImplementationError, MaybePromise } from "#general";
|
|
10
|
-
import {
|
|
10
|
+
import { ClusterModifier, type Schema } from "#model";
|
|
11
11
|
import { ClusterComposer, ClusterType, ClusterTypeModifier, TypeFromBitSchema } from "#types";
|
|
12
12
|
import { Behavior } from "../Behavior.js";
|
|
13
13
|
import type { BehaviorBacking } from "../internal/BehaviorBacking.js";
|
|
@@ -139,10 +139,7 @@ export class ClusterBehavior extends Behavior {
|
|
|
139
139
|
const AlterationsT extends ClusterTypeModifier.Alterations<This["cluster"]>,
|
|
140
140
|
>(this: This, alterations: AlterationsT) {
|
|
141
141
|
const cluster = new ClusterTypeModifier(this.cluster).alter(alterations);
|
|
142
|
-
const schema =
|
|
143
|
-
this.schema instanceof ClusterModel
|
|
144
|
-
? ClusterModifier.applyRequirements(this.schema, alterations)
|
|
145
|
-
: undefined;
|
|
142
|
+
const schema = ClusterModifier.applyRequirements(this.schema, alterations);
|
|
146
143
|
return this.for(cluster, schema);
|
|
147
144
|
}
|
|
148
145
|
|
|
@@ -156,8 +153,7 @@ export class ClusterBehavior extends Behavior {
|
|
|
156
153
|
const FlagsT extends ClusterTypeModifier.ElementFlags<This["cluster"]>,
|
|
157
154
|
>(this: This, flags: FlagsT) {
|
|
158
155
|
const cluster = new ClusterTypeModifier(this.cluster).enable(flags);
|
|
159
|
-
const schema =
|
|
160
|
-
this.schema instanceof ClusterModel ? ClusterModifier.applyPresence(this.schema, flags) : undefined;
|
|
156
|
+
const schema = ClusterModifier.applyPresence(this.schema, flags);
|
|
161
157
|
return this.for(cluster, schema);
|
|
162
158
|
}
|
|
163
159
|
|
|
@@ -172,12 +168,24 @@ export class ClusterBehavior extends Behavior {
|
|
|
172
168
|
}
|
|
173
169
|
|
|
174
170
|
static override supports(other: Behavior.Type) {
|
|
175
|
-
|
|
171
|
+
const otherCluster = (other as { cluster?: ClusterType }).cluster;
|
|
172
|
+
if (!otherCluster) {
|
|
176
173
|
return false;
|
|
177
174
|
}
|
|
178
175
|
|
|
179
|
-
|
|
180
|
-
|
|
176
|
+
// Special case for "client" behaviors. We implement these with the "complete" cluster so the interface offers
|
|
177
|
+
// type-safe access to the entire cluster. The only exception to this is for non-nullable mandatory state
|
|
178
|
+
// values. If the peer does not implement such a value then it will be undefined even though our type says it
|
|
179
|
+
// won't be. This however is not an issue specific to the complete cluster so we do not need to worry about it
|
|
180
|
+
// here
|
|
181
|
+
//
|
|
182
|
+
// Further, we know the "Client" classes can have no extension methods or properties, so we don't need to do an
|
|
183
|
+
// exact class match for type safety
|
|
184
|
+
if (other.name.endsWith("Client") && otherCluster.id === this.cluster.id) {
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (!Behavior.supports.call(this, other)) {
|
|
181
189
|
return false;
|
|
182
190
|
}
|
|
183
191
|
|
|
@@ -9,7 +9,6 @@ import { camelize, EventEmitter, GeneratedClass, ImplementationError, Observable
|
|
|
9
9
|
import {
|
|
10
10
|
ClassSemantics,
|
|
11
11
|
ClusterModel,
|
|
12
|
-
Conformance,
|
|
13
12
|
DecodedBitmap,
|
|
14
13
|
DefaultValue,
|
|
15
14
|
ElementTag,
|
|
@@ -53,7 +52,7 @@ export function introspectionInstanceOf(type: Behavior.Type) {
|
|
|
53
52
|
export function createType<const C extends ClusterType>(
|
|
54
53
|
cluster: C,
|
|
55
54
|
base: Behavior.Type,
|
|
56
|
-
schema?: Schema,
|
|
55
|
+
schema?: Schema.Cluster,
|
|
57
56
|
name?: string,
|
|
58
57
|
) {
|
|
59
58
|
if (schema === undefined) {
|
|
@@ -144,30 +143,14 @@ export type ExtensionInterfaceOf<B extends Behavior.Type> = B extends { Extensio
|
|
|
144
143
|
interface DerivationContext {
|
|
145
144
|
cluster: ClusterType;
|
|
146
145
|
scope: Scope;
|
|
147
|
-
featuresAvailable: FeatureSet;
|
|
148
|
-
featuresSupported: FeatureSet;
|
|
149
146
|
base: Behavior.Type;
|
|
150
147
|
newProps: Record<string, ValueModel>;
|
|
151
148
|
}
|
|
152
149
|
|
|
153
150
|
function DerivationContext(schema: Schema, cluster: ClusterType, base: Behavior.Type): DerivationContext {
|
|
154
|
-
const scope = Scope(schema);
|
|
155
|
-
// Determine the set of features so we can test element applicability
|
|
156
|
-
let featuresAvailable, featuresSupported;
|
|
157
|
-
if (scope.owner instanceof ClusterModel) {
|
|
158
|
-
const normalized = FeatureSet.normalize(scope.owner.featureMap, scope.owner.supportedFeatures);
|
|
159
|
-
featuresAvailable = normalized.featuresAvailable;
|
|
160
|
-
featuresSupported = normalized.featuresSupported;
|
|
161
|
-
} else {
|
|
162
|
-
featuresAvailable = new FeatureSet();
|
|
163
|
-
featuresSupported = new FeatureSet();
|
|
164
|
-
}
|
|
165
|
-
|
|
166
151
|
return {
|
|
167
152
|
cluster,
|
|
168
153
|
scope: Scope(schema),
|
|
169
|
-
featuresAvailable,
|
|
170
|
-
featuresSupported,
|
|
171
154
|
base,
|
|
172
155
|
newProps: {},
|
|
173
156
|
};
|
|
@@ -179,14 +162,7 @@ function DerivationContext(schema: Schema, cluster: ClusterType, base: Behavior.
|
|
|
179
162
|
*
|
|
180
163
|
* Note - we only use the cluster here for default values
|
|
181
164
|
*/
|
|
182
|
-
function createDerivedState({
|
|
183
|
-
cluster,
|
|
184
|
-
scope,
|
|
185
|
-
base,
|
|
186
|
-
newProps,
|
|
187
|
-
featuresAvailable,
|
|
188
|
-
featuresSupported,
|
|
189
|
-
}: DerivationContext) {
|
|
165
|
+
function createDerivedState({ cluster, scope, base, newProps }: DerivationContext) {
|
|
190
166
|
const BaseState = base["State"];
|
|
191
167
|
if (BaseState === undefined) {
|
|
192
168
|
throw new ImplementationError(`No state class defined for behavior class ${base.name}`);
|
|
@@ -215,12 +191,9 @@ function createDerivedState({
|
|
|
215
191
|
let propSchema: ValueModel | undefined;
|
|
216
192
|
|
|
217
193
|
// Determine whether the attribute applies
|
|
218
|
-
let applicability;
|
|
219
194
|
for (const attr of attrs) {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
// Inapplicable; ignore
|
|
223
|
-
if (!applicability) {
|
|
195
|
+
// Ignore if inapplicable
|
|
196
|
+
if (!attr.effectiveConformance.applicabilityFor(scope)) {
|
|
224
197
|
continue;
|
|
225
198
|
}
|
|
226
199
|
|
|
@@ -265,7 +238,6 @@ function createDerivedState({
|
|
|
265
238
|
scope,
|
|
266
239
|
oldDefaults[name] === undefined ? knownDefaults?.[name] : oldDefaults[name],
|
|
267
240
|
propSchema,
|
|
268
|
-
applicability,
|
|
269
241
|
);
|
|
270
242
|
}
|
|
271
243
|
|
|
@@ -285,7 +257,7 @@ function createDerivedState({
|
|
|
285
257
|
/**
|
|
286
258
|
* Extend events with additional implementations.
|
|
287
259
|
*/
|
|
288
|
-
function createDerivedEvents({ scope, base, newProps
|
|
260
|
+
function createDerivedEvents({ scope, base, newProps }: DerivationContext) {
|
|
289
261
|
const instanceDescriptors = {} as PropertyDescriptorMap;
|
|
290
262
|
|
|
291
263
|
const baseInstance = new base.Events() as unknown as Record<string, unknown>;
|
|
@@ -300,12 +272,7 @@ function createDerivedEvents({ scope, base, newProps, featuresAvailable, feature
|
|
|
300
272
|
})) {
|
|
301
273
|
const name = camelize(event.name);
|
|
302
274
|
applicableClusterEvents.add(name);
|
|
303
|
-
if (
|
|
304
|
-
(event.conformance.applicabilityOf(featuresAvailable, featuresSupported) ===
|
|
305
|
-
Conformance.Applicability.Mandatory ||
|
|
306
|
-
event.isSupported) &&
|
|
307
|
-
baseInstance[name] === undefined
|
|
308
|
-
) {
|
|
275
|
+
if (scope.hasOperationalSupport(event) && baseInstance[name] === undefined) {
|
|
309
276
|
eventNames.add(name);
|
|
310
277
|
instanceDescriptors[name] = createEventDescriptor(
|
|
311
278
|
name,
|
|
@@ -385,16 +352,12 @@ function schemaForCluster(cluster: ClusterType) {
|
|
|
385
352
|
* We cache schema for clusters configured for certain features. This in turn enables the RootSupervisor cache which
|
|
386
353
|
* keys off of the schema.
|
|
387
354
|
*/
|
|
388
|
-
const configuredSchemaCache = new Map<Schema, Record<string, Schema>>();
|
|
355
|
+
const configuredSchemaCache = new Map<Schema.Cluster, Record<string, Schema.Cluster>>();
|
|
389
356
|
|
|
390
357
|
/**
|
|
391
358
|
* Ensure the supported features enumerated by schema align with a cluster definition.
|
|
392
359
|
*/
|
|
393
|
-
function syncFeatures(schema: Schema, cluster: ClusterType) {
|
|
394
|
-
if (!(schema instanceof ClusterModel)) {
|
|
395
|
-
return schema;
|
|
396
|
-
}
|
|
397
|
-
|
|
360
|
+
function syncFeatures(schema: Schema.Cluster, cluster: ClusterType) {
|
|
398
361
|
// If features are unchanged, return original schema
|
|
399
362
|
const incomingFeatures = new FeatureSet(cluster.supportedFeatures);
|
|
400
363
|
if (new FeatureSet(cluster.supportedFeatures).is(schema.supportedFeatures)) {
|
|
@@ -439,18 +402,13 @@ function createDefaultCommandDescriptors(cluster: ClusterType, base: Behavior.Ty
|
|
|
439
402
|
return result;
|
|
440
403
|
}
|
|
441
404
|
|
|
442
|
-
function selectDefaultValue(
|
|
443
|
-
scope: Scope,
|
|
444
|
-
oldDefault: Val,
|
|
445
|
-
member: ValueModel,
|
|
446
|
-
applicability?: Conformance.Applicability,
|
|
447
|
-
) {
|
|
405
|
+
function selectDefaultValue(scope: Scope, oldDefault: Val, member: ValueModel) {
|
|
448
406
|
if (oldDefault !== undefined) {
|
|
449
407
|
return oldDefault;
|
|
450
408
|
}
|
|
451
409
|
|
|
452
410
|
// No default unless mandatory or explicitly marked as implemented
|
|
453
|
-
if (
|
|
411
|
+
if (!scope.hasOperationalSupport(member)) {
|
|
454
412
|
return;
|
|
455
413
|
}
|
|
456
414
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Diagnostic, ImplementationError, Logger, Observable } from "#general";
|
|
7
|
+
import { Diagnostic, ImplementationError, Logger, MatterAggregateError, Observable } from "#general";
|
|
8
8
|
import { ClusterType } from "#types";
|
|
9
9
|
import { Behavior } from "../Behavior.js";
|
|
10
10
|
import { ClusterBehavior } from "./ClusterBehavior.js";
|
|
@@ -12,6 +12,35 @@ import { introspectionInstanceOf } from "./ClusterBehaviorUtil.js";
|
|
|
12
12
|
|
|
13
13
|
const logger = Logger.get("ValidatedElements");
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Thrown when a {@link ClusterBehavior} cannot be constructed due to fatal errors.
|
|
17
|
+
*/
|
|
18
|
+
export class ClusterImplementationError extends MatterAggregateError {
|
|
19
|
+
constructor(name: string, errors: ClusterElementError[]) {
|
|
20
|
+
super(
|
|
21
|
+
errors,
|
|
22
|
+
Diagnostic.upgrade(
|
|
23
|
+
`Cluster behavior ${name} has fatal implementation errors`,
|
|
24
|
+
Diagnostic.squash("Cluster behavior", Diagnostic.strong(name), "has fatal implementation errors"),
|
|
25
|
+
),
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Thrown when a {@link ClusterBehavior} element is implemented incorrectly.
|
|
32
|
+
*/
|
|
33
|
+
export class ClusterElementError extends ImplementationError {
|
|
34
|
+
constructor(element: string, message: string) {
|
|
35
|
+
super(
|
|
36
|
+
Diagnostic.upgrade(
|
|
37
|
+
`Error in ${element}: ${message}`,
|
|
38
|
+
Diagnostic.squash("Error in ", Diagnostic.strong(element), ": ", message),
|
|
39
|
+
),
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
15
44
|
/**
|
|
16
45
|
* Analyzes a ClusterBehavior implementation to ensure it conforms to the Matter specification.
|
|
17
46
|
*
|
|
@@ -89,25 +118,23 @@ export class ValidatedElements {
|
|
|
89
118
|
return;
|
|
90
119
|
}
|
|
91
120
|
|
|
92
|
-
let
|
|
121
|
+
let fatalErrors: undefined | ClusterElementError[];
|
|
93
122
|
|
|
94
|
-
for (const
|
|
95
|
-
const
|
|
123
|
+
for (const { element, message, fatal } of this.errors) {
|
|
124
|
+
const error = new ClusterElementError(element, message);
|
|
96
125
|
|
|
97
|
-
if (
|
|
98
|
-
|
|
99
|
-
|
|
126
|
+
if (fatal) {
|
|
127
|
+
if (!fatalErrors) {
|
|
128
|
+
fatalErrors = [];
|
|
129
|
+
}
|
|
130
|
+
fatalErrors.push(error);
|
|
100
131
|
} else {
|
|
101
|
-
logger.warn(
|
|
132
|
+
logger.warn(error.message);
|
|
102
133
|
}
|
|
103
134
|
}
|
|
104
135
|
|
|
105
|
-
if (
|
|
106
|
-
throw new
|
|
107
|
-
`There ${
|
|
108
|
-
this.errors.length > 1 ? `are ${this.errors.length} errors` : `is 1 error`
|
|
109
|
-
} in a ClusterBehavior implementation for property ${this.#name} (see log for details)`,
|
|
110
|
-
);
|
|
136
|
+
if (fatalErrors) {
|
|
137
|
+
throw new ClusterImplementationError(this.#type.name, fatalErrors);
|
|
111
138
|
}
|
|
112
139
|
}
|
|
113
140
|
|
|
@@ -42,11 +42,10 @@ export class ClientBehaviorBacking extends BehaviorBacking {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
return (this.#elements = {
|
|
45
|
+
features: schema.supportedFeatures,
|
|
45
46
|
attributes,
|
|
46
47
|
commands,
|
|
47
|
-
|
|
48
|
-
// TODO
|
|
49
|
-
events: new Set(),
|
|
48
|
+
events: new Set(), // Not published
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
|
|
@@ -9,7 +9,7 @@ import { GlobalAttributeState } from "#behavior/cluster/ClusterState.js";
|
|
|
9
9
|
import { ValidatedElements } from "#behavior/cluster/ValidatedElements.js";
|
|
10
10
|
import type { SupportedElements } from "#endpoint/properties/Behaviors.js";
|
|
11
11
|
import { camelize } from "#general";
|
|
12
|
-
import { FieldValue } from "#model";
|
|
12
|
+
import { type ClusterModel, FieldValue } from "#model";
|
|
13
13
|
import { Val } from "#protocol";
|
|
14
14
|
import { ClusterType, TlvNoResponse } from "#types";
|
|
15
15
|
import { Behavior } from "../Behavior.js";
|
|
@@ -35,6 +35,7 @@ export class ServerBehaviorBacking extends BehaviorBacking {
|
|
|
35
35
|
this.#configureElements(behavior);
|
|
36
36
|
} else {
|
|
37
37
|
this.#elements = {
|
|
38
|
+
features: NoElements,
|
|
38
39
|
attributes: NoElements,
|
|
39
40
|
commands: NoElements,
|
|
40
41
|
events: NoElements,
|
|
@@ -102,6 +103,7 @@ export class ServerBehaviorBacking extends BehaviorBacking {
|
|
|
102
103
|
|
|
103
104
|
// Load public API
|
|
104
105
|
this.#elements = {
|
|
106
|
+
features: (behavior.type.schema as ClusterModel).supportedFeatures ?? new Set(),
|
|
105
107
|
attributes: validation.attributes,
|
|
106
108
|
commands: validation.commands,
|
|
107
109
|
events: validation.events,
|
|
@@ -324,7 +324,7 @@ export namespace CommissioningClient {
|
|
|
324
324
|
*/
|
|
325
325
|
export class NetworkAddress implements ServerAddress.Definition {
|
|
326
326
|
@field(string, mandatory)
|
|
327
|
-
type
|
|
327
|
+
type!: "udp" | "tcp" | "ble";
|
|
328
328
|
|
|
329
329
|
@field(string)
|
|
330
330
|
ip?: string;
|
|
@@ -41,6 +41,7 @@ import type { SupportedBehaviors } from "./SupportedBehaviors.js";
|
|
|
41
41
|
const logger = Logger.get("Behaviors");
|
|
42
42
|
|
|
43
43
|
export interface SupportedElements {
|
|
44
|
+
features: Set<string>;
|
|
44
45
|
attributes: Set<string>;
|
|
45
46
|
commands: Set<string>;
|
|
46
47
|
events: Set<string>;
|
|
@@ -63,6 +64,23 @@ export class Behaviors {
|
|
|
63
64
|
return this.#supported;
|
|
64
65
|
}
|
|
65
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Obtain the specific {@link Behavior.Type} used by the endpoint for implementation if the endpoint supports
|
|
69
|
+
* {@link type}.
|
|
70
|
+
*/
|
|
71
|
+
typeFor<T extends Behavior.Type>(type: T): T | undefined {
|
|
72
|
+
const supported = this.#supported[type.id];
|
|
73
|
+
if (!supported) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (!supported.supports(type)) {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return supported as T;
|
|
82
|
+
}
|
|
83
|
+
|
|
66
84
|
/**
|
|
67
85
|
* The list of active behaviors.
|
|
68
86
|
*/
|