@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
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ElementTag } from "#common/ElementTag.js";
7
+ import type { Model } from "#models/index.js";
8
+ /**
9
+ * Tracks extensions for a scope to models in parent scopes.
10
+ *
11
+ * A child model with the same {tag, name, type} tuple in a derived scope is a semantic extension of the model in the
12
+ * parent scope even if it does not explicitly inherit from the parent via {@link Model#type}. We refer to the implicit
13
+ * base class as a *shadow* and the implicit child class as an *extension*.
14
+ *
15
+ * Note that "type" in above tuple includes either undefined, the model's own name, or extension of the exact same type
16
+ * in both the shadow and the extension. In the former case the shadow is implicit; in the latter case it is explicit.
17
+ *
18
+ * This utility provideds optimized lookup of extensions present in a particular scope.
19
+ *
20
+ * If the scope is frozen the analysis is cached.
21
+ *
22
+ * TODO - there is remaining ambiguity in shadow selection, fine for now but could be eliminated with conformance
23
+ *
24
+ * TODO - currently we only consider shadows at scope root but shadows of nested children is possible with this approach
25
+ */
26
+ export interface Scope {
27
+ /**
28
+ * The model analyzed.
29
+ */
30
+ owner: Model;
31
+ /**
32
+ * Determine if the model is a shadow.
33
+ */
34
+ isShadow(model?: Model): boolean;
35
+ /**
36
+ * Retrieve the extension for an element if it is a shadow.
37
+ */
38
+ extensionOf<T extends Model>(model?: T): undefined | T;
39
+ /**
40
+ * Obtain canonical definition for model. If the input model is a shadow returns the extension, otherwise returns
41
+ * the input model.
42
+ */
43
+ modelFor<T extends Model>(model: T): T;
44
+ /**
45
+ * Identify members (child properties) of the designated model in this scope.
46
+ */
47
+ membersOf<T extends Model>(parent: T, options?: Scope.MemberOptions): Model.ChildOf<T>[];
48
+ }
49
+ /**
50
+ * Obtain the scope for a model.
51
+ *
52
+ * By default, if {@link subject} is not a {@link ScopeModel} the scope returned is for the nearest owning
53
+ * {@link ScopeModel}.
54
+ */
55
+ export declare function Scope(subject: Model, options?: Scope.ScopeOptions): Scope;
56
+ export declare namespace Scope {
57
+ /**
58
+ * Configuration for scope creation.
59
+ */
60
+ interface ScopeOptions {
61
+ /**
62
+ * Force the result to cache regardless of whether model is frozen.
63
+ */
64
+ forceCache?: boolean;
65
+ /**
66
+ * Disable loading of model from cache. Will still write to cache if {@link forceCache} is true.
67
+ */
68
+ disableCache?: boolean;
69
+ /**
70
+ * Force the input model as an owner even if it is not a {@link ScopeOwner}.
71
+ */
72
+ forceOwner?: boolean;
73
+ }
74
+ /**
75
+ * Return all members regardless of conformance.
76
+ */
77
+ const IgnoreConformance = "ignore";
78
+ /**
79
+ * Use conformance to resolve conflicts but otherwise return all members. Useful to detect errors in input
80
+ * that may contain non-conformant values.
81
+ */
82
+ const DeconflictedConformance = "deconflicted";
83
+ /**
84
+ * Only return conformant members.
85
+ */
86
+ const ConformantConformance = "conformant";
87
+ /**
88
+ * Determines how to apply conformance when selecting members.
89
+ */
90
+ type ConformanceMode = typeof IgnoreConformance | typeof DeconflictedConformance | typeof ConformantConformance;
91
+ interface MemberOptions {
92
+ /**
93
+ * Conformance filtering mode.
94
+ */
95
+ conformance?: ConformanceMode;
96
+ /**
97
+ * Applicable tags. Defaults to "field" and "attribute".
98
+ */
99
+ tags?: Set<ElementTag> | ElementTag[];
100
+ }
101
+ }
102
+ //# sourceMappingURL=Scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../../src/logic/Scope.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAOnD,OAAO,KAAK,EAAgB,KAAK,EAA0B,MAAM,kBAAkB,CAAC;AAOpF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,KAAK;IAClB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAEjC;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;IAEvD;;;OAGG;IACH,QAAQ,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5F;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,GAAE,KAAK,CAAC,YAAiB,SA8GrE;AAED,yBAAiB,KAAK,CAAC;IACnB;;OAEG;IACH,UAAiB,YAAY;QACzB;;WAEG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB;;WAEG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;KACxB;IAED;;OAEG;IACI,MAAM,iBAAiB,WAAW,CAAC;IAE1C;;;OAGG;IACI,MAAM,uBAAuB,iBAAiB,CAAC;IAEtD;;OAEG;IACI,MAAM,qBAAqB,eAAe,CAAC;IAElD;;OAEG;IACH,KAAY,eAAe,GACrB,OAAO,iBAAiB,GACxB,OAAO,uBAAuB,GAC9B,OAAO,qBAAqB,CAAC;IAEnC,UAAiB,aAAa;QAC1B;;WAEG;QACH,WAAW,CAAC,EAAE,eAAe,CAAC;QAE9B;;WAEG;QACH,IAAI,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,EAAE,CAAC;KACzC;CACJ"}
@@ -0,0 +1,220 @@
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 Scope_exports = {};
20
+ __export(Scope_exports, {
21
+ Scope: () => Scope
22
+ });
23
+ module.exports = __toCommonJS(Scope_exports);
24
+ var import_ElementTag = require("#common/ElementTag.js");
25
+ var import_errors = require("#common/errors.js");
26
+ var import_FeatureSet = require("#common/FeatureSet.js");
27
+ var import_general = require("@matter/general");
28
+ var import_ModelTraversal = require("./ModelTraversal.js");
29
+ /**
30
+ * @license
31
+ * Copyright 2022-2024 Matter.js Authors
32
+ * SPDX-License-Identifier: Apache-2.0
33
+ */
34
+ const DEFAULT_TAGS = /* @__PURE__ */ new Set([import_ElementTag.ElementTag.Field, import_ElementTag.ElementTag.Attribute]);
35
+ const GLOBAL_IDS = /* @__PURE__ */ new Set([65533, 65532, 65531, 65530, 65529, 65528]);
36
+ const cache = /* @__PURE__ */ new WeakMap();
37
+ function Scope(subject, options = {}) {
38
+ let owner;
39
+ if (subject.isScope || options.forceOwner) {
40
+ owner = subject;
41
+ } else {
42
+ const scope = new import_ModelTraversal.ModelTraversal().findScope(subject);
43
+ if (scope === void 0) {
44
+ throw new import_errors.SchemaImplementationError(subject, `No parent scope`);
45
+ }
46
+ owner = scope;
47
+ }
48
+ const useCache = options.forceCache || Object.isFrozen(owner);
49
+ let deconflictedMemberCache;
50
+ let conformantMemberCache;
51
+ let { featureNames, supportedFeatures } = owner;
52
+ if (!featureNames) {
53
+ featureNames = new import_FeatureSet.FeatureSet();
54
+ }
55
+ if (!supportedFeatures) {
56
+ supportedFeatures = new import_FeatureSet.FeatureSet();
57
+ }
58
+ if (useCache && !options.disableCache) {
59
+ const cached = cache.get(owner);
60
+ if (cached) {
61
+ return cached;
62
+ }
63
+ deconflictedMemberCache = /* @__PURE__ */ new Map();
64
+ conformantMemberCache = /* @__PURE__ */ new Map();
65
+ }
66
+ let shadows;
67
+ const canonicalIdentityLevels = {};
68
+ let level = 0;
69
+ new import_ModelTraversal.ModelTraversal().visitInheritance(owner, (scope) => {
70
+ level++;
71
+ for (const model of scope.children) {
72
+ for (const identity of [`n${model.tag}\u241C${model.name}\u241C${model.discriminator ?? ""}`]) {
73
+ const canonical = canonicalIdentityLevels[identity];
74
+ if (canonical === void 0) {
75
+ canonicalIdentityLevels[identity] = {
76
+ level,
77
+ models: [model]
78
+ };
79
+ } else if (canonical.level === level) {
80
+ canonical.models.push(model);
81
+ } else {
82
+ if (!shadows) {
83
+ shadows = /* @__PURE__ */ new WeakMap();
84
+ }
85
+ shadows.set(model, canonical.models);
86
+ }
87
+ }
88
+ }
89
+ });
90
+ const result = {
91
+ owner,
92
+ isShadow: shadows ? (model) => shadows.has(model) : () => false,
93
+ extensionOf: shadows ? (model) => shadows.get(model)?.[0] : (model) => model,
94
+ modelFor: shadows ? (model) => shadows.get(model)?.[0] ?? model : (model) => model,
95
+ membersOf
96
+ };
97
+ function membersOf(parent, options2 = {}) {
98
+ const { conformance: conformanceMode, tags } = options2;
99
+ const allMembers = findAllMembers(parent, Array.isArray(tags) ? new Set(tags) : tags ?? DEFAULT_TAGS, result);
100
+ if (parent.tag === import_ElementTag.ElementTag.Cluster) {
101
+ injectGlobalAttributes(owner, allMembers);
102
+ }
103
+ if (!conformanceMode || conformanceMode === "ignore") {
104
+ return allMembers;
105
+ }
106
+ const conformantOnly = conformanceMode === "conformant";
107
+ if (!conformantOnly && conformanceMode !== "deconflicted") {
108
+ throw new import_general.ImplementationError(`Invalid member conformance mode ${conformanceMode}`);
109
+ }
110
+ return filterWithConformance(
111
+ parent,
112
+ allMembers,
113
+ featureNames,
114
+ supportedFeatures,
115
+ conformantOnly,
116
+ conformantOnly ? deconflictedMemberCache : conformantMemberCache
117
+ );
118
+ }
119
+ if (useCache) {
120
+ cache.set(owner, result);
121
+ }
122
+ return result;
123
+ }
124
+ ((Scope2) => {
125
+ Scope2.IgnoreConformance = "ignore";
126
+ Scope2.DeconflictedConformance = "deconflicted";
127
+ Scope2.ConformantConformance = "conformant";
128
+ })(Scope || (Scope = {}));
129
+ function findAllMembers(parent, tags, scope) {
130
+ const members = Array();
131
+ const defined = {};
132
+ const visited = /* @__PURE__ */ new Set();
133
+ const traversal = new import_ModelTraversal.ModelTraversal();
134
+ let level = 0;
135
+ const childSearchVisitor = (model) => {
136
+ const extension = scope.modelFor(model);
137
+ if (extension !== model && !visited.has(extension)) {
138
+ traversal.visitInheritance(extension, childSearchVisitor);
139
+ return false;
140
+ }
141
+ visited.add(model);
142
+ level++;
143
+ for (const child of model.children) {
144
+ if (!tags.has(child.tag)) {
145
+ continue;
146
+ }
147
+ const nameIdentity = `s\u241C${child.tag}\u241C${child.name}\u241C${child.discriminator ?? ""}`;
148
+ const nameLevel = defined[nameIdentity];
149
+ if (nameLevel !== void 0 && nameLevel < level) {
150
+ continue;
151
+ }
152
+ defined[nameIdentity] = level;
153
+ members.push(child);
154
+ }
155
+ };
156
+ traversal.visitInheritance(parent, childSearchVisitor);
157
+ return members;
158
+ }
159
+ function injectGlobalAttributes(scope, members) {
160
+ const missingGlobalIds = new Set(GLOBAL_IDS);
161
+ for (const m of members) {
162
+ if (m.tag === import_ElementTag.ElementTag.Attribute && m.id) {
163
+ missingGlobalIds.delete(m.id);
164
+ }
165
+ }
166
+ if (missingGlobalIds.size) {
167
+ const root = new import_ModelTraversal.ModelTraversal().findRoot(scope);
168
+ if (root) {
169
+ for (const id of missingGlobalIds) {
170
+ const global = root.children.select(id, [import_ElementTag.ElementTag.Attribute]);
171
+ if (global) {
172
+ members.push(global);
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
178
+ function filterWithConformance(parent, members, features, supportedFeatures, conformantOnly, cache2) {
179
+ const cached = cache2?.get(parent);
180
+ if (cached) {
181
+ return cached;
182
+ }
183
+ const selectedMembers = {};
184
+ for (const member of members) {
185
+ const { conformance } = member;
186
+ if (!conformance) {
187
+ throw new import_general.ImplementationError(
188
+ `Conformance filtering invoked on ${member} which does not support conformance`
189
+ );
190
+ }
191
+ if (conformantOnly && !conformance.isApplicable(features, supportedFeatures)) {
192
+ continue;
193
+ }
194
+ const other = selectedMembers[member.name];
195
+ if (other !== void 0) {
196
+ if (!conformantOnly && !conformance.isApplicable(features, supportedFeatures)) {
197
+ continue;
198
+ }
199
+ const { conformance: otherConformance } = other;
200
+ if (!otherConformance) {
201
+ throw new import_general.ImplementationError(
202
+ `Conformance filtering invoked on ${other} which does not support conformance`
203
+ );
204
+ }
205
+ if (otherConformance.isApplicable(features, supportedFeatures)) {
206
+ throw new import_errors.SchemaImplementationError(
207
+ parent,
208
+ `There are multiple definitions of "${member.name}" that cannot be differentiated by conformance`
209
+ );
210
+ }
211
+ }
212
+ selectedMembers[member.name] = member;
213
+ }
214
+ const result = Object.values(selectedMembers);
215
+ if (cache2) {
216
+ cache2.set(parent, result);
217
+ }
218
+ return result;
219
+ }
220
+ //# sourceMappingURL=Scope.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/logic/Scope.ts"],
4
+ "mappings": "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",
5
+ "names": ["options", "Scope", "cache"]
6
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ModelValidator.d.ts","sourceRoot":"","sources":["../../../../src/logic/definition-validation/ModelValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAgB,KAAK,EAAgC,MAAM,uBAAuB,CAAC;AAE1F;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,KAAK;IAC3B,SAAS,CAAC,KAAK,EAAE,CAAC;gBAAR,KAAK,EAAE,CAAC;IAE9B,QAAQ;IAyBR,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAInC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC,EAAE;IAoB9F,SAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,kBAAkB;IAuCvF,OAAO,CAAC,uBAAuB;CAgClC;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,UAAU,EAAS,GAC3B,GAAiB,IAAV,UAAU,GAAG,KAAK,KAAK,EAAE,GAAG,KAAK,cAAc,CAAC,GAAG,CAAC,GAC/D,CAAC;CACL"}
1
+ {"version":3,"file":"ModelValidator.d.ts","sourceRoot":"","sources":["../../../../src/logic/definition-validation/ModelValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAgB,KAAK,EAAgC,MAAM,uBAAuB,CAAC;AAE1F;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,KAAK;IAC3B,SAAS,CAAC,KAAK,EAAE,CAAC;gBAAR,KAAK,EAAE,CAAC;IAE9B,QAAQ;IAyBR,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAInC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC,EAAE;IAoB9F,SAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,kBAAkB;IAuCvF,OAAO,CAAC,uBAAuB;CAgClC;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,UAAU,EAAS,GAC3B,GAAG,IAAI,UAAU,GAAG,KAAK,KAAK,EAAE,GAAG,KAAK,cAAc,CAAC,GAAG,CAAC,GAC/D,CAAC;CACL"}
@@ -12,6 +12,7 @@ export * from "./ClusterVariance.js";
12
12
  export * from "./DefaultValue.js";
13
13
  export * from "./MergedModel.js";
14
14
  export * from "./ModelVariantTraversal.js";
15
+ export * from "./Scope.js";
15
16
  export * from "./ValidateModel.js";
16
17
  import "./definition-validation/index.js";
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logic/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qCAAqC,CAAC;AACpD,cAAc,kDAAkD,CAAC;AACjE,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,OAAO,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logic/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qCAAqC,CAAC;AACpD,cAAc,kDAAkD,CAAC;AACjE,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,OAAO,kCAAkC,CAAC"}
@@ -24,6 +24,7 @@ __reExport(logic_exports, require("./ClusterVariance.js"), module.exports);
24
24
  __reExport(logic_exports, require("./DefaultValue.js"), module.exports);
25
25
  __reExport(logic_exports, require("./MergedModel.js"), module.exports);
26
26
  __reExport(logic_exports, require("./ModelVariantTraversal.js"), module.exports);
27
+ __reExport(logic_exports, require("./Scope.js"), module.exports);
27
28
  __reExport(logic_exports, require("./ValidateModel.js"), module.exports);
28
29
  var import_definition_validation = require("./definition-validation/index.js");
29
30
  /**
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/logic/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,0BAAc,gDANd;AAOA,0BAAc,6DAPd;AAQA,0BAAc,qDARd;AASA,0BAAc,kDATd;AAUA,0BAAc,oDAVd;AAWA,0BAAc,iCAXd;AAYA,0BAAc,8BAZd;AAaA,0BAAc,6BAbd;AAcA,0BAAc,uCAdd;AAeA,0BAAc,+BAfd;AAgBA,mCAAO;AAhBP;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,0BAAc,gDANd;AAOA,0BAAc,6DAPd;AAQA,0BAAc,qDARd;AASA,0BAAc,kDATd;AAUA,0BAAc,oDAVd;AAWA,0BAAc,iCAXd;AAYA,0BAAc,8BAZd;AAaA,0BAAc,6BAbd;AAcA,0BAAc,uCAdd;AAeA,0BAAc,uBAfd;AAgBA,0BAAc,+BAhBd;AAiBA,mCAAO;AAjBP;AAAA;AAAA;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
@@ -16,6 +16,26 @@ export declare class AttributeModel extends PropertyModel<AttributeElement> impl
16
16
  get fabricScoped(): boolean;
17
17
  get fixed(): boolean;
18
18
  get changesOmitted(): boolean | undefined;
19
+ get requiredFields(): {
20
+ id: number;
21
+ tag: `${AttributeElement.Tag}`;
22
+ name: string;
23
+ type?: string;
24
+ description?: string;
25
+ details?: string;
26
+ xref?: import("../index.js").Specification.CrossReference;
27
+ children?: (import("../elements/BaseElement.js").BaseElement[] & import("../elements/ValueElement.js").ValueElement[]) | undefined;
28
+ isGlobal?: boolean;
29
+ isSeed?: boolean;
30
+ asOf?: import("../index.js").Specification.Revision;
31
+ until?: import("../index.js").Specification.Revision;
32
+ constraint?: import("../index.js").Constraint.Definition;
33
+ conformance?: import("../index.js").Conformance.Definition;
34
+ access?: import("../index.js").Access.Definition;
35
+ quality?: import("../index.js").Quality.Definition;
36
+ byteSize?: import("../elements/ValueElement.js").ValueElement.ByteSize;
37
+ default?: import("../index.js").FieldValue;
38
+ };
19
39
  constructor(definition: AttributeElement.Properties);
20
40
  static isGlobal(model: Model): boolean;
21
41
  static get globalIds(): Set<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeModel.d.ts","sourceRoot":"","sources":["../../../src/models/AttributeModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,eAAO,MAAM,UAAU,aAA4D,CAAC;AAEpF,qBAAa,cAAe,SAAQ,aAAa,CAAC,gBAAgB,CAAE,YAAW,gBAAgB;IAClF,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAwB;IAClD,EAAE,EAAE,GAAG,CAAC;IAEhB,IAAI,QAAQ,YAEX;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,YAAY,YAEf;IAED,IAAI,KAAK,YAER;IAED,IAAI,cAAc,wBAEjB;gBAEW,UAAU,EAAE,gBAAgB,CAAC,UAAU;IAQnD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAI5B,MAAM,KAAK,SAAS,gBAEnB;IAED,MAAM,CAAC,GAAG,mCAAwB;CACrC"}
1
+ {"version":3,"file":"AttributeModel.d.ts","sourceRoot":"","sources":["../../../src/models/AttributeModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,eAAO,MAAM,UAAU,aAA4D,CAAC;AAEpF,qBAAa,cAAe,SAAQ,aAAa,CAAC,gBAAgB,CAAE,YAAW,gBAAgB;IAClF,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAwB;IAClD,EAAE,EAAE,GAAG,CAAC;IAEhB,IAAI,QAAQ,YAEX;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,YAAY,YAEf;IAED,IAAI,KAAK,YAER;IAED,IAAI,cAAc,wBAEjB;IAED,IAAa,cAAc;;gBA1BuC,iBAErE,GAAG;;;;;;;;;;;;;;;;;MA0BC;gBAEW,UAAU,EAAE,gBAAgB,CAAC,UAAU;IAQnD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAI5B,MAAM,KAAK,SAAS,gBAEnB;IAED,MAAM,CAAC,GAAG,mCAAwB;CACrC"}
@@ -48,6 +48,9 @@ class AttributeModel extends import_PropertyModel.PropertyModel {
48
48
  get changesOmitted() {
49
49
  return this.effectiveQuality.changesOmitted;
50
50
  }
51
+ get requiredFields() {
52
+ return { ...super.requiredFields, id: this.id };
53
+ }
51
54
  constructor(definition) {
52
55
  super(definition);
53
56
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/AttributeModel.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAAiC;AACjC,mBAAsB;AACtB,2BAA8B;AAT9B;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,aAAa,oBAAI,IAAI,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAM,CAAC;AAE3E,MAAM,uBAAuB,mCAA4D;AAAA,EACnF,MAA4B,iCAAiB;AAAA,EAGtD,IAAI,WAAW;AACX,WAAO,KAAK,gBAAgB;AAAA,EAChC;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,CAAC,KAAK,SAAS,KAAK,gBAAgB;AAAA,EAC/C;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,CAAC,CAAC,KAAK,gBAAgB;AAAA,EAClC;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,CAAC,CAAC,KAAK,iBAAiB;AAAA,EACnC;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AAAA,EAEA,YAAY,YAAyC;AACjD,UAAM,UAAU;AAAA,EACpB;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,iCAAiB,GAAG,IAAI;AAAA,EACxC;AAAA,EAEA,OAAO,SAAS,OAAc;AAC1B,WAAO,iBAAiB,kBAAkB,WAAW,IAAI,MAAM,EAAE;AAAA,EACrE;AAAA,EAEA,WAAW,YAAY;AACnB,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,MAAM,iCAAiB;AAClC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAAiC;AACjC,mBAAsB;AACtB,2BAA8B;AAT9B;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,aAAa,oBAAI,IAAI,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAM,CAAC;AAE3E,MAAM,uBAAuB,mCAA4D;AAAA,EACnF,MAA4B,iCAAiB;AAAA,EAGtD,IAAI,WAAW;AACX,WAAO,KAAK,gBAAgB;AAAA,EAChC;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,CAAC,KAAK,SAAS,KAAK,gBAAgB;AAAA,EAC/C;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,CAAC,CAAC,KAAK,gBAAgB;AAAA,EAClC;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,CAAC,CAAC,KAAK,iBAAiB;AAAA,EACnC;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AAAA,EAEA,IAAa,iBAAiB;AAC1B,WAAO,EAAE,GAAG,MAAM,gBAAgB,IAAI,KAAK,GAAG;AAAA,EAClD;AAAA,EAEA,YAAY,YAAyC;AACjD,UAAM,UAAU;AAAA,EACpB;AAAA,EAEA,OAAO;AACH,uBAAM,MAAM,iCAAiB,GAAG,IAAI;AAAA,EACxC;AAAA,EAEA,OAAO,SAAS,OAAc;AAC1B,WAAO,iBAAiB,kBAAkB,WAAW,IAAI,MAAM,EAAE;AAAA,EACrE;AAAA,EAEA,WAAW,YAAY;AACnB,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,MAAM,iCAAiB;AAClC;",
5
5
  "names": []
6
6
  }
@@ -41,6 +41,10 @@ export interface Children<T extends Model = Model> extends Array<T> {
41
41
  * Like {@link select} but retrieves all models for which selection applies.
42
42
  */
43
43
  selectAll(selector: Children.Selector, allowedTags?: Children.TagSelector, except?: Set<Model>): Model.ChildOf<T>[];
44
+ /**
45
+ * Create a new child or patch existing children.
46
+ */
47
+ patchOrPush<C extends Model.Definition<T>>(child: C): void;
44
48
  /**
45
49
  * Models invoke this when their ID changes so we can update internal bookkeeping.
46
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Children.d.ts","sourceRoot":"","sources":["../../../src/models/Children.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA2B,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IAC/D;;;;OAIG;IACH,IAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC;IAEjD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAElF;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAE/F;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;IAEtF;;;OAGG;IACH,MAAM,CACF,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,EAClC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GACpB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpH;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAExD;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;CAClB;AAID;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAC5C,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,GA2iBlB,QAAQ,CAAC,CAAC,CAAC,CAC7B;AAED,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,KAAY,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;IAErE;;;OAGG;IACH,KAAY,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,GAAG,GAAG,UAAU,EAAE,CAAC;IAEtE;;OAEG;IACH,KAAY,aAAa,CAAC,CAAC,SAAS,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E"}
1
+ {"version":3,"file":"Children.d.ts","sourceRoot":"","sources":["../../../src/models/Children.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA2B,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IAC/D;;;;OAIG;IACH,IAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC;IAEjD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAElF;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAE/F;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;IAEtF;;;OAGG;IACH,MAAM,CACF,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,EAClC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GACpB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpH;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAExD;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;CAClB;AAID;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAC5C,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,GA6jBlB,QAAQ,CAAC,CAAC,CAAC,CAC7B;AAED,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,KAAY,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;IAErE;;;OAGG;IACH,KAAY,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,GAAG,GAAG,UAAU,EAAE,CAAC;IAEtE;;OAEG;IACH,KAAY,aAAa,CAAC,CAAC,SAAS,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E"}
@@ -267,6 +267,17 @@ function Children(initial, adopt, disown) {
267
267
  }
268
268
  return results;
269
269
  }
270
+ function patchOrPush(child) {
271
+ validateChild(child);
272
+ const existing = selectAll.call(self, child.name, [child.tag]);
273
+ if (existing.length) {
274
+ for (const toPatch of existing) {
275
+ toPatch.patch(child);
276
+ }
277
+ } else {
278
+ self.push(child);
279
+ }
280
+ }
270
281
  function updateId(child, oldId) {
271
282
  if (!indices) {
272
283
  return;
@@ -359,6 +370,8 @@ function Children(initial, adopt, disown) {
359
370
  return select;
360
371
  case "selectAll":
361
372
  return selectAll;
373
+ case "patchOrPush":
374
+ return patchOrPush;
362
375
  case "updateId":
363
376
  return updateId;
364
377
  case "updateName":
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/Children.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -15,13 +15,12 @@ import { DatatypeModel } from "./DatatypeModel.js";
15
15
  import { EventModel } from "./EventModel.js";
16
16
  import type { FieldModel } from "./FieldModel.js";
17
17
  import { Model } from "./Model.js";
18
- import { PropertyModel } from "./PropertyModel.js";
19
- export declare class ClusterModel extends Model<ClusterElement> implements ClusterElement {
18
+ import { ScopeModel } from "./ScopeModel.js";
19
+ export declare class ClusterModel extends ScopeModel<ClusterElement> implements ClusterElement {
20
20
  tag: ClusterElement.Tag;
21
21
  id: Mei;
22
22
  classification?: ClusterElement.Classification;
23
23
  pics?: string;
24
- isTypeScope: boolean;
25
24
  get children(): Children<ClusterModel.Child>;
26
25
  set children(children: Children.InputIterable<ClusterModel.Child>);
27
26
  get diagnostics(): boolean | undefined;
@@ -32,9 +31,6 @@ export declare class ClusterModel extends Model<ClusterElement> implements Clust
32
31
  get commands(): CommandModel[];
33
32
  get events(): EventModel[];
34
33
  get datatypes(): DatatypeModel[];
35
- get members(): PropertyModel[];
36
- get activeMembers(): import("./ValueModel.js").ValueModel<import("../elements/ValueElement.js").ValueElement>[];
37
- get conformantMembers(): import("./ValueModel.js").ValueModel<import("../elements/ValueElement.js").ValueElement>[];
38
34
  /**
39
35
  * Get attributes, commands and events whether inherited or defined directly in this model.
40
36
  */
@@ -48,10 +44,13 @@ export declare class ClusterModel extends Model<ClusterElement> implements Clust
48
44
  get effectiveMetatype(): Metatype;
49
45
  get effectiveAccess(): Access;
50
46
  valueOf(): ClusterElement;
51
- constructor(definition: ClusterElement.Properties);
47
+ constructor(definition: ClusterModel.Definition, ...children: Model.Definition<ClusterModel.Child>[]);
52
48
  static Tag: ElementTag;
53
49
  }
54
50
  export declare namespace ClusterModel {
51
+ type Definition = ClusterElement.Properties & {
52
+ supportedFeatures?: FeatureSet.Definition;
53
+ };
55
54
  type Child = DatatypeModel | AttributeModel | CommandModel | EventModel | FieldModel;
56
55
  }
57
56
  //# sourceMappingURL=ClusterModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterModel.d.ts","sourceRoot":"","sources":["../../../src/models/ClusterModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKtD,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,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,qBAAa,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAE,YAAW,cAAc;IACpE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAsB;IAC9C,EAAE,EAAE,GAAG,CAAC;IACR,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,UAAQ;IAE5B,IAAa,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAEpD;IAED,IAAa,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,EAEzE;IAED,IAAI,WAAW,wBAEd;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAEnD;IACD,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,UAAU,qBAEb;IAED,IAAI,QAAQ,mBAEX;IAED,IAAI,MAAM,iBAET;IAED,IAAI,SAAS,oBAEZ;IAED,IAAI,OAAO,IAAI,aAAa,EAAE,CA4B7B;IAED,IAAI,aAAa,+FAEhB;IAED,IAAI,iBAAiB,+FAEpB;IAED;;OAEG;IACH,IAAI,OAAO,IAKD,CAAC,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC,EAAE,CACvD;IAED,IAAI,QAAQ,WAOX;IAED,IAAI,QAAQ,6EAEX;IAED,IAAI,UAAU,mBAEb;IAED,IAAI,YAAY,IAAI,UAAU,CAE7B;IAED,IAAI,iBAAiB,IAAI,UAAU,CAQlC;IAED,IAAI,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,GAAG,SAAS,EAiChE;IAED,IAAI,iBAAiB,aAEpB;IAED,IAAI,eAAe,WAElB;IAEQ,OAAO,IAKK,cAAc;gBAGvB,UAAU,EAAE,cAAc,CAAC,UAAU;IAQjD,MAAM,CAAC,GAAG,aAAsB;CAKnC;AAED,yBAAiB,YAAY,CAAC;IAC1B,KAAY,KAAK,GACX,aAAa,GACb,cAAc,GACd,YAAY,GACZ,UAAU,GAIV,UAAU,CAAC;CACpB"}
1
+ {"version":3,"file":"ClusterModel.d.ts","sourceRoot":"","sources":["../../../src/models/ClusterModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,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,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,qBAAa,YAAa,SAAQ,UAAU,CAAC,cAAc,CAAE,YAAW,cAAc;IACzE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAsB;IAC9C,EAAE,EAAE,GAAG,CAAC;IACR,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEtB,IAAa,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAEpD;IAED,IAAa,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,EAEzE;IAED,IAAI,WAAW,wBAEd;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAEnD;IACD,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,UAAU,qBAEb;IAED,IAAI,QAAQ,mBAEX;IAED,IAAI,MAAM,iBAET;IAED,IAAI,SAAS,oBAEZ;IAED;;OAEG;IACH,IAAI,OAAO,IACsG,CACvG,cAAc,GACd,YAAY,GACZ,UAAU,CACf,EAAE,CACN;IAED,IAAI,QAAQ,WAOX;IAED,IAAI,QAAQ,6EAEX;IAED,IAAI,UAAU,mBAEb;IAED,IAAI,YAAY,IAAI,UAAU,CAE7B;IAED,IAAI,iBAAiB,IAAI,UAAU,CAQlC;IAED,IAAI,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,GAAG,SAAS,EAiChE;IAED,IAAI,iBAAiB,aAEpB;IAED,IAAI,eAAe,WAElB;IAEQ,OAAO,IAKK,cAAc;gBAGvB,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;IAQpG,MAAM,CAAC,GAAG,aAAsB;CAKnC;AAED,yBAAiB,YAAY,CAAC;IAC1B,KAAY,UAAU,GAAG,cAAc,CAAC,UAAU,GAAG;QAAE,iBAAiB,CAAC,EAAE,UAAU,CAAC,UAAU,CAAA;KAAE,CAAC;IAEnG,KAAY,KAAK,GACX,aAAa,GACb,cAAc,GACd,YAAY,GACZ,UAAU,GAGV,UAAU,CAAC;CACpB"}