@matter/model 0.13.1-alpha.0-20250509-28e1567e1 → 0.13.1-alpha.0-20250515-a4c61c546
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/aspects/Access.d.ts +6 -11
- package/dist/cjs/aspects/Access.d.ts.map +1 -1
- package/dist/cjs/aspects/Access.js +5 -8
- package/dist/cjs/aspects/Access.js.map +1 -1
- package/dist/cjs/logic/Scope.d.ts.map +1 -1
- package/dist/cjs/logic/Scope.js +36 -10
- package/dist/cjs/logic/Scope.js.map +1 -1
- package/dist/esm/aspects/Access.d.ts +6 -11
- package/dist/esm/aspects/Access.d.ts.map +1 -1
- package/dist/esm/aspects/Access.js +5 -8
- package/dist/esm/aspects/Access.js.map +1 -1
- package/dist/esm/logic/Scope.d.ts.map +1 -1
- package/dist/esm/logic/Scope.js +36 -10
- package/dist/esm/logic/Scope.js.map +1 -1
- package/package.json +4 -4
- package/src/aspects/Access.ts +10 -17
- package/src/logic/Scope.ts +41 -14
|
@@ -17,11 +17,9 @@ export declare enum AccessLevel {
|
|
|
17
17
|
Administer = 5
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* An operational representation of "access" as defined by the Matter
|
|
21
|
-
* specification.
|
|
20
|
+
* An operational representation of "access" as defined by the Matter specification.
|
|
22
21
|
*
|
|
23
|
-
* "Access" controls the operations a remote party may perform on a data field
|
|
24
|
-
* or cluster element.
|
|
22
|
+
* "Access" controls the operations a remote party may perform on a data field or cluster element.
|
|
25
23
|
*/
|
|
26
24
|
export declare class Access extends Aspect<Access.Definition> implements Access.Ast {
|
|
27
25
|
rw?: Access.Rw;
|
|
@@ -35,19 +33,16 @@ export declare class Access extends Aspect<Access.Definition> implements Access.
|
|
|
35
33
|
get fabricSensitive(): boolean;
|
|
36
34
|
get empty(): boolean;
|
|
37
35
|
/**
|
|
38
|
-
* Determine whether this access is fully specified. This means we know
|
|
39
|
-
*
|
|
40
|
-
* levels.
|
|
36
|
+
* Determine whether this access is fully specified. This means we know whether reads and/or writes are allowed and
|
|
37
|
+
* if so the required access levels.
|
|
41
38
|
*/
|
|
42
39
|
get complete(): boolean;
|
|
43
40
|
/**
|
|
44
|
-
* Initialize from an Access.Definition or the access control DSL defined
|
|
45
|
-
* by the Matter Specification.
|
|
41
|
+
* Initialize from an Access.Definition or the access control DSL defined by the Matter Specification.
|
|
46
42
|
*/
|
|
47
43
|
constructor(definition: string | Access.Definition);
|
|
48
44
|
/**
|
|
49
|
-
* Parses standard Matter access syntax into an AccessFlag set. Extremely
|
|
50
|
-
* lenient.
|
|
45
|
+
* Parses standard Matter access syntax into an AccessFlag set. Extremely lenient.
|
|
51
46
|
*/
|
|
52
47
|
static parse(access: Access, definition: string): Access.Flags;
|
|
53
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Access.d.ts","sourceRoot":"","sources":["../../../src/aspects/Access.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;GAIG;AACH,oBAAY,WAAW;IACnB,IAAI,IAAI;IACR,SAAS,IAAI;IACb,OAAO,IAAI;IACX,MAAM,IAAI;IACV,UAAU,IAAI;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"Access.d.ts","sourceRoot":"","sources":["../../../src/aspects/Access.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,16 +54,14 @@ class Access extends import_Aspect.Aspect {
|
|
|
54
54
|
return (!this.rw || this.rw === Access.Rw.Read) && !this.fabric && !this.readPriv && !this.writePriv && !this.timed;
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
|
-
* Determine whether this access is fully specified. This means we know
|
|
58
|
-
*
|
|
59
|
-
* levels.
|
|
57
|
+
* Determine whether this access is fully specified. This means we know whether reads and/or writes are allowed and
|
|
58
|
+
* if so the required access levels.
|
|
60
59
|
*/
|
|
61
60
|
get complete() {
|
|
62
|
-
return this.rw !== void 0 && (!this.readable || this.
|
|
61
|
+
return this.rw !== void 0 && (!this.readable || this.readPriv !== void 0) && (!this.writable || this.writePriv !== void 0);
|
|
63
62
|
}
|
|
64
63
|
/**
|
|
65
|
-
* Initialize from an Access.Definition or the access control DSL defined
|
|
66
|
-
* by the Matter Specification.
|
|
64
|
+
* Initialize from an Access.Definition or the access control DSL defined by the Matter Specification.
|
|
67
65
|
*/
|
|
68
66
|
constructor(definition) {
|
|
69
67
|
super(definition);
|
|
@@ -77,8 +75,7 @@ class Access extends import_Aspect.Aspect {
|
|
|
77
75
|
this.freeze();
|
|
78
76
|
}
|
|
79
77
|
/**
|
|
80
|
-
* Parses standard Matter access syntax into an AccessFlag set. Extremely
|
|
81
|
-
* lenient.
|
|
78
|
+
* Parses standard Matter access syntax into an AccessFlag set. Extremely lenient.
|
|
82
79
|
*/
|
|
83
80
|
static parse(access, definition) {
|
|
84
81
|
definition = definition.toUpperCase();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/aspects/Access.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAyB;AACzB,oBAAuB;AAPvB;AAAA;AAAA;AAAA;AAAA;AAcO,IAAK,cAAL,kBAAKA,iBAAL;AACH,EAAAA,0BAAA,UAAO,KAAP;AACA,EAAAA,0BAAA,eAAY,KAAZ;AACA,EAAAA,0BAAA,aAAU,KAAV;AACA,EAAAA,0BAAA,YAAS,KAAT;AACA,EAAAA,0BAAA,gBAAa,KAAb;AALQ,SAAAA;AAAA,GAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAyB;AACzB,oBAAuB;AAPvB;AAAA;AAAA;AAAA;AAAA;AAcO,IAAK,cAAL,kBAAKA,iBAAL;AACH,EAAAA,0BAAA,UAAO,KAAP;AACA,EAAAA,0BAAA,eAAY,KAAZ;AACA,EAAAA,0BAAA,aAAU,KAAV;AACA,EAAAA,0BAAA,YAAS,KAAT;AACA,EAAAA,0BAAA,gBAAa,KAAb;AALQ,SAAAA;AAAA,GAAA;AAaL,MAAM,eAAe,qBAAgD;AAAA,EAOxE,IAAI,WAAW;AACX,WAAO,CAAC,KAAK,MAAM,KAAK,OAAO,OAAO,GAAG;AAAA,EAC7C;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,CAAC,CAAC,KAAK,MAAM,KAAK,OAAO,OAAO,GAAG;AAAA,EAC9C;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK,WAAW,OAAO,OAAO;AAAA,EACzC;AAAA,EAEA,IAAI,kBAAkB;AAClB,WAAO,KAAK,WAAW,OAAO,OAAO;AAAA,EACzC;AAAA,EAEA,IAAa,QAAQ;AACjB,YACK,CAAC,KAAK,MAAM,KAAK,OAAO,OAAO,GAAG,SAAS,CAAC,KAAK,UAAU,CAAC,KAAK,YAAY,CAAC,KAAK,aAAa,CAAC,KAAK;AAAA,EAE/G;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,WAAW;AACX,WACI,KAAK,OAAO,WACX,CAAC,KAAK,YAAY,KAAK,aAAa,YACpC,CAAC,KAAK,YAAY,KAAK,cAAc;AAAA,EAE9C;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,YAAwC;AAChD,UAAM,UAAU;AAEhB,QAAI,MAAM,QAAQ,UAAU,GAAG;AAC3B,WAAK,IAAI,WAAW,KAAK,CAAC;AAAA,IAC9B,eAAW,yBAAS,UAAU,GAAG;AAC7B,aAAO,OAAO,MAAM,UAAU;AAAA,IAClC,WAAW,eAAe,UAAa,eAAe,MAAM;AACxD,WAAK,IAAI,MAAM,KAAK,OAAO,MAAM,MAAM,UAAU,CAAC,CAAC;AAAA,IACvD;AAEA,SAAK,OAAO;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,MAAM,QAAgB,YAAoB;AAC7C,iBAAa,WAAW,YAAY;AACpC,QAAI,eAAe,WAAW;AAC1B,aAAO,CAAC;AAAA,IACZ;AAEA,UAAM,QAAQ,CAAC;AACf,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AACxC,cAAQ,WAAW,CAAC,GAAG;AAAA,QACnB,KAAK;AACD,gBAAM,KAAK,OAAO,GAAG,IAAI;AACzB;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,OAAO,OAAO;AAChC;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,OAAO,MAAM;AAC/B;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,OAAO,SAAS;AAClC;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,UAAU,IAAI;AAChC;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,UAAU,OAAO;AACnC;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,UAAU,MAAM;AAClC;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,UAAU,UAAU;AACtC;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,MAAM,QAAQ;AAChC;AAAA,QACJ,KAAK;AACD,gBAAM,KAAK,OAAO,GAAG,KAAK;AAC1B;AAAA,QAEJ,KAAK;AAED,cAAI,IAAI,WAAW,SAAS,KAAK,WAAW,IAAI,CAAC,MAAM,OAAO,WAAW,IAAI,CAAC,MAAM,KAAK;AACrF,kBAAM,KAAK,OAAO,GAAG,eAAe;AACpC,iBAAK;AAAA,UACT;AACA;AAAA,QAEJ,KAAK;AAED,cAAI,IAAI,WAAW,SAAS,KAAK,WAAW,IAAI,CAAC,MAAM,KAAK;AACxD,kBAAM,KAAK,OAAO,GAAG,eAAe;AACpC;AAAA,UACJ;AACA;AAAA,QAEJ,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD;AAAA,QAEJ;AACI,iBAAO,MAAM,uBAAuB,iBAAiB,WAAW,CAAC,CAAC,GAAG;AACrE;AACA;AAAA,MACR;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKS,WAAW;AAChB,UAAM,QAAQ,CAAC;AAEf,QAAI,KAAK,OAAO,QAAW;AACvB,YAAM,KAAK,KAAK,EAAE;AAAA,IACtB;AAEA,QAAI,KAAK,WAAW,QAAW;AAC3B,YAAM,KAAK,KAAK,MAAM;AAAA,IAC1B;AAEA,QAAI,KAAK,aAAa,KAAK,WAAW;AAClC,UAAI,KAAK,aAAa,QAAW;AAC7B,cAAM,KAAK,KAAK,QAAQ;AAAA,MAC5B;AAAA,IACJ,WAAW,KAAK,UAAU;AACtB,UAAI,KAAK,WAAW;AAChB,cAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,SAAS,EAAE;AAAA,MAClD,OAAO;AACH,cAAM,KAAK,KAAK,QAAQ;AAAA,MAC5B;AAAA,IACJ,WAAW,KAAK,WAAW;AACvB,YAAM,KAAK,KAAK,SAAS;AAAA,IAC7B;AAEA,QAAI,KAAK,OAAO;AACZ,YAAM,KAAK,OAAO,MAAM,QAAQ;AAAA,IACpC;AAEA,WAAO,MAAM,KAAK,GAAG;AAAA,EACzB;AAAA,EAEQ,IAAI,OAAqB;AAC7B,UAAM,QAAQ,OAAK;AACf,cAAQ,GAAG;AAAA,QACP,KAAK,OAAO,GAAG;AACX,cAAI,CAAC,KAAK,IAAI;AACV,iBAAK,KAAK;AAAA,UACd;AACA;AAAA,QAEJ,KAAK,OAAO,GAAG;AACX,cAAI,CAAC,KAAK,IAAI;AACV,iBAAK,KAAK;AAAA,UACd,WAAW,KAAK,OAAO,OAAO,GAAG,MAAM;AACnC,iBAAK,KAAK,OAAO,GAAG;AAAA,UACxB;AACA;AAAA,QAEJ,KAAK,OAAO,GAAG;AACX,cAAI,KAAK,OAAO,OAAO,GAAG,iBAAiB;AACvC,iBAAK,KAAK;AAAA,UACd;AACA;AAAA,QAEJ,KAAK,OAAO,GAAG;AACX,eAAK,KAAK;AACV;AAAA,QAEJ,KAAK,OAAO,OAAO;AACf,eAAK,SAAS,OAAO,OAAO;AAC5B;AAAA,QAEJ,KAAK,OAAO,OAAO;AACf,cAAI,KAAK,WAAW,OAAO,OAAO,WAAW;AACzC,iBAAK,SAAS;AAAA,UAClB;AACA;AAAA,QAEJ,KAAK,OAAO,OAAO;AACf,eAAK,SAAS;AACd;AAAA,QAEJ,KAAK,OAAO,UAAU;AAClB,eAAK,WAAW;AAChB;AAAA,QAEJ,KAAK,OAAO,UAAU;AAAA,QACtB,KAAK,OAAO,UAAU;AAAA,QACtB,KAAK,OAAO,UAAU;AAClB,cAAI,CAAC,KAAK,YAAY,OAAO,eAAe,CAAC,IAAI,OAAO,eAAe,KAAK,QAAQ,GAAG;AACnF,iBAAK,WAAW;AAAA,UACpB;AACA,cAAI,CAAC,KAAK,aAAa,OAAO,eAAe,CAAC,IAAI,OAAO,eAAe,KAAK,SAAS,GAAG;AACrF,iBAAK,YAAY;AAAA,UACrB;AACA;AAAA,QAEJ,KAAK,OAAO,MAAM;AACd,eAAK,QAAQ;AACb;AAAA,MACR;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAAA,CAEO,CAAUC,YAAV;AAYI,MAAK;AAAL,IAAKC,QAAL;AAIH,IAAAA,IAAA,UAAO;AAKP,IAAAA,IAAA,WAAQ;AAKR,IAAAA,IAAA,eAAY;AAKZ,IAAAA,IAAA,qBAAkB;AAAA,KAnBV,KAAAD,QAAA,OAAAA,QAAA;AAyBL,MAAK;AAAL,IAAKE,YAAL;AAIH,IAAAA,QAAA,aAAU;AAKV,IAAAA,QAAA,YAAS;AAKT,IAAAA,QAAA,eAAY;AAAA,KAdJ,SAAAF,QAAA,WAAAA,QAAA;AAoBL,MAAK;AAAL,IAAKG,eAAL;AAIH,IAAAA,WAAA,UAAO;AAKP,IAAAA,WAAA,aAAU;AAKV,IAAAA,WAAA,YAAS;AAKT,IAAAA,WAAA,gBAAa;AAAA,KAnBL,YAAAH,QAAA,cAAAA,QAAA;AAyBL,MAAK;AAAL,IAAKI,mBAAL;AACH,IAAAA,eAAA,OAAI;AACJ,IAAAA,eAAA,OAAI;AACJ,IAAAA,eAAA,OAAI;AACJ,IAAAA,eAAA,OAAI;AAAA,KAJI,gBAAAJ,QAAA,kBAAAA,QAAA;AAUL,EAAMA,QAAA,iBAAiB;AAAA,IAC1B,GAAG;AAAA;AAAA,IAEH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACP;AAKO,MAAK;AAAL,IAAKK,WAAL;AAIH,IAAAA,OAAA,cAAW;AAAA,KAJH,QAAAL,QAAA,UAAAA,QAAA;AAiBL,EAAMA,QAAA,IAAI;AACV,EAAMA,QAAA,IAAI;AACV,EAAMA,QAAA,KAAK;AACX,EAAMA,QAAA,MAAM;AAEZ,EAAMA,QAAA,IAAI;AACV,EAAMA,QAAA,IAAI;AACV,EAAMA,QAAA,IAAI;AAEV,EAAMA,QAAA,IAAI;AACV,EAAMA,QAAA,IAAI,CAAC,iBAAiB;AAC5B,EAAMA,QAAA,IAAI,CAAC,gBAAgB;AAC3B,EAAMA,QAAA,IAAI,CAAC,oBAAoB;AAC/B,EAAMA,QAAA,KAAK,CAAC,gBAAgB,iBAAiB;AAC7C,EAAMA,QAAA,KAAK,CAAC,gBAAgB,gBAAgB;AAC5C,EAAMA,QAAA,KAAK,CAAC,gBAAgB,oBAAoB;AAChD,EAAMA,QAAA,KAAK,CAAC,mBAAmB,gBAAgB;AAC/C,EAAMA,QAAA,KAAK,CAAC,mBAAmB,oBAAoB;AACnD,EAAMA,QAAA,KAAK,CAAC,kBAAkB,oBAAoB;AAElD,EAAMA,QAAA,IAAI;AAAA,GA5IJ;AAAA,CA2KV,CAAUA,YAAV;AACI,EAAMA,QAAA,UAAU,IAAIA,QAAO;AAAA,IAC9B,IAAIA,QAAO;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,EACf,CAAC;AAAA,GALY;",
|
|
5
5
|
"names": ["AccessLevel", "Access", "Rw", "Fabric", "Privilege", "PrivilegeName", "Timed"]
|
|
6
6
|
}
|
|
@@ -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;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,
|
|
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,SAmHrE;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
|
@@ -113,6 +113,7 @@ function Scope(subject, options = {}) {
|
|
|
113
113
|
}
|
|
114
114
|
return filterWithConformance(
|
|
115
115
|
parent,
|
|
116
|
+
tags,
|
|
116
117
|
allMembers,
|
|
117
118
|
featureNames,
|
|
118
119
|
supportedFeatures,
|
|
@@ -179,14 +180,31 @@ function injectGlobalAttributes(scope, members) {
|
|
|
179
180
|
}
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
|
-
function filterWithConformance(parent, members, features, supportedFeatures, conformantOnly, cache2) {
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
183
|
+
function filterWithConformance(parent, tags, members, features, supportedFeatures, conformantOnly, cache2) {
|
|
184
|
+
const tagsToCollect = new Set(tags);
|
|
185
|
+
const result = Array();
|
|
186
|
+
const cached = cache2 ? cache2.get(parent) ?? /* @__PURE__ */ new Map() : void 0;
|
|
187
|
+
if (cache2 && cached) {
|
|
188
|
+
for (const tag of tagsToCollect) {
|
|
189
|
+
const cachedMembers = cached.get(tag);
|
|
190
|
+
if (cachedMembers) {
|
|
191
|
+
result.push(...cachedMembers);
|
|
192
|
+
tagsToCollect.delete(tag);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
if (tagsToCollect.size === 0) {
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
186
198
|
}
|
|
187
199
|
const selectedMembers = {};
|
|
200
|
+
for (const tag of tagsToCollect) {
|
|
201
|
+
selectedMembers[tag] = {};
|
|
202
|
+
}
|
|
188
203
|
for (const member of members) {
|
|
189
|
-
const { conformance } = member;
|
|
204
|
+
const { conformance, tag } = member;
|
|
205
|
+
if (!tagsToCollect.has(tag)) {
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
190
208
|
if (!conformance) {
|
|
191
209
|
throw new import_general.ImplementationError(
|
|
192
210
|
`Conformance filtering invoked on ${member} which does not support conformance`
|
|
@@ -195,7 +213,7 @@ function filterWithConformance(parent, members, features, supportedFeatures, con
|
|
|
195
213
|
if (conformantOnly && !conformance.applicabilityOf(features, supportedFeatures)) {
|
|
196
214
|
continue;
|
|
197
215
|
}
|
|
198
|
-
const other = selectedMembers[member.name];
|
|
216
|
+
const other = selectedMembers[tag][member.name];
|
|
199
217
|
if (other !== void 0) {
|
|
200
218
|
if (!conformantOnly && !conformance.applicabilityOf(features, supportedFeatures)) {
|
|
201
219
|
continue;
|
|
@@ -213,11 +231,19 @@ function filterWithConformance(parent, members, features, supportedFeatures, con
|
|
|
213
231
|
);
|
|
214
232
|
}
|
|
215
233
|
}
|
|
216
|
-
selectedMembers[member.name] = member;
|
|
234
|
+
selectedMembers[tag][member.name] = member;
|
|
235
|
+
}
|
|
236
|
+
for (const tag in selectedMembers) {
|
|
237
|
+
const tagResult = Object.values(selectedMembers[tag]);
|
|
238
|
+
if (tagResult.length) {
|
|
239
|
+
result.push(...tagResult);
|
|
240
|
+
if (cached) {
|
|
241
|
+
cached.set(tag, new Set(tagResult));
|
|
242
|
+
}
|
|
243
|
+
}
|
|
217
244
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
cache2.set(parent, result);
|
|
245
|
+
if (cache2 && cached) {
|
|
246
|
+
cache2.set(parent, cached);
|
|
221
247
|
}
|
|
222
248
|
return result;
|
|
223
249
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/logic/Scope.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["options", "Scope", "cache"]
|
|
6
6
|
}
|
|
@@ -17,11 +17,9 @@ export declare enum AccessLevel {
|
|
|
17
17
|
Administer = 5
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* An operational representation of "access" as defined by the Matter
|
|
21
|
-
* specification.
|
|
20
|
+
* An operational representation of "access" as defined by the Matter specification.
|
|
22
21
|
*
|
|
23
|
-
* "Access" controls the operations a remote party may perform on a data field
|
|
24
|
-
* or cluster element.
|
|
22
|
+
* "Access" controls the operations a remote party may perform on a data field or cluster element.
|
|
25
23
|
*/
|
|
26
24
|
export declare class Access extends Aspect<Access.Definition> implements Access.Ast {
|
|
27
25
|
rw?: Access.Rw;
|
|
@@ -35,19 +33,16 @@ export declare class Access extends Aspect<Access.Definition> implements Access.
|
|
|
35
33
|
get fabricSensitive(): boolean;
|
|
36
34
|
get empty(): boolean;
|
|
37
35
|
/**
|
|
38
|
-
* Determine whether this access is fully specified. This means we know
|
|
39
|
-
*
|
|
40
|
-
* levels.
|
|
36
|
+
* Determine whether this access is fully specified. This means we know whether reads and/or writes are allowed and
|
|
37
|
+
* if so the required access levels.
|
|
41
38
|
*/
|
|
42
39
|
get complete(): boolean;
|
|
43
40
|
/**
|
|
44
|
-
* Initialize from an Access.Definition or the access control DSL defined
|
|
45
|
-
* by the Matter Specification.
|
|
41
|
+
* Initialize from an Access.Definition or the access control DSL defined by the Matter Specification.
|
|
46
42
|
*/
|
|
47
43
|
constructor(definition: string | Access.Definition);
|
|
48
44
|
/**
|
|
49
|
-
* Parses standard Matter access syntax into an AccessFlag set. Extremely
|
|
50
|
-
* lenient.
|
|
45
|
+
* Parses standard Matter access syntax into an AccessFlag set. Extremely lenient.
|
|
51
46
|
*/
|
|
52
47
|
static parse(access: Access, definition: string): Access.Flags;
|
|
53
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Access.d.ts","sourceRoot":"","sources":["../../../src/aspects/Access.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;GAIG;AACH,oBAAY,WAAW;IACnB,IAAI,IAAI;IACR,SAAS,IAAI;IACb,OAAO,IAAI;IACX,MAAM,IAAI;IACV,UAAU,IAAI;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"Access.d.ts","sourceRoot":"","sources":["../../../src/aspects/Access.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,16 +30,14 @@ class Access extends Aspect {
|
|
|
30
30
|
return (!this.rw || this.rw === Access.Rw.Read) && !this.fabric && !this.readPriv && !this.writePriv && !this.timed;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Determine whether this access is fully specified. This means we know
|
|
34
|
-
*
|
|
35
|
-
* levels.
|
|
33
|
+
* Determine whether this access is fully specified. This means we know whether reads and/or writes are allowed and
|
|
34
|
+
* if so the required access levels.
|
|
36
35
|
*/
|
|
37
36
|
get complete() {
|
|
38
|
-
return this.rw !== void 0 && (!this.readable || this.
|
|
37
|
+
return this.rw !== void 0 && (!this.readable || this.readPriv !== void 0) && (!this.writable || this.writePriv !== void 0);
|
|
39
38
|
}
|
|
40
39
|
/**
|
|
41
|
-
* Initialize from an Access.Definition or the access control DSL defined
|
|
42
|
-
* by the Matter Specification.
|
|
40
|
+
* Initialize from an Access.Definition or the access control DSL defined by the Matter Specification.
|
|
43
41
|
*/
|
|
44
42
|
constructor(definition) {
|
|
45
43
|
super(definition);
|
|
@@ -53,8 +51,7 @@ class Access extends Aspect {
|
|
|
53
51
|
this.freeze();
|
|
54
52
|
}
|
|
55
53
|
/**
|
|
56
|
-
* Parses standard Matter access syntax into an AccessFlag set. Extremely
|
|
57
|
-
* lenient.
|
|
54
|
+
* Parses standard Matter access syntax into an AccessFlag set. Extremely lenient.
|
|
58
55
|
*/
|
|
59
56
|
static parse(access, definition) {
|
|
60
57
|
definition = definition.toUpperCase();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/aspects/Access.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AAOhB,IAAK,cAAL,kBAAKA,iBAAL;AACH,EAAAA,0BAAA,UAAO,KAAP;AACA,EAAAA,0BAAA,eAAY,KAAZ;AACA,EAAAA,0BAAA,aAAU,KAAV;AACA,EAAAA,0BAAA,YAAS,KAAT;AACA,EAAAA,0BAAA,gBAAa,KAAb;AALQ,SAAAA;AAAA,GAAA;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["AccessLevel", "Access", "Rw", "Fabric", "Privilege", "PrivilegeName", "Timed"]
|
|
6
6
|
}
|
|
@@ -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;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,
|
|
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,SAmHrE;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
|
@@ -90,6 +90,7 @@ function Scope(subject, options = {}) {
|
|
|
90
90
|
}
|
|
91
91
|
return filterWithConformance(
|
|
92
92
|
parent,
|
|
93
|
+
tags,
|
|
93
94
|
allMembers,
|
|
94
95
|
featureNames,
|
|
95
96
|
supportedFeatures,
|
|
@@ -156,14 +157,31 @@ function injectGlobalAttributes(scope, members) {
|
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
|
-
function filterWithConformance(parent, members, features, supportedFeatures, conformantOnly, cache2) {
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
160
|
+
function filterWithConformance(parent, tags, members, features, supportedFeatures, conformantOnly, cache2) {
|
|
161
|
+
const tagsToCollect = new Set(tags);
|
|
162
|
+
const result = Array();
|
|
163
|
+
const cached = cache2 ? cache2.get(parent) ?? /* @__PURE__ */ new Map() : void 0;
|
|
164
|
+
if (cache2 && cached) {
|
|
165
|
+
for (const tag of tagsToCollect) {
|
|
166
|
+
const cachedMembers = cached.get(tag);
|
|
167
|
+
if (cachedMembers) {
|
|
168
|
+
result.push(...cachedMembers);
|
|
169
|
+
tagsToCollect.delete(tag);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (tagsToCollect.size === 0) {
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
163
175
|
}
|
|
164
176
|
const selectedMembers = {};
|
|
177
|
+
for (const tag of tagsToCollect) {
|
|
178
|
+
selectedMembers[tag] = {};
|
|
179
|
+
}
|
|
165
180
|
for (const member of members) {
|
|
166
|
-
const { conformance } = member;
|
|
181
|
+
const { conformance, tag } = member;
|
|
182
|
+
if (!tagsToCollect.has(tag)) {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
167
185
|
if (!conformance) {
|
|
168
186
|
throw new ImplementationError(
|
|
169
187
|
`Conformance filtering invoked on ${member} which does not support conformance`
|
|
@@ -172,7 +190,7 @@ function filterWithConformance(parent, members, features, supportedFeatures, con
|
|
|
172
190
|
if (conformantOnly && !conformance.applicabilityOf(features, supportedFeatures)) {
|
|
173
191
|
continue;
|
|
174
192
|
}
|
|
175
|
-
const other = selectedMembers[member.name];
|
|
193
|
+
const other = selectedMembers[tag][member.name];
|
|
176
194
|
if (other !== void 0) {
|
|
177
195
|
if (!conformantOnly && !conformance.applicabilityOf(features, supportedFeatures)) {
|
|
178
196
|
continue;
|
|
@@ -190,11 +208,19 @@ function filterWithConformance(parent, members, features, supportedFeatures, con
|
|
|
190
208
|
);
|
|
191
209
|
}
|
|
192
210
|
}
|
|
193
|
-
selectedMembers[member.name] = member;
|
|
211
|
+
selectedMembers[tag][member.name] = member;
|
|
212
|
+
}
|
|
213
|
+
for (const tag in selectedMembers) {
|
|
214
|
+
const tagResult = Object.values(selectedMembers[tag]);
|
|
215
|
+
if (tagResult.length) {
|
|
216
|
+
result.push(...tagResult);
|
|
217
|
+
if (cached) {
|
|
218
|
+
cached.set(tag, new Set(tagResult));
|
|
219
|
+
}
|
|
220
|
+
}
|
|
194
221
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
cache2.set(parent, result);
|
|
222
|
+
if (cache2 && cached) {
|
|
223
|
+
cache2.set(parent, cached);
|
|
198
224
|
}
|
|
199
225
|
return result;
|
|
200
226
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/logic/Scope.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["options", "Scope", "cache"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/model",
|
|
3
|
-
"version": "0.13.1-alpha.0-
|
|
3
|
+
"version": "0.13.1-alpha.0-20250515-a4c61c546",
|
|
4
4
|
"description": "Matter data model",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"embed-examples": "embedme **/README.md"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@matter/general": "0.13.1-alpha.0-
|
|
36
|
+
"@matter/general": "0.13.1-alpha.0-20250515-a4c61c546"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@matter/testing": "0.13.1-alpha.0-
|
|
40
|
-
"@matter/tools": "0.13.1-alpha.0-
|
|
39
|
+
"@matter/testing": "0.13.1-alpha.0-20250515-a4c61c546",
|
|
40
|
+
"@matter/tools": "0.13.1-alpha.0-20250515-a4c61c546"
|
|
41
41
|
},
|
|
42
42
|
"files": [
|
|
43
43
|
"dist/**/*",
|
package/src/aspects/Access.ts
CHANGED
|
@@ -21,11 +21,9 @@ export enum AccessLevel {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
* An operational representation of "access" as defined by the Matter
|
|
25
|
-
* specification.
|
|
24
|
+
* An operational representation of "access" as defined by the Matter specification.
|
|
26
25
|
*
|
|
27
|
-
* "Access" controls the operations a remote party may perform on a data field
|
|
28
|
-
* or cluster element.
|
|
26
|
+
* "Access" controls the operations a remote party may perform on a data field or cluster element.
|
|
29
27
|
*/
|
|
30
28
|
export class Access extends Aspect<Access.Definition> implements Access.Ast {
|
|
31
29
|
declare rw?: Access.Rw;
|
|
@@ -57,21 +55,19 @@ export class Access extends Aspect<Access.Definition> implements Access.Ast {
|
|
|
57
55
|
}
|
|
58
56
|
|
|
59
57
|
/**
|
|
60
|
-
* Determine whether this access is fully specified. This means we know
|
|
61
|
-
*
|
|
62
|
-
* levels.
|
|
58
|
+
* Determine whether this access is fully specified. This means we know whether reads and/or writes are allowed and
|
|
59
|
+
* if so the required access levels.
|
|
63
60
|
*/
|
|
64
61
|
get complete() {
|
|
65
62
|
return (
|
|
66
63
|
this.rw !== undefined &&
|
|
67
|
-
(!this.readable || this.
|
|
68
|
-
(!this.writable || this.
|
|
64
|
+
(!this.readable || this.readPriv !== undefined) &&
|
|
65
|
+
(!this.writable || this.writePriv !== undefined)
|
|
69
66
|
);
|
|
70
67
|
}
|
|
71
68
|
|
|
72
69
|
/**
|
|
73
|
-
* Initialize from an Access.Definition or the access control DSL defined
|
|
74
|
-
* by the Matter Specification.
|
|
70
|
+
* Initialize from an Access.Definition or the access control DSL defined by the Matter Specification.
|
|
75
71
|
*/
|
|
76
72
|
constructor(definition: string | Access.Definition) {
|
|
77
73
|
super(definition);
|
|
@@ -88,8 +84,7 @@ export class Access extends Aspect<Access.Definition> implements Access.Ast {
|
|
|
88
84
|
}
|
|
89
85
|
|
|
90
86
|
/**
|
|
91
|
-
* Parses standard Matter access syntax into an AccessFlag set. Extremely
|
|
92
|
-
* lenient.
|
|
87
|
+
* Parses standard Matter access syntax into an AccessFlag set. Extremely lenient.
|
|
93
88
|
*/
|
|
94
89
|
static parse(access: Access, definition: string) {
|
|
95
90
|
definition = definition.toUpperCase();
|
|
@@ -132,8 +127,7 @@ export class Access extends Aspect<Access.Definition> implements Access.Ast {
|
|
|
132
127
|
break;
|
|
133
128
|
|
|
134
129
|
case "[":
|
|
135
|
-
// Optional write syntax. Note only R[W] is legal but we
|
|
136
|
-
// allow for bare [W]
|
|
130
|
+
// Optional write syntax. Note only R[W] is legal but we allow for bare [W]
|
|
137
131
|
if (i < definition.length - 2 && definition[i + 1] === "W" && definition[i + 2] === "]") {
|
|
138
132
|
flags.push(Access.Rw.ReadWriteOption);
|
|
139
133
|
i += 2;
|
|
@@ -141,8 +135,7 @@ export class Access extends Aspect<Access.Definition> implements Access.Ast {
|
|
|
141
135
|
break;
|
|
142
136
|
|
|
143
137
|
case "*":
|
|
144
|
-
// Deprecated syntax, again allow for *W when only R*W is
|
|
145
|
-
// legal
|
|
138
|
+
// Deprecated syntax, again allow for *W when only R*W is legal
|
|
146
139
|
if (i < definition.length - 1 && definition[i + 1] === "W") {
|
|
147
140
|
flags.push(Access.Rw.ReadWriteOption);
|
|
148
141
|
i++;
|
package/src/logic/Scope.ts
CHANGED
|
@@ -87,8 +87,8 @@ export function Scope(subject: Model, options: Scope.ScopeOptions = {}) {
|
|
|
87
87
|
|
|
88
88
|
const useCache = options.forceCache || Object.isFrozen(owner);
|
|
89
89
|
|
|
90
|
-
let deconflictedMemberCache: Map<Model, Model
|
|
91
|
-
let conformantMemberCache: Map<Model, Model
|
|
90
|
+
let deconflictedMemberCache: Map<Model, Map<ElementTag, Set<Model>>> | undefined;
|
|
91
|
+
let conformantMemberCache: Map<Model, Map<ElementTag, Set<Model>>> | undefined;
|
|
92
92
|
|
|
93
93
|
let { featureNames, supportedFeatures } = owner as ClusterModel;
|
|
94
94
|
if (!featureNames) {
|
|
@@ -171,6 +171,7 @@ export function Scope(subject: Model, options: Scope.ScopeOptions = {}) {
|
|
|
171
171
|
|
|
172
172
|
return filterWithConformance(
|
|
173
173
|
parent,
|
|
174
|
+
tags,
|
|
174
175
|
allMembers,
|
|
175
176
|
featureNames,
|
|
176
177
|
supportedFeatures,
|
|
@@ -343,20 +344,39 @@ function injectGlobalAttributes(scope: Model, members: Model[]) {
|
|
|
343
344
|
*/
|
|
344
345
|
function filterWithConformance(
|
|
345
346
|
parent: Model,
|
|
347
|
+
tags: Set<ElementTag>,
|
|
346
348
|
members: Model[],
|
|
347
349
|
features: FeatureSet,
|
|
348
350
|
supportedFeatures: FeatureSet,
|
|
349
351
|
conformantOnly: boolean,
|
|
350
|
-
cache?: Map<Model, Model
|
|
352
|
+
cache?: Map<Model, Map<ElementTag, Set<Model>>>,
|
|
351
353
|
) {
|
|
352
|
-
const
|
|
353
|
-
|
|
354
|
-
|
|
354
|
+
const tagsToCollect = new Set<ElementTag>(tags);
|
|
355
|
+
const result = Array<Model>();
|
|
356
|
+
const cached = cache ? (cache.get(parent) ?? new Map()) : undefined;
|
|
357
|
+
|
|
358
|
+
if (cache && cached) {
|
|
359
|
+
for (const tag of tagsToCollect) {
|
|
360
|
+
const cachedMembers = cached.get(tag);
|
|
361
|
+
if (cachedMembers) {
|
|
362
|
+
result.push(...cachedMembers);
|
|
363
|
+
tagsToCollect.delete(tag);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
if (tagsToCollect.size === 0) {
|
|
367
|
+
return result;
|
|
368
|
+
}
|
|
355
369
|
}
|
|
356
370
|
|
|
357
|
-
const selectedMembers = {} as Record<string, Model
|
|
371
|
+
const selectedMembers = {} as Record<string, Record<string, Model>>;
|
|
372
|
+
for (const tag of tagsToCollect) {
|
|
373
|
+
selectedMembers[tag] = {};
|
|
374
|
+
}
|
|
358
375
|
for (const member of members) {
|
|
359
|
-
const { conformance } = member as ValueModel;
|
|
376
|
+
const { conformance, tag } = member as ValueModel;
|
|
377
|
+
if (!tagsToCollect.has(tag)) {
|
|
378
|
+
continue; // Entry belongs to a tag likely already in the result because was cached
|
|
379
|
+
}
|
|
360
380
|
|
|
361
381
|
if (!conformance) {
|
|
362
382
|
throw new ImplementationError(
|
|
@@ -368,7 +388,7 @@ function filterWithConformance(
|
|
|
368
388
|
continue;
|
|
369
389
|
}
|
|
370
390
|
|
|
371
|
-
const other = selectedMembers[member.name];
|
|
391
|
+
const other = selectedMembers[tag][member.name];
|
|
372
392
|
if (other !== undefined) {
|
|
373
393
|
if (!conformantOnly && !conformance.applicabilityOf(features, supportedFeatures)) {
|
|
374
394
|
continue;
|
|
@@ -391,13 +411,20 @@ function filterWithConformance(
|
|
|
391
411
|
// This member takes precedence and will overwrite below
|
|
392
412
|
}
|
|
393
413
|
|
|
394
|
-
selectedMembers[member.name] = member;
|
|
414
|
+
selectedMembers[tag][member.name] = member;
|
|
395
415
|
}
|
|
396
416
|
|
|
397
|
-
const
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
417
|
+
for (const tag in selectedMembers) {
|
|
418
|
+
const tagResult = Object.values(selectedMembers[tag]);
|
|
419
|
+
if (tagResult.length) {
|
|
420
|
+
result.push(...tagResult);
|
|
421
|
+
if (cached) {
|
|
422
|
+
cached.set(tag as ElementTag, new Set(tagResult));
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
if (cache && cached) {
|
|
427
|
+
cache.set(parent, cached);
|
|
401
428
|
}
|
|
402
429
|
|
|
403
430
|
return result;
|