@itwin/ecschema-metadata 5.0.0-dev.98 → 5.1.0-dev.0

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 (300) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/Constants.js.map +1 -1
  3. package/lib/cjs/Context.d.ts +3 -3
  4. package/lib/cjs/Context.d.ts.map +1 -1
  5. package/lib/cjs/Context.js +6 -6
  6. package/lib/cjs/Context.js.map +1 -1
  7. package/lib/cjs/DelayedPromise.d.ts +9 -8
  8. package/lib/cjs/DelayedPromise.d.ts.map +1 -1
  9. package/lib/cjs/DelayedPromise.js +2 -2
  10. package/lib/cjs/DelayedPromise.js.map +1 -1
  11. package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
  12. package/lib/cjs/Deserialization/Helper.d.ts.map +1 -1
  13. package/lib/cjs/Deserialization/Helper.js +27 -26
  14. package/lib/cjs/Deserialization/Helper.js.map +1 -1
  15. package/lib/cjs/Deserialization/JsonParser.js +150 -150
  16. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  17. package/lib/cjs/Deserialization/JsonProps.d.ts +34 -34
  18. package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -1
  19. package/lib/cjs/Deserialization/JsonProps.js +3 -3
  20. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  21. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
  22. package/lib/cjs/Deserialization/XmlParser.js +49 -49
  23. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  24. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +0 -5
  25. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
  26. package/lib/cjs/Deserialization/XmlSerializationUtils.js +6 -11
  27. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  28. package/lib/cjs/ECName.d.ts +2 -2
  29. package/lib/cjs/ECName.js +4 -4
  30. package/lib/cjs/ECName.js.map +1 -1
  31. package/lib/cjs/ECObjects.d.ts +23 -11
  32. package/lib/cjs/ECObjects.d.ts.map +1 -1
  33. package/lib/cjs/ECObjects.js +47 -24
  34. package/lib/cjs/ECObjects.js.map +1 -1
  35. package/lib/cjs/Exception.d.ts +4 -4
  36. package/lib/cjs/Exception.d.ts.map +1 -1
  37. package/lib/cjs/Exception.js +60 -60
  38. package/lib/cjs/Exception.js.map +1 -1
  39. package/lib/cjs/Interfaces.d.ts +30 -34
  40. package/lib/cjs/Interfaces.d.ts.map +1 -1
  41. package/lib/cjs/Interfaces.js.map +1 -1
  42. package/lib/cjs/Metadata/Class.d.ts +107 -19
  43. package/lib/cjs/Metadata/Class.d.ts.map +1 -1
  44. package/lib/cjs/Metadata/Class.js +127 -47
  45. package/lib/cjs/Metadata/Class.js.map +1 -1
  46. package/lib/cjs/Metadata/Constant.d.ts +12 -9
  47. package/lib/cjs/Metadata/Constant.d.ts.map +1 -1
  48. package/lib/cjs/Metadata/Constant.js +12 -9
  49. package/lib/cjs/Metadata/Constant.js.map +1 -1
  50. package/lib/cjs/Metadata/CustomAttribute.d.ts +2 -2
  51. package/lib/cjs/Metadata/CustomAttribute.d.ts.map +1 -1
  52. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  53. package/lib/cjs/Metadata/CustomAttributeClass.d.ts +5 -3
  54. package/lib/cjs/Metadata/CustomAttributeClass.d.ts.map +1 -1
  55. package/lib/cjs/Metadata/CustomAttributeClass.js +7 -5
  56. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  57. package/lib/cjs/Metadata/EntityClass.d.ts +20 -3
  58. package/lib/cjs/Metadata/EntityClass.d.ts.map +1 -1
  59. package/lib/cjs/Metadata/EntityClass.js +32 -14
  60. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  61. package/lib/cjs/Metadata/Enumeration.d.ts +16 -9
  62. package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -1
  63. package/lib/cjs/Metadata/Enumeration.js +20 -13
  64. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  65. package/lib/cjs/Metadata/Format.d.ts +32 -24
  66. package/lib/cjs/Metadata/Format.d.ts.map +1 -1
  67. package/lib/cjs/Metadata/Format.js +47 -27
  68. package/lib/cjs/Metadata/Format.js.map +1 -1
  69. package/lib/cjs/Metadata/InvertedUnit.d.ts +11 -7
  70. package/lib/cjs/Metadata/InvertedUnit.d.ts.map +1 -1
  71. package/lib/cjs/Metadata/InvertedUnit.js +16 -10
  72. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
  73. package/lib/cjs/Metadata/KindOfQuantity.d.ts +24 -15
  74. package/lib/cjs/Metadata/KindOfQuantity.d.ts.map +1 -1
  75. package/lib/cjs/Metadata/KindOfQuantity.js +54 -29
  76. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  77. package/lib/cjs/Metadata/Mixin.d.ts +16 -3
  78. package/lib/cjs/Metadata/Mixin.d.ts.map +1 -1
  79. package/lib/cjs/Metadata/Mixin.js +20 -7
  80. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  81. package/lib/cjs/Metadata/OverrideFormat.d.ts +12 -12
  82. package/lib/cjs/Metadata/OverrideFormat.d.ts.map +1 -1
  83. package/lib/cjs/Metadata/OverrideFormat.js +27 -19
  84. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  85. package/lib/cjs/Metadata/Phenomenon.d.ts +10 -2
  86. package/lib/cjs/Metadata/Phenomenon.d.ts.map +1 -1
  87. package/lib/cjs/Metadata/Phenomenon.js +11 -3
  88. package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
  89. package/lib/cjs/Metadata/Property.d.ts +46 -28
  90. package/lib/cjs/Metadata/Property.d.ts.map +1 -1
  91. package/lib/cjs/Metadata/Property.js +46 -22
  92. package/lib/cjs/Metadata/Property.js.map +1 -1
  93. package/lib/cjs/Metadata/PropertyCategory.d.ts +6 -3
  94. package/lib/cjs/Metadata/PropertyCategory.d.ts.map +1 -1
  95. package/lib/cjs/Metadata/PropertyCategory.js +12 -5
  96. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  97. package/lib/cjs/Metadata/RelationshipClass.d.ts +48 -25
  98. package/lib/cjs/Metadata/RelationshipClass.d.ts.map +1 -1
  99. package/lib/cjs/Metadata/RelationshipClass.js +54 -34
  100. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  101. package/lib/cjs/Metadata/Schema.d.ts +50 -28
  102. package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
  103. package/lib/cjs/Metadata/Schema.js +64 -42
  104. package/lib/cjs/Metadata/Schema.js.map +1 -1
  105. package/lib/cjs/Metadata/SchemaItem.d.ts +10 -19
  106. package/lib/cjs/Metadata/SchemaItem.d.ts.map +1 -1
  107. package/lib/cjs/Metadata/SchemaItem.js +12 -20
  108. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  109. package/lib/cjs/Metadata/Unit.d.ts +17 -21
  110. package/lib/cjs/Metadata/Unit.d.ts.map +1 -1
  111. package/lib/cjs/Metadata/Unit.js +20 -22
  112. package/lib/cjs/Metadata/Unit.js.map +1 -1
  113. package/lib/cjs/Metadata/UnitSystem.d.ts +3 -1
  114. package/lib/cjs/Metadata/UnitSystem.d.ts.map +1 -1
  115. package/lib/cjs/Metadata/UnitSystem.js +4 -2
  116. package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
  117. package/lib/cjs/PropertyTypes.d.ts +11 -11
  118. package/lib/cjs/PropertyTypes.d.ts.map +1 -1
  119. package/lib/cjs/PropertyTypes.js +28 -20
  120. package/lib/cjs/PropertyTypes.js.map +1 -1
  121. package/lib/cjs/SchemaFormatsProvider.d.ts +39 -0
  122. package/lib/cjs/SchemaFormatsProvider.d.ts.map +1 -0
  123. package/lib/cjs/SchemaFormatsProvider.js +146 -0
  124. package/lib/cjs/SchemaFormatsProvider.js.map +1 -0
  125. package/lib/cjs/SchemaJsonLocater.d.ts +5 -5
  126. package/lib/cjs/SchemaJsonLocater.js +4 -4
  127. package/lib/cjs/SchemaJsonLocater.js.map +1 -1
  128. package/lib/cjs/SchemaKey.d.ts +6 -6
  129. package/lib/cjs/SchemaKey.d.ts.map +1 -1
  130. package/lib/cjs/SchemaKey.js +9 -9
  131. package/lib/cjs/SchemaKey.js.map +1 -1
  132. package/lib/cjs/SchemaLoader.d.ts +3 -3
  133. package/lib/cjs/SchemaLoader.js +4 -4
  134. package/lib/cjs/SchemaLoader.js.map +1 -1
  135. package/lib/cjs/SchemaPartVisitorDelegate.d.ts +2 -2
  136. package/lib/cjs/SchemaPartVisitorDelegate.js +1 -1
  137. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
  138. package/lib/cjs/UnitConversion/Graph.js.map +1 -1
  139. package/lib/cjs/UnitConversion/Parser.js.map +1 -1
  140. package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -1
  141. package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
  142. package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
  143. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  144. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  145. package/lib/cjs/ecschema-metadata.d.ts +2 -1
  146. package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
  147. package/lib/cjs/ecschema-metadata.js +1 -0
  148. package/lib/cjs/ecschema-metadata.js.map +1 -1
  149. package/lib/cjs/utils/SchemaGraph.js +3 -3
  150. package/lib/cjs/utils/SchemaGraph.js.map +1 -1
  151. package/lib/esm/Constants.js.map +1 -1
  152. package/lib/esm/Context.d.ts +3 -3
  153. package/lib/esm/Context.d.ts.map +1 -1
  154. package/lib/esm/Context.js +7 -7
  155. package/lib/esm/Context.js.map +1 -1
  156. package/lib/esm/DelayedPromise.d.ts +9 -8
  157. package/lib/esm/DelayedPromise.d.ts.map +1 -1
  158. package/lib/esm/DelayedPromise.js +2 -2
  159. package/lib/esm/DelayedPromise.js.map +1 -1
  160. package/lib/esm/Deserialization/AbstractParser.js.map +1 -1
  161. package/lib/esm/Deserialization/Helper.d.ts.map +1 -1
  162. package/lib/esm/Deserialization/Helper.js +28 -27
  163. package/lib/esm/Deserialization/Helper.js.map +1 -1
  164. package/lib/esm/Deserialization/JsonParser.js +151 -151
  165. package/lib/esm/Deserialization/JsonParser.js.map +1 -1
  166. package/lib/esm/Deserialization/JsonProps.d.ts +34 -34
  167. package/lib/esm/Deserialization/JsonProps.d.ts.map +1 -1
  168. package/lib/esm/Deserialization/JsonProps.js +3 -3
  169. package/lib/esm/Deserialization/JsonProps.js.map +1 -1
  170. package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
  171. package/lib/esm/Deserialization/XmlParser.js +50 -50
  172. package/lib/esm/Deserialization/XmlParser.js.map +1 -1
  173. package/lib/esm/Deserialization/XmlSerializationUtils.d.ts +0 -5
  174. package/lib/esm/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
  175. package/lib/esm/Deserialization/XmlSerializationUtils.js +7 -12
  176. package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
  177. package/lib/esm/ECName.d.ts +2 -2
  178. package/lib/esm/ECName.js +5 -5
  179. package/lib/esm/ECName.js.map +1 -1
  180. package/lib/esm/ECObjects.d.ts +23 -11
  181. package/lib/esm/ECObjects.d.ts.map +1 -1
  182. package/lib/esm/ECObjects.js +48 -25
  183. package/lib/esm/ECObjects.js.map +1 -1
  184. package/lib/esm/Exception.d.ts +4 -4
  185. package/lib/esm/Exception.d.ts.map +1 -1
  186. package/lib/esm/Exception.js +58 -58
  187. package/lib/esm/Exception.js.map +1 -1
  188. package/lib/esm/Interfaces.d.ts +30 -34
  189. package/lib/esm/Interfaces.d.ts.map +1 -1
  190. package/lib/esm/Interfaces.js.map +1 -1
  191. package/lib/esm/Metadata/Class.d.ts +107 -19
  192. package/lib/esm/Metadata/Class.d.ts.map +1 -1
  193. package/lib/esm/Metadata/Class.js +128 -48
  194. package/lib/esm/Metadata/Class.js.map +1 -1
  195. package/lib/esm/Metadata/Constant.d.ts +12 -9
  196. package/lib/esm/Metadata/Constant.d.ts.map +1 -1
  197. package/lib/esm/Metadata/Constant.js +13 -10
  198. package/lib/esm/Metadata/Constant.js.map +1 -1
  199. package/lib/esm/Metadata/CustomAttribute.d.ts +2 -2
  200. package/lib/esm/Metadata/CustomAttribute.d.ts.map +1 -1
  201. package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
  202. package/lib/esm/Metadata/CustomAttributeClass.d.ts +5 -3
  203. package/lib/esm/Metadata/CustomAttributeClass.d.ts.map +1 -1
  204. package/lib/esm/Metadata/CustomAttributeClass.js +8 -6
  205. package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
  206. package/lib/esm/Metadata/EntityClass.d.ts +20 -3
  207. package/lib/esm/Metadata/EntityClass.d.ts.map +1 -1
  208. package/lib/esm/Metadata/EntityClass.js +33 -15
  209. package/lib/esm/Metadata/EntityClass.js.map +1 -1
  210. package/lib/esm/Metadata/Enumeration.d.ts +16 -9
  211. package/lib/esm/Metadata/Enumeration.d.ts.map +1 -1
  212. package/lib/esm/Metadata/Enumeration.js +21 -14
  213. package/lib/esm/Metadata/Enumeration.js.map +1 -1
  214. package/lib/esm/Metadata/Format.d.ts +32 -24
  215. package/lib/esm/Metadata/Format.d.ts.map +1 -1
  216. package/lib/esm/Metadata/Format.js +48 -28
  217. package/lib/esm/Metadata/Format.js.map +1 -1
  218. package/lib/esm/Metadata/InvertedUnit.d.ts +11 -7
  219. package/lib/esm/Metadata/InvertedUnit.d.ts.map +1 -1
  220. package/lib/esm/Metadata/InvertedUnit.js +17 -11
  221. package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
  222. package/lib/esm/Metadata/KindOfQuantity.d.ts +24 -15
  223. package/lib/esm/Metadata/KindOfQuantity.d.ts.map +1 -1
  224. package/lib/esm/Metadata/KindOfQuantity.js +55 -30
  225. package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
  226. package/lib/esm/Metadata/Mixin.d.ts +16 -3
  227. package/lib/esm/Metadata/Mixin.d.ts.map +1 -1
  228. package/lib/esm/Metadata/Mixin.js +21 -8
  229. package/lib/esm/Metadata/Mixin.js.map +1 -1
  230. package/lib/esm/Metadata/OverrideFormat.d.ts +12 -12
  231. package/lib/esm/Metadata/OverrideFormat.d.ts.map +1 -1
  232. package/lib/esm/Metadata/OverrideFormat.js +28 -20
  233. package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
  234. package/lib/esm/Metadata/Phenomenon.d.ts +10 -2
  235. package/lib/esm/Metadata/Phenomenon.d.ts.map +1 -1
  236. package/lib/esm/Metadata/Phenomenon.js +12 -4
  237. package/lib/esm/Metadata/Phenomenon.js.map +1 -1
  238. package/lib/esm/Metadata/Property.d.ts +46 -28
  239. package/lib/esm/Metadata/Property.d.ts.map +1 -1
  240. package/lib/esm/Metadata/Property.js +47 -23
  241. package/lib/esm/Metadata/Property.js.map +1 -1
  242. package/lib/esm/Metadata/PropertyCategory.d.ts +6 -3
  243. package/lib/esm/Metadata/PropertyCategory.d.ts.map +1 -1
  244. package/lib/esm/Metadata/PropertyCategory.js +13 -6
  245. package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
  246. package/lib/esm/Metadata/RelationshipClass.d.ts +48 -25
  247. package/lib/esm/Metadata/RelationshipClass.d.ts.map +1 -1
  248. package/lib/esm/Metadata/RelationshipClass.js +55 -35
  249. package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
  250. package/lib/esm/Metadata/Schema.d.ts +50 -28
  251. package/lib/esm/Metadata/Schema.d.ts.map +1 -1
  252. package/lib/esm/Metadata/Schema.js +65 -43
  253. package/lib/esm/Metadata/Schema.js.map +1 -1
  254. package/lib/esm/Metadata/SchemaItem.d.ts +10 -19
  255. package/lib/esm/Metadata/SchemaItem.d.ts.map +1 -1
  256. package/lib/esm/Metadata/SchemaItem.js +13 -21
  257. package/lib/esm/Metadata/SchemaItem.js.map +1 -1
  258. package/lib/esm/Metadata/Unit.d.ts +17 -21
  259. package/lib/esm/Metadata/Unit.d.ts.map +1 -1
  260. package/lib/esm/Metadata/Unit.js +21 -23
  261. package/lib/esm/Metadata/Unit.js.map +1 -1
  262. package/lib/esm/Metadata/UnitSystem.d.ts +3 -1
  263. package/lib/esm/Metadata/UnitSystem.d.ts.map +1 -1
  264. package/lib/esm/Metadata/UnitSystem.js +5 -3
  265. package/lib/esm/Metadata/UnitSystem.js.map +1 -1
  266. package/lib/esm/PropertyTypes.d.ts +11 -11
  267. package/lib/esm/PropertyTypes.d.ts.map +1 -1
  268. package/lib/esm/PropertyTypes.js +29 -21
  269. package/lib/esm/PropertyTypes.js.map +1 -1
  270. package/lib/esm/SchemaFormatsProvider.d.ts +39 -0
  271. package/lib/esm/SchemaFormatsProvider.d.ts.map +1 -0
  272. package/lib/esm/SchemaFormatsProvider.js +142 -0
  273. package/lib/esm/SchemaFormatsProvider.js.map +1 -0
  274. package/lib/esm/SchemaJsonLocater.d.ts +5 -5
  275. package/lib/esm/SchemaJsonLocater.js +4 -4
  276. package/lib/esm/SchemaJsonLocater.js.map +1 -1
  277. package/lib/esm/SchemaKey.d.ts +6 -6
  278. package/lib/esm/SchemaKey.d.ts.map +1 -1
  279. package/lib/esm/SchemaKey.js +10 -10
  280. package/lib/esm/SchemaKey.js.map +1 -1
  281. package/lib/esm/SchemaLoader.d.ts +3 -3
  282. package/lib/esm/SchemaLoader.js +5 -5
  283. package/lib/esm/SchemaLoader.js.map +1 -1
  284. package/lib/esm/SchemaPartVisitorDelegate.d.ts +2 -2
  285. package/lib/esm/SchemaPartVisitorDelegate.js +1 -1
  286. package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
  287. package/lib/esm/UnitConversion/Graph.js.map +1 -1
  288. package/lib/esm/UnitConversion/Parser.js.map +1 -1
  289. package/lib/esm/UnitConversion/UnitConversion.js.map +1 -1
  290. package/lib/esm/UnitConversion/UnitConverter.js.map +1 -1
  291. package/lib/esm/UnitConversion/UnitTree.js.map +1 -1
  292. package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
  293. package/lib/esm/Validation/SchemaWalker.js.map +1 -1
  294. package/lib/esm/ecschema-metadata.d.ts +2 -1
  295. package/lib/esm/ecschema-metadata.d.ts.map +1 -1
  296. package/lib/esm/ecschema-metadata.js +1 -0
  297. package/lib/esm/ecschema-metadata.js.map +1 -1
  298. package/lib/esm/utils/SchemaGraph.js +4 -4
  299. package/lib/esm/utils/SchemaGraph.js.map +1 -1
  300. package/package.json +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"XmlSerializationUtils.js","sourceRoot":"","sources":["../../../src/Deserialization/XmlSerializationUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { PrimitiveType, primitiveTypeToString } from \"../ECObjects\";\nimport { ECObjectsError, ECObjectsStatus } from \"../Exception\";\nimport { CustomAttribute } from \"../Metadata/CustomAttribute\";\nimport { CustomAttributeClass } from \"../Metadata/CustomAttributeClass\";\nimport { ArrayProperty, EnumerationProperty, PrimitiveOrEnumPropertyBase, PrimitiveProperty, Property, StructProperty } from \"../Metadata/Property\";\nimport { Schema } from \"../Metadata/Schema\";\n\n/**\n * Namespace holding utility functions for serializing EC types to the EC XML format.\n * @internal\n */\nexport namespace XmlSerializationUtils {\n /**\n * Serializes a CustomAttribute instance to the EC XML format.\n * @param fullName The full name of the CustomAttribute (qualified by schema name).\n * @param customAttribute The CustomAttribute instance to serialize.\n * @param schemaDoc The Xml Document object holding the serialized EC Schema.\n * @param schema The Schema object being serialized.\n * @beta\n */\n export async function writeCustomAttribute(fullName: string, customAttribute: CustomAttribute, schemaDoc: Document, schema: Schema): Promise<Element> {\n const caClass = await schema.lookupItem(fullName) as CustomAttributeClass;\n if (!caClass)\n throw new ECObjectsError(ECObjectsStatus.ClassNotFound, `The class '${fullName}' could not be found in the current schema context.`);\n\n const nameAndNamespace = await resolveCustomAttributeNamespace(fullName, schema);\n const caElement = schemaDoc.createElement(nameAndNamespace[0]);\n\n if (nameAndNamespace[1])\n caElement.setAttribute(\"xmlns\", nameAndNamespace[1]);\n\n for (const property of await caClass.getProperties())\n await writeInstanceProperty(property, customAttribute, caElement, schemaDoc);\n\n return caElement;\n }\n\n /**\n * Serializes an EC Property instance to the EC XML format.\n * @param propertyClass The Property metadata object.\n * @param instance The Property instance.\n * @param instanceElement The XML Element that will contain the serialized property instance.\n * @param schemaDoc The Xml Document object holding the serialized EC Schema.\n * @beta\n */\n export async function writeInstanceProperty(propertyClass: Property, instance: any, instanceElement: Element, schemaDoc: Document): Promise<void> {\n const propertyValue = instance[propertyClass.name];\n if (propertyValue === undefined)\n return;\n\n const propertyElement = schemaDoc.createElement(propertyClass.name);\n instanceElement.appendChild(propertyElement);\n\n if (propertyClass.isArray()) {\n await writeArrayProperty(propertyClass, propertyValue, propertyElement, schemaDoc);\n } else if (propertyClass.isPrimitive()) {\n await writePrimitiveProperty(propertyClass, propertyValue, propertyElement);\n } else if (propertyClass.isStruct()) {\n await writeStructProperty(propertyClass, propertyValue, propertyElement, schemaDoc);\n }\n }\n\n /**\n * Serializes an EC ArrayProperty instance to the EC XML format.\n * @param propertyClass The Property metadata object.\n * @param propertyValue An array holding the property values.\n * @param arrayElement The XML Element that will contain the serialized property instance.\n * @param schemaDoc The Xml Document object holding the serialized EC Schema.\n * @beta\n */\n export async function writeArrayProperty(propertyClass: ArrayProperty, propertyValue: any[], arrayElement: Element, schemaDoc: Document): Promise<void> {\n if (propertyClass.isPrimitive()) {\n const typeString = primitiveTypeToString(propertyClass.primitiveType);\n for (const value of propertyValue) {\n const entryElement = schemaDoc.createElement(typeString);\n await writePrimitiveProperty(propertyClass, value, entryElement);\n arrayElement.appendChild(entryElement);\n }\n }\n\n if (propertyClass.isStruct()) {\n for (const value of propertyValue) {\n const structElement = schemaDoc.createElement(propertyClass.structClass.name);\n arrayElement.appendChild(structElement);\n await writeStructProperty(propertyClass, value, structElement, schemaDoc);\n }\n }\n }\n\n /**\n * Serializes an EC StructProperty instance to the EC XML format.\n * @param propertyClass The Property metadata object.\n * @param propertyValue The struct object holding the property values.\n * @param structElement The XML Element that will contain the serialized property instance.\n * @param schemaDoc The Xml Document object holding the serialized EC Schema.\n * @beta\n */\n export async function writeStructProperty(propertyClass: StructProperty, propertyValue: any, structElement: Element, schemaDoc: Document): Promise<void> {\n const structClass = propertyClass.structClass;\n for (const propertyMetadata of structClass.getPropertiesSync(true))\n await writeInstanceProperty(propertyMetadata, propertyValue, structElement, schemaDoc);\n }\n\n /**\n * Serializes an EC PrimitiveProperty instance to the EC XML format.\n * @param propertyClass The Property metadata object.\n * @param propertyValue The struct object holding the property values.\n * @param propertyElement The XML Element that will contain the serialized property instance.\n * @beta\n */\n export async function writePrimitiveProperty(propertyClass: PrimitiveOrEnumPropertyBase, propertyValue: any, propertyElement: Element): Promise<void> {\n let primitiveType: PrimitiveType;\n if (propertyClass.isEnumeration()) {\n const enumeration = await (propertyClass as EnumerationProperty).enumeration;\n if (!enumeration)\n throw new ECObjectsError(ECObjectsStatus.ClassNotFound, `The enumeration on property class '${propertyClass.fullName}' could not be found in the current schema context.`);\n\n if (enumeration.type === undefined)\n throw new ECObjectsError(ECObjectsStatus.InvalidType, `The enumeration on property class '${propertyClass.fullName}' has an invalid primitive type.`);\n\n primitiveType = enumeration.type;\n } else\n primitiveType = (propertyClass as PrimitiveProperty).primitiveType;\n\n switch (primitiveType) {\n case PrimitiveType.String:\n propertyElement.textContent = propertyValue;\n return;\n case PrimitiveType.Boolean:\n propertyElement.textContent = (propertyValue as boolean) ? \"True\" : \"False\";\n return;\n case PrimitiveType.Integer:\n case PrimitiveType.Double:\n case PrimitiveType.Long:\n propertyElement.textContent = propertyValue.toString();\n return;\n case PrimitiveType.DateTime:\n propertyElement.textContent = new Date(propertyValue).getTime().toString();\n return;\n case PrimitiveType.Point2d:\n propertyElement.textContent = `${propertyValue.x},${propertyValue.y}`;\n return;\n case PrimitiveType.Point3d:\n propertyElement.textContent = `${propertyValue.x},${propertyValue.y},${propertyValue.z}`;\n return;\n case PrimitiveType.IGeometry:\n case PrimitiveType.Binary:\n propertyElement.textContent = propertyValue;\n return;\n default:\n throw new ECObjectsError(ECObjectsStatus.InvalidPrimitiveType, `The property '${propertyClass.fullName}' has an invalid primitive type.`);\n }\n }\n\n export function createXmlTypedName(currentSchema: Schema, typeSchema: Schema, typeName: string) {\n if (currentSchema.schemaKey.matches(typeSchema.schemaKey))\n return typeName;\n\n // Alias is required in Spec. It could be undefined (technically), so\n // throw until fixed.\n if (typeSchema.alias === undefined)\n throw new ECObjectsError(ECObjectsStatus.InvalidSchemaAlias, `The schema '${typeSchema.name}' has an invalid alias.`);\n\n return `${typeSchema.alias}:${typeName}`;\n }\n\n async function resolveCustomAttributeNamespace(caName: string, schema: Schema): Promise<[string, string | undefined]> {\n const nameParts = caName.split(\".\");\n if (nameParts.length === 1)\n return [caName, undefined];\n\n const attributeSchema = nameParts[0].toUpperCase() === schema.name.toUpperCase() ? schema : await schema.getReference(nameParts[0]);\n if (!attributeSchema)\n throw new ECObjectsError(ECObjectsStatus.UnableToLocateSchema, `Unable to resolve the namespace for CustomAttribute '${caName}' because the referenced schema '${nameParts[0]}' could not be located.`);\n\n return [nameParts[1], `${nameParts[0]}.${attributeSchema.schemaKey.version.toString()}`];\n }\n}\n"]}
1
+ {"version":3,"file":"XmlSerializationUtils.js","sourceRoot":"","sources":["../../../src/Deserialization/XmlSerializationUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { PrimitiveType, primitiveTypeToString } from \"../ECObjects\";\r\nimport { ECSchemaError, ECSchemaStatus } from \"../Exception\";\r\nimport { CustomAttribute } from \"../Metadata/CustomAttribute\";\r\nimport { CustomAttributeClass } from \"../Metadata/CustomAttributeClass\";\r\nimport { ArrayProperty, EnumerationProperty, PrimitiveOrEnumPropertyBase, PrimitiveProperty, Property, StructProperty } from \"../Metadata/Property\";\r\nimport { Schema } from \"../Metadata/Schema\";\r\n\r\n/**\r\n * Namespace holding utility functions for serializing EC types to the EC XML format.\r\n * @internal\r\n */\r\nexport namespace XmlSerializationUtils {\r\n /**\r\n * Serializes a CustomAttribute instance to the EC XML format.\r\n * @param fullName The full name of the CustomAttribute (qualified by schema name).\r\n * @param customAttribute The CustomAttribute instance to serialize.\r\n * @param schemaDoc The Xml Document object holding the serialized EC Schema.\r\n * @param schema The Schema object being serialized.\r\n */\r\n export async function writeCustomAttribute(fullName: string, customAttribute: CustomAttribute, schemaDoc: Document, schema: Schema): Promise<Element> {\r\n const caClass = await schema.lookupItem(fullName) as CustomAttributeClass;\r\n if (!caClass)\r\n throw new ECSchemaError(ECSchemaStatus.ClassNotFound, `The class '${fullName}' could not be found in the current schema context.`);\r\n\r\n const nameAndNamespace = await resolveCustomAttributeNamespace(fullName, schema);\r\n const caElement = schemaDoc.createElement(nameAndNamespace[0]);\r\n\r\n if (nameAndNamespace[1])\r\n caElement.setAttribute(\"xmlns\", nameAndNamespace[1]);\r\n\r\n for (const property of await caClass.getProperties())\r\n await writeInstanceProperty(property, customAttribute, caElement, schemaDoc);\r\n\r\n return caElement;\r\n }\r\n\r\n /**\r\n * Serializes an EC Property instance to the EC XML format.\r\n * @param propertyClass The Property metadata object.\r\n * @param instance The Property instance.\r\n * @param instanceElement The XML Element that will contain the serialized property instance.\r\n * @param schemaDoc The Xml Document object holding the serialized EC Schema.\r\n */\r\n export async function writeInstanceProperty(propertyClass: Property, instance: any, instanceElement: Element, schemaDoc: Document): Promise<void> {\r\n const propertyValue = instance[propertyClass.name];\r\n if (propertyValue === undefined)\r\n return;\r\n\r\n const propertyElement = schemaDoc.createElement(propertyClass.name);\r\n instanceElement.appendChild(propertyElement);\r\n\r\n if (propertyClass.isArray()) {\r\n await writeArrayProperty(propertyClass, propertyValue, propertyElement, schemaDoc);\r\n } else if (propertyClass.isPrimitive()) {\r\n await writePrimitiveProperty(propertyClass, propertyValue, propertyElement);\r\n } else if (propertyClass.isStruct()) {\r\n await writeStructProperty(propertyClass, propertyValue, propertyElement, schemaDoc);\r\n }\r\n }\r\n\r\n /**\r\n * Serializes an EC ArrayProperty instance to the EC XML format.\r\n * @param propertyClass The Property metadata object.\r\n * @param propertyValue An array holding the property values.\r\n * @param arrayElement The XML Element that will contain the serialized property instance.\r\n * @param schemaDoc The Xml Document object holding the serialized EC Schema.\r\n */\r\n export async function writeArrayProperty(propertyClass: ArrayProperty, propertyValue: any[], arrayElement: Element, schemaDoc: Document): Promise<void> {\r\n if (propertyClass.isPrimitive()) {\r\n const typeString = primitiveTypeToString(propertyClass.primitiveType);\r\n for (const value of propertyValue) {\r\n const entryElement = schemaDoc.createElement(typeString);\r\n await writePrimitiveProperty(propertyClass, value, entryElement);\r\n arrayElement.appendChild(entryElement);\r\n }\r\n }\r\n\r\n if (propertyClass.isStruct()) {\r\n for (const value of propertyValue) {\r\n const structElement = schemaDoc.createElement(propertyClass.structClass.name);\r\n arrayElement.appendChild(structElement);\r\n await writeStructProperty(propertyClass, value, structElement, schemaDoc);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Serializes an EC StructProperty instance to the EC XML format.\r\n * @param propertyClass The Property metadata object.\r\n * @param propertyValue The struct object holding the property values.\r\n * @param structElement The XML Element that will contain the serialized property instance.\r\n * @param schemaDoc The Xml Document object holding the serialized EC Schema.\r\n */\r\n export async function writeStructProperty(propertyClass: StructProperty, propertyValue: any, structElement: Element, schemaDoc: Document): Promise<void> {\r\n const structClass = propertyClass.structClass;\r\n for (const propertyMetadata of structClass.getPropertiesSync(true))\r\n await writeInstanceProperty(propertyMetadata, propertyValue, structElement, schemaDoc);\r\n }\r\n\r\n /**\r\n * Serializes an EC PrimitiveProperty instance to the EC XML format.\r\n * @param propertyClass The Property metadata object.\r\n * @param propertyValue The struct object holding the property values.\r\n * @param propertyElement The XML Element that will contain the serialized property instance.\r\n */\r\n export async function writePrimitiveProperty(propertyClass: PrimitiveOrEnumPropertyBase, propertyValue: any, propertyElement: Element): Promise<void> {\r\n let primitiveType: PrimitiveType;\r\n if (propertyClass.isEnumeration()) {\r\n const enumeration = await (propertyClass as EnumerationProperty).enumeration;\r\n if (!enumeration)\r\n throw new ECSchemaError(ECSchemaStatus.ClassNotFound, `The enumeration on property class '${propertyClass.fullName}' could not be found in the current schema context.`);\r\n\r\n if (enumeration.type === undefined)\r\n throw new ECSchemaError(ECSchemaStatus.InvalidType, `The enumeration on property class '${propertyClass.fullName}' has an invalid primitive type.`);\r\n\r\n primitiveType = enumeration.type;\r\n } else\r\n primitiveType = (propertyClass as PrimitiveProperty).primitiveType;\r\n\r\n switch (primitiveType) {\r\n case PrimitiveType.String:\r\n propertyElement.textContent = propertyValue;\r\n return;\r\n case PrimitiveType.Boolean:\r\n propertyElement.textContent = (propertyValue as boolean) ? \"True\" : \"False\";\r\n return;\r\n case PrimitiveType.Integer:\r\n case PrimitiveType.Double:\r\n case PrimitiveType.Long:\r\n propertyElement.textContent = propertyValue.toString();\r\n return;\r\n case PrimitiveType.DateTime:\r\n propertyElement.textContent = new Date(propertyValue).getTime().toString();\r\n return;\r\n case PrimitiveType.Point2d:\r\n propertyElement.textContent = `${propertyValue.x},${propertyValue.y}`;\r\n return;\r\n case PrimitiveType.Point3d:\r\n propertyElement.textContent = `${propertyValue.x},${propertyValue.y},${propertyValue.z}`;\r\n return;\r\n case PrimitiveType.IGeometry:\r\n case PrimitiveType.Binary:\r\n propertyElement.textContent = propertyValue;\r\n return;\r\n default:\r\n throw new ECSchemaError(ECSchemaStatus.InvalidPrimitiveType, `The property '${propertyClass.fullName}' has an invalid primitive type.`);\r\n }\r\n }\r\n\r\n export function createXmlTypedName(currentSchema: Schema, typeSchema: Schema, typeName: string) {\r\n if (currentSchema.schemaKey.matches(typeSchema.schemaKey))\r\n return typeName;\r\n\r\n // Alias is required in Spec. It could be undefined (technically), so\r\n // throw until fixed.\r\n if (typeSchema.alias === undefined)\r\n throw new ECSchemaError(ECSchemaStatus.InvalidSchemaAlias, `The schema '${typeSchema.name}' has an invalid alias.`);\r\n\r\n return `${typeSchema.alias}:${typeName}`;\r\n }\r\n\r\n async function resolveCustomAttributeNamespace(caName: string, schema: Schema): Promise<[string, string | undefined]> {\r\n const nameParts = caName.split(\".\");\r\n if (nameParts.length === 1)\r\n return [caName, undefined];\r\n\r\n const attributeSchema = nameParts[0].toUpperCase() === schema.name.toUpperCase() ? schema : await schema.getReference(nameParts[0]);\r\n if (!attributeSchema)\r\n throw new ECSchemaError(ECSchemaStatus.UnableToLocateSchema, `Unable to resolve the namespace for CustomAttribute '${caName}' because the referenced schema '${nameParts[0]}' could not be located.`);\r\n\r\n return [nameParts[1], `${nameParts[0]}.${attributeSchema.schemaKey.version.toString()}`];\r\n }\r\n}\r\n"]}
@@ -14,7 +14,7 @@
14
14
  export declare class ECName {
15
15
  private _name;
16
16
  /** Construct a new ECName from a valid EC name.
17
- * throws ECObjectsError if `name` does not meet the criteria for a valid EC name.
17
+ * throws ECSchemaError if `name` does not meet the criteria for a valid EC name.
18
18
  */
19
19
  constructor(name: string);
20
20
  /** Returns true if a string meets the criteria of a valid EC name. */
@@ -22,7 +22,7 @@ export declare class ECName {
22
22
  /** The underlying name as a string. */
23
23
  get name(): string;
24
24
  /** Create an ECName from an arbitrary string, encoding any special characters as "__x####__" where "####" is the UTF-16 character code.
25
- * @throws ECObjectsError if `input` is an empty string.
25
+ * @throws ECSchemaError if `input` is an empty string.
26
26
  */
27
27
  static encode(input: string): ECName;
28
28
  /** Decode this ECName, replacing encoded special characters with the characters they encode. */
package/lib/cjs/ECName.js CHANGED
@@ -34,11 +34,11 @@ function isValidAlphaNumericCharacter(c) {
34
34
  class ECName {
35
35
  _name;
36
36
  /** Construct a new ECName from a valid EC name.
37
- * throws ECObjectsError if `name` does not meet the criteria for a valid EC name.
37
+ * throws ECSchemaError if `name` does not meet the criteria for a valid EC name.
38
38
  */
39
39
  constructor(name) {
40
40
  if (!ECName.validate(name))
41
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidECName);
41
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECName);
42
42
  this._name = name;
43
43
  }
44
44
  /** Returns true if a string meets the criteria of a valid EC name. */
@@ -50,11 +50,11 @@ class ECName {
50
50
  return this._name;
51
51
  }
52
52
  /** Create an ECName from an arbitrary string, encoding any special characters as "__x####__" where "####" is the UTF-16 character code.
53
- * @throws ECObjectsError if `input` is an empty string.
53
+ * @throws ECSchemaError if `input` is an empty string.
54
54
  */
55
55
  static encode(input) {
56
56
  if (0 === input.length)
57
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidECName);
57
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECName);
58
58
  if (ECName.validate(input)) {
59
59
  // It's already a valid EC name.
60
60
  return new ECName(input);
@@ -1 +1 @@
1
- {"version":3,"file":"ECName.js","sourceRoot":"","sources":["../../src/ECName.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Metadata\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { ECObjectsError, ECObjectsStatus } from \"./Exception\";\n\nconst validECNameRegex = /^([a-zA-Z_]+[a-zA-Z0-9_]*)$/i;\nconst ecNameReplacerRegex = /__x([0-9a-fA-F]{4})__/g;\nconst leadingDigits = [\"0000\", \"000\", \"00\", \"0\", \"\"];\n\nfunction isDigit(character: string): boolean {\n assert(1 === character.length);\n return character >= \"0\" && character <= \"9\";\n}\n\nfunction isValidAlphaNumericCharacter(c: string): boolean {\n assert(1 === c.length);\n return (((c >= \"0\" && c <= \"9\") || (c >= \"A\" && c <= \"Z\") || (c >= \"a\" && c <= \"z\") || c === \"_\"));\n}\n\n/** The name of an item in a [[Schema]], encoded to meet restrictions on the characters usable in such names.\n * An ECName meets the following criteria:\n * - Contains at least one character.\n * - Does not begin with a digit.\n * - Consists entirely of characters in the ASCII ranges A-Z, a-z, and 0-9; and the underscore (\"_\") character.\n *\n * All characters not meeting the above criteria are encoded as \"__x####__\" where \"####\" is the UTF-16 character code.\n * Such names are often automatically generated from the item's display label, which is unrestricted in the characters it may contain.\n * @public\n */\nexport class ECName {\n private _name: string;\n\n /** Construct a new ECName from a valid EC name.\n * throws ECObjectsError if `name` does not meet the criteria for a valid EC name.\n */\n constructor(name: string) {\n if (!ECName.validate(name))\n throw new ECObjectsError(ECObjectsStatus.InvalidECName);\n\n this._name = name;\n }\n\n /** Returns true if a string meets the criteria of a valid EC name. */\n public static validate(name: string): boolean {\n return validECNameRegex.test(name);\n }\n\n /** The underlying name as a string. */\n public get name(): string {\n return this._name;\n }\n\n /** Create an ECName from an arbitrary string, encoding any special characters as \"__x####__\" where \"####\" is the UTF-16 character code.\n * @throws ECObjectsError if `input` is an empty string.\n */\n public static encode(input: string): ECName {\n if (0 === input.length)\n throw new ECObjectsError(ECObjectsStatus.InvalidECName);\n\n if (ECName.validate(input)) {\n // It's already a valid EC name.\n return new ECName(input);\n }\n\n let output = \"\";\n\n function appendEncodedCharacter(index: number): void {\n const hex = input.charCodeAt(index).toString(16).toUpperCase();\n assert(hex.length > 0 && hex.length < 5);\n output += `__x${leadingDigits[hex.length]}${hex}__`;\n }\n\n // First character cannot be a digit.\n const firstCharIsDigit = isDigit(input[0]);\n if (firstCharIsDigit)\n appendEncodedCharacter(0);\n\n for (let i = firstCharIsDigit ? 1 : 0; i < input.length; i++) {\n const char = input[i];\n if (!isValidAlphaNumericCharacter(char))\n appendEncodedCharacter(i);\n else\n output += char;\n }\n\n return new ECName(output);\n }\n\n /** Decode this ECName, replacing encoded special characters with the characters they encode. */\n public decode(): string {\n return this.name.replace(ecNameReplacerRegex, (_match, hex) => String.fromCharCode(Number.parseInt(hex, 16)));\n }\n}\n"]}
1
+ {"version":3,"file":"ECName.js","sourceRoot":"","sources":["../../src/ECName.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ECSchemaError, ECSchemaStatus } from \"./Exception\";\r\n\r\nconst validECNameRegex = /^([a-zA-Z_]+[a-zA-Z0-9_]*)$/i;\r\nconst ecNameReplacerRegex = /__x([0-9a-fA-F]{4})__/g;\r\nconst leadingDigits = [\"0000\", \"000\", \"00\", \"0\", \"\"];\r\n\r\nfunction isDigit(character: string): boolean {\r\n assert(1 === character.length);\r\n return character >= \"0\" && character <= \"9\";\r\n}\r\n\r\nfunction isValidAlphaNumericCharacter(c: string): boolean {\r\n assert(1 === c.length);\r\n return (((c >= \"0\" && c <= \"9\") || (c >= \"A\" && c <= \"Z\") || (c >= \"a\" && c <= \"z\") || c === \"_\"));\r\n}\r\n\r\n/** The name of an item in a [[Schema]], encoded to meet restrictions on the characters usable in such names.\r\n * An ECName meets the following criteria:\r\n * - Contains at least one character.\r\n * - Does not begin with a digit.\r\n * - Consists entirely of characters in the ASCII ranges A-Z, a-z, and 0-9; and the underscore (\"_\") character.\r\n *\r\n * All characters not meeting the above criteria are encoded as \"__x####__\" where \"####\" is the UTF-16 character code.\r\n * Such names are often automatically generated from the item's display label, which is unrestricted in the characters it may contain.\r\n * @public\r\n */\r\nexport class ECName {\r\n private _name: string;\r\n\r\n /** Construct a new ECName from a valid EC name.\r\n * throws ECSchemaError if `name` does not meet the criteria for a valid EC name.\r\n */\r\n constructor(name: string) {\r\n if (!ECName.validate(name))\r\n throw new ECSchemaError(ECSchemaStatus.InvalidECName);\r\n\r\n this._name = name;\r\n }\r\n\r\n /** Returns true if a string meets the criteria of a valid EC name. */\r\n public static validate(name: string): boolean {\r\n return validECNameRegex.test(name);\r\n }\r\n\r\n /** The underlying name as a string. */\r\n public get name(): string {\r\n return this._name;\r\n }\r\n\r\n /** Create an ECName from an arbitrary string, encoding any special characters as \"__x####__\" where \"####\" is the UTF-16 character code.\r\n * @throws ECSchemaError if `input` is an empty string.\r\n */\r\n public static encode(input: string): ECName {\r\n if (0 === input.length)\r\n throw new ECSchemaError(ECSchemaStatus.InvalidECName);\r\n\r\n if (ECName.validate(input)) {\r\n // It's already a valid EC name.\r\n return new ECName(input);\r\n }\r\n\r\n let output = \"\";\r\n\r\n function appendEncodedCharacter(index: number): void {\r\n const hex = input.charCodeAt(index).toString(16).toUpperCase();\r\n assert(hex.length > 0 && hex.length < 5);\r\n output += `__x${leadingDigits[hex.length]}${hex}__`;\r\n }\r\n\r\n // First character cannot be a digit.\r\n const firstCharIsDigit = isDigit(input[0]);\r\n if (firstCharIsDigit)\r\n appendEncodedCharacter(0);\r\n\r\n for (let i = firstCharIsDigit ? 1 : 0; i < input.length; i++) {\r\n const char = input[i];\r\n if (!isValidAlphaNumericCharacter(char))\r\n appendEncodedCharacter(i);\r\n else\r\n output += char;\r\n }\r\n\r\n return new ECName(output);\r\n }\r\n\r\n /** Decode this ECName, replacing encoded special characters with the characters they encode. */\r\n public decode(): string {\r\n return this.name.replace(ecNameReplacerRegex, (_match, hex) => String.fromCharCode(Number.parseInt(hex, 16)));\r\n }\r\n}\r\n"]}
@@ -2,7 +2,11 @@
2
2
  * @module Metadata
3
3
  */
4
4
  export { PropertyType } from "./PropertyTypes";
5
- /** @beta */
5
+ /**
6
+ * Identifies a class as abstract or sealed
7
+ *
8
+ * @public @preview
9
+ */
6
10
  export declare enum ECClassModifier {
7
11
  None = 0,
8
12
  Abstract = 1,
@@ -12,7 +16,7 @@ export declare enum ECClassModifier {
12
16
  * An enumeration that has all the schema item type names as values
13
17
  *
14
18
  * @enum {string}
15
- * @beta
19
+ * @public @preview
16
20
  */
17
21
  export declare enum SchemaItemType {
18
22
  EntityClass = "EntityClass",
@@ -32,7 +36,7 @@ export declare enum SchemaItemType {
32
36
  }
33
37
  /**
34
38
  * Additional Schema Item Types which define classes of item types
35
- * @beta
39
+ * @public @preview
36
40
  */
37
41
  export declare enum AbstractSchemaItemType {
38
42
  Class = "Class",
@@ -40,12 +44,12 @@ export declare enum AbstractSchemaItemType {
40
44
  }
41
45
  /**
42
46
  * Defines types of items that may be provided to identify supported items
43
- * @beta
47
+ * @public @preview
44
48
  */
45
49
  export type SupportedSchemaItemType = SchemaItemType | AbstractSchemaItemType;
46
50
  /**
47
51
  * Primitive data types for ECProperties.
48
- * @beta
52
+ * @public @preview
49
53
  */
50
54
  export declare enum PrimitiveType {
51
55
  Uninitialized = 0,
@@ -62,7 +66,7 @@ export declare enum PrimitiveType {
62
66
  }
63
67
  /**
64
68
  * Defines the valid CustomAttribute container types.
65
- * @beta
69
+ * @public @preview
66
70
  */
67
71
  export declare enum CustomAttributeContainerType {
68
72
  Schema = 1,
@@ -84,7 +88,7 @@ export declare enum CustomAttributeContainerType {
84
88
  }
85
89
  /**
86
90
  * Defines what sort of match should be used when locating a schema.
87
- * @beta
91
+ * @public @preview
88
92
  */
89
93
  export declare enum SchemaMatchType {
90
94
  Identical = 0,
@@ -95,21 +99,29 @@ export declare enum SchemaMatchType {
95
99
  }
96
100
  /**
97
101
  * Identifer for an ECRelationshipConstraint. Used to determine the side of the relationship the constraint is representing.
98
- * @beta
102
+ * @public @preview
99
103
  */
100
104
  export declare enum RelationshipEnd {
101
105
  Source = 0,
102
106
  Target = 1
103
107
  }
104
- /** @beta */
108
+ /**
109
+ * Defines the how the lifetime of the source and target are related.
110
+ *
111
+ * @public @preview */
105
112
  export declare enum StrengthType {
106
113
  Referencing = 0,
107
114
  Holding = 1,
108
115
  Embedding = 2
109
116
  }
110
- /** @beta */
117
+ /**
118
+ * Defines the which side of the relationship is the starting point of the relationship. This impacts how relationship strength is applied.
119
+ *
120
+ * @public @preview */
111
121
  export declare enum StrengthDirection {
122
+ /** The source is the starting point of the relationship. */
112
123
  Forward = 1,
124
+ /** The target is the starting point of the relationship. */
113
125
  Backward = 2
114
126
  }
115
127
  /**
@@ -168,7 +180,7 @@ export declare function parseRelationshipEnd(end: string): RelationshipEnd | und
168
180
  export declare function relationshipEndToString(end: RelationshipEnd): string;
169
181
  /**
170
182
  * Takes a string representing a StrengthType, will parse it and return the corresponding StrengthType.
171
- * @throws ECObjectsStatus.InvalidStrength if the provided string that is not valid
183
+ * @throws ECSchemaStatus.InvalidStrength if the provided string that is not valid
172
184
  * @param strength
173
185
  * @beta
174
186
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ECObjects.d.ts","sourceRoot":"","sources":["../../src/ECObjects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ECObjects.d.ts","sourceRoot":"","sources":["../../src/ECObjects.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
6
  /** @packageDocumentation
7
7
  * @module Metadata
8
8
  */
@@ -32,18 +32,25 @@ Object.defineProperty(exports, "PropertyType", { enumerable: true, get: function
32
32
  if (!Symbol.asyncIterator) {
33
33
  Symbol.asyncIterator = Symbol.for("Symbol.asyncIterator");
34
34
  }
35
- /** @beta */
35
+ /**
36
+ * Identifies a class as abstract or sealed
37
+ *
38
+ * @public @preview
39
+ */
36
40
  var ECClassModifier;
37
41
  (function (ECClassModifier) {
42
+ /* normal, instantiable class, can be subclassed */
38
43
  ECClassModifier[ECClassModifier["None"] = 0] = "None";
44
+ /* abstract class, cannot be instantiated, can be subclassed */
39
45
  ECClassModifier[ECClassModifier["Abstract"] = 1] = "Abstract";
46
+ /* sealed class, instantiable class, cannot be subclassed */
40
47
  ECClassModifier[ECClassModifier["Sealed"] = 2] = "Sealed";
41
48
  })(ECClassModifier || (exports.ECClassModifier = ECClassModifier = {}));
42
49
  /**
43
50
  * An enumeration that has all the schema item type names as values
44
51
  *
45
52
  * @enum {string}
46
- * @beta
53
+ * @public @preview
47
54
  */
48
55
  var SchemaItemType;
49
56
  (function (SchemaItemType) {
@@ -64,16 +71,18 @@ var SchemaItemType;
64
71
  })(SchemaItemType || (exports.SchemaItemType = SchemaItemType = {}));
65
72
  /**
66
73
  * Additional Schema Item Types which define classes of item types
67
- * @beta
74
+ * @public @preview
68
75
  */
69
76
  var AbstractSchemaItemType;
70
77
  (function (AbstractSchemaItemType) {
78
+ /* Item is EntityClass, Mixin, StructClass, CustomAttributeClass, or RelationshipClass */
71
79
  AbstractSchemaItemType["Class"] = "Class";
80
+ /* Any item type including the Class types */
72
81
  AbstractSchemaItemType["SchemaItem"] = "SchemaItem";
73
82
  })(AbstractSchemaItemType || (exports.AbstractSchemaItemType = AbstractSchemaItemType = {}));
74
83
  /**
75
84
  * Primitive data types for ECProperties.
76
- * @beta
85
+ * @public @preview
77
86
  */
78
87
  var PrimitiveType;
79
88
  (function (PrimitiveType) {
@@ -91,7 +100,7 @@ var PrimitiveType;
91
100
  })(PrimitiveType || (exports.PrimitiveType = PrimitiveType = {}));
92
101
  /**
93
102
  * Defines the valid CustomAttribute container types.
94
- * @beta
103
+ * @public @preview
95
104
  */
96
105
  var CustomAttributeContainerType;
97
106
  (function (CustomAttributeContainerType) {
@@ -114,14 +123,14 @@ var CustomAttributeContainerType;
114
123
  })(CustomAttributeContainerType || (exports.CustomAttributeContainerType = CustomAttributeContainerType = {}));
115
124
  /**
116
125
  * Defines what sort of match should be used when locating a schema.
117
- * @beta
126
+ * @public @preview
118
127
  */
119
128
  var SchemaMatchType;
120
129
  (function (SchemaMatchType) {
121
130
  /*
122
- * Find exact VersionRead, VersionWrite, VersionMinor match as well as Data. NOTE data is not yet matched
123
- * @deprecated in 4.10 Use Exact instead.
124
- */
131
+ * Find exact VersionRead, VersionWrite, VersionMinor match as well as Data. NOTE data is not yet matched
132
+ * @deprecated in 4.10 Use Exact instead.
133
+ */
125
134
  SchemaMatchType[SchemaMatchType["Identical"] = 0] = "Identical";
126
135
  /* Find exact VersionRead, VersionWrite, VersionMinor match. */
127
136
  SchemaMatchType[SchemaMatchType["Exact"] = 1] = "Exact";
@@ -134,24 +143,32 @@ var SchemaMatchType;
134
143
  })(SchemaMatchType || (exports.SchemaMatchType = SchemaMatchType = {}));
135
144
  /**
136
145
  * Identifer for an ECRelationshipConstraint. Used to determine the side of the relationship the constraint is representing.
137
- * @beta
146
+ * @public @preview
138
147
  */
139
148
  var RelationshipEnd;
140
149
  (function (RelationshipEnd) {
141
150
  RelationshipEnd[RelationshipEnd["Source"] = 0] = "Source";
142
151
  RelationshipEnd[RelationshipEnd["Target"] = 1] = "Target";
143
152
  })(RelationshipEnd || (exports.RelationshipEnd = RelationshipEnd = {}));
144
- /** @beta */
153
+ /**
154
+ * Defines the how the lifetime of the source and target are related.
155
+ *
156
+ * @public @preview */
145
157
  var StrengthType;
146
158
  (function (StrengthType) {
147
159
  StrengthType[StrengthType["Referencing"] = 0] = "Referencing";
148
160
  StrengthType[StrengthType["Holding"] = 1] = "Holding";
149
161
  StrengthType[StrengthType["Embedding"] = 2] = "Embedding";
150
162
  })(StrengthType || (exports.StrengthType = StrengthType = {}));
151
- /** @beta */
163
+ /**
164
+ * Defines the which side of the relationship is the starting point of the relationship. This impacts how relationship strength is applied.
165
+ *
166
+ * @public @preview */
152
167
  var StrengthDirection;
153
168
  (function (StrengthDirection) {
169
+ /** The source is the starting point of the relationship. */
154
170
  StrengthDirection[StrengthDirection["Forward"] = 1] = "Forward";
171
+ /** The target is the starting point of the relationship. */
155
172
  StrengthDirection[StrengthDirection["Backward"] = 2] = "Backward";
156
173
  })(StrengthDirection || (exports.StrengthDirection = StrengthDirection = {}));
157
174
  // Helper methods for going to/from string for the above Enumerations.
@@ -178,7 +195,8 @@ function classModifierToString(modifier) {
178
195
  case ECClassModifier.Abstract: return "Abstract";
179
196
  case ECClassModifier.None: return "None";
180
197
  case ECClassModifier.Sealed: return "Sealed";
181
- default: throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidModifier, "An invalid ECClassModifier has been provided.");
198
+ default:
199
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidModifier, "An invalid ECClassModifier has been provided.");
182
200
  }
183
201
  }
184
202
  /**
@@ -233,7 +251,8 @@ function schemaItemTypeToXmlString(value) {
233
251
  case SchemaItemType.Phenomenon: return "Phenomenon";
234
252
  case SchemaItemType.UnitSystem: return "UnitSystem";
235
253
  case SchemaItemType.Format: return "Format";
236
- default: throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidSchemaItemType, "An invalid SchemaItemType has been provided.");
254
+ default:
255
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidSchemaItemType, "An invalid SchemaItemType has been provided.");
237
256
  }
238
257
  }
239
258
  /**
@@ -271,7 +290,8 @@ function primitiveTypeToString(type) {
271
290
  case PrimitiveType.Point2d: return "point2d";
272
291
  case PrimitiveType.Point3d: return "point3d";
273
292
  case PrimitiveType.String: return "string";
274
- default: throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidPrimitiveType, "An invalid PrimitiveType has been provided.");
293
+ default:
294
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidPrimitiveType, "An invalid PrimitiveType has been provided.");
275
295
  }
276
296
  }
277
297
  /**
@@ -337,7 +357,7 @@ function parseCustomAttributeContainerType(type) {
337
357
  containerType = containerType | CustomAttributeContainerType.Any;
338
358
  break;
339
359
  default:
340
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidContainerType, `${typeToken} is not a valid CustomAttributeContainerType value.`);
360
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidContainerType, `${typeToken} is not a valid CustomAttributeContainerType value.`);
341
361
  }
342
362
  });
343
363
  return containerType;
@@ -350,7 +370,7 @@ function parseCustomAttributeContainerType(type) {
350
370
  */
351
371
  function containerTypeToString(type) {
352
372
  const testContainerTypeValue = (compareType, otherType) => {
353
- return (compareType === (compareType & otherType));
373
+ return compareType === (compareType & otherType);
354
374
  };
355
375
  if (testContainerTypeValue(CustomAttributeContainerType.Any, type))
356
376
  return Constants_1.ECStringConstants.CONTAINERTYPE_ANY;
@@ -412,12 +432,13 @@ function relationshipEndToString(end) {
412
432
  switch (end) {
413
433
  case RelationshipEnd.Source: return Constants_1.ECStringConstants.RELATIONSHIP_END_SOURCE;
414
434
  case RelationshipEnd.Target: return Constants_1.ECStringConstants.RELATIONSHIP_END_TARGET;
415
- default: throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidRelationshipEnd, `An invalid RelationshipEnd has been provided.`);
435
+ default:
436
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidRelationshipEnd, `An invalid RelationshipEnd has been provided.`);
416
437
  }
417
438
  }
418
439
  /**
419
440
  * Takes a string representing a StrengthType, will parse it and return the corresponding StrengthType.
420
- * @throws ECObjectsStatus.InvalidStrength if the provided string that is not valid
441
+ * @throws ECSchemaStatus.InvalidStrength if the provided string that is not valid
421
442
  * @param strength
422
443
  * @beta
423
444
  */
@@ -435,7 +456,8 @@ function strengthToString(strength) {
435
456
  case StrengthType.Embedding: return "Embedding";
436
457
  case StrengthType.Holding: return "Holding";
437
458
  case StrengthType.Referencing: return "Referencing";
438
- default: throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidStrength, `An invalid Strength has been provided.`);
459
+ default:
460
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidStrength, `An invalid Strength has been provided.`);
439
461
  }
440
462
  }
441
463
  /** @beta */
@@ -451,7 +473,8 @@ function strengthDirectionToString(direction) {
451
473
  switch (direction) {
452
474
  case StrengthDirection.Forward: return "Forward";
453
475
  case StrengthDirection.Backward: return "Backward";
454
- default: throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidStrengthDirection, `An invalid StrengthDirection has been provided.`);
476
+ default:
477
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidStrengthDirection, `An invalid StrengthDirection has been provided.`);
455
478
  }
456
479
  }
457
480
  /** Compares a SchemaItemType against supported type.