@matter/model 0.11.9-alpha.0-20241203-06077d82e → 0.11.9-alpha.0-20241206-22f233334

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 (182) hide show
  1. package/dist/cjs/elements/MatterElement.d.ts +5 -1
  2. package/dist/cjs/elements/MatterElement.d.ts.map +1 -1
  3. package/dist/cjs/elements/MatterElement.js +1 -1
  4. package/dist/cjs/elements/MatterElement.js.map +1 -1
  5. package/dist/cjs/logic/DefaultValue.d.ts +3 -1
  6. package/dist/cjs/logic/DefaultValue.d.ts.map +1 -1
  7. package/dist/cjs/logic/DefaultValue.js +11 -11
  8. package/dist/cjs/logic/DefaultValue.js.map +1 -1
  9. package/dist/cjs/logic/ModelTraversal.d.ts +6 -35
  10. package/dist/cjs/logic/ModelTraversal.d.ts.map +1 -1
  11. package/dist/cjs/logic/ModelTraversal.js +15 -109
  12. package/dist/cjs/logic/ModelTraversal.js.map +1 -1
  13. package/dist/cjs/logic/ModelVariantTraversal.d.ts.map +1 -1
  14. package/dist/cjs/logic/ModelVariantTraversal.js.map +1 -1
  15. package/dist/cjs/logic/Scope.d.ts +102 -0
  16. package/dist/cjs/logic/Scope.d.ts.map +1 -0
  17. package/dist/cjs/logic/Scope.js +220 -0
  18. package/dist/cjs/logic/Scope.js.map +6 -0
  19. package/dist/cjs/logic/definition-validation/ModelValidator.d.ts.map +1 -1
  20. package/dist/cjs/logic/index.d.ts +1 -0
  21. package/dist/cjs/logic/index.d.ts.map +1 -1
  22. package/dist/cjs/logic/index.js +1 -0
  23. package/dist/cjs/logic/index.js.map +1 -1
  24. package/dist/cjs/models/AttributeModel.d.ts +20 -0
  25. package/dist/cjs/models/AttributeModel.d.ts.map +1 -1
  26. package/dist/cjs/models/AttributeModel.js +3 -0
  27. package/dist/cjs/models/AttributeModel.js.map +1 -1
  28. package/dist/cjs/models/Children.d.ts +4 -0
  29. package/dist/cjs/models/Children.d.ts.map +1 -1
  30. package/dist/cjs/models/Children.js +13 -0
  31. package/dist/cjs/models/Children.js.map +1 -1
  32. package/dist/cjs/models/ClusterModel.d.ts +6 -7
  33. package/dist/cjs/models/ClusterModel.d.ts.map +1 -1
  34. package/dist/cjs/models/ClusterModel.js +5 -38
  35. package/dist/cjs/models/ClusterModel.js.map +1 -1
  36. package/dist/cjs/models/CommandModel.d.ts +22 -0
  37. package/dist/cjs/models/CommandModel.d.ts.map +1 -1
  38. package/dist/cjs/models/CommandModel.js +3 -0
  39. package/dist/cjs/models/CommandModel.js.map +1 -1
  40. package/dist/cjs/models/DatatypeModel.js +0 -2
  41. package/dist/cjs/models/DatatypeModel.js.map +1 -1
  42. package/dist/cjs/models/EventModel.d.ts +21 -0
  43. package/dist/cjs/models/EventModel.d.ts.map +1 -1
  44. package/dist/cjs/models/EventModel.js +3 -0
  45. package/dist/cjs/models/EventModel.js.map +1 -1
  46. package/dist/cjs/models/MatterModel.d.ts +3 -3
  47. package/dist/cjs/models/MatterModel.d.ts.map +1 -1
  48. package/dist/cjs/models/MatterModel.js +6 -5
  49. package/dist/cjs/models/MatterModel.js.map +1 -1
  50. package/dist/cjs/models/Model.d.ts +10 -6
  51. package/dist/cjs/models/Model.d.ts.map +1 -1
  52. package/dist/cjs/models/Model.js +28 -9
  53. package/dist/cjs/models/Model.js.map +1 -1
  54. package/dist/cjs/models/ScopeModel.d.ts +22 -0
  55. package/dist/cjs/models/ScopeModel.d.ts.map +1 -0
  56. package/dist/cjs/models/ScopeModel.js +63 -0
  57. package/dist/cjs/models/ScopeModel.js.map +6 -0
  58. package/dist/cjs/models/ValueModel.d.ts +7 -21
  59. package/dist/cjs/models/ValueModel.d.ts.map +1 -1
  60. package/dist/cjs/models/ValueModel.js +15 -34
  61. package/dist/cjs/models/ValueModel.js.map +1 -1
  62. package/dist/cjs/models/index.d.ts +1 -0
  63. package/dist/cjs/models/index.d.ts.map +1 -1
  64. package/dist/cjs/models/index.js +1 -0
  65. package/dist/cjs/models/index.js.map +1 -1
  66. package/dist/cjs/standard/elements/ColorControl.js +3 -4
  67. package/dist/cjs/standard/elements/ColorControl.js.map +1 -1
  68. package/dist/cjs/standard/elements/ModeBase.js +1 -1
  69. package/dist/cjs/standard/elements/ModeBase.js.map +1 -1
  70. package/dist/cjs/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
  71. package/dist/cjs/standard/elements/PumpConfigurationAndControl.js +3 -20
  72. package/dist/cjs/standard/elements/PumpConfigurationAndControl.js.map +1 -1
  73. package/dist/cjs/standard/elements/UserLabel.d.ts.map +1 -1
  74. package/dist/cjs/standard/elements/UserLabel.js +13 -16
  75. package/dist/cjs/standard/elements/UserLabel.js.map +1 -1
  76. package/dist/cjs/standard/elements/WildcardPathFlagsBitmap.d.ts.map +1 -1
  77. package/dist/cjs/standard/elements/WildcardPathFlagsBitmap.js +1 -5
  78. package/dist/cjs/standard/elements/WildcardPathFlagsBitmap.js.map +1 -1
  79. package/dist/cjs/standard/elements/WindowCovering.js +2 -2
  80. package/dist/esm/elements/MatterElement.d.ts +5 -1
  81. package/dist/esm/elements/MatterElement.d.ts.map +1 -1
  82. package/dist/esm/elements/MatterElement.js +1 -1
  83. package/dist/esm/elements/MatterElement.js.map +1 -1
  84. package/dist/esm/logic/DefaultValue.d.ts +3 -1
  85. package/dist/esm/logic/DefaultValue.d.ts.map +1 -1
  86. package/dist/esm/logic/DefaultValue.js +11 -11
  87. package/dist/esm/logic/DefaultValue.js.map +1 -1
  88. package/dist/esm/logic/ModelTraversal.d.ts +6 -35
  89. package/dist/esm/logic/ModelTraversal.d.ts.map +1 -1
  90. package/dist/esm/logic/ModelTraversal.js +16 -110
  91. package/dist/esm/logic/ModelTraversal.js.map +1 -1
  92. package/dist/esm/logic/ModelVariantTraversal.d.ts.map +1 -1
  93. package/dist/esm/logic/ModelVariantTraversal.js.map +1 -1
  94. package/dist/esm/logic/Scope.d.ts +102 -0
  95. package/dist/esm/logic/Scope.d.ts.map +1 -0
  96. package/dist/esm/logic/Scope.js +200 -0
  97. package/dist/esm/logic/Scope.js.map +6 -0
  98. package/dist/esm/logic/definition-validation/ModelValidator.d.ts.map +1 -1
  99. package/dist/esm/logic/index.d.ts +1 -0
  100. package/dist/esm/logic/index.d.ts.map +1 -1
  101. package/dist/esm/logic/index.js +1 -0
  102. package/dist/esm/logic/index.js.map +1 -1
  103. package/dist/esm/models/AttributeModel.d.ts +20 -0
  104. package/dist/esm/models/AttributeModel.d.ts.map +1 -1
  105. package/dist/esm/models/AttributeModel.js +3 -0
  106. package/dist/esm/models/AttributeModel.js.map +1 -1
  107. package/dist/esm/models/Children.d.ts +4 -0
  108. package/dist/esm/models/Children.d.ts.map +1 -1
  109. package/dist/esm/models/Children.js +13 -0
  110. package/dist/esm/models/Children.js.map +1 -1
  111. package/dist/esm/models/ClusterModel.d.ts +6 -7
  112. package/dist/esm/models/ClusterModel.d.ts.map +1 -1
  113. package/dist/esm/models/ClusterModel.js +5 -38
  114. package/dist/esm/models/ClusterModel.js.map +1 -1
  115. package/dist/esm/models/CommandModel.d.ts +22 -0
  116. package/dist/esm/models/CommandModel.d.ts.map +1 -1
  117. package/dist/esm/models/CommandModel.js +3 -0
  118. package/dist/esm/models/CommandModel.js.map +1 -1
  119. package/dist/esm/models/DatatypeModel.js +0 -2
  120. package/dist/esm/models/DatatypeModel.js.map +1 -1
  121. package/dist/esm/models/EventModel.d.ts +21 -0
  122. package/dist/esm/models/EventModel.d.ts.map +1 -1
  123. package/dist/esm/models/EventModel.js +3 -0
  124. package/dist/esm/models/EventModel.js.map +1 -1
  125. package/dist/esm/models/MatterModel.d.ts +3 -3
  126. package/dist/esm/models/MatterModel.d.ts.map +1 -1
  127. package/dist/esm/models/MatterModel.js +6 -5
  128. package/dist/esm/models/MatterModel.js.map +1 -1
  129. package/dist/esm/models/Model.d.ts +10 -6
  130. package/dist/esm/models/Model.d.ts.map +1 -1
  131. package/dist/esm/models/Model.js +28 -9
  132. package/dist/esm/models/Model.js.map +1 -1
  133. package/dist/esm/models/ScopeModel.d.ts +22 -0
  134. package/dist/esm/models/ScopeModel.d.ts.map +1 -0
  135. package/dist/esm/models/ScopeModel.js +43 -0
  136. package/dist/esm/models/ScopeModel.js.map +6 -0
  137. package/dist/esm/models/ValueModel.d.ts +7 -21
  138. package/dist/esm/models/ValueModel.d.ts.map +1 -1
  139. package/dist/esm/models/ValueModel.js +15 -34
  140. package/dist/esm/models/ValueModel.js.map +1 -1
  141. package/dist/esm/models/index.d.ts +1 -0
  142. package/dist/esm/models/index.d.ts.map +1 -1
  143. package/dist/esm/models/index.js +1 -0
  144. package/dist/esm/models/index.js.map +1 -1
  145. package/dist/esm/standard/elements/ColorControl.js +3 -4
  146. package/dist/esm/standard/elements/ColorControl.js.map +1 -1
  147. package/dist/esm/standard/elements/ModeBase.js +1 -1
  148. package/dist/esm/standard/elements/ModeBase.js.map +1 -1
  149. package/dist/esm/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
  150. package/dist/esm/standard/elements/PumpConfigurationAndControl.js +3 -20
  151. package/dist/esm/standard/elements/PumpConfigurationAndControl.js.map +1 -1
  152. package/dist/esm/standard/elements/UserLabel.d.ts.map +1 -1
  153. package/dist/esm/standard/elements/UserLabel.js +13 -16
  154. package/dist/esm/standard/elements/UserLabel.js.map +1 -1
  155. package/dist/esm/standard/elements/WildcardPathFlagsBitmap.d.ts.map +1 -1
  156. package/dist/esm/standard/elements/WildcardPathFlagsBitmap.js +1 -5
  157. package/dist/esm/standard/elements/WildcardPathFlagsBitmap.js.map +1 -1
  158. package/dist/esm/standard/elements/WindowCovering.js +2 -2
  159. package/package.json +4 -4
  160. package/src/elements/MatterElement.ts +7 -2
  161. package/src/logic/DefaultValue.ts +13 -11
  162. package/src/logic/ModelTraversal.ts +28 -147
  163. package/src/logic/ModelVariantTraversal.ts +0 -1
  164. package/src/logic/Scope.ts +400 -0
  165. package/src/logic/index.ts +1 -0
  166. package/src/models/AttributeModel.ts +4 -0
  167. package/src/models/Children.ts +24 -1
  168. package/src/models/ClusterModel.ts +12 -51
  169. package/src/models/CommandModel.ts +4 -0
  170. package/src/models/DatatypeModel.ts +0 -2
  171. package/src/models/EventModel.ts +4 -0
  172. package/src/models/MatterModel.ts +6 -5
  173. package/src/models/Model.ts +38 -12
  174. package/src/models/ScopeModel.ts +55 -0
  175. package/src/models/ValueModel.ts +17 -39
  176. package/src/models/index.ts +1 -0
  177. package/src/standard/elements/ColorControl.ts +4 -4
  178. package/src/standard/elements/ModeBase.ts +1 -1
  179. package/src/standard/elements/PumpConfigurationAndControl.ts +2 -18
  180. package/src/standard/elements/UserLabel.ts +8 -12
  181. package/src/standard/elements/WildcardPathFlagsBitmap.ts +1 -4
  182. package/src/standard/elements/WindowCovering.ts +2 -2
@@ -27,7 +27,6 @@ var import_Quality = require("../aspects/Quality.js");
27
27
  var import_errors = require("../common/errors.js");
28
28
  var import_common = require("../common/index.js");
29
29
  var import_elements = require("../elements/index.js");
30
- var import_ModelTraversal = require("../logic/ModelTraversal.js");
31
30
  var import_ClusterRevision = require("../standard/elements/ClusterRevision.js");
32
31
  var import_FeatureMap = require("../standard/elements/FeatureMap.js");
33
32
  var import_Aspects = require("./Aspects.js");
@@ -36,15 +35,15 @@ var import_CommandModel = require("./CommandModel.js");
36
35
  var import_DatatypeModel = require("./DatatypeModel.js");
37
36
  var import_EventModel = require("./EventModel.js");
38
37
  var import_Model = require("./Model.js");
38
+ var import_ScopeModel = require("./ScopeModel.js");
39
39
  /**
40
40
  * @license
41
41
  * Copyright 2022-2024 Matter.js Authors
42
42
  * SPDX-License-Identifier: Apache-2.0
43
43
  */
44
44
  const QUALITY = Symbol("quality");
45
- class ClusterModel extends import_Model.Model {
45
+ class ClusterModel extends import_ScopeModel.ScopeModel {
46
46
  tag = import_elements.ClusterElement.Tag;
47
- isTypeScope = true;
48
47
  get children() {
49
48
  return super.children;
50
49
  }
@@ -75,43 +74,11 @@ class ClusterModel extends import_Model.Model {
75
74
  get datatypes() {
76
75
  return this.all(import_DatatypeModel.DatatypeModel);
77
76
  }
78
- get members() {
79
- const traversal = new import_ModelTraversal.ModelTraversal();
80
- const members = traversal.findChildren(this, [import_common.ElementTag.Field, import_common.ElementTag.Attribute]);
81
- const missingGlobalIds = new Set(import_AttributeModel.AttributeModel.globalIds);
82
- for (const m of members) {
83
- if (m instanceof import_AttributeModel.AttributeModel && m.id) {
84
- missingGlobalIds.delete(m.id);
85
- }
86
- }
87
- if (missingGlobalIds.size) {
88
- const root = traversal.findRoot(this);
89
- if (root) {
90
- for (const id of missingGlobalIds) {
91
- const global = root.get(import_AttributeModel.AttributeModel, id);
92
- if (global) {
93
- members.push(global);
94
- }
95
- }
96
- }
97
- }
98
- return members;
99
- }
100
- get activeMembers() {
101
- return new import_ModelTraversal.ModelTraversal().findActiveMembers(this, false, this);
102
- }
103
- get conformantMembers() {
104
- return new import_ModelTraversal.ModelTraversal().findActiveMembers(this, true, this);
105
- }
106
77
  /**
107
78
  * Get attributes, commands and events whether inherited or defined directly in this model.
108
79
  */
109
80
  get allAces() {
110
- return new import_ModelTraversal.ModelTraversal().findChildren(this, [
111
- import_common.ElementTag.Attribute,
112
- import_common.ElementTag.Command,
113
- import_common.ElementTag.Event
114
- ]);
81
+ return this.scope.membersOf(this, { tags: [import_common.ElementTag.Attribute, import_common.ElementTag.Command, import_common.ElementTag.Event] });
115
82
  }
116
83
  get revision() {
117
84
  let revision = 1;
@@ -180,8 +147,8 @@ class ClusterModel extends import_Model.Model {
180
147
  }
181
148
  return result;
182
149
  }
183
- constructor(definition) {
184
- super(definition);
150
+ constructor(definition, ...children) {
151
+ super(definition, ...children);
185
152
  if (definition instanceof import_Model.Model) {
186
153
  import_Aspects.Aspects.cloneAspects(definition, this, QUALITY);
187
154
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/ClusterModel.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -16,6 +16,28 @@ export declare class CommandModel extends ValueModel<CommandElement> implements
16
16
  get isResponse(): boolean;
17
17
  get responseModel(): ValueModel;
18
18
  get effectiveDirection(): CommandElement.Direction | undefined;
19
+ get requiredFields(): {
20
+ id: number;
21
+ tag: `${CommandElement.Tag}`;
22
+ direction?: `${CommandElement.Direction}`;
23
+ response?: string;
24
+ name: string;
25
+ type?: string;
26
+ description?: string;
27
+ details?: string;
28
+ xref?: import("../index.js").Specification.CrossReference;
29
+ children?: (import("../elements/BaseElement.js").BaseElement[] & import("../elements/ValueElement.js").ValueElement[]) | undefined;
30
+ isGlobal?: boolean;
31
+ isSeed?: boolean;
32
+ asOf?: import("../index.js").Specification.Revision;
33
+ until?: import("../index.js").Specification.Revision;
34
+ constraint?: import("../index.js").Constraint.Definition;
35
+ conformance?: import("../index.js").Conformance.Definition;
36
+ access?: import("../index.js").Access.Definition;
37
+ quality?: import("../index.js").Quality.Definition;
38
+ byteSize?: import("../elements/ValueElement.js").ValueElement.ByteSize;
39
+ default?: import("../index.js").FieldValue;
40
+ };
19
41
  /**
20
42
  * Commands may re-use the ID for request and response so identification requires the ID in conjunction with the
21
43
  * direction.
@@ -1 +1 @@
1
- {"version":3,"file":"CommandModel.d.ts","sourceRoot":"","sources":["../../../src/models/CommandModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,YAAa,SAAQ,UAAU,CAAC,cAAc,CAAE,YAAW,cAAc;IACzE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAsB;IAC9C,EAAE,EAAE,GAAG,CAAC;IACR,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE1B,IAAI,YAAY,YAEf;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,UAAU,YAEb;IAED,IAAI,aAAa,IACqC,UAAU,CAC/D;IAED,IAAI,kBAAkB,yCAErB;IAED;;;OAGG;IACH,IAAa,aAAa,6BAWzB;IAMD,MAAM,CAAC,GAAG,mCAAsB;CACnC"}
1
+ {"version":3,"file":"CommandModel.d.ts","sourceRoot":"","sources":["../../../src/models/CommandModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,YAAa,SAAQ,UAAU,CAAC,cAAc,CAAE,YAAW,cAAc;IACzE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAsB;IAC9C,EAAE,EAAE,GAAG,CAAC;IACR,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE1B,IAAI,YAAY,YAEf;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,UAAU,YAEb;IAED,IAAI,aAAa,IACqC,UAAU,CAC/D;IAED,IAAI,kBAAkB,yCAErB;IAED,IAAa,cAAc;;gBA1BsD,eAC1E,GAAG;uBAEqB,eAC/B,SAAK;;;;;;;;;;;;;;;;;;MAwBJ;IAED;;;OAGG;IACH,IAAa,aAAa,6BAWzB;IAMD,MAAM,CAAC,GAAG,mCAAsB;CACnC"}
@@ -47,6 +47,9 @@ class CommandModel extends import_ValueModel.ValueModel {
47
47
  get effectiveDirection() {
48
48
  return this.direction ?? new import_ModelTraversal.ModelTraversal().findShadow(this)?.direction;
49
49
  }
50
+ get requiredFields() {
51
+ return { ...super.requiredFields, id: this.id };
52
+ }
50
53
  /**
51
54
  * Commands may re-use the ID for request and response so identification requires the ID in conjunction with the
52
55
  * direction.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/CommandModel.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAA+B;AAC/B,4BAA+B;AAC/B,mBAAsB;AACtB,wBAA2B;AAV3B;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,qBAAqB,6BAAqD;AAAA,EAC1E,MAA0B,+BAAe;AAAA,EAKlD,IAAI,eAAe;AACf,WAAO,CAAC,CAAC,KAAK,gBAAgB;AAAA,EAClC;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK,cAAc,+BAAe,UAAU;AAAA,EACvD;AAAA,EAEA,IAAI,aAAa;AACb,WAAO,KAAK,cAAc,+BAAe,UAAU;AAAA,EACvD;AAAA,EAEA,IAAI,gBAAgB;AAChB,WAAO,IAAI,qCAAe,EAAE,aAAa,IAAI;AAAA,EACjD;AAAA,EAEA,IAAI,qBAAqB;AACrB,WAAO,KAAK,aAAc,IAAI,qCAAe,EAAE,WAAW,IAAI,GAAgC;AAAA,EAClG;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAa,gBAAgB;AAGzB,QAAI,KAAK,cAAc,QAAW;AAC9B,UAAI,KAAK,KAAK,SAAS,UAAU,GAAG;AAChC,eAAO,+BAAe,UAAU;AAAA,MACpC;AACA,aAAO,+BAAe,UAAU;AAAA,IACpC;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,+BAAe,GAAG,IAAI;AAAA,EACtC;AAAA,EAEA,OAAO,MAAM,+BAAe;AAChC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAA+B;AAC/B,4BAA+B;AAC/B,mBAAsB;AACtB,wBAA2B;AAV3B;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,qBAAqB,6BAAqD;AAAA,EAC1E,MAA0B,+BAAe;AAAA,EAKlD,IAAI,eAAe;AACf,WAAO,CAAC,CAAC,KAAK,gBAAgB;AAAA,EAClC;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK,cAAc,+BAAe,UAAU;AAAA,EACvD;AAAA,EAEA,IAAI,aAAa;AACb,WAAO,KAAK,cAAc,+BAAe,UAAU;AAAA,EACvD;AAAA,EAEA,IAAI,gBAAgB;AAChB,WAAO,IAAI,qCAAe,EAAE,aAAa,IAAI;AAAA,EACjD;AAAA,EAEA,IAAI,qBAAqB;AACrB,WAAO,KAAK,aAAc,IAAI,qCAAe,EAAE,WAAW,IAAI,GAAgC;AAAA,EAClG;AAAA,EAEA,IAAa,iBAAiB;AAC1B,WAAO,EAAE,GAAG,MAAM,gBAAgB,IAAI,KAAK,GAAG;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAa,gBAAgB;AAGzB,QAAI,KAAK,cAAc,QAAW;AAC9B,UAAI,KAAK,KAAK,SAAS,UAAU,GAAG;AAChC,eAAO,+BAAe,UAAU;AAAA,MACpC;AACA,aAAO,+BAAe,UAAU;AAAA,IACpC;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,+BAAe,GAAG,IAAI;AAAA,EACtC;AAAA,EAEA,OAAO,MAAM,+BAAe;AAChC;",
5
5
  "names": []
6
6
  }
@@ -45,6 +45,4 @@ class DatatypeModel extends import_ValueModel.ValueModel {
45
45
  import_Model.Model.types[import_DatatypeElement.DatatypeElement.Tag] = this;
46
46
  }
47
47
  }
48
- const x = {};
49
- x.children;
50
48
  //# sourceMappingURL=DatatypeModel.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/DatatypeModel.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAAyB;AACzB,6BAAgC;AAChC,mBAAsB;AACtB,wBAA2B;AAT3B;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,sBAAsB,6BAAuD;AAAA,EAC7E,MAA2B,uCAAgB;AAAA,EAGpD,IAAI,gBAAgB;AAChB,YAAQ,KAAK,mBAAmB;AAAA,MAC5B,KAAK,uBAAS;AAAA,MACd,KAAK,uBAAS;AAAA,MACd,KAAK,uBAAS;AACV,eAAO,CAAC,CAAC,KAAK,eAAe,SAAS;AAAA,IAC9C;AACA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,uCAAgB,GAAG,IAAI;AAAA,EACvC;AACJ;AACA,MAAM,IAAI,CAAC;AACX,EAAE;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAAyB;AACzB,6BAAgC;AAChC,mBAAsB;AACtB,wBAA2B;AAT3B;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,sBAAsB,6BAAuD;AAAA,EAC7E,MAA2B,uCAAgB;AAAA,EAGpD,IAAI,gBAAgB;AAChB,YAAQ,KAAK,mBAAmB;AAAA,MAC5B,KAAK,uBAAS;AAAA,MACd,KAAK,uBAAS;AAAA,MACd,KAAK,uBAAS;AACV,eAAO,CAAC,CAAC,KAAK,eAAe,SAAS;AAAA,IAC9C;AACA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,uCAAgB,GAAG,IAAI;AAAA,EACvC;AACJ;",
5
5
  "names": []
6
6
  }
@@ -12,6 +12,27 @@ export declare class EventModel extends ValueModel<EventElement> implements Even
12
12
  priority?: EventElement.Priority;
13
13
  constructor(definition: EventElement.Properties);
14
14
  get fabricSensitive(): boolean;
15
+ get requiredFields(): {
16
+ id: number;
17
+ tag: `${EventElement.Tag}`;
18
+ priority?: `${EventElement.Priority}`;
19
+ name: string;
20
+ type?: string;
21
+ description?: string;
22
+ details?: string;
23
+ xref?: import("../index.js").Specification.CrossReference;
24
+ children?: (import("../elements/BaseElement.js").BaseElement[] & import("../elements/ValueElement.js").ValueElement[]) | undefined;
25
+ isGlobal?: boolean;
26
+ isSeed?: boolean;
27
+ asOf?: import("../index.js").Specification.Revision;
28
+ until?: import("../index.js").Specification.Revision;
29
+ constraint?: import("../index.js").Constraint.Definition;
30
+ conformance?: import("../index.js").Conformance.Definition;
31
+ access?: import("../index.js").Access.Definition;
32
+ quality?: import("../index.js").Quality.Definition;
33
+ byteSize?: import("../elements/ValueElement.js").ValueElement.ByteSize;
34
+ default?: import("../index.js").FieldValue;
35
+ };
15
36
  static Tag: import("../index.js").ElementTag;
16
37
  }
17
38
  //# sourceMappingURL=EventModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventModel.d.ts","sourceRoot":"","sources":["../../../src/models/EventModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,UAAW,SAAQ,UAAU,CAAC,YAAY,CAAE,YAAW,YAAY;IACnE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAoB;IAC1C,EAAE,EAAE,GAAG,CAAC;IACR,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC;gBAE7B,UAAU,EAAE,YAAY,CAAC,UAAU;IAI/C,IAAI,eAAe,IAAI,OAAO,CAE7B;IAMD,MAAM,CAAC,GAAG,mCAAoB;CACjC"}
1
+ {"version":3,"file":"EventModel.d.ts","sourceRoot":"","sources":["../../../src/models/EventModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,UAAW,SAAQ,UAAU,CAAC,YAAY,CAAE,YAAW,YAAY;IACnE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAoB;IAC1C,EAAE,EAAE,GAAG,CAAC;IACR,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC;gBAE7B,UAAU,EAAE,YAAY,CAAC,UAAU;IAI/C,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAa,cAAc;;gBAX3B,aAAQ,GAAG;sBAG4B,aACnC,QAAC;;;;;;;;;;;;;;;;;MASJ;IAMD,MAAM,CAAC,GAAG,mCAAoB;CACjC"}
@@ -37,6 +37,9 @@ class EventModel extends import_ValueModel.ValueModel {
37
37
  get fabricSensitive() {
38
38
  return this.effectiveAccess.fabricSensitive;
39
39
  }
40
+ get requiredFields() {
41
+ return { ...super.requiredFields, id: this.id };
42
+ }
40
43
  static {
41
44
  import_Model.Model.types[import_elements.EventElement.Tag] = this;
42
45
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/EventModel.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAA6B;AAC7B,mBAAsB;AACtB,wBAA2B;AAT3B;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,mBAAmB,6BAAiD;AAAA,EACpE,MAAwB,6BAAa;AAAA,EAI9C,YAAY,YAAqC;AAC7C,UAAM,UAAU;AAAA,EACpB;AAAA,EAEA,IAAI,kBAA2B;AAC3B,WAAO,KAAK,gBAAgB;AAAA,EAChC;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,6BAAa,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,OAAO,MAAM,6BAAa;AAC9B;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAA6B;AAC7B,mBAAsB;AACtB,wBAA2B;AAT3B;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,mBAAmB,6BAAiD;AAAA,EACpE,MAAwB,6BAAa;AAAA,EAI9C,YAAY,YAAqC;AAC7C,UAAM,UAAU;AAAA,EACpB;AAAA,EAEA,IAAI,kBAA2B;AAC3B,WAAO,KAAK,gBAAgB;AAAA,EAChC;AAAA,EAEA,IAAa,iBAAiB;AAC1B,WAAO,EAAE,GAAG,MAAM,gBAAgB,IAAI,KAAK,GAAG;AAAA,EAClD;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,6BAAa,GAAG,IAAI;AAAA,EACpC;AAAA,EAEA,OAAO,MAAM,6BAAa;AAC9B;",
5
5
  "names": []
6
6
  }
@@ -13,13 +13,13 @@ import { DeviceTypeModel } from "./DeviceTypeModel.js";
13
13
  import { FabricModel } from "./FabricModel.js";
14
14
  import { FieldModel } from "./FieldModel.js";
15
15
  import { Model } from "./Model.js";
16
+ import { ScopeModel } from "./ScopeModel.js";
16
17
  import { SemanticNamespaceModel } from "./SemanticNamespaceModel.js";
17
18
  /**
18
19
  * The root of a Matter model. This is the parent for global models.
19
20
  */
20
- export declare class MatterModel extends Model<MatterElement> implements MatterElement {
21
+ export declare class MatterModel extends ScopeModel<MatterElement> implements MatterElement {
21
22
  tag: MatterElement.Tag;
22
- isTypeScope: boolean;
23
23
  revision?: Specification.Revision;
24
24
  get children(): Children<MatterModel.Child>;
25
25
  set children(children: Children.InputIterable<MatterModel.Child>);
@@ -56,7 +56,7 @@ export declare class MatterModel extends Model<MatterElement> implements MatterE
56
56
  *
57
57
  * @param definition the MatterElement that defines the model
58
58
  */
59
- constructor(definition?: MatterElement.Properties);
59
+ constructor(definition: MatterElement.Definition, ...children: Model.Definition<MatterModel.Child>[]);
60
60
  /**
61
61
  * All sub-cluster global elements from this model.
62
62
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MatterModel.d.ts","sourceRoot":"","sources":["../../../src/models/MatterModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK,CAAC,aAAa,CAAE,YAAW,aAAa;IACjE,GAAG,EAAE,aAAa,CAAC,GAAG,CAAqB;IAC3C,WAAW,UAAQ;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;IAE1C,IAAa,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAEnD;IAED,IAAa,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,EAExE;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAGzB;IAEH;;OAEG;IACH,IAAI,QAAQ,mBAEX;IAED;;OAEG;IACH,IAAI,WAAW,sBAEd;IAED;;OAEG;IACH,IAAI,kBAAkB,6BAErB;IAED;;OAEG;IACH,IAAI,SAAS,sBAEZ;IAED;;OAEG;IACH,IAAI,UAAU,qBAEb;IAED;;OAEG;IACH,IAAI,OAAO,kBAEV;IAED;;;;OAIG;gBACS,UAAU,GAAE,aAAa,CAAC,UAA6C;IAKnF;;;;;;OAMG;IACH,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE,CAErC;CAKJ;AAED,yBAAiB,WAAW,CAAC;IACzB,KAAY,KAAK,GACX,YAAY,GACZ,eAAe,GACf,UAAU,GACV,aAAa,GACb,cAAc,GACd,WAAW,GACX,sBAAsB,CAAC;CAChC"}
1
+ {"version":3,"file":"MatterModel.d.ts","sourceRoot":"","sources":["../../../src/models/MatterModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU,CAAC,aAAa,CAAE,YAAW,aAAa;IACtE,GAAG,EAAE,aAAa,CAAC,GAAG,CAAqB;IAC5C,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;IAE1C,IAAa,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAEnD;IAED,IAAa,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,EAExE;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAGzB;IAEH;;OAEG;IACH,IAAI,QAAQ,mBAEX;IAED;;OAEG;IACH,IAAI,WAAW,sBAEd;IAED;;OAEG;IACH,IAAI,kBAAkB,6BAErB;IAED;;OAEG;IACH,IAAI,SAAS,sBAEZ;IAED;;OAEG;IACH,IAAI,UAAU,qBAEb;IAED;;OAEG;IACH,IAAI,OAAO,kBAEV;IAED;;;;OAIG;gBACS,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;IAMpG;;;;;;OAMG;IACH,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE,CAErC;CAKJ;AAED,yBAAiB,WAAW,CAAC;IACzB,KAAY,KAAK,GACX,YAAY,GACZ,eAAe,GACf,UAAU,GACV,aAAa,GACb,cAAc,GACd,WAAW,GACX,sBAAsB,CAAC;CAChC"}
@@ -30,15 +30,15 @@ var import_FabricModel = require("./FabricModel.js");
30
30
  var import_FieldModel = require("./FieldModel.js");
31
31
  var import_Globals = require("./Globals.js");
32
32
  var import_Model = require("./Model.js");
33
+ var import_ScopeModel = require("./ScopeModel.js");
33
34
  var import_SemanticNamespaceModel = require("./SemanticNamespaceModel.js");
34
35
  /**
35
36
  * @license
36
37
  * Copyright 2022-2024 Matter.js Authors
37
38
  * SPDX-License-Identifier: Apache-2.0
38
39
  */
39
- class MatterModel extends import_Model.Model {
40
+ class MatterModel extends import_ScopeModel.ScopeModel {
40
41
  tag = import_elements.MatterElement.Tag;
41
- isTypeScope = true;
42
42
  get children() {
43
43
  return super.children;
44
44
  }
@@ -93,9 +93,10 @@ class MatterModel extends import_Model.Model {
93
93
  *
94
94
  * @param definition the MatterElement that defines the model
95
95
  */
96
- constructor(definition = { name: "Matter", children: [] }) {
97
- const children = [...definition.children || []];
98
- super({ ...definition, name: definition.name, children });
96
+ constructor(definition, ...children) {
97
+ const name = definition.name ?? "Matter";
98
+ const definitionChildren = [...definition.children || []];
99
+ super({ ...definition, name, children: definitionChildren }, ...children);
99
100
  }
100
101
  /**
101
102
  * All sub-cluster global elements from this model.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/MatterModel.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAA8B;AAC9B,4BAA+B;AAC/B,4BAA+B;AAE/B,0BAA6B;AAE7B,6BAAgC;AAChC,yBAA4B;AAC5B,wBAA2B;AAC3B,qBAAwB;AACxB,mBAAsB;AACtB,oCAAuC;AAlBvC;AAAA;AAAA;AAAA;AAAA;AAuBO,MAAM,oBAAoB,mBAA8C;AAAA,EAClE,MAAyB,8BAAc;AAAA,EACvC,cAAc;AAAA,EAGvB,IAAa,WAAwC;AACjD,WAAO,MAAM;AAAA,EACjB;AAAA,EAEA,IAAa,SAAS,UAAqD;AACvE,UAAM,WAAW;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,WAAwB,IAAI,YAAY;AAAA,IAC3C,MAAM;AAAA,IACN,UAAU,OAAO,OAAO,sBAAO;AAAA,EACnC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,WAAW;AACX,WAAO,KAAK,IAAI,gCAAY;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK,IAAI,sCAAe;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,qBAAqB;AACrB,WAAO,KAAK,IAAI,oDAAsB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAY;AACZ,WAAO,KAAK,IAAI,4BAAU;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAa;AACb,WAAO,KAAK,IAAI,oCAAc;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAU;AACV,WAAO,KAAK,IAAI,8BAAW;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,aAAuC,EAAE,MAAM,UAAU,UAAU,CAAC,EAAE,GAAG;AACjF,UAAM,WAAW,CAAC,GAAI,WAAW,YAAY,CAAC,CAAE;AAChD,UAAM,EAAE,GAAG,YAAY,MAAM,WAAW,MAAM,SAAS,CAAC;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAI,cAAmC;AACnC,WAAO,KAAK,SAAS,OAAO,WAAS,MAAM,MAAM,EAAE,IAAI,WAAS,MAAM,MAAM,CAAC;AAAA,EACjF;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,8BAAc,GAAG,IAAI;AAAA,EACrC;AACJ;AAaA,qCAAe,gBAAgB,YAAY;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAA8B;AAC9B,4BAA+B;AAC/B,4BAA+B;AAE/B,0BAA6B;AAE7B,6BAAgC;AAChC,yBAA4B;AAC5B,wBAA2B;AAC3B,qBAAwB;AACxB,mBAAsB;AACtB,wBAA2B;AAC3B,oCAAuC;AAnBvC;AAAA;AAAA;AAAA;AAAA;AAwBO,MAAM,oBAAoB,6BAAmD;AAAA,EACvE,MAAyB,8BAAc;AAAA,EAGhD,IAAa,WAAwC;AACjD,WAAO,MAAM;AAAA,EACjB;AAAA,EAEA,IAAa,SAAS,UAAqD;AACvE,UAAM,WAAW;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,WAAwB,IAAI,YAAY;AAAA,IAC3C,MAAM;AAAA,IACN,UAAU,OAAO,OAAO,sBAAO;AAAA,EACnC,CAAC;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,WAAW;AACX,WAAO,KAAK,IAAI,gCAAY;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK,IAAI,sCAAe;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,qBAAqB;AACrB,WAAO,KAAK,IAAI,oDAAsB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAY;AACZ,WAAO,KAAK,IAAI,4BAAU;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAa;AACb,WAAO,KAAK,IAAI,oCAAc;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAU;AACV,WAAO,KAAK,IAAI,8BAAW;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,eAAyC,UAAiD;AAClG,UAAM,OAAO,WAAW,QAAQ;AAChC,UAAM,qBAAqB,CAAC,GAAI,WAAW,YAAY,CAAC,CAAE;AAC1D,UAAM,EAAE,GAAG,YAAY,MAAM,UAAU,mBAAmB,GAAG,GAAG,QAAQ;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAI,cAAmC;AACnC,WAAO,KAAK,SAAS,OAAO,WAAS,MAAM,MAAM,EAAE,IAAI,WAAS,MAAM,MAAM,CAAC;AAAA,EACjF;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,8BAAc,GAAG,IAAI;AAAA,EACrC;AACJ;AAaA,qCAAe,gBAAgB,YAAY;",
5
5
  "names": []
6
6
  }
@@ -24,10 +24,6 @@ export declare abstract class Model<T extends BaseElement = BaseElement> {
24
24
  until?: Specification.Revision;
25
25
  id?: number;
26
26
  name: string;
27
- /**
28
- * Indicates that an element may have type definitions as children.
29
- */
30
- isTypeScope?: boolean;
31
27
  /**
32
28
  * Indicates that an element defines a datatype.
33
29
  */
@@ -117,6 +113,10 @@ export declare abstract class Model<T extends BaseElement = BaseElement> {
117
113
  * The set of tags from which this model may derive.
118
114
  */
119
115
  get allowedBaseTags(): ElementTag[];
116
+ /**
117
+ * Update a subset of fields.
118
+ */
119
+ patch(values: Partial<T>): void;
120
120
  /**
121
121
  * Determine whether this element applies to a specific revision.
122
122
  */
@@ -156,6 +156,10 @@ export declare abstract class Model<T extends BaseElement = BaseElement> {
156
156
  * Apply a function to all tree elements.
157
157
  */
158
158
  visit(visitor: (model: Model) => boolean | void): boolean | undefined;
159
+ /**
160
+ * Visit this model and each of its ancestors.
161
+ */
162
+ forEachAncestor(fn: (model: Model) => boolean | void): void;
159
163
  /**
160
164
  * Find all children that reference a specific type.
161
165
  */
@@ -176,7 +180,7 @@ export declare abstract class Model<T extends BaseElement = BaseElement> {
176
180
  * Create an operational extension of the model. This creates a new model that inherits from this model for
177
181
  * operational purposes.
178
182
  */
179
- extend<This extends Model>(this: This, properties?: Partial<BaseElement.Properties<T>>): This;
183
+ extend<This extends Model>(this: This, properties?: Partial<BaseElement.Properties<T>>, ...children: Model.Definition<Model>[]): This;
180
184
  constructor(definition: Model<T> | BaseElement.Properties<T>, ...children: Model.Definition<Model>[]);
181
185
  /**
182
186
  * Freeze the model hierarchy rooted at this model.
@@ -194,7 +198,7 @@ export declare namespace Model {
194
198
  /**
195
199
  * Obtain the element type of a model type.
196
200
  */
197
- type ElementOf<T> = T extends Model<infer E extends AnyElement> ? E : never;
201
+ type ElementOf<T> = T extends Model<infer E extends AnyElement> ? E : AnyElement;
198
202
  /**
199
203
  * Obtain the child type of a model type.
200
204
  */
@@ -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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"}
@@ -43,10 +43,6 @@ class Model {
43
43
  #id = void 0;
44
44
  #name;
45
45
  #frozen;
46
- /**
47
- * Indicates that an element may have type definitions as children.
48
- */
49
- isTypeScope;
50
46
  /**
51
47
  * Indicates that an element defines a datatype.
52
48
  */
@@ -242,6 +238,14 @@ class Model {
242
238
  get allowedBaseTags() {
243
239
  return [this.tag];
244
240
  }
241
+ /**
242
+ * Update a subset of fields.
243
+ */
244
+ patch(values) {
245
+ for (const [k, v] of Object.entries(values.valueOf())) {
246
+ this[k] = v;
247
+ }
248
+ }
245
249
  /**
246
250
  * Determine whether this element applies to a specific revision.
247
251
  */
@@ -316,9 +320,10 @@ class Model {
316
320
  switch (key) {
317
321
  case "parent":
318
322
  case "errors":
319
- case "isTypeScope":
323
+ case "scope":
320
324
  case "isType":
321
325
  case "operationalBase":
326
+ case "isScope":
322
327
  continue;
323
328
  default:
324
329
  if (this[key] !== void 0 && (this[key] !== null || key === "default")) {
@@ -334,6 +339,12 @@ class Model {
334
339
  visit(visitor) {
335
340
  return new import_ModelTraversal.ModelTraversal().visit(this, visitor);
336
341
  }
342
+ /**
343
+ * Visit this model and each of its ancestors.
344
+ */
345
+ forEachAncestor(fn) {
346
+ new import_ModelTraversal.ModelTraversal().visitInheritance(this, fn);
347
+ }
337
348
  /**
338
349
  * Find all children that reference a specific type.
339
350
  */
@@ -363,20 +374,28 @@ class Model {
363
374
  * Create an operational extension of the model. This creates a new model that inherits from this model for
364
375
  * operational purposes.
365
376
  */
366
- extend(properties) {
377
+ extend(properties, ...children) {
367
378
  const constructor = this.constructor;
368
- const extension = new constructor({
379
+ const definition = {
369
380
  id: this.id,
370
381
  name: this.name,
371
382
  ...properties,
372
383
  tag: this.tag,
373
384
  operationalBase: this
374
- });
385
+ };
386
+ if (children.length) {
387
+ if (definition.children) {
388
+ definition.children = [...definition.children, ...children];
389
+ } else {
390
+ definition.children = children;
391
+ }
392
+ }
393
+ const extension = new constructor(definition);
375
394
  return extension;
376
395
  }
377
396
  constructor(definition, ...children) {
378
397
  if (typeof definition !== "object") {
379
- throw new import_general.ImplementationError(`Model definition must be an object, not "${typeof definition}"`);
398
+ throw new import_general.ImplementationError(`Model definition must be an object, not ${typeof definition}`);
380
399
  }
381
400
  const isClone = definition instanceof Model;
382
401
  this.#id = definition.id;
@@ -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
  }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseElement } from "#elements/BaseElement.js";
7
+ import { Scope } from "#logic/Scope.js";
8
+ import { Model } from "./Model.js";
9
+ /**
10
+ * A "scope" is a model provides name resolution for other models.
11
+ *
12
+ * {@link Model#type} must reference a model named in a parent scope.
13
+ */
14
+ export declare abstract class ScopeModel<T extends BaseElement = BaseElement> extends Model<T> {
15
+ #private;
16
+ readonly isScope = true;
17
+ get scope(): Scope;
18
+ freeze(): this;
19
+ static is(model: Model): model is ScopeModel;
20
+ static of(model: Model): ScopeModel<BaseElement>;
21
+ }
22
+ //# sourceMappingURL=ScopeModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopeModel.d.ts","sourceRoot":"","sources":["../../../src/models/ScopeModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;GAIG;AACH,8BAAsB,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;;IAGlF,QAAQ,CAAC,OAAO,QAAQ;IAExB,IAAI,KAAK,UAKR;IAEQ,MAAM;IAQf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,UAAU;IAI5C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK;CAazB"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var ScopeModel_exports = {};
20
+ __export(ScopeModel_exports, {
21
+ ScopeModel: () => ScopeModel
22
+ });
23
+ module.exports = __toCommonJS(ScopeModel_exports);
24
+ var import_errors = require("#common/errors.js");
25
+ var import_ModelTraversal = require("#logic/ModelTraversal.js");
26
+ var import_Scope = require("#logic/Scope.js");
27
+ var import_Model = require("./Model.js");
28
+ /**
29
+ * @license
30
+ * Copyright 2022-2024 Matter.js Authors
31
+ * SPDX-License-Identifier: Apache-2.0
32
+ */
33
+ class ScopeModel extends import_Model.Model {
34
+ #operationalScope;
35
+ isScope = true;
36
+ get scope() {
37
+ if (this.#operationalScope !== void 0) {
38
+ return this.#operationalScope;
39
+ }
40
+ return (0, import_Scope.Scope)(this);
41
+ }
42
+ freeze() {
43
+ if (!this.#operationalScope) {
44
+ this.#operationalScope = (0, import_Scope.Scope)(this);
45
+ }
46
+ super.freeze();
47
+ return this;
48
+ }
49
+ static is(model) {
50
+ return !!model.isScope;
51
+ }
52
+ static of(model) {
53
+ if (model.isScope) {
54
+ return model;
55
+ }
56
+ const scope = new import_ModelTraversal.ModelTraversal().findScope(model);
57
+ if (scope === void 0) {
58
+ throw new import_errors.SchemaImplementationError(model, `No parent scope`);
59
+ }
60
+ return scope;
61
+ }
62
+ }
63
+ //# sourceMappingURL=ScopeModel.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/models/ScopeModel.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAA0C;AAE1C,4BAA+B;AAC/B,mBAAsB;AACtB,mBAAsB;AAVtB;AAAA;AAAA;AAAA;AAAA;AAiBO,MAAe,mBAAwD,mBAAS;AAAA,EACnF;AAAA,EAES,UAAU;AAAA,EAEnB,IAAI,QAAQ;AACR,QAAI,KAAK,sBAAsB,QAAW;AACtC,aAAO,KAAK;AAAA,IAChB;AACA,eAAO,oBAAM,IAAI;AAAA,EACrB;AAAA,EAES,SAAS;AACd,QAAI,CAAC,KAAK,mBAAmB;AACzB,WAAK,wBAAoB,oBAAM,IAAI;AAAA,IACvC;AACA,UAAM,OAAO;AACb,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,GAAG,OAAmC;AACzC,WAAO,CAAC,CAAE,MAAqB;AAAA,EACnC;AAAA,EAEA,OAAO,GAAG,OAAc;AACpB,QAAK,MAAqB,SAAS;AAC/B,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,IAAI,qCAAe,EAAE,UAAU,KAAK;AAElD,QAAI,UAAU,QAAW;AACrB,YAAM,IAAI,wCAA0B,OAAO,iBAAiB;AAAA,IAChE;AAEA,WAAO;AAAA,EACX;AACJ;",
5
+ "names": []
6
+ }