@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.
Files changed (59) hide show
  1. package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
  2. package/dist/cjs/behavior/cluster/ClusterBehavior.js +8 -5
  3. package/dist/cjs/behavior/cluster/ClusterBehavior.js.map +1 -1
  4. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.d.ts +1 -1
  5. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.d.ts.map +1 -1
  6. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js +7 -32
  7. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
  8. package/dist/cjs/behavior/cluster/ValidatedElements.d.ts +13 -0
  9. package/dist/cjs/behavior/cluster/ValidatedElements.d.ts.map +1 -1
  10. package/dist/cjs/behavior/cluster/ValidatedElements.js +34 -11
  11. package/dist/cjs/behavior/cluster/ValidatedElements.js.map +1 -1
  12. package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
  13. package/dist/cjs/behavior/internal/ClientBehaviorBacking.js +2 -1
  14. package/dist/cjs/behavior/internal/ClientBehaviorBacking.js.map +1 -1
  15. package/dist/cjs/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
  16. package/dist/cjs/behavior/internal/ServerBehaviorBacking.js +2 -0
  17. package/dist/cjs/behavior/internal/ServerBehaviorBacking.js.map +1 -1
  18. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  19. package/dist/cjs/endpoint/properties/Behaviors.d.ts +6 -0
  20. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  21. package/dist/cjs/endpoint/properties/Behaviors.js +14 -0
  22. package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
  23. package/dist/cjs/node/client/ClientBehavior.d.ts.map +1 -1
  24. package/dist/cjs/node/client/ClientBehavior.js +49 -3
  25. package/dist/cjs/node/client/ClientBehavior.js.map +1 -1
  26. package/dist/esm/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
  27. package/dist/esm/behavior/cluster/ClusterBehavior.js +9 -6
  28. package/dist/esm/behavior/cluster/ClusterBehavior.js.map +1 -1
  29. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.d.ts +1 -1
  30. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.d.ts.map +1 -1
  31. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js +7 -34
  32. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
  33. package/dist/esm/behavior/cluster/ValidatedElements.d.ts +13 -0
  34. package/dist/esm/behavior/cluster/ValidatedElements.d.ts.map +1 -1
  35. package/dist/esm/behavior/cluster/ValidatedElements.js +35 -12
  36. package/dist/esm/behavior/cluster/ValidatedElements.js.map +1 -1
  37. package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
  38. package/dist/esm/behavior/internal/ClientBehaviorBacking.js +2 -1
  39. package/dist/esm/behavior/internal/ClientBehaviorBacking.js.map +1 -1
  40. package/dist/esm/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
  41. package/dist/esm/behavior/internal/ServerBehaviorBacking.js +2 -0
  42. package/dist/esm/behavior/internal/ServerBehaviorBacking.js.map +1 -1
  43. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  44. package/dist/esm/endpoint/properties/Behaviors.d.ts +6 -0
  45. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  46. package/dist/esm/endpoint/properties/Behaviors.js +14 -0
  47. package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
  48. package/dist/esm/node/client/ClientBehavior.d.ts.map +1 -1
  49. package/dist/esm/node/client/ClientBehavior.js +50 -4
  50. package/dist/esm/node/client/ClientBehavior.js.map +1 -1
  51. package/package.json +7 -7
  52. package/src/behavior/cluster/ClusterBehavior.ts +18 -10
  53. package/src/behavior/cluster/ClusterBehaviorUtil.ts +10 -52
  54. package/src/behavior/cluster/ValidatedElements.ts +41 -14
  55. package/src/behavior/internal/ClientBehaviorBacking.ts +2 -3
  56. package/src/behavior/internal/ServerBehaviorBacking.ts +3 -1
  57. package/src/behavior/system/commissioning/CommissioningClient.ts +1 -1
  58. package/src/endpoint/properties/Behaviors.ts +18 -0
  59. 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":"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"}
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,EAA8C,aAAa,EAAU,MAAM,QAAQ,CAAC;AAI3F,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"}
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 schema = Matter.get(ClusterModel, shape.id) ?? new ClusterModel({ id: shape.id, name: createUnknownName("Cluster", shape.id), revision: shape.revision });
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": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,uBAAuB;AAChC,SAAS,UAAU,YAAY,qBAAqB;AACpD,SAAS,gBAAgB,cAAc,cAAc,aAA4B,cAAc;AAE/F,SAAS,YAAY;AACrB,SAA4B,cAAc;AAC1C;AAAA,EACI;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,MAAM,iBAAiB,KAAK,KAAK,OAAO,gBAAgB;AAExD,MAAM,QAAQ,CAAC;AAKR,SAAS,eAAe,OAA0D;AACrF,QAAM,WAAW,cAAc,KAAK;AAEpC,QAAM,cAAc,kBAAkB,QAAQ;AAC9C,MAAI,OAAO,MAAM,WAAW;AAC5B,MAAI,MAAM;AACN,WAAO;AAAA,EACX;AAEA,MAAI;AACJ,QAAM,kBAAkB,gBAAgB,IAAI,MAAM,EAAE;AACpD,MAAI,iBAAiB;AACjB,eAAW,gBAAgB,IAAI,eAAe;AAAA,EAClD,OAAO;AACH,eAAW;AAAA,EACf;AAEA,SAAO,MAAM,WAAW,IAAI,aAAa,UAAU,QAAQ;AAE3D,SAAO;AACX;AAcA,SAAS,aAAa,UAAyB,UAA+C;AAE1F,MAAI,CAAC,gBAAgB,GAAG,QAAQ,GAAG;AAC/B,UAAM,IAAI,cAAc,6BAA6B,SAAS,OAAO,IAAI,2BAA2B;AAAA,EACxG;AAEA,MAAI,EAAE,OAAO,IAAI;AACjB,MAAI,WAAW;AACf,QAAM,EAAE,sBAAsB,YAAY,yBAAyB,cAAc,IAAI;AAGrF,MAAI,EAAE,QAAQ,IAAI;AAClB,MAAI,CAAC,SAAS;AACV,cAAU,eAAe,EAAE,IAAI,OAAO,IAAI,MAAM,OAAO,MAAM,UAAU,OAAO,SAAS,CAAC;AAAA,EAC5F;AAGA,MAAI,oBAAoB,SAAS,MAAM;AACvC,MAAI,OAAO,sBAAsB,UAAU;AACvC,QAAI,mBAAmB;AACnB,0BAAoB,QAAQ,WAAW,WAAW,OAAO,OAAO,iBAAwB;AAAA,IAC5F,OAAO;AACH,0BAAoB,CAAC;AAAA,IACzB;AAAA,EACJ;AAGA,QAAM,eAAe,OAAO,QAAQ,iBAAiB,EAChD,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EACnB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AACnB,MAAI,aAAa,QAAQ;AAErB,gBAAY;AAGZ,cAAU,IAAI,gBAAgB,SAAS,IAAI,EAAE,QAAQ,aAAa,IAAI,UAAU,CAAC;AAAA,EACrF;AAIA,MACI,OAAO,aAAa,SAAS,MAAM,YACnC,WAAW,QACX,cAAc,QACd,OAAO,KAAK,oBAAoB,EAAE,UAClC,OAAO,KAAK,uBAAuB,EAAE,QACvC;AACE,gBAAY;AAEZ,cAAU;AAAA,MACN,GAAG;AAAA,MACH;AAAA,MACA,YAAY,EAAE,GAAG,QAAQ,WAAW;AAAA,MACpC,UAAU,EAAE,GAAG,QAAQ,SAAS;AAAA,IACpC;AAEA,QAAI,sBAAsB;AACtB,iBAAW,CAAC,MAAM,WAAW,KAAK,qBAAqB,QAAQ,GAAG;AAC9D,eAAO,SAAS,KAAK,KAAK,OAAO,EAAE,wBAAwB,YAAY,CAAC,CAAC;AAAA,MAC7E;AAAA,IACJ;AAEA,eAAW,MAAM,YAAY;AACzB,YAAM,OAAO,kBAAkB,QAAQ,EAAE;AACzC,cAAQ,WAAW,SAAS,MAAM,KAAK,CAAC,IAAI,UAAU,IAAI,MAAM;AAChE,aAAO,SAAS,KAAK,IAAI,eAAe,EAAE,IAAI,MAAM,MAAM,MAAM,CAAC,CAAC;AAAA,IACtE;AAEA,QAAI,yBAAyB;AACzB,iBAAW,CAAC,SAAS,WAAW,KAAK,wBAAwB,QAAQ,GAAG;AACpE,eAAO,SAAS,KAAK,QAAQ,OAAO,EAAE,wBAAwB,YAAY,CAAC,CAAC;AAAA,MAChF;AAAA,IACJ;AAEA,eAAW,MAAM,eAAe;AAC5B,YAAM,OAAO,kBAAkB,WAAW,EAAE;AAC5C,cAAQ,SAAS,SAAS,MAAM,KAAK,CAAC,IAAI,QAAQ,IAAI,QAAQ,GAAG,aAAa;AAC9E,aAAO,SAAS,KAAK,IAAI,aAAa,EAAE,IAAI,MAAM,MAAM,MAAM,CAAC,CAAC;AAAA,IACpE;AAAA,EACJ;AAGA,QAAM,OAAO,SAAS,IAAI,SAAS,QAAQ,GAAG,OAAO,IAAI,QAAQ;AAGjE,aAAW,MAAM,SAAS,MAAM,UAAU;AACtC,UAAM,OAAO,OAAO,IAAI,cAAc,EAAE,GAAG,QAAQ,kBAAkB,WAAW,EAAE;AAClF,SAAK,UAAU,SAAS,MAAM,KAAK,CAAC,IAAI,iBAAiB,SAAS,IAAI,CAAC;AAAA,EAC3E;AAEA,SAAO;AAEP,WAAS,cAAc;AACnB,QAAI,UAAU;AACV;AAAA,IACJ;AACA,aAAS,OAAO,MAAM;AACtB,WAAO,oBAAoB;AAC3B,eAAW;AAAA,EACf;AAEA,WAAS,iBAAiB,SAAiB;AACvC,WAAO,eAAuC,QAAa;AACvD,YAAM,OAAO,KAAK,IAAI,IAAI,IAAI;AAE9B,YAAM,SAAU,KAAK,YAAkC;AAAA,QACnD,OAAO;AAAA,UACH,UAAU;AAAA,YACN,OAAO,uBAA4B;AAAA,cAC/B,UAAU,KAAK;AAAA,cACf;AAAA,cACA;AAAA,cACA;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAEA,uBAAiB,SAAS,QAAQ;AAC9B,mBAAW,SAAS,OAAO;AAEvB,kBAAQ,MAAM,MAAM;AAAA,YAChB,KAAK;AACD,kBAAI,MAAM,WAAW,OAAO,SAAS;AACjC,sBAAM,oBAAoB,OAAO,MAAM,QAAQ,QAAW,MAAM,aAAa;AAAA,cACjF;AACA;AAAA,YAEJ,KAAK;AACD,qBAAO,MAAM;AAAA,UACrB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAKA,SAAS,kBAAkB,UAAyB;AAChD,QAAM,cAAc,CAAC,SAAS,MAAM,EAAE;AAEtC,MAAI,SAAS,WAAW,MAAM;AAC1B,gBAAY,KAAK,KAAK,yBAAyB,SAAS,UAAU,CAAC;AAAA,EACvE;AAEA,MAAI,SAAS,cAAc,MAAM;AAC7B,gBAAY,KAAK,KAAK,yBAAyB,SAAS,aAAa,CAAC;AAAA,EAC1E;AAEA,SAAO,YAAY,KAAK,GAAG;AAW3B,WAAS,yBAAyB,KAAuB;AACrD,UAAM,SAAS,CAAC;AAEhB,eAAW,MAAM,KAAK;AAClB,YAAM,QAAQ,KAAK,MAAM,KAAK,cAAc;AAC5C,aAAO,KAAK,KAAK,OAAO,KAAK,KAAK,KAAM,KAAK,KAAK;AAAA,IACtD;AAEA,WAAO,OAAO,QAAQ,MAAM,EACvB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EACrC,IAAI,CAAC,CAAC,OAAO,GAAG,MAAO,QAAQ,GAAG,KAAK,IAAI,GAAG,KAAK,GAAI,EACvD,KAAK,GAAG;AAAA,EACjB;AACJ;AAEA,SAAS,kBAAkB,QAAgB,IAAY;AACnD,SAAO,GAAG,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;AACvC;AAcA,SAAS,cAAc,OAAmD;AACtE,QAAM,kBAAkB,OAAO,IAAI,cAAc,MAAM,EAAE;AACzD,QAAM,SACF,mBACA,IAAI,aAAa,EAAE,IAAI,MAAM,IAAI,MAAM,kBAAkB,WAAW,MAAM,EAAE,GAAG,UAAU,MAAM,SAAS,CAAC;AAE7G,QAAM,uBAAuB,oBAAI,IAA6B;AAC9D,QAAM,aAAa,IAAI,IAAY,MAAM,UAAU;AACnD,aAAW,QAAQ,OAAO,YAAY;AAClC,yBAAqB,iBAAiB,MAAM,YAAY,oBAAoB;AAC5E,QAAI,iBAAiB;AACjB,YAAM,YAAY,WAAW,IAAI,KAAK,EAAE;AACxC,YAAM,gBAAgB,KAAK,YAAY,iBAAiB,eAAe;AACvE,UAAI,CAAC,WAAW;AACZ,YAAI,eAAe;AACf,+BAAqB,IAAI,MAAM,KAAK;AAAA,QACxC;AAAA,MACJ,OAAO;AACH,YAAI,kBAAkB,YAAY,cAAc,WAAW;AACvD,+BAAqB,IAAI,MAAM,IAAI;AAAA,QACvC;AAAA,MACJ;AAAA,IACJ;AACA,eAAW,OAAO,KAAK,EAAiB;AAAA,EAC5C;AAEA,QAAM,0BAA0B,oBAAI,IAA2B;AAC/D,QAAM,gBAAgB,IAAI,IAAI,MAAM,QAAQ;AAC5C,aAAW,WAAW,OAAO,UAAU;AACnC,yBAAqB,iBAAiB,SAAS,eAAe,uBAAuB;AACrF,kBAAc,OAAO,QAAQ,EAAe;AAAA,EAChD;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAWA,SAAS,qBACL,iBACA,SACA,WACA,WACF;AACE,MAAI,CAAC,iBAAiB;AAClB;AAAA,EACJ;AAEA,QAAM,cAAc,UAAU,IAAI,QAAQ,EAAE;AAC5C,QAAM,gBAAgB,QAAQ,YAAY,iBAAiB,eAAe;AAC1E,MAAI,CAAC,aAAa;AACd,QAAI,eAAe;AACf,gBAAU,IAAI,SAAS,KAAK;AAAA,IAChC;AAAA,EACJ,OAAO;AACH,QAAI,kBAAkB,YAAY,cAAc,WAAW;AACvD,gBAAU,IAAI,SAAS,IAAI;AAAA,IAC/B;AAAA,EACJ;AACJ;",
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-20251103-b47ffa15b",
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-20251103-b47ffa15b",
46
- "@matter/model": "0.16.0-alpha.0-20251103-b47ffa15b",
47
- "@matter/types": "0.16.0-alpha.0-20251103-b47ffa15b",
48
- "@matter/protocol": "0.16.0-alpha.0-20251103-b47ffa15b"
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-20251103-b47ffa15b",
52
- "@matter/testing": "0.16.0-alpha.0-20251103-b47ffa15b"
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 { ClusterModel, ClusterModifier, type Schema } from "#model";
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
- if (!Behavior.supports.call(this, other)) {
171
+ const otherCluster = (other as { cluster?: ClusterType }).cluster;
172
+ if (!otherCluster) {
176
173
  return false;
177
174
  }
178
175
 
179
- const otherCluster = (other as { cluster?: ClusterType }).cluster;
180
- if (!otherCluster) {
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
- applicability = attr.effectiveConformance.applicabilityOf(featuresAvailable, featuresSupported);
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, featuresAvailable, featuresSupported }: DerivationContext) {
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 (applicability !== Conformance.Applicability.Mandatory && !member.isSupported) {
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 crashed = false;
121
+ let fatalErrors: undefined | ClusterElementError[];
93
122
 
94
- for (const error of this.errors) {
95
- const diagnostic = Diagnostic.squash("Error in ", Diagnostic.strong(error.element), ": ", error.message);
123
+ for (const { element, message, fatal } of this.errors) {
124
+ const error = new ClusterElementError(element, message);
96
125
 
97
- if (error.fatal) {
98
- crashed = true;
99
- logger.error(diagnostic);
126
+ if (fatal) {
127
+ if (!fatalErrors) {
128
+ fatalErrors = [];
129
+ }
130
+ fatalErrors.push(error);
100
131
  } else {
101
- logger.warn(diagnostic);
132
+ logger.warn(error.message);
102
133
  }
103
134
  }
104
135
 
105
- if (crashed) {
106
- throw new ImplementationError(
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: "udp" | "tcp" | "ble";
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
  */