@matter/types 0.15.1 → 0.15.2-alpha.0-20250704-2715344f0

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 (65) hide show
  1. package/dist/cjs/cluster/ClusterRegistry.d.ts +1 -2
  2. package/dist/cjs/cluster/ClusterRegistry.d.ts.map +1 -1
  3. package/dist/cjs/cluster/ClusterRegistry.js.map +1 -1
  4. package/dist/cjs/cluster/mutation/ClusterComposer.d.ts +2 -11
  5. package/dist/cjs/cluster/mutation/ClusterComposer.d.ts.map +1 -1
  6. package/dist/cjs/cluster/mutation/ClusterComposer.js +10 -5
  7. package/dist/cjs/cluster/mutation/ClusterComposer.js.map +1 -1
  8. package/dist/cjs/cluster/mutation/MutableCluster.d.ts +3 -3
  9. package/dist/cjs/cluster/mutation/MutableCluster.d.ts.map +1 -1
  10. package/dist/cjs/cluster/mutation/MutableCluster.js.map +1 -1
  11. package/dist/cjs/common/StatusResponseError.d.ts +10 -0
  12. package/dist/cjs/common/StatusResponseError.d.ts.map +1 -1
  13. package/dist/cjs/common/StatusResponseError.js +39 -1
  14. package/dist/cjs/common/StatusResponseError.js.map +1 -1
  15. package/dist/cjs/datatype/GroupId.d.ts +3 -1
  16. package/dist/cjs/datatype/GroupId.d.ts.map +1 -1
  17. package/dist/cjs/datatype/GroupId.js +5 -2
  18. package/dist/cjs/datatype/GroupId.js.map +1 -1
  19. package/dist/cjs/datatype/NodeId.d.ts +0 -2
  20. package/dist/cjs/datatype/NodeId.d.ts.map +1 -1
  21. package/dist/cjs/datatype/NodeId.js +0 -4
  22. package/dist/cjs/datatype/NodeId.js.map +1 -1
  23. package/dist/cjs/protocol/definitions/secure-channel.d.ts +3 -0
  24. package/dist/cjs/protocol/definitions/secure-channel.d.ts.map +1 -1
  25. package/dist/cjs/protocol/definitions/secure-channel.js +6 -0
  26. package/dist/cjs/protocol/definitions/secure-channel.js.map +1 -1
  27. package/dist/cjs/protocol/messages/TlvSubscribeResponse.d.ts.map +1 -1
  28. package/dist/cjs/protocol/messages/TlvSubscribeResponse.js.map +1 -1
  29. package/dist/esm/cluster/ClusterRegistry.d.ts +1 -2
  30. package/dist/esm/cluster/ClusterRegistry.d.ts.map +1 -1
  31. package/dist/esm/cluster/ClusterRegistry.js.map +1 -1
  32. package/dist/esm/cluster/mutation/ClusterComposer.d.ts +2 -11
  33. package/dist/esm/cluster/mutation/ClusterComposer.d.ts.map +1 -1
  34. package/dist/esm/cluster/mutation/ClusterComposer.js +10 -5
  35. package/dist/esm/cluster/mutation/ClusterComposer.js.map +1 -1
  36. package/dist/esm/cluster/mutation/MutableCluster.d.ts +3 -3
  37. package/dist/esm/cluster/mutation/MutableCluster.d.ts.map +1 -1
  38. package/dist/esm/cluster/mutation/MutableCluster.js.map +1 -1
  39. package/dist/esm/common/StatusResponseError.d.ts +10 -0
  40. package/dist/esm/common/StatusResponseError.d.ts.map +1 -1
  41. package/dist/esm/common/StatusResponseError.js +40 -2
  42. package/dist/esm/common/StatusResponseError.js.map +1 -1
  43. package/dist/esm/datatype/GroupId.d.ts +3 -1
  44. package/dist/esm/datatype/GroupId.d.ts.map +1 -1
  45. package/dist/esm/datatype/GroupId.js +5 -2
  46. package/dist/esm/datatype/GroupId.js.map +1 -1
  47. package/dist/esm/datatype/NodeId.d.ts +0 -2
  48. package/dist/esm/datatype/NodeId.d.ts.map +1 -1
  49. package/dist/esm/datatype/NodeId.js +0 -4
  50. package/dist/esm/datatype/NodeId.js.map +1 -1
  51. package/dist/esm/protocol/definitions/secure-channel.d.ts +3 -0
  52. package/dist/esm/protocol/definitions/secure-channel.d.ts.map +1 -1
  53. package/dist/esm/protocol/definitions/secure-channel.js +6 -0
  54. package/dist/esm/protocol/definitions/secure-channel.js.map +1 -1
  55. package/dist/esm/protocol/messages/TlvSubscribeResponse.d.ts.map +1 -1
  56. package/dist/esm/protocol/messages/TlvSubscribeResponse.js.map +1 -1
  57. package/package.json +5 -5
  58. package/src/cluster/ClusterRegistry.ts +1 -2
  59. package/src/cluster/mutation/ClusterComposer.ts +18 -5
  60. package/src/cluster/mutation/MutableCluster.ts +3 -3
  61. package/src/common/StatusResponseError.ts +53 -1
  62. package/src/datatype/GroupId.ts +8 -2
  63. package/src/datatype/NodeId.ts +0 -6
  64. package/src/protocol/definitions/secure-channel.ts +6 -0
  65. package/src/protocol/messages/TlvSubscribeResponse.ts +1 -0
@@ -5,8 +5,7 @@
5
5
  */
6
6
  import { ClusterType } from "./ClusterType.js";
7
7
  /**
8
- * The formal definitions of clusters in Matter.js are generated
9
- * programmatically.
8
+ * The formal definitions of clusters in Matter.js are generated programmatically.
10
9
  *
11
10
  * This singleton acts as a registry for generated {@link ClusterType}s.
12
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterRegistry.d.ts","sourceRoot":"","sources":["../../../src/cluster/ClusterRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;;GAKG;AACH,yBAAiB,eAAe,CAAC;IAC7B;;OAEG;IACH,SAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvD;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,QAU5C;CACJ"}
1
+ {"version":3,"file":"ClusterRegistry.d.ts","sourceRoot":"","sources":["../../../src/cluster/ClusterRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;GAIG;AACH,yBAAiB,eAAe,CAAC;IAC7B;;OAEG;IACH,SAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvD;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,QAU5C;CACJ"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cluster/ClusterRegistry.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,MAAM,aAAa,CAAC;AAQb,IAAU;AAAA,CAAV,CAAUA,qBAAV;AAII,WAAS,IAAI,IAAqC;AACrD,WAAO,WAAW,EAAE;AAAA,EACxB;AAFO,EAAAA,iBAAS;AAOT,WAAS,SAAS,SAAsB;AAC3C,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AAEA,QAAI,QAAQ,OAAO,QAAW;AAC1B;AAAA,IACJ;AAEA,eAAW,QAAQ,EAAE,IAAI;AAAA,EAC7B;AAVO,EAAAA,iBAAS;AAAA,GAXH;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,MAAM,aAAa,CAAC;AAOb,IAAU;AAAA,CAAV,CAAUA,qBAAV;AAII,WAAS,IAAI,IAAqC;AACrD,WAAO,WAAW,EAAE;AAAA,EACxB;AAFO,EAAAA,iBAAS;AAOT,WAAS,SAAS,SAAsB;AAC3C,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AAEA,QAAI,QAAQ,OAAO,QAAW;AAC1B;AAAA,IACJ;AAEA,eAAW,QAAQ,EAAE,IAAI;AAAA,EAC7B;AAVO,EAAAA,iBAAS;AAAA,GAXH;",
5
5
  "names": ["ClusterRegistry"]
6
6
  }
@@ -11,8 +11,9 @@ export declare class IllegalClusterError extends MatterError {
11
11
  * A "cluster composer" manages cluster configuration based on feature selection.
12
12
  */
13
13
  export declare class ClusterComposer<const T extends ClusterType> {
14
+ #private;
14
15
  cluster: T;
15
- constructor(cluster: T);
16
+ constructor(cluster: T, allowInvalidFeatures?: boolean);
16
17
  /**
17
18
  * Build a cluster using selected feature flags.
18
19
  *
@@ -20,16 +21,6 @@ export declare class ClusterComposer<const T extends ClusterType> {
20
21
  * @throws {IllegalClusterError} if the feature combination is disallowed by the Matter specification
21
22
  */
22
23
  compose<const SelectionT extends ClusterComposer.FeatureSelection<T>>(selection: SelectionT): ClusterComposer.Of<T, SelectionT>;
23
- /**
24
- * Validates a set of feature flags against the features supported by a cluster.
25
- */
26
- private validateFeatureSelection;
27
- /**
28
- * Injects a component into a cluster if the cluster supports the specified features. Uses matching element from
29
- * "original" if present. This allows for component insertion without overwrite of other changes to the named
30
- * element.
31
- */
32
- private accept;
33
24
  static injectElements(definition: Partial<ClusterType.Options>, component: Partial<ClusterType.Options>, original?: Partial<ClusterType>): void;
34
25
  /**
35
26
  * Throws an error if a feature combination is illegal per the Matter specification.
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterComposer.d.ts","sourceRoot":"","sources":["../../../../src/cluster/mutation/ClusterComposer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClusterComposer.d.ts","sourceRoot":"","sources":["../../../../src/cluster/mutation/ClusterComposer.ts"],"names":[],"mappings":"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"}
@@ -35,9 +35,11 @@ class IllegalClusterError extends import_general.MatterError {
35
35
  }
36
36
  const featureSelectionCache = /* @__PURE__ */ new WeakMap();
37
37
  class ClusterComposer {
38
- constructor(cluster) {
38
+ constructor(cluster, allowInvalidFeatures = false) {
39
39
  this.cluster = cluster;
40
+ this.#allowInvalidFeatureCombinations = allowInvalidFeatures;
40
41
  }
42
+ #allowInvalidFeatureCombinations;
41
43
  /**
42
44
  * Build a cluster using selected feature flags.
43
45
  *
@@ -45,7 +47,7 @@ class ClusterComposer {
45
47
  * @throws {IllegalClusterError} if the feature combination is disallowed by the Matter specification
46
48
  */
47
49
  compose(selection) {
48
- this.validateFeatureSelection(selection);
50
+ this.#validateFeatureSelection(selection);
49
51
  const extensions = this.cluster.extensions;
50
52
  let cluster;
51
53
  const cacheKey = [...selection].sort().join("\u241C");
@@ -79,7 +81,7 @@ class ClusterComposer {
79
81
  });
80
82
  for (const selector of extensions) {
81
83
  if (selector.component) {
82
- this.accept(cluster, selector.component, this.cluster, selector.flags);
84
+ this.#accept(cluster, selector.component, this.cluster, selector.flags);
83
85
  } else {
84
86
  this.reject(cluster, selector.flags);
85
87
  }
@@ -103,7 +105,7 @@ class ClusterComposer {
103
105
  /**
104
106
  * Validates a set of feature flags against the features supported by a cluster.
105
107
  */
106
- validateFeatureSelection(features) {
108
+ #validateFeatureSelection(features) {
107
109
  for (const f of features) {
108
110
  if (!this.cluster.features[(0, import_general.camelize)(f)]) {
109
111
  throw new IllegalClusterError(`"${f}" is not a valid feature identifier`);
@@ -115,7 +117,7 @@ class ClusterComposer {
115
117
  * "original" if present. This allows for component insertion without overwrite of other changes to the named
116
118
  * element.
117
119
  */
118
- accept(definition, component, original, flags) {
120
+ #accept(definition, component, original, flags) {
119
121
  for (const k in flags) {
120
122
  if (!!definition.supportedFeatures[k] !== !!flags[k]) {
121
123
  return;
@@ -153,6 +155,9 @@ class ClusterComposer {
153
155
  * Throws an error if a feature combination is illegal per the Matter specification.
154
156
  */
155
157
  reject(definition, flags) {
158
+ if (this.#allowInvalidFeatureCombinations) {
159
+ return;
160
+ }
156
161
  for (const k in flags) {
157
162
  if (!!definition.supportedFeatures[k] !== !!flags[k]) {
158
163
  return;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cluster/mutation/ClusterComposer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -12,7 +12,7 @@ import { ElementModifier } from "./ElementModifier.js";
12
12
  * A "mutable cluster" is a {@link ClusterType} with builder methods that support a limited number of modifications as
13
13
  * defined by the Matter specification.
14
14
  */
15
- export type MutableCluster<T extends ClusterType.Options, C extends ClusterComposer.Component[] = []> = ClusterComposer.WithComponents<ClusterType.Of<T>, C> & MutableCluster.Methods<ClusterType.Of<T>>;
15
+ export type MutableCluster<T extends ClusterType.Options = ClusterType.Options, C extends ClusterComposer.Component[] = []> = ClusterComposer.WithComponents<ClusterType.Of<T>, C> & MutableCluster.Methods<ClusterType.Of<T>>;
16
16
  /**
17
17
  * Define a new {@link MutableCluster}.
18
18
  */
@@ -50,7 +50,7 @@ export declare namespace MutableCluster {
50
50
  * We define clusters this way if the Matter specification defines a cluster with a set of features, one of which is
51
51
  * required, but none of which is required if others are enabled.
52
52
  */
53
- interface ExtensibleOnly<T extends ClusterType.Options> {
53
+ interface ExtensibleOnly<T extends ClusterType.Options = ClusterType.Options> {
54
54
  id: ClusterId;
55
55
  name: string;
56
56
  with: Methods<ClusterType.Of<T>>["with"];
@@ -58,7 +58,7 @@ export declare namespace MutableCluster {
58
58
  /**
59
59
  * Create a factory for clusters that require extension.
60
60
  */
61
- function ExtensibleOnly<const T extends ClusterType.Options>(options: T): ExtensibleOnly<T>;
61
+ function ExtensibleOnly<const T extends ClusterType.Options = ClusterType.Options>(options: T): ExtensibleOnly<T>;
62
62
  /**
63
63
  * Create a conditional version of an unconditional element definition.
64
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MutableCluster.d.ts","sourceRoot":"","sources":["../../../../src/cluster/mutation/MutableCluster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MutableCluster.d.ts","sourceRoot":"","sources":["../../../../src/cluster/mutation/MutableCluster.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cluster/mutation/MutableCluster.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,yBAA4B;AAC5B,6BAAgC;AAChC,6BAAgC;AAVhC;AAAA;AAAA;AAAA;AAAA;AAwBO,SAAS,eACZ,YACG,YACL;AACE,QAAM,cAAU,gCAAY,OAAO;AAEnC,aAAW,aAAa,YAAY;AAChC,2CAAgB,eAAe,SAAS,SAAS;AAAA,EACrD;AAEA,SAAO,OAAO,SAAS;AAAA,IACnB,QAAQ,UAA4D;AAChE,aAAO,IAAI,uCAAgB,OAAO,EAAE,QAAQ,QAAQ;AAAA,IACxD;AAAA,IAEA,MAAM,aAA0D;AAC5D,aAAO,IAAI,uCAAgB,OAAO,EAAE,MAAM,WAAW;AAAA,IACzD;AAAA,IAEA,IAAI,QAA0D;AAC1D,aAAO,IAAI,uCAAgB,OAAO,EAAE,IAAI,MAAM;AAAA,IAClD;AAAA,IAEA,OAAO,OAAqD;AACxD,aAAO,IAAI,uCAAgB,OAAO,EAAE,OAAO,KAAK;AAAA,IACpD;AAAA,EACJ,CAAC;AAED,SAAO;AACX;AAAA,CAEO,CAAUA,oBAAV;AAII,WAAS,UAAwD,UAAa;AACjF,WAAO;AAAA,EACX;AAFO,EAAAA,gBAAS;AAOT,WAAS,cAAgE,YAAe;AAC3F,WAAO;AAAA,EACX;AAFO,EAAAA,gBAAS;AAkDT,WAAS,eAAoD,SAAY;AAC5E,WAAO;AAAA,MACH,IAAI,QAAQ;AAAA,MACZ,MAAM,QAAQ;AAAA,MAEd,QAAQ,UAA+D;AACnE,eAAO,IAAI,2CAAgB,gCAAY,OAAO,CAAC,EAAE,QAAQ,QAAQ;AAAA,MACrE;AAAA,IACJ;AAAA,EACJ;AATO,EAAAA,gBAAS;AAcT,WAAS,cAKd,SAAY,EAAE,YAAY,YAAY,GAA0C;AAC9E,WAAO;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,eAAe;AAAA,MACf,YAAY,cAAc,CAAC;AAAA,MAC3B,aAAa,eAAe,CAAC;AAAA,IACjC;AAAA,EACJ;AAbO,EAAAA,gBAAS;AAAA,GA3EH;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,yBAA4B;AAC5B,6BAAgC;AAChC,6BAAgC;AAVhC;AAAA;AAAA;AAAA;AAAA;AAwBO,SAAS,eACZ,YACG,YACL;AACE,QAAM,cAAU,gCAAY,OAAO;AAEnC,aAAW,aAAa,YAAY;AAChC,2CAAgB,eAAe,SAAS,SAAS;AAAA,EACrD;AAEA,SAAO,OAAO,SAAS;AAAA,IACnB,QAAQ,UAA4D;AAChE,aAAO,IAAI,uCAAgB,OAAO,EAAE,QAAQ,QAAQ;AAAA,IACxD;AAAA,IAEA,MAAM,aAA0D;AAC5D,aAAO,IAAI,uCAAgB,OAAO,EAAE,MAAM,WAAW;AAAA,IACzD;AAAA,IAEA,IAAI,QAA0D;AAC1D,aAAO,IAAI,uCAAgB,OAAO,EAAE,IAAI,MAAM;AAAA,IAClD;AAAA,IAEA,OAAO,OAAqD;AACxD,aAAO,IAAI,uCAAgB,OAAO,EAAE,OAAO,KAAK;AAAA,IACpD;AAAA,EACJ,CAAC;AAED,SAAO;AACX;AAAA,CAEO,CAAUA,oBAAV;AAII,WAAS,UAAwD,UAAa;AACjF,WAAO;AAAA,EACX;AAFO,EAAAA,gBAAS;AAOT,WAAS,cAAgE,YAAe;AAC3F,WAAO;AAAA,EACX;AAFO,EAAAA,gBAAS;AAkDT,WAAS,eAA0E,SAAY;AAClG,WAAO;AAAA,MACH,IAAI,QAAQ;AAAA,MACZ,MAAM,QAAQ;AAAA,MAEd,QAAQ,UAA+D;AACnE,eAAO,IAAI,2CAAgB,gCAAY,OAAO,CAAC,EAAE,QAAQ,QAAQ;AAAA,MACrE;AAAA,IACJ;AAAA,EACJ;AATO,EAAAA,gBAAS;AAcT,WAAS,cAKd,SAAY,EAAE,YAAY,YAAY,GAA0C;AAC9E,WAAO;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,eAAe;AAAA,MACf,YAAY,cAAc,CAAC;AAAA,MAC3B,aAAa,eAAe,CAAC;AAAA,IACjC;AAAA,EACJ;AAbO,EAAAA,gBAAS;AAAA,GA3EH;",
5
5
  "names": ["MutableCluster"]
6
6
  }
@@ -14,7 +14,17 @@ export declare class StatusResponseError extends MatterError {
14
14
  constructor(message: string, code: Status, clusterCode?: number | undefined);
15
15
  static is(error: unknown, ...codes: Status[]): error is StatusResponseError;
16
16
  get id(): string;
17
+ static create(code: Status, message?: string, clusterCode?: number): StatusResponseError;
17
18
  }
19
+ /**
20
+ * Thrown for errors that have an unknown {@link Status} code.
21
+ */
22
+ export declare class UnknownStatusResponseError extends StatusResponseError {
23
+ }
24
+ /**
25
+ * A specialized {@link StatusResponseError} class for each standard {@link Status} code.
26
+ */
27
+ export declare const StatusResponse: Record<`${keyof typeof Status}Error`, new (message?: string, clusterCode?: number) => StatusResponseError>;
18
28
  /** Error class for Status response errors that were received from the other node. */
19
29
  export declare class ReceivedStatusResponseError extends StatusResponseError {
20
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StatusResponseError.d.ts","sourceRoot":"","sources":["../../../src/common/StatusResponseError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAc,MAAM,iBAAiB,CAAC;AAE1D;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;aAG5B,IAAI,EAAE,MAAM;aACZ,WAAW,CAAC,EAAE,MAAM;gBAFpC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,YAAA;IAKxC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,mBAAmB;IAI3E,IAAa,EAAE,WAWd;CACJ;AAED,qFAAqF;AACrF,qBAAa,2BAA4B,SAAQ,mBAAmB;CAAG"}
1
+ {"version":3,"file":"StatusResponseError.d.ts","sourceRoot":"","sources":["../../../src/common/StatusResponseError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAA0B,MAAM,iBAAiB,CAAC;AAItE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;aAG5B,IAAI,EAAE,MAAM;aACZ,WAAW,CAAC,EAAE,MAAM;gBAFpC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,YAAA;IAKxC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,mBAAmB;IAI3E,IAAa,EAAE,WAWd;IAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CASrE;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,mBAAmB;CAAG;AAEtE;;GAEG;AACH,eAAO,MAAM,cAAc,EA8BtB,MAAM,CAAC,GAAG,MAAM,OAAO,MAAM,OAAO,EAAE,KAAK,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC,CAAC;AAEhH,qFAAqF;AACrF,qBAAa,2BAA4B,SAAQ,mBAAmB;CAAG"}
@@ -19,7 +19,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var StatusResponseError_exports = {};
20
20
  __export(StatusResponseError_exports, {
21
21
  ReceivedStatusResponseError: () => ReceivedStatusResponseError,
22
- StatusResponseError: () => StatusResponseError
22
+ StatusResponse: () => StatusResponse,
23
+ StatusResponseError: () => StatusResponseError,
24
+ UnknownStatusResponseError: () => UnknownStatusResponseError
23
25
  });
24
26
  module.exports = __toCommonJS(StatusResponseError_exports);
25
27
  var import_Status = require("#globals/Status.js");
@@ -29,6 +31,7 @@ var import_general = require("@matter/general");
29
31
  * Copyright 2022-2025 Matter.js Authors
30
32
  * SPDX-License-Identifier: Apache-2.0
31
33
  */
34
+ const specializationIndex = {};
32
35
  class StatusResponseError extends import_general.MatterError {
33
36
  constructor(message, code, clusterCode) {
34
37
  super(message);
@@ -48,7 +51,42 @@ class StatusResponseError extends import_general.MatterError {
48
51
  }
49
52
  return id;
50
53
  }
54
+ static create(code, message, clusterCode) {
55
+ const type = specializationIndex[code];
56
+ if (type) {
57
+ return new type(message, clusterCode);
58
+ }
59
+ throw new UnknownStatusResponseError(message ?? "Unknown status response", code, clusterCode);
60
+ }
61
+ }
62
+ class UnknownStatusResponseError extends StatusResponseError {
51
63
  }
64
+ const StatusResponse = Object.fromEntries(
65
+ Object.entries(import_Status.Status).map(([name, code]) => {
66
+ if (typeof code !== "number") {
67
+ return void 0;
68
+ }
69
+ const ct = {
70
+ [name]: class extends StatusResponseError {
71
+ constructor(message, clusterCode) {
72
+ if (message === void 0) {
73
+ message = (0, import_general.capitalize)((0, import_general.decamelize)(name));
74
+ }
75
+ super(message, code, clusterCode);
76
+ let codeStr = `code ${code}`;
77
+ if (clusterCode !== void 0) {
78
+ codeStr = `${codeStr}; cluster code ${clusterCode}`;
79
+ }
80
+ this.message = `message (${codeStr})`;
81
+ }
82
+ }
83
+ };
84
+ const constructor = ct[name];
85
+ Object.defineProperty(constructor, "name", { value: name });
86
+ specializationIndex[code] = constructor;
87
+ return [`${name}Error`, constructor];
88
+ }).filter((e) => e)
89
+ );
52
90
  class ReceivedStatusResponseError extends StatusResponseError {
53
91
  }
54
92
  //# sourceMappingURL=StatusResponseError.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/common/StatusResponseError.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAAuB;AACvB,qBAAwC;AAPxC;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,4BAA4B,2BAAY;AAAA,EAC1C,YACH,SACgB,MACA,aAClB;AACE,UAAM,OAAO;AAHG;AACA;AAAA,EAGpB;AAAA,EAEA,OAAO,GAAG,UAAmB,OAA+C;AACxE,WAAO,iBAAiB,wBAAwB,CAAC,MAAM,UAAU,MAAM,SAAS,MAAM,IAAI;AAAA,EAC9F;AAAA,EAEA,IAAa,KAAK;AACd,UAAM,KAAK,MAAM;AAEjB,QAAI,OAAO,mBAAmB;AAC1B,YAAM,OAAO,qBAAO,KAAK,IAAI;AAC7B,UAAI,MAAM;AACN,mBAAO,2BAAW,IAAI;AAAA,MAC1B;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AACJ;AAGO,MAAM,oCAAoC,oBAAoB;AAAC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAAuB;AACvB,qBAAoD;AAPpD;AAAA;AAAA;AAAA;AAAA;AASA,MAAM,sBAAsB,CAAC;AAKtB,MAAM,4BAA4B,2BAAY;AAAA,EAC1C,YACH,SACgB,MACA,aAClB;AACE,UAAM,OAAO;AAHG;AACA;AAAA,EAGpB;AAAA,EAEA,OAAO,GAAG,UAAmB,OAA+C;AACxE,WAAO,iBAAiB,wBAAwB,CAAC,MAAM,UAAU,MAAM,SAAS,MAAM,IAAI;AAAA,EAC9F;AAAA,EAEA,IAAa,KAAK;AACd,UAAM,KAAK,MAAM;AAEjB,QAAI,OAAO,mBAAmB;AAC1B,YAAM,OAAO,qBAAO,KAAK,IAAI;AAC7B,UAAI,MAAM;AACN,mBAAO,2BAAW,IAAI;AAAA,MAC1B;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,OAAO,MAAc,SAAkB,aAAsB;AAChE,UAAM,OAAO,oBAAoB,IAAI;AAErC,QAAI,MAAM;AACN,aAAO,IAAI,KAAK,SAAS,WAAW;AAAA,IACxC;AAEA,UAAM,IAAI,2BAA2B,WAAW,2BAA2B,MAAM,WAAW;AAAA,EAChG;AACJ;AAKO,MAAM,mCAAmC,oBAAoB;AAAC;AAK9D,MAAM,iBAAiB,OAAO;AAAA,EACjC,OAAO,QAAQ,oBAAM,EAChB,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;AACnB,QAAI,OAAO,SAAS,UAAU;AAC1B,aAAO;AAAA,IACX;AACA,UAAM,KAAK;AAAA,MACP,CAAC,IAAI,GAAG,cAAc,oBAAoB;AAAA,QACtC,YAAY,SAAkB,aAAsB;AAChD,cAAI,YAAY,QAAW;AACvB,0BAAU,+BAAW,2BAAW,IAAI,CAAC;AAAA,UACzC;AAEA,gBAAM,SAAS,MAAgB,WAAW;AAE1C,cAAI,UAAU,QAAQ,IAAI;AAC1B,cAAI,gBAAgB,QAAW;AAC3B,sBAAU,GAAG,OAAO,kBAAkB,WAAW;AAAA,UACrD;AAEA,eAAK,UAAU,YAAY,OAAO;AAAA,QACtC;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,cAAc,GAAG,IAAI;AAC3B,WAAO,eAAe,aAAa,QAAQ,EAAE,OAAO,KAAK,CAAC;AAC1D,wBAAoB,IAAI,IAAI;AAC5B,WAAO,CAAC,GAAG,IAAI,SAAS,WAAW;AAAA,EACvC,CAAC,EACA,OAAO,OAAK,CAAC;AACtB;AAGO,MAAM,oCAAoC,oBAAoB;AAAC;",
5
5
  "names": []
6
6
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { Branded } from "#general";
7
7
  import { TlvWrapper } from "../tlv/TlvWrapper.js";
8
- import { NodeId } from "./NodeId.js";
8
+ import type { NodeId } from "./NodeId.js";
9
9
  /**
10
10
  * A Group Identifier (Group ID or GID) is a 16-bit number that identifies a set of Nodes across a
11
11
  * Fabric at the message layer (see Section 4.15, “Group Key Management”). A Group ID can further
@@ -33,6 +33,8 @@ export declare namespace GroupId {
33
33
  function isApplicationGroupId(groupId: GroupId): boolean;
34
34
  function assertGroupId(groupId: GroupId): void;
35
35
  function fromNodeId(nodeId: NodeId): GroupId;
36
+ /** A Group Node ID is a 64-bit Node ID that contains a particular Group ID in the lower half of the Node ID. */
37
+ const isGroupNodeId: (nodeId: NodeId) => boolean;
36
38
  }
37
39
  /** Tlv Schema for a Group Id. */
38
40
  export declare const TlvGroupId: TlvWrapper<GroupId, number>;
@@ -1 +1 @@
1
- {"version":3,"file":"GroupId.d.ts","sourceRoot":"","sources":["../../../src/datatype/GroupId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAsC,MAAM,UAAU,CAAC;AAGvE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,OAAO,CAKjE;AAED,yBAAiB,OAAO,CAAC;IACd,MAAM,WAAW,SAAa,CAAC;IAEtC,2DAA2D;IACpD,MAAM,SAAS,EAAa,OAAO,CAAC;IAE3C;;OAEG;IACI,MAAM,iBAAiB,EAAa,OAAO,CAAC;IAI5C,MAAM,OAAO,8DAAuB,CAAC;IAE5C,6DAA6D;IAC7D,SAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE9D;IAED,SAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,QAI7C;IAED,SAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQlD;CACJ;AAED,iCAAiC;AACjC,eAAO,MAAM,UAAU,6BAItB,CAAC"}
1
+ {"version":3,"file":"GroupId.d.ts","sourceRoot":"","sources":["../../../src/datatype/GroupId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAsC,MAAM,UAAU,CAAC;AAGvE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,OAAO,CAKjE;AAED,yBAAiB,OAAO,CAAC;IACd,MAAM,WAAW,SAAa,CAAC;IAEtC,2DAA2D;IACpD,MAAM,SAAS,EAAa,OAAO,CAAC;IAE3C;;OAEG;IACI,MAAM,iBAAiB,EAAa,OAAO,CAAC;IAI5C,MAAM,OAAO,8DAAuB,CAAC;IAE5C,6DAA6D;IAC7D,SAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE9D;IAED,SAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,QAI7C;IAED,SAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQlD;IAED,gHAAgH;IACzG,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,OAG9C,CAAC;CACL;AAED,iCAAiC;AACjC,eAAO,MAAM,UAAU,6BAItB,CAAC"}
@@ -26,7 +26,6 @@ var import_general = require("#general");
26
26
  var import_ValidationError = require("../common/ValidationError.js");
27
27
  var import_TlvNumber = require("../tlv/TlvNumber.js");
28
28
  var import_TlvWrapper = require("../tlv/TlvWrapper.js");
29
- var import_NodeId = require("./NodeId.js");
30
29
  /**
31
30
  * @license
32
31
  * Copyright 2022-2025 Matter.js Authors
@@ -54,13 +53,17 @@ function GroupId(groupId, validate = true) {
54
53
  }
55
54
  GroupId2.assertGroupId = assertGroupId;
56
55
  function fromNodeId(nodeId) {
57
- if (!import_NodeId.NodeId.isGroupNodeId(nodeId)) {
56
+ if (!(0, GroupId2.isGroupNodeId)(nodeId)) {
58
57
  throw new import_general.InternalError(`NodeId ${nodeId} is not a Group NodeId`);
59
58
  }
60
59
  const groupId = Number(nodeId & BigInt(65535));
61
60
  return GroupId2(groupId);
62
61
  }
63
62
  GroupId2.fromNodeId = fromNodeId;
63
+ GroupId2.isGroupNodeId = (nodeId) => {
64
+ const nodeIdHex = nodeId.toString(16);
65
+ return nodeIdHex.startsWith("ffffffffffff") && nodeIdHex.length === 16;
66
+ };
64
67
  })(GroupId || (GroupId = {}));
65
68
  const TlvGroupId = new import_TlvWrapper.TlvWrapper(
66
69
  import_TlvNumber.TlvUInt16,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/datatype/GroupId.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA4D;AAC5D,6BAAwD;AACxD,uBAA0B;AAC1B,wBAA2B;AAC3B,oBAAuB;AAVvB;AAAA;AAAA;AAAA;AAAA;AA0BO,SAAS,QAAQ,SAAiB,WAAW,MAAe;AAC/D,MAAI,CAAC,YAAa,WAAW,KAAU,WAAW,OAAS;AACvD,WAAO,OAAO,OAAO;AAAA,EACzB;AACA,QAAM,IAAI,kDAA2B,qBAAqB,OAAO,EAAE;AACvE;AAAA,CAEO,CAAUA,aAAV;AACI,EAAMA,SAAA,cAAcA,SAAQ,CAAC;AAG7B,EAAMA,SAAA,YAAY;AAKlB,EAAMA,SAAA,oBAAoB;AAI1B,EAAMA,SAAA,cAAU,oCAAYA,QAAO;AAGnC,WAAS,qBAAqB,SAA2B;AAC5D,WAAO,WAAW,KAAU,WAAW;AAAA,EAC3C;AAFO,EAAAA,SAAS;AAIT,WAAS,cAAc,SAAkB;AAC5C,QAAI,YAAYA,SAAQ,aAAa;AACjC,YAAM,IAAI,mCAAoB,kDAAkD;AAAA,IACpF;AAAA,EACJ;AAJO,EAAAA,SAAS;AAMT,WAAS,WAAW,QAAyB;AAChD,QAAI,CAAC,qBAAO,cAAc,MAAM,GAAG;AAC/B,YAAM,IAAI,6BAAc,UAAU,MAAM,wBAAwB;AAAA,IACpE;AAEA,UAAM,UAAU,OAAO,SAAS,OAAO,KAAM,CAAC;AAE9C,WAAOA,SAAQ,OAAO;AAAA,EAC1B;AARO,EAAAA,SAAS;AAAA,GA1BH;AAsCV,MAAM,aAAa,IAAI;AAAA,EAC1B;AAAA,EACA,aAAW;AAAA,EACX,WAAS,QAAQ,OAAO,KAAK;AAAA;AACjC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA4D;AAC5D,6BAAwD;AACxD,uBAA0B;AAC1B,wBAA2B;AAT3B;AAAA;AAAA;AAAA;AAAA;AA0BO,SAAS,QAAQ,SAAiB,WAAW,MAAe;AAC/D,MAAI,CAAC,YAAa,WAAW,KAAU,WAAW,OAAS;AACvD,WAAO,OAAO,OAAO;AAAA,EACzB;AACA,QAAM,IAAI,kDAA2B,qBAAqB,OAAO,EAAE;AACvE;AAAA,CAEO,CAAUA,aAAV;AACI,EAAMA,SAAA,cAAcA,SAAQ,CAAC;AAG7B,EAAMA,SAAA,YAAY;AAKlB,EAAMA,SAAA,oBAAoB;AAI1B,EAAMA,SAAA,cAAU,oCAAYA,QAAO;AAGnC,WAAS,qBAAqB,SAA2B;AAC5D,WAAO,WAAW,KAAU,WAAW;AAAA,EAC3C;AAFO,EAAAA,SAAS;AAIT,WAAS,cAAc,SAAkB;AAC5C,QAAI,YAAYA,SAAQ,aAAa;AACjC,YAAM,IAAI,mCAAoB,kDAAkD;AAAA,IACpF;AAAA,EACJ;AAJO,EAAAA,SAAS;AAMT,WAAS,WAAW,QAAyB;AAChD,QAAI,KAACA,SAAA,eAAc,MAAM,GAAG;AACxB,YAAM,IAAI,6BAAc,UAAU,MAAM,wBAAwB;AAAA,IACpE;AAEA,UAAM,UAAU,OAAO,SAAS,OAAO,KAAM,CAAC;AAE9C,WAAOA,SAAQ,OAAO;AAAA,EAC1B;AARO,EAAAA,SAAS;AAWT,EAAMA,SAAA,gBAAgB,CAAC,WAA4B;AACtD,UAAM,YAAY,OAAO,SAAS,EAAE;AACpC,WAAO,UAAU,WAAW,cAAc,KAAK,UAAU,WAAW;AAAA,EACxE;AAAA,GAxCa;AA4CV,MAAM,aAAa,IAAI;AAAA,EAC1B;AAAA,EACA,aAAW;AAAA,EACX,WAAS,QAAQ,OAAO,KAAK;AAAA;AACjC;",
5
5
  "names": ["GroupId"]
6
6
  }
@@ -32,8 +32,6 @@ export declare namespace NodeId {
32
32
  */
33
33
  const isOperationalNodeId: (nodeId: NodeId) => boolean;
34
34
  /** A Group Node ID is a 64-bit Node ID that contains a particular Group ID in the lower half of the Node ID. */
35
- const isGroupNodeId: (nodeId: NodeId) => boolean;
36
- /** A Group Node ID is a 64-bit Node ID that contains a particular Group ID in the lower half of the Node ID. */
37
35
  const fromGroupId: (groupId: number) => NodeId;
38
36
  /**
39
37
  * A Temporary Local Node ID is a 64-bit Node ID that contains an implementation-dependent value in its lower
@@ -1 +1 @@
1
- {"version":3,"file":"NodeId.d.ts","sourceRoot":"","sources":["../../../src/datatype/NodeId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAS,MAAM,EAAmC,MAAM,UAAU,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE/C,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAE9D;AAED,yBAAiB,MAAM,CAAC;IAIpB;;;OAGG;IACI,MAAM,mBAAmB,QAAY,CAAC;IAEtC,MAAM,WAAW,GAAI,QAAQ,MAAM,WAIzC,CAAC;IAEF;;;;OAIG;IACI,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAOxD,CAAC;IAEF;;OAEG;IACI,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,OAEpD,CAAC;IAEF,gHAAgH;IACzG,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,OAG9C,CAAC;IAEF,gHAAgH;IACzG,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,MAE7C,CAAC;IAEF;;;;OAIG;IACI,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,MAKrD,CAAC;IAEF;;;OAGG;IACI,MAAM,wBAAwB,GAAI,IAAI,oBAAoB,KAAG,MAKnE,CAAC;IAEK,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,OAGvD,CAAC;IAEK,MAAM,6BAA6B,GAAI,QAAQ,MAAM,KAAG,oBAK9D,CAAC;IAEF;;;;OAIG;IACI,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,MAKrD,CAAC;CACL;AAED,wCAAwC;AACxC,eAAO,MAAM,SAAS,qCAIrB,CAAC"}
1
+ {"version":3,"file":"NodeId.d.ts","sourceRoot":"","sources":["../../../src/datatype/NodeId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAS,MAAM,EAAmC,MAAM,UAAU,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE/C,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAE9D;AAED,yBAAiB,MAAM,CAAC;IAIpB;;;OAGG;IACI,MAAM,mBAAmB,QAAY,CAAC;IAEtC,MAAM,WAAW,GAAI,QAAQ,MAAM,WAIzC,CAAC;IAEF;;;;OAIG;IACI,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAOxD,CAAC;IAEF;;OAEG;IACI,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,OAEpD,CAAC;IAEF,gHAAgH;IACzG,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,MAE7C,CAAC;IAEF;;;;OAIG;IACI,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,MAKrD,CAAC;IAEF;;;OAGG;IACI,MAAM,wBAAwB,GAAI,IAAI,oBAAoB,KAAG,MAKnE,CAAC;IAEK,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,OAGvD,CAAC;IAEK,MAAM,6BAA6B,GAAI,QAAQ,MAAM,KAAG,oBAK9D,CAAC;IAEF;;;;OAIG;IACI,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,MAKrD,CAAC;CACL;AAED,wCAAwC;AACxC,eAAO,MAAM,SAAS,qCAIrB,CAAC"}
@@ -55,10 +55,6 @@ function NodeId(v) {
55
55
  NodeId2.isOperationalNodeId = (nodeId) => {
56
56
  return nodeId >= OPERATIONAL_NODE_MIN && nodeId <= OPERATIONAL_NODE_MAX;
57
57
  };
58
- NodeId2.isGroupNodeId = (nodeId) => {
59
- const nodeIdHex = nodeId.toString(16);
60
- return nodeIdHex.startsWith("ffffffffffff") && nodeIdHex.length === 16;
61
- };
62
58
  NodeId2.fromGroupId = (groupId) => {
63
59
  return NodeId2(BigInt("0xFFFFFFFFFFFF" + (0, import_GroupId.GroupId)(groupId).toString(16).padStart(4, "0")));
64
60
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/datatype/NodeId.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAwB;AACxB,qBAAwE;AACxE,uBAA0B;AAC1B,wBAA2B;AAC3B,kCAAqC;AAVrC;AAAA;AAAA;AAAA;AAAA;AAoBO,SAAS,OAAO,GAAyC;AAC5D,SAAO,OAAO,CAAC;AACnB;AAAA,CAEO,CAAUA,YAAV;AACH,QAAM,uBAAuB,OAAO,oBAAoB;AACxD,QAAM,uBAAuB,OAAO,oBAAoB;AAMjD,EAAMA,QAAA,sBAAsBA,QAAO,CAAC;AAEpC,EAAMA,QAAA,cAAc,CAAC,WAAmB;AAC3C,UAAM,SAAS,IAAI,0BAAW;AAC9B,WAAO,YAAY,MAAM;AACzB,WAAO,qBAAM,MAAM,OAAO,YAAY,CAAC,EAAE,YAAY;AAAA,EACzD;AAOO,EAAMA,QAAA,0BAA0B,CAAC,WAA2B;AAC/D,WAAO,MAAM;AACT,YAAM,eAAe,OAAO,aAAa,CAAC;AAC1C,UAAI,gBAAgB,wBAAwB,gBAAgB,sBAAsB;AAC9E,eAAOA,QAAO,YAAY;AAAA,MAC9B;AAAA,IACJ;AAAA,EACJ;AAKO,EAAMA,QAAA,sBAAsB,CAAC,WAA4B;AAC5D,WAAO,UAAU,wBAAwB,UAAU;AAAA,EACvD;AAGO,EAAMA,QAAA,gBAAgB,CAAC,WAA4B;AACtD,UAAM,YAAY,OAAO,SAAS,EAAE;AACpC,WAAO,UAAU,WAAW,cAAc,KAAK,UAAU,WAAW;AAAA,EACxE;AAGO,EAAMA,QAAA,cAAc,CAAC,YAA4B;AACpD,WAAOA,QAAO,OAAO,uBAAmB,wBAAQ,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EAC3F;AAOO,EAAMA,QAAA,2BAA2B,CAAC,OAAuB;AAC5D,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,eAAe,EAAE,EAAE;AAAA,IACrD;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAMO,EAAMA,QAAA,2BAA2B,CAAC,OAAqC;AAC1E,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,mCAAmC,EAAE,EAAE;AAAA,IACzE;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAEO,EAAMA,QAAA,yBAAyB,CAAC,WAA4B;AAC/D,UAAM,YAAY,OAAO,SAAS,EAAE;AACpC,WAAO,UAAU,WAAW,UAAU,KAAK,UAAU,WAAW;AAAA,EACpE;AAEO,EAAMA,QAAA,gCAAgC,CAAC,WAAyC;AACnF,QAAI,KAACA,QAAA,wBAAuB,MAAM,GAAG;AACjC,YAAM,IAAI,mCAAoB,mCAAmC,MAAM,EAAE;AAAA,IAC7E;AACA,eAAO,kDAAqB,SAAS,OAAO,SAAS,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAAA,EAC1E;AAOO,EAAMA,QAAA,2BAA2B,CAAC,OAAuB;AAC5D,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,eAAe,EAAE,EAAE;AAAA,IACrD;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAAA,GA7Fa;AAiGV,MAAM,YAAY,IAAI;AAAA,EACzB;AAAA,EACA,YAAU;AAAA,EACV,WAAS,OAAO,OAAO,KAAK,CAAC;AACjC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAwB;AACxB,qBAAwE;AACxE,uBAA0B;AAC1B,wBAA2B;AAC3B,kCAAqC;AAVrC;AAAA;AAAA;AAAA;AAAA;AAoBO,SAAS,OAAO,GAAyC;AAC5D,SAAO,OAAO,CAAC;AACnB;AAAA,CAEO,CAAUA,YAAV;AACH,QAAM,uBAAuB,OAAO,oBAAoB;AACxD,QAAM,uBAAuB,OAAO,oBAAoB;AAMjD,EAAMA,QAAA,sBAAsBA,QAAO,CAAC;AAEpC,EAAMA,QAAA,cAAc,CAAC,WAAmB;AAC3C,UAAM,SAAS,IAAI,0BAAW;AAC9B,WAAO,YAAY,MAAM;AACzB,WAAO,qBAAM,MAAM,OAAO,YAAY,CAAC,EAAE,YAAY;AAAA,EACzD;AAOO,EAAMA,QAAA,0BAA0B,CAAC,WAA2B;AAC/D,WAAO,MAAM;AACT,YAAM,eAAe,OAAO,aAAa,CAAC;AAC1C,UAAI,gBAAgB,wBAAwB,gBAAgB,sBAAsB;AAC9E,eAAOA,QAAO,YAAY;AAAA,MAC9B;AAAA,IACJ;AAAA,EACJ;AAKO,EAAMA,QAAA,sBAAsB,CAAC,WAA4B;AAC5D,WAAO,UAAU,wBAAwB,UAAU;AAAA,EACvD;AAGO,EAAMA,QAAA,cAAc,CAAC,YAA4B;AACpD,WAAOA,QAAO,OAAO,uBAAmB,wBAAQ,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EAC3F;AAOO,EAAMA,QAAA,2BAA2B,CAAC,OAAuB;AAC5D,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,eAAe,EAAE,EAAE;AAAA,IACrD;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAMO,EAAMA,QAAA,2BAA2B,CAAC,OAAqC;AAC1E,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,mCAAmC,EAAE,EAAE;AAAA,IACzE;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAEO,EAAMA,QAAA,yBAAyB,CAAC,WAA4B;AAC/D,UAAM,YAAY,OAAO,SAAS,EAAE;AACpC,WAAO,UAAU,WAAW,UAAU,KAAK,UAAU,WAAW;AAAA,EACpE;AAEO,EAAMA,QAAA,gCAAgC,CAAC,WAAyC;AACnF,QAAI,KAACA,QAAA,wBAAuB,MAAM,GAAG;AACjC,YAAM,IAAI,mCAAoB,mCAAmC,MAAM,EAAE;AAAA,IAC7E;AACA,eAAO,kDAAqB,SAAS,OAAO,SAAS,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAAA,EAC1E;AAOO,EAAMA,QAAA,2BAA2B,CAAC,OAAuB;AAC5D,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,eAAe,EAAE,EAAE;AAAA,IACrD;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAAA,GAvFa;AA2FV,MAAM,YAAY,IAAI;AAAA,EACzB;AAAA,EACA,YAAU;AAAA,EACV,WAAS,OAAO,OAAO,KAAK,CAAC;AACjC;",
5
5
  "names": ["NodeId"]
6
6
  }
@@ -62,4 +62,7 @@ export declare enum SecureChannelStatusCode {
62
62
  */
63
63
  GeneralError = 65535
64
64
  }
65
+ export declare namespace SecureMessageType {
66
+ function isStandaloneAck(protocolId: number, messageType: number): boolean;
67
+ }
65
68
  //# sourceMappingURL=secure-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"secure-channel.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/secure-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAS,CAAC;AAEjD,oBAAY,iBAAiB;IACzB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,aAAa,KAAO;IAEpB,gFAAgF;IAChF,iBAAiB,KAAO;IAExB,2FAA2F;IAC3F,kBAAkB,KAAO;IAEzB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,oDAAoD;IACpD,SAAS,KAAO;IAEhB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,8CAA8C;IAC9C,MAAM,KAAO;IAEb,+CAA+C;IAC/C,MAAM,KAAO;IAEb,8CAA8C;IAC9C,MAAM,KAAO;IAEb,0DAA0D;IAC1D,YAAY,KAAO;IAEnB,qHAAqH;IACrH,YAAY,KAAO;IAEnB,0FAA0F;IAC1F,iBAAiB,KAAO;CAC3B;AAED,oBAAY,uBAAuB;IAC/B,yFAAyF;IACzF,OAAO,IAAS;IAEhB,oDAAoD;IACpD,kBAAkB,IAAS;IAE3B,oDAAoD;IACpD,YAAY,IAAS;IAErB,8GAA8G;IAC9G,YAAY,IAAS;IAErB,4GAA4G;IAC5G,IAAI,IAAS;IAEb;;OAEG;IACH,YAAY,QAAS;CACxB"}
1
+ {"version":3,"file":"secure-channel.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/secure-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAS,CAAC;AAEjD,oBAAY,iBAAiB;IACzB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,aAAa,KAAO;IAEpB,gFAAgF;IAChF,iBAAiB,KAAO;IAExB,2FAA2F;IAC3F,kBAAkB,KAAO;IAEzB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,oDAAoD;IACpD,SAAS,KAAO;IAEhB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,8CAA8C;IAC9C,MAAM,KAAO;IAEb,+CAA+C;IAC/C,MAAM,KAAO;IAEb,8CAA8C;IAC9C,MAAM,KAAO;IAEb,0DAA0D;IAC1D,YAAY,KAAO;IAEnB,qHAAqH;IACrH,YAAY,KAAO;IAEnB,0FAA0F;IAC1F,iBAAiB,KAAO;CAC3B;AAED,oBAAY,uBAAuB;IAC/B,yFAAyF;IACzF,OAAO,IAAS;IAEhB,oDAAoD;IACpD,kBAAkB,IAAS;IAE3B,oDAAoD;IACpD,YAAY,IAAS;IAErB,8GAA8G;IAC9G,YAAY,IAAS;IAErB,4GAA4G;IAC5G,IAAI,IAAS;IAEb;;OAEG;IACH,YAAY,QAAS;CACxB;AAED,yBAAiB,iBAAiB,CAAC;IAC/B,SAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAEtE;CACJ"}
@@ -55,4 +55,10 @@ var SecureChannelStatusCode = /* @__PURE__ */ ((SecureChannelStatusCode2) => {
55
55
  SecureChannelStatusCode2[SecureChannelStatusCode2["GeneralError"] = 65535] = "GeneralError";
56
56
  return SecureChannelStatusCode2;
57
57
  })(SecureChannelStatusCode || {});
58
+ ((SecureMessageType2) => {
59
+ function isStandaloneAck(protocolId, messageType) {
60
+ return protocolId === SECURE_CHANNEL_PROTOCOL_ID && messageType === 16 /* StandaloneAck */;
61
+ }
62
+ SecureMessageType2.isStandaloneAck = isStandaloneAck;
63
+ })(SecureMessageType || (SecureMessageType = {}));
58
64
  //# sourceMappingURL=secure-channel.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/protocol/definitions/secure-channel.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,6BAA6B;AAEnC,IAAK,oBAAL,kBAAKA,uBAAL;AAKH,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAGA,EAAAA,sCAAA,wBAAqB,MAArB;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAlDQ,SAAAA;AAAA,GAAA;AAqDL,IAAK,0BAAL,kBAAKC,6BAAL;AAEH,EAAAA,kDAAA,aAAU,KAAV;AAGA,EAAAA,kDAAA,wBAAqB,KAArB;AAGA,EAAAA,kDAAA,kBAAe,KAAf;AAGA,EAAAA,kDAAA,kBAAe,KAAf;AAGA,EAAAA,kDAAA,UAAO,KAAP;AAKA,EAAAA,kDAAA,kBAAe,SAAf;AAnBQ,SAAAA;AAAA,GAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,6BAA6B;AAEnC,IAAK,oBAAL,kBAAKA,uBAAL;AAKH,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAGA,EAAAA,sCAAA,wBAAqB,MAArB;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAlDQ,SAAAA;AAAA,GAAA;AAqDL,IAAK,0BAAL,kBAAKC,6BAAL;AAEH,EAAAA,kDAAA,aAAU,KAAV;AAGA,EAAAA,kDAAA,wBAAqB,KAArB;AAGA,EAAAA,kDAAA,kBAAe,KAAf;AAGA,EAAAA,kDAAA,kBAAe,KAAf;AAGA,EAAAA,kDAAA,UAAO,KAAP;AAKA,EAAAA,kDAAA,kBAAe,SAAf;AAnBQ,SAAAA;AAAA,GAAA;AAAA,CAsBL,CAAUD,uBAAV;AACI,WAAS,gBAAgB,YAAoB,aAAqB;AACrE,WAAO,eAAe,8BAA8B,gBAAgB;AAAA,EACxE;AAFO,EAAAA,mBAAS;AAAA,GADH;",
5
5
  "names": ["SecureMessageType", "SecureChannelStatusCode"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TlvSubscribeResponse.d.ts","sourceRoot":"","sources":["../../../../src/protocol/messages/TlvSubscribeResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,gEAAgE;AAEhE,eAAO,MAAM,oBAAoB;IAC7B,mCAAmC;;IAGnC,kEAAkE;;;EAGpE,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"TlvSubscribeResponse.d.ts","sourceRoot":"","sources":["../../../../src/protocol/messages/TlvSubscribeResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,gEAAgE;AAEhE,eAAO,MAAM,oBAAoB;IAC7B,mCAAmC;;IAGnC,kEAAkE;;;EAIpE,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/protocol/messages/TlvSubscribeResponse.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,uBAA+C;AAC/C,uBAAoC;AARpC;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,2BAAuB,4BAAU;AAAA;AAAA,EAE1C,oBAAgB,2BAAS,GAAG,0BAAS;AAAA;AAAA,EAGrC,iBAAa,2BAAS,GAAG,0BAAS;AAAA,EAClC,8BAA0B,2BAAS,KAAM,yBAAQ;AACrD,CAAC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,uBAA+C;AAC/C,uBAAoC;AARpC;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,2BAAuB,4BAAU;AAAA;AAAA,EAE1C,oBAAgB,2BAAS,GAAG,0BAAS;AAAA;AAAA,EAGrC,iBAAa,2BAAS,GAAG,0BAAS;AAAA,EAElC,8BAA0B,2BAAS,KAAM,yBAAQ;AACrD,CAAC;",
5
5
  "names": []
6
6
  }
@@ -5,8 +5,7 @@
5
5
  */
6
6
  import { ClusterType } from "./ClusterType.js";
7
7
  /**
8
- * The formal definitions of clusters in Matter.js are generated
9
- * programmatically.
8
+ * The formal definitions of clusters in Matter.js are generated programmatically.
10
9
  *
11
10
  * This singleton acts as a registry for generated {@link ClusterType}s.
12
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterRegistry.d.ts","sourceRoot":"","sources":["../../../src/cluster/ClusterRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;;GAKG;AACH,yBAAiB,eAAe,CAAC;IAC7B;;OAEG;IACH,SAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvD;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,QAU5C;CACJ"}
1
+ {"version":3,"file":"ClusterRegistry.d.ts","sourceRoot":"","sources":["../../../src/cluster/ClusterRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;GAIG;AACH,yBAAiB,eAAe,CAAC;IAC7B;;OAEG;IACH,SAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvD;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,QAU5C;CACJ"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cluster/ClusterRegistry.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,MAAM,aAAa,CAAC;AAQb,IAAU;AAAA,CAAV,CAAUA,qBAAV;AAII,WAAS,IAAI,IAAqC;AACrD,WAAO,WAAW,EAAE;AAAA,EACxB;AAFO,EAAAA,iBAAS;AAOT,WAAS,SAAS,SAAsB;AAC3C,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AAEA,QAAI,QAAQ,OAAO,QAAW;AAC1B;AAAA,IACJ;AAEA,eAAW,QAAQ,EAAE,IAAI;AAAA,EAC7B;AAVO,EAAAA,iBAAS;AAAA,GAXH;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,MAAM,aAAa,CAAC;AAOb,IAAU;AAAA,CAAV,CAAUA,qBAAV;AAII,WAAS,IAAI,IAAqC;AACrD,WAAO,WAAW,EAAE;AAAA,EACxB;AAFO,EAAAA,iBAAS;AAOT,WAAS,SAAS,SAAsB;AAC3C,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AAEA,QAAI,QAAQ,OAAO,QAAW;AAC1B;AAAA,IACJ;AAEA,eAAW,QAAQ,EAAE,IAAI;AAAA,EAC7B;AAVO,EAAAA,iBAAS;AAAA,GAXH;",
5
5
  "names": ["ClusterRegistry"]
6
6
  }
@@ -11,8 +11,9 @@ export declare class IllegalClusterError extends MatterError {
11
11
  * A "cluster composer" manages cluster configuration based on feature selection.
12
12
  */
13
13
  export declare class ClusterComposer<const T extends ClusterType> {
14
+ #private;
14
15
  cluster: T;
15
- constructor(cluster: T);
16
+ constructor(cluster: T, allowInvalidFeatures?: boolean);
16
17
  /**
17
18
  * Build a cluster using selected feature flags.
18
19
  *
@@ -20,16 +21,6 @@ export declare class ClusterComposer<const T extends ClusterType> {
20
21
  * @throws {IllegalClusterError} if the feature combination is disallowed by the Matter specification
21
22
  */
22
23
  compose<const SelectionT extends ClusterComposer.FeatureSelection<T>>(selection: SelectionT): ClusterComposer.Of<T, SelectionT>;
23
- /**
24
- * Validates a set of feature flags against the features supported by a cluster.
25
- */
26
- private validateFeatureSelection;
27
- /**
28
- * Injects a component into a cluster if the cluster supports the specified features. Uses matching element from
29
- * "original" if present. This allows for component insertion without overwrite of other changes to the named
30
- * element.
31
- */
32
- private accept;
33
24
  static injectElements(definition: Partial<ClusterType.Options>, component: Partial<ClusterType.Options>, original?: Partial<ClusterType>): void;
34
25
  /**
35
26
  * Throws an error if a feature combination is illegal per the Matter specification.
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterComposer.d.ts","sourceRoot":"","sources":["../../../../src/cluster/mutation/ClusterComposer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClusterComposer.d.ts","sourceRoot":"","sources":["../../../../src/cluster/mutation/ClusterComposer.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,11 @@ class IllegalClusterError extends MatterError {
11
11
  }
12
12
  const featureSelectionCache = /* @__PURE__ */ new WeakMap();
13
13
  class ClusterComposer {
14
- constructor(cluster) {
14
+ constructor(cluster, allowInvalidFeatures = false) {
15
15
  this.cluster = cluster;
16
+ this.#allowInvalidFeatureCombinations = allowInvalidFeatures;
16
17
  }
18
+ #allowInvalidFeatureCombinations;
17
19
  /**
18
20
  * Build a cluster using selected feature flags.
19
21
  *
@@ -21,7 +23,7 @@ class ClusterComposer {
21
23
  * @throws {IllegalClusterError} if the feature combination is disallowed by the Matter specification
22
24
  */
23
25
  compose(selection) {
24
- this.validateFeatureSelection(selection);
26
+ this.#validateFeatureSelection(selection);
25
27
  const extensions = this.cluster.extensions;
26
28
  let cluster;
27
29
  const cacheKey = [...selection].sort().join("\u241C");
@@ -55,7 +57,7 @@ class ClusterComposer {
55
57
  });
56
58
  for (const selector of extensions) {
57
59
  if (selector.component) {
58
- this.accept(cluster, selector.component, this.cluster, selector.flags);
60
+ this.#accept(cluster, selector.component, this.cluster, selector.flags);
59
61
  } else {
60
62
  this.reject(cluster, selector.flags);
61
63
  }
@@ -79,7 +81,7 @@ class ClusterComposer {
79
81
  /**
80
82
  * Validates a set of feature flags against the features supported by a cluster.
81
83
  */
82
- validateFeatureSelection(features) {
84
+ #validateFeatureSelection(features) {
83
85
  for (const f of features) {
84
86
  if (!this.cluster.features[camelize(f)]) {
85
87
  throw new IllegalClusterError(`"${f}" is not a valid feature identifier`);
@@ -91,7 +93,7 @@ class ClusterComposer {
91
93
  * "original" if present. This allows for component insertion without overwrite of other changes to the named
92
94
  * element.
93
95
  */
94
- accept(definition, component, original, flags) {
96
+ #accept(definition, component, original, flags) {
95
97
  for (const k in flags) {
96
98
  if (!!definition.supportedFeatures[k] !== !!flags[k]) {
97
99
  return;
@@ -129,6 +131,9 @@ class ClusterComposer {
129
131
  * Throws an error if a feature combination is illegal per the Matter specification.
130
132
  */
131
133
  reject(definition, flags) {
134
+ if (this.#allowInvalidFeatureCombinations) {
135
+ return;
136
+ }
132
137
  for (const k in flags) {
133
138
  if (!!definition.supportedFeatures[k] !== !!flags[k]) {
134
139
  return;