@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.
- package/dist/cjs/elements/MatterElement.d.ts +5 -1
- package/dist/cjs/elements/MatterElement.d.ts.map +1 -1
- package/dist/cjs/elements/MatterElement.js +1 -1
- package/dist/cjs/elements/MatterElement.js.map +1 -1
- package/dist/cjs/logic/DefaultValue.d.ts +3 -1
- package/dist/cjs/logic/DefaultValue.d.ts.map +1 -1
- package/dist/cjs/logic/DefaultValue.js +11 -11
- package/dist/cjs/logic/DefaultValue.js.map +1 -1
- package/dist/cjs/logic/ModelTraversal.d.ts +6 -35
- package/dist/cjs/logic/ModelTraversal.d.ts.map +1 -1
- package/dist/cjs/logic/ModelTraversal.js +15 -109
- package/dist/cjs/logic/ModelTraversal.js.map +1 -1
- package/dist/cjs/logic/ModelVariantTraversal.d.ts.map +1 -1
- package/dist/cjs/logic/ModelVariantTraversal.js.map +1 -1
- package/dist/cjs/logic/Scope.d.ts +102 -0
- package/dist/cjs/logic/Scope.d.ts.map +1 -0
- package/dist/cjs/logic/Scope.js +220 -0
- package/dist/cjs/logic/Scope.js.map +6 -0
- package/dist/cjs/logic/definition-validation/ModelValidator.d.ts.map +1 -1
- package/dist/cjs/logic/index.d.ts +1 -0
- package/dist/cjs/logic/index.d.ts.map +1 -1
- package/dist/cjs/logic/index.js +1 -0
- package/dist/cjs/logic/index.js.map +1 -1
- package/dist/cjs/models/AttributeModel.d.ts +20 -0
- package/dist/cjs/models/AttributeModel.d.ts.map +1 -1
- package/dist/cjs/models/AttributeModel.js +3 -0
- package/dist/cjs/models/AttributeModel.js.map +1 -1
- package/dist/cjs/models/Children.d.ts +4 -0
- package/dist/cjs/models/Children.d.ts.map +1 -1
- package/dist/cjs/models/Children.js +13 -0
- package/dist/cjs/models/Children.js.map +1 -1
- package/dist/cjs/models/ClusterModel.d.ts +6 -7
- package/dist/cjs/models/ClusterModel.d.ts.map +1 -1
- package/dist/cjs/models/ClusterModel.js +5 -38
- package/dist/cjs/models/ClusterModel.js.map +1 -1
- package/dist/cjs/models/CommandModel.d.ts +22 -0
- package/dist/cjs/models/CommandModel.d.ts.map +1 -1
- package/dist/cjs/models/CommandModel.js +3 -0
- package/dist/cjs/models/CommandModel.js.map +1 -1
- package/dist/cjs/models/DatatypeModel.js +0 -2
- package/dist/cjs/models/DatatypeModel.js.map +1 -1
- package/dist/cjs/models/EventModel.d.ts +21 -0
- package/dist/cjs/models/EventModel.d.ts.map +1 -1
- package/dist/cjs/models/EventModel.js +3 -0
- package/dist/cjs/models/EventModel.js.map +1 -1
- package/dist/cjs/models/MatterModel.d.ts +3 -3
- package/dist/cjs/models/MatterModel.d.ts.map +1 -1
- package/dist/cjs/models/MatterModel.js +6 -5
- package/dist/cjs/models/MatterModel.js.map +1 -1
- package/dist/cjs/models/Model.d.ts +10 -6
- package/dist/cjs/models/Model.d.ts.map +1 -1
- package/dist/cjs/models/Model.js +28 -9
- package/dist/cjs/models/Model.js.map +1 -1
- package/dist/cjs/models/ScopeModel.d.ts +22 -0
- package/dist/cjs/models/ScopeModel.d.ts.map +1 -0
- package/dist/cjs/models/ScopeModel.js +63 -0
- package/dist/cjs/models/ScopeModel.js.map +6 -0
- package/dist/cjs/models/ValueModel.d.ts +7 -21
- package/dist/cjs/models/ValueModel.d.ts.map +1 -1
- package/dist/cjs/models/ValueModel.js +15 -34
- package/dist/cjs/models/ValueModel.js.map +1 -1
- package/dist/cjs/models/index.d.ts +1 -0
- package/dist/cjs/models/index.d.ts.map +1 -1
- package/dist/cjs/models/index.js +1 -0
- package/dist/cjs/models/index.js.map +1 -1
- package/dist/cjs/standard/elements/ColorControl.js +3 -4
- package/dist/cjs/standard/elements/ColorControl.js.map +1 -1
- package/dist/cjs/standard/elements/ModeBase.js +1 -1
- package/dist/cjs/standard/elements/ModeBase.js.map +1 -1
- package/dist/cjs/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
- package/dist/cjs/standard/elements/PumpConfigurationAndControl.js +3 -20
- package/dist/cjs/standard/elements/PumpConfigurationAndControl.js.map +1 -1
- package/dist/cjs/standard/elements/UserLabel.d.ts.map +1 -1
- package/dist/cjs/standard/elements/UserLabel.js +13 -16
- package/dist/cjs/standard/elements/UserLabel.js.map +1 -1
- package/dist/cjs/standard/elements/WildcardPathFlagsBitmap.d.ts.map +1 -1
- package/dist/cjs/standard/elements/WildcardPathFlagsBitmap.js +1 -5
- package/dist/cjs/standard/elements/WildcardPathFlagsBitmap.js.map +1 -1
- package/dist/cjs/standard/elements/WindowCovering.js +2 -2
- package/dist/esm/elements/MatterElement.d.ts +5 -1
- package/dist/esm/elements/MatterElement.d.ts.map +1 -1
- package/dist/esm/elements/MatterElement.js +1 -1
- package/dist/esm/elements/MatterElement.js.map +1 -1
- package/dist/esm/logic/DefaultValue.d.ts +3 -1
- package/dist/esm/logic/DefaultValue.d.ts.map +1 -1
- package/dist/esm/logic/DefaultValue.js +11 -11
- package/dist/esm/logic/DefaultValue.js.map +1 -1
- package/dist/esm/logic/ModelTraversal.d.ts +6 -35
- package/dist/esm/logic/ModelTraversal.d.ts.map +1 -1
- package/dist/esm/logic/ModelTraversal.js +16 -110
- package/dist/esm/logic/ModelTraversal.js.map +1 -1
- package/dist/esm/logic/ModelVariantTraversal.d.ts.map +1 -1
- package/dist/esm/logic/ModelVariantTraversal.js.map +1 -1
- package/dist/esm/logic/Scope.d.ts +102 -0
- package/dist/esm/logic/Scope.d.ts.map +1 -0
- package/dist/esm/logic/Scope.js +200 -0
- package/dist/esm/logic/Scope.js.map +6 -0
- package/dist/esm/logic/definition-validation/ModelValidator.d.ts.map +1 -1
- package/dist/esm/logic/index.d.ts +1 -0
- package/dist/esm/logic/index.d.ts.map +1 -1
- package/dist/esm/logic/index.js +1 -0
- package/dist/esm/logic/index.js.map +1 -1
- package/dist/esm/models/AttributeModel.d.ts +20 -0
- package/dist/esm/models/AttributeModel.d.ts.map +1 -1
- package/dist/esm/models/AttributeModel.js +3 -0
- package/dist/esm/models/AttributeModel.js.map +1 -1
- package/dist/esm/models/Children.d.ts +4 -0
- package/dist/esm/models/Children.d.ts.map +1 -1
- package/dist/esm/models/Children.js +13 -0
- package/dist/esm/models/Children.js.map +1 -1
- package/dist/esm/models/ClusterModel.d.ts +6 -7
- package/dist/esm/models/ClusterModel.d.ts.map +1 -1
- package/dist/esm/models/ClusterModel.js +5 -38
- package/dist/esm/models/ClusterModel.js.map +1 -1
- package/dist/esm/models/CommandModel.d.ts +22 -0
- package/dist/esm/models/CommandModel.d.ts.map +1 -1
- package/dist/esm/models/CommandModel.js +3 -0
- package/dist/esm/models/CommandModel.js.map +1 -1
- package/dist/esm/models/DatatypeModel.js +0 -2
- package/dist/esm/models/DatatypeModel.js.map +1 -1
- package/dist/esm/models/EventModel.d.ts +21 -0
- package/dist/esm/models/EventModel.d.ts.map +1 -1
- package/dist/esm/models/EventModel.js +3 -0
- package/dist/esm/models/EventModel.js.map +1 -1
- package/dist/esm/models/MatterModel.d.ts +3 -3
- package/dist/esm/models/MatterModel.d.ts.map +1 -1
- package/dist/esm/models/MatterModel.js +6 -5
- package/dist/esm/models/MatterModel.js.map +1 -1
- package/dist/esm/models/Model.d.ts +10 -6
- package/dist/esm/models/Model.d.ts.map +1 -1
- package/dist/esm/models/Model.js +28 -9
- package/dist/esm/models/Model.js.map +1 -1
- package/dist/esm/models/ScopeModel.d.ts +22 -0
- package/dist/esm/models/ScopeModel.d.ts.map +1 -0
- package/dist/esm/models/ScopeModel.js +43 -0
- package/dist/esm/models/ScopeModel.js.map +6 -0
- package/dist/esm/models/ValueModel.d.ts +7 -21
- package/dist/esm/models/ValueModel.d.ts.map +1 -1
- package/dist/esm/models/ValueModel.js +15 -34
- package/dist/esm/models/ValueModel.js.map +1 -1
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/index.d.ts.map +1 -1
- package/dist/esm/models/index.js +1 -0
- package/dist/esm/models/index.js.map +1 -1
- package/dist/esm/standard/elements/ColorControl.js +3 -4
- package/dist/esm/standard/elements/ColorControl.js.map +1 -1
- package/dist/esm/standard/elements/ModeBase.js +1 -1
- package/dist/esm/standard/elements/ModeBase.js.map +1 -1
- package/dist/esm/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
- package/dist/esm/standard/elements/PumpConfigurationAndControl.js +3 -20
- package/dist/esm/standard/elements/PumpConfigurationAndControl.js.map +1 -1
- package/dist/esm/standard/elements/UserLabel.d.ts.map +1 -1
- package/dist/esm/standard/elements/UserLabel.js +13 -16
- package/dist/esm/standard/elements/UserLabel.js.map +1 -1
- package/dist/esm/standard/elements/WildcardPathFlagsBitmap.d.ts.map +1 -1
- package/dist/esm/standard/elements/WildcardPathFlagsBitmap.js +1 -5
- package/dist/esm/standard/elements/WildcardPathFlagsBitmap.js.map +1 -1
- package/dist/esm/standard/elements/WindowCovering.js +2 -2
- package/package.json +4 -4
- package/src/elements/MatterElement.ts +7 -2
- package/src/logic/DefaultValue.ts +13 -11
- package/src/logic/ModelTraversal.ts +28 -147
- package/src/logic/ModelVariantTraversal.ts +0 -1
- package/src/logic/Scope.ts +400 -0
- package/src/logic/index.ts +1 -0
- package/src/models/AttributeModel.ts +4 -0
- package/src/models/Children.ts +24 -1
- package/src/models/ClusterModel.ts +12 -51
- package/src/models/CommandModel.ts +4 -0
- package/src/models/DatatypeModel.ts +0 -2
- package/src/models/EventModel.ts +4 -0
- package/src/models/MatterModel.ts +6 -5
- package/src/models/Model.ts +38 -12
- package/src/models/ScopeModel.ts +55 -0
- package/src/models/ValueModel.ts +17 -39
- package/src/models/index.ts +1 -0
- package/src/standard/elements/ColorControl.ts +4 -4
- package/src/standard/elements/ModeBase.ts +1 -1
- package/src/standard/elements/PumpConfigurationAndControl.ts +2 -18
- package/src/standard/elements/UserLabel.ts +8 -12
- package/src/standard/elements/WildcardPathFlagsBitmap.ts +1 -4
- 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,200 @@
|
|
|
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 { SchemaImplementationError } from "#common/errors.js";
|
|
8
|
+
import { FeatureSet } from "#common/FeatureSet.js";
|
|
9
|
+
import { ImplementationError } from "@matter/general";
|
|
10
|
+
import { ModelTraversal } from "./ModelTraversal.js";
|
|
11
|
+
const DEFAULT_TAGS = /* @__PURE__ */ new Set([ElementTag.Field, ElementTag.Attribute]);
|
|
12
|
+
const GLOBAL_IDS = /* @__PURE__ */ new Set([65533, 65532, 65531, 65530, 65529, 65528]);
|
|
13
|
+
const cache = /* @__PURE__ */ new WeakMap();
|
|
14
|
+
function Scope(subject, options = {}) {
|
|
15
|
+
let owner;
|
|
16
|
+
if (subject.isScope || options.forceOwner) {
|
|
17
|
+
owner = subject;
|
|
18
|
+
} else {
|
|
19
|
+
const scope = new ModelTraversal().findScope(subject);
|
|
20
|
+
if (scope === void 0) {
|
|
21
|
+
throw new SchemaImplementationError(subject, `No parent scope`);
|
|
22
|
+
}
|
|
23
|
+
owner = scope;
|
|
24
|
+
}
|
|
25
|
+
const useCache = options.forceCache || Object.isFrozen(owner);
|
|
26
|
+
let deconflictedMemberCache;
|
|
27
|
+
let conformantMemberCache;
|
|
28
|
+
let { featureNames, supportedFeatures } = owner;
|
|
29
|
+
if (!featureNames) {
|
|
30
|
+
featureNames = new FeatureSet();
|
|
31
|
+
}
|
|
32
|
+
if (!supportedFeatures) {
|
|
33
|
+
supportedFeatures = new FeatureSet();
|
|
34
|
+
}
|
|
35
|
+
if (useCache && !options.disableCache) {
|
|
36
|
+
const cached = cache.get(owner);
|
|
37
|
+
if (cached) {
|
|
38
|
+
return cached;
|
|
39
|
+
}
|
|
40
|
+
deconflictedMemberCache = /* @__PURE__ */ new Map();
|
|
41
|
+
conformantMemberCache = /* @__PURE__ */ new Map();
|
|
42
|
+
}
|
|
43
|
+
let shadows;
|
|
44
|
+
const canonicalIdentityLevels = {};
|
|
45
|
+
let level = 0;
|
|
46
|
+
new ModelTraversal().visitInheritance(owner, (scope) => {
|
|
47
|
+
level++;
|
|
48
|
+
for (const model of scope.children) {
|
|
49
|
+
for (const identity of [`n${model.tag}\u241C${model.name}\u241C${model.discriminator ?? ""}`]) {
|
|
50
|
+
const canonical = canonicalIdentityLevels[identity];
|
|
51
|
+
if (canonical === void 0) {
|
|
52
|
+
canonicalIdentityLevels[identity] = {
|
|
53
|
+
level,
|
|
54
|
+
models: [model]
|
|
55
|
+
};
|
|
56
|
+
} else if (canonical.level === level) {
|
|
57
|
+
canonical.models.push(model);
|
|
58
|
+
} else {
|
|
59
|
+
if (!shadows) {
|
|
60
|
+
shadows = /* @__PURE__ */ new WeakMap();
|
|
61
|
+
}
|
|
62
|
+
shadows.set(model, canonical.models);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
const result = {
|
|
68
|
+
owner,
|
|
69
|
+
isShadow: shadows ? (model) => shadows.has(model) : () => false,
|
|
70
|
+
extensionOf: shadows ? (model) => shadows.get(model)?.[0] : (model) => model,
|
|
71
|
+
modelFor: shadows ? (model) => shadows.get(model)?.[0] ?? model : (model) => model,
|
|
72
|
+
membersOf
|
|
73
|
+
};
|
|
74
|
+
function membersOf(parent, options2 = {}) {
|
|
75
|
+
const { conformance: conformanceMode, tags } = options2;
|
|
76
|
+
const allMembers = findAllMembers(parent, Array.isArray(tags) ? new Set(tags) : tags ?? DEFAULT_TAGS, result);
|
|
77
|
+
if (parent.tag === ElementTag.Cluster) {
|
|
78
|
+
injectGlobalAttributes(owner, allMembers);
|
|
79
|
+
}
|
|
80
|
+
if (!conformanceMode || conformanceMode === "ignore") {
|
|
81
|
+
return allMembers;
|
|
82
|
+
}
|
|
83
|
+
const conformantOnly = conformanceMode === "conformant";
|
|
84
|
+
if (!conformantOnly && conformanceMode !== "deconflicted") {
|
|
85
|
+
throw new ImplementationError(`Invalid member conformance mode ${conformanceMode}`);
|
|
86
|
+
}
|
|
87
|
+
return filterWithConformance(
|
|
88
|
+
parent,
|
|
89
|
+
allMembers,
|
|
90
|
+
featureNames,
|
|
91
|
+
supportedFeatures,
|
|
92
|
+
conformantOnly,
|
|
93
|
+
conformantOnly ? deconflictedMemberCache : conformantMemberCache
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
if (useCache) {
|
|
97
|
+
cache.set(owner, result);
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
((Scope2) => {
|
|
102
|
+
Scope2.IgnoreConformance = "ignore";
|
|
103
|
+
Scope2.DeconflictedConformance = "deconflicted";
|
|
104
|
+
Scope2.ConformantConformance = "conformant";
|
|
105
|
+
})(Scope || (Scope = {}));
|
|
106
|
+
function findAllMembers(parent, tags, scope) {
|
|
107
|
+
const members = Array();
|
|
108
|
+
const defined = {};
|
|
109
|
+
const visited = /* @__PURE__ */ new Set();
|
|
110
|
+
const traversal = new ModelTraversal();
|
|
111
|
+
let level = 0;
|
|
112
|
+
const childSearchVisitor = (model) => {
|
|
113
|
+
const extension = scope.modelFor(model);
|
|
114
|
+
if (extension !== model && !visited.has(extension)) {
|
|
115
|
+
traversal.visitInheritance(extension, childSearchVisitor);
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
visited.add(model);
|
|
119
|
+
level++;
|
|
120
|
+
for (const child of model.children) {
|
|
121
|
+
if (!tags.has(child.tag)) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
const nameIdentity = `s\u241C${child.tag}\u241C${child.name}\u241C${child.discriminator ?? ""}`;
|
|
125
|
+
const nameLevel = defined[nameIdentity];
|
|
126
|
+
if (nameLevel !== void 0 && nameLevel < level) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
defined[nameIdentity] = level;
|
|
130
|
+
members.push(child);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
traversal.visitInheritance(parent, childSearchVisitor);
|
|
134
|
+
return members;
|
|
135
|
+
}
|
|
136
|
+
function injectGlobalAttributes(scope, members) {
|
|
137
|
+
const missingGlobalIds = new Set(GLOBAL_IDS);
|
|
138
|
+
for (const m of members) {
|
|
139
|
+
if (m.tag === ElementTag.Attribute && m.id) {
|
|
140
|
+
missingGlobalIds.delete(m.id);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (missingGlobalIds.size) {
|
|
144
|
+
const root = new ModelTraversal().findRoot(scope);
|
|
145
|
+
if (root) {
|
|
146
|
+
for (const id of missingGlobalIds) {
|
|
147
|
+
const global = root.children.select(id, [ElementTag.Attribute]);
|
|
148
|
+
if (global) {
|
|
149
|
+
members.push(global);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function filterWithConformance(parent, members, features, supportedFeatures, conformantOnly, cache2) {
|
|
156
|
+
const cached = cache2?.get(parent);
|
|
157
|
+
if (cached) {
|
|
158
|
+
return cached;
|
|
159
|
+
}
|
|
160
|
+
const selectedMembers = {};
|
|
161
|
+
for (const member of members) {
|
|
162
|
+
const { conformance } = member;
|
|
163
|
+
if (!conformance) {
|
|
164
|
+
throw new ImplementationError(
|
|
165
|
+
`Conformance filtering invoked on ${member} which does not support conformance`
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
if (conformantOnly && !conformance.isApplicable(features, supportedFeatures)) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
const other = selectedMembers[member.name];
|
|
172
|
+
if (other !== void 0) {
|
|
173
|
+
if (!conformantOnly && !conformance.isApplicable(features, supportedFeatures)) {
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
const { conformance: otherConformance } = other;
|
|
177
|
+
if (!otherConformance) {
|
|
178
|
+
throw new ImplementationError(
|
|
179
|
+
`Conformance filtering invoked on ${other} which does not support conformance`
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
if (otherConformance.isApplicable(features, supportedFeatures)) {
|
|
183
|
+
throw new SchemaImplementationError(
|
|
184
|
+
parent,
|
|
185
|
+
`There are multiple definitions of "${member.name}" that cannot be differentiated by conformance`
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
selectedMembers[member.name] = member;
|
|
190
|
+
}
|
|
191
|
+
const result = Object.values(selectedMembers);
|
|
192
|
+
if (cache2) {
|
|
193
|
+
cache2.set(parent, result);
|
|
194
|
+
}
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
export {
|
|
198
|
+
Scope
|
|
199
|
+
};
|
|
200
|
+
//# 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,
|
|
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"}
|
package/dist/esm/logic/index.js
CHANGED
|
@@ -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.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/logic/index.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,OAAO;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,OAAO;",
|
|
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"}
|
|
@@ -24,6 +24,9 @@ class AttributeModel extends PropertyModel {
|
|
|
24
24
|
get changesOmitted() {
|
|
25
25
|
return this.effectiveQuality.changesOmitted;
|
|
26
26
|
}
|
|
27
|
+
get requiredFields() {
|
|
28
|
+
return { ...super.requiredFields, id: this.id };
|
|
29
|
+
}
|
|
27
30
|
constructor(definition) {
|
|
28
31
|
super(definition);
|
|
29
32
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/models/AttributeModel.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,wBAAwB;AACjC,SAAS,aAAa;AACtB,SAAS,qBAAqB;AAGvB,MAAM,aAAa,oBAAI,IAAI,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAM,CAAC;AAE3E,MAAM,uBAAuB,cAA4D;AAAA,EACnF,MAA4B,iBAAiB;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,UAAM,MAAM,iBAAiB,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,iBAAiB;AAClC;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,wBAAwB;AACjC,SAAS,aAAa;AACtB,SAAS,qBAAqB;AAGvB,MAAM,aAAa,oBAAI,IAAI,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAM,CAAC;AAE3E,MAAM,uBAAuB,cAA4D;AAAA,EACnF,MAA4B,iBAAiB;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,UAAM,MAAM,iBAAiB,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,iBAAiB;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,
|
|
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"}
|
|
@@ -244,6 +244,17 @@ function Children(initial, adopt, disown) {
|
|
|
244
244
|
}
|
|
245
245
|
return results;
|
|
246
246
|
}
|
|
247
|
+
function patchOrPush(child) {
|
|
248
|
+
validateChild(child);
|
|
249
|
+
const existing = selectAll.call(self, child.name, [child.tag]);
|
|
250
|
+
if (existing.length) {
|
|
251
|
+
for (const toPatch of existing) {
|
|
252
|
+
toPatch.patch(child);
|
|
253
|
+
}
|
|
254
|
+
} else {
|
|
255
|
+
self.push(child);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
247
258
|
function updateId(child, oldId) {
|
|
248
259
|
if (!indices) {
|
|
249
260
|
return;
|
|
@@ -336,6 +347,8 @@ function Children(initial, adopt, disown) {
|
|
|
336
347
|
return select;
|
|
337
348
|
case "selectAll":
|
|
338
349
|
return selectAll;
|
|
350
|
+
case "patchOrPush":
|
|
351
|
+
return patchOrPush;
|
|
339
352
|
case "updateId":
|
|
340
353
|
return updateId;
|
|
341
354
|
case "updateName":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/models/Children.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,UAAU,2BAA2B;AAC9C,SAAkC,kBAAkB;AACpD,SAAS,aAAa;
|
|
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 {
|
|
19
|
-
export declare class ClusterModel extends
|
|
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:
|
|
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;
|
|
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"}
|
|
@@ -9,7 +9,6 @@ import { Quality } from "../aspects/Quality.js";
|
|
|
9
9
|
import { SchemaImplementationError } from "../common/errors.js";
|
|
10
10
|
import { ElementTag, FeatureSet, Metatype } from "../common/index.js";
|
|
11
11
|
import { ClusterElement } from "../elements/index.js";
|
|
12
|
-
import { ModelTraversal } from "../logic/ModelTraversal.js";
|
|
13
12
|
import { ClusterRevision } from "../standard/elements/ClusterRevision.js";
|
|
14
13
|
import { FeatureMap } from "../standard/elements/FeatureMap.js";
|
|
15
14
|
import { Aspects } from "./Aspects.js";
|
|
@@ -18,10 +17,10 @@ import { CommandModel } from "./CommandModel.js";
|
|
|
18
17
|
import { DatatypeModel } from "./DatatypeModel.js";
|
|
19
18
|
import { EventModel } from "./EventModel.js";
|
|
20
19
|
import { Model } from "./Model.js";
|
|
20
|
+
import { ScopeModel } from "./ScopeModel.js";
|
|
21
21
|
const QUALITY = Symbol("quality");
|
|
22
|
-
class ClusterModel extends
|
|
22
|
+
class ClusterModel extends ScopeModel {
|
|
23
23
|
tag = ClusterElement.Tag;
|
|
24
|
-
isTypeScope = true;
|
|
25
24
|
get children() {
|
|
26
25
|
return super.children;
|
|
27
26
|
}
|
|
@@ -52,43 +51,11 @@ class ClusterModel extends Model {
|
|
|
52
51
|
get datatypes() {
|
|
53
52
|
return this.all(DatatypeModel);
|
|
54
53
|
}
|
|
55
|
-
get members() {
|
|
56
|
-
const traversal = new ModelTraversal();
|
|
57
|
-
const members = traversal.findChildren(this, [ElementTag.Field, ElementTag.Attribute]);
|
|
58
|
-
const missingGlobalIds = new Set(AttributeModel.globalIds);
|
|
59
|
-
for (const m of members) {
|
|
60
|
-
if (m instanceof AttributeModel && m.id) {
|
|
61
|
-
missingGlobalIds.delete(m.id);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (missingGlobalIds.size) {
|
|
65
|
-
const root = traversal.findRoot(this);
|
|
66
|
-
if (root) {
|
|
67
|
-
for (const id of missingGlobalIds) {
|
|
68
|
-
const global = root.get(AttributeModel, id);
|
|
69
|
-
if (global) {
|
|
70
|
-
members.push(global);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return members;
|
|
76
|
-
}
|
|
77
|
-
get activeMembers() {
|
|
78
|
-
return new ModelTraversal().findActiveMembers(this, false, this);
|
|
79
|
-
}
|
|
80
|
-
get conformantMembers() {
|
|
81
|
-
return new ModelTraversal().findActiveMembers(this, true, this);
|
|
82
|
-
}
|
|
83
54
|
/**
|
|
84
55
|
* Get attributes, commands and events whether inherited or defined directly in this model.
|
|
85
56
|
*/
|
|
86
57
|
get allAces() {
|
|
87
|
-
return
|
|
88
|
-
ElementTag.Attribute,
|
|
89
|
-
ElementTag.Command,
|
|
90
|
-
ElementTag.Event
|
|
91
|
-
]);
|
|
58
|
+
return this.scope.membersOf(this, { tags: [ElementTag.Attribute, ElementTag.Command, ElementTag.Event] });
|
|
92
59
|
}
|
|
93
60
|
get revision() {
|
|
94
61
|
let revision = 1;
|
|
@@ -157,8 +124,8 @@ class ClusterModel extends Model {
|
|
|
157
124
|
}
|
|
158
125
|
return result;
|
|
159
126
|
}
|
|
160
|
-
constructor(definition) {
|
|
161
|
-
super(definition);
|
|
127
|
+
constructor(definition, ...children) {
|
|
128
|
+
super(definition, ...children);
|
|
162
129
|
if (definition instanceof Model) {
|
|
163
130
|
Aspects.cloneAspects(definition, this, QUALITY);
|
|
164
131
|
}
|