@matter/model 0.16.0-alpha.0-20251004-92135c7df → 0.16.0-alpha.0-20251006-3fe1e7c57
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/DatatypeElement.d.ts +6 -9
- package/dist/cjs/elements/DatatypeElement.d.ts.map +1 -1
- package/dist/cjs/elements/DatatypeElement.js.map +1 -1
- package/dist/cjs/logic/ModelIndex.d.ts +39 -0
- package/dist/cjs/logic/ModelIndex.d.ts.map +1 -0
- package/dist/cjs/logic/ModelIndex.js +100 -0
- package/dist/cjs/logic/ModelIndex.js.map +6 -0
- package/dist/cjs/logic/Scope.d.ts +2 -1
- package/dist/cjs/logic/Scope.d.ts.map +1 -1
- package/dist/cjs/logic/Scope.js +7 -3
- package/dist/cjs/logic/Scope.js.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/ClusterModel.d.ts +43 -5
- package/dist/cjs/models/ClusterModel.d.ts.map +1 -1
- package/dist/cjs/models/ClusterModel.js +69 -1
- package/dist/cjs/models/ClusterModel.js.map +2 -2
- package/dist/cjs/models/ValueModel.d.ts +18 -2
- package/dist/cjs/models/ValueModel.d.ts.map +1 -1
- package/dist/cjs/models/ValueModel.js +27 -0
- package/dist/cjs/models/ValueModel.js.map +2 -2
- package/dist/esm/elements/DatatypeElement.d.ts +6 -9
- package/dist/esm/elements/DatatypeElement.d.ts.map +1 -1
- package/dist/esm/elements/DatatypeElement.js.map +1 -1
- package/dist/esm/logic/ModelIndex.d.ts +39 -0
- package/dist/esm/logic/ModelIndex.d.ts.map +1 -0
- package/dist/esm/logic/ModelIndex.js +80 -0
- package/dist/esm/logic/ModelIndex.js.map +6 -0
- package/dist/esm/logic/Scope.d.ts +2 -1
- package/dist/esm/logic/Scope.d.ts.map +1 -1
- package/dist/esm/logic/Scope.js +7 -3
- package/dist/esm/logic/Scope.js.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/ClusterModel.d.ts +43 -5
- package/dist/esm/models/ClusterModel.d.ts.map +1 -1
- package/dist/esm/models/ClusterModel.js +69 -1
- package/dist/esm/models/ClusterModel.js.map +2 -2
- package/dist/esm/models/ValueModel.d.ts +18 -2
- package/dist/esm/models/ValueModel.d.ts.map +1 -1
- package/dist/esm/models/ValueModel.js +27 -0
- package/dist/esm/models/ValueModel.js.map +2 -2
- package/package.json +4 -4
- package/src/elements/DatatypeElement.ts +6 -9
- package/src/logic/ModelIndex.ts +125 -0
- package/src/logic/Scope.ts +16 -12
- package/src/logic/index.ts +1 -0
- package/src/models/ClusterModel.ts +82 -9
- package/src/models/ValueModel.ts +35 -3
|
@@ -33,21 +33,18 @@ export declare namespace DatatypeElement {
|
|
|
33
33
|
/**
|
|
34
34
|
* Convert a TypeScript enum to Matter enum values.
|
|
35
35
|
*
|
|
36
|
-
* Matter enums include conformance and other metadata. They may also have
|
|
37
|
-
*
|
|
38
|
-
* we can't use a TypeScript enum directly.
|
|
36
|
+
* Matter enums include conformance and other metadata. They may also have multiple definitions of the same value
|
|
37
|
+
* selectable by conformance. So we can't use a TypeScript enum directly.
|
|
39
38
|
*/
|
|
40
39
|
function ListValues(values: ValueMap): ListValues;
|
|
41
40
|
/**
|
|
42
|
-
* We express enum values as IntElements as this gives us conformance
|
|
43
|
-
* and other metadata.
|
|
41
|
+
* We express enum values as IntElements as this gives us conformance and other metadata.
|
|
44
42
|
*/
|
|
45
43
|
type ListValues = FieldElement[];
|
|
46
44
|
/**
|
|
47
|
-
* Per the Matter specification, enums are named integers. The following
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* generating the Matter enum we ignore the string keys.
|
|
45
|
+
* Per the Matter specification, enums are named integers. The following allows TypeScript enums to be supplied for
|
|
46
|
+
* translation into Matter enums. To do so, we must accept both numeric and string values. For generating the
|
|
47
|
+
* Matter enum we ignore the string keys.
|
|
51
48
|
*/
|
|
52
49
|
type ValueMap = {
|
|
53
50
|
[name: string]: number | string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatatypeElement.d.ts","sourceRoot":"","sources":["../../../src/elements/DatatypeElement.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;IAE9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEzB;;OAEG;IACH,EAAE,CAAC,EAAE,SAAS,CAAC;IAEf,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,GAC7B,eAAe,CACpF;AAED,yBAAiB,eAAe,CAAC;IACtB,MAAM,GAAG,sBAAsB,CAAC;IACvC,KAAY,GAAG,GAAG,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7C,KAAY,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAEjE
|
|
1
|
+
{"version":3,"file":"DatatypeElement.d.ts","sourceRoot":"","sources":["../../../src/elements/DatatypeElement.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;IAE9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEzB;;OAEG;IACH,EAAE,CAAC,EAAE,SAAS,CAAC;IAEf,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,GAC7B,eAAe,CACpF;AAED,yBAAiB,eAAe,CAAC;IACtB,MAAM,GAAG,sBAAsB,CAAC;IACvC,KAAY,GAAG,GAAG,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7C,KAAY,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAEjE;;;;;OAKG;IACH,SAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAiBvD;IAED;;OAEG;IACH,KAAY,UAAU,GAAG,YAAY,EAAE,CAAC;IAExC;;;;OAIG;IACH,KAAY,QAAQ,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC9D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/elements/DatatypeElement.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAAqC;AAErC,0BAA6B;AAC7B,0BAA6B;AAT7B;AAAA;AAAA;AAAA;AAAA;AAiCO,SAAS,gBAAgB,eAA2C,UAA0B;AACjG,aAAO,kCAAa,gBAAgB,KAAK,YAAY,QAAQ;AACjE;AAAA,CAEO,CAAUA,qBAAV;AACI,EAAMA,iBAAA,MAAM,yBAAW;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAAqC;AAErC,0BAA6B;AAC7B,0BAA6B;AAT7B;AAAA;AAAA;AAAA;AAAA;AAiCO,SAAS,gBAAgB,eAA2C,UAA0B;AACjG,aAAO,kCAAa,gBAAgB,KAAK,YAAY,QAAQ;AACjE;AAAA,CAEO,CAAUA,qBAAV;AACI,EAAMA,iBAAA,MAAM,yBAAW;AAUvB,WAAS,WAAW,QAA8B;AACrD,UAAM,SAAS,MAAoB;AAEnC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,MAAM,GAAG;AACzC,UAAI,OAAO,MAAM,UAAU;AACvB,eAAO;AAAA,cACH,kCAAa;AAAA,YACT,IAAI;AAAA,YACJ,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS;AAAA,UACb,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAjBO,EAAAA,iBAAS;AAAA,GAXH;",
|
|
5
5
|
"names": ["DatatypeElement"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Model } from "../models/Model.js";
|
|
7
|
+
/**
|
|
8
|
+
* An read-only array of models with support for efficient lookup by name and ID.
|
|
9
|
+
*
|
|
10
|
+
* Name search uses canonical camel case, so "FooBar", "fooBar" and "foo-bar" are considered equivalent.
|
|
11
|
+
*/
|
|
12
|
+
export interface ModelIndex<T extends Model = Model> extends ReadonlyArray<T> {
|
|
13
|
+
/**
|
|
14
|
+
* Retrieve a model for the given ID or name.
|
|
15
|
+
*
|
|
16
|
+
* Use the two-parameter version for indices that contain multiple model types.
|
|
17
|
+
*/
|
|
18
|
+
for(key: number | string): T | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Retrieve a model of the specific type for the given ID or name.
|
|
21
|
+
*
|
|
22
|
+
* Name search uses canonical camel case.
|
|
23
|
+
*/
|
|
24
|
+
for<M extends T>(key: number | string, type: Model.Type<M>): M | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Filter to a specific model subtype.
|
|
27
|
+
*/
|
|
28
|
+
ofType<M extends T>(type: Model.Type<M>): M[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Implementation of {@link ModelIndex} used for initial creation.
|
|
32
|
+
*/
|
|
33
|
+
export declare class MutableModelIndex<T extends Model = Model> extends Array<T> implements ModelIndex {
|
|
34
|
+
#private;
|
|
35
|
+
for(key: number | string): T;
|
|
36
|
+
for<M extends T>(key: number | string, type: Model.Type<M>): M;
|
|
37
|
+
ofType<T extends Model.Type>(type: T): InstanceType<T>[];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=ModelIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelIndex.d.ts","sourceRoot":"","sources":["../../../src/logic/ModelIndex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IACzE;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEzC;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE3E;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAE,YAAW,UAAU;;IAI1F,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC;IAC5B,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IA6B9D,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE;CAoD3D"}
|
|
@@ -0,0 +1,100 @@
|
|
|
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 ModelIndex_exports = {};
|
|
20
|
+
__export(ModelIndex_exports, {
|
|
21
|
+
MutableModelIndex: () => MutableModelIndex
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(ModelIndex_exports);
|
|
24
|
+
var import_general = require("#general");
|
|
25
|
+
/**
|
|
26
|
+
* @license
|
|
27
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
28
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
29
|
+
*/
|
|
30
|
+
class MutableModelIndex extends Array {
|
|
31
|
+
#nameIndex;
|
|
32
|
+
#idIndex;
|
|
33
|
+
for(key, type) {
|
|
34
|
+
let untyped;
|
|
35
|
+
if (typeof key === "number") {
|
|
36
|
+
untyped = this.#ids.get(key);
|
|
37
|
+
} else {
|
|
38
|
+
untyped = this.#names.get((0, import_general.camelize)(key));
|
|
39
|
+
}
|
|
40
|
+
if (untyped === void 0) {
|
|
41
|
+
return void 0;
|
|
42
|
+
}
|
|
43
|
+
if (Array.isArray(untyped)) {
|
|
44
|
+
if (type) {
|
|
45
|
+
return untyped.find((m) => m instanceof type);
|
|
46
|
+
}
|
|
47
|
+
return untyped[0];
|
|
48
|
+
}
|
|
49
|
+
if (type && !(untyped instanceof type)) {
|
|
50
|
+
return void 0;
|
|
51
|
+
}
|
|
52
|
+
return untyped;
|
|
53
|
+
}
|
|
54
|
+
ofType(type) {
|
|
55
|
+
return this.filter((m) => m instanceof type);
|
|
56
|
+
}
|
|
57
|
+
get #ids() {
|
|
58
|
+
if (this.#idIndex) {
|
|
59
|
+
return this.#idIndex;
|
|
60
|
+
}
|
|
61
|
+
const index = this.#idIndex = /* @__PURE__ */ new Map();
|
|
62
|
+
for (const model of this) {
|
|
63
|
+
if (model.id === void 0) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const already = index.get(model.id);
|
|
67
|
+
if (already) {
|
|
68
|
+
if (Array.isArray(already)) {
|
|
69
|
+
already.push(model);
|
|
70
|
+
} else {
|
|
71
|
+
index.set(model.id, [already, model]);
|
|
72
|
+
}
|
|
73
|
+
} else {
|
|
74
|
+
index.set(model.id, model);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return this.#idIndex;
|
|
78
|
+
}
|
|
79
|
+
get #names() {
|
|
80
|
+
if (this.#nameIndex) {
|
|
81
|
+
return this.#nameIndex;
|
|
82
|
+
}
|
|
83
|
+
const index = this.#nameIndex = /* @__PURE__ */ new Map();
|
|
84
|
+
for (const model of this) {
|
|
85
|
+
const name = (0, import_general.camelize)(model.name);
|
|
86
|
+
const already = index.get(name);
|
|
87
|
+
if (already) {
|
|
88
|
+
if (Array.isArray(already)) {
|
|
89
|
+
already.push(model);
|
|
90
|
+
} else {
|
|
91
|
+
index.set(name, [already, model]);
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
index.set(name, model);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return this.#nameIndex;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=ModelIndex.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/logic/ModelIndex.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAyB;AANzB;AAAA;AAAA;AAAA;AAAA;AAsCO,MAAM,0BAAmD,MAA+B;AAAA,EAC3F;AAAA,EACA;AAAA,EAKA,IAAI,KAAsB,MAAsC;AAC5D,QAAI;AAEJ,QAAI,OAAO,QAAQ,UAAU;AACzB,gBAAU,KAAK,KAAK,IAAI,GAAG;AAAA,IAC/B,OAAO;AACH,gBAAU,KAAK,OAAO,QAAI,yBAAS,GAAG,CAAC;AAAA,IAC3C;AAEA,QAAI,YAAY,QAAW;AACvB,aAAO;AAAA,IACX;AAEA,QAAI,MAAM,QAAQ,OAAO,GAAG;AACxB,UAAI,MAAM;AACN,eAAO,QAAQ,KAAK,OAAK,aAAa,IAAI;AAAA,MAC9C;AACA,aAAO,QAAQ,CAAC;AAAA,IACpB;AAEA,QAAI,QAAQ,EAAE,mBAAmB,OAAO;AACpC,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,OAA6B,MAA4B;AACrD,WAAO,KAAK,OAAO,OAAK,aAAa,IAAI;AAAA,EAC7C;AAAA,EAEA,IAAI,OAAO;AACP,QAAI,KAAK,UAAU;AACf,aAAO,KAAK;AAAA,IAChB;AAEA,UAAM,QAAS,KAAK,WAAW,oBAAI,IAAqB;AACxD,eAAW,SAAS,MAAM;AACtB,UAAI,MAAM,OAAO,QAAW;AACxB;AAAA,MACJ;AAEA,YAAM,UAAU,MAAM,IAAI,MAAM,EAAE;AAClC,UAAI,SAAS;AACT,YAAI,MAAM,QAAQ,OAAO,GAAG;AACxB,kBAAQ,KAAK,KAAK;AAAA,QACtB,OAAO;AACH,gBAAM,IAAI,MAAM,IAAI,CAAC,SAAS,KAAK,CAAC;AAAA,QACxC;AAAA,MACJ,OAAO;AACH,cAAM,IAAI,MAAM,IAAI,KAAK;AAAA,MAC7B;AAAA,IACJ;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAAS;AACT,QAAI,KAAK,YAAY;AACjB,aAAO,KAAK;AAAA,IAChB;AAEA,UAAM,QAAS,KAAK,aAAa,oBAAI,IAAqB;AAC1D,eAAW,SAAS,MAAM;AACtB,YAAM,WAAO,yBAAS,MAAM,IAAI;AAChC,YAAM,UAAU,MAAM,IAAI,IAAI;AAC9B,UAAI,SAAS;AACT,YAAI,MAAM,QAAQ,OAAO,GAAG;AACxB,kBAAQ,KAAK,KAAK;AAAA,QACtB,OAAO;AACH,gBAAM,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC;AAAA,QACpC;AAAA,MACJ,OAAO;AACH,cAAM,IAAI,MAAM,KAAK;AAAA,MACzB;AAAA,IACJ;AAEA,WAAO,KAAK;AAAA,EAChB;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ElementTag } from "#common/ElementTag.js";
|
|
7
7
|
import type { Model } from "#models/index.js";
|
|
8
|
+
import { ModelIndex } from "./ModelIndex.js";
|
|
8
9
|
/**
|
|
9
10
|
* Tracks extensions for a scope to models in parent scopes.
|
|
10
11
|
*
|
|
@@ -44,7 +45,7 @@ export interface Scope {
|
|
|
44
45
|
/**
|
|
45
46
|
* Identify members (child properties) of the designated model in this scope.
|
|
46
47
|
*/
|
|
47
|
-
membersOf<T extends Model>(parent: T, options?: Scope.MemberOptions): Model.ChildOf<T
|
|
48
|
+
membersOf<T extends Model>(parent: T, options?: Scope.MemberOptions): ModelIndex<Model.ChildOf<T>>;
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
50
51
|
* Obtain the scope for a model.
|
|
@@ -1 +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;
|
|
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;AACpF,OAAO,EAAE,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAOhE;;;;;;;;;;;;;;;;;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,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CACtG;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,GAAE,KAAK,CAAC,YAAiB,SAsHrE;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"}
|
package/dist/cjs/logic/Scope.js
CHANGED
|
@@ -26,6 +26,7 @@ var import_errors = require("#common/errors.js");
|
|
|
26
26
|
var import_FeatureSet = require("#common/FeatureSet.js");
|
|
27
27
|
var import_general = require("#general");
|
|
28
28
|
var import_ModelTraversal = require("./ModelTraversal.js");
|
|
29
|
+
var import_ModelIndex = require("./ModelIndex.js");
|
|
29
30
|
/**
|
|
30
31
|
* @license
|
|
31
32
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -102,7 +103,10 @@ function Scope(subject, options = {}) {
|
|
|
102
103
|
}
|
|
103
104
|
const allMembers = findAllMembers(parent, tags, result);
|
|
104
105
|
if (parent.tag === import_ElementTag.ElementTag.Cluster && tags.has(import_ElementTag.ElementTag.Attribute)) {
|
|
105
|
-
injectGlobalAttributes(
|
|
106
|
+
injectGlobalAttributes(
|
|
107
|
+
owner,
|
|
108
|
+
allMembers
|
|
109
|
+
);
|
|
106
110
|
}
|
|
107
111
|
if (!conformanceMode || conformanceMode === "ignore") {
|
|
108
112
|
return allMembers;
|
|
@@ -132,7 +136,7 @@ function Scope(subject, options = {}) {
|
|
|
132
136
|
Scope2.ConformantConformance = "conformant";
|
|
133
137
|
})(Scope || (Scope = {}));
|
|
134
138
|
function findAllMembers(parent, tags, scope) {
|
|
135
|
-
const members =
|
|
139
|
+
const members = new import_ModelIndex.MutableModelIndex();
|
|
136
140
|
const defined = {};
|
|
137
141
|
const visited = /* @__PURE__ */ new Set();
|
|
138
142
|
const traversal = new import_ModelTraversal.ModelTraversal();
|
|
@@ -182,7 +186,7 @@ function injectGlobalAttributes(scope, members) {
|
|
|
182
186
|
}
|
|
183
187
|
function filterWithConformance(parent, tags, members, features, supportedFeatures, conformantOnly, cache2) {
|
|
184
188
|
const tagsToCollect = new Set(tags);
|
|
185
|
-
const result =
|
|
189
|
+
const result = new import_ModelIndex.MutableModelIndex();
|
|
186
190
|
const cached = cache2 ? cache2.get(parent) ?? /* @__PURE__ */ new Map() : void 0;
|
|
187
191
|
if (cache2 && cached) {
|
|
188
192
|
for (const tag of tagsToCollect) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/logic/Scope.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,wBAA2B;AAC3B,oBAA0C;AAC1C,wBAA2B;AAC3B,qBAAoC;AACpC,4BAA+B;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["options", "Scope", "cache"]
|
|
6
6
|
}
|
|
@@ -12,6 +12,7 @@ export * from "./ClusterVariance.js";
|
|
|
12
12
|
export * from "./DefaultValue.js";
|
|
13
13
|
export * from "./MergedModel.js";
|
|
14
14
|
export * from "./ModelDiff.js";
|
|
15
|
+
export * from "./ModelIndex.js";
|
|
15
16
|
export * from "./ModelVariantTraversal.js";
|
|
16
17
|
export * from "./Scope.js";
|
|
17
18
|
export * from "./ValidateModel.js";
|
|
@@ -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,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,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,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,OAAO,kCAAkC,CAAC"}
|
package/dist/cjs/logic/index.js
CHANGED
|
@@ -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("./ModelDiff.js"), module.exports);
|
|
27
|
+
__reExport(logic_exports, require("./ModelIndex.js"), module.exports);
|
|
27
28
|
__reExport(logic_exports, require("./ModelVariantTraversal.js"), module.exports);
|
|
28
29
|
__reExport(logic_exports, require("./Scope.js"), module.exports);
|
|
29
30
|
__reExport(logic_exports, require("./ValidateModel.js"), module.exports);
|
|
@@ -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,2BAdd;AAeA,0BAAc,
|
|
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,2BAdd;AAeA,0BAAc,4BAfd;AAgBA,0BAAc,uCAhBd;AAiBA,0BAAc,uBAjBd;AAkBA,0BAAc,+BAlBd;AAmBA,mCAAO;AAnBP;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { ModelIndex } from "#logic/ModelIndex.js";
|
|
6
7
|
import { Access } from "../aspects/Access.js";
|
|
7
8
|
import { Quality } from "../aspects/Quality.js";
|
|
8
9
|
import { ElementTag, FeatureSet, Metatype } from "../common/index.js";
|
|
@@ -21,10 +22,11 @@ export declare class ClusterModel extends ScopeModel<ClusterElement, ClusterMode
|
|
|
21
22
|
get quality(): Quality;
|
|
22
23
|
set quality(definition: Quality | Quality.Definition);
|
|
23
24
|
get effectiveQuality(): Quality;
|
|
24
|
-
get attributes(): AttributeModel
|
|
25
|
-
get commands(): CommandModel
|
|
26
|
-
get events(): EventModel
|
|
27
|
-
get datatypes(): DatatypeModel
|
|
25
|
+
get attributes(): ModelIndex<AttributeModel>;
|
|
26
|
+
get commands(): ModelIndex<CommandModel>;
|
|
27
|
+
get events(): ModelIndex<EventModel>;
|
|
28
|
+
get datatypes(): ModelIndex<DatatypeModel>;
|
|
29
|
+
get conformant(): ClusterModel.Conformant;
|
|
28
30
|
get classification(): ClusterElement.Classification | undefined;
|
|
29
31
|
set classification(classification: `${ClusterElement.Classification}` | undefined);
|
|
30
32
|
get pics(): string | undefined;
|
|
@@ -32,7 +34,7 @@ export declare class ClusterModel extends ScopeModel<ClusterElement, ClusterMode
|
|
|
32
34
|
/**
|
|
33
35
|
* Get attributes, commands and events whether inherited or defined directly in this model.
|
|
34
36
|
*/
|
|
35
|
-
get allAces():
|
|
37
|
+
get allAces(): ModelIndex<AttributeModel | CommandModel | EventModel>;
|
|
36
38
|
get revision(): number;
|
|
37
39
|
get features(): import("./Children.js").Children<FieldModel>;
|
|
38
40
|
get featureMap(): AttributeModel;
|
|
@@ -50,5 +52,41 @@ export declare namespace ClusterModel {
|
|
|
50
52
|
supportedFeatures?: FeatureSet.Definition;
|
|
51
53
|
};
|
|
52
54
|
type Child = DatatypeModel | AttributeModel | CommandModel | EventModel | FieldModel;
|
|
55
|
+
/**
|
|
56
|
+
* A conformant view of {@link ClusterModel} child indices properties.
|
|
57
|
+
*/
|
|
58
|
+
class Conformant {
|
|
59
|
+
#private;
|
|
60
|
+
constructor(model: ClusterModel);
|
|
61
|
+
/**
|
|
62
|
+
* The cluster's conformant attributes.
|
|
63
|
+
*/
|
|
64
|
+
get attributes(): ModelIndex<AttributeModel>;
|
|
65
|
+
/**
|
|
66
|
+
* The cluster's conformant properties (includes fields and attributes).
|
|
67
|
+
*
|
|
68
|
+
* This offers compatibility with the equivalent field for ValueModel. It is useful when treating a cluster as
|
|
69
|
+
* a struct.
|
|
70
|
+
*/
|
|
71
|
+
get properties(): ModelIndex<AttributeModel | FieldModel>;
|
|
72
|
+
/**
|
|
73
|
+
* The cluster's conformant fields.
|
|
74
|
+
*
|
|
75
|
+
* Fields are not formally allowed on clusters but we allow for extensions that should not be served via the
|
|
76
|
+
* Matter protocol.
|
|
77
|
+
*
|
|
78
|
+
* This is primarily here to allow simplified access to fields in contexts where a variable is typed as a
|
|
79
|
+
* ClusterModel or ValueModel.
|
|
80
|
+
*/
|
|
81
|
+
get fields(): ModelIndex<FieldModel>;
|
|
82
|
+
/**
|
|
83
|
+
* The cluster's conformant commands.
|
|
84
|
+
*/
|
|
85
|
+
get commands(): ModelIndex<CommandModel>;
|
|
86
|
+
/**
|
|
87
|
+
* The cluster's conformant events.
|
|
88
|
+
*/
|
|
89
|
+
get events(): ModelIndex<EventModel>;
|
|
90
|
+
}
|
|
53
91
|
}
|
|
54
92
|
//# sourceMappingURL=ClusterModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterModel.d.ts","sourceRoot":"","sources":["../../../src/models/ClusterModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ClusterModel.d.ts","sourceRoot":"","sources":["../../../src/models/ClusterModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,9 @@ class ClusterModel extends import_ScopeModel.ScopeModel {
|
|
|
64
64
|
get datatypes() {
|
|
65
65
|
return this.scope.membersOf(this, { tags: [import_common.ElementTag.Datatype] });
|
|
66
66
|
}
|
|
67
|
+
get conformant() {
|
|
68
|
+
return new ClusterModel.Conformant(this);
|
|
69
|
+
}
|
|
67
70
|
get classification() {
|
|
68
71
|
return this.resource?.classification;
|
|
69
72
|
}
|
|
@@ -84,7 +87,9 @@ class ClusterModel extends import_ScopeModel.ScopeModel {
|
|
|
84
87
|
* Get attributes, commands and events whether inherited or defined directly in this model.
|
|
85
88
|
*/
|
|
86
89
|
get allAces() {
|
|
87
|
-
return this.scope.membersOf(this, {
|
|
90
|
+
return this.scope.membersOf(this, {
|
|
91
|
+
tags: [import_common.ElementTag.Attribute, import_common.ElementTag.Command, import_common.ElementTag.Event]
|
|
92
|
+
});
|
|
88
93
|
}
|
|
89
94
|
get revision() {
|
|
90
95
|
let revision = 1;
|
|
@@ -163,4 +168,67 @@ class ClusterModel extends import_ScopeModel.ScopeModel {
|
|
|
163
168
|
static Tag = import_elements.ClusterElement.Tag;
|
|
164
169
|
}
|
|
165
170
|
ClusterModel.register();
|
|
171
|
+
((ClusterModel2) => {
|
|
172
|
+
class Conformant {
|
|
173
|
+
#model;
|
|
174
|
+
constructor(model) {
|
|
175
|
+
this.#model = model;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* The cluster's conformant attributes.
|
|
179
|
+
*/
|
|
180
|
+
get attributes() {
|
|
181
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
182
|
+
tags: [import_common.ElementTag.Attribute],
|
|
183
|
+
conformance: "conformant"
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* The cluster's conformant properties (includes fields and attributes).
|
|
188
|
+
*
|
|
189
|
+
* This offers compatibility with the equivalent field for ValueModel. It is useful when treating a cluster as
|
|
190
|
+
* a struct.
|
|
191
|
+
*/
|
|
192
|
+
get properties() {
|
|
193
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
194
|
+
tags: [import_common.ElementTag.Attribute, import_common.ElementTag.Field],
|
|
195
|
+
conformance: "conformant"
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* The cluster's conformant fields.
|
|
200
|
+
*
|
|
201
|
+
* Fields are not formally allowed on clusters but we allow for extensions that should not be served via the
|
|
202
|
+
* Matter protocol.
|
|
203
|
+
*
|
|
204
|
+
* This is primarily here to allow simplified access to fields in contexts where a variable is typed as a
|
|
205
|
+
* ClusterModel or ValueModel.
|
|
206
|
+
*/
|
|
207
|
+
get fields() {
|
|
208
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
209
|
+
tags: [import_common.ElementTag.Field],
|
|
210
|
+
conformance: "conformant"
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* The cluster's conformant commands.
|
|
215
|
+
*/
|
|
216
|
+
get commands() {
|
|
217
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
218
|
+
tags: [import_common.ElementTag.Command],
|
|
219
|
+
conformance: "conformant"
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* The cluster's conformant events.
|
|
224
|
+
*/
|
|
225
|
+
get events() {
|
|
226
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
227
|
+
tags: [import_common.ElementTag.Event],
|
|
228
|
+
conformance: "conformant"
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
ClusterModel2.Conformant = Conformant;
|
|
233
|
+
})(ClusterModel || (ClusterModel = {}));
|
|
166
234
|
//# sourceMappingURL=ClusterModel.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/models/ClusterModel.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuC;
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ClusterModel"]
|
|
6
6
|
}
|
|
@@ -8,6 +8,7 @@ import { ElementTag, FieldValue, Metatype } from "../common/index.js";
|
|
|
8
8
|
import { ValueElement } from "../elements/index.js";
|
|
9
9
|
import { Model } from "./Model.js";
|
|
10
10
|
import type { PropertyModel } from "./PropertyModel.js";
|
|
11
|
+
import { ModelIndex } from "#logic/ModelIndex.js";
|
|
11
12
|
import type { FieldModel } from "./FieldModel.js";
|
|
12
13
|
/**
|
|
13
14
|
* Each {@link ValueElement} type has a corresponding implementation that derives from this class.
|
|
@@ -30,7 +31,8 @@ export declare abstract class ValueModel<T extends ValueElement = ValueElement>
|
|
|
30
31
|
get quality(): Quality;
|
|
31
32
|
set quality(definition: Quality | Quality.Definition);
|
|
32
33
|
get effectiveQuality(): Quality;
|
|
33
|
-
get fields(): FieldModel
|
|
34
|
+
get fields(): ModelIndex<FieldModel>;
|
|
35
|
+
get conformant(): ValueModel.Conformant;
|
|
34
36
|
/**
|
|
35
37
|
* Metatype is only present on global types with specific semantic meaning. This model is significant because it
|
|
36
38
|
* gives us information about how to manipulate the data. This accessor retrieves this model.
|
|
@@ -68,7 +70,7 @@ export declare abstract class ValueModel<T extends ValueElement = ValueElement>
|
|
|
68
70
|
/**
|
|
69
71
|
* All {@link FieldModel} children in the context of the model's containing scope.
|
|
70
72
|
*/
|
|
71
|
-
get members(): PropertyModel
|
|
73
|
+
get members(): ModelIndex<PropertyModel>;
|
|
72
74
|
/**
|
|
73
75
|
* Collect constraints and conformance for this type and all base types.
|
|
74
76
|
*/
|
|
@@ -105,4 +107,18 @@ export declare abstract class ValueModel<T extends ValueElement = ValueElement>
|
|
|
105
107
|
constructor(definition: Model.Definition<ValueModel<T>>, ...children: Model.ChildDefinition<FieldModel>[]);
|
|
106
108
|
toElement(omitResources?: boolean, extra?: Record<string, unknown>): T;
|
|
107
109
|
}
|
|
110
|
+
export declare namespace ValueModel {
|
|
111
|
+
class Conformant {
|
|
112
|
+
#private;
|
|
113
|
+
constructor(model: Model);
|
|
114
|
+
/**
|
|
115
|
+
* The model's conformant fields.
|
|
116
|
+
*/
|
|
117
|
+
get fields(): ModelIndex<FieldModel>;
|
|
118
|
+
/**
|
|
119
|
+
* An alias for {@link fields} that offers compatibility with the same field for clusters.
|
|
120
|
+
*/
|
|
121
|
+
get properties(): ModelIndex<FieldModel>;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
108
124
|
//# sourceMappingURL=ValueModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueModel.d.ts","sourceRoot":"","sources":["../../../src/models/ValueModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,8BAAsB,UAAU,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,CAClE,SAAQ,KAAK,CAAC,CAAC,EAAE,UAAU,CAC3B,YAAW,YAAY;;IAEvB,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC;IACjC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACX,MAAM,CAAC,sBAAQ;IAOxB,IAAI,UAAU,IAAI,UAAU,CAE3B;IACD,IAAI,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,UAAU,EAE5D;IACD,IAAI,mBAAmB,IAAI,UAAU,CAEpC;IAED,IAAI,WAAW,IAAI,WAAW,CAE7B;IACD,IAAI,WAAW,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC,UAAU,EAE/D;IACD,IAAI,oBAAoB,IAAI,WAAW,CAEtC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,EAEhD;IACD,IAAI,eAAe,IAAI,MAAM,CAE5B;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,MAAM,IAC8D,UAAU,
|
|
1
|
+
{"version":3,"file":"ValueModel.d.ts","sourceRoot":"","sources":["../../../src/models/ValueModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,9 @@ class ValueModel extends import_Model.Model {
|
|
|
79
79
|
get fields() {
|
|
80
80
|
return (0, import_Scope.Scope)(this).membersOf(this, { tags: [import_common.ElementTag.Field] });
|
|
81
81
|
}
|
|
82
|
+
get conformant() {
|
|
83
|
+
return new ValueModel.Conformant(this);
|
|
84
|
+
}
|
|
82
85
|
/**
|
|
83
86
|
* Metatype is only present on global types with specific semantic meaning. This model is significant because it
|
|
84
87
|
* gives us information about how to manipulate the data. This accessor retrieves this model.
|
|
@@ -266,4 +269,28 @@ class ValueModel extends import_Model.Model {
|
|
|
266
269
|
});
|
|
267
270
|
}
|
|
268
271
|
}
|
|
272
|
+
((ValueModel2) => {
|
|
273
|
+
class Conformant {
|
|
274
|
+
#model;
|
|
275
|
+
constructor(model) {
|
|
276
|
+
this.#model = model;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* The model's conformant fields.
|
|
280
|
+
*/
|
|
281
|
+
get fields() {
|
|
282
|
+
return (0, import_Scope.Scope)(this.#model).membersOf(this.#model, {
|
|
283
|
+
tags: [import_common.ElementTag.Field],
|
|
284
|
+
conformance: "conformant"
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* An alias for {@link fields} that offers compatibility with the same field for clusters.
|
|
289
|
+
*/
|
|
290
|
+
get properties() {
|
|
291
|
+
return this.fields;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
ValueModel2.Conformant = Conformant;
|
|
295
|
+
})(ValueModel || (ValueModel = {}));
|
|
269
296
|
//# sourceMappingURL=ValueModel.js.map
|