@itwin/ecschema-metadata 5.0.0-dev.99 → 5.1.0-dev.1

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 (282) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/Context.d.ts +3 -3
  3. package/lib/cjs/Context.d.ts.map +1 -1
  4. package/lib/cjs/Context.js +6 -6
  5. package/lib/cjs/Context.js.map +1 -1
  6. package/lib/cjs/DelayedPromise.d.ts +9 -8
  7. package/lib/cjs/DelayedPromise.d.ts.map +1 -1
  8. package/lib/cjs/DelayedPromise.js +2 -2
  9. package/lib/cjs/DelayedPromise.js.map +1 -1
  10. package/lib/cjs/Deserialization/Helper.d.ts.map +1 -1
  11. package/lib/cjs/Deserialization/Helper.js +27 -26
  12. package/lib/cjs/Deserialization/Helper.js.map +1 -1
  13. package/lib/cjs/Deserialization/JsonParser.js +150 -150
  14. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  15. package/lib/cjs/Deserialization/JsonProps.d.ts +34 -34
  16. package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -1
  17. package/lib/cjs/Deserialization/JsonProps.js +3 -3
  18. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  19. package/lib/cjs/Deserialization/XmlParser.js +49 -49
  20. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  21. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +0 -5
  22. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
  23. package/lib/cjs/Deserialization/XmlSerializationUtils.js +6 -11
  24. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  25. package/lib/cjs/ECName.d.ts +2 -2
  26. package/lib/cjs/ECName.js +4 -4
  27. package/lib/cjs/ECName.js.map +1 -1
  28. package/lib/cjs/ECObjects.d.ts +23 -11
  29. package/lib/cjs/ECObjects.d.ts.map +1 -1
  30. package/lib/cjs/ECObjects.js +47 -24
  31. package/lib/cjs/ECObjects.js.map +1 -1
  32. package/lib/cjs/Exception.d.ts +4 -4
  33. package/lib/cjs/Exception.d.ts.map +1 -1
  34. package/lib/cjs/Exception.js +60 -60
  35. package/lib/cjs/Exception.js.map +1 -1
  36. package/lib/cjs/Interfaces.d.ts +30 -34
  37. package/lib/cjs/Interfaces.d.ts.map +1 -1
  38. package/lib/cjs/Interfaces.js.map +1 -1
  39. package/lib/cjs/Metadata/Class.d.ts +107 -19
  40. package/lib/cjs/Metadata/Class.d.ts.map +1 -1
  41. package/lib/cjs/Metadata/Class.js +127 -47
  42. package/lib/cjs/Metadata/Class.js.map +1 -1
  43. package/lib/cjs/Metadata/Constant.d.ts +12 -9
  44. package/lib/cjs/Metadata/Constant.d.ts.map +1 -1
  45. package/lib/cjs/Metadata/Constant.js +12 -9
  46. package/lib/cjs/Metadata/Constant.js.map +1 -1
  47. package/lib/cjs/Metadata/CustomAttribute.d.ts +2 -2
  48. package/lib/cjs/Metadata/CustomAttribute.d.ts.map +1 -1
  49. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  50. package/lib/cjs/Metadata/CustomAttributeClass.d.ts +5 -3
  51. package/lib/cjs/Metadata/CustomAttributeClass.d.ts.map +1 -1
  52. package/lib/cjs/Metadata/CustomAttributeClass.js +7 -5
  53. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  54. package/lib/cjs/Metadata/EntityClass.d.ts +20 -3
  55. package/lib/cjs/Metadata/EntityClass.d.ts.map +1 -1
  56. package/lib/cjs/Metadata/EntityClass.js +32 -14
  57. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  58. package/lib/cjs/Metadata/Enumeration.d.ts +16 -9
  59. package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -1
  60. package/lib/cjs/Metadata/Enumeration.js +20 -13
  61. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  62. package/lib/cjs/Metadata/Format.d.ts +32 -24
  63. package/lib/cjs/Metadata/Format.d.ts.map +1 -1
  64. package/lib/cjs/Metadata/Format.js +47 -27
  65. package/lib/cjs/Metadata/Format.js.map +1 -1
  66. package/lib/cjs/Metadata/InvertedUnit.d.ts +11 -7
  67. package/lib/cjs/Metadata/InvertedUnit.d.ts.map +1 -1
  68. package/lib/cjs/Metadata/InvertedUnit.js +16 -10
  69. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
  70. package/lib/cjs/Metadata/KindOfQuantity.d.ts +24 -15
  71. package/lib/cjs/Metadata/KindOfQuantity.d.ts.map +1 -1
  72. package/lib/cjs/Metadata/KindOfQuantity.js +54 -29
  73. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  74. package/lib/cjs/Metadata/Mixin.d.ts +16 -3
  75. package/lib/cjs/Metadata/Mixin.d.ts.map +1 -1
  76. package/lib/cjs/Metadata/Mixin.js +20 -7
  77. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  78. package/lib/cjs/Metadata/OverrideFormat.d.ts +12 -12
  79. package/lib/cjs/Metadata/OverrideFormat.d.ts.map +1 -1
  80. package/lib/cjs/Metadata/OverrideFormat.js +27 -19
  81. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  82. package/lib/cjs/Metadata/Phenomenon.d.ts +10 -2
  83. package/lib/cjs/Metadata/Phenomenon.d.ts.map +1 -1
  84. package/lib/cjs/Metadata/Phenomenon.js +11 -3
  85. package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
  86. package/lib/cjs/Metadata/Property.d.ts +46 -28
  87. package/lib/cjs/Metadata/Property.d.ts.map +1 -1
  88. package/lib/cjs/Metadata/Property.js +46 -22
  89. package/lib/cjs/Metadata/Property.js.map +1 -1
  90. package/lib/cjs/Metadata/PropertyCategory.d.ts +6 -3
  91. package/lib/cjs/Metadata/PropertyCategory.d.ts.map +1 -1
  92. package/lib/cjs/Metadata/PropertyCategory.js +12 -5
  93. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  94. package/lib/cjs/Metadata/RelationshipClass.d.ts +48 -25
  95. package/lib/cjs/Metadata/RelationshipClass.d.ts.map +1 -1
  96. package/lib/cjs/Metadata/RelationshipClass.js +54 -34
  97. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  98. package/lib/cjs/Metadata/Schema.d.ts +50 -28
  99. package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
  100. package/lib/cjs/Metadata/Schema.js +64 -42
  101. package/lib/cjs/Metadata/Schema.js.map +1 -1
  102. package/lib/cjs/Metadata/SchemaItem.d.ts +10 -19
  103. package/lib/cjs/Metadata/SchemaItem.d.ts.map +1 -1
  104. package/lib/cjs/Metadata/SchemaItem.js +12 -20
  105. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  106. package/lib/cjs/Metadata/Unit.d.ts +17 -21
  107. package/lib/cjs/Metadata/Unit.d.ts.map +1 -1
  108. package/lib/cjs/Metadata/Unit.js +20 -22
  109. package/lib/cjs/Metadata/Unit.js.map +1 -1
  110. package/lib/cjs/Metadata/UnitSystem.d.ts +3 -1
  111. package/lib/cjs/Metadata/UnitSystem.d.ts.map +1 -1
  112. package/lib/cjs/Metadata/UnitSystem.js +4 -2
  113. package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
  114. package/lib/cjs/PropertyTypes.d.ts +11 -11
  115. package/lib/cjs/PropertyTypes.d.ts.map +1 -1
  116. package/lib/cjs/PropertyTypes.js +28 -20
  117. package/lib/cjs/PropertyTypes.js.map +1 -1
  118. package/lib/cjs/SchemaFormatsProvider.d.ts +39 -0
  119. package/lib/cjs/SchemaFormatsProvider.d.ts.map +1 -0
  120. package/lib/cjs/SchemaFormatsProvider.js +146 -0
  121. package/lib/cjs/SchemaFormatsProvider.js.map +1 -0
  122. package/lib/cjs/SchemaJsonLocater.d.ts +5 -5
  123. package/lib/cjs/SchemaJsonLocater.js +4 -4
  124. package/lib/cjs/SchemaJsonLocater.js.map +1 -1
  125. package/lib/cjs/SchemaKey.d.ts +6 -6
  126. package/lib/cjs/SchemaKey.d.ts.map +1 -1
  127. package/lib/cjs/SchemaKey.js +9 -9
  128. package/lib/cjs/SchemaKey.js.map +1 -1
  129. package/lib/cjs/SchemaLoader.d.ts +3 -3
  130. package/lib/cjs/SchemaLoader.js +4 -4
  131. package/lib/cjs/SchemaLoader.js.map +1 -1
  132. package/lib/cjs/SchemaPartVisitorDelegate.d.ts +2 -2
  133. package/lib/cjs/SchemaPartVisitorDelegate.js +1 -1
  134. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
  135. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  136. package/lib/cjs/ecschema-metadata.d.ts +2 -1
  137. package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
  138. package/lib/cjs/ecschema-metadata.js +1 -0
  139. package/lib/cjs/ecschema-metadata.js.map +1 -1
  140. package/lib/cjs/utils/SchemaGraph.js +3 -3
  141. package/lib/cjs/utils/SchemaGraph.js.map +1 -1
  142. package/lib/esm/Context.d.ts +3 -3
  143. package/lib/esm/Context.d.ts.map +1 -1
  144. package/lib/esm/Context.js +7 -7
  145. package/lib/esm/Context.js.map +1 -1
  146. package/lib/esm/DelayedPromise.d.ts +9 -8
  147. package/lib/esm/DelayedPromise.d.ts.map +1 -1
  148. package/lib/esm/DelayedPromise.js +2 -2
  149. package/lib/esm/DelayedPromise.js.map +1 -1
  150. package/lib/esm/Deserialization/Helper.d.ts.map +1 -1
  151. package/lib/esm/Deserialization/Helper.js +28 -27
  152. package/lib/esm/Deserialization/Helper.js.map +1 -1
  153. package/lib/esm/Deserialization/JsonParser.js +151 -151
  154. package/lib/esm/Deserialization/JsonParser.js.map +1 -1
  155. package/lib/esm/Deserialization/JsonProps.d.ts +34 -34
  156. package/lib/esm/Deserialization/JsonProps.d.ts.map +1 -1
  157. package/lib/esm/Deserialization/JsonProps.js +3 -3
  158. package/lib/esm/Deserialization/JsonProps.js.map +1 -1
  159. package/lib/esm/Deserialization/XmlParser.js +50 -50
  160. package/lib/esm/Deserialization/XmlParser.js.map +1 -1
  161. package/lib/esm/Deserialization/XmlSerializationUtils.d.ts +0 -5
  162. package/lib/esm/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
  163. package/lib/esm/Deserialization/XmlSerializationUtils.js +7 -12
  164. package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
  165. package/lib/esm/ECName.d.ts +2 -2
  166. package/lib/esm/ECName.js +5 -5
  167. package/lib/esm/ECName.js.map +1 -1
  168. package/lib/esm/ECObjects.d.ts +23 -11
  169. package/lib/esm/ECObjects.d.ts.map +1 -1
  170. package/lib/esm/ECObjects.js +48 -25
  171. package/lib/esm/ECObjects.js.map +1 -1
  172. package/lib/esm/Exception.d.ts +4 -4
  173. package/lib/esm/Exception.d.ts.map +1 -1
  174. package/lib/esm/Exception.js +58 -58
  175. package/lib/esm/Exception.js.map +1 -1
  176. package/lib/esm/Interfaces.d.ts +30 -34
  177. package/lib/esm/Interfaces.d.ts.map +1 -1
  178. package/lib/esm/Interfaces.js.map +1 -1
  179. package/lib/esm/Metadata/Class.d.ts +107 -19
  180. package/lib/esm/Metadata/Class.d.ts.map +1 -1
  181. package/lib/esm/Metadata/Class.js +128 -48
  182. package/lib/esm/Metadata/Class.js.map +1 -1
  183. package/lib/esm/Metadata/Constant.d.ts +12 -9
  184. package/lib/esm/Metadata/Constant.d.ts.map +1 -1
  185. package/lib/esm/Metadata/Constant.js +13 -10
  186. package/lib/esm/Metadata/Constant.js.map +1 -1
  187. package/lib/esm/Metadata/CustomAttribute.d.ts +2 -2
  188. package/lib/esm/Metadata/CustomAttribute.d.ts.map +1 -1
  189. package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
  190. package/lib/esm/Metadata/CustomAttributeClass.d.ts +5 -3
  191. package/lib/esm/Metadata/CustomAttributeClass.d.ts.map +1 -1
  192. package/lib/esm/Metadata/CustomAttributeClass.js +8 -6
  193. package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
  194. package/lib/esm/Metadata/EntityClass.d.ts +20 -3
  195. package/lib/esm/Metadata/EntityClass.d.ts.map +1 -1
  196. package/lib/esm/Metadata/EntityClass.js +33 -15
  197. package/lib/esm/Metadata/EntityClass.js.map +1 -1
  198. package/lib/esm/Metadata/Enumeration.d.ts +16 -9
  199. package/lib/esm/Metadata/Enumeration.d.ts.map +1 -1
  200. package/lib/esm/Metadata/Enumeration.js +21 -14
  201. package/lib/esm/Metadata/Enumeration.js.map +1 -1
  202. package/lib/esm/Metadata/Format.d.ts +32 -24
  203. package/lib/esm/Metadata/Format.d.ts.map +1 -1
  204. package/lib/esm/Metadata/Format.js +48 -28
  205. package/lib/esm/Metadata/Format.js.map +1 -1
  206. package/lib/esm/Metadata/InvertedUnit.d.ts +11 -7
  207. package/lib/esm/Metadata/InvertedUnit.d.ts.map +1 -1
  208. package/lib/esm/Metadata/InvertedUnit.js +17 -11
  209. package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
  210. package/lib/esm/Metadata/KindOfQuantity.d.ts +24 -15
  211. package/lib/esm/Metadata/KindOfQuantity.d.ts.map +1 -1
  212. package/lib/esm/Metadata/KindOfQuantity.js +55 -30
  213. package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
  214. package/lib/esm/Metadata/Mixin.d.ts +16 -3
  215. package/lib/esm/Metadata/Mixin.d.ts.map +1 -1
  216. package/lib/esm/Metadata/Mixin.js +21 -8
  217. package/lib/esm/Metadata/Mixin.js.map +1 -1
  218. package/lib/esm/Metadata/OverrideFormat.d.ts +12 -12
  219. package/lib/esm/Metadata/OverrideFormat.d.ts.map +1 -1
  220. package/lib/esm/Metadata/OverrideFormat.js +28 -20
  221. package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
  222. package/lib/esm/Metadata/Phenomenon.d.ts +10 -2
  223. package/lib/esm/Metadata/Phenomenon.d.ts.map +1 -1
  224. package/lib/esm/Metadata/Phenomenon.js +12 -4
  225. package/lib/esm/Metadata/Phenomenon.js.map +1 -1
  226. package/lib/esm/Metadata/Property.d.ts +46 -28
  227. package/lib/esm/Metadata/Property.d.ts.map +1 -1
  228. package/lib/esm/Metadata/Property.js +47 -23
  229. package/lib/esm/Metadata/Property.js.map +1 -1
  230. package/lib/esm/Metadata/PropertyCategory.d.ts +6 -3
  231. package/lib/esm/Metadata/PropertyCategory.d.ts.map +1 -1
  232. package/lib/esm/Metadata/PropertyCategory.js +13 -6
  233. package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
  234. package/lib/esm/Metadata/RelationshipClass.d.ts +48 -25
  235. package/lib/esm/Metadata/RelationshipClass.d.ts.map +1 -1
  236. package/lib/esm/Metadata/RelationshipClass.js +55 -35
  237. package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
  238. package/lib/esm/Metadata/Schema.d.ts +50 -28
  239. package/lib/esm/Metadata/Schema.d.ts.map +1 -1
  240. package/lib/esm/Metadata/Schema.js +65 -43
  241. package/lib/esm/Metadata/Schema.js.map +1 -1
  242. package/lib/esm/Metadata/SchemaItem.d.ts +10 -19
  243. package/lib/esm/Metadata/SchemaItem.d.ts.map +1 -1
  244. package/lib/esm/Metadata/SchemaItem.js +13 -21
  245. package/lib/esm/Metadata/SchemaItem.js.map +1 -1
  246. package/lib/esm/Metadata/Unit.d.ts +17 -21
  247. package/lib/esm/Metadata/Unit.d.ts.map +1 -1
  248. package/lib/esm/Metadata/Unit.js +21 -23
  249. package/lib/esm/Metadata/Unit.js.map +1 -1
  250. package/lib/esm/Metadata/UnitSystem.d.ts +3 -1
  251. package/lib/esm/Metadata/UnitSystem.d.ts.map +1 -1
  252. package/lib/esm/Metadata/UnitSystem.js +5 -3
  253. package/lib/esm/Metadata/UnitSystem.js.map +1 -1
  254. package/lib/esm/PropertyTypes.d.ts +11 -11
  255. package/lib/esm/PropertyTypes.d.ts.map +1 -1
  256. package/lib/esm/PropertyTypes.js +29 -21
  257. package/lib/esm/PropertyTypes.js.map +1 -1
  258. package/lib/esm/SchemaFormatsProvider.d.ts +39 -0
  259. package/lib/esm/SchemaFormatsProvider.d.ts.map +1 -0
  260. package/lib/esm/SchemaFormatsProvider.js +142 -0
  261. package/lib/esm/SchemaFormatsProvider.js.map +1 -0
  262. package/lib/esm/SchemaJsonLocater.d.ts +5 -5
  263. package/lib/esm/SchemaJsonLocater.js +4 -4
  264. package/lib/esm/SchemaJsonLocater.js.map +1 -1
  265. package/lib/esm/SchemaKey.d.ts +6 -6
  266. package/lib/esm/SchemaKey.d.ts.map +1 -1
  267. package/lib/esm/SchemaKey.js +10 -10
  268. package/lib/esm/SchemaKey.js.map +1 -1
  269. package/lib/esm/SchemaLoader.d.ts +3 -3
  270. package/lib/esm/SchemaLoader.js +5 -5
  271. package/lib/esm/SchemaLoader.js.map +1 -1
  272. package/lib/esm/SchemaPartVisitorDelegate.d.ts +2 -2
  273. package/lib/esm/SchemaPartVisitorDelegate.js +1 -1
  274. package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
  275. package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
  276. package/lib/esm/ecschema-metadata.d.ts +2 -1
  277. package/lib/esm/ecschema-metadata.d.ts.map +1 -1
  278. package/lib/esm/ecschema-metadata.js +1 -0
  279. package/lib/esm/ecschema-metadata.js.map +1 -1
  280. package/lib/esm/utils/SchemaGraph.js +4 -4
  281. package/lib/esm/utils/SchemaGraph.js.map +1 -1
  282. package/package.json +8 -6
@@ -21,9 +21,10 @@ const SchemaItem_1 = require("./SchemaItem");
21
21
  const Helper_1 = require("../Deserialization/Helper");
22
22
  /**
23
23
  * A common abstract class for all of the ECClass types.
24
- * @beta
24
+ * @public @preview
25
25
  */
26
26
  class ECClass extends SchemaItem_1.SchemaItem {
27
+ /** @internal */
27
28
  static get schemaItemType() { return ECObjects_1.AbstractSchemaItemType.Class; } // need this so getItem("name", ECClass) in schema works
28
29
  _modifier;
29
30
  _baseClass;
@@ -33,6 +34,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
33
34
  _mergedPropertyCache;
34
35
  get modifier() { return this._modifier; }
35
36
  get customAttributes() { return this._customAttributes; }
37
+ /** @internal */
36
38
  constructor(schema, name, modifier) {
37
39
  super(schema, name);
38
40
  if (modifier)
@@ -46,8 +48,16 @@ class ECClass extends SchemaItem_1.SchemaItem {
46
48
  get baseClass() {
47
49
  return this._baseClass;
48
50
  }
51
+ getBaseClassSync() {
52
+ if (!this.baseClass) {
53
+ return undefined;
54
+ }
55
+ return this.schema.lookupItemSync(this.baseClass, ECClass);
56
+ }
49
57
  /**
50
58
  * Sets the base class of the ECClass. Pass undefined to 'remove' the base class.
59
+ *
60
+ * @internal
51
61
  */
52
62
  async setBaseClass(baseClass) {
53
63
  const oldBaseClass = this._baseClass;
@@ -70,6 +80,8 @@ class ECClass extends SchemaItem_1.SchemaItem {
70
80
  * Convenience method for adding an already loaded ECProperty used by create*Property methods.
71
81
  * @param prop The property to add.
72
82
  * @return The property that was added.
83
+ *
84
+ * @internal
73
85
  */
74
86
  addProperty(prop) {
75
87
  if (!this._properties)
@@ -81,7 +93,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
81
93
  /**
82
94
  * Deletes a property from within this class.
83
95
  * @param name The property name to delete, lookup is case-insensitive
84
- * @alpha
96
+ * @internal
85
97
  */
86
98
  async deleteProperty(name) {
87
99
  if (this._properties) {
@@ -95,7 +107,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
95
107
  /**
96
108
  * Deletes a property from within this class.
97
109
  * @param name The property name to delete, lookup is case-insensitive
98
- * @alpha
110
+ * @internal
99
111
  */
100
112
  deletePropertySync(name) {
101
113
  if (this._properties) {
@@ -106,40 +118,37 @@ class ECClass extends SchemaItem_1.SchemaItem {
106
118
  }
107
119
  }
108
120
  }
109
- getBaseClassSync() {
110
- if (!this.baseClass) {
111
- return undefined;
112
- }
113
- return this.schema.lookupItemSync(this.baseClass, ECClass);
114
- }
115
121
  /**
116
- * Searches, case-insensitive, for a local ECProperty with the name provided.
117
- * @param name
122
+ * Searches, case-insensitive, for an ECProperty with given the name on this class and, by default, on
123
+ * all base classes. Set excludeInherited to 'true' to only search the local class.
124
+ * @param name The name of the property to retrieve.
125
+ * @param excludeInherited If true, excludes inherited properties from the results. Defaults to false.
118
126
  */
119
- async getProperty(name, includeInherited = false) {
127
+ async getProperty(name, excludeInherited = false) {
120
128
  if (this._properties) {
121
129
  const upperKey = name.toUpperCase();
122
130
  const property = this._properties.get(upperKey);
123
131
  if (property)
124
132
  return property;
125
133
  }
126
- if (!includeInherited) {
134
+ if (excludeInherited) {
127
135
  return undefined;
128
136
  }
129
137
  return this.getInheritedProperty(name);
130
138
  }
131
139
  /**
132
140
  * Searches, case-insensitive, for a local ECProperty with the name provided.
133
- * @param name
141
+ * @param name The name of the property to retrieve.
142
+ * @param excludeInherited If true, excludes inherited properties from the results. Defaults to false.
134
143
  */
135
- getPropertySync(name, includeInherited = false) {
144
+ getPropertySync(name, excludeInherited = false) {
136
145
  if (this._properties) {
137
146
  const upperKey = name.toUpperCase();
138
147
  const property = this._properties.get(upperKey);
139
148
  if (property)
140
149
  return property;
141
150
  }
142
- if (!includeInherited) {
151
+ if (excludeInherited) {
143
152
  return undefined;
144
153
  }
145
154
  return this.getInheritedPropertySync(name);
@@ -151,7 +160,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
151
160
  async getInheritedProperty(name) {
152
161
  if (this.baseClass) {
153
162
  const baseClassObj = await this.baseClass;
154
- return baseClassObj.getProperty(name, true);
163
+ return baseClassObj.getProperty(name);
155
164
  }
156
165
  return undefined;
157
166
  }
@@ -162,36 +171,36 @@ class ECClass extends SchemaItem_1.SchemaItem {
162
171
  getInheritedPropertySync(name) {
163
172
  const baseClassObj = this.getBaseClassSync();
164
173
  if (baseClassObj)
165
- return baseClassObj.getPropertySync(name, true);
174
+ return baseClassObj.getPropertySync(name);
166
175
  return undefined;
167
176
  }
168
177
  async createPrimitiveProperty(name, primitiveType) {
169
- if (await this.getProperty(name))
170
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
178
+ if (await this.getProperty(name, true))
179
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
171
180
  const propType = await this.loadPrimitiveType(primitiveType, this.schema);
172
181
  if (typeof (propType) === "number")
173
182
  return this.addProperty(new Property_1.PrimitiveProperty(this, name, propType));
174
183
  return this.addProperty(new Property_1.EnumerationProperty(this, name, new DelayedPromise_1.DelayedPromiseWithProps(propType.key, async () => propType)));
175
184
  }
176
185
  createPrimitivePropertySync(name, primitiveType) {
177
- if (this.getPropertySync(name))
178
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
186
+ if (this.getPropertySync(name, true))
187
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
179
188
  const propType = this.loadPrimitiveTypeSync(primitiveType, this.schema);
180
189
  if (typeof (propType) === "number")
181
190
  return this.addProperty(new Property_1.PrimitiveProperty(this, name, propType));
182
191
  return this.addProperty(new Property_1.EnumerationProperty(this, name, new DelayedPromise_1.DelayedPromiseWithProps(propType.key, async () => propType)));
183
192
  }
184
193
  async createPrimitiveArrayProperty(name, primitiveType) {
185
- if (await this.getProperty(name))
186
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
194
+ if (await this.getProperty(name, true))
195
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
187
196
  const propType = await this.loadPrimitiveType(primitiveType, this.schema);
188
197
  if (typeof (propType) === "number")
189
198
  return this.addProperty(new Property_1.PrimitiveArrayProperty(this, name, propType));
190
199
  return this.addProperty(new Property_1.EnumerationArrayProperty(this, name, new DelayedPromise_1.DelayedPromiseWithProps(propType.key, async () => propType)));
191
200
  }
192
201
  createPrimitiveArrayPropertySync(name, primitiveType) {
193
- if (this.getPropertySync(name))
194
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
202
+ if (this.getPropertySync(name, true))
203
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
195
204
  const propType = this.loadPrimitiveTypeSync(primitiveType, this.schema);
196
205
  if (typeof (propType) === "number")
197
206
  return this.addProperty(new Property_1.PrimitiveArrayProperty(this, name, propType));
@@ -201,42 +210,58 @@ class ECClass extends SchemaItem_1.SchemaItem {
201
210
  *
202
211
  * @param name The name of property to create.
203
212
  * @param structType The struct type of property to create.
213
+ *
214
+ * @internal
204
215
  */
205
216
  async createStructProperty(name, structType) {
206
- if (await this.getProperty(name))
207
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
217
+ if (await this.getProperty(name, true))
218
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
208
219
  return this.addProperty(new Property_1.StructProperty(this, name, await this.loadStructType(structType, this.schema)));
209
220
  }
210
221
  /**
211
222
  *
212
223
  * @param name The name of property to create.
213
224
  * @param structType The struct type of property to create.
225
+ *
226
+ * @internal
214
227
  */
215
228
  createStructPropertySync(name, structType) {
216
- if (this.getPropertySync(name))
217
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
229
+ if (this.getPropertySync(name, true))
230
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
218
231
  return this.addProperty(new Property_1.StructProperty(this, name, this.loadStructTypeSync(structType, this.schema)));
219
232
  }
220
233
  /**
221
234
  *
222
235
  * @param name
223
236
  * @param type
237
+ *
238
+ * @internal
224
239
  */
225
240
  async createStructArrayProperty(name, structType) {
226
- if (await this.getProperty(name))
227
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
241
+ if (await this.getProperty(name, true))
242
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
228
243
  return this.addProperty(new Property_1.StructArrayProperty(this, name, await this.loadStructType(structType, this.schema)));
229
244
  }
230
245
  /**
231
246
  *
232
247
  * @param name
233
248
  * @param type
249
+ *
250
+ * @internal
234
251
  */
235
252
  createStructArrayPropertySync(name, structType) {
236
- if (this.getPropertySync(name))
237
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
253
+ if (this.getPropertySync(name, true))
254
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);
238
255
  return this.addProperty(new Property_1.StructArrayProperty(this, name, this.loadStructTypeSync(structType, this.schema)));
239
256
  }
257
+ /**
258
+ *
259
+ * @param structType
260
+ * @param schema
261
+ * @returns
262
+ *
263
+ * @internal
264
+ */
240
265
  async loadStructType(structType, schema) {
241
266
  let correctType;
242
267
  if (typeof (structType) === "string") {
@@ -245,9 +270,17 @@ class ECClass extends SchemaItem_1.SchemaItem {
245
270
  else
246
271
  correctType = structType;
247
272
  if (!correctType)
248
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidType, `The provided Struct type, ${structType}, is not a valid StructClass.`);
273
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided Struct type, ${structType}, is not a valid StructClass.`);
249
274
  return correctType;
250
275
  }
276
+ /**
277
+ *
278
+ * @param structType
279
+ * @param schema
280
+ * @returns
281
+ *
282
+ * @internal
283
+ */
251
284
  loadStructTypeSync(structType, schema) {
252
285
  let correctType;
253
286
  if (typeof (structType) === "string") {
@@ -256,9 +289,17 @@ class ECClass extends SchemaItem_1.SchemaItem {
256
289
  else
257
290
  correctType = structType;
258
291
  if (!correctType)
259
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidType, `The provided Struct type, ${structType}, is not a valid StructClass.`);
292
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided Struct type, ${structType}, is not a valid StructClass.`);
260
293
  return correctType;
261
294
  }
295
+ /**
296
+ *
297
+ * @param primitiveType
298
+ * @param schema
299
+ * @returns
300
+ *
301
+ * @internal
302
+ */
262
303
  async loadPrimitiveType(primitiveType, schema) {
263
304
  if (primitiveType === undefined)
264
305
  return ECObjects_1.PrimitiveType.Integer;
@@ -268,14 +309,22 @@ class ECClass extends SchemaItem_1.SchemaItem {
268
309
  resolvedType = await schema.lookupItem(primitiveType, Enumeration_1.Enumeration);
269
310
  }
270
311
  if (resolvedType === undefined)
271
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
312
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
272
313
  // If resolvedType is a SchemaItem, make sure it is an Enumeration- if not, throw an error
273
314
  if (typeof (resolvedType) !== "number" && resolvedType.schemaItemType !== ECObjects_1.SchemaItemType.Enumeration)
274
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
315
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
275
316
  return resolvedType;
276
317
  }
277
318
  return primitiveType;
278
319
  }
320
+ /**
321
+ *
322
+ * @param primitiveType
323
+ * @param schema
324
+ * @returns
325
+ *
326
+ * @internal
327
+ */
279
328
  loadPrimitiveTypeSync(primitiveType, schema) {
280
329
  if (primitiveType === undefined)
281
330
  return ECObjects_1.PrimitiveType.Integer;
@@ -285,7 +334,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
285
334
  resolvedType = schema.lookupItemSync(primitiveType, Enumeration_1.Enumeration);
286
335
  }
287
336
  if (resolvedType === undefined)
288
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
337
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);
289
338
  return resolvedType;
290
339
  }
291
340
  return primitiveType;
@@ -346,7 +395,7 @@ class ECClass extends SchemaItem_1.SchemaItem {
346
395
  if (Helper_1.SchemaReadHelper.isECSpecVersionNewer({ readVersion: classProps.originalECSpecMajorVersion, writeVersion: classProps.originalECSpecMinorVersion }))
347
396
  this._modifier = ECObjects_1.ECClassModifier.None;
348
397
  else
349
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidModifier, `The string '${classProps.modifier}' is not a valid ECClassModifier.`);
398
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidModifier, `The string '${classProps.modifier}' is not a valid ECClassModifier.`);
350
399
  }
351
400
  else {
352
401
  this._modifier = modifier;
@@ -355,14 +404,14 @@ class ECClass extends SchemaItem_1.SchemaItem {
355
404
  if (undefined !== classProps.baseClass) {
356
405
  const ecClassSchemaItemKey = this.schema.getSchemaItemKey(classProps.baseClass);
357
406
  if (!ecClassSchemaItemKey)
358
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidECJson, `Unable to locate the baseClass ${classProps.baseClass}.`);
407
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate the baseClass ${classProps.baseClass}.`);
359
408
  const baseClass = this.schema.lookupItemSync(ecClassSchemaItemKey);
360
409
  let lazyBase;
361
410
  if (!baseClass) {
362
411
  lazyBase = new DelayedPromise_1.DelayedPromiseWithProps(ecClassSchemaItemKey, async () => {
363
412
  const baseItem = await this.schema.lookupItem(ecClassSchemaItemKey);
364
413
  if (undefined === baseItem || !ECClass.isECClass(baseItem))
365
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidECJson, `Unable to locate the baseClass ${classProps.baseClass}.`);
414
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate the baseClass ${classProps.baseClass}.`);
366
415
  return baseItem;
367
416
  });
368
417
  }
@@ -380,6 +429,12 @@ class ECClass extends SchemaItem_1.SchemaItem {
380
429
  async fromJSON(classProps) {
381
430
  this.fromJSONSync(classProps);
382
431
  }
432
+ /**
433
+ *
434
+ * @param customAttribute
435
+ *
436
+ * @internal
437
+ */
383
438
  addCustomAttribute(customAttribute) {
384
439
  if (!this._customAttributes)
385
440
  this._customAttributes = new Map();
@@ -426,6 +481,15 @@ class ECClass extends SchemaItem_1.SchemaItem {
426
481
  yield baseClass;
427
482
  }
428
483
  }
484
+ /**
485
+ *
486
+ * @param target
487
+ * @param existingValues
488
+ * @param propertiesToMerge
489
+ * @param overwriteExisting
490
+ *
491
+ * @internal
492
+ */
429
493
  static mergeProperties(target, existingValues, propertiesToMerge, overwriteExisting) {
430
494
  for (const property of propertiesToMerge) {
431
495
  const upperCaseName = property.name.toUpperCase();
@@ -441,6 +505,14 @@ class ECClass extends SchemaItem_1.SchemaItem {
441
505
  }
442
506
  }
443
507
  }
508
+ /**
509
+ *
510
+ * @param result
511
+ * @param existingValues
512
+ * @returns
513
+ *
514
+ * @internal
515
+ */
444
516
  async buildPropertyCache(result, existingValues) {
445
517
  if (!existingValues) {
446
518
  existingValues = new Map();
@@ -455,6 +527,14 @@ class ECClass extends SchemaItem_1.SchemaItem {
455
527
  return;
456
528
  ECClass.mergeProperties(result, existingValues, [...this._properties.values()], true);
457
529
  }
530
+ /**
531
+ *
532
+ * @param result
533
+ * @param existingValues
534
+ * @returns
535
+ *
536
+ * @internal
537
+ */
458
538
  buildPropertyCacheSync(result, existingValues) {
459
539
  if (!existingValues) {
460
540
  existingValues = new Map();
@@ -597,9 +677,9 @@ class ECClass extends SchemaItem_1.SchemaItem {
597
677
  object.schemaItemType === ECObjects_1.SchemaItemType.StructClass || object.schemaItemType === ECObjects_1.SchemaItemType.CustomAttributeClass;
598
678
  }
599
679
  /**
600
- * @alpha
601
680
  * A setter method for the ECClass modifier, used specifically for schema editing.
602
681
  * @param modifier
682
+ * @internal
603
683
  */
604
684
  setModifier(modifier) {
605
685
  this._modifier = modifier;
@@ -637,17 +717,16 @@ class ECClass extends SchemaItem_1.SchemaItem {
637
717
  exports.ECClass = ECClass;
638
718
  /**
639
719
  * A Typescript class representation of an ECStructClass.
640
- * @beta
720
+ * @public @preview
641
721
  */
642
722
  class StructClass extends ECClass {
643
723
  /**
644
724
  * Get the type of item represented by this instance
645
- * @beta
646
725
  */
647
726
  schemaItemType = StructClass.schemaItemType;
648
727
  /**
649
728
  * Get the type of item represented by this class
650
- * @beta
729
+ * @internal
651
730
  */
652
731
  static get schemaItemType() { return ECObjects_1.SchemaItemType.StructClass; }
653
732
  /**
@@ -664,10 +743,11 @@ class StructClass extends ECClass {
664
743
  * Type assertion to check if the SchemaItem is of type StructClass.
665
744
  * @param item The SchemaItem to check.
666
745
  * @returns The item cast to StructClass if it is a StructClass, undefined otherwise.
746
+ * @internal
667
747
  */
668
748
  static assertIsStructClass(item) {
669
749
  if (!this.isStructClass(item))
670
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidSchemaItemType, `Expected '${ECObjects_1.SchemaItemType.StructClass}' (StructClass)`);
750
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidSchemaItemType, `Expected '${ECObjects_1.SchemaItemType.StructClass}' (StructClass)`);
671
751
  }
672
752
  }
673
753
  exports.StructClass = StructClass;