@itwin/ecschema-editing 3.0.0-dev.77 → 3.0.0-dev.81

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 (290) hide show
  1. package/lib/{Editing → cjs/Editing}/Constants.d.ts +0 -0
  2. package/lib/cjs/Editing/Constants.d.ts.map +1 -0
  3. package/lib/{Editing → cjs/Editing}/Constants.js +0 -0
  4. package/lib/cjs/Editing/Constants.js.map +1 -0
  5. package/lib/{Editing → cjs/Editing}/CustomAttributes.d.ts +0 -0
  6. package/lib/cjs/Editing/CustomAttributes.d.ts.map +1 -0
  7. package/lib/{Editing → cjs/Editing}/CustomAttributes.js +0 -0
  8. package/lib/cjs/Editing/CustomAttributes.js.map +1 -0
  9. package/lib/{Editing → cjs/Editing}/ECClasses.d.ts +0 -0
  10. package/lib/cjs/Editing/ECClasses.d.ts.map +1 -0
  11. package/lib/{Editing → cjs/Editing}/ECClasses.js +0 -0
  12. package/lib/cjs/Editing/ECClasses.js.map +1 -0
  13. package/lib/{Editing → cjs/Editing}/Editor.d.ts +0 -0
  14. package/lib/cjs/Editing/Editor.d.ts.map +1 -0
  15. package/lib/{Editing → cjs/Editing}/Editor.js +4 -33
  16. package/lib/cjs/Editing/Editor.js.map +1 -0
  17. package/lib/{Editing → cjs/Editing}/Entities.d.ts +0 -0
  18. package/lib/cjs/Editing/Entities.d.ts.map +1 -0
  19. package/lib/{Editing → cjs/Editing}/Entities.js +0 -0
  20. package/lib/cjs/Editing/Entities.js.map +1 -0
  21. package/lib/{Editing → cjs/Editing}/Enumerations.d.ts +0 -0
  22. package/lib/cjs/Editing/Enumerations.d.ts.map +1 -0
  23. package/lib/{Editing → cjs/Editing}/Enumerations.js +0 -0
  24. package/lib/cjs/Editing/Enumerations.js.map +1 -0
  25. package/lib/{Editing → cjs/Editing}/Formats.d.ts +0 -0
  26. package/lib/cjs/Editing/Formats.d.ts.map +1 -0
  27. package/lib/{Editing → cjs/Editing}/Formats.js +0 -0
  28. package/lib/cjs/Editing/Formats.js.map +1 -0
  29. package/lib/{Editing → cjs/Editing}/InvertedUnits.d.ts +0 -0
  30. package/lib/cjs/Editing/InvertedUnits.d.ts.map +1 -0
  31. package/lib/{Editing → cjs/Editing}/InvertedUnits.js +0 -0
  32. package/lib/cjs/Editing/InvertedUnits.js.map +1 -0
  33. package/lib/{Editing → cjs/Editing}/KindOfQuantities.d.ts +0 -0
  34. package/lib/cjs/Editing/KindOfQuantities.d.ts.map +1 -0
  35. package/lib/{Editing → cjs/Editing}/KindOfQuantities.js +0 -0
  36. package/lib/cjs/Editing/KindOfQuantities.js.map +1 -0
  37. package/lib/{Editing → cjs/Editing}/Mixins.d.ts +0 -0
  38. package/lib/cjs/Editing/Mixins.d.ts.map +1 -0
  39. package/lib/{Editing → cjs/Editing}/Mixins.js +0 -0
  40. package/lib/cjs/Editing/Mixins.js.map +1 -0
  41. package/lib/{Editing → cjs/Editing}/Mutable/MutableCAClass.d.ts +0 -0
  42. package/lib/cjs/Editing/Mutable/MutableCAClass.d.ts.map +1 -0
  43. package/lib/{Editing → cjs/Editing}/Mutable/MutableCAClass.js +0 -0
  44. package/lib/cjs/Editing/Mutable/MutableCAClass.js.map +1 -0
  45. package/lib/{Editing → cjs/Editing}/Mutable/MutableClass.d.ts +0 -0
  46. package/lib/cjs/Editing/Mutable/MutableClass.d.ts.map +1 -0
  47. package/lib/{Editing → cjs/Editing}/Mutable/MutableClass.js +0 -0
  48. package/lib/cjs/Editing/Mutable/MutableClass.js.map +1 -0
  49. package/lib/{Editing → cjs/Editing}/Mutable/MutableConstant.d.ts +0 -0
  50. package/lib/cjs/Editing/Mutable/MutableConstant.d.ts.map +1 -0
  51. package/lib/{Editing → cjs/Editing}/Mutable/MutableConstant.js +0 -0
  52. package/lib/cjs/Editing/Mutable/MutableConstant.js.map +1 -0
  53. package/lib/{Editing → cjs/Editing}/Mutable/MutableEntityClass.d.ts +0 -0
  54. package/lib/cjs/Editing/Mutable/MutableEntityClass.d.ts.map +1 -0
  55. package/lib/{Editing → cjs/Editing}/Mutable/MutableEntityClass.js +0 -0
  56. package/lib/cjs/Editing/Mutable/MutableEntityClass.js.map +1 -0
  57. package/lib/{Editing → cjs/Editing}/Mutable/MutableEnumeration.d.ts +0 -0
  58. package/lib/cjs/Editing/Mutable/MutableEnumeration.d.ts.map +1 -0
  59. package/lib/{Editing → cjs/Editing}/Mutable/MutableEnumeration.js +0 -0
  60. package/lib/cjs/Editing/Mutable/MutableEnumeration.js.map +1 -0
  61. package/lib/{Editing → cjs/Editing}/Mutable/MutableFormat.d.ts +0 -0
  62. package/lib/cjs/Editing/Mutable/MutableFormat.d.ts.map +1 -0
  63. package/lib/{Editing → cjs/Editing}/Mutable/MutableFormat.js +0 -0
  64. package/lib/cjs/Editing/Mutable/MutableFormat.js.map +1 -0
  65. package/lib/{Editing → cjs/Editing}/Mutable/MutableInvertedUnit.d.ts +0 -0
  66. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.d.ts.map +1 -0
  67. package/lib/{Editing → cjs/Editing}/Mutable/MutableInvertedUnit.js +0 -0
  68. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.js.map +1 -0
  69. package/lib/{Editing → cjs/Editing}/Mutable/MutableKindOfQuantity.d.ts +0 -0
  70. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.d.ts.map +1 -0
  71. package/lib/{Editing → cjs/Editing}/Mutable/MutableKindOfQuantity.js +0 -0
  72. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.js.map +1 -0
  73. package/lib/{Editing → cjs/Editing}/Mutable/MutableMixin.d.ts +0 -0
  74. package/lib/cjs/Editing/Mutable/MutableMixin.d.ts.map +1 -0
  75. package/lib/{Editing → cjs/Editing}/Mutable/MutableMixin.js +0 -0
  76. package/lib/cjs/Editing/Mutable/MutableMixin.js.map +1 -0
  77. package/lib/{Editing → cjs/Editing}/Mutable/MutablePhenomenon.d.ts +0 -0
  78. package/lib/cjs/Editing/Mutable/MutablePhenomenon.d.ts.map +1 -0
  79. package/lib/{Editing → cjs/Editing}/Mutable/MutablePhenomenon.js +0 -0
  80. package/lib/cjs/Editing/Mutable/MutablePhenomenon.js.map +1 -0
  81. package/lib/{Editing → cjs/Editing}/Mutable/MutableProperty.d.ts +0 -0
  82. package/lib/cjs/Editing/Mutable/MutableProperty.d.ts.map +1 -0
  83. package/lib/{Editing → cjs/Editing}/Mutable/MutableProperty.js +0 -0
  84. package/lib/cjs/Editing/Mutable/MutableProperty.js.map +1 -0
  85. package/lib/{Editing → cjs/Editing}/Mutable/MutablePropertyCategory.d.ts +0 -0
  86. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.d.ts.map +1 -0
  87. package/lib/{Editing → cjs/Editing}/Mutable/MutablePropertyCategory.js +0 -0
  88. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.js.map +1 -0
  89. package/lib/{Editing → cjs/Editing}/Mutable/MutableRelationshipClass.d.ts +0 -0
  90. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.d.ts.map +1 -0
  91. package/lib/{Editing → cjs/Editing}/Mutable/MutableRelationshipClass.js +0 -0
  92. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.js.map +1 -0
  93. package/lib/{Editing → cjs/Editing}/Mutable/MutableSchema.d.ts +0 -0
  94. package/lib/cjs/Editing/Mutable/MutableSchema.d.ts.map +1 -0
  95. package/lib/{Editing → cjs/Editing}/Mutable/MutableSchema.js +0 -0
  96. package/lib/cjs/Editing/Mutable/MutableSchema.js.map +1 -0
  97. package/lib/{Editing → cjs/Editing}/Mutable/MutableUnit.d.ts +0 -0
  98. package/lib/cjs/Editing/Mutable/MutableUnit.d.ts.map +1 -0
  99. package/lib/{Editing → cjs/Editing}/Mutable/MutableUnit.js +0 -0
  100. package/lib/cjs/Editing/Mutable/MutableUnit.js.map +1 -0
  101. package/lib/{Editing → cjs/Editing}/Mutable/MutableUnitSystem.d.ts +0 -0
  102. package/lib/cjs/Editing/Mutable/MutableUnitSystem.d.ts.map +1 -0
  103. package/lib/{Editing → cjs/Editing}/Mutable/MutableUnitSystem.js +0 -0
  104. package/lib/cjs/Editing/Mutable/MutableUnitSystem.js.map +1 -0
  105. package/lib/{Editing → cjs/Editing}/Phenomena.d.ts +0 -0
  106. package/lib/cjs/Editing/Phenomena.d.ts.map +1 -0
  107. package/lib/{Editing → cjs/Editing}/Phenomena.js +0 -0
  108. package/lib/cjs/Editing/Phenomena.js.map +1 -0
  109. package/lib/{Editing → cjs/Editing}/PropertyCategories.d.ts +0 -0
  110. package/lib/cjs/Editing/PropertyCategories.d.ts.map +1 -0
  111. package/lib/{Editing → cjs/Editing}/PropertyCategories.js +0 -0
  112. package/lib/cjs/Editing/PropertyCategories.js.map +1 -0
  113. package/lib/{Editing → cjs/Editing}/RelationshipClasses.d.ts +0 -0
  114. package/lib/cjs/Editing/RelationshipClasses.d.ts.map +1 -0
  115. package/lib/{Editing → cjs/Editing}/RelationshipClasses.js +0 -0
  116. package/lib/cjs/Editing/RelationshipClasses.js.map +1 -0
  117. package/lib/{Editing → cjs/Editing}/Structs.d.ts +0 -0
  118. package/lib/cjs/Editing/Structs.d.ts.map +1 -0
  119. package/lib/{Editing → cjs/Editing}/Structs.js +0 -0
  120. package/lib/cjs/Editing/Structs.js.map +1 -0
  121. package/lib/{Editing → cjs/Editing}/UnitSystems.d.ts +0 -0
  122. package/lib/cjs/Editing/UnitSystems.d.ts.map +1 -0
  123. package/lib/{Editing → cjs/Editing}/UnitSystems.js +0 -0
  124. package/lib/cjs/Editing/UnitSystems.js.map +1 -0
  125. package/lib/{Editing → cjs/Editing}/Units.d.ts +0 -0
  126. package/lib/cjs/Editing/Units.d.ts.map +1 -0
  127. package/lib/{Editing → cjs/Editing}/Units.js +0 -0
  128. package/lib/cjs/Editing/Units.js.map +1 -0
  129. package/lib/{Validation → cjs/Validation}/Diagnostic.d.ts +0 -0
  130. package/lib/cjs/Validation/Diagnostic.d.ts.map +1 -0
  131. package/lib/{Validation → cjs/Validation}/Diagnostic.js +0 -0
  132. package/lib/cjs/Validation/Diagnostic.js.map +1 -0
  133. package/lib/{Validation → cjs/Validation}/DiagnosticReporter.d.ts +0 -0
  134. package/lib/cjs/Validation/DiagnosticReporter.d.ts.map +1 -0
  135. package/lib/{Validation → cjs/Validation}/DiagnosticReporter.js +0 -0
  136. package/lib/cjs/Validation/DiagnosticReporter.js.map +1 -0
  137. package/lib/{Validation → cjs/Validation}/ECRules.d.ts +0 -0
  138. package/lib/cjs/Validation/ECRules.d.ts.map +1 -0
  139. package/lib/{Validation → cjs/Validation}/ECRules.js +235 -330
  140. package/lib/cjs/Validation/ECRules.js.map +1 -0
  141. package/lib/{Validation → cjs/Validation}/LoggingDiagnosticReporter.d.ts +0 -0
  142. package/lib/cjs/Validation/LoggingDiagnosticReporter.d.ts.map +1 -0
  143. package/lib/{Validation → cjs/Validation}/LoggingDiagnosticReporter.js +1 -1
  144. package/lib/cjs/Validation/LoggingDiagnosticReporter.js.map +1 -0
  145. package/lib/{Validation → cjs/Validation}/RuleSuppressionSet.d.ts +0 -0
  146. package/lib/cjs/Validation/RuleSuppressionSet.d.ts.map +1 -0
  147. package/lib/{Validation → cjs/Validation}/RuleSuppressionSet.js +0 -0
  148. package/lib/cjs/Validation/RuleSuppressionSet.js.map +1 -0
  149. package/lib/{Validation → cjs/Validation}/Rules.d.ts +0 -0
  150. package/lib/cjs/Validation/Rules.d.ts.map +1 -0
  151. package/lib/{Validation → cjs/Validation}/Rules.js +0 -0
  152. package/lib/cjs/Validation/Rules.js.map +1 -0
  153. package/lib/{Validation → cjs/Validation}/SchemaChanges.d.ts +0 -0
  154. package/lib/cjs/Validation/SchemaChanges.d.ts.map +1 -0
  155. package/lib/{Validation → cjs/Validation}/SchemaChanges.js +0 -0
  156. package/lib/cjs/Validation/SchemaChanges.js.map +1 -0
  157. package/lib/{Validation → cjs/Validation}/SchemaCompareDiagnostics.d.ts +0 -0
  158. package/lib/cjs/Validation/SchemaCompareDiagnostics.d.ts.map +1 -0
  159. package/lib/{Validation → cjs/Validation}/SchemaCompareDiagnostics.js +0 -0
  160. package/lib/cjs/Validation/SchemaCompareDiagnostics.js.map +1 -0
  161. package/lib/{Validation → cjs/Validation}/SchemaCompareReporter.d.ts +0 -0
  162. package/lib/cjs/Validation/SchemaCompareReporter.d.ts.map +1 -0
  163. package/lib/{Validation → cjs/Validation}/SchemaCompareReporter.js +0 -0
  164. package/lib/cjs/Validation/SchemaCompareReporter.js.map +1 -0
  165. package/lib/{Validation → cjs/Validation}/SchemaCompareResultDelegate.d.ts +0 -0
  166. package/lib/cjs/Validation/SchemaCompareResultDelegate.d.ts.map +1 -0
  167. package/lib/{Validation → cjs/Validation}/SchemaCompareResultDelegate.js +0 -0
  168. package/lib/cjs/Validation/SchemaCompareResultDelegate.js.map +1 -0
  169. package/lib/{Validation → cjs/Validation}/SchemaCompareVisitor.d.ts +0 -0
  170. package/lib/cjs/Validation/SchemaCompareVisitor.d.ts.map +1 -0
  171. package/lib/{Validation → cjs/Validation}/SchemaCompareVisitor.js +0 -0
  172. package/lib/cjs/Validation/SchemaCompareVisitor.js.map +1 -0
  173. package/lib/{Validation → cjs/Validation}/SchemaComparer.d.ts +0 -0
  174. package/lib/cjs/Validation/SchemaComparer.d.ts.map +1 -0
  175. package/lib/{Validation → cjs/Validation}/SchemaComparer.js +0 -0
  176. package/lib/cjs/Validation/SchemaComparer.js.map +1 -0
  177. package/lib/{Validation → cjs/Validation}/SchemaValidater.d.ts +0 -0
  178. package/lib/cjs/Validation/SchemaValidater.d.ts.map +1 -0
  179. package/lib/{Validation → cjs/Validation}/SchemaValidater.js +0 -0
  180. package/lib/cjs/Validation/SchemaValidater.js.map +1 -0
  181. package/lib/{Validation → cjs/Validation}/SchemaValidationVisitor.d.ts +0 -0
  182. package/lib/cjs/Validation/SchemaValidationVisitor.d.ts.map +1 -0
  183. package/lib/cjs/Validation/SchemaValidationVisitor.js +491 -0
  184. package/lib/cjs/Validation/SchemaValidationVisitor.js.map +1 -0
  185. package/lib/{Validation → cjs/Validation}/SchemaWalker.d.ts +0 -0
  186. package/lib/cjs/Validation/SchemaWalker.d.ts.map +1 -0
  187. package/lib/{Validation → cjs/Validation}/SchemaWalker.js +0 -0
  188. package/lib/cjs/Validation/SchemaWalker.js.map +1 -0
  189. package/lib/{ecschema-editing.d.ts → cjs/ecschema-editing.d.ts} +0 -0
  190. package/lib/cjs/ecschema-editing.d.ts.map +1 -0
  191. package/lib/{ecschema-editing.js → cjs/ecschema-editing.js} +0 -0
  192. package/lib/cjs/ecschema-editing.js.map +1 -0
  193. package/package.json +15 -14
  194. package/lib/Editing/Constants.d.ts.map +0 -1
  195. package/lib/Editing/Constants.js.map +0 -1
  196. package/lib/Editing/CustomAttributes.d.ts.map +0 -1
  197. package/lib/Editing/CustomAttributes.js.map +0 -1
  198. package/lib/Editing/ECClasses.d.ts.map +0 -1
  199. package/lib/Editing/ECClasses.js.map +0 -1
  200. package/lib/Editing/Editor.d.ts.map +0 -1
  201. package/lib/Editing/Editor.js.map +0 -1
  202. package/lib/Editing/Entities.d.ts.map +0 -1
  203. package/lib/Editing/Entities.js.map +0 -1
  204. package/lib/Editing/Enumerations.d.ts.map +0 -1
  205. package/lib/Editing/Enumerations.js.map +0 -1
  206. package/lib/Editing/Formats.d.ts.map +0 -1
  207. package/lib/Editing/Formats.js.map +0 -1
  208. package/lib/Editing/InvertedUnits.d.ts.map +0 -1
  209. package/lib/Editing/InvertedUnits.js.map +0 -1
  210. package/lib/Editing/KindOfQuantities.d.ts.map +0 -1
  211. package/lib/Editing/KindOfQuantities.js.map +0 -1
  212. package/lib/Editing/Mixins.d.ts.map +0 -1
  213. package/lib/Editing/Mixins.js.map +0 -1
  214. package/lib/Editing/Mutable/MutableCAClass.d.ts.map +0 -1
  215. package/lib/Editing/Mutable/MutableCAClass.js.map +0 -1
  216. package/lib/Editing/Mutable/MutableClass.d.ts.map +0 -1
  217. package/lib/Editing/Mutable/MutableClass.js.map +0 -1
  218. package/lib/Editing/Mutable/MutableConstant.d.ts.map +0 -1
  219. package/lib/Editing/Mutable/MutableConstant.js.map +0 -1
  220. package/lib/Editing/Mutable/MutableEntityClass.d.ts.map +0 -1
  221. package/lib/Editing/Mutable/MutableEntityClass.js.map +0 -1
  222. package/lib/Editing/Mutable/MutableEnumeration.d.ts.map +0 -1
  223. package/lib/Editing/Mutable/MutableEnumeration.js.map +0 -1
  224. package/lib/Editing/Mutable/MutableFormat.d.ts.map +0 -1
  225. package/lib/Editing/Mutable/MutableFormat.js.map +0 -1
  226. package/lib/Editing/Mutable/MutableInvertedUnit.d.ts.map +0 -1
  227. package/lib/Editing/Mutable/MutableInvertedUnit.js.map +0 -1
  228. package/lib/Editing/Mutable/MutableKindOfQuantity.d.ts.map +0 -1
  229. package/lib/Editing/Mutable/MutableKindOfQuantity.js.map +0 -1
  230. package/lib/Editing/Mutable/MutableMixin.d.ts.map +0 -1
  231. package/lib/Editing/Mutable/MutableMixin.js.map +0 -1
  232. package/lib/Editing/Mutable/MutablePhenomenon.d.ts.map +0 -1
  233. package/lib/Editing/Mutable/MutablePhenomenon.js.map +0 -1
  234. package/lib/Editing/Mutable/MutableProperty.d.ts.map +0 -1
  235. package/lib/Editing/Mutable/MutableProperty.js.map +0 -1
  236. package/lib/Editing/Mutable/MutablePropertyCategory.d.ts.map +0 -1
  237. package/lib/Editing/Mutable/MutablePropertyCategory.js.map +0 -1
  238. package/lib/Editing/Mutable/MutableRelationshipClass.d.ts.map +0 -1
  239. package/lib/Editing/Mutable/MutableRelationshipClass.js.map +0 -1
  240. package/lib/Editing/Mutable/MutableSchema.d.ts.map +0 -1
  241. package/lib/Editing/Mutable/MutableSchema.js.map +0 -1
  242. package/lib/Editing/Mutable/MutableUnit.d.ts.map +0 -1
  243. package/lib/Editing/Mutable/MutableUnit.js.map +0 -1
  244. package/lib/Editing/Mutable/MutableUnitSystem.d.ts.map +0 -1
  245. package/lib/Editing/Mutable/MutableUnitSystem.js.map +0 -1
  246. package/lib/Editing/Phenomena.d.ts.map +0 -1
  247. package/lib/Editing/Phenomena.js.map +0 -1
  248. package/lib/Editing/PropertyCategories.d.ts.map +0 -1
  249. package/lib/Editing/PropertyCategories.js.map +0 -1
  250. package/lib/Editing/RelationshipClasses.d.ts.map +0 -1
  251. package/lib/Editing/RelationshipClasses.js.map +0 -1
  252. package/lib/Editing/Structs.d.ts.map +0 -1
  253. package/lib/Editing/Structs.js.map +0 -1
  254. package/lib/Editing/UnitSystems.d.ts.map +0 -1
  255. package/lib/Editing/UnitSystems.js.map +0 -1
  256. package/lib/Editing/Units.d.ts.map +0 -1
  257. package/lib/Editing/Units.js.map +0 -1
  258. package/lib/Validation/Diagnostic.d.ts.map +0 -1
  259. package/lib/Validation/Diagnostic.js.map +0 -1
  260. package/lib/Validation/DiagnosticReporter.d.ts.map +0 -1
  261. package/lib/Validation/DiagnosticReporter.js.map +0 -1
  262. package/lib/Validation/ECRules.d.ts.map +0 -1
  263. package/lib/Validation/ECRules.js.map +0 -1
  264. package/lib/Validation/LoggingDiagnosticReporter.d.ts.map +0 -1
  265. package/lib/Validation/LoggingDiagnosticReporter.js.map +0 -1
  266. package/lib/Validation/RuleSuppressionSet.d.ts.map +0 -1
  267. package/lib/Validation/RuleSuppressionSet.js.map +0 -1
  268. package/lib/Validation/Rules.d.ts.map +0 -1
  269. package/lib/Validation/Rules.js.map +0 -1
  270. package/lib/Validation/SchemaChanges.d.ts.map +0 -1
  271. package/lib/Validation/SchemaChanges.js.map +0 -1
  272. package/lib/Validation/SchemaCompareDiagnostics.d.ts.map +0 -1
  273. package/lib/Validation/SchemaCompareDiagnostics.js.map +0 -1
  274. package/lib/Validation/SchemaCompareReporter.d.ts.map +0 -1
  275. package/lib/Validation/SchemaCompareReporter.js.map +0 -1
  276. package/lib/Validation/SchemaCompareResultDelegate.d.ts.map +0 -1
  277. package/lib/Validation/SchemaCompareResultDelegate.js.map +0 -1
  278. package/lib/Validation/SchemaCompareVisitor.d.ts.map +0 -1
  279. package/lib/Validation/SchemaCompareVisitor.js.map +0 -1
  280. package/lib/Validation/SchemaComparer.d.ts.map +0 -1
  281. package/lib/Validation/SchemaComparer.js.map +0 -1
  282. package/lib/Validation/SchemaValidater.d.ts.map +0 -1
  283. package/lib/Validation/SchemaValidater.js.map +0 -1
  284. package/lib/Validation/SchemaValidationVisitor.d.ts.map +0 -1
  285. package/lib/Validation/SchemaValidationVisitor.js +0 -729
  286. package/lib/Validation/SchemaValidationVisitor.js.map +0 -1
  287. package/lib/Validation/SchemaWalker.d.ts.map +0 -1
  288. package/lib/Validation/SchemaWalker.js.map +0 -1
  289. package/lib/ecschema-editing.d.ts.map +0 -1
  290. package/lib/ecschema-editing.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaCompareVisitor.js","sourceRoot":"","sources":["../../../src/Validation/SchemaCompareVisitor.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 Comparison\n */\n\nimport { AnyClass, AnyProperty, Constant, CustomAttributeClass, CustomAttributeContainerProps,\n ECClass, EntityClass, Enumeration, Format, InvertedUnit, ISchemaPartVisitor, KindOfQuantity, Mixin,\n Phenomenon, Property, PropertyCategory, RelationshipClass, RelationshipConstraint, Schema, SchemaItem,\n StructClass, Unit, UnitSystem,\n} from \"@itwin/ecschema-metadata\";\nimport { ISchemaComparer } from \"./SchemaComparer\";\n\n/**\n * An ISchemaPartVisitor interface implementation that is used to compare to Schemas.\n * @internal\n */\nexport class SchemaCompareVisitor implements ISchemaPartVisitor {\n private _schemaB: Schema;\n private _schemaComparer: ISchemaComparer;\n\n /**\n * Initializes a new SchemaCompareVisitor instance.\n * @param schemaComparer The [[SchemaComparer]] to use to compare each item of the schema.\n * @param schemaToCompare The second or 'B' schema to compare against the schema being traversed (Schema A).\n */\n constructor(schemaComparer: ISchemaComparer, schemaToCompare: Schema) {\n this._schemaComparer = schemaComparer;\n this._schemaB = schemaToCompare;\n }\n\n /**\n * Called before schema traversal.\n * @param schema a Schema object.\n */\n public async visitFullSchema(schemaA: Schema) {\n this._schemaComparer.compareSchemaProps(schemaA, this._schemaB);\n }\n\n /**\n * Called for each [[SchemaItem]] instance found during schema traversal.\n * @param schemaItem a SchemaItem object.\n */\n public async visitSchemaItem(schemaItemA: SchemaItem) {\n const schemaItemB = await this._schemaB.lookupItem(schemaItemA.key);\n this._schemaComparer.compareSchemaItems(schemaItemA, schemaItemB);\n }\n\n /**\n * Called for each [[AnyClass]] instance found during schema traversal.\n * @param ecClass an ECClass object.\n */\n public async visitClass(classA: AnyClass): Promise<void> {\n const classB = await this._schemaB.lookupItem<AnyClass>(classA.key);\n this._schemaComparer.compareClasses(classA, classB);\n }\n\n /**\n * Called for each [[AnyProperty]] instance of an ECClass.\n * @param property an AnyProperty object.\n */\n public async visitProperty(propertyA: AnyProperty): Promise<void> {\n let propertyB: AnyProperty | undefined;\n\n const classB = await this._schemaB.lookupItem<ECClass>(propertyA.class.key);\n if (classB)\n propertyB = await classB.getProperty(propertyA.name) as AnyProperty;\n\n this._schemaComparer.compareProperties(propertyA, propertyB);\n }\n\n /**\n * Called for each [[EntityClass]] instance found during schema traversal.\n * @param entityClass an EntityClass object.\n */\n public async visitEntityClass(entityA: EntityClass): Promise<void> {\n const entityB = await this._schemaB.lookupItem<EntityClass>(entityA.key);\n this._schemaComparer.compareEntityClasses(entityA, entityB);\n }\n\n /**\n * Called for each [[StructClass]] instance found during schema traversal.\n * @param structClass a StructClass object.\n */\n public async visitStructClass(_structA: StructClass): Promise<void> {\n // No comparison to make specifically on StructClasses\n }\n\n /**\n * Called for each [[Mixin]] instance found during schema traversal.\n * @param mixin a Mixin object.\n */\n public async visitMixin(mixinA: Mixin): Promise<void> {\n const mixinB = await this._schemaB.lookupItem<Mixin>(mixinA.key);\n this._schemaComparer.compareMixins(mixinA, mixinB);\n }\n\n /**\n * Called for each [[RelationshipClass]] instance found during schema traversal.\n * @param relationshipClass a RelationshipClass object.\n */\n public async visitRelationshipClass(relationshipA: RelationshipClass): Promise<void> {\n const relationshipB = await this._schemaB.lookupItem<RelationshipClass>(relationshipA.key);\n this._schemaComparer.compareRelationshipClasses(relationshipA, relationshipB);\n }\n\n /**\n * Called for each [[RelationshipConstraint]] of each RelationshipClass found during schema traversal.\n * @param relationshipConstraint a RelationshipConstraint object.\n */\n public async visitRelationshipConstraint(constraintA: RelationshipConstraint): Promise<void> {\n let constraintB: RelationshipConstraint | undefined;\n const relationshipB = await this._schemaB.lookupItem<RelationshipClass>(constraintA.relationshipClass.key);\n if (relationshipB)\n constraintB = constraintA.isSource ? relationshipB.source : relationshipB.target;\n this._schemaComparer.compareRelationshipConstraints(constraintA, constraintB);\n }\n\n /**\n * Called for each [[CustomAttributeClass]] instance found during schema traversal.\n * @param customAttributeClass a CustomAttributeClass object.\n */\n public async visitCustomAttributeClass(customAttributeA: CustomAttributeClass): Promise<void> {\n const customAttributeB = await this._schemaB.lookupItem<CustomAttributeClass>(customAttributeA.key);\n this._schemaComparer.compareCustomAttributeClasses(customAttributeA, customAttributeB);\n }\n\n /**\n * Called for each [[CustomAttribute]] container in the schema.\n * @param customAttributeContainer a [[CustomAttributeContainerProps]] object.\n */\n public async visitCustomAttributeContainer(containerA: CustomAttributeContainerProps): Promise<void> {\n const nameParts = containerA.fullName.split(\".\");\n const shortName = nameParts.length === 1 ? nameParts[0] : nameParts[1];\n let containerB: CustomAttributeContainerProps | undefined;\n\n if (Schema.isSchema(containerA)) {\n containerB = this._schemaB;\n } else if (ECClass.isECClass(containerA)) {\n containerB = await this._schemaB.lookupItem(shortName);\n } else if (Property.isProperty(containerA)) {\n const parent = await this._schemaB.lookupItem<ECClass>(containerA.class.key);\n containerB = parent ? await parent.getProperty(shortName) : undefined;\n } else if (RelationshipConstraint.isRelationshipConstraint(containerA)) {\n const parent = await this._schemaB.lookupItem<RelationshipClass>(containerA.relationshipClass.key);\n containerB = parent ? await parent.getProperty(shortName) : undefined;\n }\n\n this._schemaComparer.compareCustomAttributeContainers(containerA, containerB);\n }\n\n /**\n * Called for each [[Enumeration]] instance found during schema traversal.\n * @param enumeration an Enumeration object.\n */\n public async visitEnumeration(enumA: Enumeration) {\n const enumB = await this._schemaB.lookupItem<Enumeration>(enumA.key);\n this._schemaComparer.compareEnumerations(enumA, enumB);\n }\n\n /**\n * Called for each [[KindOfQuantity]] instance found during schema traversal.\n * @param koq a KindOfQuantity object.\n */\n public async visitKindOfQuantity(koqA: KindOfQuantity) {\n const koqB = await this._schemaB.lookupItem<KindOfQuantity>(koqA.key);\n this._schemaComparer.compareKindOfQuantities(koqA, koqB);\n }\n\n /**\n * Called for each [[PropertyCategory]] instance found during schema traversal.\n * @param category a PropertyCategory object.\n */\n public async visitPropertyCategory(categoryA: PropertyCategory) {\n const categoryB = await this._schemaB.lookupItem<PropertyCategory>(categoryA.key);\n this._schemaComparer.comparePropertyCategories(categoryA, categoryB);\n }\n\n /**\n * Called for each [[Format]] instance found during schema traversal.\n * @param format a Format object.\n */\n public async visitFormat(formatA: Format): Promise<void> {\n const formatB = await this._schemaB.lookupItem<Format>(formatA.key);\n this._schemaComparer.compareFormats(formatA, formatB);\n }\n\n /**\n * Called for each [[Unit]] instance found during schema traversal.\n * @param unit a Unit object.\n */\n public async visitUnit(unitA: Unit): Promise<void> {\n const unitB = await this._schemaB.lookupItem<Unit>(unitA.key);\n this._schemaComparer.compareUnits(unitA, unitB);\n }\n\n /**\n * Called for each [[InvertedUnit]] instance found during schema traversal.\n * @param invertedUnit an InvertedUnit object.\n */\n public async visitInvertedUnit(invertedUnitA: InvertedUnit): Promise<void> {\n const invertedUnitB = await this._schemaB.lookupItem<InvertedUnit>(invertedUnitA.key);\n this._schemaComparer.compareInvertedUnits(invertedUnitA, invertedUnitB);\n }\n\n /**\n * Called for each [[UnitSystem]] instance found during schema traversal.\n * @param unitSystem a UnitSystem object.\n */\n public async visitUnitSystem(_unitSystemA: UnitSystem): Promise<void> {\n // No comparison to make specifically on unitSystem\n }\n\n /**\n * Called for each [[Phenomenon]] instance found during schema traversal.\n * @param phenomena a Phenomenon object.\n */\n public async visitPhenomenon(phenomenonA: Phenomenon): Promise<void> {\n const phenomenonB = await this._schemaB.lookupItem<Phenomenon>(phenomenonA.key);\n this._schemaComparer.comparePhenomenons(phenomenonA, phenomenonB);\n }\n\n /**\n * Called for each [[Constant]] instance found during schema traversal.\n * @param constant a Constant object.\n */\n public async visitConstant(constantA: Constant): Promise<void> {\n const constantB = await this._schemaB.lookupItem<Constant>(constantA.key);\n this._schemaComparer.compareConstants(constantA, constantB);\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaComparer.d.ts","sourceRoot":"","sources":["../../../src/Validation/SchemaComparer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaComparer.js","sourceRoot":"","sources":["../../../src/Validation/SchemaComparer.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 Comparison\n */\n\nimport {\n AnyClass, AnyEnumerator, AnyProperty, classModifierToString, Constant,\n containerTypeToString, CustomAttributeClass, CustomAttributeContainerProps, EntityClass, Enumeration, Format, formatTraitsToArray,\n formatTypeToString, InvertedUnit, KindOfQuantity, Mixin, Phenomenon, primitiveTypeToString, PropertyCategory, propertyTypeToString, RelationshipClass,\n RelationshipConstraint, Schema, SchemaItem, schemaItemTypeToString, scientificTypeToString, showSignOptionToString, strengthDirectionToString,\n strengthToString, StructProperty, Unit,\n} from \"@itwin/ecschema-metadata\";\nimport { ISchemaCompareReporter } from \"./SchemaCompareReporter\";\nimport { SchemaCompareResultDelegate } from \"./SchemaCompareResultDelegate\";\nimport { SchemaCompareVisitor } from \"./SchemaCompareVisitor\";\nimport { SchemaWalker } from \"./SchemaWalker\";\n\n/**\n * Enum that identifies if Schema A is being iterated (Forward) or\n * Schema B is being iterated (Backward);\n * @alpha\n */\nexport enum SchemaCompareDirection {\n Forward = 0,\n Backward = 1,\n}\n/**\n * Interface for comparing EC Schemas.\n * @alpha\n */\nexport interface ISchemaComparer {\n compareSchemas(schemaA: Schema, schemaB: Schema): void;\n compareSchemaProps(schemaA: Schema, schemaB: Schema): void;\n compareSchemaItems(schemaItemA: SchemaItem, schemaItemB: SchemaItem | undefined): void;\n compareClasses(classA: AnyClass, classB: AnyClass | undefined): void;\n compareProperties(propertyA: AnyProperty, propertyB: AnyProperty | undefined): void;\n compareEntityClasses(entityA: EntityClass, entityB: EntityClass | undefined): void;\n compareMixins(mixinA: Mixin, mixinB: Mixin | undefined): void;\n compareRelationshipClasses(relationshipClassA: RelationshipClass, relationshipClassB: RelationshipClass | undefined): void;\n compareRelationshipConstraints(relationshipConstraintA: RelationshipConstraint, relationshipConstraintB: RelationshipConstraint | undefined): void;\n compareCustomAttributeClasses(customAttributeClassA: CustomAttributeClass, customAttributeClassB: CustomAttributeClass | undefined): void;\n compareCustomAttributeContainers(containerA: CustomAttributeContainerProps, containerB: CustomAttributeContainerProps | undefined): void;\n compareEnumerations(enumA: Enumeration, enumB: Enumeration | undefined): void;\n compareKindOfQuantities(koqA: KindOfQuantity, koqB: KindOfQuantity | undefined): void;\n comparePropertyCategories(categoryA: PropertyCategory, categoryB: PropertyCategory | undefined): void;\n compareFormats(formatA: Format, formatB: Format | undefined): void;\n compareUnits(unitA: Unit, unitB: Unit | undefined): void;\n compareInvertedUnits(invertedUnitA: InvertedUnit, invertedUnitB: InvertedUnit | undefined): void;\n comparePhenomenons(phenomenonA: Phenomenon, phenomenonB: Phenomenon | undefined): void;\n compareConstants(constantA: Constant, constantB: Constant | undefined): void;\n}\n\nfunction labelsMatch(label1?: string, label2?: string) {\n label1 = label1 === undefined ? \"\" : label1;\n label2 = label2 === undefined ? \"\" : label2;\n return label1 === label2;\n}\n\n/**\n * Compares EC Schemas and reports differences using the [[IDiagnosticReporter]] objects\n * specified.\n * @alpha\n */\nexport class SchemaComparer {\n private _compareDirection: SchemaCompareDirection;\n private _reporter!: SchemaCompareResultDelegate;\n private _reporters: ISchemaCompareReporter[];\n\n /**\n * Initializes a new SchemaComparer instance.\n * @param reporters The [[IDiagnosticReporter]] object(s) to use to report the results.\n */\n constructor(...reporters: ISchemaCompareReporter[]) {\n this._compareDirection = SchemaCompareDirection.Forward;\n this._reporters = reporters;\n }\n\n /**\n * Compares two schemas to identify differences.\n * @param schemaA The first Schema.\n * @param schemaB The second Schema.\n */\n public async compareSchemas(schemaA: Schema, schemaB: Schema) {\n this._reporter = new SchemaCompareResultDelegate(schemaA, schemaB, ...this._reporters);\n let visitor = new SchemaCompareVisitor(this, schemaB);\n let walker = new SchemaWalker(visitor);\n await walker.traverseSchema(schemaA);\n\n this._compareDirection = SchemaCompareDirection.Backward;\n\n visitor = new SchemaCompareVisitor(this, schemaA);\n walker = new SchemaWalker(visitor);\n await walker.traverseSchema(schemaB);\n\n this._compareDirection = SchemaCompareDirection.Forward;\n this._reporter.compareComplete();\n }\n\n /**\n * Compares two schemas to identify differences between property values.\n * @param schemaA The first Schema.\n * @param schemaB The second Schema.\n */\n public async compareSchemaProps(schemaA: Schema, schemaB: Schema): Promise<void> {\n const promises: Array<Promise<void>> = [];\n for (const ref of schemaA.references) {\n const refB = await schemaB.getReference(ref.fullName);\n if (!refB)\n promises.push(this._reporter.reportSchemaReferenceMissing(schemaA, ref, this._compareDirection));\n else if (!refB.schemaKey.matches(ref.schemaKey))\n promises.push(this._reporter.reportSchemaReferenceDelta(schemaA, ref, ref.schemaKey.version.toString(), refB.schemaKey.version.toString(), this._compareDirection));\n }\n\n if (this._compareDirection === SchemaCompareDirection.Backward)\n return;\n\n if (schemaA.schemaKey.toString() !== schemaB.schemaKey.toString())\n promises.push(this._reporter.reportSchemaDelta(schemaA, \"schemaKey\", schemaA.schemaKey.toString(), schemaB.schemaKey.toString(), this._compareDirection));\n\n if (schemaA.alias !== schemaB.alias)\n promises.push(this._reporter.reportSchemaDelta(schemaA, \"alias\", schemaA.alias, schemaB.alias, this._compareDirection));\n\n if (schemaA.description !== schemaB.description)\n promises.push(this._reporter.reportSchemaDelta(schemaA, \"description\", schemaA.description, schemaB.description, this._compareDirection));\n\n if (schemaA.label !== schemaB.label)\n promises.push(this._reporter.reportSchemaDelta(schemaA, \"label\", schemaA.label, schemaB.label, this._compareDirection));\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two SchemaItems to identify differences between property values.\n * @param schemaItemA The first SchemaItem.\n * @param schemaItemB The second SchemaItem.\n */\n public async compareSchemaItems(schemaItemA: SchemaItem, schemaItemB: SchemaItem | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n if (!schemaItemB) {\n promises.push(this._reporter.reportSchemaItemMissing(schemaItemA, this._compareDirection));\n promises.push(this._reporter.reportSchemaItemDelta(schemaItemA, \"description\", schemaItemA.description, undefined, this._compareDirection));\n promises.push(this._reporter.reportSchemaItemDelta(schemaItemA, \"label\", schemaItemA.label, undefined, this._compareDirection));\n promises.push(this._reporter.reportSchemaItemDelta(schemaItemA, \"schemaItemType\", schemaItemTypeToString(schemaItemA.schemaItemType), undefined, this._compareDirection));\n await Promise.all(promises);\n return;\n }\n\n if (this._compareDirection === SchemaCompareDirection.Backward)\n return;\n\n if (schemaItemA.description !== schemaItemB.description)\n promises.push(this._reporter.reportSchemaItemDelta(schemaItemA, \"description\", schemaItemA.description, schemaItemB.description, this._compareDirection));\n\n if (!labelsMatch(schemaItemA.label, schemaItemB.label))\n promises.push(this._reporter.reportSchemaItemDelta(schemaItemA, \"label\", schemaItemA.label, schemaItemB.label, this._compareDirection));\n\n if (schemaItemA.schemaItemType !== schemaItemB.schemaItemType) {\n const aType = schemaItemTypeToString(schemaItemA.schemaItemType);\n const bType = schemaItemTypeToString(schemaItemB.schemaItemType);\n promises.push(this._reporter.reportSchemaItemDelta(schemaItemA, \"schemaItemType\", aType, bType, this._compareDirection));\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two ECClasses to identify differences between property values.\n * @param classA The first ECClass.\n * @param classB The second ECClass.\n */\n public async compareClasses(classA: AnyClass, classB: AnyClass | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && classB)\n return;\n\n const promises: Array<Promise<void>> = [];\n\n const modifierB = classB ? classB.modifier : undefined;\n if (classA.modifier !== modifierB) {\n const aMod = classModifierToString(classA.modifier);\n const bMod = modifierB !== undefined ? classModifierToString(modifierB) : undefined;\n promises.push(this._reporter.reportClassDelta(classA, \"modifier\", aMod, bMod, this._compareDirection));\n }\n\n const baseClassB = classB ? classB.baseClass : undefined;\n if (classA.baseClass || baseClassB) {\n const nameA = classA.baseClass ? classA.baseClass.fullName : undefined;\n const nameB = baseClassB ? baseClassB.fullName : undefined;\n if (nameA !== nameB) {\n const baseA = await classA.baseClass as AnyClass;\n const baseB = baseClassB ? await baseClassB as AnyClass : undefined;\n promises.push(this._reporter.reportBaseClassDelta(classA, baseA, baseB, this._compareDirection));\n }\n }\n await Promise.all(promises);\n }\n\n /**\n * Compares two ECProperties to identify differences between property values.\n * @param propertyA The first ECProperty.\n * @param propertyB The second ECProperty.\n */\n public async compareProperties(propertyA: AnyProperty, propertyB: AnyProperty | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n\n if (!propertyB) {\n promises.push(this._reporter.reportPropertyMissing(propertyA, this._compareDirection));\n if (undefined !== propertyA.label)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"label\", propertyA.label, undefined, this._compareDirection));\n if (undefined !== propertyA.description)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"description\", propertyA.description, undefined, this._compareDirection));\n\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"priority\", propertyA.priority, undefined, this._compareDirection));\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"isReadOnly\", propertyA.isReadOnly, undefined, this._compareDirection));\n\n const catKeyA = propertyA.category ? (await propertyA.category).key : undefined;\n const catKeyAText = catKeyA ? catKeyA.fullName : undefined;\n if (undefined !== catKeyAText)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"category\", catKeyAText, undefined, this._compareDirection));\n\n const koqKeyA = propertyA.kindOfQuantity ? (await propertyA.kindOfQuantity).key : undefined;\n const koqKeyAText = koqKeyA ? koqKeyA.fullName : undefined;\n if (undefined !== koqKeyAText)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"kindOfQuantity\", koqKeyAText, undefined, this._compareDirection));\n\n await this.comparePropertyType(propertyA, undefined);\n await Promise.all(promises);\n return;\n }\n\n if (this._compareDirection === SchemaCompareDirection.Backward)\n return;\n\n if (!labelsMatch(propertyA.label, propertyB.label))\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"label\", propertyA.label, propertyB.label, this._compareDirection));\n\n if (propertyA.description !== propertyB.description)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"description\", propertyA.description, propertyB.description, this._compareDirection));\n\n if (propertyA.isReadOnly !== propertyB.isReadOnly)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"isReadOnly\", propertyA.isReadOnly, propertyB.isReadOnly, this._compareDirection));\n\n if (propertyA.priority !== propertyB.priority)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"priority\", propertyA.priority, propertyB.priority, this._compareDirection));\n\n if (propertyA.category || propertyB.category) {\n const catKeyA = propertyA.category ? (await propertyA.category).key : undefined;\n const catKeyB = propertyB.category ? (await propertyB.category).key : undefined;\n const catKeyAText = catKeyA ? catKeyA.fullName : undefined;\n const catKeyBText = catKeyB ? catKeyB.fullName : undefined;\n if (catKeyAText !== catKeyBText) {\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"category\", catKeyAText, catKeyBText, this._compareDirection));\n }\n }\n\n if (propertyA.kindOfQuantity || propertyB.kindOfQuantity) {\n const koqKeyA = propertyA.kindOfQuantity ? (await propertyA.kindOfQuantity).key : undefined;\n const koqKeyB = propertyB.kindOfQuantity ? (await propertyB.kindOfQuantity).key : undefined;\n const koqKeyAText = koqKeyA ? koqKeyA.fullName : undefined;\n const koqKeyBText = koqKeyB ? koqKeyB.fullName : undefined;\n if (koqKeyAText !== koqKeyBText) {\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"kindOfQuantity\", koqKeyAText, koqKeyBText, this._compareDirection));\n }\n }\n\n promises.push(this.comparePropertyType(propertyA, propertyB));\n await Promise.all(promises);\n }\n\n /**\n * Compares two EntityClass objects to identify differences between property values.\n * @param entityA\n * @param entityB\n */\n public async compareEntityClasses(entityA: EntityClass, entityB: EntityClass | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n for (const mixinA of entityA.mixins) {\n if (!entityB || -1 === entityB.mixins.findIndex((m) => m.fullName === mixinA.fullName))\n promises.push(this._reporter.reportEntityMixinMissing(entityA, await mixinA, this._compareDirection));\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two Mixin objects to identify differences between property values.\n * @param mixinA\n * @param mixinB\n */\n public async compareMixins(mixinA: Mixin, mixinB: Mixin | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && mixinB)\n return;\n\n if (mixinA.appliesTo) {\n const appliesToA = mixinA.appliesTo.fullName;\n const appliesToB = mixinB ? mixinB.appliesTo ? mixinB.appliesTo.fullName : undefined : undefined;\n if (appliesToA !== appliesToB)\n await this._reporter.reportMixinDelta(mixinA, \"appliesTo\", appliesToA, appliesToB, this._compareDirection);\n }\n }\n\n /**\n * Compares two RelationshipClass objects to identify differences between property values.\n * @param relationshipA\n * @param relationshipB\n */\n public async compareRelationshipClasses(relationshipA: RelationshipClass, relationshipB: RelationshipClass | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && relationshipB)\n return;\n\n const promises: Array<Promise<void>> = [];\n\n const strengthB = relationshipB ? relationshipB.strength : undefined;\n if (relationshipA.strength !== strengthB) {\n const strengthAString = strengthToString(relationshipA.strength);\n const strengthBString = strengthB !== undefined ? strengthToString(strengthB) : undefined;\n promises.push(this._reporter.reportRelationshipClassDelta(relationshipA, \"strength\", strengthAString, strengthBString, this._compareDirection));\n }\n\n const directionB = relationshipB ? relationshipB.strengthDirection : undefined;\n if (relationshipA.strengthDirection !== directionB) {\n const directionAString = strengthDirectionToString(relationshipA.strengthDirection);\n const directionBString = directionB !== undefined ? strengthDirectionToString(directionB) : undefined;\n promises.push(this._reporter.reportRelationshipClassDelta(relationshipA, \"strengthDirection\", directionAString, directionBString, this._compareDirection));\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two RelationshipConstraint objects to identify differences between property values.\n * @param relationshipConstraintA\n * @param relationshipConstraintB\n */\n public async compareRelationshipConstraints(constraintA: RelationshipConstraint, constraintB: RelationshipConstraint | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n\n if (constraintA.constraintClasses) {\n for (const classA of constraintA.constraintClasses) {\n if (!constraintB || !constraintB.constraintClasses || -1 === constraintB.constraintClasses.findIndex((c) => c.matchesFullName(classA.fullName)))\n promises.push(this._reporter.reportRelationshipConstraintClassMissing(constraintA, await classA, this._compareDirection));\n }\n }\n\n if (this._compareDirection === SchemaCompareDirection.Backward && constraintB) {\n await Promise.all(promises);\n return;\n }\n\n const constraintBMultiplicity = constraintB ? constraintB.multiplicity : undefined;\n if (constraintA.multiplicity || constraintBMultiplicity) {\n const multiplicityA = constraintA.multiplicity ? constraintA.multiplicity.toString() : undefined;\n const multiplicityB = constraintBMultiplicity ? constraintBMultiplicity.toString() : undefined;\n if (multiplicityA !== multiplicityB)\n promises.push(this._reporter.reportRelationshipConstraintDelta(constraintA, \"multiplicity\", multiplicityA, multiplicityB, this._compareDirection));\n }\n\n const constraintBRoleLabel = constraintB ? constraintB.roleLabel : undefined;\n if (constraintA.roleLabel !== constraintBRoleLabel)\n promises.push(this._reporter.reportRelationshipConstraintDelta(constraintA, \"roleLabel\", constraintA.roleLabel, constraintBRoleLabel, this._compareDirection));\n\n const constraintBPolymorphic = constraintB ? constraintB.polymorphic : undefined;\n if (constraintA.polymorphic !== constraintBPolymorphic)\n promises.push(this._reporter.reportRelationshipConstraintDelta(constraintA, \"polymorphic\", constraintA.polymorphic, constraintBPolymorphic, this._compareDirection));\n\n const constraintBAbstractConstraint = constraintB ? constraintB.abstractConstraint : undefined;\n if (constraintA.abstractConstraint || constraintBAbstractConstraint) {\n const abstractA = constraintA.abstractConstraint ? constraintA.abstractConstraint.fullName : undefined;\n const abstractB = constraintBAbstractConstraint ? constraintBAbstractConstraint.fullName : undefined;\n if (abstractA !== abstractB) {\n promises.push(this._reporter.reportRelationshipConstraintDelta(constraintA, \"abstractConstraint\", abstractA, abstractB, this._compareDirection));\n }\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two CustomAttributeClass objects to identify differences between property values.\n * @param customAttributeClassA\n * @param customAttributeClassB\n */\n public async compareCustomAttributeClasses(customAttributeClassA: CustomAttributeClass, customAttributeClassB: CustomAttributeClass | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && customAttributeClassB)\n return;\n\n const containerTypeB = customAttributeClassB ? customAttributeClassB.containerType : undefined;\n if (customAttributeClassA.containerType !== containerTypeB) {\n const typeA = containerTypeToString(customAttributeClassA.containerType);\n const typeB = containerTypeB !== undefined ? containerTypeToString(containerTypeB) : undefined;\n await this._reporter.reportCustomAttributeClassDelta(customAttributeClassA, \"appliesTo\", typeA, typeB, this._compareDirection);\n }\n }\n\n /**\n * Compares two CustomAttributeContainerProps objects to identify differences between property values.\n * @param containerA\n * @param containerB\n */\n public async compareCustomAttributeContainers(containerA: CustomAttributeContainerProps, containerB: CustomAttributeContainerProps | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n\n if (containerA.customAttributes) {\n for (const ca of containerA.customAttributes) {\n if (!containerB || !containerB.customAttributes || !containerB.customAttributes.has(ca[0]))\n promises.push(this._reporter.reportCustomAttributeInstanceClassMissing(containerA, ca[1], this._compareDirection));\n }\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two Enumeration objects to identify differences between property values.\n * @param enumA\n * @param enumB\n */\n public async compareEnumerations(enumA: Enumeration, enumB: Enumeration | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n\n for (const enumeratorA of enumA.enumerators) {\n const enumeratorB = enumB ? enumB.enumerators.find((e) => e.name === enumeratorA.name) : undefined;\n if (!enumeratorB) {\n promises.push(this._reporter.reportEnumeratorMissing(enumA, enumeratorA, this._compareDirection));\n promises.push(this.compareEnumerators(enumeratorA, enumeratorB, enumA, enumB));\n } else if (this._compareDirection === SchemaCompareDirection.Forward) {\n promises.push(this.compareEnumerators(enumeratorA, enumeratorB, enumA, enumB));\n }\n }\n\n if (this._compareDirection === SchemaCompareDirection.Backward && enumB) {\n await Promise.all(promises);\n return;\n }\n\n const typeB = enumB ? enumB.type : undefined;\n if (enumA.type !== typeB) {\n const typeAString = enumA.type ? primitiveTypeToString(enumA.type) : undefined;\n const typeBString = typeB !== undefined ? primitiveTypeToString(typeB) : undefined;\n promises.push(this._reporter.reportEnumerationDelta(enumA, \"type\", typeAString, typeBString, this._compareDirection));\n }\n\n const isStrictB = enumB ? enumB.isStrict : undefined;\n if (enumA.isStrict !== isStrictB)\n promises.push(this._reporter.reportEnumerationDelta(enumA, \"isStrict\", enumA.isStrict, isStrictB, this._compareDirection));\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two KindOfQuantity objects to identify differences between property values.\n * @param koqA\n * @param koqB\n */\n public async compareKindOfQuantities(koqA: KindOfQuantity, koqB: KindOfQuantity | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n\n if (koqA.presentationFormats) {\n for (const unit of koqA.presentationFormats) {\n if (!koqB || !koqB.presentationFormats || -1 === koqB.presentationFormats.findIndex((u) => u.fullName === unit.fullName))\n promises.push(this._reporter.reportPresentationUnitMissing(koqA, unit, this._compareDirection));\n }\n }\n\n if (this._compareDirection === SchemaCompareDirection.Backward && koqB) {\n await Promise.all(promises);\n return;\n }\n\n const errorB = koqB ? koqB.relativeError : undefined;\n if (koqA.relativeError !== errorB) {\n promises.push(this._reporter.reportKoqDelta(koqA, \"relativeError\", koqA.relativeError, errorB, this._compareDirection));\n }\n\n const unitB = koqB ? koqB.persistenceUnit : undefined;\n if (koqA.persistenceUnit || unitB) {\n const unitNameA = koqA.persistenceUnit ? koqA.persistenceUnit.fullName : undefined;\n const unitNameB = unitB ? unitB.fullName : undefined;\n if (unitNameA !== unitNameB) {\n promises.push(this._reporter.reportKoqDelta(koqA, \"persistenceUnit\", await koqA.persistenceUnit, await unitB, this._compareDirection));\n }\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two PropertyCategory objects to identify differences between property values.\n * @param categoryA\n * @param categoryB\n */\n public async comparePropertyCategories(categoryA: PropertyCategory, categoryB: PropertyCategory | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && categoryB)\n return;\n\n const priorityB = categoryB ? categoryB.priority : undefined;\n if (categoryA.priority !== priorityB)\n await this._reporter.reportPropertyCategoryDelta(categoryA, \"priority\", categoryA.priority, priorityB, this._compareDirection);\n }\n\n /**\n * Compares two Format objects to identify differences between property values.\n * @param formatA\n * @param formatB\n */\n public async compareFormats(formatA: Format, formatB: Format | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n\n promises.push(this.compareFormatUnits(formatA, formatB));\n\n if (this._compareDirection === SchemaCompareDirection.Backward && formatB) {\n await Promise.all(promises);\n return;\n }\n\n const roundFactorB = formatB ? formatB.roundFactor : undefined;\n if (formatA.roundFactor !== roundFactorB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"roundFactor\", formatA.roundFactor, roundFactorB, this._compareDirection));\n\n const typeB = formatB ? formatB.type : undefined;\n if (formatA.type !== typeB) {\n const typeAString = formatTypeToString(formatA.type);\n const typeBString = typeB !== undefined ? formatTypeToString(typeB) : undefined;\n promises.push(this._reporter.reportFormatDelta(formatA, \"type\", typeAString, typeBString, this._compareDirection));\n }\n\n const precisionB = formatB ? formatB.precision : undefined;\n if (formatA.precision !== precisionB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"precision\", formatA.precision, precisionB, this._compareDirection));\n\n const minWidthB = formatB ? formatB.minWidth : undefined;\n if (formatA.minWidth !== minWidthB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"minWidth\", formatA.minWidth, minWidthB, this._compareDirection));\n\n const scientificTypeB = formatB ? formatB.scientificType : undefined;\n if (formatA.scientificType !== scientificTypeB) {\n const typeAString = formatA.scientificType !== undefined ? scientificTypeToString(formatA.scientificType) : undefined;\n const typeBString = scientificTypeB !== undefined ? scientificTypeToString(scientificTypeB) : undefined;\n promises.push(this._reporter.reportFormatDelta(formatA, \"scientificType\", typeAString, typeBString, this._compareDirection));\n }\n\n const showSignOptionB = formatB ? formatB.showSignOption : undefined;\n if (formatA.showSignOption !== showSignOptionB) {\n const optionA = showSignOptionToString(formatA.showSignOption);\n const optionB = showSignOptionB !== undefined ? showSignOptionToString(showSignOptionB) : undefined;\n promises.push(this._reporter.reportFormatDelta(formatA, \"showSignOption\", optionA, optionB, this._compareDirection));\n }\n\n const decimalSeparatorB = formatB ? formatB.decimalSeparator : undefined;\n if (formatA.decimalSeparator !== decimalSeparatorB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"decimalSeparator\", formatA.decimalSeparator, decimalSeparatorB, this._compareDirection));\n\n const thousandSeparatorB = formatB ? formatB.thousandSeparator : undefined;\n if (formatA.thousandSeparator !== thousandSeparatorB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"thousandSeparator\", formatA.thousandSeparator, thousandSeparatorB, this._compareDirection));\n\n const uomSeparatorB = formatB ? formatB.uomSeparator : undefined;\n if (formatA.uomSeparator !== uomSeparatorB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"uomSeparator\", formatA.uomSeparator, uomSeparatorB, this._compareDirection));\n\n const stationSeparatorB = formatB ? formatB.stationSeparator : undefined;\n if (formatA.stationSeparator !== stationSeparatorB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"stationSeparator\", formatA.stationSeparator, stationSeparatorB, this._compareDirection));\n\n const stationOffsetSizeB = formatB ? formatB.stationOffsetSize : undefined;\n if (formatA.stationOffsetSize !== stationOffsetSizeB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"stationOffsetSize\", formatA.stationOffsetSize, stationOffsetSizeB, this._compareDirection));\n\n const formatTraitsB = formatB ? formatB.formatTraits : undefined;\n if (formatA.formatTraits !== formatTraitsB) {\n const traitsA = formatTraitsToArray(formatA.formatTraits);\n const traitsB = formatTraitsB !== undefined ? formatTraitsToArray(formatTraitsB) : undefined;\n promises.push(this._reporter.reportFormatDelta(formatA, \"formatTraits\", traitsA.toString(), traitsB ? traitsB.toString() : undefined, this._compareDirection));\n }\n\n const spacerB = formatB ? formatB.spacer : undefined;\n if (formatA.spacer !== spacerB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"spacer\", formatA.spacer, spacerB, this._compareDirection));\n\n const includeZeroB = formatB ? formatB.includeZero : undefined;\n if (formatA.includeZero !== includeZeroB)\n promises.push(this._reporter.reportFormatDelta(formatA, \"includeZero\", formatA.includeZero, includeZeroB, this._compareDirection));\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two Unit objects to identify differences between property values.\n * @param unitA\n * @param unitB\n */\n public async compareUnits(unitA: Unit, unitB: Unit | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && unitB)\n return;\n\n const promises: Array<Promise<void>> = [];\n\n const phenomenonB = unitB ? unitB.phenomenon : undefined;\n if (unitA.phenomenon || phenomenonB) {\n const fullNameA = unitA.phenomenon ? unitA.phenomenon.fullName : undefined;\n const fullNameB = phenomenonB ? phenomenonB.fullName : undefined;\n if (fullNameA !== fullNameB)\n promises.push(this._reporter.reportUnitDelta(unitA, \"phenomenon\", fullNameA, fullNameB, this._compareDirection));\n }\n\n const unitSystemB = unitB ? unitB.unitSystem : undefined;\n if (unitA.unitSystem || unitSystemB) {\n const fullNameA = unitA.unitSystem ? unitA.unitSystem.fullName : undefined;\n const fullNameB = unitSystemB ? unitSystemB.fullName : undefined;\n if (fullNameA !== fullNameB)\n promises.push(this._reporter.reportUnitDelta(unitA, \"unitSystem\", fullNameA, fullNameB, this._compareDirection));\n }\n\n const definitionB = unitB ? unitB.definition : undefined;\n if (unitA.definition !== definitionB)\n promises.push(this._reporter.reportUnitDelta(unitA, \"definition\", unitA.definition, definitionB, this._compareDirection));\n\n const numeratorB = unitB ? unitB.numerator : undefined;\n if (unitA.numerator !== numeratorB)\n promises.push(this._reporter.reportUnitDelta(unitA, \"numerator\", unitA.numerator, numeratorB, this._compareDirection));\n\n const denominatorB = unitB ? unitB.denominator : undefined;\n if (unitA.denominator !== denominatorB)\n promises.push(this._reporter.reportUnitDelta(unitA, \"denominator\", unitA.denominator, denominatorB, this._compareDirection));\n\n const offsetB = unitB ? unitB.offset : undefined;\n if (unitA.offset !== offsetB)\n promises.push(this._reporter.reportUnitDelta(unitA, \"offset\", unitA.offset, offsetB, this._compareDirection));\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two InvertedUnit objects to identify differences between property values.\n * @param invertedUnitA\n * @param invertedUnitB\n */\n public async compareInvertedUnits(invertedUnitA: InvertedUnit, invertedUnitB: InvertedUnit | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && invertedUnitB)\n return;\n\n const promises: Array<Promise<void>> = [];\n\n const invertsUnitB = invertedUnitB ? invertedUnitB.invertsUnit : undefined;\n if (invertedUnitA.invertsUnit || invertsUnitB) {\n const fullNameA = invertedUnitA.invertsUnit ? invertedUnitA.invertsUnit.fullName : undefined;\n const fullNameB = invertsUnitB ? invertsUnitB.fullName : undefined;\n if (fullNameA !== fullNameB)\n promises.push(this._reporter.reportInvertedUnitDelta(invertedUnitA, \"invertsUnit\", fullNameA, fullNameB, this._compareDirection));\n }\n\n const unitSystemB = invertedUnitB ? invertedUnitB.unitSystem : undefined;\n if (invertedUnitA.unitSystem || unitSystemB) {\n const fullNameA = invertedUnitA.unitSystem ? invertedUnitA.unitSystem.fullName : undefined;\n const fullNameB = unitSystemB ? unitSystemB.fullName : undefined;\n if (fullNameA !== fullNameB)\n promises.push(this._reporter.reportInvertedUnitDelta(invertedUnitA, \"unitSystem\", fullNameA, fullNameB, this._compareDirection));\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Compares two Phenomenon objects to identify differences between property values.\n * @param phenomenonA\n * @param phenomenonB\n */\n public async comparePhenomenons(phenomenonA: Phenomenon, phenomenonB: Phenomenon | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && phenomenonB)\n return;\n\n const definitionB = phenomenonB ? phenomenonB.definition : undefined;\n if (phenomenonA.definition !== definitionB)\n await this._reporter.reportPhenomenonDelta(phenomenonA, \"definition\", phenomenonA.definition, definitionB, this._compareDirection);\n }\n\n /**\n * Compares two Constant objects to identify differences between property values.\n * @param constantA\n * @param constantB\n */\n public async compareConstants(constantA: Constant, constantB: Constant | undefined): Promise<void> {\n if (this._compareDirection === SchemaCompareDirection.Backward && constantB)\n return;\n\n const promises: Array<Promise<void>> = [];\n\n const phenomenonB = constantB ? constantB.phenomenon : undefined;\n if (constantA.phenomenon || phenomenonB) {\n const fullNameA = constantA.phenomenon ? constantA.phenomenon.fullName : undefined;\n const fullNameB = phenomenonB ? phenomenonB.fullName : undefined;\n if (fullNameA !== fullNameB)\n promises.push(this._reporter.reportConstantDelta(constantA, \"phenomenon\", fullNameA, fullNameB, this._compareDirection));\n }\n\n const definitionB = constantB ? constantB.definition : undefined;\n if (constantA.definition !== definitionB)\n promises.push(this._reporter.reportConstantDelta(constantA, \"definition\", constantA.definition, definitionB, this._compareDirection));\n\n const numeratorB = constantB ? constantB.numerator : undefined;\n if (constantA.numerator !== numeratorB)\n promises.push(this._reporter.reportConstantDelta(constantA, \"numerator\", constantA.numerator, numeratorB, this._compareDirection));\n\n const denominatorB = constantB ? constantB.denominator : undefined;\n if (constantA.denominator !== denominatorB)\n promises.push(this._reporter.reportConstantDelta(constantA, \"denominator\", constantA.denominator, denominatorB, this._compareDirection));\n\n await Promise.all(promises);\n }\n\n private async comparePropertyType(propertyA: AnyProperty, propertyB?: AnyProperty): Promise<void> {\n const promises: Array<Promise<void>> = [];\n\n const propertyTypeA = propertyTypeToString(propertyA.propertyType);\n const propertyTypeB = propertyB !== undefined ? propertyTypeToString(propertyB.propertyType) : undefined;\n if (propertyTypeA !== propertyTypeB) {\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"type\", propertyTypeA, propertyTypeB, this._compareDirection));\n }\n\n if (propertyA.isArray()) {\n const minOccursB = propertyB && propertyB.isArray() ? propertyB.minOccurs : undefined;\n if (propertyA.minOccurs !== minOccursB) {\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"minOccurs\", propertyA.minOccurs, minOccursB, this._compareDirection));\n }\n\n const maxOccursB = propertyB && propertyB.isArray() ? propertyB.maxOccurs : undefined;\n if (propertyA.maxOccurs !== maxOccursB) {\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"maxOccurs\", propertyA.maxOccurs, maxOccursB, this._compareDirection));\n }\n }\n\n if (propertyA.isEnumeration()) {\n const enumerationB = propertyB && propertyB.isEnumeration() ? propertyB.enumeration : undefined;\n if (propertyA.enumeration || enumerationB) {\n const enumA = propertyA.enumeration ? propertyA.enumeration.fullName : undefined;\n const enumB = enumerationB ? enumerationB.fullName : undefined;\n if (enumA !== enumB)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"enumeration\", enumA, enumB, this._compareDirection));\n }\n }\n\n if (propertyA.isNavigation()) {\n const strengthDirectionB = propertyB && propertyB.isNavigation() ? propertyB.direction : undefined;\n if (propertyA.direction !== strengthDirectionB) {\n const dirA = strengthDirectionToString(propertyA.direction);\n const dirB = strengthDirectionB !== undefined ? strengthDirectionToString(strengthDirectionB) : undefined;\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"direction\", dirA, dirB, this._compareDirection));\n }\n\n if (propertyA.relationshipClass) { // eslint-disable-line @typescript-eslint/no-misused-promises\n const relationshipClassB = propertyB && propertyB.isNavigation() ? propertyB.relationshipClass : undefined;\n const relA = propertyA.relationshipClass.fullName;\n const relB = relationshipClassB ? relationshipClassB.fullName : undefined;\n if (relA !== relB)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"relationshipClass\", relA, relB, this._compareDirection));\n }\n }\n\n if (propertyA.isPrimitive()) {\n const primitiveTypeB = propertyB && propertyB.isPrimitive() ? propertyB.primitiveType : undefined;\n if (propertyA.primitiveType !== primitiveTypeB) {\n const aType = primitiveTypeToString(propertyA.primitiveType);\n const bType = primitiveTypeB !== undefined ? primitiveTypeToString(primitiveTypeB) : undefined;\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"primitiveType\", aType, bType, this._compareDirection));\n }\n }\n\n if (propertyA.isStruct()) {\n const structA = (propertyA as StructProperty).structClass;\n const structB = propertyB && propertyB.isStruct() ? (propertyB as StructProperty).structClass : undefined;\n if (structA || structB) {\n const structNameA = structA ? structA.fullName : undefined;\n const structNameB = structB ? structB.fullName : undefined;\n if (structNameA !== structNameB)\n promises.push(this._reporter.reportPropertyDelta(propertyA, \"structClass\", structNameA, structNameB, this._compareDirection));\n }\n }\n\n await Promise.all(promises);\n }\n\n private async compareEnumerators(enumeratorA: AnyEnumerator, enumeratorB: AnyEnumerator | undefined, enumA: Enumeration, enumB: Enumeration | undefined): Promise<void> {\n const promises: Array<Promise<void>> = [];\n\n if (!enumB || !enumeratorB) {\n promises.push(this._reporter.reportEnumeratorDelta(enumA, enumeratorA, \"description\", enumeratorA.description, undefined, this._compareDirection));\n promises.push(this._reporter.reportEnumeratorDelta(enumA, enumeratorA, \"label\", enumeratorA.label, undefined, this._compareDirection));\n promises.push(this._reporter.reportEnumeratorDelta(enumA, enumeratorA, \"value\", enumeratorA.value, undefined, this._compareDirection));\n await Promise.all(promises);\n return;\n }\n if (enumeratorA.description !== enumeratorB.description)\n promises.push(this._reporter.reportEnumeratorDelta(enumA, enumeratorA, \"description\", enumeratorA.description, enumeratorB.description, this._compareDirection));\n\n if (!labelsMatch(enumeratorA.label, enumeratorB.label))\n promises.push(this._reporter.reportEnumeratorDelta(enumA, enumeratorA, \"label\", enumeratorA.label, enumeratorB.label, this._compareDirection));\n\n // No need to compare values if the type is different (which will be reported separately)\n if (enumA.type === enumB.type && enumeratorA.value !== enumeratorB.value)\n promises.push(this._reporter.reportEnumeratorDelta(enumA, enumeratorA, \"value\", enumeratorA.value, enumeratorB.value, this._compareDirection));\n\n await Promise.all(promises);\n }\n\n private async compareFormatUnits(formatA: Format, formatB: Format | undefined): Promise<void> {\n if (!formatA.units)\n return;\n\n const promises: Array<Promise<void>> = [];\n\n for (const unitA of formatA.units) {\n const unitB = formatB && formatB.units ? formatB.units.find((u) => u[0].fullName === unitA[0].fullName) : undefined;\n if (!unitB) {\n promises.push(this._reporter.reportFormatUnitMissing(formatA, unitA[0], this._compareDirection));\n continue;\n }\n\n if (this._compareDirection === SchemaCompareDirection.Backward && formatB)\n continue;\n\n if (unitA[1] !== unitB[1]) {\n const labelA = unitA[1];\n const labelB = unitB[1];\n promises.push(this._reporter.reportUnitLabelOverrideDelta(formatA, unitB[0], labelA, labelB, this._compareDirection));\n }\n }\n\n await Promise.all(promises);\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaValidater.d.ts","sourceRoot":"","sources":["../../../src/Validation/SchemaValidater.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAsB,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAsB7C;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;OAIG;WACiB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAezG,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAMhC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaValidater.js","sourceRoot":"","sources":["../../../src/Validation/SchemaValidater.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,uEAAoE;AACpE,6DAA0F;AAE1F,iDAA8C;AAC9C,uCAAsC;AAEtC,MAAM,kBAAmB,SAAQ,kDAA6B;IAA9D;;QACU,iBAAY,GAAoB,EAAE,CAAC;IAe7C,CAAC;IAbC,iDAAiD;IACjD,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,UAAyB;QAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;;GAGG;AACH,MAAa,eAAe;IAC1B;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,gBAA2B;QAC5E,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACpD,MAAM,SAAS,GAA0B,CAAC,kBAAkB,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,CAAC,mBAAS,CAAC,CAAC;QAC7B,IAAI,gBAAgB;YAClB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,2BAAY,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,kBAAkB,CAAC,WAAW,CAAC;IACxC,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,QAAoB,EAAE,SAAgC;QACpF,MAAM,OAAO,GAAG,IAAI,iDAAuB,EAAE,CAAC;QAC9C,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA3BD,0CA2BC","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 Validation\n */\n\nimport { ISchemaPartVisitor, Schema } from \"@itwin/ecschema-metadata\";\nimport { IRuleSet } from \"./Rules\";\nimport { SchemaValidationVisitor } from \"./SchemaValidationVisitor\";\nimport { IDiagnosticReporter, SuppressionDiagnosticReporter } from \"./DiagnosticReporter\";\nimport { AnyDiagnostic } from \"./Diagnostic\";\nimport { SchemaWalker } from \"./SchemaWalker\";\nimport { ECRuleSet } from \"./ECRules\";\n\nclass CollectionReporter extends SuppressionDiagnosticReporter {\n private _diagnostics: AnyDiagnostic[] = [];\n\n /** Gets the collection of diagnostic message. */\n public get diagnostics(): AnyDiagnostic[] {\n return this._diagnostics;\n }\n\n /**\n * Handles the given [[IDiagnostic]] based on the implementation requirements for a\n * given reporter.\n * @param diagnostic The diagnostic to report.\n */\n protected reportInternal(diagnostic: AnyDiagnostic) {\n this._diagnostics.push(diagnostic);\n }\n}\n\n/**\n * Applies EC Rules, see [[ECRuleSet]], to a given Schema and reports any violations.\n * @beta\n */\nexport class SchemaValidater {\n /**\n * Validates a schema against the [[ECRuleSet]].\n * @param schema The schema to validate.\n * @param validaterRuleSet Optional IRuleSet to be applied to the schema in addition to the default EC rules.\n */\n public static async validateSchema(schema: Schema, validaterRuleSet?: IRuleSet): Promise<AnyDiagnostic[]> {\n const collectionReporter = new CollectionReporter();\n const reporters: IDiagnosticReporter[] = [collectionReporter];\n\n const ruleSets = [ECRuleSet];\n if (validaterRuleSet)\n ruleSets.push(validaterRuleSet);\n\n const visitor = this.createNewVisitor(ruleSets, reporters);\n const reader = new SchemaWalker(visitor);\n await reader.traverseSchema(schema);\n\n return collectionReporter.diagnostics;\n }\n\n private static createNewVisitor(ruleSets: IRuleSet[], reporters: IDiagnosticReporter[]): ISchemaPartVisitor {\n const visitor = new SchemaValidationVisitor();\n ruleSets.forEach((set) => visitor.registerRuleSet(set));\n reporters.forEach((reporter) => visitor.registerReporter(reporter));\n return visitor;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaValidationVisitor.d.ts","sourceRoot":"","sources":["../../../src/Validation/SchemaValidationVisitor.ts"],"names":[],"mappings":"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"}