@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/models/ValueModel.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mBAAsB;AACtB,qBAAiE;AACjE,oBAAiD;AAEjD,4BAA+B;AAC/B,mBAAsB;AAXtB;AAAA;AAAA;AAAA;AAAA;
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ValueModel"]
|
|
6
6
|
}
|
|
@@ -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,SAAS,kBAA4B;AAErC,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAwBtB,SAAS,gBAAgB,eAA2C,UAA0B;AACjG,SAAO,aAAa,gBAAgB,KAAK,YAAY,QAAQ;AACjE;AAAA,CAEO,CAAUA,qBAAV;AACI,EAAMA,iBAAA,MAAM,WAAW;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAA4B;AAErC,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAwBtB,SAAS,gBAAgB,eAA2C,UAA0B;AACjG,SAAO,aAAa,gBAAgB,KAAK,YAAY,QAAQ;AACjE;AAAA,CAEO,CAAUA,qBAAV;AACI,EAAMA,iBAAA,MAAM,WAAW;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,UACH,aAAa;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,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { camelize } from "#general";
|
|
7
|
+
class MutableModelIndex extends Array {
|
|
8
|
+
#nameIndex;
|
|
9
|
+
#idIndex;
|
|
10
|
+
for(key, type) {
|
|
11
|
+
let untyped;
|
|
12
|
+
if (typeof key === "number") {
|
|
13
|
+
untyped = this.#ids.get(key);
|
|
14
|
+
} else {
|
|
15
|
+
untyped = this.#names.get(camelize(key));
|
|
16
|
+
}
|
|
17
|
+
if (untyped === void 0) {
|
|
18
|
+
return void 0;
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(untyped)) {
|
|
21
|
+
if (type) {
|
|
22
|
+
return untyped.find((m) => m instanceof type);
|
|
23
|
+
}
|
|
24
|
+
return untyped[0];
|
|
25
|
+
}
|
|
26
|
+
if (type && !(untyped instanceof type)) {
|
|
27
|
+
return void 0;
|
|
28
|
+
}
|
|
29
|
+
return untyped;
|
|
30
|
+
}
|
|
31
|
+
ofType(type) {
|
|
32
|
+
return this.filter((m) => m instanceof type);
|
|
33
|
+
}
|
|
34
|
+
get #ids() {
|
|
35
|
+
if (this.#idIndex) {
|
|
36
|
+
return this.#idIndex;
|
|
37
|
+
}
|
|
38
|
+
const index = this.#idIndex = /* @__PURE__ */ new Map();
|
|
39
|
+
for (const model of this) {
|
|
40
|
+
if (model.id === void 0) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const already = index.get(model.id);
|
|
44
|
+
if (already) {
|
|
45
|
+
if (Array.isArray(already)) {
|
|
46
|
+
already.push(model);
|
|
47
|
+
} else {
|
|
48
|
+
index.set(model.id, [already, model]);
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
index.set(model.id, model);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return this.#idIndex;
|
|
55
|
+
}
|
|
56
|
+
get #names() {
|
|
57
|
+
if (this.#nameIndex) {
|
|
58
|
+
return this.#nameIndex;
|
|
59
|
+
}
|
|
60
|
+
const index = this.#nameIndex = /* @__PURE__ */ new Map();
|
|
61
|
+
for (const model of this) {
|
|
62
|
+
const name = camelize(model.name);
|
|
63
|
+
const already = index.get(name);
|
|
64
|
+
if (already) {
|
|
65
|
+
if (Array.isArray(already)) {
|
|
66
|
+
already.push(model);
|
|
67
|
+
} else {
|
|
68
|
+
index.set(name, [already, model]);
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
index.set(name, model);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return this.#nameIndex;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
MutableModelIndex
|
|
79
|
+
};
|
|
80
|
+
//# 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,SAAS,gBAAgB;AAgClB,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,IAAI,SAAS,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,OAAO,SAAS,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/esm/logic/Scope.js
CHANGED
|
@@ -8,6 +8,7 @@ import { SchemaImplementationError } from "#common/errors.js";
|
|
|
8
8
|
import { FeatureSet } from "#common/FeatureSet.js";
|
|
9
9
|
import { ImplementationError } from "#general";
|
|
10
10
|
import { ModelTraversal } from "./ModelTraversal.js";
|
|
11
|
+
import { MutableModelIndex } from "./ModelIndex.js";
|
|
11
12
|
const DEFAULT_TAGS = /* @__PURE__ */ new Set([ElementTag.Field, ElementTag.Attribute]);
|
|
12
13
|
const GLOBAL_IDS = /* @__PURE__ */ new Set([65533, 65532, 65531, 65530, 65529, 65528]);
|
|
13
14
|
const cache = /* @__PURE__ */ new WeakMap();
|
|
@@ -79,7 +80,10 @@ function Scope(subject, options = {}) {
|
|
|
79
80
|
}
|
|
80
81
|
const allMembers = findAllMembers(parent, tags, result);
|
|
81
82
|
if (parent.tag === ElementTag.Cluster && tags.has(ElementTag.Attribute)) {
|
|
82
|
-
injectGlobalAttributes(
|
|
83
|
+
injectGlobalAttributes(
|
|
84
|
+
owner,
|
|
85
|
+
allMembers
|
|
86
|
+
);
|
|
83
87
|
}
|
|
84
88
|
if (!conformanceMode || conformanceMode === "ignore") {
|
|
85
89
|
return allMembers;
|
|
@@ -109,7 +113,7 @@ function Scope(subject, options = {}) {
|
|
|
109
113
|
Scope2.ConformantConformance = "conformant";
|
|
110
114
|
})(Scope || (Scope = {}));
|
|
111
115
|
function findAllMembers(parent, tags, scope) {
|
|
112
|
-
const members =
|
|
116
|
+
const members = new MutableModelIndex();
|
|
113
117
|
const defined = {};
|
|
114
118
|
const visited = /* @__PURE__ */ new Set();
|
|
115
119
|
const traversal = new ModelTraversal();
|
|
@@ -159,7 +163,7 @@ function injectGlobalAttributes(scope, members) {
|
|
|
159
163
|
}
|
|
160
164
|
function filterWithConformance(parent, tags, members, features, supportedFeatures, conformantOnly, cache2) {
|
|
161
165
|
const tagsToCollect = new Set(tags);
|
|
162
|
-
const result =
|
|
166
|
+
const result = new MutableModelIndex();
|
|
163
167
|
const cached = cache2 ? cache2.get(parent) ?? /* @__PURE__ */ new Map() : void 0;
|
|
164
168
|
if (cache2 && cached) {
|
|
165
169
|
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,SAAS,kBAAkB;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,kBAAkB;AAC3B,SAAS,2BAA2B;AACpC,SAAS,sBAAsB;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,kBAAkB;AAC3B,SAAS,2BAA2B;AACpC,SAAS,sBAAsB;AAI/B,SAAqB,yBAAyB;AAE9C,MAAM,eAAe,oBAAI,IAAI,CAAC,WAAW,OAAO,WAAW,SAAS,CAAC;AACrE,MAAM,aAAa,oBAAI,IAAI,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAM,CAAC;AAE3E,MAAM,QAAQ,oBAAI,QAAsB;AAsDjC,SAAS,MAAM,SAAgB,UAA8B,CAAC,GAAG;AACpE,MAAI;AAEJ,MAAK,QAAuB,WAAW,QAAQ,YAAY;AACvD,YAAQ;AAAA,EACZ,OAAO;AACH,UAAM,QAAQ,IAAI,eAAe,EAAE,UAAU,OAAO;AAEpD,QAAI,UAAU,QAAW;AACrB,YAAM,IAAI,0BAA0B,SAAS,iBAAiB;AAAA,IAClE;AAEA,YAAQ;AAAA,EACZ;AAEA,QAAM,WAAW,QAAQ,cAAc,OAAO,SAAS,KAAK;AAE5D,MAAI;AACJ,MAAI;AAEJ,MAAI,EAAE,cAAc,kBAAkB,IAAI;AAC1C,MAAI,CAAC,cAAc;AACf,mBAAe,IAAI,WAAW;AAAA,EAClC;AACA,MAAI,CAAC,mBAAmB;AACpB,wBAAoB,IAAI,WAAW;AAAA,EACvC;AAEA,MAAI,YAAY,CAAC,QAAQ,cAAc;AACnC,UAAM,SAAS,MAAM,IAAI,KAAK;AAC9B,QAAI,QAAQ;AACR,aAAO;AAAA,IACX;AACA,8BAA0B,oBAAI,IAAI;AAClC,4BAAwB,oBAAI,IAAI;AAAA,EACpC;AAEA,MAAI;AACJ,QAAM,0BAA0B,CAAC;AACjC,MAAI,QAAQ;AAEZ,MAAI,eAAe,EAAE,iBAAiB,OAAO,WAAS;AAClD;AAEA,eAAW,SAAS,MAAM,UAAU;AAChC,iBAAW,YAAY,CAAC,IAAI,MAAM,GAAG,SAAI,MAAM,IAAI,SAAI,MAAM,iBAAiB,EAAE,EAAE,GAAG;AACjF,cAAM,YAAY,wBAAwB,QAAQ;AAClD,YAAI,cAAc,QAAW;AACzB,kCAAwB,QAAQ,IAAI;AAAA,YAChC;AAAA,YACA,QAAQ,CAAC,KAAK;AAAA,UAClB;AAAA,QACJ,WAAW,UAAU,UAAU,OAAO;AAClC,oBAAU,OAAO,KAAK,KAAK;AAAA,QAC/B,OAAO;AACH,cAAI,CAAC,SAAS;AACV,sBAAU,oBAAI,QAAQ;AAAA,UAC1B;AACA,kBAAQ,IAAI,OAAO,UAAU,MAAM;AAAA,QACvC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,SAAgB;AAAA,IAClB;AAAA,IACA,UAAU,UAAU,WAAS,QAAS,IAAI,KAAmB,IAAI,MAAM;AAAA,IACvE,aAAa,UACP,CAAkB,UAAc,QAAS,IAAI,KAA8B,IAAI,CAAC,IAChF,CAAkB,UAAc;AAAA,IACtC,UAAU,UACJ,CAAkB,UACb,QAAS,IAAI,KAA8B,IAAI,CAAC,KAAuB,QAC5E,CAAkB,UAAa;AAAA,IACrC;AAAA,EACJ;AAEA,WAAS,UAA2B,QAAWA,WAA+B,CAAC,GAAG;AAC9E,UAAM,EAAE,aAAa,gBAAgB,IAAIA;AACzC,QAAI,EAAE,OAAO,aAAa,IAAIA;AAC9B,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,aAAO,IAAI,IAAI,IAAI;AAAA,IACvB;AACA,UAAM,aAAa,eAAe,QAAQ,MAAM,MAAM;AAEtD,QAAI,OAAO,QAAQ,WAAW,WAAW,KAAK,IAAI,WAAW,SAAS,GAAG;AACrE;AAAA,QACI;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,CAAC,mBAAmB,oBAAoB,UAAU;AAClD,aAAO;AAAA,IACX;AAEA,UAAM,iBAAiB,oBAAoB;AAE3C,QAAI,CAAC,kBAAkB,oBAAoB,gBAAgB;AACvD,YAAM,IAAI,oBAAoB,mCAAmC,eAAe,EAAE;AAAA,IACtF;AAEA,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,0BAA0B;AAAA,IAC/C;AAAA,EACJ;AAEA,MAAI,UAAU;AACV,UAAM,IAAI,OAAO,MAAM;AAAA,EAC3B;AAEA,SAAO;AACX;AAAA,CAEO,CAAUC,WAAV;AAwBI,EAAMA,OAAA,oBAAoB;AAM1B,EAAMA,OAAA,0BAA0B;AAKhC,EAAMA,OAAA,wBAAwB;AAAA,GAnCxB;AA6DjB,SAAS,eAAgC,QAAW,MAAuB,OAAc;AACrF,QAAM,UAAU,IAAI,kBAAoC;AAGxD,QAAM,UAAU,CAAC;AAEjB,QAAM,UAAU,oBAAI,IAAW;AAE/B,QAAM,YAAY,IAAI,eAAe;AAErC,MAAI,QAAQ;AACZ,QAAM,qBAAqB,CAAC,UAAiB;AAIzC,UAAM,YAAY,MAAM,SAAS,KAAK;AACtC,QAAI,cAAc,SAAS,CAAC,QAAQ,IAAI,SAAS,GAAG;AAChD,gBAAU,iBAAiB,WAAW,kBAAkB;AACxD,aAAO;AAAA,IACX;AAEA,YAAQ,IAAI,KAAK;AAEjB;AACA,eAAW,SAAS,MAAM,UAAU;AAChC,UAAI,CAAC,KAAK,IAAI,MAAM,GAAG,GAAG;AACtB;AAAA,MACJ;AAGA,YAAM,eAAe,UAAK,MAAM,GAAG,SAAI,MAAM,IAAI,SAAI,MAAM,iBAAiB,EAAE;AAC9E,YAAM,YAAY,QAAQ,YAAY;AACtC,UAAI,cAAc,UAAa,YAAY,OAAO;AAC9C;AAAA,MACJ;AAGA,cAAQ,YAAY,IAAI;AAGxB,cAAQ,KAAK,KAAyB;AAAA,IAC1C;AAAA,EACJ;AACA,YAAU,iBAAiB,QAAQ,kBAAkB;AAErD,SAAO;AACX;AAMA,SAAS,uBAAuB,OAAqB,SAA+B;AAChF,QAAM,mBAAmB,IAAI,IAAI,UAAU;AAC3C,aAAW,KAAK,SAAS;AACrB,QAAI,EAAE,QAAQ,WAAW,aAAa,EAAE,IAAI;AACxC,uBAAiB,OAAO,EAAE,EAAE;AAAA,IAChC;AAAA,EACJ;AAEA,MAAI,iBAAiB,MAAM;AACvB,UAAM,OAAO,IAAI,eAAe,EAAE,SAAS,KAAK;AAChD,QAAI,MAAM;AACN,iBAAW,MAAM,kBAAkB;AAC/B,cAAM,SAAS,KAAK,SAAS,OAAO,IAAI,CAAC,WAAW,SAAS,CAAC;AAC9D,YAAI,QAAQ;AACR,kBAAQ,KAAK,MAAM;AAAA,QACvB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAuBA,SAAS,sBACL,QACA,MACA,SACA,UACA,mBACA,gBACAC,QACF;AACE,QAAM,gBAAgB,IAAI,IAAgB,IAAI;AAC9C,QAAM,SAAS,IAAI,kBAAoC;AACvD,QAAM,SAASA,SAASA,OAAM,IAAI,MAAM,KAAK,oBAAI,IAAI,IAAK;AAE1D,MAAIA,UAAS,QAAQ;AACjB,eAAW,OAAO,eAAe;AAC7B,YAAM,gBAAgB,OAAO,IAAI,GAAG;AACpC,UAAI,eAAe;AACf,eAAO,KAAK,GAAG,aAAa;AAC5B,sBAAc,OAAO,GAAG;AAAA,MAC5B;AAAA,IACJ;AACA,QAAI,cAAc,SAAS,GAAG;AAC1B,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,QAAM,kBAAkB,CAAC;AACzB,aAAW,OAAO,eAAe;AAC7B,oBAAgB,GAAG,IAAI,CAAC;AAAA,EAC5B;AACA,aAAW,UAAU,SAAS;AAC1B,UAAM,EAAE,aAAa,IAAI,IAAI;AAC7B,QAAI,CAAC,cAAc,IAAI,GAAG,GAAG;AACzB;AAAA,IACJ;AAEA,QAAI,CAAC,aAAa;AACd,YAAM,IAAI;AAAA,QACN,oCAAoC,MAAM;AAAA,MAC9C;AAAA,IACJ;AAEA,QAAI,kBAAkB,CAAC,YAAY,gBAAgB,UAAU,iBAAiB,GAAG;AAC7E;AAAA,IACJ;AAEA,UAAM,QAAQ,gBAAgB,GAAG,EAAE,OAAO,IAAI;AAC9C,QAAI,UAAU,QAAW;AACrB,UAAI,CAAC,kBAAkB,CAAC,YAAY,gBAAgB,UAAU,iBAAiB,GAAG;AAC9E;AAAA,MACJ;AAEA,YAAM,EAAE,aAAa,iBAAiB,IAAI;AAC1C,UAAI,CAAC,kBAAkB;AACnB,cAAM,IAAI;AAAA,UACN,oCAAoC,KAAK;AAAA,QAC7C;AAAA,MACJ;AAEA,UAAI,iBAAiB,gBAAgB,UAAU,iBAAiB,GAAG;AAC/D,cAAM,IAAI;AAAA,UACN;AAAA,UACA,sCAAsC,OAAO,IAAI;AAAA,QACrD;AAAA,MACJ;AAAA,IAGJ;AAEA,oBAAgB,GAAG,EAAE,OAAO,IAAI,IAAI;AAAA,EACxC;AAEA,aAAW,OAAO,iBAAiB;AAC/B,UAAM,YAAY,OAAO,OAAO,gBAAgB,GAAG,CAAC;AACpD,QAAI,UAAU,QAAQ;AAClB,aAAO,KAAK,GAAG,SAAS;AACxB,UAAI,QAAQ;AACR,eAAO,IAAI,KAAmB,IAAI,IAAI,SAAS,CAAC;AAAA,MACpD;AAAA,IACJ;AAAA,EACJ;AACA,MAAIA,UAAS,QAAQ;AACjB,IAAAA,OAAM,IAAI,QAAQ,MAAM;AAAA,EAC5B;AAEA,SAAO;AACX;",
|
|
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/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 "./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,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,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,cAAc;AACd,cAAc;AACd,OAAO;",
|
|
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":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,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,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,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;AAE7C,qBAAa,YAAa,SAAQ,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,CAAE,YAAW,cAAc;;IAC7F,GAAG,EAAE,cAAc,CAAC,GAAG,CAAsB;IAItD,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,IAC6D,UAAU,CAAC,cAAc,CAAC,CACpG;IAED,IAAI,QAAQ,IAC6D,UAAU,CAAC,YAAY,CAAC,CAChG;IAED,IAAI,MAAM,IAC6D,UAAU,CAAC,UAAU,CAAC,CAC5F;IAED,IAAI,SAAS,IAC6D,UAAU,CAAC,aAAa,CAAC,CAClG;IAED,IAAI,UAAU,4BAEb;IAED,IAAI,cAAc,IAAI,cAAc,CAAC,cAAc,GAAG,SAAS,CAE9D;IAED,IAAI,cAAc,CAAC,cAAc,EAAE,GAAG,cAAc,CAAC,cAAc,EAAE,GAAG,SAAS,EAIhF;IAED,IAAI,IAAI,IAIO,MAAM,GAAG,SAAS,CAFhC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAIhC;IAED;;OAEG;IACH,IAAI,OAAO,IAGD,UAAU,CAAC,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC,CAC/D;IAED,IAAI,QAAQ,WAOX;IAED,IAAI,QAAQ,iDAEX;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;gBAEW,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;IAU1F,SAAS,CAAC,aAAa,UAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOzE,MAAM,CAAC,GAAG,aAAsB;CACnC;AAID,yBAAiB,YAAY,CAAC;IAC1B,KAAY,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG;QAAE,iBAAiB,CAAC,EAAE,UAAU,CAAC,UAAU,CAAA;KAAE,CAAC;IAExG,KAAY,KAAK,GACX,aAAa,GACb,cAAc,GACd,YAAY,GACZ,UAAU,GAGV,UAAU,CAAC;IAEjB;;OAEG;IACH,MAAa,UAAU;;oBAGP,KAAK,EAAE,YAAY;QAI/B;;WAEG;QACH,IAAI,UAAU,IAIJ,UAAU,CAAC,cAAc,CAAC,CACnC;QAED;;;;;WAKG;QACH,IAAI,UAAU,IAIJ,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,CAChD;QAED;;;;;;;;WAQG;QACH,IAAI,MAAM,IAIA,UAAU,CAAC,UAAU,CAAC,CAC/B;QAED;;WAEG;QACH,IAAI,QAAQ,IAIF,UAAU,CAAC,YAAY,CAAC,CACjC;QAED;;WAEG;QACH,IAAI,MAAM,IAIA,UAAU,CAAC,UAAU,CAAC,CAC/B;KACJ;CACJ"}
|
|
@@ -41,6 +41,9 @@ class ClusterModel extends ScopeModel {
|
|
|
41
41
|
get datatypes() {
|
|
42
42
|
return this.scope.membersOf(this, { tags: [ElementTag.Datatype] });
|
|
43
43
|
}
|
|
44
|
+
get conformant() {
|
|
45
|
+
return new ClusterModel.Conformant(this);
|
|
46
|
+
}
|
|
44
47
|
get classification() {
|
|
45
48
|
return this.resource?.classification;
|
|
46
49
|
}
|
|
@@ -61,7 +64,9 @@ class ClusterModel extends ScopeModel {
|
|
|
61
64
|
* Get attributes, commands and events whether inherited or defined directly in this model.
|
|
62
65
|
*/
|
|
63
66
|
get allAces() {
|
|
64
|
-
return this.scope.membersOf(this, {
|
|
67
|
+
return this.scope.membersOf(this, {
|
|
68
|
+
tags: [ElementTag.Attribute, ElementTag.Command, ElementTag.Event]
|
|
69
|
+
});
|
|
65
70
|
}
|
|
66
71
|
get revision() {
|
|
67
72
|
let revision = 1;
|
|
@@ -140,6 +145,69 @@ class ClusterModel extends ScopeModel {
|
|
|
140
145
|
static Tag = ClusterElement.Tag;
|
|
141
146
|
}
|
|
142
147
|
ClusterModel.register();
|
|
148
|
+
((ClusterModel2) => {
|
|
149
|
+
class Conformant {
|
|
150
|
+
#model;
|
|
151
|
+
constructor(model) {
|
|
152
|
+
this.#model = model;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The cluster's conformant attributes.
|
|
156
|
+
*/
|
|
157
|
+
get attributes() {
|
|
158
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
159
|
+
tags: [ElementTag.Attribute],
|
|
160
|
+
conformance: "conformant"
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* The cluster's conformant properties (includes fields and attributes).
|
|
165
|
+
*
|
|
166
|
+
* This offers compatibility with the equivalent field for ValueModel. It is useful when treating a cluster as
|
|
167
|
+
* a struct.
|
|
168
|
+
*/
|
|
169
|
+
get properties() {
|
|
170
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
171
|
+
tags: [ElementTag.Attribute, ElementTag.Field],
|
|
172
|
+
conformance: "conformant"
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The cluster's conformant fields.
|
|
177
|
+
*
|
|
178
|
+
* Fields are not formally allowed on clusters but we allow for extensions that should not be served via the
|
|
179
|
+
* Matter protocol.
|
|
180
|
+
*
|
|
181
|
+
* This is primarily here to allow simplified access to fields in contexts where a variable is typed as a
|
|
182
|
+
* ClusterModel or ValueModel.
|
|
183
|
+
*/
|
|
184
|
+
get fields() {
|
|
185
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
186
|
+
tags: [ElementTag.Field],
|
|
187
|
+
conformance: "conformant"
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The cluster's conformant commands.
|
|
192
|
+
*/
|
|
193
|
+
get commands() {
|
|
194
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
195
|
+
tags: [ElementTag.Command],
|
|
196
|
+
conformance: "conformant"
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* The cluster's conformant events.
|
|
201
|
+
*/
|
|
202
|
+
get events() {
|
|
203
|
+
return this.#model.scope.membersOf(this.#model, {
|
|
204
|
+
tags: [ElementTag.Event],
|
|
205
|
+
conformance: "conformant"
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
ClusterModel2.Conformant = Conformant;
|
|
210
|
+
})(ClusterModel || (ClusterModel = {}));
|
|
143
211
|
export {
|
|
144
212
|
ClusterModel
|
|
145
213
|
};
|
|
@@ -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,SAAS,UAAU,oBAAoB;
|
|
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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"}
|