@matter/model 0.16.1 → 0.16.2-alpha.0-20260114-d3127faee
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/decoration/decorators/element.d.ts +10 -1
- package/dist/cjs/decoration/decorators/element.d.ts.map +1 -1
- package/dist/cjs/decoration/decorators/element.js +32 -5
- package/dist/cjs/decoration/decorators/element.js.map +1 -1
- package/dist/cjs/decoration/decorators/index.d.ts +2 -0
- package/dist/cjs/decoration/decorators/index.d.ts.map +1 -1
- package/dist/cjs/decoration/decorators/index.js +2 -0
- package/dist/cjs/decoration/decorators/index.js.map +1 -1
- package/dist/cjs/decoration/decorators/response.d.ts +2 -2
- package/dist/cjs/decoration/decorators/response.d.ts.map +1 -1
- package/dist/cjs/decoration/decorators/response.js +3 -19
- package/dist/cjs/decoration/decorators/response.js.map +1 -1
- package/dist/cjs/decoration/semantics/ClassSemantics.d.ts +1 -0
- package/dist/cjs/decoration/semantics/ClassSemantics.d.ts.map +1 -1
- package/dist/cjs/decoration/semantics/ClassSemantics.js +4 -1
- package/dist/cjs/decoration/semantics/ClassSemantics.js.map +1 -1
- package/dist/cjs/decoration/semantics/FieldSemantics.d.ts +3 -0
- package/dist/cjs/decoration/semantics/FieldSemantics.d.ts.map +1 -1
- package/dist/cjs/decoration/semantics/FieldSemantics.js +8 -0
- package/dist/cjs/decoration/semantics/FieldSemantics.js.map +1 -1
- package/dist/cjs/decoration/semantics/Semantics.d.ts +5 -1
- package/dist/cjs/decoration/semantics/Semantics.d.ts.map +1 -1
- package/dist/cjs/decoration/semantics/Semantics.js +12 -0
- package/dist/cjs/decoration/semantics/Semantics.js.map +1 -1
- package/dist/cjs/models/CommandModel.d.ts +9 -1
- package/dist/cjs/models/CommandModel.d.ts.map +1 -1
- package/dist/cjs/models/CommandModel.js +21 -1
- package/dist/cjs/models/CommandModel.js.map +1 -1
- package/dist/esm/decoration/decorators/element.d.ts +10 -1
- package/dist/esm/decoration/decorators/element.d.ts.map +1 -1
- package/dist/esm/decoration/decorators/element.js +32 -5
- package/dist/esm/decoration/decorators/element.js.map +1 -1
- package/dist/esm/decoration/decorators/index.d.ts +2 -0
- package/dist/esm/decoration/decorators/index.d.ts.map +1 -1
- package/dist/esm/decoration/decorators/index.js +2 -0
- package/dist/esm/decoration/decorators/index.js.map +1 -1
- package/dist/esm/decoration/decorators/response.d.ts +2 -2
- package/dist/esm/decoration/decorators/response.d.ts.map +1 -1
- package/dist/esm/decoration/decorators/response.js +3 -19
- package/dist/esm/decoration/decorators/response.js.map +1 -1
- package/dist/esm/decoration/semantics/ClassSemantics.d.ts +1 -0
- package/dist/esm/decoration/semantics/ClassSemantics.d.ts.map +1 -1
- package/dist/esm/decoration/semantics/ClassSemantics.js +4 -1
- package/dist/esm/decoration/semantics/ClassSemantics.js.map +1 -1
- package/dist/esm/decoration/semantics/FieldSemantics.d.ts +3 -0
- package/dist/esm/decoration/semantics/FieldSemantics.d.ts.map +1 -1
- package/dist/esm/decoration/semantics/FieldSemantics.js +8 -0
- package/dist/esm/decoration/semantics/FieldSemantics.js.map +1 -1
- package/dist/esm/decoration/semantics/Semantics.d.ts +5 -1
- package/dist/esm/decoration/semantics/Semantics.d.ts.map +1 -1
- package/dist/esm/decoration/semantics/Semantics.js +12 -0
- package/dist/esm/decoration/semantics/Semantics.js.map +1 -1
- package/dist/esm/models/CommandModel.d.ts +9 -1
- package/dist/esm/models/CommandModel.d.ts.map +1 -1
- package/dist/esm/models/CommandModel.js +21 -1
- package/dist/esm/models/CommandModel.js.map +1 -1
- package/package.json +4 -4
- package/src/decoration/decorators/element.ts +46 -6
- package/src/decoration/decorators/index.ts +2 -0
- package/src/decoration/decorators/response.ts +3 -22
- package/src/decoration/semantics/ClassSemantics.ts +7 -3
- package/src/decoration/semantics/FieldSemantics.ts +11 -0
- package/src/decoration/semantics/Semantics.ts +19 -0
- package/src/models/CommandModel.ts +33 -2
|
@@ -4,16 +4,39 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { InvalidMetadataError, MetadataConflictError } from "#decoration/errors.js";
|
|
7
|
+
import { FieldSemantics } from "#decoration/semantics/FieldSemantics.js";
|
|
7
8
|
import { Semantics } from "#decoration/semantics/Semantics.js";
|
|
8
9
|
import { Decorator } from "#general";
|
|
10
|
+
import { CommandModel } from "#models/CommandModel.js";
|
|
9
11
|
import { Model } from "#models/Model.js";
|
|
10
12
|
import { Schema } from "#models/Schema.js";
|
|
11
13
|
function element(kind, ...modifiers) {
|
|
12
|
-
|
|
14
|
+
let modelType;
|
|
15
|
+
if (kind.Tag === "response") {
|
|
16
|
+
modelType = CommandModel;
|
|
17
|
+
} else {
|
|
18
|
+
modelType = kind;
|
|
19
|
+
}
|
|
20
|
+
const forceType = !(modifiers[0] instanceof modelType);
|
|
13
21
|
return Decorator((target, context) => {
|
|
14
|
-
|
|
22
|
+
let semantics = Semantics.of(context);
|
|
23
|
+
if (kind.Tag === "response") {
|
|
24
|
+
semantics.modelType = CommandModel;
|
|
25
|
+
if (semantics.response === void 0) {
|
|
26
|
+
if (typeof context.name !== "string") {
|
|
27
|
+
throw new InvalidMetadataError(
|
|
28
|
+
`Cannot specify response for ${String(context.name) || "(anonymous)"} because element name is ${typeof context.name}`
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
const response = new FieldSemantics(semantics.owner, context.name);
|
|
32
|
+
response.modelType = CommandModel;
|
|
33
|
+
response.mutableModel.name = `${context.name}Response`;
|
|
34
|
+
response.mutableModel.isResponse = true;
|
|
35
|
+
semantics = semantics.response = response;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
15
38
|
if (forceType) {
|
|
16
|
-
semantics.modelType =
|
|
39
|
+
semantics.modelType = modelType;
|
|
17
40
|
}
|
|
18
41
|
if (context.kind === "class") {
|
|
19
42
|
semantics.new = target;
|
|
@@ -34,7 +57,9 @@ function element(kind, ...modifiers) {
|
|
|
34
57
|
const subresult = modifier(target, context);
|
|
35
58
|
if (subresult) {
|
|
36
59
|
if (result) {
|
|
37
|
-
throw new MetadataConflictError(
|
|
60
|
+
throw new MetadataConflictError(
|
|
61
|
+
`Multiple modifiers returned a value for ${String(context.name || "(anonymous)")}`
|
|
62
|
+
);
|
|
38
63
|
}
|
|
39
64
|
result = subresult;
|
|
40
65
|
}
|
|
@@ -56,7 +81,9 @@ function element(kind, ...modifiers) {
|
|
|
56
81
|
}
|
|
57
82
|
break;
|
|
58
83
|
}
|
|
59
|
-
throw new InvalidMetadataError(
|
|
84
|
+
throw new InvalidMetadataError(
|
|
85
|
+
`Unsupported modifier ${modifier} for ${String(context.name || "(anonymous)")}`
|
|
86
|
+
);
|
|
60
87
|
}
|
|
61
88
|
return result;
|
|
62
89
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/decoration/decorators/element.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,sBAAsB,6BAA6B;AAE5D,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAC1B,SAAS,aAAa;AACtB,SAAS,cAAc;AAKhB,SAAS,QAEd,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,sBAAsB,6BAA6B;AAE5D,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAC1B,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,cAAc;AAKhB,SAAS,QAEd,SAA8B,WAAkC;AAC9D,MAAI;AACJ,MAAI,KAAK,QAAQ,YAAY;AACzB,gBAAY;AAAA,EAChB,OAAO;AACH,gBAAY;AAAA,EAChB;AAIA,QAAM,YAAY,EAAE,UAAU,CAAC,aAAa;AAE5C,SAAO,UAAU,CAAC,QAAa,YAA8B;AACzD,QAAI,YAAY,UAAU,GAAG,OAAO;AAEpC,QAAI,KAAK,QAAQ,YAAY;AACzB,gBAAU,YAAY;AAEtB,UAAI,UAAU,aAAa,QAAW;AAClC,YAAI,OAAO,QAAQ,SAAS,UAAU;AAClC,gBAAM,IAAI;AAAA,YACN,+BAA+B,OAAO,QAAQ,IAAI,KAAK,aAAa,4BAA4B,OAAO,QAAQ,IAAI;AAAA,UACvH;AAAA,QACJ;AAEA,cAAM,WAAW,IAAI,eAAe,UAAU,OAAO,QAAQ,IAAI;AACjE,iBAAS,YAAY;AACrB,iBAAS,aAAa,OAAO,GAAG,QAAQ,IAAI;AAC5C,QAAC,SAAS,aAA8B,aAAa;AACrD,oBAAY,UAAU,WAAW;AAAA,MACrC;AAAA,IACJ;AAEA,QAAI,WAAW;AACX,gBAAU,YAAY;AAAA,IAC1B;AAEA,QAAI,QAAQ,SAAS,SAAS;AAC1B,MAAC,UAA6B,MAAM;AAAA,IACxC;AAEA,QAAI,SAA0B;AAC9B,eAAW,YAAY,WAAW;AAC9B,cAAQ,OAAO,UAAU;AAAA,QACrB,KAAK;AACD,oBAAU,aAAa,KAAK;AAC5B;AAAA,QAEJ,KAAK;AACD,oBAAU,aAAa,OAAO;AAC9B;AAAA,QAEJ,KAAK;AACD,cAAI,SAAS,UAAU;AACnB,sBAAU,YAAY;AAAA,UAC1B,WAAW,UAAU,GAAG,QAAQ,GAAG;AAC/B,kBAAM,YAAa,SAAiB,QAAQ,OAAO;AACnD,gBAAI,WAAW;AACX,kBAAI,QAAQ;AACR,sBAAM,IAAI;AAAA,kBACN,2CAA2C,OAAO,QAAQ,QAAQ,aAAa,CAAC;AAAA,gBACpF;AAAA,cACJ;AACA,uBAAS;AAAA,YACb;AAAA,UACJ,OAAO;AACH,kBAAM,QAAQ,OAAO,QAA2B;AAChD,gBAAI,UAAU,QAAW;AACrB,oBAAM,IAAI;AAAA,gBACN,gCAAgC,SAAS,QAAQ,aAAa,gBAAgB,OAAO,QAAQ,QAAQ,aAAa,CAAC;AAAA,cACvH;AAAA,YACJ;AAEA,kBAAM,SAAS;AAEf,sBAAU,eAAe;AAAA,UAC7B;AACA;AAAA,QAEJ,KAAK;AACD,cAAI,oBAAoB,OAAO;AAC3B,sBAAU,eAAe;AACzB;AAAA,UACJ;AACA;AAAA,MACR;AAEA,YAAM,IAAI;AAAA,QACN,wBAAwB,QAAQ,QAAQ,OAAO,QAAQ,QAAQ,aAAa,CAAC;AAAA,MACjF;AAAA,IACJ;AAEA,WAAO;AAAA,EACX,CAAC;AACL;AAAA,CAEO,CAAUA,aAAV;AAII,WAAS,SAAS,MAA0B;AAC/C,WAAO,IAAI,cAAuD;AAC9D,aAAOA,SAAQ,MAAM,GAAG,SAAS;AAAA,IACrC;AAAA,EACJ;AAJO,EAAAA,SAAS;AAST,WAAS,MAAM,MAA0B;AAC5C,WAAO,IAAI,cAAoD;AAC3D,aAAOA,SAAQ,MAAM,GAAG,SAAS;AAAA,IACrC;AAAA,EACJ;AAJO,EAAAA,SAAS;AAAA,GAbH;",
|
|
5
5
|
"names": ["element"]
|
|
6
6
|
}
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export * from "./attribute.js";
|
|
7
7
|
export * from "./cluster.js";
|
|
8
|
+
export * from "./command.js";
|
|
8
9
|
export * from "./datatype.js";
|
|
9
10
|
export * from "./element.js";
|
|
11
|
+
export * from "./event.js";
|
|
10
12
|
export * from "./field.js";
|
|
11
13
|
export * from "./listOf.js";
|
|
12
14
|
export * from "./mandatory.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/decoration/decorators/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/decoration/decorators/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export * from "./attribute.js";
|
|
7
7
|
export * from "./cluster.js";
|
|
8
|
+
export * from "./command.js";
|
|
8
9
|
export * from "./datatype.js";
|
|
9
10
|
export * from "./element.js";
|
|
11
|
+
export * from "./event.js";
|
|
10
12
|
export * from "./field.js";
|
|
11
13
|
export * from "./listOf.js";
|
|
12
14
|
export * from "./mandatory.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/decoration/decorators/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;",
|
|
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;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Decorator } from "#general";
|
|
7
|
-
import {
|
|
7
|
+
import { element } from "./element.js";
|
|
8
8
|
/**
|
|
9
9
|
* Specify the response type for a command.
|
|
10
10
|
*/
|
|
11
|
-
export declare function response(
|
|
11
|
+
export declare function response(...modifiers: element.Modifier<Decorator.MethodCollector>[]): Decorator.MethodCollector;
|
|
12
12
|
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../src/decoration/decorators/response.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../src/decoration/decorators/response.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,6BAEnF"}
|
|
@@ -3,25 +3,9 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import { CommandModel } from "#models/CommandModel.js";
|
|
10
|
-
function response(type) {
|
|
11
|
-
return Decorator((_target, context) => {
|
|
12
|
-
const requestSemantics = FieldSemantics.of(context);
|
|
13
|
-
requestSemantics.modelType = CommandModel;
|
|
14
|
-
const request = requestSemantics.mutableModel;
|
|
15
|
-
const name = `${request.name}Response`;
|
|
16
|
-
new CommandModel({
|
|
17
|
-
name,
|
|
18
|
-
id: request.id,
|
|
19
|
-
parent: request.parent,
|
|
20
|
-
direction: CommandElement.Direction.Response,
|
|
21
|
-
operationalBase: type
|
|
22
|
-
});
|
|
23
|
-
request.response = name;
|
|
24
|
-
});
|
|
6
|
+
import { element } from "./element.js";
|
|
7
|
+
function response(...modifiers) {
|
|
8
|
+
return element({ Tag: "response" }, ...modifiers);
|
|
25
9
|
}
|
|
26
10
|
export {
|
|
27
11
|
response
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/decoration/decorators/response.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,eAAe;AAKjB,SAAS,YAAY,WAA0D;AAClF,SAAO,QAAQ,EAAE,KAAK,WAAW,GAAG,GAAG,SAAS;AACpD;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -64,6 +64,7 @@ export declare class ClassSemantics extends Semantics {
|
|
|
64
64
|
finalize(): void;
|
|
65
65
|
protected integrateModel(model: Model): Model<import("../../index.js").BaseElement, Model<import("../../index.js").BaseElement, any>>;
|
|
66
66
|
protected createModel(type?: Model.ConcreteType): Model<import("../../index.js").BaseElement, Model<import("../../index.js").BaseElement, any>>;
|
|
67
|
+
get owner(): this;
|
|
67
68
|
}
|
|
68
69
|
export declare namespace ClassSemantics {
|
|
69
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassSemantics.d.ts","sourceRoot":"","sources":["../../../../src/decoration/semantics/ClassSemantics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA6B,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAMpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAmB3C;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,SAAS;;IAIzC;;;;OAIG;IACH,IAAI,aAAa,8GAahB;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,cAAc,CAAC,WAAW,GAAG,SAAS,CAEhD;IAED;;OAEG;IACH,IAAI,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,WAAW,EA6BrC;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,KAAK,GAAG,SAAS,CAsB1C;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAmB9B;;;;OAIG;IACH,oBAAoB,CAAC,QAAQ,EAAE,OAAO;IAuDtC;;OAEG;WACa,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM;IAuChD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW;IAOzD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW;IAUxC,QAAQ;cA6CE,cAAc,CAAC,KAAK,EAAE,KAAK;cAoB3B,WAAW,CAAC,IAAI,GAAE,KAAK,CAAC,YAA4B;
|
|
1
|
+
{"version":3,"file":"ClassSemantics.d.ts","sourceRoot":"","sources":["../../../../src/decoration/semantics/ClassSemantics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA6B,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAMpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAmB3C;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,SAAS;;IAIzC;;;;OAIG;IACH,IAAI,aAAa,8GAahB;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,cAAc,CAAC,WAAW,GAAG,SAAS,CAEhD;IAED;;OAEG;IACH,IAAI,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,WAAW,EA6BrC;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,KAAK,GAAG,SAAS,CAsB1C;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAmB9B;;;;OAIG;IACH,oBAAoB,CAAC,QAAQ,EAAE,OAAO;IAuDtC;;OAEG;WACa,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM;IAuChD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW;IAOzD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW;IAUxC,QAAQ;cA6CE,cAAc,CAAC,KAAK,EAAE,KAAK;cAoB3B,WAAW,CAAC,IAAI,GAAE,KAAK,CAAC,YAA4B;IAQvE,IAAI,KAAK,SAER;CACJ;AAED,yBAAiB,cAAc,CAAC;IAC5B;;OAEG;IACH,UAAiB,WAAY,SAAQ,eAAe;QAChD;;WAEG;QACH,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;KAClD;IAED;;OAEG;IACH,KAAY,MAAM,GAAG,WAAW,GAAG,gBAAgB,GAAG,cAAc,CAAC;IAE9D,MAAM,MAAM,eAAmB,CAAC;CAC1C"}
|
|
@@ -195,12 +195,12 @@ class ClassSemantics extends Semantics {
|
|
|
195
195
|
return;
|
|
196
196
|
}
|
|
197
197
|
this.#new?.[ClassSemantics.extend]?.(this);
|
|
198
|
-
super.finalize();
|
|
199
198
|
if (this.#definedFields) {
|
|
200
199
|
for (const field of this.#definedFields.values()) {
|
|
201
200
|
field.finalize();
|
|
202
201
|
}
|
|
203
202
|
}
|
|
203
|
+
super.finalize();
|
|
204
204
|
}
|
|
205
205
|
#applyBaseSemantics() {
|
|
206
206
|
const base = this.prototypeBaseModel;
|
|
@@ -239,6 +239,9 @@ class ClassSemantics extends Semantics {
|
|
|
239
239
|
}
|
|
240
240
|
return new type({ name, operationalBase: struct });
|
|
241
241
|
}
|
|
242
|
+
get owner() {
|
|
243
|
+
return this;
|
|
244
|
+
}
|
|
242
245
|
}
|
|
243
246
|
((ClassSemantics2) => {
|
|
244
247
|
ClassSemantics2.extend = /* @__PURE__ */ Symbol("extend");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/decoration/semantics/ClassSemantics.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["metadata", "ClassSemantics"]
|
|
6
6
|
}
|
|
@@ -10,7 +10,10 @@ import { Semantics } from "./Semantics.js";
|
|
|
10
10
|
* Decorator metadata associated with a specific class field.
|
|
11
11
|
*/
|
|
12
12
|
export declare class FieldSemantics extends Semantics {
|
|
13
|
+
#private;
|
|
13
14
|
constructor(owner: ClassSemantics, name: string);
|
|
15
|
+
get owner(): ClassSemantics;
|
|
16
|
+
get semanticModel(): Model<import("../../index.js").BaseElement, Model<import("../../index.js").BaseElement, any>> | undefined;
|
|
14
17
|
protected createModel(): Model;
|
|
15
18
|
protected integrateModel(model: Model): Model;
|
|
16
19
|
static of(source: FieldSemantics.Source): FieldSemantics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldSemantics.d.ts","sourceRoot":"","sources":["../../../../src/decoration/semantics/FieldSemantics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS
|
|
1
|
+
{"version":3,"file":"FieldSemantics.d.ts","sourceRoot":"","sources":["../../../../src/decoration/semantics/FieldSemantics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS;;gBAG7B,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM;IAO/C,IAAI,KAAK,mBAER;IAED,IAAI,aAAa,8GAEhB;cAEkB,WAAW,IAAI,KAAK;cAKpB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;WAQtC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM;CAQnD;AAED,yBAAiB,cAAc,CAAC;IAC5B,KAAY,MAAM,GAAG,gBAAgB,CAAC;CACzC"}
|
|
@@ -8,10 +8,18 @@ import { InternalError } from "#general";
|
|
|
8
8
|
import { FieldModel } from "#models/FieldModel.js";
|
|
9
9
|
import { Semantics } from "./Semantics.js";
|
|
10
10
|
class FieldSemantics extends Semantics {
|
|
11
|
+
#owner;
|
|
11
12
|
constructor(owner, name) {
|
|
12
13
|
super();
|
|
14
|
+
this.#owner = owner;
|
|
13
15
|
this.mutableModel = new FieldModel({ name, parent: owner.mutableModel });
|
|
14
16
|
}
|
|
17
|
+
get owner() {
|
|
18
|
+
return this.#owner;
|
|
19
|
+
}
|
|
20
|
+
get semanticModel() {
|
|
21
|
+
return this.localModel;
|
|
22
|
+
}
|
|
15
23
|
createModel() {
|
|
16
24
|
throw new InternalError("Unexpected FieldSemantics.createModel");
|
|
17
25
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/decoration/semantics/FieldSemantics.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAG3B,SAAS,iBAAiB;AAKnB,MAAM,uBAAuB,UAAU;AAAA,EAC1C,YAAY,OAAuB,MAAc;AAC7C,UAAM;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAG3B,SAAS,iBAAiB;AAKnB,MAAM,uBAAuB,UAAU;AAAA,EAC1C;AAAA,EAEA,YAAY,OAAuB,MAAc;AAC7C,UAAM;AACN,SAAK,SAAS;AAEd,SAAK,eAAe,IAAI,WAAW,EAAE,MAAM,QAAQ,MAAM,aAAa,CAAC;AAAA,EAC3E;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,gBAAgB;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEmB,cAAqB;AAEpC,UAAM,IAAI,cAAc,uCAAuC;AAAA,EACnE;AAAA,EAEmB,eAAe,OAAqB;AACnD,QAAI,KAAK,eAAe,QAAW;AAC/B,aAAO;AAAA,IACX;AACA,SAAK,aAAa,kBAAkB;AACpC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAgB,GAAG,QAA+B;AAC9C,QAAI,OAAO,SAAS,SAAS;AACzB,YAAM,IAAI;AAAA,QACN,uDAAuD,OAAO,QAAQ,oBAAoB;AAAA,MAC9F;AAAA,IACJ;AACA,WAAO,UAAU,QAAQ,MAAM,EAAE,SAAS,OAAO,IAAI;AAAA,EACzD;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { Model } from "#models/Model.js";
|
|
7
7
|
import type { ClassSemantics } from "./ClassSemantics.js";
|
|
8
|
+
import type { FieldSemantics } from "./FieldSemantics.js";
|
|
8
9
|
/**
|
|
9
10
|
* Base class for Matter semantics associated with JavaScript classes and properties.
|
|
10
11
|
*
|
|
@@ -13,6 +14,7 @@ import type { ClassSemantics } from "./ClassSemantics.js";
|
|
|
13
14
|
*/
|
|
14
15
|
export declare abstract class Semantics {
|
|
15
16
|
#private;
|
|
17
|
+
response?: FieldSemantics;
|
|
16
18
|
/**
|
|
17
19
|
* Determine whether these semantics are final.
|
|
18
20
|
*
|
|
@@ -53,13 +55,15 @@ export declare abstract class Semantics {
|
|
|
53
55
|
*/
|
|
54
56
|
get modelType(): Model.Type | undefined;
|
|
55
57
|
set modelType(type: Model.ConcreteType);
|
|
58
|
+
abstract owner: ClassSemantics;
|
|
59
|
+
abstract semanticModel?: Model;
|
|
56
60
|
protected abstract createModel(type?: Model.ConcreteType): Model;
|
|
57
61
|
}
|
|
58
62
|
export declare namespace Semantics {
|
|
59
63
|
/**
|
|
60
64
|
* Access the {@link Semantics} of a {@link DecoratorContext}.
|
|
61
65
|
*/
|
|
62
|
-
function of(context: DecoratorContext):
|
|
66
|
+
function of(context: DecoratorContext): FieldSemantics | ClassSemantics;
|
|
63
67
|
/**
|
|
64
68
|
* Access the {@link ClassSemantics} of a constructor or decorator context.
|
|
65
69
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Semantics.d.ts","sourceRoot":"","sources":["../../../../src/decoration/semantics/Semantics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Semantics.d.ts","sourceRoot":"","sources":["../../../../src/decoration/semantics/Semantics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;;;;GAKG;AACH,8BAAsB,SAAS;;IAI3B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;OAIG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,QAAQ;IAuBR;;OAEG;IACH,IAAI,UAAU,8GAEb;IAED;;;;;;;;OAQG;IACH,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,EAgB5B;IAED;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAEtD;;OAEG;IACH,IAAI,YAAY,IA1BQ,KAAK,CAqC5B;IAED;;;;;OAKG;IACH,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS,CAKtC;IAED,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EA8BrC;IAED,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK;CACnE;AAED,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACH,SAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,mCAM3C;IAED;;OAEG;IAEI,IAAI,OAAO,GAAI,SAAS,cAAc,CAAC,MAAM,KAAG,cAGtD,CAAC;CACL"}
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { MetadataConflictError } from "#decoration/errors.js";
|
|
7
7
|
import { InternalError } from "#general";
|
|
8
|
+
import { CommandModel } from "#models/CommandModel.js";
|
|
8
9
|
import * as models from "#standard/elements/models.js";
|
|
9
10
|
const standardModels = new Set(Object.values(models));
|
|
10
11
|
class Semantics {
|
|
11
12
|
#localModel;
|
|
12
13
|
#isFinal = false;
|
|
14
|
+
response;
|
|
13
15
|
/**
|
|
14
16
|
* Determine whether these semantics are final.
|
|
15
17
|
*
|
|
@@ -25,6 +27,16 @@ class Semantics {
|
|
|
25
27
|
if (this.#isFinal) {
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
30
|
+
if (this.response && this.semanticModel instanceof CommandModel) {
|
|
31
|
+
this.response.finalize();
|
|
32
|
+
const response = this.response.localModel;
|
|
33
|
+
if (response) {
|
|
34
|
+
if (response.id === void 0) {
|
|
35
|
+
response.id = this.semanticModel.id;
|
|
36
|
+
}
|
|
37
|
+
this.mutableModel.operationalResponse = this.response.localModel;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
28
40
|
this.#isFinal = true;
|
|
29
41
|
Object.freeze(this);
|
|
30
42
|
this.#localModel?.finalize();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/decoration/semantics/Semantics.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,6BAA6B;AACtC,SAAS,qBAAqB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Semantics"]
|
|
6
6
|
}
|
|
@@ -10,9 +10,11 @@ export declare class CommandModel extends ValueModel<CommandElement> implements
|
|
|
10
10
|
tag: CommandElement.Tag;
|
|
11
11
|
direction?: CommandElement.Direction;
|
|
12
12
|
response?: string;
|
|
13
|
+
operationalResponse?: CommandModel | null;
|
|
13
14
|
get fabricScoped(): boolean;
|
|
14
15
|
get isRequest(): boolean;
|
|
15
16
|
get isResponse(): boolean;
|
|
17
|
+
set isResponse(isResponse: boolean);
|
|
16
18
|
get responseModel(): CommandModel | undefined;
|
|
17
19
|
get effectiveDirection(): CommandElement.Direction | undefined;
|
|
18
20
|
get requiredFields(): {
|
|
@@ -43,9 +45,15 @@ export declare class CommandModel extends ValueModel<CommandElement> implements
|
|
|
43
45
|
* direction.
|
|
44
46
|
*/
|
|
45
47
|
get discriminator(): CommandElement.Direction;
|
|
46
|
-
constructor(definition:
|
|
48
|
+
constructor(definition: CommandModel.Definition, ...children: Model.ChildDefinition<CommandModel>[]);
|
|
47
49
|
toElement(omitResources?: boolean, extra?: Record<string, unknown>): CommandElement;
|
|
50
|
+
finalize(): void;
|
|
48
51
|
static Tag: import("../index.js").ElementTag;
|
|
49
52
|
static requiresId: boolean;
|
|
50
53
|
}
|
|
54
|
+
export declare namespace CommandModel {
|
|
55
|
+
type Definition = Model.Definition<CommandModel> & {
|
|
56
|
+
operationalResponse?: CommandModel;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
51
59
|
//# sourceMappingURL=CommandModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandModel.d.ts","sourceRoot":"","sources":["../../../src/models/CommandModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,YAAa,SAAQ,UAAU,CAAC,cAAc,CAAE,YAAW,cAAc;IACzE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAsB;IACtD,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,IAAI,YAAY,YAEf;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,UAAU,
|
|
1
|
+
{"version":3,"file":"CommandModel.d.ts","sourceRoot":"","sources":["../../../src/models/CommandModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,YAAa,SAAQ,UAAU,CAAC,cAAc,CAAE,YAAW,cAAc;IACzE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAsB;IACtD,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mBAAmB,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAE1C,IAAI,YAAY,YAEf;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,UAAU,IAIa,OAAO,CAFjC;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,EAEjC;IAED,IAAI,aAAa,6BAWhB;IAED,IAAI,kBAAkB,yCAErB;IAED,IAAa,cAAc;;;;;;;;;;;;;;;;;;;;;;MAE1B;IAED;;;OAGG;IACH,IAAa,aAAa,6BAWzB;gBAEW,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;IAQ1F,SAAS,CAAC,aAAa,UAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQhE,QAAQ;IAWjB,MAAM,CAAC,GAAG,mCAAsB;IAChC,MAAM,CAAC,UAAU,UAAQ;CAC5B;AAED,yBAAiB,YAAY,CAAC;IAC1B,KAAY,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG;QAAE,mBAAmB,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;CACpG"}
|
|
@@ -10,6 +10,7 @@ class CommandModel extends ValueModel {
|
|
|
10
10
|
tag = CommandElement.Tag;
|
|
11
11
|
direction;
|
|
12
12
|
response;
|
|
13
|
+
operationalResponse;
|
|
13
14
|
get fabricScoped() {
|
|
14
15
|
return !!this.effectiveAccess.fabric;
|
|
15
16
|
}
|
|
@@ -19,8 +20,18 @@ class CommandModel extends ValueModel {
|
|
|
19
20
|
get isResponse() {
|
|
20
21
|
return this.effectiveDirection === CommandElement.Direction.Response;
|
|
21
22
|
}
|
|
23
|
+
set isResponse(isResponse) {
|
|
24
|
+
this.direction = isResponse ? CommandElement.Direction.Response : CommandElement.Direction.Request;
|
|
25
|
+
}
|
|
22
26
|
get responseModel() {
|
|
23
|
-
|
|
27
|
+
switch (this.operationalResponse) {
|
|
28
|
+
case void 0:
|
|
29
|
+
return new ModelTraversal().findResponse(this);
|
|
30
|
+
case null:
|
|
31
|
+
return void 0;
|
|
32
|
+
default:
|
|
33
|
+
return this.operationalResponse;
|
|
34
|
+
}
|
|
24
35
|
}
|
|
25
36
|
get effectiveDirection() {
|
|
26
37
|
return this.direction ?? this.base?.direction;
|
|
@@ -45,6 +56,7 @@ class CommandModel extends ValueModel {
|
|
|
45
56
|
super(definition, ...children);
|
|
46
57
|
this.direction = definition.direction;
|
|
47
58
|
this.response = definition.response;
|
|
59
|
+
this.operationalResponse = definition.operationalResponse;
|
|
48
60
|
}
|
|
49
61
|
toElement(omitResources = false, extra) {
|
|
50
62
|
return super.toElement(omitResources, {
|
|
@@ -53,6 +65,14 @@ class CommandModel extends ValueModel {
|
|
|
53
65
|
...extra
|
|
54
66
|
});
|
|
55
67
|
}
|
|
68
|
+
finalize() {
|
|
69
|
+
if (this.isFinal) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const operationalResponse = this.operationalResponse ?? (this.operationalResponse = this.responseModel ?? null);
|
|
73
|
+
operationalResponse?.finalize();
|
|
74
|
+
super.finalize();
|
|
75
|
+
}
|
|
56
76
|
static Tag = CommandElement.Tag;
|
|
57
77
|
static requiresId = true;
|
|
58
78
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/models/CommandModel.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAE/B,SAAS,kBAAkB;AAEpB,MAAM,qBAAqB,WAAqD;AAAA,EAC1E,MAA0B,eAAe;AAAA,EAClD;AAAA,EACA;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,CAAC,CAAC,KAAK,gBAAgB;AAAA,EAClC;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK,uBAAuB,eAAe,UAAU;AAAA,EAChE;AAAA,EAEA,IAAI,aAAa;AACb,WAAO,KAAK,uBAAuB,eAAe,UAAU;AAAA,EAChE;AAAA,EAEA,IAAI,gBAAgB;AAChB,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAE/B,SAAS,kBAAkB;AAEpB,MAAM,qBAAqB,WAAqD;AAAA,EAC1E,MAA0B,eAAe;AAAA,EAClD;AAAA,EACA;AAAA,EAEA;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,CAAC,CAAC,KAAK,gBAAgB;AAAA,EAClC;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK,uBAAuB,eAAe,UAAU;AAAA,EAChE;AAAA,EAEA,IAAI,aAAa;AACb,WAAO,KAAK,uBAAuB,eAAe,UAAU;AAAA,EAChE;AAAA,EAEA,IAAI,WAAW,YAAqB;AAChC,SAAK,YAAY,aAAa,eAAe,UAAU,WAAW,eAAe,UAAU;AAAA,EAC/F;AAAA,EAEA,IAAI,gBAAgB;AAChB,YAAQ,KAAK,qBAAqB;AAAA,MAC9B,KAAK;AACD,eAAO,IAAI,eAAe,EAAE,aAAa,IAAI;AAAA,MAEjD,KAAK;AACD,eAAO;AAAA,MAEX;AACI,eAAO,KAAK;AAAA,IACpB;AAAA,EACJ;AAAA,EAEA,IAAI,qBAAqB;AACrB,WAAO,KAAK,aAAc,KAAK,MAAmC;AAAA,EACtE;AAAA,EAEA,IAAa,iBAAiB;AAC1B,WAAO,EAAE,GAAG,MAAM,gBAAgB,IAAI,KAAK,GAAG;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAa,gBAAgB;AAGzB,QAAI,KAAK,cAAc,QAAW;AAC9B,UAAI,KAAK,KAAK,SAAS,UAAU,GAAG;AAChC,eAAO,eAAe,UAAU;AAAA,MACpC;AACA,aAAO,eAAe,UAAU;AAAA,IACpC;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,YAAY,eAAwC,UAAiD;AACjG,UAAM,YAAY,GAAG,QAAQ;AAE7B,SAAK,YAAY,WAAW;AAC5B,SAAK,WAAW,WAAW;AAC3B,SAAK,sBAAsB,WAAW;AAAA,EAC1C;AAAA,EAES,UAAU,gBAAgB,OAAO,OAAiC;AACvE,WAAO,MAAM,UAAU,eAAe;AAAA,MAClC,WAAW,KAAK;AAAA,MAChB,UAAU,KAAK;AAAA,MACf,GAAG;AAAA,IACP,CAAC;AAAA,EACL;AAAA,EAES,WAAW;AAChB,QAAI,KAAK,SAAS;AACd;AAAA,IACJ;AAEA,UAAM,sBAAsB,KAAK,wBAAwB,KAAK,sBAAsB,KAAK,iBAAiB;AAC1G,yBAAqB,SAAS;AAE9B,UAAM,SAAS;AAAA,EACnB;AAAA,EAEA,OAAO,MAAM,eAAe;AAAA,EAC5B,OAAO,aAAa;AACxB;AAMA,aAAa,SAAS;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/model",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.2-alpha.0-20260114-d3127faee",
|
|
4
4
|
"description": "Matter data model",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
"embed-examples": "embedme **/README.md"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@matter/general": "0.16.
|
|
34
|
+
"@matter/general": "0.16.2-alpha.0-20260114-d3127faee"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@matter/testing": "0.16.
|
|
38
|
-
"@matter/tools": "0.16.
|
|
37
|
+
"@matter/testing": "0.16.2-alpha.0-20260114-d3127faee",
|
|
38
|
+
"@matter/tools": "0.16.2-alpha.0-20260114-d3127faee"
|
|
39
39
|
},
|
|
40
40
|
"files": [
|
|
41
41
|
"dist/**/*",
|
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
import { InvalidMetadataError, MetadataConflictError } from "#decoration/errors.js";
|
|
8
8
|
import type { ClassSemantics } from "#decoration/semantics/ClassSemantics.js";
|
|
9
|
+
import { FieldSemantics } from "#decoration/semantics/FieldSemantics.js";
|
|
9
10
|
import { Semantics } from "#decoration/semantics/Semantics.js";
|
|
10
11
|
import { Decorator } from "#general";
|
|
12
|
+
import { CommandModel } from "#models/CommandModel.js";
|
|
11
13
|
import { Model } from "#models/Model.js";
|
|
12
14
|
import { Schema } from "#models/Schema.js";
|
|
13
15
|
|
|
@@ -16,15 +18,41 @@ import { Schema } from "#models/Schema.js";
|
|
|
16
18
|
*/
|
|
17
19
|
export function element<
|
|
18
20
|
T extends Decorator.Collector | Decorator.ClassCollector | Decorator.PropertyCollector | Decorator.MethodCollector,
|
|
19
|
-
>(kind:
|
|
21
|
+
>(kind: element.ElementKind, ...modifiers: element.Modifier<T>[]) {
|
|
22
|
+
let modelType: Model.ConcreteType;
|
|
23
|
+
if (kind.Tag === "response") {
|
|
24
|
+
modelType = CommandModel;
|
|
25
|
+
} else {
|
|
26
|
+
modelType = kind;
|
|
27
|
+
}
|
|
28
|
+
|
|
20
29
|
// We want to force the element to the specific type. Do this explicitly unless the initial modifier will do it for
|
|
21
30
|
// us. This prevents us from creating a separate local model if there is no further annotation
|
|
22
|
-
const forceType = !(modifiers[0] instanceof
|
|
31
|
+
const forceType = !(modifiers[0] instanceof modelType);
|
|
23
32
|
|
|
24
33
|
return Decorator((target: any, context: DecoratorContext) => {
|
|
25
|
-
|
|
34
|
+
let semantics = Semantics.of(context);
|
|
35
|
+
|
|
36
|
+
if (kind.Tag === "response") {
|
|
37
|
+
semantics.modelType = CommandModel;
|
|
38
|
+
|
|
39
|
+
if (semantics.response === undefined) {
|
|
40
|
+
if (typeof context.name !== "string") {
|
|
41
|
+
throw new InvalidMetadataError(
|
|
42
|
+
`Cannot specify response for ${String(context.name) || "(anonymous)"} because element name is ${typeof context.name}`,
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const response = new FieldSemantics(semantics.owner, context.name);
|
|
47
|
+
response.modelType = CommandModel;
|
|
48
|
+
response.mutableModel.name = `${context.name}Response`;
|
|
49
|
+
(response.mutableModel as CommandModel).isResponse = true;
|
|
50
|
+
semantics = semantics.response = response;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
26
54
|
if (forceType) {
|
|
27
|
-
semantics.modelType =
|
|
55
|
+
semantics.modelType = modelType;
|
|
28
56
|
}
|
|
29
57
|
|
|
30
58
|
if (context.kind === "class") {
|
|
@@ -49,7 +77,9 @@ export function element<
|
|
|
49
77
|
const subresult = (modifier as any)(target, context);
|
|
50
78
|
if (subresult) {
|
|
51
79
|
if (result) {
|
|
52
|
-
throw new MetadataConflictError(
|
|
80
|
+
throw new MetadataConflictError(
|
|
81
|
+
`Multiple modifiers returned a value for ${String(context.name || "(anonymous)")}`,
|
|
82
|
+
);
|
|
53
83
|
}
|
|
54
84
|
result = subresult;
|
|
55
85
|
}
|
|
@@ -75,7 +105,9 @@ export function element<
|
|
|
75
105
|
break;
|
|
76
106
|
}
|
|
77
107
|
|
|
78
|
-
throw new InvalidMetadataError(
|
|
108
|
+
throw new InvalidMetadataError(
|
|
109
|
+
`Unsupported modifier ${modifier} for ${String(context.name || "(anonymous)")}`,
|
|
110
|
+
);
|
|
79
111
|
}
|
|
80
112
|
|
|
81
113
|
return result;
|
|
@@ -125,4 +157,12 @@ export namespace element {
|
|
|
125
157
|
| Decorator.PropertyCollector
|
|
126
158
|
| Decorator.MethodCollector,
|
|
127
159
|
> = Model.ConcreteType | Model | NewableFunction | number | string | T;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Specifies the type of model associated with an element.
|
|
163
|
+
*
|
|
164
|
+
* This is a concrete model class except in the case of responses which we special case to differentiate between
|
|
165
|
+
* commands a responses.
|
|
166
|
+
*/
|
|
167
|
+
export type ElementKind = Model.ConcreteType | { Tag: "response" };
|
|
128
168
|
}
|
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
export * from "./attribute.js";
|
|
8
8
|
export * from "./cluster.js";
|
|
9
|
+
export * from "./command.js";
|
|
9
10
|
export * from "./datatype.js";
|
|
10
11
|
export * from "./element.js";
|
|
12
|
+
export * from "./event.js";
|
|
11
13
|
export * from "./field.js";
|
|
12
14
|
export * from "./listOf.js";
|
|
13
15
|
export * from "./mandatory.js";
|