@matter/model 0.11.5-alpha.0-20241112-858f60251 → 0.11.5-alpha.0-20241114-6af665cdd

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 (91) hide show
  1. package/dist/cjs/aspects/Access.d.ts.map +1 -1
  2. package/dist/cjs/aspects/Access.js +1 -0
  3. package/dist/cjs/aspects/Access.js.map +1 -1
  4. package/dist/cjs/aspects/Aspect.d.ts +2 -2
  5. package/dist/cjs/aspects/Aspect.d.ts.map +1 -1
  6. package/dist/cjs/aspects/Aspect.js.map +1 -1
  7. package/dist/cjs/aspects/Conformance.d.ts +6 -3
  8. package/dist/cjs/aspects/Conformance.d.ts.map +1 -1
  9. package/dist/cjs/aspects/Conformance.js +9 -8
  10. package/dist/cjs/aspects/Conformance.js.map +1 -1
  11. package/dist/cjs/aspects/Constraint.d.ts +1 -1
  12. package/dist/cjs/aspects/Constraint.d.ts.map +1 -1
  13. package/dist/cjs/aspects/Constraint.js +1 -0
  14. package/dist/cjs/aspects/Constraint.js.map +1 -1
  15. package/dist/cjs/aspects/Quality.d.ts.map +1 -1
  16. package/dist/cjs/aspects/Quality.js +1 -0
  17. package/dist/cjs/aspects/Quality.js.map +1 -1
  18. package/dist/cjs/logic/ModelTraversal.d.ts.map +1 -1
  19. package/dist/cjs/logic/ModelTraversal.js +25 -15
  20. package/dist/cjs/logic/ModelTraversal.js.map +1 -1
  21. package/dist/cjs/logic/definition-validation/ValueValidator.js +2 -2
  22. package/dist/cjs/logic/definition-validation/ValueValidator.js.map +1 -1
  23. package/dist/cjs/models/Aspects.d.ts +3 -2
  24. package/dist/cjs/models/Aspects.d.ts.map +1 -1
  25. package/dist/cjs/models/Aspects.js +18 -2
  26. package/dist/cjs/models/Aspects.js.map +1 -1
  27. package/dist/cjs/models/ClusterModel.d.ts +0 -1
  28. package/dist/cjs/models/ClusterModel.d.ts.map +1 -1
  29. package/dist/cjs/models/ClusterModel.js +0 -4
  30. package/dist/cjs/models/ClusterModel.js.map +1 -1
  31. package/dist/cjs/models/Model.d.ts +11 -6
  32. package/dist/cjs/models/Model.d.ts.map +1 -1
  33. package/dist/cjs/models/Model.js +23 -4
  34. package/dist/cjs/models/Model.js.map +1 -1
  35. package/dist/cjs/models/ValueModel.d.ts +0 -1
  36. package/dist/cjs/models/ValueModel.d.ts.map +1 -1
  37. package/dist/cjs/models/ValueModel.js +0 -7
  38. package/dist/cjs/models/ValueModel.js.map +1 -1
  39. package/dist/cjs/standard/elements/LevelControl.js +2 -2
  40. package/dist/esm/aspects/Access.d.ts.map +1 -1
  41. package/dist/esm/aspects/Access.js +1 -0
  42. package/dist/esm/aspects/Access.js.map +1 -1
  43. package/dist/esm/aspects/Aspect.d.ts +2 -2
  44. package/dist/esm/aspects/Aspect.d.ts.map +1 -1
  45. package/dist/esm/aspects/Aspect.js.map +1 -1
  46. package/dist/esm/aspects/Conformance.d.ts +6 -3
  47. package/dist/esm/aspects/Conformance.d.ts.map +1 -1
  48. package/dist/esm/aspects/Conformance.js +9 -8
  49. package/dist/esm/aspects/Conformance.js.map +1 -1
  50. package/dist/esm/aspects/Constraint.d.ts +1 -1
  51. package/dist/esm/aspects/Constraint.d.ts.map +1 -1
  52. package/dist/esm/aspects/Constraint.js +1 -0
  53. package/dist/esm/aspects/Constraint.js.map +1 -1
  54. package/dist/esm/aspects/Quality.d.ts.map +1 -1
  55. package/dist/esm/aspects/Quality.js +1 -0
  56. package/dist/esm/aspects/Quality.js.map +1 -1
  57. package/dist/esm/logic/ModelTraversal.d.ts.map +1 -1
  58. package/dist/esm/logic/ModelTraversal.js +25 -15
  59. package/dist/esm/logic/ModelTraversal.js.map +1 -1
  60. package/dist/esm/logic/definition-validation/ValueValidator.js +2 -2
  61. package/dist/esm/logic/definition-validation/ValueValidator.js.map +1 -1
  62. package/dist/esm/models/Aspects.d.ts +3 -2
  63. package/dist/esm/models/Aspects.d.ts.map +1 -1
  64. package/dist/esm/models/Aspects.js +18 -2
  65. package/dist/esm/models/Aspects.js.map +1 -1
  66. package/dist/esm/models/ClusterModel.d.ts +0 -1
  67. package/dist/esm/models/ClusterModel.d.ts.map +1 -1
  68. package/dist/esm/models/ClusterModel.js +0 -4
  69. package/dist/esm/models/ClusterModel.js.map +1 -1
  70. package/dist/esm/models/Model.d.ts +11 -6
  71. package/dist/esm/models/Model.d.ts.map +1 -1
  72. package/dist/esm/models/Model.js +23 -4
  73. package/dist/esm/models/Model.js.map +1 -1
  74. package/dist/esm/models/ValueModel.d.ts +0 -1
  75. package/dist/esm/models/ValueModel.d.ts.map +1 -1
  76. package/dist/esm/models/ValueModel.js +0 -7
  77. package/dist/esm/models/ValueModel.js.map +1 -1
  78. package/dist/esm/standard/elements/LevelControl.js +2 -2
  79. package/package.json +4 -4
  80. package/src/aspects/Access.ts +2 -0
  81. package/src/aspects/Aspect.ts +2 -2
  82. package/src/aspects/Conformance.ts +16 -9
  83. package/src/aspects/Constraint.ts +3 -1
  84. package/src/aspects/Quality.ts +2 -0
  85. package/src/logic/ModelTraversal.ts +30 -15
  86. package/src/logic/definition-validation/ValueValidator.ts +4 -4
  87. package/src/models/Aspects.ts +29 -4
  88. package/src/models/ClusterModel.ts +0 -5
  89. package/src/models/Model.ts +28 -7
  90. package/src/models/ValueModel.ts +0 -8
  91. package/src/standard/elements/LevelControl.ts +2 -2
@@ -33,13 +33,18 @@ export declare abstract class Model<T extends BaseElement = BaseElement> {
33
33
  */
34
34
  isType?: boolean;
35
35
  /**
36
- * Normally {@link base} performs lookup based on {@link type}. If instead a model is installed it is used as the
37
- * base.
36
+ * Normally {@link base} performs lookup based on {@link type}. Setting this field short circuits this resolution.
38
37
  *
39
38
  * The operational base also enables resolution from the operational base's tree. This enables resolution on
40
39
  * operational models that are not installed in a parent hierarchy.
40
+ *
41
+ * We set the operational base when freezing the model.
42
+ */
43
+ operationalBase?: Model | null;
44
+ /**
45
+ * This is like {@link operationalBase} except for the element's shadow.
41
46
  */
42
- operationalBase?: Model;
47
+ operationalShadow?: Model | null;
43
48
  /**
44
49
  * Did validation find errors?
45
50
  */
@@ -95,11 +100,11 @@ export declare abstract class Model<T extends BaseElement = BaseElement> {
95
100
  /**
96
101
  * Get a model for my base type as defined by {@link type}, if any.
97
102
  */
98
- get base(): Model<BaseElement> | undefined;
103
+ get base(): Model | undefined;
99
104
  /**
100
105
  * Get shadow model, if any. A "shadow" is an element in my parent's inheritance hierarchy that I override.
101
106
  */
102
- get shadow(): Model<BaseElement> | undefined;
107
+ get shadow(): Model | undefined;
103
108
  /**
104
109
  * Get the first global base type. This may have semantic meaning more specific than the base primitive type.
105
110
  */
@@ -177,7 +182,7 @@ export declare abstract class Model<T extends BaseElement = BaseElement> {
177
182
  * Freeze the model hierarchy rooted at this model.
178
183
  *
179
184
  * When using a model as operational schema we implement various optimizations that assume the schema is immutable.
180
- * This function enforces that assumption.
185
+ * This function enforces that assumption and caches a few values that only make sense with frozen schema.
181
186
  *
182
187
  * To make changes to a frozen model use {@link clone}.
183
188
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/models/Model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/models/Model.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ class Model {
19
19
  until;
20
20
  #id = void 0;
21
21
  #name;
22
+ #frozen;
22
23
  /**
23
24
  * Indicates that an element may have type definitions as children.
24
25
  */
@@ -28,13 +29,18 @@ class Model {
28
29
  */
29
30
  isType;
30
31
  /**
31
- * Normally {@link base} performs lookup based on {@link type}. If instead a model is installed it is used as the
32
- * base.
32
+ * Normally {@link base} performs lookup based on {@link type}. Setting this field short circuits this resolution.
33
33
  *
34
34
  * The operational base also enables resolution from the operational base's tree. This enables resolution on
35
35
  * operational models that are not installed in a parent hierarchy.
36
+ *
37
+ * We set the operational base when freezing the model.
36
38
  */
37
39
  operationalBase;
40
+ /**
41
+ * This is like {@link operationalBase} except for the element's shadow.
42
+ */
43
+ operationalShadow;
38
44
  #children;
39
45
  #parent;
40
46
  /**
@@ -181,12 +187,18 @@ class Model {
181
187
  * Get a model for my base type as defined by {@link type}, if any.
182
188
  */
183
189
  get base() {
190
+ if (this.operationalBase !== void 0) {
191
+ return this.operationalBase ?? void 0;
192
+ }
184
193
  return new ModelTraversal().findBase(this);
185
194
  }
186
195
  /**
187
196
  * Get shadow model, if any. A "shadow" is an element in my parent's inheritance hierarchy that I override.
188
197
  */
189
198
  get shadow() {
199
+ if (this.operationalShadow !== void 0) {
200
+ return this.operationalShadow ?? void 0;
201
+ }
190
202
  return new ModelTraversal().findShadow(this);
191
203
  }
192
204
  /**
@@ -366,14 +378,21 @@ class Model {
366
378
  * Freeze the model hierarchy rooted at this model.
367
379
  *
368
380
  * When using a model as operational schema we implement various optimizations that assume the schema is immutable.
369
- * This function enforces that assumption.
381
+ * This function enforces that assumption and caches a few values that only make sense with frozen schema.
370
382
  *
371
383
  * To make changes to a frozen model use {@link clone}.
372
384
  */
373
385
  freeze() {
386
+ if (this.#frozen) {
387
+ return;
388
+ }
389
+ const base = this.operationalBase ?? (this.operationalBase = this.base ?? null);
390
+ const shadow = this.operationalShadow ?? (this.operationalShadow = this.shadow ?? null);
391
+ this.#frozen = true;
374
392
  Object.freeze(this);
375
393
  this.children.freeze();
376
- this.base?.freeze();
394
+ base?.freeze();
395
+ shadow?.freeze();
377
396
  }
378
397
  toString() {
379
398
  return `${this.tag}${this.type ? `<${this.type}>` : ""}#${this.path}`;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/Model.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["inspect", "Model"]
6
6
  }
@@ -118,7 +118,6 @@ export declare abstract class ValueModel<T extends ValueElement = ValueElement>
118
118
  */
119
119
  bitDefinition(bit: number): FieldModel<import("../elements/FieldElement.js").FieldElement> | undefined;
120
120
  valueOf(): T;
121
- freeze(): void;
122
121
  constructor(definition: BaseElement.Properties<T>);
123
122
  }
124
123
  //# sourceMappingURL=ValueModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValueModel.d.ts","sourceRoot":"","sources":["../../../src/models/ValueModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValueModel.d.ts","sourceRoot":"","sources":["../../../src/models/ValueModel.ts"],"names":[],"mappings":"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"}
@@ -250,13 +250,6 @@ class ValueModel extends Model {
250
250
  }
251
251
  return result;
252
252
  }
253
- freeze() {
254
- this.constraint.freeze();
255
- this.conformance.freeze();
256
- this.access.freeze();
257
- this.quality.freeze();
258
- super.freeze();
259
- }
260
253
  constructor(definition) {
261
254
  super(definition);
262
255
  const match = this.type?.match(/^list\[(.*)\]$/);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/ValueModel.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,QAAgB,aAAa,YAAY,eAAe;AACjE,SAAS,YAAwB,gBAAgB;AAEjD,SAAS,sBAAsB;AAC/B,SAAS,eAAe;AACxB,SAAS,aAAa;AAKtB,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAK7B,MAAM,aAA4B,OAAO,YAAY;AACrD,MAAM,cAA6B,OAAO,aAAa;AACvD,MAAM,SAAwB,OAAO,QAAQ;AAC7C,MAAM,UAAyB,OAAO,SAAS;AAKxC,MAAe,mBAA0D,MAAiC;AAAA,EAIpG,SAAU;AAAA,EAEnB,IAAa,WAAiC;AAC1C,WAAO,MAAM;AAAA,EACjB;AAAA,EAEA,IAAa,SAAS,UAA8C;AAChE,UAAM,WAAW;AAAA,EACrB;AAAA,EAEA,IAAI,aAAyB;AACzB,WAAO,QAAQ,UAAU,MAAM,YAAY,UAAU;AAAA,EACzD;AAAA,EACA,IAAI,WAAW,YAAgD;AAC3D,YAAQ,UAAU,MAAM,YAAY,YAAY,UAAU;AAAA,EAC9D;AAAA,EACA,IAAI,sBAAkC;AAClC,WAAO,IAAI,eAAe,EAAE,eAAe,MAAM,UAAU,KAAK,KAAK;AAAA,EACzE;AAAA,EAEA,IAAI,cAA2B;AAC3B,WAAO,QAAQ,UAAU,MAAM,aAAa,WAAW;AAAA,EAC3D;AAAA,EACA,IAAI,YAAY,YAAkD;AAC9D,YAAQ,UAAU,MAAM,aAAa,aAAa,UAAU;AAAA,EAChE;AAAA,EACA,IAAI,uBAAoC;AACpC,WAAO,QAAQ,mBAAmB,MAAM,aAAa,WAAW;AAAA,EACpE;AAAA,EAEA,IAAI,SAAiB;AACjB,WAAO,QAAQ,UAAU,MAAM,QAAQ,MAAM;AAAA,EACjD;AAAA,EACA,IAAI,OAAO,YAAwC;AAC/C,YAAQ,UAAU,MAAM,QAAQ,QAAQ,UAAU;AAAA,EACtD;AAAA,EACA,IAAI,kBAA0B;AAC1B,WAAO,IAAI,eAAe,EAAE,WAAW,MAAM,QAAQ,UAAU;AAAA,EACnE;AAAA,EAEA,IAAI,UAAmB;AACnB,WAAO,QAAQ,UAAU,MAAM,SAAS,OAAO;AAAA,EACnD;AAAA,EACA,IAAI,QAAQ,YAA0C;AAClD,YAAQ,UAAU,MAAM,SAAS,SAAS,UAAU;AAAA,EACxD;AAAA,EACA,IAAI,mBAA4B;AAC5B,WAAO,QAAQ,mBAAmB,MAAM,SAAS,OAAO;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,WAAmC;AACnC,WAAO,IAAI,eAAe,EAAE,aAAa,IAAI;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,gBAAwC;AACxC,UAAM,WAAW,KAAK;AACtB,QAAI,CAAC,UAAU;AACX;AAAA,IACJ;AAGA,QAAI,SAAS,aAAa,SAAS,MAAM;AACrC,aAAO,SAAS;AAAA,IACpB;AAGA,QAAI,SAAS,aAAa,SAAS,QAAQ;AACvC,YAAM,gBAAgB,SAAS,KAAK,QAAQ,OAAO,MAAM;AACzD,aAAO,SAAS,QAAQ,SAAS,KAAK,OAAK,EAAE,SAAS,aAAa;AAAA,IACvE;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAa,gBAAoC;AAC7C,UAAM,OAAO,MAAM;AACnB,QAAI,MAAM;AACN,aAAO;AAAA,IACX;AACA,WAAO,IAAI,eAAe,EAAE,YAAY,IAAI;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,oBAAoB;AACpB,UAAM,WAAW,KAAK;AACtB,QAAI,UAAU;AACV,aAAO,SAAS;AAAA,IACpB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,mBAAmB;AACnB,WAAO,aAAa,IAAI;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAgB;AAChB,WAAO,IAAI,eAAe,EAAE,kBAAkB,IAAI;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAY;AACZ,WAAO,KAAK,OAAO,SAAS,CAAC,WAAW,KAAK,CAAC;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA,EAKA,IAAa,OAAO;AAChB,WAAO,MAAM;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAa,kBAAkB;AAC3B,QAAI,KAAK,QAAQ,WAAW,OAAO;AAE/B,aAAO,CAAC,WAAW,OAAO,WAAW,UAAU,WAAW,SAAS;AAAA,IACvE;AACA,WAAO,CAAC,KAAK,KAAK,WAAW,QAAQ;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA2B;AAC3B,WAAO,IAAI,eAAe,EAAE,aAAa,MAAM,CAAC,WAAW,KAAK,CAAC;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAgB;AAChB,UAAM,UAAU,KAAK,MAAM,MAAM,MAAM,WAAW,OAAO,CAAC;AAC1D,WAAO,IAAI,eAAe,EAAE,kBAAkB,MAAM,OAAO,OAAO;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,oBAAoB;AACpB,UAAM,UAAU,KAAK,MAAM,MAAM,MAAM,WAAW,OAAO,CAAC;AAC1D,WAAO,IAAI,eAAe,EAAE,kBAAkB,MAAM,MAAM,OAAO;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACT,UAAM,UAAU,KAAK;AACrB,WAAO,OAAO,YAAY,QAAQ,IAAI,YAAU,CAAC,SAAS,OAAO,IAAI,GAAG,MAAM,CAAC,CAAC;AAAA,EACpF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,oBAAoB;AACpB,UAAM,UAAU,MAAmB;AAEnC,QAAI,eAAe,EAAE,iBAAiB,MAAM,WAAS;AACjD,UAAI,iBAAiB,YAAY;AAC7B,YAAI,CAAC,MAAM,YAAY,SAAS,MAAM,YAAY,SAAS,YAAY,QAAQ,MAAM;AACjF,kBAAQ,KAAK,MAAM,WAAW;AAAA,QAClC;AACA,YAAI,CAAC,MAAM,WAAW,SAAS,CAAC,MAAM,WAAW,MAAM;AACnD,kBAAQ,KAAK,MAAM,UAAU;AAAA,QACjC;AACA,YAAI,MAAM,QAAQ,aAAa,OAAO;AAClC,kBAAQ,KAAK,MAAM,OAAO;AAAA,QAC9B;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK,qBAAqB,SAAS,YAAY,KAAK;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK,qBAAqB,SAAS,YAAY,KAAK;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,CAAC,CAAC,KAAK,iBAAiB;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAY;AACZ,WAAO,KAAK,qBAAqB;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,kBAAkB;AAClB,UAAM,SAAS,KAAK;AACpB,QAAI,CAAC,UAAU,EAAE,kBAAkB,aAAa;AAC5C;AAAA,IACJ;AAEA,QAAI,KAAK,QAAQ,KAAK,SAAS,OAAO,MAAM;AACxC,aAAO;AAAA,IACX;AACA,QAAI,CAAC,KAAK,YAAY,SAAS,CAAC,KAAK,YAAY,OAAO,OAAO,WAAW,GAAG;AACzE,aAAO;AAAA,IACX;AACA,QAAI,CAAC,KAAK,QAAQ,SAAS,CAAC,KAAK,QAAQ,OAAO,OAAO,OAAO,GAAG;AAC7D,aAAO;AAAA,IACX;AACA,QAAI,CAAC,KAAK,WAAW,SAAS,CAAC,KAAK,WAAW,OAAO,OAAO,UAAU,GAAG;AACtE,aAAO;AAAA,IACX;AACA,QAAI,CAAC,KAAK,OAAO,SAAS,CAAC,KAAK,OAAO,OAAO,OAAO,MAAM,GAAG;AAC1D,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,KAAa;AACvB,WAAO,IAAI,eAAe,EAAE,kBAAkB,MAAM,GAAG;AAAA,EAC3D;AAAA,EAES,UAAU;AACf,UAAM,SAAS,MAAM,QAAQ;AAC7B,eAAW,KAAK,CAAC,eAAe,UAAU,WAAW,YAAY,GAAG;AAChE,YAAM,IAAK,KAAa,CAAC;AACzB,UAAI,KAAK,CAAC,EAAE,OAAO;AACf,eAAO,CAAC,IAAI,EAAE,QAAQ;AAAA,MAC1B;AAAA,IACJ;AACA,QAAI,OAAO,YAAY,QAAW;AAC9B,aAAO,OAAO;AAAA,IAClB;AACA,WAAO;AAAA,EACX;AAAA,EAES,SAAS;AACd,SAAK,WAAW,OAAO;AACvB,SAAK,YAAY,OAAO;AACxB,SAAK,OAAO,OAAO;AACnB,SAAK,QAAQ,OAAO;AACpB,UAAM,OAAO;AAAA,EACjB;AAAA,EAEA,YAAY,YAAuC;AAC/C,UAAM,UAAU;AAEhB,UAAM,QAAQ,KAAK,MAAM,MAAM,gBAAgB;AAC/C,QAAI,OAAO;AACP,WAAK,OAAO;AACZ,WAAK,SAAS,KAAK,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,SAAS,MAAM,MAAM,CAAC,EAAE,CAAC,CAAe;AAAA,IAC7F;AAEA,QAAI,sBAAsB,OAAO;AAC7B,cAAQ,aAAa,YAAY,MAAM,YAAY,aAAa,QAAQ,OAAO;AAAA,IACnF;AAAA,EACJ;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -230,12 +230,12 @@ const LevelControl = Cluster({
230
230
  children: [
231
231
  Field({ name: "Level", id: 0, type: "uint8", conformance: "M", constraint: "0 to 254" }),
232
232
  Field({ name: "TransitionTime", id: 1, type: "uint16", conformance: "M", quality: "X" }),
233
- Field({ name: "OptionsMask", id: 2, type: "Options", conformance: "O", constraint: "desc", default: 0 }),
233
+ Field({ name: "OptionsMask", id: 2, type: "Options", conformance: "M", constraint: "desc", default: 0 }),
234
234
  Field({
235
235
  name: "OptionsOverride",
236
236
  id: 3,
237
237
  type: "Options",
238
- conformance: "O",
238
+ conformance: "M",
239
239
  constraint: "desc",
240
240
  default: 0
241
241
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/model",
3
- "version": "0.11.5-alpha.0-20241112-858f60251",
3
+ "version": "0.11.5-alpha.0-20241114-6af665cdd",
4
4
  "description": "Matter data model",
5
5
  "keywords": [
6
6
  "iot",
@@ -33,12 +33,12 @@
33
33
  "embed-examples": "embedme **/README.md"
34
34
  },
35
35
  "dependencies": {
36
- "@matter/general": "0.11.5-alpha.0-20241112-858f60251",
36
+ "@matter/general": "0.11.5-alpha.0-20241114-6af665cdd",
37
37
  "@noble/curves": "^1.5.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@matter/tools": "0.11.5-alpha.0-20241112-858f60251",
41
- "@matter/testing": "0.11.5-alpha.0-20241112-858f60251"
40
+ "@matter/tools": "0.11.5-alpha.0-20241114-6af665cdd",
41
+ "@matter/testing": "0.11.5-alpha.0-20241114-6af665cdd"
42
42
  },
43
43
  "files": [
44
44
  "dist/**/*",
@@ -83,6 +83,8 @@ export class Access extends Aspect<Access.Definition> implements Access.Ast {
83
83
  } else if (definition !== undefined && definition !== null) {
84
84
  this.set(Array.from(Access.parse(this, definition)));
85
85
  }
86
+
87
+ this.freeze();
86
88
  }
87
89
 
88
90
  /**
@@ -11,7 +11,7 @@ import { DefinitionError } from "../common/DefinitionError.js";
11
11
  * An "aspect" is metadata about a Matter element that affects implementation behavior. Aspects are mostly "qualities"
12
12
  * in the Matter specification except for "constraint" which is not formally described as a quality.
13
13
  */
14
- export abstract class Aspect<D> {
14
+ export abstract class Aspect<D = any> {
15
15
  definition: D;
16
16
  declare errors?: DefinitionError[];
17
17
 
@@ -78,7 +78,7 @@ export abstract class Aspect<D> {
78
78
  return new constructor(definition) as This;
79
79
  }
80
80
 
81
- freeze() {
81
+ protected freeze() {
82
82
  Object.freeze(this);
83
83
  }
84
84
  }
@@ -55,10 +55,11 @@ export class Conformance extends Aspect<Conformance.Definition> {
55
55
  ast = definition.ast;
56
56
  }
57
57
  this.ast = ast;
58
+ this.freeze();
58
59
  }
59
60
 
60
- validateReferences(lookup: Conformance.ReferenceResolver<boolean>) {
61
- return Conformance.validateReferences(this, this.ast, lookup);
61
+ validateReferences(errorTarget: Conformance.ErrorTarget, lookup: Conformance.ReferenceResolver<boolean>) {
62
+ return Conformance.validateReferences(this, this.ast, errorTarget, lookup);
62
63
  }
63
64
 
64
65
  /**
@@ -104,7 +105,7 @@ export class Conformance extends Aspect<Conformance.Definition> {
104
105
  return Conformance.serialize(this.ast);
105
106
  }
106
107
 
107
- override freeze() {
108
+ protected override freeze() {
108
109
  freezeAst(this.ast);
109
110
  super.freeze();
110
111
  }
@@ -262,6 +263,7 @@ export namespace Conformance {
262
263
  | "z";
263
264
 
264
265
  export type ReferenceResolver<T> = (name: string) => T;
266
+ export type ErrorTarget = { error(code: string, message: string): void };
265
267
 
266
268
  /**
267
269
  * Supported ways of expressing conformance (conceptually union should include Flag but that is covered by string).
@@ -280,7 +282,12 @@ export namespace Conformance {
280
282
  return serialized;
281
283
  }
282
284
 
283
- export function validateReferences(conformance: Conformance, ast: Ast, resolver: ReferenceResolver<boolean>) {
285
+ export function validateReferences(
286
+ conformance: Conformance,
287
+ ast: Ast,
288
+ errorTarget: ErrorTarget,
289
+ resolver: ReferenceResolver<boolean>,
290
+ ) {
284
291
  switch (ast.type) {
285
292
  case Operator.OR:
286
293
  case Operator.XOR:
@@ -291,23 +298,23 @@ export namespace Conformance {
291
298
  case Operator.LT:
292
299
  case Operator.GTE:
293
300
  case Operator.LTE:
294
- validateReferences(conformance, ast.param.lhs, resolver);
295
- validateReferences(conformance, ast.param.rhs, resolver);
301
+ validateReferences(conformance, ast.param.lhs, errorTarget, resolver);
302
+ validateReferences(conformance, ast.param.rhs, errorTarget, resolver);
296
303
  break;
297
304
 
298
305
  case Operator.NOT:
299
- validateReferences(conformance, ast.param, resolver);
306
+ validateReferences(conformance, ast.param, errorTarget, resolver);
300
307
  break;
301
308
 
302
309
  case Special.Group:
303
310
  for (const a of ast.param) {
304
- validateReferences(conformance, a, resolver);
311
+ validateReferences(conformance, a, errorTarget, resolver);
305
312
  }
306
313
  break;
307
314
 
308
315
  case Special.Name:
309
316
  if (!resolver(ast.param)) {
310
- conformance.error(
317
+ errorTarget.error(
311
318
  `UNRESOLVED_CONFORMANCE_${ast.type.toUpperCase()}`,
312
319
  `Conformance ${ast.type} reference "${ast.param}" does not resolve`,
313
320
  );
@@ -80,6 +80,8 @@ export class Constraint extends Aspect<Constraint.Definition> implements Constra
80
80
  if (ast.parts !== undefined) {
81
81
  this.parts = ast.parts.map(p => new Constraint(p));
82
82
  }
83
+
84
+ this.freeze();
83
85
  }
84
86
 
85
87
  /**
@@ -150,7 +152,7 @@ export class Constraint extends Aspect<Constraint.Definition> implements Constra
150
152
  return Constraint.serialize(this);
151
153
  }
152
154
 
153
- override freeze() {
155
+ protected override freeze() {
154
156
  if (this.parts) {
155
157
  Object.freeze(this.parts);
156
158
  }
@@ -40,6 +40,8 @@ export class Quality extends Aspect<Quality.Definition> implements Quality.Ast {
40
40
  } else {
41
41
  Object.assign(this, definition);
42
42
  }
43
+
44
+ this.freeze();
43
45
  }
44
46
 
45
47
  private parse(quality: Quality, definition: string) {
@@ -97,7 +97,7 @@ export class ModelTraversal {
97
97
  return "struct";
98
98
  }
99
99
 
100
- return this.operation(() => {
100
+ const getTypeNameOp = () => {
101
101
  let result: string | undefined;
102
102
  const name = model.name;
103
103
  this.visitInheritance(this.findParent(model), ancestor => {
@@ -134,7 +134,9 @@ export class ModelTraversal {
134
134
  });
135
135
 
136
136
  return result;
137
- });
137
+ };
138
+
139
+ return this.operation(getTypeNameOp);
138
140
  }
139
141
 
140
142
  /**
@@ -166,7 +168,7 @@ export class ModelTraversal {
166
168
  return memos.bases.get(model);
167
169
  }
168
170
 
169
- const base = this.operationWithDismissal(model, () => {
171
+ const findBaseOp = () => {
170
172
  // If I override another element (same identity and tag in parent's inheritance hierarchy) then I implicitly
171
173
  // inherit from the shadow.
172
174
  //
@@ -208,7 +210,9 @@ export class ModelTraversal {
208
210
  return found;
209
211
  }
210
212
  }
211
- });
213
+ };
214
+
215
+ const base = this.operationWithDismissal(model, findBaseOp);
212
216
 
213
217
  memos?.bases.set(model, base);
214
218
 
@@ -224,12 +228,14 @@ export class ModelTraversal {
224
228
  }
225
229
  let result: Model | undefined;
226
230
 
227
- this.visitInheritance(model, model => {
231
+ const globalBaseSearchOp = (model: Model) => {
228
232
  if (model.isGlobal) {
229
233
  result = model;
230
234
  return false;
231
235
  }
232
- });
236
+ };
237
+
238
+ this.visitInheritance(model, globalBaseSearchOp);
233
239
 
234
240
  return result;
235
241
  }
@@ -296,13 +302,17 @@ export class ModelTraversal {
296
302
  return undefined;
297
303
  }
298
304
 
305
+ if (model.operationalShadow !== undefined) {
306
+ return model.operationalShadow ?? undefined;
307
+ }
308
+
299
309
  if (memos?.shadows.has(model)) {
300
310
  return memos.shadows.get(model);
301
311
  }
302
312
 
303
313
  let shadow: Model | undefined;
304
314
 
305
- this.operationWithDismissal(model, () => {
315
+ const shadowSearchOp = () => {
306
316
  this.visitInheritance(this.findBase(this.findParent(model)), parent => {
307
317
  if (model.id !== undefined && model.tag !== ElementTag.Command) {
308
318
  shadow = parent.children.select(model.id, [model.tag], this.#dismissed);
@@ -315,7 +325,9 @@ export class ModelTraversal {
315
325
  return false;
316
326
  }
317
327
  });
318
- });
328
+ };
329
+
330
+ this.operationWithDismissal(model, shadowSearchOp);
319
331
 
320
332
  memos?.shadows.set(model, shadow);
321
333
 
@@ -332,7 +344,7 @@ export class ModelTraversal {
332
344
  return;
333
345
  }
334
346
 
335
- return this.operation(() => {
347
+ const findAspectOp = () => {
336
348
  let aspect = (model as any)[symbol] as Aspect<any> | undefined;
337
349
 
338
350
  const inheritedAspect = this.findAspect(this.findBase(model), symbol);
@@ -345,7 +357,8 @@ export class ModelTraversal {
345
357
  }
346
358
 
347
359
  return aspect;
348
- });
360
+ };
361
+ return this.operation(findAspectOp);
349
362
  }
350
363
 
351
364
  /**
@@ -460,7 +473,7 @@ export class ModelTraversal {
460
473
  const defined = {} as Record<string, number | undefined>;
461
474
 
462
475
  let level = 0;
463
- this.visitInheritance(scope, model => {
476
+ const childSearchVisitor = (model: Model) => {
464
477
  level++;
465
478
  for (const child of model.children) {
466
479
  if (!tags.includes(child.tag)) {
@@ -493,7 +506,8 @@ export class ModelTraversal {
493
506
  // Found a member
494
507
  members.push(child);
495
508
  }
496
- });
509
+ };
510
+ this.visitInheritance(scope, childSearchVisitor);
497
511
 
498
512
  return members;
499
513
  }
@@ -593,7 +607,7 @@ export class ModelTraversal {
593
607
  return memosForScope[memoKey];
594
608
  }
595
609
 
596
- const type = this.operation(() => {
610
+ const findTypeOp = () => {
597
611
  const queue = Array<Model>(scope as Model);
598
612
  for (scope = queue.shift(); scope; scope = queue.shift()) {
599
613
  if (scope.isTypeScope) {
@@ -615,7 +629,8 @@ export class ModelTraversal {
615
629
  queue.push(parent);
616
630
  }
617
631
  }
618
- });
632
+ };
633
+ const type = this.operation(findTypeOp);
619
634
 
620
635
  if (memos) {
621
636
  const memosForScope = memos.types.get(scope);
@@ -845,7 +860,7 @@ export class ModelTraversal {
845
860
 
846
861
  // Next, search operational base hierarchy
847
862
  if (model.operationalBase) {
848
- return this.operationWithDismissal(model, () => this.findScope(model.operationalBase));
863
+ return this.operationWithDismissal(model, () => this.findScope(model.operationalBase ?? undefined));
849
864
  }
850
865
 
851
866
  // Finally, fall back to the canonical MatterModel
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { Access, Conformance, Constraint, Quality } from "../../aspects/index.js";
7
+ import { Access, Aspect, Conformance, Constraint, Quality } from "../../aspects/index.js";
8
8
  import { DefinitionError, FieldValue, Metatype } from "../../common/index.js";
9
9
  import { ClusterModel, Globals, ValueModel } from "../../models/index.js";
10
10
  import { ModelValidator } from "./ModelValidator.js";
@@ -23,7 +23,8 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
23
23
  this.validateProperty({ name: "quality", type: Quality });
24
24
  this.validateProperty({ name: "metatype", type: Metatype });
25
25
 
26
- this.model.conformance.validateReferences(name => {
26
+ this.validateAspect("conformance");
27
+ this.model.conformance.validateReferences(this, name => {
27
28
  // Features are all caps, other names are field references
28
29
  if (name.match(/^[A-Z0-9_$]+$/)) {
29
30
  // Feature lookup
@@ -35,7 +36,6 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
35
36
  }
36
37
  });
37
38
 
38
- this.validateAspect("conformance");
39
39
  this.validateAspect("constraint");
40
40
  this.validateAspect("access");
41
41
  this.validateAspect("quality");
@@ -47,7 +47,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
47
47
  }
48
48
 
49
49
  private validateAspect(name: string) {
50
- const aspect = (this.model as any)[name];
50
+ const aspect = (this.model as any)[name] as Aspect;
51
51
  if (aspect?.errors) {
52
52
  aspect.errors.forEach((e: DefinitionError) => this.model.error(e.code, e.message));
53
53
  }