@matter/model 0.16.0-alpha.0-20251004-92135c7df → 0.16.0-alpha.0-20251011-d8942d7d5

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.
Files changed (82) hide show
  1. package/dist/cjs/aspects/Constraint.d.ts +9 -2
  2. package/dist/cjs/aspects/Constraint.d.ts.map +1 -1
  3. package/dist/cjs/aspects/Constraint.js +93 -18
  4. package/dist/cjs/aspects/Constraint.js.map +2 -2
  5. package/dist/cjs/common/FieldValue.d.ts +3 -9
  6. package/dist/cjs/common/FieldValue.d.ts.map +1 -1
  7. package/dist/cjs/elements/DatatypeElement.d.ts +6 -9
  8. package/dist/cjs/elements/DatatypeElement.d.ts.map +1 -1
  9. package/dist/cjs/elements/DatatypeElement.js.map +1 -1
  10. package/dist/cjs/logic/ModelIndex.d.ts +39 -0
  11. package/dist/cjs/logic/ModelIndex.d.ts.map +1 -0
  12. package/dist/cjs/logic/ModelIndex.js +100 -0
  13. package/dist/cjs/logic/ModelIndex.js.map +6 -0
  14. package/dist/cjs/logic/Scope.d.ts +2 -1
  15. package/dist/cjs/logic/Scope.d.ts.map +1 -1
  16. package/dist/cjs/logic/Scope.js +7 -3
  17. package/dist/cjs/logic/Scope.js.map +1 -1
  18. package/dist/cjs/logic/definition-validation/ValueValidator.d.ts.map +1 -1
  19. package/dist/cjs/logic/definition-validation/ValueValidator.js +2 -0
  20. package/dist/cjs/logic/definition-validation/ValueValidator.js.map +1 -1
  21. package/dist/cjs/logic/index.d.ts +1 -0
  22. package/dist/cjs/logic/index.d.ts.map +1 -1
  23. package/dist/cjs/logic/index.js +1 -0
  24. package/dist/cjs/logic/index.js.map +1 -1
  25. package/dist/cjs/models/ClusterModel.d.ts +43 -5
  26. package/dist/cjs/models/ClusterModel.d.ts.map +1 -1
  27. package/dist/cjs/models/ClusterModel.js +69 -1
  28. package/dist/cjs/models/ClusterModel.js.map +2 -2
  29. package/dist/cjs/models/ValueModel.d.ts +18 -2
  30. package/dist/cjs/models/ValueModel.d.ts.map +1 -1
  31. package/dist/cjs/models/ValueModel.js +27 -0
  32. package/dist/cjs/models/ValueModel.js.map +2 -2
  33. package/dist/cjs/parser/Lexer.js +1 -1
  34. package/dist/cjs/parser/TokenStream.js +2 -2
  35. package/dist/cjs/parser/TokenStream.js.map +1 -1
  36. package/dist/esm/aspects/Constraint.d.ts +9 -2
  37. package/dist/esm/aspects/Constraint.d.ts.map +1 -1
  38. package/dist/esm/aspects/Constraint.js +94 -19
  39. package/dist/esm/aspects/Constraint.js.map +2 -2
  40. package/dist/esm/common/FieldValue.d.ts +3 -9
  41. package/dist/esm/common/FieldValue.d.ts.map +1 -1
  42. package/dist/esm/elements/DatatypeElement.d.ts +6 -9
  43. package/dist/esm/elements/DatatypeElement.d.ts.map +1 -1
  44. package/dist/esm/elements/DatatypeElement.js.map +1 -1
  45. package/dist/esm/logic/ModelIndex.d.ts +39 -0
  46. package/dist/esm/logic/ModelIndex.d.ts.map +1 -0
  47. package/dist/esm/logic/ModelIndex.js +80 -0
  48. package/dist/esm/logic/ModelIndex.js.map +6 -0
  49. package/dist/esm/logic/Scope.d.ts +2 -1
  50. package/dist/esm/logic/Scope.d.ts.map +1 -1
  51. package/dist/esm/logic/Scope.js +7 -3
  52. package/dist/esm/logic/Scope.js.map +1 -1
  53. package/dist/esm/logic/definition-validation/ValueValidator.d.ts.map +1 -1
  54. package/dist/esm/logic/definition-validation/ValueValidator.js +2 -0
  55. package/dist/esm/logic/definition-validation/ValueValidator.js.map +1 -1
  56. package/dist/esm/logic/index.d.ts +1 -0
  57. package/dist/esm/logic/index.d.ts.map +1 -1
  58. package/dist/esm/logic/index.js +1 -0
  59. package/dist/esm/logic/index.js.map +1 -1
  60. package/dist/esm/models/ClusterModel.d.ts +43 -5
  61. package/dist/esm/models/ClusterModel.d.ts.map +1 -1
  62. package/dist/esm/models/ClusterModel.js +69 -1
  63. package/dist/esm/models/ClusterModel.js.map +2 -2
  64. package/dist/esm/models/ValueModel.d.ts +18 -2
  65. package/dist/esm/models/ValueModel.d.ts.map +1 -1
  66. package/dist/esm/models/ValueModel.js +27 -0
  67. package/dist/esm/models/ValueModel.js.map +2 -2
  68. package/dist/esm/parser/Lexer.js +1 -1
  69. package/dist/esm/parser/TokenStream.js +2 -2
  70. package/dist/esm/parser/TokenStream.js.map +1 -1
  71. package/package.json +4 -4
  72. package/src/aspects/Constraint.ts +121 -22
  73. package/src/common/FieldValue.ts +1 -1
  74. package/src/elements/DatatypeElement.ts +6 -9
  75. package/src/logic/ModelIndex.ts +125 -0
  76. package/src/logic/Scope.ts +16 -12
  77. package/src/logic/definition-validation/ValueValidator.ts +2 -0
  78. package/src/logic/index.ts +1 -0
  79. package/src/models/ClusterModel.ts +82 -9
  80. package/src/models/ValueModel.ts +35 -3
  81. package/src/parser/Lexer.ts +1 -1
  82. package/src/parser/TokenStream.ts +2 -2
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/logic/definition-validation/ValueValidator.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
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"}
@@ -24,6 +24,7 @@ __reExport(logic_exports, require("./ClusterVariance.js"), module.exports);
24
24
  __reExport(logic_exports, require("./DefaultValue.js"), module.exports);
25
25
  __reExport(logic_exports, require("./MergedModel.js"), module.exports);
26
26
  __reExport(logic_exports, require("./ModelDiff.js"), module.exports);
27
+ __reExport(logic_exports, require("./ModelIndex.js"), module.exports);
27
28
  __reExport(logic_exports, require("./ModelVariantTraversal.js"), module.exports);
28
29
  __reExport(logic_exports, require("./Scope.js"), module.exports);
29
30
  __reExport(logic_exports, require("./ValidateModel.js"), module.exports);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/logic/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,0BAAc,gDANd;AAOA,0BAAc,6DAPd;AAQA,0BAAc,qDARd;AASA,0BAAc,kDATd;AAUA,0BAAc,oDAVd;AAWA,0BAAc,iCAXd;AAYA,0BAAc,8BAZd;AAaA,0BAAc,6BAbd;AAcA,0BAAc,2BAdd;AAeA,0BAAc,uCAfd;AAgBA,0BAAc,uBAhBd;AAiBA,0BAAc,+BAjBd;AAkBA,mCAAO;AAlBP;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,0BAAc,gDANd;AAOA,0BAAc,6DAPd;AAQA,0BAAc,qDARd;AASA,0BAAc,kDATd;AAUA,0BAAc,oDAVd;AAWA,0BAAc,iCAXd;AAYA,0BAAc,8BAZd;AAaA,0BAAc,6BAbd;AAcA,0BAAc,2BAdd;AAeA,0BAAc,4BAfd;AAgBA,0BAAc,uCAhBd;AAiBA,0BAAc,uBAjBd;AAkBA,0BAAc,+BAlBd;AAmBA,mCAAO;AAnBP;AAAA;AAAA;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { ModelIndex } from "#logic/ModelIndex.js";
6
7
  import { Access } from "../aspects/Access.js";
7
8
  import { Quality } from "../aspects/Quality.js";
8
9
  import { ElementTag, FeatureSet, Metatype } from "../common/index.js";
@@ -21,10 +22,11 @@ export declare class ClusterModel extends ScopeModel<ClusterElement, ClusterMode
21
22
  get quality(): Quality;
22
23
  set quality(definition: Quality | Quality.Definition);
23
24
  get effectiveQuality(): Quality;
24
- get attributes(): AttributeModel[];
25
- get commands(): CommandModel[];
26
- get events(): EventModel[];
27
- get datatypes(): DatatypeModel[];
25
+ get attributes(): ModelIndex<AttributeModel>;
26
+ get commands(): ModelIndex<CommandModel>;
27
+ get events(): ModelIndex<EventModel>;
28
+ get datatypes(): ModelIndex<DatatypeModel>;
29
+ get conformant(): ClusterModel.Conformant;
28
30
  get classification(): ClusterElement.Classification | undefined;
29
31
  set classification(classification: `${ClusterElement.Classification}` | undefined);
30
32
  get pics(): string | undefined;
@@ -32,7 +34,7 @@ export declare class ClusterModel extends ScopeModel<ClusterElement, ClusterMode
32
34
  /**
33
35
  * Get attributes, commands and events whether inherited or defined directly in this model.
34
36
  */
35
- get allAces(): (AttributeModel | CommandModel | EventModel)[];
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;AAIH,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,cAAc,EAAE,CAC1F;IAED,IAAI,QAAQ,IAC6D,YAAY,EAAE,CACtF;IAED,IAAI,MAAM,IAC6D,UAAU,EAAE,CAClF;IAED,IAAI,SAAS,IAC6D,aAAa,EAAE,CACxF;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,IACsG,CACvG,cAAc,GACd,YAAY,GACZ,UAAU,CACf,EAAE,CACN;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;CACpB"}
1
+ {"version":3,"file":"ClusterModel.d.ts","sourceRoot":"","sources":["../../../src/models/ClusterModel.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,9 @@ class ClusterModel extends import_ScopeModel.ScopeModel {
64
64
  get datatypes() {
65
65
  return this.scope.membersOf(this, { tags: [import_common.ElementTag.Datatype] });
66
66
  }
67
+ get conformant() {
68
+ return new ClusterModel.Conformant(this);
69
+ }
67
70
  get classification() {
68
71
  return this.resource?.classification;
69
72
  }
@@ -84,7 +87,9 @@ class ClusterModel extends import_ScopeModel.ScopeModel {
84
87
  * Get attributes, commands and events whether inherited or defined directly in this model.
85
88
  */
86
89
  get allAces() {
87
- return this.scope.membersOf(this, { tags: [import_common.ElementTag.Attribute, import_common.ElementTag.Command, import_common.ElementTag.Event] });
90
+ return this.scope.membersOf(this, {
91
+ tags: [import_common.ElementTag.Attribute, import_common.ElementTag.Command, import_common.ElementTag.Event]
92
+ });
88
93
  }
89
94
  get revision() {
90
95
  let revision = 1;
@@ -163,4 +168,67 @@ class ClusterModel extends import_ScopeModel.ScopeModel {
163
168
  static Tag = import_elements.ClusterElement.Tag;
164
169
  }
165
170
  ClusterModel.register();
171
+ ((ClusterModel2) => {
172
+ class Conformant {
173
+ #model;
174
+ constructor(model) {
175
+ this.#model = model;
176
+ }
177
+ /**
178
+ * The cluster's conformant attributes.
179
+ */
180
+ get attributes() {
181
+ return this.#model.scope.membersOf(this.#model, {
182
+ tags: [import_common.ElementTag.Attribute],
183
+ conformance: "conformant"
184
+ });
185
+ }
186
+ /**
187
+ * The cluster's conformant properties (includes fields and attributes).
188
+ *
189
+ * This offers compatibility with the equivalent field for ValueModel. It is useful when treating a cluster as
190
+ * a struct.
191
+ */
192
+ get properties() {
193
+ return this.#model.scope.membersOf(this.#model, {
194
+ tags: [import_common.ElementTag.Attribute, import_common.ElementTag.Field],
195
+ conformance: "conformant"
196
+ });
197
+ }
198
+ /**
199
+ * The cluster's conformant fields.
200
+ *
201
+ * Fields are not formally allowed on clusters but we allow for extensions that should not be served via the
202
+ * Matter protocol.
203
+ *
204
+ * This is primarily here to allow simplified access to fields in contexts where a variable is typed as a
205
+ * ClusterModel or ValueModel.
206
+ */
207
+ get fields() {
208
+ return this.#model.scope.membersOf(this.#model, {
209
+ tags: [import_common.ElementTag.Field],
210
+ conformance: "conformant"
211
+ });
212
+ }
213
+ /**
214
+ * The cluster's conformant commands.
215
+ */
216
+ get commands() {
217
+ return this.#model.scope.membersOf(this.#model, {
218
+ tags: [import_common.ElementTag.Command],
219
+ conformance: "conformant"
220
+ });
221
+ }
222
+ /**
223
+ * The cluster's conformant events.
224
+ */
225
+ get events() {
226
+ return this.#model.scope.membersOf(this.#model, {
227
+ tags: [import_common.ElementTag.Event],
228
+ conformance: "conformant"
229
+ });
230
+ }
231
+ }
232
+ ClusterModel2.Conformant = Conformant;
233
+ })(ClusterModel || (ClusterModel = {}));
166
234
  //# sourceMappingURL=ClusterModel.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/ClusterModel.ts"],
4
- "mappings": "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",
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":"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"}
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,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,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,CAAC,UAAU,CAAC,CAC7F;IAED,IAAI,UAAU,0BAEb;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,UAAU,GAAG,SAAS,CAErC;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,UAAU,GAAG,SAAS,CAkB1C;IAED;;OAEG;IACH,IAAa,aAAa,IAAI,MAAM,GAAG,SAAS,CAM/C;IAED;;OAEG;IACH,IAAI,iBAAiB,yBAKpB;IAED;;OAEG;IACH,IAAI,aAAa,yCAEhB;IAED;;OAEG;IACH,IAAI,SAAS,IAC0C,UAAU,GAAG,SAAS,CAC5E;IAED;;OAEG;IACH,IAAa,IAAI,IACQ,UAAU,GAAG,SAAS,CAC9C;IAED;;OAEG;IACH,IAAa,eAAe,iBAM3B;IAED;;OAEG;IACH,IAAI,OAAO,IAC+B,UAAU,CAAC,aAAa,CAAC,CAClE;IAED;;OAEG;IACH,IAAI,iBAAiB,kBAkBpB;IAED;;OAEG;IACH,IAAI,YAAY,YAEf;IAED;;OAEG;IACH,IAAI,YAAY,YAEf;IAED;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED;;OAEG;IACH,IAAI,SAAS,YAEZ;IAED;;OAEG;IACH,IAAI,eAAe,qBAqBlB;IAED;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM;IAIzB;;OAEG;IACH,gBAAgB,CAAC,IAAI,SAAS,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAK3D,IAAI,cAAc,IACgB,CAAC,CAClC;gBAEW,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;IAiBhG,SAAS,CAAC,aAAa,UAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAW5E;AAED,yBAAiB,UAAU,CAAC;IACxB,MAAa,UAAU;;oBAGP,KAAK,EAAE,KAAK;QAIxB;;WAEG;QACH,IAAI,MAAM,IAIA,UAAU,CAAC,UAAU,CAAC,CAC/B;QAED;;WAEG;QACH,IAAI,UAAU,2BAEb;KACJ;CACJ"}
@@ -79,6 +79,9 @@ class ValueModel extends import_Model.Model {
79
79
  get fields() {
80
80
  return (0, import_Scope.Scope)(this).membersOf(this, { tags: [import_common.ElementTag.Field] });
81
81
  }
82
+ get conformant() {
83
+ return new ValueModel.Conformant(this);
84
+ }
82
85
  /**
83
86
  * Metatype is only present on global types with specific semantic meaning. This model is significant because it
84
87
  * gives us information about how to manipulate the data. This accessor retrieves this model.
@@ -266,4 +269,28 @@ class ValueModel extends import_Model.Model {
266
269
  });
267
270
  }
268
271
  }
272
+ ((ValueModel2) => {
273
+ class Conformant {
274
+ #model;
275
+ constructor(model) {
276
+ this.#model = model;
277
+ }
278
+ /**
279
+ * The model's conformant fields.
280
+ */
281
+ get fields() {
282
+ return (0, import_Scope.Scope)(this.#model).membersOf(this.#model, {
283
+ tags: [import_common.ElementTag.Field],
284
+ conformance: "conformant"
285
+ });
286
+ }
287
+ /**
288
+ * An alias for {@link fields} that offers compatibility with the same field for clusters.
289
+ */
290
+ get properties() {
291
+ return this.fields;
292
+ }
293
+ }
294
+ ValueModel2.Conformant = Conformant;
295
+ })(ValueModel || (ValueModel = {}));
269
296
  //# sourceMappingURL=ValueModel.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/ValueModel.ts"],
4
- "mappings": "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",
5
- "names": []
4
+ "mappings": "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",
5
+ "names": ["ValueModel"]
6
6
  }
@@ -114,7 +114,7 @@ function* lex(text, error, keywords) {
114
114
  function tokenizeDigits(base, valueOf) {
115
115
  let num = valueOf(current.value);
116
116
  if (num === void 0) {
117
- error("INVALID_NUMBER", `Expected digit following numeric suffix`);
117
+ error("INVALID_NUMBER", `Expected digit following numeric prefix`);
118
118
  return { type: "value", value: 0, startLine, startChar };
119
119
  }
120
120
  while (true) {
@@ -54,8 +54,8 @@ function TokenStream(iterator) {
54
54
  return "end of statement";
55
55
  case "word":
56
56
  return `word "${this.token.value}"`;
57
- case "number":
58
- return `number "${this.token.value}"`;
57
+ case "value":
58
+ return `value "${this.token.value}"`;
59
59
  default:
60
60
  if (this.token?.type.match(/[a-z]/i)) {
61
61
  return `keyword "${this.token?.type}"`;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/parser/TokenStream.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBO,SAAS,YAA6B,UAAuC;AAChF,MAAI,OAAO;AAEX,WAAS,OAAO;AACZ,QAAI,MAAM;AACN,aAAO;AAAA,IACX;AACA,UAAM,IAAI,SAAS,KAAK;AACxB,QAAI,EAAE,MAAM;AACR,aAAO;AAAA,IACX;AACA,WAAO,EAAE;AAAA,EACb;AAEA,SAAO;AAAA,IACH,OAAO,KAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,IAEb,IAAI,OAAO;AACP,aAAO,KAAK,UAAU;AAAA,IAC1B;AAAA,IAEA,OAAO;AACH,WAAK,QAAQ,KAAK;AAClB,WAAK,SAAS,KAAK;AAAA,IACvB;AAAA,IAEA,IAAI,cAAc;AACd,cAAQ,KAAK,OAAO,MAAM;AAAA,QACtB,KAAK;AACD,iBAAO;AAAA,QAEX,KAAK;AACD,iBAAO,SAAU,KAAK,MAAqC,KAAK;AAAA,QAEpE,KAAK;AACD,iBAAO,WAAY,KAAK,MAAuC,KAAK;AAAA,QAExE;AACI,cAAI,KAAK,OAAO,KAAK,MAAM,QAAQ,GAAG;AAClC,mBAAO,YAAY,KAAK,OAAO,IAAI;AAAA,UACvC;AACA,iBAAO,aAAa,KAAK,OAAO,IAAI;AAAA,MAC5C;AAAA,IACJ;AAAA,EACJ;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBO,SAAS,YAA6B,UAAuC;AAChF,MAAI,OAAO;AAEX,WAAS,OAAO;AACZ,QAAI,MAAM;AACN,aAAO;AAAA,IACX;AACA,UAAM,IAAI,SAAS,KAAK;AACxB,QAAI,EAAE,MAAM;AACR,aAAO;AAAA,IACX;AACA,WAAO,EAAE;AAAA,EACb;AAEA,SAAO;AAAA,IACH,OAAO,KAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,IAEb,IAAI,OAAO;AACP,aAAO,KAAK,UAAU;AAAA,IAC1B;AAAA,IAEA,OAAO;AACH,WAAK,QAAQ,KAAK;AAClB,WAAK,SAAS,KAAK;AAAA,IACvB;AAAA,IAEA,IAAI,cAAc;AACd,cAAQ,KAAK,OAAO,MAAM;AAAA,QACtB,KAAK;AACD,iBAAO;AAAA,QAEX,KAAK;AACD,iBAAO,SAAU,KAAK,MAAqC,KAAK;AAAA,QAEpE,KAAK;AACD,iBAAO,UAAW,KAAK,MAAuC,KAAK;AAAA,QAEvE;AACI,cAAI,KAAK,OAAO,KAAK,MAAM,QAAQ,GAAG;AAClC,mBAAO,YAAY,KAAK,OAAO,IAAI;AAAA,UACvC;AACA,iBAAO,aAAa,KAAK,OAAO,IAAI;AAAA,MAC5C;AAAA,IACJ;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -76,14 +76,21 @@ export declare namespace Constraint {
76
76
  * Parsed binary operator.
77
77
  */
78
78
  interface BinaryOperator {
79
- type: "+" | "-";
79
+ type: "+" | "-" | ".";
80
80
  lhs: Expression;
81
81
  rhs: Expression;
82
82
  }
83
+ /**
84
+ * Parsed function.
85
+ */
86
+ interface Function {
87
+ type: "maxOf" | "minOf";
88
+ args: Expression[];
89
+ }
83
90
  /**
84
91
  * Parsed expression.
85
92
  */
86
- type Expression = FieldValue | BinaryOperator;
93
+ type Expression = FieldValue | BinaryOperator | Function;
87
94
  /**
88
95
  * These are all ways to describe a constraint.
89
96
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Constraint.d.ts","sourceRoot":"","sources":["../../../src/aspects/Constraint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,MAAM,CAAC,UAAU,CAAC,UAAU,CAAE,YAAW,UAAU,CAAC,GAAG;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAC9B,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAC5B,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAC5B,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IAErB;;OAEG;gBACS,UAAU,EAAE,UAAU,CAAC,UAAU;IA2DpC,MAAM,CAAC,KAAK,EAAE,UAAU;IAqBjC;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO;IAoFjE,QAAQ;cAOE,MAAM;CAM5B;AAED,yBAAiB,UAAU,CAAC;IACxB,KAAY,kBAAkB,GAAG,MAAM,GAAG,MAAM,CAAC;IAE1C,MAAM,QAAQ,qEAAsE,CAAC;IAErF,MAAM,QAAQ,aAA4B,CAAC;IAElD;;OAEG;IACH,KAAY,GAAG,GAAG;QACd;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC;QAEf;;WAEG;QACH,KAAK,CAAC,EAAE,UAAU,CAAC;QAEnB;;WAEG;QACH,GAAG,CAAC,EAAE,UAAU,CAAC;QAEjB;;WAEG;QACH,GAAG,CAAC,EAAE,UAAU,CAAC;QAEjB;;WAEG;QACH,EAAE,CAAC,EAAE,UAAU,CAAC;QAEhB;;WAEG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;QAEZ;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;KACjB,CAAC;IAEF;;OAEG;IACH,UAAiB,cAAc;QAC3B,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;QAEhB,GAAG,EAAE,UAAU,CAAC;QAEhB,GAAG,EAAE,UAAU,CAAC;KACnB;IAED;;OAEG;IACH,KAAY,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;IAErD;;OAEG;IACH,KAAY,UAAU,GAAG,CAAC,GAAG,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9F"}
1
+ {"version":3,"file":"Constraint.d.ts","sourceRoot":"","sources":["../../../src/aspects/Constraint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAgBrC;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,MAAM,CAAC,UAAU,CAAC,UAAU,CAAE,YAAW,UAAU,CAAC,GAAG;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAC9B,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAC5B,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAC5B,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IAErB;;OAEG;gBACS,UAAU,EAAE,UAAU,CAAC,UAAU;IA2DpC,MAAM,CAAC,KAAK,EAAE,UAAU;IAqBjC;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO;IA8GjE,QAAQ;cAOE,MAAM;CAM5B;AAED,yBAAiB,UAAU,CAAC;IACxB,KAAY,kBAAkB,GAAG,MAAM,GAAG,MAAM,CAAC;IAE1C,MAAM,QAAQ,qEAAsE,CAAC;IAErF,MAAM,QAAQ,aAA4B,CAAC;IAElD;;OAEG;IACH,KAAY,GAAG,GAAG;QACd;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC;QAEf;;WAEG;QACH,KAAK,CAAC,EAAE,UAAU,CAAC;QAEnB;;WAEG;QACH,GAAG,CAAC,EAAE,UAAU,CAAC;QAEjB;;WAEG;QACH,GAAG,CAAC,EAAE,UAAU,CAAC;QAEjB;;WAEG;QACH,EAAE,CAAC,EAAE,UAAU,CAAC;QAEhB;;WAEG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;QAEZ;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;KACjB,CAAC;IAEF;;OAEG;IACH,UAAiB,cAAc;QAC3B,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAEtB,GAAG,EAAE,UAAU,CAAC;QAEhB,GAAG,EAAE,UAAU,CAAC;KACnB;IAED;;OAEG;IACH,UAAiB,QAAQ;QACrB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QAExB,IAAI,EAAE,UAAU,EAAE,CAAC;KACtB;IAED;;OAEG;IACH,KAAY,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IAEhE;;OAEG;IACH,KAAY,UAAU,GAAG,CAAC,GAAG,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9F"}
@@ -3,11 +3,25 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { camelize } from "#general";
6
+ import { camelize, isObject } from "#general";
7
7
  import { Lexer } from "#parser/Lexer.js";
8
8
  import { TokenStream } from "#parser/TokenStream.js";
9
9
  import { FieldValue } from "../common/index.js";
10
10
  import { Aspect } from "./Aspect.js";
11
+ var Functions;
12
+ ((Functions2) => {
13
+ function minOf(args) {
14
+ return Math.min(...args.filter((arg) => typeof arg === "number"));
15
+ }
16
+ Functions2.minOf = minOf;
17
+ function maxOf(args) {
18
+ return Math.max(...args.filter((arg) => typeof arg === "number"));
19
+ }
20
+ Functions2.maxOf = maxOf;
21
+ })(Functions || (Functions = {}));
22
+ function isFunction(name) {
23
+ return Object.hasOwn(Functions, name);
24
+ }
11
25
  class Constraint extends Aspect {
12
26
  desc;
13
27
  value;
@@ -91,28 +105,46 @@ class Constraint extends Aspect {
91
105
  case FieldValue.reference:
92
106
  if (typeof value2.name === "string") {
93
107
  value2 = FieldValue(nameResolver?.(camelize(value2.name)));
108
+ if (isObject(value2)) {
109
+ value2 = { type: "properties", properties: value2 };
110
+ }
94
111
  }
95
112
  break;
96
- case "+":
97
- {
98
- const lhs = valueOf(value2.lhs);
99
- const rhs = valueOf(value2.rhs);
100
- if (typeof lhs === "number" && typeof rhs === "number") {
101
- return lhs + rhs;
102
- }
113
+ case "+": {
114
+ const lhs = valueOf(value2.lhs);
115
+ const rhs = valueOf(value2.rhs);
116
+ if (typeof lhs === "number" && typeof rhs === "number") {
117
+ return lhs + rhs;
118
+ }
119
+ return void 0;
120
+ }
121
+ case "-": {
122
+ const lhs = valueOf(value2.lhs);
123
+ const rhs = valueOf(value2.rhs);
124
+ if (typeof lhs === "number" && typeof rhs === "number") {
125
+ return lhs - rhs;
126
+ }
127
+ return void 0;
128
+ }
129
+ case ".": {
130
+ const object = valueOf(value2.lhs);
131
+ if (!isObject(object)) {
103
132
  return void 0;
104
133
  }
105
- break;
106
- case "-":
107
- {
108
- const lhs = valueOf(value2.lhs);
109
- const rhs = valueOf(value2.rhs);
110
- if (typeof lhs === "number" && typeof rhs === "number") {
111
- return lhs - rhs;
112
- }
134
+ const rhs = FieldValue.referenced(valueOf(value2.rhs));
135
+ if (rhs === void 0) {
113
136
  return void 0;
114
137
  }
115
- break;
138
+ if (Object.hasOwn(object, rhs)) {
139
+ return object[rhs];
140
+ }
141
+ return void 0;
142
+ }
143
+ case "maxOf":
144
+ case "minOf": {
145
+ Functions[type](value2.args.map((value3) => valueOf(value3)));
146
+ return void 0;
147
+ }
116
148
  }
117
149
  }
118
150
  return value2;
@@ -190,12 +222,17 @@ var Serializer;
190
222
  switch (value.type) {
191
223
  case "+":
192
224
  case "-":
193
- const sum = `${serializeValue(value.lhs, true)} ${value.type} ${serializeValue(value.rhs, true)}`;
225
+ case ".":
226
+ const sep = value.type === "." ? "" : " ";
227
+ const sum = `${serializeValue(value.lhs, true)}${sep}${value.type}${sep}${serializeValue(value.rhs, true)}`;
194
228
  if (inExpr) {
195
229
  return `(${sum})`;
196
230
  }
197
231
  return sum;
198
232
  default:
233
+ if (isFunction(value.type)) {
234
+ return `${value.type}(${value.args.map((value2) => serializeValue(value2)).join(", ")})`;
235
+ }
199
236
  return FieldValue.serialize(value);
200
237
  }
201
238
  }
@@ -228,9 +265,12 @@ var Parser;
228
265
  const tokens = TokenStream(lexer.lex(definition, (code, message) => constraint.error(code, message)));
229
266
  const result = parseParts();
230
267
  if (tokens.token && tokens.token?.type !== ",") {
231
- constraint.error("UNEXPECTED_CONSTRAINT_TOKEN", `Unexpected ${tokens.description}`);
268
+ unexpected();
232
269
  }
233
270
  return result;
271
+ function unexpected() {
272
+ constraint.error("UNEXPECTED_CONSTRAINT_TOKEN", `Unexpected ${tokens.description}`);
273
+ }
234
274
  function parseParts() {
235
275
  const parts = Array();
236
276
  while (true) {
@@ -356,6 +396,7 @@ var Parser;
356
396
  switch (tokens.token?.type) {
357
397
  case "+":
358
398
  case "-":
399
+ case ".":
359
400
  const type = tokens.token.type;
360
401
  tokens.next();
361
402
  const rhs = parseValueExpression();
@@ -368,6 +409,40 @@ var Parser;
368
409
  lhs: value,
369
410
  rhs
370
411
  };
412
+ case "(":
413
+ const functionName = FieldValue.referenced(value);
414
+ if (functionName === void 0) {
415
+ unexpected();
416
+ return;
417
+ }
418
+ tokens.next();
419
+ if (!isFunction(functionName)) {
420
+ constraint.error("UNKNOWN_FUNCTION", `Unknown function "${functionName}"`);
421
+ return;
422
+ }
423
+ const args = Array();
424
+ while (tokens.token?.type !== ")") {
425
+ const expr = parseValueExpression();
426
+ if (expr === void 0) {
427
+ return;
428
+ }
429
+ args.push(expr);
430
+ switch (tokens.token?.type) {
431
+ case ",":
432
+ tokens.next();
433
+ break;
434
+ case ")":
435
+ break;
436
+ default:
437
+ unexpected();
438
+ return;
439
+ }
440
+ }
441
+ tokens.next();
442
+ return {
443
+ type: functionName,
444
+ args
445
+ };
371
446
  }
372
447
  return value;
373
448
  }