@matter/model 0.16.0-alpha.0-20251018-dd1ea6a8a → 0.16.0-alpha.0-20251020-3f6e46245

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 (265) hide show
  1. package/dist/cjs/common/Metatype.d.ts +1 -1
  2. package/dist/cjs/decoration/decorators/attribute.d.ts +11 -0
  3. package/dist/cjs/decoration/decorators/attribute.d.ts.map +1 -0
  4. package/dist/cjs/decoration/decorators/attribute.js +32 -0
  5. package/dist/cjs/decoration/decorators/attribute.js.map +6 -0
  6. package/dist/cjs/decoration/decorators/cluster.d.ts +11 -0
  7. package/dist/cjs/decoration/decorators/cluster.d.ts.map +1 -0
  8. package/dist/cjs/decoration/decorators/cluster.js +32 -0
  9. package/dist/cjs/decoration/decorators/cluster.js.map +6 -0
  10. package/dist/cjs/decoration/decorators/command.d.ts +12 -0
  11. package/dist/cjs/decoration/decorators/command.d.ts.map +1 -0
  12. package/dist/cjs/decoration/decorators/command.js +34 -0
  13. package/dist/cjs/decoration/decorators/command.js.map +6 -0
  14. package/dist/cjs/decoration/decorators/datatype.d.ts +11 -0
  15. package/dist/cjs/decoration/decorators/datatype.d.ts.map +1 -0
  16. package/dist/cjs/decoration/decorators/datatype.js +32 -0
  17. package/dist/cjs/decoration/decorators/datatype.js.map +6 -0
  18. package/dist/cjs/decoration/decorators/element.d.ts +40 -0
  19. package/dist/cjs/decoration/decorators/element.d.ts.map +1 -0
  20. package/dist/cjs/decoration/decorators/element.js +101 -0
  21. package/dist/cjs/decoration/decorators/element.js.map +6 -0
  22. package/dist/cjs/decoration/decorators/event.d.ts +14 -0
  23. package/dist/cjs/decoration/decorators/event.d.ts.map +1 -0
  24. package/dist/cjs/decoration/decorators/event.js +32 -0
  25. package/dist/cjs/decoration/decorators/event.js.map +6 -0
  26. package/dist/cjs/decoration/decorators/field.d.ts +14 -0
  27. package/dist/cjs/decoration/decorators/field.d.ts.map +1 -0
  28. package/dist/cjs/decoration/decorators/field.js +32 -0
  29. package/dist/cjs/decoration/decorators/field.js.map +6 -0
  30. package/dist/cjs/decoration/decorators/index.d.ts +16 -0
  31. package/dist/cjs/decoration/decorators/index.d.ts.map +1 -0
  32. package/dist/cjs/decoration/decorators/index.js +33 -0
  33. package/dist/cjs/decoration/decorators/index.js.map +6 -0
  34. package/dist/cjs/decoration/decorators/listOf.d.ts +12 -0
  35. package/dist/cjs/decoration/decorators/listOf.d.ts.map +1 -0
  36. package/dist/cjs/decoration/decorators/listOf.js +47 -0
  37. package/dist/cjs/decoration/decorators/listOf.js.map +6 -0
  38. package/dist/cjs/decoration/decorators/mandatory.d.ts +11 -0
  39. package/dist/cjs/decoration/decorators/mandatory.d.ts.map +1 -0
  40. package/dist/cjs/decoration/decorators/mandatory.js +41 -0
  41. package/dist/cjs/decoration/decorators/mandatory.js.map +6 -0
  42. package/dist/cjs/decoration/decorators/nonvolatile.d.ts +11 -0
  43. package/dist/cjs/decoration/decorators/nonvolatile.d.ts.map +1 -0
  44. package/dist/cjs/decoration/decorators/nonvolatile.js +41 -0
  45. package/dist/cjs/decoration/decorators/nonvolatile.js.map +6 -0
  46. package/dist/cjs/decoration/decorators/nullable.d.ts +11 -0
  47. package/dist/cjs/decoration/decorators/nullable.d.ts.map +1 -0
  48. package/dist/cjs/decoration/decorators/nullable.js +41 -0
  49. package/dist/cjs/decoration/decorators/nullable.js.map +6 -0
  50. package/dist/cjs/decoration/decorators/response.d.ts +12 -0
  51. package/dist/cjs/decoration/decorators/response.d.ts.map +1 -0
  52. package/dist/cjs/decoration/decorators/response.js +49 -0
  53. package/dist/cjs/decoration/decorators/response.js.map +6 -0
  54. package/dist/cjs/decoration/errors.d.ts +29 -0
  55. package/dist/cjs/decoration/errors.d.ts.map +1 -0
  56. package/dist/cjs/decoration/errors.js +44 -0
  57. package/dist/cjs/decoration/errors.js.map +6 -0
  58. package/dist/cjs/decoration/index.d.ts +9 -0
  59. package/dist/cjs/decoration/index.d.ts.map +1 -0
  60. package/dist/cjs/decoration/index.js +26 -0
  61. package/dist/cjs/decoration/index.js.map +6 -0
  62. package/dist/cjs/decoration/semantics/ClassSemantics.d.ts +84 -0
  63. package/dist/cjs/decoration/semantics/ClassSemantics.d.ts.map +1 -0
  64. package/dist/cjs/decoration/semantics/ClassSemantics.js +266 -0
  65. package/dist/cjs/decoration/semantics/ClassSemantics.js.map +6 -0
  66. package/dist/cjs/decoration/semantics/FieldSemantics.d.ts +21 -0
  67. package/dist/cjs/decoration/semantics/FieldSemantics.d.ts.map +1 -0
  68. package/dist/cjs/decoration/semantics/FieldSemantics.js +57 -0
  69. package/dist/cjs/decoration/semantics/FieldSemantics.js.map +6 -0
  70. package/dist/cjs/decoration/semantics/Semantics.d.ts +68 -0
  71. package/dist/cjs/decoration/semantics/Semantics.d.ts.map +1 -0
  72. package/dist/cjs/decoration/semantics/Semantics.js +156 -0
  73. package/dist/cjs/decoration/semantics/Semantics.js.map +6 -0
  74. package/dist/cjs/decoration/semantics/index.d.ts +9 -0
  75. package/dist/cjs/decoration/semantics/index.d.ts.map +1 -0
  76. package/dist/cjs/decoration/semantics/index.js +26 -0
  77. package/dist/cjs/decoration/semantics/index.js.map +6 -0
  78. package/dist/cjs/index.d.ts +1 -0
  79. package/dist/cjs/index.d.ts.map +1 -1
  80. package/dist/cjs/index.js +1 -0
  81. package/dist/cjs/index.js.map +1 -1
  82. package/dist/cjs/models/AttributeModel.d.ts +1 -0
  83. package/dist/cjs/models/AttributeModel.d.ts.map +1 -1
  84. package/dist/cjs/models/AttributeModel.js +1 -0
  85. package/dist/cjs/models/AttributeModel.js.map +1 -1
  86. package/dist/cjs/models/Children.js +3 -3
  87. package/dist/cjs/models/Children.js.map +1 -1
  88. package/dist/cjs/models/CommandModel.d.ts +1 -0
  89. package/dist/cjs/models/CommandModel.d.ts.map +1 -1
  90. package/dist/cjs/models/CommandModel.js +1 -0
  91. package/dist/cjs/models/CommandModel.js.map +1 -1
  92. package/dist/cjs/models/EventModel.d.ts +1 -0
  93. package/dist/cjs/models/EventModel.d.ts.map +1 -1
  94. package/dist/cjs/models/EventModel.js +1 -0
  95. package/dist/cjs/models/EventModel.js.map +1 -1
  96. package/dist/cjs/models/Globals.d.ts +1 -1
  97. package/dist/cjs/models/Model.d.ts +12 -3
  98. package/dist/cjs/models/Model.d.ts.map +1 -1
  99. package/dist/cjs/models/Model.js +16 -10
  100. package/dist/cjs/models/Model.js.map +1 -1
  101. package/dist/cjs/models/Schema.d.ts +14 -0
  102. package/dist/cjs/models/Schema.d.ts.map +1 -1
  103. package/dist/cjs/models/Schema.js +29 -1
  104. package/dist/cjs/models/Schema.js.map +1 -1
  105. package/dist/cjs/models/ScopeModel.d.ts +1 -1
  106. package/dist/cjs/models/ScopeModel.d.ts.map +1 -1
  107. package/dist/cjs/models/ScopeModel.js +2 -2
  108. package/dist/cjs/models/ScopeModel.js.map +1 -1
  109. package/dist/cjs/standard/elements/definitions.d.ts +1 -1
  110. package/dist/cjs/standard/elements/definitions.js +1 -1
  111. package/dist/cjs/standard/elements/{interval.element.d.ts → duration.element.d.ts} +1 -1
  112. package/dist/cjs/standard/elements/duration.element.d.ts.map +1 -0
  113. package/dist/cjs/standard/elements/{interval.element.js → duration.element.js} +4 -4
  114. package/dist/cjs/standard/elements/{interval.element.js.map → duration.element.js.map} +1 -1
  115. package/dist/cjs/standard/elements/models.d.ts +1 -1
  116. package/dist/cjs/standard/elements/models.js +2 -2
  117. package/dist/esm/common/Metatype.d.ts +1 -1
  118. package/dist/esm/decoration/decorators/attribute.d.ts +11 -0
  119. package/dist/esm/decoration/decorators/attribute.d.ts.map +1 -0
  120. package/dist/esm/decoration/decorators/attribute.js +12 -0
  121. package/dist/esm/decoration/decorators/attribute.js.map +6 -0
  122. package/dist/esm/decoration/decorators/cluster.d.ts +11 -0
  123. package/dist/esm/decoration/decorators/cluster.d.ts.map +1 -0
  124. package/dist/esm/decoration/decorators/cluster.js +12 -0
  125. package/dist/esm/decoration/decorators/cluster.js.map +6 -0
  126. package/dist/esm/decoration/decorators/command.d.ts +12 -0
  127. package/dist/esm/decoration/decorators/command.d.ts.map +1 -0
  128. package/dist/esm/decoration/decorators/command.js +14 -0
  129. package/dist/esm/decoration/decorators/command.js.map +6 -0
  130. package/dist/esm/decoration/decorators/datatype.d.ts +11 -0
  131. package/dist/esm/decoration/decorators/datatype.d.ts.map +1 -0
  132. package/dist/esm/decoration/decorators/datatype.js +12 -0
  133. package/dist/esm/decoration/decorators/datatype.js.map +6 -0
  134. package/dist/esm/decoration/decorators/element.d.ts +40 -0
  135. package/dist/esm/decoration/decorators/element.d.ts.map +1 -0
  136. package/dist/esm/decoration/decorators/element.js +81 -0
  137. package/dist/esm/decoration/decorators/element.js.map +6 -0
  138. package/dist/esm/decoration/decorators/event.d.ts +14 -0
  139. package/dist/esm/decoration/decorators/event.d.ts.map +1 -0
  140. package/dist/esm/decoration/decorators/event.js +12 -0
  141. package/dist/esm/decoration/decorators/event.js.map +6 -0
  142. package/dist/esm/decoration/decorators/field.d.ts +14 -0
  143. package/dist/esm/decoration/decorators/field.d.ts.map +1 -0
  144. package/dist/esm/decoration/decorators/field.js +12 -0
  145. package/dist/esm/decoration/decorators/field.js.map +6 -0
  146. package/dist/esm/decoration/decorators/index.d.ts +16 -0
  147. package/dist/esm/decoration/decorators/index.d.ts.map +1 -0
  148. package/dist/esm/decoration/decorators/index.js +16 -0
  149. package/dist/esm/decoration/decorators/index.js.map +6 -0
  150. package/dist/esm/decoration/decorators/listOf.d.ts +12 -0
  151. package/dist/esm/decoration/decorators/listOf.d.ts.map +1 -0
  152. package/dist/esm/decoration/decorators/listOf.js +27 -0
  153. package/dist/esm/decoration/decorators/listOf.js.map +6 -0
  154. package/dist/esm/decoration/decorators/mandatory.d.ts +11 -0
  155. package/dist/esm/decoration/decorators/mandatory.d.ts.map +1 -0
  156. package/dist/esm/decoration/decorators/mandatory.js +21 -0
  157. package/dist/esm/decoration/decorators/mandatory.js.map +6 -0
  158. package/dist/esm/decoration/decorators/nonvolatile.d.ts +11 -0
  159. package/dist/esm/decoration/decorators/nonvolatile.d.ts.map +1 -0
  160. package/dist/esm/decoration/decorators/nonvolatile.js +21 -0
  161. package/dist/esm/decoration/decorators/nonvolatile.js.map +6 -0
  162. package/dist/esm/decoration/decorators/nullable.d.ts +11 -0
  163. package/dist/esm/decoration/decorators/nullable.d.ts.map +1 -0
  164. package/dist/esm/decoration/decorators/nullable.js +21 -0
  165. package/dist/esm/decoration/decorators/nullable.js.map +6 -0
  166. package/dist/esm/decoration/decorators/response.d.ts +12 -0
  167. package/dist/esm/decoration/decorators/response.d.ts.map +1 -0
  168. package/dist/esm/decoration/decorators/response.js +29 -0
  169. package/dist/esm/decoration/decorators/response.js.map +6 -0
  170. package/dist/esm/decoration/errors.d.ts +29 -0
  171. package/dist/esm/decoration/errors.d.ts.map +1 -0
  172. package/dist/esm/decoration/errors.js +24 -0
  173. package/dist/esm/decoration/errors.js.map +6 -0
  174. package/dist/esm/decoration/index.d.ts +9 -0
  175. package/dist/esm/decoration/index.d.ts.map +1 -0
  176. package/dist/esm/decoration/index.js +9 -0
  177. package/dist/esm/decoration/index.js.map +6 -0
  178. package/dist/esm/decoration/semantics/ClassSemantics.d.ts +84 -0
  179. package/dist/esm/decoration/semantics/ClassSemantics.d.ts.map +1 -0
  180. package/dist/esm/decoration/semantics/ClassSemantics.js +246 -0
  181. package/dist/esm/decoration/semantics/ClassSemantics.js.map +6 -0
  182. package/dist/esm/decoration/semantics/FieldSemantics.d.ts +21 -0
  183. package/dist/esm/decoration/semantics/FieldSemantics.d.ts.map +1 -0
  184. package/dist/esm/decoration/semantics/FieldSemantics.js +37 -0
  185. package/dist/esm/decoration/semantics/FieldSemantics.js.map +6 -0
  186. package/dist/esm/decoration/semantics/Semantics.d.ts +68 -0
  187. package/dist/esm/decoration/semantics/Semantics.d.ts.map +1 -0
  188. package/dist/esm/decoration/semantics/Semantics.js +126 -0
  189. package/dist/esm/decoration/semantics/Semantics.js.map +6 -0
  190. package/dist/esm/decoration/semantics/index.d.ts +9 -0
  191. package/dist/esm/decoration/semantics/index.d.ts.map +1 -0
  192. package/dist/esm/decoration/semantics/index.js +9 -0
  193. package/dist/esm/decoration/semantics/index.js.map +6 -0
  194. package/dist/esm/index.d.ts +1 -0
  195. package/dist/esm/index.d.ts.map +1 -1
  196. package/dist/esm/index.js +1 -0
  197. package/dist/esm/index.js.map +1 -1
  198. package/dist/esm/models/AttributeModel.d.ts +1 -0
  199. package/dist/esm/models/AttributeModel.d.ts.map +1 -1
  200. package/dist/esm/models/AttributeModel.js +1 -0
  201. package/dist/esm/models/AttributeModel.js.map +1 -1
  202. package/dist/esm/models/Children.js +3 -3
  203. package/dist/esm/models/Children.js.map +1 -1
  204. package/dist/esm/models/CommandModel.d.ts +1 -0
  205. package/dist/esm/models/CommandModel.d.ts.map +1 -1
  206. package/dist/esm/models/CommandModel.js +1 -0
  207. package/dist/esm/models/CommandModel.js.map +1 -1
  208. package/dist/esm/models/EventModel.d.ts +1 -0
  209. package/dist/esm/models/EventModel.d.ts.map +1 -1
  210. package/dist/esm/models/EventModel.js +1 -0
  211. package/dist/esm/models/EventModel.js.map +1 -1
  212. package/dist/esm/models/Globals.d.ts +1 -1
  213. package/dist/esm/models/Model.d.ts +12 -3
  214. package/dist/esm/models/Model.d.ts.map +1 -1
  215. package/dist/esm/models/Model.js +16 -10
  216. package/dist/esm/models/Model.js.map +1 -1
  217. package/dist/esm/models/Schema.d.ts +14 -0
  218. package/dist/esm/models/Schema.d.ts.map +1 -1
  219. package/dist/esm/models/Schema.js +29 -1
  220. package/dist/esm/models/Schema.js.map +1 -1
  221. package/dist/esm/models/ScopeModel.d.ts +1 -1
  222. package/dist/esm/models/ScopeModel.d.ts.map +1 -1
  223. package/dist/esm/models/ScopeModel.js +2 -2
  224. package/dist/esm/models/ScopeModel.js.map +1 -1
  225. package/dist/esm/standard/elements/definitions.d.ts +1 -1
  226. package/dist/esm/standard/elements/definitions.js +1 -1
  227. package/dist/esm/standard/elements/{interval.element.d.ts → duration.element.d.ts} +1 -1
  228. package/dist/esm/standard/elements/duration.element.d.ts.map +1 -0
  229. package/dist/esm/standard/elements/{interval.element.js → duration.element.js} +1 -1
  230. package/dist/esm/standard/elements/{interval.element.js.map → duration.element.js.map} +1 -1
  231. package/dist/esm/standard/elements/models.d.ts +1 -1
  232. package/dist/esm/standard/elements/models.js +2 -2
  233. package/package.json +4 -4
  234. package/src/decoration/decorators/attribute.ts +13 -0
  235. package/src/decoration/decorators/cluster.ts +13 -0
  236. package/src/decoration/decorators/command.ts +16 -0
  237. package/src/decoration/decorators/datatype.ts +13 -0
  238. package/src/decoration/decorators/element.ts +128 -0
  239. package/src/decoration/decorators/event.ts +16 -0
  240. package/src/decoration/decorators/field.ts +16 -0
  241. package/src/decoration/decorators/index.ts +16 -0
  242. package/src/decoration/decorators/listOf.ts +30 -0
  243. package/src/decoration/decorators/mandatory.ts +22 -0
  244. package/src/decoration/decorators/nonvolatile.ts +22 -0
  245. package/src/decoration/decorators/nullable.ts +22 -0
  246. package/src/decoration/decorators/response.ts +34 -0
  247. package/src/decoration/errors.ts +29 -0
  248. package/src/decoration/index.ts +9 -0
  249. package/src/decoration/semantics/ClassSemantics.ts +374 -0
  250. package/src/decoration/semantics/FieldSemantics.ts +49 -0
  251. package/src/decoration/semantics/Semantics.ts +170 -0
  252. package/src/decoration/semantics/index.ts +9 -0
  253. package/src/index.ts +1 -0
  254. package/src/models/AttributeModel.ts +1 -0
  255. package/src/models/Children.ts +3 -3
  256. package/src/models/CommandModel.ts +1 -0
  257. package/src/models/EventModel.ts +1 -0
  258. package/src/models/Model.ts +34 -12
  259. package/src/models/Schema.ts +51 -0
  260. package/src/models/ScopeModel.ts +2 -2
  261. package/src/standard/elements/definitions.ts +1 -1
  262. package/src/standard/elements/models.ts +1 -1
  263. package/dist/cjs/standard/elements/interval.element.d.ts.map +0 -1
  264. package/dist/esm/standard/elements/interval.element.d.ts.map +0 -1
  265. /package/src/standard/elements/{interval.element.ts → duration.element.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/Model.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["inspect"]
6
6
  }
@@ -5,8 +5,11 @@
5
5
  */
6
6
  import type { ClusterModel } from "#models/ClusterModel.js";
7
7
  import { DatatypeModel } from "#models/DatatypeModel.js";
8
+ import type { Model } from "#models/Model.js";
8
9
  import type { ValueModel } from "#models/ValueModel.js";
9
10
  /**
11
+ * Matter data structure semantics
12
+ *
10
13
  * Here we use the term "schema" to mean any model element that defines a datatype. For schema we allow any Matter
11
14
  * model for such an element.
12
15
  *
@@ -16,9 +19,20 @@ import type { ValueModel } from "#models/ValueModel.js";
16
19
  * to JS objects and arrays respectively. Thus we tend to use struct/object and list/array interchangeably.
17
20
  *
18
21
  * If schema is a {@link ClusterModel}, it models a struct with attributes as fields.
22
+ *
23
+ * Schema is immutable and cannot change moving forward.
19
24
  */
20
25
  export type Schema = ClusterModel | ValueModel;
26
+ /**
27
+ * Obtain {@link Schema} for a {@link Schema.Source} if present.
28
+ */
29
+ export declare function Schema(source: Model.Source): Schema | undefined;
21
30
  export declare namespace Schema {
31
+ /**
32
+ * Obtain {@link Schema} that is required for operation.
33
+ */
34
+ function Required(source: Model.Source): Schema;
35
+ type Source = Schema | NewableFunction;
22
36
  const empty: DatatypeModel;
23
37
  }
24
38
  //# sourceMappingURL=Schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/models/Schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/C,yBAAiB,MAAM,CAAC;IACb,MAAM,KAAK,eAAuD,CAAC;CAC7E"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/models/Schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/C;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,sBAuB1C;AAED,yBAAiB,MAAM,CAAC;IACpB;;OAEG;IACH,SAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,UAQ5C;IAED,KAAY,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC;IAEvC,MAAM,KAAK,eAAuD,CAAC;CAC7E"}
@@ -3,9 +3,37 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { ImplementationError } from "#general";
6
7
  import { DatatypeModel } from "#models/DatatypeModel.js";
7
- var Schema;
8
+ import { MissingMetadataError } from "../decoration/errors.js";
9
+ import { Semantics } from "../decoration/semantics/Semantics.js";
10
+ function Schema(source) {
11
+ let model;
12
+ if ("tag" in source) {
13
+ source.finalize();
14
+ model = source;
15
+ } else {
16
+ const semantics = Semantics.classOf(source);
17
+ semantics.finalize();
18
+ model = semantics.semanticModel;
19
+ }
20
+ if (!model) {
21
+ return;
22
+ }
23
+ if (model.tag !== "cluster" && !model.isType) {
24
+ throw new ImplementationError(`Model ${model.name} tag ${model.tag} is not legal for schema`);
25
+ }
26
+ return model;
27
+ }
8
28
  ((Schema2) => {
29
+ function Required(source) {
30
+ const schema = Schema2(source);
31
+ if (schema === void 0) {
32
+ throw new MissingMetadataError(`Metadata missing for class ${source.name}`);
33
+ }
34
+ return schema;
35
+ }
36
+ Schema2.Required = Required;
9
37
  Schema2.empty = new DatatypeModel({ name: "Empty", type: "struct" });
10
38
  })(Schema || (Schema = {}));
11
39
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/Schema.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAgBvB,IAAU;AAAA,CAAV,CAAUA,YAAV;AACI,EAAMA,QAAA,QAAQ,IAAI,cAAc,EAAE,MAAM,SAAS,MAAM,SAAS,CAAC;AAAA,GAD3D;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,qBAAqB;AAG9B,SAAS,4BAA4B;AACrC,SAAS,iBAAiB;AAsBnB,SAAS,OAAO,QAAsB;AACzC,MAAI;AACJ,MAAI,SAAS,QAAQ;AACjB,WAAO,SAAS;AAEhB,YAAQ;AAAA,EACZ,OAAO;AACH,UAAM,YAAY,UAAU,QAAQ,MAAM;AAE1C,cAAU,SAAS;AAEnB,YAAQ,UAAU;AAAA,EACtB;AAEA,MAAI,CAAC,OAAO;AACR;AAAA,EACJ;AAEA,MAAI,MAAM,QAAQ,aAAa,CAAC,MAAM,QAAQ;AAC1C,UAAM,IAAI,oBAAoB,SAAS,MAAM,IAAI,QAAQ,MAAM,GAAG,0BAA0B;AAAA,EAChG;AAEA,SAAO;AACX;AAAA,CAEO,CAAUA,YAAV;AAII,WAAS,SAAS,QAAsB;AAC3C,UAAM,SAASA,QAAO,MAAM;AAE5B,QAAI,WAAW,QAAW;AACtB,YAAM,IAAI,qBAAqB,8BAA8B,OAAO,IAAI,EAAE;AAAA,IAC9E;AAEA,WAAO;AAAA,EACX;AARO,EAAAA,QAAS;AAYT,EAAMA,QAAA,QAAQ,IAAI,cAAc,EAAE,MAAM,SAAS,MAAM,SAAS,CAAC;AAAA,GAhB3D;",
5
5
  "names": ["Schema"]
6
6
  }
@@ -18,7 +18,7 @@ export declare abstract class ScopeModel<T extends BaseElement = BaseElement, C
18
18
  * Obtain the {@link Scope} for this model.
19
19
  */
20
20
  get scope(): Scope;
21
- freeze(): this;
21
+ finalize(): this;
22
22
  static is(model: Model): model is ScopeModel;
23
23
  static of(model: Model): ScopeModel<BaseElement, Model<BaseElement, any>>;
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeModel.d.ts","sourceRoot":"","sources":["../../../src/models/ScopeModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;GAIG;AACH,8BAAsB,UAAU,CAC5B,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAC3C,SAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;IAGjB,QAAQ,CAAC,OAAO,QAAQ;IAExB;;OAEG;IACH,IAAI,KAAK,UAKR;IAEQ,MAAM;IAQf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,UAAU;IAI5C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK;CAazB"}
1
+ {"version":3,"file":"ScopeModel.d.ts","sourceRoot":"","sources":["../../../src/models/ScopeModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;GAIG;AACH,8BAAsB,UAAU,CAC5B,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAC3C,SAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;IAGjB,QAAQ,CAAC,OAAO,QAAQ;IAExB;;OAEG;IACH,IAAI,KAAK,UAKR;IAEQ,QAAQ;IAQjB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,UAAU;IAI5C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK;CAazB"}
@@ -19,11 +19,11 @@ class ScopeModel extends Model {
19
19
  }
20
20
  return Scope(this);
21
21
  }
22
- freeze() {
22
+ finalize() {
23
23
  if (!this.#operationalScope) {
24
24
  this.#operationalScope = Scope(this);
25
25
  }
26
- super.freeze();
26
+ super.finalize();
27
27
  return this;
28
28
  }
29
29
  static is(model) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/models/ScopeModel.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,iCAAiC;AAE1C,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,aAAa;AAOf,MAAe,mBAGZ,MAAY;AAAA,EAClB;AAAA,EAES,UAAU;AAAA;AAAA;AAAA;AAAA,EAKnB,IAAI,QAAQ;AACR,QAAI,KAAK,sBAAsB,QAAW;AACtC,aAAO,KAAK;AAAA,IAChB;AACA,WAAO,MAAM,IAAI;AAAA,EACrB;AAAA,EAES,SAAS;AACd,QAAI,CAAC,KAAK,mBAAmB;AACzB,WAAK,oBAAoB,MAAM,IAAI;AAAA,IACvC;AACA,UAAM,OAAO;AACb,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,GAAG,OAAmC;AACzC,WAAO,CAAC,CAAE,MAAqB;AAAA,EACnC;AAAA,EAEA,OAAO,GAAG,OAAc;AACpB,QAAK,MAAqB,SAAS;AAC/B,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,IAAI,eAAe,EAAE,UAAU,KAAK;AAElD,QAAI,UAAU,QAAW;AACrB,YAAM,IAAI,0BAA0B,OAAO,iBAAiB;AAAA,IAChE;AAEA,WAAO;AAAA,EACX;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,iCAAiC;AAE1C,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,aAAa;AAOf,MAAe,mBAGZ,MAAY;AAAA,EAClB;AAAA,EAES,UAAU;AAAA;AAAA;AAAA;AAAA,EAKnB,IAAI,QAAQ;AACR,QAAI,KAAK,sBAAsB,QAAW;AACtC,aAAO,KAAK;AAAA,IAChB;AACA,WAAO,MAAM,IAAI;AAAA,EACrB;AAAA,EAES,WAAW;AAChB,QAAI,CAAC,KAAK,mBAAmB;AACzB,WAAK,oBAAoB,MAAM,IAAI;AAAA,IACvC;AACA,UAAM,SAAS;AACf,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,GAAG,OAAmC;AACzC,WAAO,CAAC,CAAE,MAAqB;AAAA,EACnC;AAAA,EAEA,OAAO,GAAG,OAAc;AACpB,QAAK,MAAqB,SAAS;AAC/B,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,IAAI,eAAe,EAAE,UAAU,KAAK;AAElD,QAAI,UAAU,QAAW;AACrB,YAAM,IAAI,0BAA0B,OAAO,iBAAiB;AAAA,IAChE;AAEA,WAAO;AAAA,EACX;AACJ;",
5
5
  "names": []
6
6
  }
@@ -208,7 +208,7 @@ export * from "./locationdesc.element.js";
208
208
  export * from "./wildcard-path-flags-bitmap.element.js";
209
209
  export * from "./software-version-certification-status-enum.element.js";
210
210
  export * from "./any.element.js";
211
- export * from "./interval.element.js";
211
+ export * from "./duration.element.js";
212
212
  export * from "./subject-id.element.js";
213
213
  export * from "./cluster-revision.element.js";
214
214
  export * from "./feature-map.element.js";
@@ -207,7 +207,7 @@ export * from "./locationdesc.element.js";
207
207
  export * from "./wildcard-path-flags-bitmap.element.js";
208
208
  export * from "./software-version-certification-status-enum.element.js";
209
209
  export * from "./any.element.js";
210
- export * from "./interval.element.js";
210
+ export * from "./duration.element.js";
211
211
  export * from "./subject-id.element.js";
212
212
  export * from "./cluster-revision.element.js";
213
213
  export * from "./feature-map.element.js";
@@ -5,4 +5,4 @@
5
5
  */
6
6
  import { DatatypeElement as Datatype } from "../../elements/index.js";
7
7
  export declare const duration: Datatype;
8
- //# sourceMappingURL=interval.element.d.ts.map
8
+ //# sourceMappingURL=duration.element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.element.d.ts","sourceRoot":"","sources":["../../../../src/standard/elements/duration.element.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEtE,eAAO,MAAM,QAAQ,UAAuD,CAAC"}
@@ -10,4 +10,4 @@ MatterDefinition.children.push(duration);
10
10
  export {
11
11
  duration
12
12
  };
13
- //# sourceMappingURL=interval.element.js.map
13
+ //# sourceMappingURL=duration.element.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/standard/elements/interval.element.ts"],
3
+ "sources": ["../../../../src/standard/elements/duration.element.ts"],
4
4
  "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,wBAAwB;AACjC,SAAS,mBAAmB,gBAAgB;AAErC,MAAM,WAAW,SAAS,EAAE,MAAM,YAAY,UAAU,WAAW,CAAC;AAC3E,iBAAiB,SAAS,KAAK,QAAQ;",
5
5
  "names": []
6
6
  }
@@ -214,7 +214,7 @@ export declare const locationdesc: DatatypeModel;
214
214
  export declare const WildcardPathFlagsBitmap: DatatypeModel;
215
215
  export declare const SoftwareVersionCertificationStatusEnum: DatatypeModel;
216
216
  export declare const any: DatatypeModel;
217
- export declare const interval: DatatypeModel;
217
+ export declare const duration: DatatypeModel;
218
218
  export declare const subjectId: DatatypeModel;
219
219
  export declare const ClusterRevision: AttributeModel;
220
220
  export declare const FeatureMap: AttributeModel;
@@ -226,7 +226,7 @@ const SoftwareVersionCertificationStatusEnum = new DatatypeModel(
226
226
  definitions.SoftwareVersionCertificationStatusEnum
227
227
  );
228
228
  const any = new DatatypeModel(definitions.any);
229
- const interval = new DatatypeModel(definitions.duration);
229
+ const duration = new DatatypeModel(definitions.duration);
230
230
  const subjectId = new DatatypeModel(definitions.subjectId);
231
231
  const ClusterRevision = new AttributeModel(definitions.ClusterRevision);
232
232
  const FeatureMap = new AttributeModel(definitions.FeatureMap);
@@ -563,6 +563,7 @@ export {
563
563
  date,
564
564
  devtypeId,
565
565
  double,
566
+ duration,
566
567
  elapsedS,
567
568
  endpointNo,
568
569
  energyMWh,
@@ -586,7 +587,6 @@ export {
586
587
  int56,
587
588
  int64,
588
589
  int8,
589
- interval,
590
590
  ipadr,
591
591
  ipv4Adr,
592
592
  ipv6Adr,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/model",
3
- "version": "0.16.0-alpha.0-20251018-dd1ea6a8a",
3
+ "version": "0.16.0-alpha.0-20251020-3f6e46245",
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.0-alpha.0-20251018-dd1ea6a8a"
34
+ "@matter/general": "0.16.0-alpha.0-20251020-3f6e46245"
35
35
  },
36
36
  "devDependencies": {
37
- "@matter/testing": "0.16.0-alpha.0-20251018-dd1ea6a8a",
38
- "@matter/tools": "0.16.0-alpha.0-20251018-dd1ea6a8a"
37
+ "@matter/testing": "0.16.0-alpha.0-20251020-3f6e46245",
38
+ "@matter/tools": "0.16.0-alpha.0-20251020-3f6e46245"
39
39
  },
40
40
  "files": [
41
41
  "dist/**/*",
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { AttributeModel } from "#models/AttributeModel.js";
8
+ import { element } from "./element.js";
9
+
10
+ /**
11
+ * Decorates a property as a Matter attribute.
12
+ */
13
+ export const attribute = element.property(AttributeModel);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { ClusterModel } from "#models/ClusterModel.js";
8
+ import { element } from "./element.js";
9
+
10
+ /**
11
+ * Generates a decorator that marks a class as a Matter cluster.
12
+ */
13
+ export const cluster = element.klass(ClusterModel);
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Decorator } from "#general";
8
+ import { CommandModel } from "#models/CommandModel.js";
9
+ import { element } from "./element.js";
10
+
11
+ /**
12
+ * Decorates a method as a Matter command.
13
+ */
14
+ export function command(...modifiers: element.Modifier<Decorator.MethodCollector>[]) {
15
+ return element(CommandModel, ...modifiers);
16
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { DatatypeModel } from "#models/DatatypeModel.js";
8
+ import { element } from "./element.js";
9
+
10
+ /**
11
+ * Decorates a class as a datatype.
12
+ */
13
+ export const datatype = element.klass(DatatypeModel);
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { InvalidMetadataError, MetadataConflictError } from "#decoration/errors.js";
8
+ import type { ClassSemantics } from "#decoration/semantics/ClassSemantics.js";
9
+ import { Semantics } from "#decoration/semantics/Semantics.js";
10
+ import { Decorator } from "#general";
11
+ import { Model } from "#models/Model.js";
12
+ import { Schema } from "#models/Schema.js";
13
+
14
+ /**
15
+ * Decorate a class or field as a specific Matter element type.
16
+ */
17
+ export function element<
18
+ T extends Decorator.Collector | Decorator.ClassCollector | Decorator.PropertyCollector | Decorator.MethodCollector,
19
+ >(kind: Model.ConcreteType, ...modifiers: element.Modifier<T>[]) {
20
+ // We want to force the element to the specific type. Do this explicitly unless the initial modifier will do it for
21
+ // us. This prevents us from creating a separate local model if there is no further annotation
22
+ const forceType = !(modifiers[0] instanceof kind);
23
+
24
+ return Decorator((target: any, context: DecoratorContext) => {
25
+ const semantics = Semantics.of(context);
26
+ if (forceType) {
27
+ semantics.modelType = kind;
28
+ }
29
+
30
+ if (context.kind === "class") {
31
+ (semantics as ClassSemantics).new = target as NewableFunction;
32
+ }
33
+
34
+ let result: Function | void = undefined;
35
+ for (const modifier of modifiers) {
36
+ switch (typeof modifier) {
37
+ case "number":
38
+ semantics.mutableModel.id = modifier;
39
+ continue;
40
+
41
+ case "string":
42
+ semantics.mutableModel.name = modifier;
43
+ continue;
44
+
45
+ case "function":
46
+ if ("Tag" in modifier) {
47
+ semantics.modelType = modifier;
48
+ } else if (Decorator.is(modifier)) {
49
+ const subresult = (modifier as any)(target, context);
50
+ if (subresult) {
51
+ if (result) {
52
+ throw new MetadataConflictError(`Multiple modifiers returned a value`);
53
+ }
54
+ result = subresult;
55
+ }
56
+ } else {
57
+ const model = Schema(modifier as NewableFunction);
58
+ if (model === undefined) {
59
+ throw new InvalidMetadataError(
60
+ `Cannot use undecorated class ${modifier.name || "(anonymous)"} as type for ${String(context.name || "(anonymous)")}`,
61
+ );
62
+ }
63
+
64
+ model.finalize();
65
+
66
+ semantics.mutableModel = model;
67
+ }
68
+ continue;
69
+
70
+ case "object":
71
+ if (modifier instanceof Model) {
72
+ semantics.mutableModel = modifier;
73
+ continue;
74
+ }
75
+ break;
76
+ }
77
+
78
+ throw new InvalidMetadataError(`Unsupported modifier ${modifier}`);
79
+ }
80
+
81
+ return result;
82
+ }) as T;
83
+ }
84
+
85
+ export namespace element {
86
+ /**
87
+ * Create a property decorator for a specific element type.
88
+ */
89
+ export function property(kind: Model.ConcreteType) {
90
+ return (...modifiers: Modifier<Decorator.PropertyCollector>[]) => {
91
+ return element(kind, ...modifiers);
92
+ };
93
+ }
94
+
95
+ /**
96
+ * Create a decorator factory for a specific type of class.
97
+ */
98
+ export function klass(kind: Model.ConcreteType) {
99
+ return (...modifiers: Modifier<Decorator.ClassCollector>[]) => {
100
+ return element(kind, ...modifiers);
101
+ };
102
+ }
103
+
104
+ /**
105
+ * A value that modifies the decoration of an element.
106
+ *
107
+ * Modifiers affect decoration as follows:
108
+ *
109
+ * * A model type forces {@link Semantics#localModel} to that type
110
+ *
111
+ * * A model instance sets the {@link Model#operationalBase} of {@link Semantics#localModel}
112
+ *
113
+ * * A constructor instance also sets the {@link Model#operationalBase} of {@link Semantics#localModel}
114
+ *
115
+ * * A decorator is invoked to decorate the element
116
+ *
117
+ * * A number sets the {@link Model#id} of {@link Semantics#localModel}
118
+ *
119
+ * * A string sets the {@link Model#name} of {@link Semantics#localModel}
120
+ */
121
+ export type Modifier<
122
+ T extends
123
+ | Decorator.Collector
124
+ | Decorator.ClassCollector
125
+ | Decorator.PropertyCollector
126
+ | Decorator.MethodCollector,
127
+ > = Model.ConcreteType | Model | NewableFunction | number | string | T;
128
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { EventModel } from "#models/EventModel.js";
8
+ import { element } from "./element.js";
9
+
10
+ /**
11
+ * Decorates a property as a Matter event.
12
+ *
13
+ * If you don't assign an event ID using this decorator, matter.js treats properties as internal and they are not
14
+ * accessible via the Matter protocol.
15
+ */
16
+ export const event = element.property(EventModel);
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { FieldModel } from "#models/FieldModel.js";
8
+ import { element } from "./element.js";
9
+
10
+ /**
11
+ * Decorates a property as a Matter field.
12
+ *
13
+ * If you don't assign a field ID using this decorator, matter.js treats the field as internal and it is not
14
+ * accessible via the Matter protocol.
15
+ */
16
+ export const field = element.property(FieldModel);
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ export * from "./attribute.js";
8
+ export * from "./cluster.js";
9
+ export * from "./datatype.js";
10
+ export * from "./element.js";
11
+ export * from "./field.js";
12
+ export * from "./listOf.js";
13
+ export * from "./mandatory.js";
14
+ export * from "./nonvolatile.js";
15
+ export * from "./nullable.js";
16
+ export * from "./response.js";
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Semantics } from "#decoration/semantics/Semantics.js";
8
+ import { Decorator } from "#general";
9
+ import { FieldModel } from "#models/FieldModel.js";
10
+ import type { Model } from "#models/Model.js";
11
+ import { Schema } from "#models/Schema.js";
12
+
13
+ /**
14
+ * Decorate a property as an array.
15
+ */
16
+ export function listOf(entry: Model.Source): Decorator.PropertyCollector {
17
+ return Decorator((_target, context) => {
18
+ Semantics.of(context).mutableModel.operationalBase = new FieldModel(
19
+ {
20
+ name: context.name.toString(),
21
+ type: "list",
22
+ },
23
+
24
+ new FieldModel({
25
+ name: "entry",
26
+ operationalBase: Schema(entry),
27
+ }),
28
+ );
29
+ });
30
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { InvalidMetadataError } from "#decoration/errors.js";
8
+ import { FieldSemantics } from "#decoration/semantics/FieldSemantics.js";
9
+ import { Decorator } from "#general";
10
+
11
+ /**
12
+ * Mark a field as mandatory.
13
+ */
14
+ export const mandatory = Decorator<Decorator.PropertyCollector>((_target, context) => {
15
+ const model = FieldSemantics.of(context).mutableModel;
16
+ if (!("conformance" in model)) {
17
+ throw new InvalidMetadataError(
18
+ `Cannot set ${model.path} to mandatory because ${model.tag} elements do not support conformance`,
19
+ );
20
+ }
21
+ model.conformance = "M";
22
+ });
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Quality } from "#aspects/Quality.js";
8
+ import { InvalidMetadataError } from "#decoration/errors.js";
9
+ import { FieldSemantics } from "#decoration/semantics/FieldSemantics.js";
10
+ import { Decorator } from "#general";
11
+ import { ValueModel } from "#models/ValueModel.js";
12
+
13
+ /**
14
+ * Mark a field as nonvolatile (persistent).
15
+ */
16
+ export const nonvolatile = Decorator<Decorator.PropertyCollector>((_target, context) => {
17
+ const model = FieldSemantics.of(context).mutableModel;
18
+ if (!(model instanceof ValueModel)) {
19
+ throw new InvalidMetadataError("Only a value models may be nonvolatile");
20
+ }
21
+ model.quality = new Quality({ ...model.quality, nonvolatile: true });
22
+ });
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Quality } from "#aspects/Quality.js";
8
+ import { InvalidMetadataError } from "#decoration/errors.js";
9
+ import { FieldSemantics } from "#decoration/semantics/FieldSemantics.js";
10
+ import { Decorator } from "#general";
11
+ import { ValueModel } from "#models/ValueModel.js";
12
+
13
+ /**
14
+ * Mark a field as nullable.
15
+ */
16
+ export const nullable = Decorator<Decorator.PropertyCollector>((_target, context) => {
17
+ const model = FieldSemantics.of(context).mutableModel;
18
+ if (!(model instanceof ValueModel)) {
19
+ throw new InvalidMetadataError("Only value models may be nullable");
20
+ }
21
+ model.quality = new Quality({ ...model.quality, nullable: true });
22
+ });