@itwin/ecschema-metadata 5.9.0-dev.9 → 5.10.0-dev.3

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 (220) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/lib/cjs/Constants.js.map +1 -1
  3. package/lib/cjs/DelayedPromise.js.map +1 -1
  4. package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
  5. package/lib/cjs/Deserialization/Helper.d.ts +1 -1
  6. package/lib/cjs/Deserialization/Helper.d.ts.map +1 -1
  7. package/lib/cjs/Deserialization/Helper.js +35 -21
  8. package/lib/cjs/Deserialization/Helper.js.map +1 -1
  9. package/lib/cjs/Deserialization/JsonParser.js +7 -7
  10. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  11. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  12. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
  13. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  14. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
  15. package/lib/cjs/Deserialization/XmlSerializationUtils.js +1 -1
  16. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  17. package/lib/cjs/ECName.js.map +1 -1
  18. package/lib/cjs/ECObjects.js.map +1 -1
  19. package/lib/cjs/Exception.js.map +1 -1
  20. package/lib/cjs/Formatting/FormatSetFormatsProvider.d.ts +3 -2
  21. package/lib/cjs/Formatting/FormatSetFormatsProvider.d.ts.map +1 -1
  22. package/lib/cjs/Formatting/FormatSetFormatsProvider.js +7 -6
  23. package/lib/cjs/Formatting/FormatSetFormatsProvider.js.map +1 -1
  24. package/lib/cjs/Formatting/SchemaFormatsProvider.d.ts +1 -1
  25. package/lib/cjs/Formatting/SchemaFormatsProvider.d.ts.map +1 -1
  26. package/lib/cjs/Formatting/SchemaFormatsProvider.js +6 -5
  27. package/lib/cjs/Formatting/SchemaFormatsProvider.js.map +1 -1
  28. package/lib/cjs/IncrementalLoading/ClassParsers.js.map +1 -1
  29. package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
  30. package/lib/cjs/IncrementalLoading/FullSchemaQueries.js +466 -466
  31. package/lib/cjs/IncrementalLoading/FullSchemaQueries.js.map +1 -1
  32. package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js +1 -1
  33. package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
  34. package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
  35. package/lib/cjs/IncrementalLoading/SchemaItemParsers.js.map +1 -1
  36. package/lib/cjs/IncrementalLoading/SchemaItemQueries.js +235 -235
  37. package/lib/cjs/IncrementalLoading/SchemaItemQueries.js.map +1 -1
  38. package/lib/cjs/IncrementalLoading/SchemaParser.js.map +1 -1
  39. package/lib/cjs/IncrementalLoading/SchemaStubQueries.js +309 -309
  40. package/lib/cjs/IncrementalLoading/SchemaStubQueries.js.map +1 -1
  41. package/lib/cjs/Interfaces.js.map +1 -1
  42. package/lib/cjs/Metadata/Class.d.ts.map +1 -1
  43. package/lib/cjs/Metadata/Class.js +6 -4
  44. package/lib/cjs/Metadata/Class.js.map +1 -1
  45. package/lib/cjs/Metadata/Constant.js.map +1 -1
  46. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  47. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  48. package/lib/cjs/Metadata/EntityClass.d.ts.map +1 -1
  49. package/lib/cjs/Metadata/EntityClass.js +2 -2
  50. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  51. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  52. package/lib/cjs/Metadata/Format.js.map +1 -1
  53. package/lib/cjs/Metadata/InvertedUnit.js +2 -2
  54. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
  55. package/lib/cjs/Metadata/KindOfQuantity.js +1 -1
  56. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  57. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  58. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  59. package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
  60. package/lib/cjs/Metadata/Property.d.ts.map +1 -1
  61. package/lib/cjs/Metadata/Property.js +6 -3
  62. package/lib/cjs/Metadata/Property.js.map +1 -1
  63. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  64. package/lib/cjs/Metadata/RelationshipClass.d.ts.map +1 -1
  65. package/lib/cjs/Metadata/RelationshipClass.js +5 -4
  66. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  67. package/lib/cjs/Metadata/Schema.js +1 -1
  68. package/lib/cjs/Metadata/Schema.js.map +1 -1
  69. package/lib/cjs/Metadata/SchemaItem.js +2 -2
  70. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  71. package/lib/cjs/Metadata/Unit.js +2 -2
  72. package/lib/cjs/Metadata/Unit.js.map +1 -1
  73. package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
  74. package/lib/cjs/PropertyTypes.js.map +1 -1
  75. package/lib/cjs/SchemaJsonLocater.js.map +1 -1
  76. package/lib/cjs/SchemaKey.js.map +1 -1
  77. package/lib/cjs/SchemaLoader.js.map +1 -1
  78. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
  79. package/lib/cjs/UnitConversion/UnitConverter.d.ts +1 -1
  80. package/lib/cjs/UnitConversion/UnitConverter.d.ts.map +1 -1
  81. package/lib/cjs/UnitConversion/UnitConverter.js +4 -4
  82. package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
  83. package/lib/cjs/UnitConversion/UnitTree.d.ts +3 -4
  84. package/lib/cjs/UnitConversion/UnitTree.d.ts.map +1 -1
  85. package/lib/cjs/UnitConversion/UnitTree.js +11 -11
  86. package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
  87. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts +3 -0
  88. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts.map +1 -1
  89. package/lib/cjs/UnitProvider/SchemaUnitProvider.js +3 -0
  90. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  91. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  92. package/lib/cjs/ecschema-metadata.d.ts +0 -1
  93. package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
  94. package/lib/cjs/ecschema-metadata.js +0 -1
  95. package/lib/cjs/ecschema-metadata.js.map +1 -1
  96. package/lib/cjs/utils/ECClassHierarchy.js.map +1 -1
  97. package/lib/cjs/utils/SchemaGraph.js.map +1 -1
  98. package/lib/cjs/utils/SchemaLoadingController.js.map +1 -1
  99. package/lib/esm/Constants.js.map +1 -1
  100. package/lib/esm/DelayedPromise.js.map +1 -1
  101. package/lib/esm/Deserialization/AbstractParser.js.map +1 -1
  102. package/lib/esm/Deserialization/Helper.d.ts +1 -1
  103. package/lib/esm/Deserialization/Helper.d.ts.map +1 -1
  104. package/lib/esm/Deserialization/Helper.js +35 -21
  105. package/lib/esm/Deserialization/Helper.js.map +1 -1
  106. package/lib/esm/Deserialization/JsonParser.js +7 -7
  107. package/lib/esm/Deserialization/JsonParser.js.map +1 -1
  108. package/lib/esm/Deserialization/JsonProps.js.map +1 -1
  109. package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
  110. package/lib/esm/Deserialization/XmlParser.js.map +1 -1
  111. package/lib/esm/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
  112. package/lib/esm/Deserialization/XmlSerializationUtils.js +1 -1
  113. package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
  114. package/lib/esm/ECName.js.map +1 -1
  115. package/lib/esm/ECObjects.js.map +1 -1
  116. package/lib/esm/Exception.js.map +1 -1
  117. package/lib/esm/Formatting/FormatSetFormatsProvider.d.ts +3 -2
  118. package/lib/esm/Formatting/FormatSetFormatsProvider.d.ts.map +1 -1
  119. package/lib/esm/Formatting/FormatSetFormatsProvider.js +7 -6
  120. package/lib/esm/Formatting/FormatSetFormatsProvider.js.map +1 -1
  121. package/lib/esm/Formatting/SchemaFormatsProvider.d.ts +1 -1
  122. package/lib/esm/Formatting/SchemaFormatsProvider.d.ts.map +1 -1
  123. package/lib/esm/Formatting/SchemaFormatsProvider.js +6 -5
  124. package/lib/esm/Formatting/SchemaFormatsProvider.js.map +1 -1
  125. package/lib/esm/IncrementalLoading/ClassParsers.js.map +1 -1
  126. package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
  127. package/lib/esm/IncrementalLoading/FullSchemaQueries.js +466 -466
  128. package/lib/esm/IncrementalLoading/FullSchemaQueries.js.map +1 -1
  129. package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js +1 -1
  130. package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
  131. package/lib/esm/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
  132. package/lib/esm/IncrementalLoading/SchemaItemParsers.js.map +1 -1
  133. package/lib/esm/IncrementalLoading/SchemaItemQueries.js +235 -235
  134. package/lib/esm/IncrementalLoading/SchemaItemQueries.js.map +1 -1
  135. package/lib/esm/IncrementalLoading/SchemaParser.js.map +1 -1
  136. package/lib/esm/IncrementalLoading/SchemaStubQueries.js +309 -309
  137. package/lib/esm/IncrementalLoading/SchemaStubQueries.js.map +1 -1
  138. package/lib/esm/Interfaces.js.map +1 -1
  139. package/lib/esm/Metadata/Class.d.ts.map +1 -1
  140. package/lib/esm/Metadata/Class.js +6 -4
  141. package/lib/esm/Metadata/Class.js.map +1 -1
  142. package/lib/esm/Metadata/Constant.js.map +1 -1
  143. package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
  144. package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
  145. package/lib/esm/Metadata/EntityClass.d.ts.map +1 -1
  146. package/lib/esm/Metadata/EntityClass.js +2 -2
  147. package/lib/esm/Metadata/EntityClass.js.map +1 -1
  148. package/lib/esm/Metadata/Enumeration.js.map +1 -1
  149. package/lib/esm/Metadata/Format.js.map +1 -1
  150. package/lib/esm/Metadata/InvertedUnit.js +2 -2
  151. package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
  152. package/lib/esm/Metadata/KindOfQuantity.js +1 -1
  153. package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
  154. package/lib/esm/Metadata/Mixin.js.map +1 -1
  155. package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
  156. package/lib/esm/Metadata/Phenomenon.js.map +1 -1
  157. package/lib/esm/Metadata/Property.d.ts.map +1 -1
  158. package/lib/esm/Metadata/Property.js +6 -3
  159. package/lib/esm/Metadata/Property.js.map +1 -1
  160. package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
  161. package/lib/esm/Metadata/RelationshipClass.d.ts.map +1 -1
  162. package/lib/esm/Metadata/RelationshipClass.js +5 -4
  163. package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
  164. package/lib/esm/Metadata/Schema.js +1 -1
  165. package/lib/esm/Metadata/Schema.js.map +1 -1
  166. package/lib/esm/Metadata/SchemaItem.js +2 -2
  167. package/lib/esm/Metadata/SchemaItem.js.map +1 -1
  168. package/lib/esm/Metadata/Unit.js +2 -2
  169. package/lib/esm/Metadata/Unit.js.map +1 -1
  170. package/lib/esm/Metadata/UnitSystem.js.map +1 -1
  171. package/lib/esm/PropertyTypes.js.map +1 -1
  172. package/lib/esm/SchemaJsonLocater.js.map +1 -1
  173. package/lib/esm/SchemaKey.js.map +1 -1
  174. package/lib/esm/SchemaLoader.js.map +1 -1
  175. package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
  176. package/lib/esm/UnitConversion/UnitConverter.d.ts +1 -1
  177. package/lib/esm/UnitConversion/UnitConverter.d.ts.map +1 -1
  178. package/lib/esm/UnitConversion/UnitConverter.js +1 -1
  179. package/lib/esm/UnitConversion/UnitConverter.js.map +1 -1
  180. package/lib/esm/UnitConversion/UnitTree.d.ts +3 -4
  181. package/lib/esm/UnitConversion/UnitTree.d.ts.map +1 -1
  182. package/lib/esm/UnitConversion/UnitTree.js +6 -6
  183. package/lib/esm/UnitConversion/UnitTree.js.map +1 -1
  184. package/lib/esm/UnitProvider/SchemaUnitProvider.d.ts +3 -0
  185. package/lib/esm/UnitProvider/SchemaUnitProvider.d.ts.map +1 -1
  186. package/lib/esm/UnitProvider/SchemaUnitProvider.js +3 -0
  187. package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
  188. package/lib/esm/Validation/SchemaWalker.js.map +1 -1
  189. package/lib/esm/ecschema-metadata.d.ts +0 -1
  190. package/lib/esm/ecschema-metadata.d.ts.map +1 -1
  191. package/lib/esm/ecschema-metadata.js +0 -1
  192. package/lib/esm/ecschema-metadata.js.map +1 -1
  193. package/lib/esm/utils/ECClassHierarchy.js.map +1 -1
  194. package/lib/esm/utils/SchemaGraph.js.map +1 -1
  195. package/lib/esm/utils/SchemaLoadingController.js.map +1 -1
  196. package/package.json +7 -7
  197. package/lib/cjs/UnitConversion/Graph.d.ts +0 -35
  198. package/lib/cjs/UnitConversion/Graph.d.ts.map +0 -1
  199. package/lib/cjs/UnitConversion/Graph.js +0 -88
  200. package/lib/cjs/UnitConversion/Graph.js.map +0 -1
  201. package/lib/cjs/UnitConversion/Parser.d.ts +0 -9
  202. package/lib/cjs/UnitConversion/Parser.d.ts.map +0 -1
  203. package/lib/cjs/UnitConversion/Parser.js +0 -42
  204. package/lib/cjs/UnitConversion/Parser.js.map +0 -1
  205. package/lib/cjs/UnitConversion/UnitConversion.d.ts +0 -46
  206. package/lib/cjs/UnitConversion/UnitConversion.d.ts.map +0 -1
  207. package/lib/cjs/UnitConversion/UnitConversion.js +0 -76
  208. package/lib/cjs/UnitConversion/UnitConversion.js.map +0 -1
  209. package/lib/esm/UnitConversion/Graph.d.ts +0 -35
  210. package/lib/esm/UnitConversion/Graph.d.ts.map +0 -1
  211. package/lib/esm/UnitConversion/Graph.js +0 -84
  212. package/lib/esm/UnitConversion/Graph.js.map +0 -1
  213. package/lib/esm/UnitConversion/Parser.d.ts +0 -9
  214. package/lib/esm/UnitConversion/Parser.d.ts.map +0 -1
  215. package/lib/esm/UnitConversion/Parser.js +0 -39
  216. package/lib/esm/UnitConversion/Parser.js.map +0 -1
  217. package/lib/esm/UnitConversion/UnitConversion.d.ts +0 -46
  218. package/lib/esm/UnitConversion/UnitConversion.d.ts.map +0 -1
  219. package/lib/esm/UnitConversion/UnitConversion.js +0 -72
  220. package/lib/esm/UnitConversion/UnitConversion.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
1
  # Change Log - @itwin/ecschema-metadata
2
2
 
3
- This log was last generated on Fri, 10 Apr 2026 13:03:16 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 23 Apr 2026 18:06:53 GMT and should not be manually modified.
4
+
5
+ ## 5.8.4
6
+ Thu, 23 Apr 2026 18:05:14 GMT
7
+
8
+ _Version update only_
9
+
10
+ ## 5.8.3
11
+ Thu, 23 Apr 2026 14:52:42 GMT
12
+
13
+ _Version update only_
14
+
15
+ ## 5.8.2
16
+ Thu, 16 Apr 2026 11:05:01 GMT
17
+
18
+ _Version update only_
4
19
 
5
20
  ## 5.8.1
6
21
  Fri, 10 Apr 2026 13:02:00 GMT
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../src/Constants.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AACH,MAAa,iBAAiB;IAC5B,mBAAmB;IACZ,MAAM,CAAU,uBAAuB,GAAW,QAAQ,CAAC;IAC3D,MAAM,CAAU,uBAAuB,GAAW,QAAQ,CAAC;IAElE,iBAAiB;IACV,MAAM,CAAU,oBAAoB,GAAW,QAAQ,CAAC;IACxD,MAAM,CAAU,yBAAyB,GAAW,aAAa,CAAC;IAClE,MAAM,CAAU,kCAAkC,GAAW,sBAAsB,CAAC;IACpF,MAAM,CAAU,yBAAyB,GAAW,aAAa,CAAC;IAClE,MAAM,CAAU,+BAA+B,GAAW,mBAAmB,CAAC;IAC9E,MAAM,CAAU,sBAAsB,GAAW,UAAU,CAAC;IAE5D,MAAM,CAAU,+BAA+B,GAAW,mBAAmB,CAAC;IAC9E,MAAM,CAAU,4BAA4B,GAAW,gBAAgB,CAAC;IACxE,MAAM,CAAU,oCAAoC,GAAW,eAAe,CAAC;IAC/E,MAAM,CAAU,iCAAiC,GAAW,qBAAqB,CAAC;IAClF,MAAM,CAAU,gCAAgC,GAAW,oBAAoB,CAAC;IAChF,MAAM,CAAU,yBAAyB,GAAW,aAAa,CAAC;IAElE,MAAM,CAAU,0CAA0C,GAAW,8BAA8B,CAAC;IACpG,MAAM,CAAU,0CAA0C,GAAW,8BAA8B,CAAC;IACpG,MAAM,CAAU,uCAAuC,GAAW,2BAA2B,CAAC;IAE9F,MAAM,CAAU,iBAAiB,GAAW,KAAK,CAAC;;AAxB3D,8CAyBC;AAED;;GAEG;AACH,IAAiB,qBAAqB,CAKrC;AALD,WAAiB,qBAAqB;IACvB,uCAAiB,GAAG,qDAAqD,CAAC;IAC1E,sCAAgB,GAAG,uDAAuD,CAAC;IAE3E,sCAAgB,GAAG,kDAAkD,CAAC;AACrF,CAAC,EALgB,qBAAqB,qCAArB,qBAAqB,QAKrC","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\n/**\n * @internal\n */\nexport class ECStringConstants {\n // Relationship End\n public static readonly RELATIONSHIP_END_SOURCE: string = \"Source\";\n public static readonly RELATIONSHIP_END_TARGET: string = \"Target\";\n\n // Container Type\n public static readonly CONTAINERTYPE_SCHEMA: string = \"Schema\";\n public static readonly CONTAINERTYPE_ENTITYCLASS: string = \"EntityClass\";\n public static readonly CONTAINERTYPE_CUSTOMATTRIBUTECLASS: string = \"CustomAttributeClass\";\n public static readonly CONTAINERTYPE_STRUCTCLASS: string = \"StructClass\";\n public static readonly CONTAINERTYPE_RELATIONSHIPCLASS: string = \"RelationshipClass\";\n public static readonly CONTAINERTYPE_ANYCLASS: string = \"AnyClass\";\n\n public static readonly CONTAINERTYPE_PRIMITIVEPROPERTY: string = \"PrimitiveProperty\";\n public static readonly CONTAINERTYPE_STRUCTPROPERTY: string = \"StructProperty\";\n public static readonly CONTAINERTYPE_PRIMITIVEARRAYPROPERTY: string = \"ArrayProperty\";\n public static readonly CONTAINERTYPE_STRUCTARRAYPROPERTY: string = \"StructArrayProperty\";\n public static readonly CONTAINERTYPE_NAVIGATIONPROPERTY: string = \"NavigationProperty\";\n public static readonly CONTAINERTYPE_ANYPROPERTY: string = \"AnyProperty\";\n\n public static readonly CONTAINERTYPE_SOURCERELATIONSHIPCONSTRAINT: string = \"SourceRelationshipConstraint\";\n public static readonly CONTAINERTYPE_TARGETRELATIONSHIPCONSTRAINT: string = \"TargetRelationshipConstraint\";\n public static readonly CONTAINERTYPE_ANYRELATIONSHIPCONSTRAINT: string = \"AnyRelationshipConstraint\";\n\n public static readonly CONTAINERTYPE_ANY: string = \"Any\";\n}\n\n/**\n * @internal\n */\nexport namespace ECSchemaNamespaceUris {\n export const SCHEMAURL3_2_JSON = \"https://dev.bentley.com/json_schemas/ec/32/ecschema\";\n export const SCHEMAITEMURL3_2 = \"https://dev.bentley.com/json_schemas/ec/32/schemaitem\";\n\n export const SCHEMAURL3_2_XML = \"http://www.bentley.com/schemas/Bentley.ECXML.3.2\";\n}\n"]}
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../src/Constants.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AACH,MAAa,iBAAiB;IAC5B,mBAAmB;IACZ,MAAM,CAAU,uBAAuB,GAAW,QAAQ,CAAC;IAC3D,MAAM,CAAU,uBAAuB,GAAW,QAAQ,CAAC;IAElE,iBAAiB;IACV,MAAM,CAAU,oBAAoB,GAAW,QAAQ,CAAC;IACxD,MAAM,CAAU,yBAAyB,GAAW,aAAa,CAAC;IAClE,MAAM,CAAU,kCAAkC,GAAW,sBAAsB,CAAC;IACpF,MAAM,CAAU,yBAAyB,GAAW,aAAa,CAAC;IAClE,MAAM,CAAU,+BAA+B,GAAW,mBAAmB,CAAC;IAC9E,MAAM,CAAU,sBAAsB,GAAW,UAAU,CAAC;IAE5D,MAAM,CAAU,+BAA+B,GAAW,mBAAmB,CAAC;IAC9E,MAAM,CAAU,4BAA4B,GAAW,gBAAgB,CAAC;IACxE,MAAM,CAAU,oCAAoC,GAAW,eAAe,CAAC;IAC/E,MAAM,CAAU,iCAAiC,GAAW,qBAAqB,CAAC;IAClF,MAAM,CAAU,gCAAgC,GAAW,oBAAoB,CAAC;IAChF,MAAM,CAAU,yBAAyB,GAAW,aAAa,CAAC;IAElE,MAAM,CAAU,0CAA0C,GAAW,8BAA8B,CAAC;IACpG,MAAM,CAAU,0CAA0C,GAAW,8BAA8B,CAAC;IACpG,MAAM,CAAU,uCAAuC,GAAW,2BAA2B,CAAC;IAE9F,MAAM,CAAU,iBAAiB,GAAW,KAAK,CAAC;;AAxB3D,8CAyBC;AAED;;GAEG;AACH,IAAiB,qBAAqB,CAKrC;AALD,WAAiB,qBAAqB;IACvB,uCAAiB,GAAG,qDAAqD,CAAC;IAC1E,sCAAgB,GAAG,uDAAuD,CAAC;IAE3E,sCAAgB,GAAG,kDAAkD,CAAC;AACrF,CAAC,EALgB,qBAAqB,qCAArB,qBAAqB,QAKrC","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\n/**\r\n * @internal\r\n */\r\nexport class ECStringConstants {\r\n // Relationship End\r\n public static readonly RELATIONSHIP_END_SOURCE: string = \"Source\";\r\n public static readonly RELATIONSHIP_END_TARGET: string = \"Target\";\r\n\r\n // Container Type\r\n public static readonly CONTAINERTYPE_SCHEMA: string = \"Schema\";\r\n public static readonly CONTAINERTYPE_ENTITYCLASS: string = \"EntityClass\";\r\n public static readonly CONTAINERTYPE_CUSTOMATTRIBUTECLASS: string = \"CustomAttributeClass\";\r\n public static readonly CONTAINERTYPE_STRUCTCLASS: string = \"StructClass\";\r\n public static readonly CONTAINERTYPE_RELATIONSHIPCLASS: string = \"RelationshipClass\";\r\n public static readonly CONTAINERTYPE_ANYCLASS: string = \"AnyClass\";\r\n\r\n public static readonly CONTAINERTYPE_PRIMITIVEPROPERTY: string = \"PrimitiveProperty\";\r\n public static readonly CONTAINERTYPE_STRUCTPROPERTY: string = \"StructProperty\";\r\n public static readonly CONTAINERTYPE_PRIMITIVEARRAYPROPERTY: string = \"ArrayProperty\";\r\n public static readonly CONTAINERTYPE_STRUCTARRAYPROPERTY: string = \"StructArrayProperty\";\r\n public static readonly CONTAINERTYPE_NAVIGATIONPROPERTY: string = \"NavigationProperty\";\r\n public static readonly CONTAINERTYPE_ANYPROPERTY: string = \"AnyProperty\";\r\n\r\n public static readonly CONTAINERTYPE_SOURCERELATIONSHIPCONSTRAINT: string = \"SourceRelationshipConstraint\";\r\n public static readonly CONTAINERTYPE_TARGETRELATIONSHIPCONSTRAINT: string = \"TargetRelationshipConstraint\";\r\n public static readonly CONTAINERTYPE_ANYRELATIONSHIPCONSTRAINT: string = \"AnyRelationshipConstraint\";\r\n\r\n public static readonly CONTAINERTYPE_ANY: string = \"Any\";\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport namespace ECSchemaNamespaceUris {\r\n export const SCHEMAURL3_2_JSON = \"https://dev.bentley.com/json_schemas/ec/32/ecschema\";\r\n export const SCHEMAITEMURL3_2 = \"https://dev.bentley.com/json_schemas/ec/32/schemaitem\";\r\n\r\n export const SCHEMAURL3_2_XML = \"http://www.bentley.com/schemas/Bentley.ECXML.3.2\";\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DelayedPromise.js","sourceRoot":"","sources":["../../src/DelayedPromise.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,cAAc;IAEzB;;;OAGG;IACH,YAAY,aAA+B;QACzC,IAAI,OAA+B,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;YACtB,OAAO,GAAG,OAAO,IAAI,aAAa,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;IAED,qGAAqG;IACrF,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAkB,CAAC;IAE1D;;OAEG;IACI,KAAK,CAAmB;IAE/B;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CAAiC,WAAiF,EAAE,UAAmF;QACtN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAkB,UAAiF;QACnH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,SAA2C;QAC9D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACF;AAjDD,wCAiDC;AAgCD,wGAAwG;AACxG,+HAA+H;AAC/H;;GAEG;AACH,gEAAgE;AACnD,QAAA,uBAAuB,GAAG,CAAC,KAAyD,SAAQ,cAAwB;IAC/H,YAAY,KAAa,EAAE,EAA2B;QACpD,KAAK,CAAC,EAAE,CAAC,CAAC;QAEV,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE;gBACpC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAoB,CAAC,CAAC;YAClF,CAAC;SACF,CAAC;QAEF,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAsC,CAAC;IACxE,CAAC;CACF,CAAuC,CAAC","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 Utils\n */\n\n/**\n * Similar to a normal Promise, a DelayedPromise represents the eventual completion (or failure)\n * and resulting value of an asynchronous operation ***that has not yet started***.\n *\n * The asynchronous operation behind a DelayedPromise will start when any of the following occurs:\n * - The DelayedPromise is `await`ed.\n * - A callback is attached via `.then()` or `.catch(() => { })`.\n * - The asynchronous operation is explicitly started via `.start()`\n *\n * Just as normal Promises will never return to their pending state once fulfilled or rejected,\n * a DelayedPromise will never re-execute its asynchronous operation more than **once**.\n *\n * Ultimately, a DelayedPromise is nothing more than some syntactic sugar that allows you to\n * represent an (asynchronously) lazily-loaded value as an instance property instead of a method.\n * You could also accomplish something similar by defining an async function as a property getter.\n * However, since a property defined as a DelayedPromise will not start simply by being accessed,\n * additional (non-lazily-loaded) \"nested\" properties can be added.\n *\n * [!alert text=\"*Remember:* Unlike regular Promises in JavaScript, DelayedPromises represent processes that **may not** already be happening.\" kind=\"warning\"]\n * @internal\n */\nexport class DelayedPromise<T> implements Promise<T> {\n\n /**\n * Constructs a DelayedPromise object.\n * @param startCallback The asynchronous callback to execute when this DelayedPromise should be \"started\".\n */\n constructor(startCallback: () => Promise<T>) {\n let pending: Promise<T> | undefined;\n this.start = async () => {\n pending = pending || startCallback();\n return pending;\n };\n }\n\n // We need this in order to fulfill the Promise interface defined in lib.es2015.symbol.wellknown.d.ts\n public readonly [Symbol.toStringTag] = \"Promise\" as const;\n\n /**\n * Explicitly starts the asynchronous operation behind this DelayedPromise (if it hasn't started already).\n */\n public start: () => Promise<T>;\n\n /**\n * Attaches callbacks for the resolution and/or rejection of the Promise.\n * @param onfulfilled The callback to execute when the Promise is resolved.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @return A Promise for the completion of which ever callback is executed.\n */\n public async then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2> {\n return this.start().then(onfulfilled, onrejected);\n }\n\n /**\n * Attaches a callback for only the rejection of the Promise.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @return A Promise for the completion of the callback.\n */\n public async catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult> {\n return this.start().catch(onrejected);\n }\n\n /**\n * Attaches a callback for only the finally clause of the Promise.\n * @param onrejected The callback to execute when the Promise is finalized.\n * @return A Promise for the completion of the callback.\n */\n public async finally(onFinally?: (() => void) | undefined | null): Promise<T> {\n return this.start().finally(onFinally);\n }\n}\n\n// This keeps us from accidentally overriding one of DelayedPromise's methods in the DelayedPromiseWithProps constructor\n/**\n * @internal\n */\nexport interface NoDelayedPromiseMethods {\n [propName: string]: any;\n start?: never;\n then?: never;\n catch?: never;\n}\n\n// See definition of DelayedPromiseWithProps below\n/**\n * @internal\n */\nexport interface DelayedPromiseWithPropsConstructor {\n\n /**\n * Constructs a DelayedPromiseWithProps object, which is at once both:\n * - A DelayedPromise object representing the eventual completion (or failure)\n * of an asynchronous operation returning a value of type `TPayload`\n * - _and_ a readonly \"wrapper\" around an instance of type `TProps`\n *\n * @param props An object with properties and methods that will be accessible\n * as if they were readonly properties of the DelayedPromiseWithProps object being constructed.\n * @param startCallback The asynchronous callback to execute when as soon as this DelayedPromise should be \"started\".\n */\n new <TProps extends NoDelayedPromiseMethods, TPayload>(props: TProps, startCallback: () => Promise<TPayload>): TProps & DelayedPromise<TPayload>; // eslint-disable-line @typescript-eslint/prefer-function-type\n}\n\n// Because the property getters that wrap `props` are dynamically added, TypeScript isn't aware of them.\n// So by defining this as a class _expression_, we can cast the constructed type to Readonly<TProps> & DelayedPromise<TPayload>\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const DelayedPromiseWithProps = (class <TProps extends NoDelayedPromiseMethods, TPayload> extends DelayedPromise<TPayload> {\n constructor(props: TProps, cb: () => Promise<TPayload>) {\n super(cb);\n\n const handler = {\n get: (target: TProps, name: string) => {\n return (name in this) ? this[name as keyof this] : target[name as keyof TProps];\n },\n };\n\n return new Proxy(props, handler) as TProps & DelayedPromise<TPayload>;\n }\n}) as DelayedPromiseWithPropsConstructor;\n\n/* eslint-disable @typescript-eslint/no-redeclare */\n\n/**\n * Define the type of a DelayedPromiseWithProps instance\n * @internal\n */\nexport type DelayedPromiseWithProps<TProps, TPayload> = TProps & DelayedPromise<TPayload>;\n"]}
1
+ {"version":3,"file":"DelayedPromise.js","sourceRoot":"","sources":["../../src/DelayedPromise.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,cAAc;IAEzB;;;OAGG;IACH,YAAY,aAA+B;QACzC,IAAI,OAA+B,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;YACtB,OAAO,GAAG,OAAO,IAAI,aAAa,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;IAED,qGAAqG;IACrF,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAkB,CAAC;IAE1D;;OAEG;IACI,KAAK,CAAmB;IAE/B;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CAAiC,WAAiF,EAAE,UAAmF;QACtN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAkB,UAAiF;QACnH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,SAA2C;QAC9D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACF;AAjDD,wCAiDC;AAgCD,wGAAwG;AACxG,+HAA+H;AAC/H;;GAEG;AACH,gEAAgE;AACnD,QAAA,uBAAuB,GAAG,CAAC,KAAyD,SAAQ,cAAwB;IAC/H,YAAY,KAAa,EAAE,EAA2B;QACpD,KAAK,CAAC,EAAE,CAAC,CAAC;QAEV,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE;gBACpC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAoB,CAAC,CAAC;YAClF,CAAC;SACF,CAAC;QAEF,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAsC,CAAC;IACxE,CAAC;CACF,CAAuC,CAAC","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 Utils\r\n */\r\n\r\n/**\r\n * Similar to a normal Promise, a DelayedPromise represents the eventual completion (or failure)\r\n * and resulting value of an asynchronous operation ***that has not yet started***.\r\n *\r\n * The asynchronous operation behind a DelayedPromise will start when any of the following occurs:\r\n * - The DelayedPromise is `await`ed.\r\n * - A callback is attached via `.then()` or `.catch(() => { })`.\r\n * - The asynchronous operation is explicitly started via `.start()`\r\n *\r\n * Just as normal Promises will never return to their pending state once fulfilled or rejected,\r\n * a DelayedPromise will never re-execute its asynchronous operation more than **once**.\r\n *\r\n * Ultimately, a DelayedPromise is nothing more than some syntactic sugar that allows you to\r\n * represent an (asynchronously) lazily-loaded value as an instance property instead of a method.\r\n * You could also accomplish something similar by defining an async function as a property getter.\r\n * However, since a property defined as a DelayedPromise will not start simply by being accessed,\r\n * additional (non-lazily-loaded) \"nested\" properties can be added.\r\n *\r\n * [!alert text=\"*Remember:* Unlike regular Promises in JavaScript, DelayedPromises represent processes that **may not** already be happening.\" kind=\"warning\"]\r\n * @internal\r\n */\r\nexport class DelayedPromise<T> implements Promise<T> {\r\n\r\n /**\r\n * Constructs a DelayedPromise object.\r\n * @param startCallback The asynchronous callback to execute when this DelayedPromise should be \"started\".\r\n */\r\n constructor(startCallback: () => Promise<T>) {\r\n let pending: Promise<T> | undefined;\r\n this.start = async () => {\r\n pending = pending || startCallback();\r\n return pending;\r\n };\r\n }\r\n\r\n // We need this in order to fulfill the Promise interface defined in lib.es2015.symbol.wellknown.d.ts\r\n public readonly [Symbol.toStringTag] = \"Promise\" as const;\r\n\r\n /**\r\n * Explicitly starts the asynchronous operation behind this DelayedPromise (if it hasn't started already).\r\n */\r\n public start: () => Promise<T>;\r\n\r\n /**\r\n * Attaches callbacks for the resolution and/or rejection of the Promise.\r\n * @param onfulfilled The callback to execute when the Promise is resolved.\r\n * @param onrejected The callback to execute when the Promise is rejected.\r\n * @return A Promise for the completion of which ever callback is executed.\r\n */\r\n public async then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2> {\r\n return this.start().then(onfulfilled, onrejected);\r\n }\r\n\r\n /**\r\n * Attaches a callback for only the rejection of the Promise.\r\n * @param onrejected The callback to execute when the Promise is rejected.\r\n * @return A Promise for the completion of the callback.\r\n */\r\n public async catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult> {\r\n return this.start().catch(onrejected);\r\n }\r\n\r\n /**\r\n * Attaches a callback for only the finally clause of the Promise.\r\n * @param onrejected The callback to execute when the Promise is finalized.\r\n * @return A Promise for the completion of the callback.\r\n */\r\n public async finally(onFinally?: (() => void) | undefined | null): Promise<T> {\r\n return this.start().finally(onFinally);\r\n }\r\n}\r\n\r\n// This keeps us from accidentally overriding one of DelayedPromise's methods in the DelayedPromiseWithProps constructor\r\n/**\r\n * @internal\r\n */\r\nexport interface NoDelayedPromiseMethods {\r\n [propName: string]: any;\r\n start?: never;\r\n then?: never;\r\n catch?: never;\r\n}\r\n\r\n// See definition of DelayedPromiseWithProps below\r\n/**\r\n * @internal\r\n */\r\nexport interface DelayedPromiseWithPropsConstructor {\r\n\r\n /**\r\n * Constructs a DelayedPromiseWithProps object, which is at once both:\r\n * - A DelayedPromise object representing the eventual completion (or failure)\r\n * of an asynchronous operation returning a value of type `TPayload`\r\n * - _and_ a readonly \"wrapper\" around an instance of type `TProps`\r\n *\r\n * @param props An object with properties and methods that will be accessible\r\n * as if they were readonly properties of the DelayedPromiseWithProps object being constructed.\r\n * @param startCallback The asynchronous callback to execute when as soon as this DelayedPromise should be \"started\".\r\n */\r\n new <TProps extends NoDelayedPromiseMethods, TPayload>(props: TProps, startCallback: () => Promise<TPayload>): TProps & DelayedPromise<TPayload>; // eslint-disable-line @typescript-eslint/prefer-function-type\r\n}\r\n\r\n// Because the property getters that wrap `props` are dynamically added, TypeScript isn't aware of them.\r\n// So by defining this as a class _expression_, we can cast the constructed type to Readonly<TProps> & DelayedPromise<TPayload>\r\n/**\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const DelayedPromiseWithProps = (class <TProps extends NoDelayedPromiseMethods, TPayload> extends DelayedPromise<TPayload> {\r\n constructor(props: TProps, cb: () => Promise<TPayload>) {\r\n super(cb);\r\n\r\n const handler = {\r\n get: (target: TProps, name: string) => {\r\n return (name in this) ? this[name as keyof this] : target[name as keyof TProps];\r\n },\r\n };\r\n\r\n return new Proxy(props, handler) as TProps & DelayedPromise<TPayload>;\r\n }\r\n}) as DelayedPromiseWithPropsConstructor;\r\n\r\n/* eslint-disable @typescript-eslint/no-redeclare */\r\n\r\n/**\r\n * Define the type of a DelayedPromiseWithProps instance\r\n * @internal\r\n */\r\nexport type DelayedPromiseWithProps<TProps, TPayload> = TProps & DelayedPromise<TPayload>;\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractParser.js","sourceRoot":"","sources":["../../../src/Deserialization/AbstractParser.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAoB/F,gBAAgB;AAChB,MAAsB,cAAc;IACxB,cAAc,CAAiB;CAmC1C;AApCD,wCAoCC","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 {\n ConstantProps, CustomAttributeClassProps, EntityClassProps, EnumerationProps, InvertedUnitProps, KindOfQuantityProps, MixinProps,\n NavigationPropertyProps, PhenomenonProps, PrimitiveArrayPropertyProps, PrimitivePropertyProps, PropertyCategoryProps, RelationshipClassProps,\n SchemaItemFormatProps, SchemaItemUnitProps, SchemaProps, SchemaReferenceProps, StructArrayPropertyProps, StructClassProps, StructPropertyProps, UnitSystemProps,\n} from \"../Deserialization/JsonProps\";\nimport { CustomAttribute } from \"../Metadata/CustomAttribute\";\nimport { CustomAttributeClass } from \"../Metadata/CustomAttributeClass\";\nimport { ECSpecVersion } from \"./Helper\";\n\ntype SchemaItemTuple<T> = Readonly<[string /** Name */, string /** SchemaItemType */, Readonly<T>]>;\ntype PropertyTuple<T> = Readonly<[string /** Name */, string /** Property */, Readonly<T>]>;\n\n/** @internal */\nexport type CustomAttributeProvider = (caClass: CustomAttributeClass) => CustomAttribute;\n\n/** @internal */\nexport type CAProviderTuple = Readonly<[string /** Full Name */, CustomAttributeProvider]>;\n\n/** @internal */\nexport abstract class AbstractParser<TItem = any, TProperty = TItem> {\n protected _ecSpecVersion?: ECSpecVersion;\n\n public abstract parseSchema(): SchemaProps;\n public abstract getReferences(): Iterable<SchemaReferenceProps>;\n\n public abstract getItems(): Iterable<SchemaItemTuple<TItem>>;\n public abstract findItem(itemName: string): SchemaItemTuple<TItem> | undefined;\n\n public abstract parseEntityClass(data: Readonly<TItem>): EntityClassProps;\n public abstract parseMixin(data: Readonly<TItem>): MixinProps;\n public abstract parseStructClass(data: Readonly<TItem>): StructClassProps;\n public abstract parseCustomAttributeClass(data: Readonly<TItem>): CustomAttributeClassProps;\n public abstract parseRelationshipClass(data: Readonly<TItem>): RelationshipClassProps;\n public abstract parseEnumeration(data: Readonly<TItem>): EnumerationProps;\n public abstract parseKindOfQuantity(data: Readonly<TItem>): KindOfQuantityProps;\n public abstract parsePropertyCategory(data: Readonly<TItem>): PropertyCategoryProps;\n public abstract parseUnit(data: Readonly<TItem>): SchemaItemUnitProps;\n public abstract parseInvertedUnit(data: Readonly<TItem>): InvertedUnitProps;\n public abstract parseConstant(data: Readonly<TItem>): ConstantProps;\n public abstract parsePhenomenon(data: Readonly<TItem>): PhenomenonProps;\n public abstract parseFormat(data: Readonly<TItem>): SchemaItemFormatProps;\n public abstract parseUnitSystem(data: Readonly<TItem>): UnitSystemProps;\n\n public abstract getProperties(data: Readonly<TItem>, itemName: string): Iterable<PropertyTuple<TProperty>>;\n public abstract parsePrimitiveProperty(data: Readonly<TProperty>): PrimitivePropertyProps;\n public abstract parseStructProperty(data: Readonly<TProperty>): StructPropertyProps;\n public abstract parsePrimitiveArrayProperty(data: Readonly<TProperty>): PrimitiveArrayPropertyProps;\n public abstract parseStructArrayProperty(data: Readonly<TProperty>): StructArrayPropertyProps;\n public abstract parseNavigationProperty(data: Readonly<TProperty>): NavigationPropertyProps;\n\n public abstract getSchemaCustomAttributeProviders(): Iterable<CAProviderTuple>;\n public abstract getClassCustomAttributeProviders(data: Readonly<TItem>): Iterable<CAProviderTuple>;\n public abstract getPropertyCustomAttributeProviders(data: Readonly<TProperty>): Iterable<CAProviderTuple>;\n public abstract getRelationshipConstraintCustomAttributeProviders(data: Readonly<TItem>): [Iterable<CAProviderTuple> /* source */, Iterable<CAProviderTuple> /* target */];\n public abstract get getECSpecVersion(): ECSpecVersion | undefined;\n}\n\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/prefer-function-type\nexport interface AbstractParserConstructor<TSchema, TItem = any, TProperty = TItem> { new(obj: Readonly<TSchema>): AbstractParser<TItem, TProperty> }\n"]}
1
+ {"version":3,"file":"AbstractParser.js","sourceRoot":"","sources":["../../../src/Deserialization/AbstractParser.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAoB/F,gBAAgB;AAChB,MAAsB,cAAc;IACxB,cAAc,CAAiB;CAmC1C;AApCD,wCAoCC","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 {\r\n ConstantProps, CustomAttributeClassProps, EntityClassProps, EnumerationProps, InvertedUnitProps, KindOfQuantityProps, MixinProps,\r\n NavigationPropertyProps, PhenomenonProps, PrimitiveArrayPropertyProps, PrimitivePropertyProps, PropertyCategoryProps, RelationshipClassProps,\r\n SchemaItemFormatProps, SchemaItemUnitProps, SchemaProps, SchemaReferenceProps, StructArrayPropertyProps, StructClassProps, StructPropertyProps, UnitSystemProps,\r\n} from \"../Deserialization/JsonProps\";\r\nimport { CustomAttribute } from \"../Metadata/CustomAttribute\";\r\nimport { CustomAttributeClass } from \"../Metadata/CustomAttributeClass\";\r\nimport { ECSpecVersion } from \"./Helper\";\r\n\r\ntype SchemaItemTuple<T> = Readonly<[string /** Name */, string /** SchemaItemType */, Readonly<T>]>;\r\ntype PropertyTuple<T> = Readonly<[string /** Name */, string /** Property */, Readonly<T>]>;\r\n\r\n/** @internal */\r\nexport type CustomAttributeProvider = (caClass: CustomAttributeClass) => CustomAttribute;\r\n\r\n/** @internal */\r\nexport type CAProviderTuple = Readonly<[string /** Full Name */, CustomAttributeProvider]>;\r\n\r\n/** @internal */\r\nexport abstract class AbstractParser<TItem = any, TProperty = TItem> {\r\n protected _ecSpecVersion?: ECSpecVersion;\r\n\r\n public abstract parseSchema(): SchemaProps;\r\n public abstract getReferences(): Iterable<SchemaReferenceProps>;\r\n\r\n public abstract getItems(): Iterable<SchemaItemTuple<TItem>>;\r\n public abstract findItem(itemName: string): SchemaItemTuple<TItem> | undefined;\r\n\r\n public abstract parseEntityClass(data: Readonly<TItem>): EntityClassProps;\r\n public abstract parseMixin(data: Readonly<TItem>): MixinProps;\r\n public abstract parseStructClass(data: Readonly<TItem>): StructClassProps;\r\n public abstract parseCustomAttributeClass(data: Readonly<TItem>): CustomAttributeClassProps;\r\n public abstract parseRelationshipClass(data: Readonly<TItem>): RelationshipClassProps;\r\n public abstract parseEnumeration(data: Readonly<TItem>): EnumerationProps;\r\n public abstract parseKindOfQuantity(data: Readonly<TItem>): KindOfQuantityProps;\r\n public abstract parsePropertyCategory(data: Readonly<TItem>): PropertyCategoryProps;\r\n public abstract parseUnit(data: Readonly<TItem>): SchemaItemUnitProps;\r\n public abstract parseInvertedUnit(data: Readonly<TItem>): InvertedUnitProps;\r\n public abstract parseConstant(data: Readonly<TItem>): ConstantProps;\r\n public abstract parsePhenomenon(data: Readonly<TItem>): PhenomenonProps;\r\n public abstract parseFormat(data: Readonly<TItem>): SchemaItemFormatProps;\r\n public abstract parseUnitSystem(data: Readonly<TItem>): UnitSystemProps;\r\n\r\n public abstract getProperties(data: Readonly<TItem>, itemName: string): Iterable<PropertyTuple<TProperty>>;\r\n public abstract parsePrimitiveProperty(data: Readonly<TProperty>): PrimitivePropertyProps;\r\n public abstract parseStructProperty(data: Readonly<TProperty>): StructPropertyProps;\r\n public abstract parsePrimitiveArrayProperty(data: Readonly<TProperty>): PrimitiveArrayPropertyProps;\r\n public abstract parseStructArrayProperty(data: Readonly<TProperty>): StructArrayPropertyProps;\r\n public abstract parseNavigationProperty(data: Readonly<TProperty>): NavigationPropertyProps;\r\n\r\n public abstract getSchemaCustomAttributeProviders(): Iterable<CAProviderTuple>;\r\n public abstract getClassCustomAttributeProviders(data: Readonly<TItem>): Iterable<CAProviderTuple>;\r\n public abstract getPropertyCustomAttributeProviders(data: Readonly<TProperty>): Iterable<CAProviderTuple>;\r\n public abstract getRelationshipConstraintCustomAttributeProviders(data: Readonly<TItem>): [Iterable<CAProviderTuple> /* source */, Iterable<CAProviderTuple> /* target */];\r\n public abstract get getECSpecVersion(): ECSpecVersion | undefined;\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line @typescript-eslint/prefer-function-type\r\nexport interface AbstractParserConstructor<TSchema, TItem = any, TProperty = TItem> { new(obj: Readonly<TSchema>): AbstractParser<TItem, TProperty> }\r\n"]}
@@ -10,7 +10,7 @@ import { AbstractParserConstructor, CAProviderTuple } from "./AbstractParser";
10
10
  type AnyCAContainer = Schema | ECClass | Property | RelationshipConstraint;
11
11
  /**
12
12
  * Specifies the version specification for the schema
13
- * @internal
13
+ * @beta
14
14
  */
15
15
  export interface ECSpecVersion {
16
16
  readVersion: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Helper.d.ts","sourceRoot":"","sources":["../../../src/Deserialization/Helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Helper.d.ts","sourceRoot":"","sources":["../../../src/Deserialization/Helper.ts"],"names":[],"mappings":"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"}
@@ -80,14 +80,17 @@ class SchemaReadHelper {
80
80
  if (!this._schemaInfo) {
81
81
  await this.readSchemaInfo(schema, rawSchema, addSchemaToCache);
82
82
  }
83
+ const schemaInfo = this._schemaInfo;
84
+ if (!schemaInfo)
85
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLoadSchema, `Schema info not loaded for ${schema.schemaKey.toString()}`);
83
86
  // If not adding schema to cache (occurs in readSchemaInfo), we must load the schema here
84
87
  if (!addSchemaToCache) {
85
- const loadedSchema = await this.loadSchema(this._schemaInfo, schema);
88
+ const loadedSchema = await this.loadSchema(schemaInfo, schema);
86
89
  if (undefined === loadedSchema)
87
90
  throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLoadSchema, `Could not load schema ${schema.schemaKey.toString()}`);
88
91
  return loadedSchema;
89
92
  }
90
- const cachedSchema = await this._context.getCachedSchema(this._schemaInfo.schemaKey, ECObjects_1.SchemaMatchType.Latest);
93
+ const cachedSchema = await this._context.getCachedSchema(schemaInfo.schemaKey, ECObjects_1.SchemaMatchType.Latest);
91
94
  if (undefined === cachedSchema)
92
95
  throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLoadSchema, `Could not load schema ${schema.schemaKey.toString()}`);
93
96
  return cachedSchema;
@@ -119,7 +122,7 @@ class SchemaReadHelper {
119
122
  if (this.isSchemaItemLoaded(schemaItem))
120
123
  continue;
121
124
  const loadedItem = await this.loadSchemaItem(schema, itemName, itemType, rawItem);
122
- if (this.isSchemaItemLoaded(loadedItem) && this._visitorHelper) {
125
+ if (loadedItem && this.isSchemaItemLoaded(loadedItem) && this._visitorHelper) {
123
126
  await this._visitorHelper.visitSchemaPart(loadedItem);
124
127
  }
125
128
  }
@@ -151,7 +154,7 @@ class SchemaReadHelper {
151
154
  // Load all schema items
152
155
  for (const [itemName, itemType, rawItem] of this._parser.getItems()) {
153
156
  const loadedItem = this.loadSchemaItemSync(schema, itemName, itemType, rawItem);
154
- if (this.isSchemaItemLoaded(loadedItem) && this._visitorHelper) {
157
+ if (loadedItem && this.isSchemaItemLoaded(loadedItem) && this._visitorHelper) {
155
158
  this._visitorHelper.visitSchemaPartSync(loadedItem);
156
159
  }
157
160
  }
@@ -186,13 +189,16 @@ class SchemaReadHelper {
186
189
  * @param ref The object to read the SchemaReference's props from.
187
190
  */
188
191
  loadSchemaReferenceSync(ref) {
192
+ const schema = this._schema;
193
+ if (!schema)
194
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Schema not set when loading reference ${ref.name}`);
189
195
  const schemaKey = new SchemaKey_1.SchemaKey(ref.name, SchemaKey_1.ECVersion.fromString(ref.version));
190
196
  const refSchema = this._context.getSchemaSync(schemaKey, ECObjects_1.SchemaMatchType.LatestWriteCompatible);
191
197
  if (!refSchema)
192
- throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLocateSchema, `Could not locate the referenced schema, ${ref.name}.${ref.version}, of ${this._schema.schemaKey.name}`);
193
- this._schema.addReferenceSync(refSchema);
194
- SchemaGraph_1.SchemaGraph.generateGraphSync(this._schema).throwIfCycles();
195
- const results = this.validateSchemaReferences(this._schema);
198
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLocateSchema, `Could not locate the referenced schema, ${ref.name}.${ref.version}, of ${schema.schemaKey.name}`);
199
+ schema.addReferenceSync(refSchema);
200
+ SchemaGraph_1.SchemaGraph.generateGraphSync(schema).throwIfCycles();
201
+ const results = this.validateSchemaReferences(schema);
196
202
  let errorMessage = "";
197
203
  for (const result of results) {
198
204
  errorMessage += `${result}\r\n`;
@@ -432,13 +438,16 @@ class SchemaReadHelper {
432
438
  if (undefined === schemaName || 0 === schemaName.length)
433
439
  throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `The SchemaItem ${name} is invalid without a schema name`);
434
440
  if (isInThisSchema) {
435
- schemaItem = await this._schema.getItem(itemName);
441
+ if (!this._schema)
442
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Schema not set when resolving SchemaItem ${name}`);
443
+ const schema = this._schema;
444
+ schemaItem = await schema.getItem(itemName);
436
445
  if (schemaItem)
437
446
  return schemaItem;
438
447
  const foundItem = this._parser.findItem(itemName);
439
448
  if (foundItem) {
440
- schemaItem = await this.loadSchemaItem(this._schema, ...foundItem);
441
- if (!skipVisitor && this.isSchemaItemLoaded(schemaItem) && this._visitorHelper) {
449
+ schemaItem = await this.loadSchemaItem(schema, ...foundItem);
450
+ if (!skipVisitor && schemaItem && this.isSchemaItemLoaded(schemaItem) && this._visitorHelper) {
442
451
  await this._visitorHelper.visitSchemaPart(schemaItem);
443
452
  }
444
453
  if (loadCallBack && schemaItem)
@@ -467,18 +476,23 @@ class SchemaReadHelper {
467
476
  const isInThisSchema = (this._schema && this._schema.name.toLowerCase() === schemaName.toLowerCase());
468
477
  if (undefined === schemaName || schemaName.length === 0)
469
478
  throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `The SchemaItem ${name} is invalid without a schema name`);
470
- if (isInThisSchema && undefined === this._schema.getItemSync(itemName)) {
471
- const foundItem = this._parser.findItem(itemName);
472
- if (foundItem) {
473
- schemaItem = this.loadSchemaItemSync(this._schema, ...foundItem);
474
- if (!skipVisitor && this.isSchemaItemLoaded(schemaItem) && this._visitorHelper) {
475
- this._visitorHelper.visitSchemaPartSync(schemaItem);
479
+ if (isInThisSchema) {
480
+ if (!this._schema)
481
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Schema not set when resolving SchemaItem ${name}`);
482
+ const schema = this._schema;
483
+ if (undefined === schema.getItemSync(itemName)) {
484
+ const foundItem = this._parser.findItem(itemName);
485
+ if (foundItem) {
486
+ schemaItem = this.loadSchemaItemSync(schema, ...foundItem);
487
+ if (!skipVisitor && schemaItem && this.isSchemaItemLoaded(schemaItem) && this._visitorHelper) {
488
+ this._visitorHelper.visitSchemaPartSync(schemaItem);
489
+ }
490
+ if (loadCallBack && schemaItem)
491
+ loadCallBack(schemaItem);
492
+ return schemaItem;
476
493
  }
477
- if (loadCallBack && schemaItem)
478
- loadCallBack(schemaItem);
479
- return schemaItem;
494
+ throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);
480
495
  }
481
- throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);
482
496
  }
483
497
  schemaItem = this._context.getSchemaItemSync(new SchemaKey_1.SchemaItemKey(itemName, new SchemaKey_1.SchemaKey(schemaName)));
484
498
  if (undefined === schemaItem)