@itwin/ecschema-metadata 5.1.0-dev.9 → 5.2.0-dev.2

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 (210) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/lib/cjs/Context.d.ts +1 -1
  3. package/lib/cjs/Context.js +1 -1
  4. package/lib/cjs/Context.js.map +1 -1
  5. package/lib/cjs/Deserialization/Helper.d.ts +30 -11
  6. package/lib/cjs/Deserialization/Helper.d.ts.map +1 -1
  7. package/lib/cjs/Deserialization/Helper.js +124 -96
  8. package/lib/cjs/Deserialization/Helper.js.map +1 -1
  9. package/lib/cjs/Deserialization/SchemaGraphUtil.d.ts +12 -3
  10. package/lib/cjs/Deserialization/SchemaGraphUtil.d.ts.map +1 -1
  11. package/lib/cjs/Deserialization/SchemaGraphUtil.js +36 -23
  12. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
  13. package/lib/cjs/Deserialization/XmlParser.d.ts.map +1 -1
  14. package/lib/cjs/Deserialization/XmlParser.js +14 -5
  15. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  16. package/lib/cjs/Deserialization/XmlSerializationUtils.js +1 -1
  17. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  18. package/lib/cjs/ECName.js +1 -1
  19. package/lib/cjs/ECName.js.map +1 -1
  20. package/lib/cjs/ECObjects.d.ts +1 -1
  21. package/lib/cjs/ECObjects.js +2 -2
  22. package/lib/cjs/ECObjects.js.map +1 -1
  23. package/lib/cjs/IncrementalLoading/ClassParsers.d.ts +60 -0
  24. package/lib/cjs/IncrementalLoading/ClassParsers.d.ts.map +1 -0
  25. package/lib/cjs/IncrementalLoading/ClassParsers.js +111 -0
  26. package/lib/cjs/IncrementalLoading/ClassParsers.js.map +1 -0
  27. package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.d.ts +211 -0
  28. package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.d.ts.map +1 -0
  29. package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.js +387 -0
  30. package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -0
  31. package/lib/cjs/IncrementalLoading/FullSchemaQueries.d.ts +14 -0
  32. package/lib/cjs/IncrementalLoading/FullSchemaQueries.d.ts.map +1 -0
  33. package/lib/cjs/IncrementalLoading/FullSchemaQueries.js +609 -0
  34. package/lib/cjs/IncrementalLoading/FullSchemaQueries.js.map +1 -0
  35. package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.d.ts +109 -0
  36. package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.d.ts.map +1 -0
  37. package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js +219 -0
  38. package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -0
  39. package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.d.ts +36 -0
  40. package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.d.ts.map +1 -0
  41. package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.js +77 -0
  42. package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.js.map +1 -0
  43. package/lib/cjs/IncrementalLoading/PerformanceLogger.d.ts +60 -0
  44. package/lib/cjs/IncrementalLoading/PerformanceLogger.d.ts.map +1 -0
  45. package/lib/cjs/IncrementalLoading/PerformanceLogger.js +82 -0
  46. package/lib/cjs/IncrementalLoading/PerformanceLogger.js.map +1 -0
  47. package/lib/cjs/IncrementalLoading/SchemaItemParsers.d.ts +51 -0
  48. package/lib/cjs/IncrementalLoading/SchemaItemParsers.d.ts.map +1 -0
  49. package/lib/cjs/IncrementalLoading/SchemaItemParsers.js +122 -0
  50. package/lib/cjs/IncrementalLoading/SchemaItemParsers.js.map +1 -0
  51. package/lib/cjs/IncrementalLoading/SchemaItemQueries.d.ts +16 -0
  52. package/lib/cjs/IncrementalLoading/SchemaItemQueries.d.ts.map +1 -0
  53. package/lib/cjs/IncrementalLoading/SchemaItemQueries.js +308 -0
  54. package/lib/cjs/IncrementalLoading/SchemaItemQueries.js.map +1 -0
  55. package/lib/cjs/IncrementalLoading/SchemaParser.d.ts +42 -0
  56. package/lib/cjs/IncrementalLoading/SchemaParser.d.ts.map +1 -0
  57. package/lib/cjs/IncrementalLoading/SchemaParser.js +109 -0
  58. package/lib/cjs/IncrementalLoading/SchemaParser.js.map +1 -0
  59. package/lib/cjs/IncrementalLoading/SchemaStubQueries.d.ts +12 -0
  60. package/lib/cjs/IncrementalLoading/SchemaStubQueries.d.ts.map +1 -0
  61. package/lib/cjs/IncrementalLoading/SchemaStubQueries.js +365 -0
  62. package/lib/cjs/IncrementalLoading/SchemaStubQueries.js.map +1 -0
  63. package/lib/cjs/Metadata/Class.d.ts +5 -16
  64. package/lib/cjs/Metadata/Class.d.ts.map +1 -1
  65. package/lib/cjs/Metadata/Class.js +68 -68
  66. package/lib/cjs/Metadata/Class.js.map +1 -1
  67. package/lib/cjs/Metadata/CustomAttribute.d.ts +7 -1
  68. package/lib/cjs/Metadata/CustomAttribute.d.ts.map +1 -1
  69. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  70. package/lib/cjs/Metadata/CustomAttributeClass.d.ts +1 -1
  71. package/lib/cjs/Metadata/CustomAttributeClass.js +1 -1
  72. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  73. package/lib/cjs/Metadata/EntityClass.d.ts +6 -6
  74. package/lib/cjs/Metadata/EntityClass.d.ts.map +1 -1
  75. package/lib/cjs/Metadata/EntityClass.js +48 -26
  76. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  77. package/lib/cjs/Metadata/Format.d.ts +5 -0
  78. package/lib/cjs/Metadata/Format.d.ts.map +1 -1
  79. package/lib/cjs/Metadata/Format.js +7 -0
  80. package/lib/cjs/Metadata/Format.js.map +1 -1
  81. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  82. package/lib/cjs/Metadata/Schema.d.ts +10 -0
  83. package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
  84. package/lib/cjs/Metadata/Schema.js +13 -0
  85. package/lib/cjs/Metadata/Schema.js.map +1 -1
  86. package/lib/cjs/Metadata/SchemaItem.d.ts +10 -0
  87. package/lib/cjs/Metadata/SchemaItem.d.ts.map +1 -1
  88. package/lib/cjs/Metadata/SchemaItem.js +13 -0
  89. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  90. package/lib/cjs/SchemaFormatsProvider.d.ts +4 -3
  91. package/lib/cjs/SchemaFormatsProvider.d.ts.map +1 -1
  92. package/lib/cjs/SchemaFormatsProvider.js +60 -17
  93. package/lib/cjs/SchemaFormatsProvider.js.map +1 -1
  94. package/lib/cjs/SchemaLoader.d.ts +4 -1
  95. package/lib/cjs/SchemaLoader.d.ts.map +1 -1
  96. package/lib/cjs/SchemaLoader.js +4 -1
  97. package/lib/cjs/SchemaLoader.js.map +1 -1
  98. package/lib/cjs/ecschema-metadata.d.ts +2 -0
  99. package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
  100. package/lib/cjs/ecschema-metadata.js +2 -0
  101. package/lib/cjs/ecschema-metadata.js.map +1 -1
  102. package/lib/cjs/utils/SchemaLoadingController.d.ts +37 -0
  103. package/lib/cjs/utils/SchemaLoadingController.d.ts.map +1 -0
  104. package/lib/cjs/utils/SchemaLoadingController.js +65 -0
  105. package/lib/cjs/utils/SchemaLoadingController.js.map +1 -0
  106. package/lib/esm/Context.d.ts +1 -1
  107. package/lib/esm/Context.js +1 -1
  108. package/lib/esm/Context.js.map +1 -1
  109. package/lib/esm/Deserialization/Helper.d.ts +30 -11
  110. package/lib/esm/Deserialization/Helper.d.ts.map +1 -1
  111. package/lib/esm/Deserialization/Helper.js +124 -96
  112. package/lib/esm/Deserialization/Helper.js.map +1 -1
  113. package/lib/esm/Deserialization/SchemaGraphUtil.d.ts +12 -3
  114. package/lib/esm/Deserialization/SchemaGraphUtil.d.ts.map +1 -1
  115. package/lib/esm/Deserialization/SchemaGraphUtil.js +36 -23
  116. package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
  117. package/lib/esm/Deserialization/XmlParser.d.ts.map +1 -1
  118. package/lib/esm/Deserialization/XmlParser.js +14 -5
  119. package/lib/esm/Deserialization/XmlParser.js.map +1 -1
  120. package/lib/esm/Deserialization/XmlSerializationUtils.js +1 -1
  121. package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
  122. package/lib/esm/ECName.js +1 -1
  123. package/lib/esm/ECName.js.map +1 -1
  124. package/lib/esm/ECObjects.d.ts +1 -1
  125. package/lib/esm/ECObjects.js +2 -2
  126. package/lib/esm/ECObjects.js.map +1 -1
  127. package/lib/esm/IncrementalLoading/ClassParsers.d.ts +60 -0
  128. package/lib/esm/IncrementalLoading/ClassParsers.d.ts.map +1 -0
  129. package/lib/esm/IncrementalLoading/ClassParsers.js +104 -0
  130. package/lib/esm/IncrementalLoading/ClassParsers.js.map +1 -0
  131. package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.d.ts +211 -0
  132. package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.d.ts.map +1 -0
  133. package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.js +383 -0
  134. package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -0
  135. package/lib/esm/IncrementalLoading/FullSchemaQueries.d.ts +14 -0
  136. package/lib/esm/IncrementalLoading/FullSchemaQueries.d.ts.map +1 -0
  137. package/lib/esm/IncrementalLoading/FullSchemaQueries.js +606 -0
  138. package/lib/esm/IncrementalLoading/FullSchemaQueries.js.map +1 -0
  139. package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.d.ts +109 -0
  140. package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.d.ts.map +1 -0
  141. package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js +215 -0
  142. package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -0
  143. package/lib/esm/IncrementalLoading/IncrementalSchemaReader.d.ts +36 -0
  144. package/lib/esm/IncrementalLoading/IncrementalSchemaReader.d.ts.map +1 -0
  145. package/lib/esm/IncrementalLoading/IncrementalSchemaReader.js +73 -0
  146. package/lib/esm/IncrementalLoading/IncrementalSchemaReader.js.map +1 -0
  147. package/lib/esm/IncrementalLoading/PerformanceLogger.d.ts +60 -0
  148. package/lib/esm/IncrementalLoading/PerformanceLogger.d.ts.map +1 -0
  149. package/lib/esm/IncrementalLoading/PerformanceLogger.js +78 -0
  150. package/lib/esm/IncrementalLoading/PerformanceLogger.js.map +1 -0
  151. package/lib/esm/IncrementalLoading/SchemaItemParsers.d.ts +51 -0
  152. package/lib/esm/IncrementalLoading/SchemaItemParsers.d.ts.map +1 -0
  153. package/lib/esm/IncrementalLoading/SchemaItemParsers.js +117 -0
  154. package/lib/esm/IncrementalLoading/SchemaItemParsers.js.map +1 -0
  155. package/lib/esm/IncrementalLoading/SchemaItemQueries.d.ts +16 -0
  156. package/lib/esm/IncrementalLoading/SchemaItemQueries.d.ts.map +1 -0
  157. package/lib/esm/IncrementalLoading/SchemaItemQueries.js +305 -0
  158. package/lib/esm/IncrementalLoading/SchemaItemQueries.js.map +1 -0
  159. package/lib/esm/IncrementalLoading/SchemaParser.d.ts +42 -0
  160. package/lib/esm/IncrementalLoading/SchemaParser.d.ts.map +1 -0
  161. package/lib/esm/IncrementalLoading/SchemaParser.js +104 -0
  162. package/lib/esm/IncrementalLoading/SchemaParser.js.map +1 -0
  163. package/lib/esm/IncrementalLoading/SchemaStubQueries.d.ts +12 -0
  164. package/lib/esm/IncrementalLoading/SchemaStubQueries.d.ts.map +1 -0
  165. package/lib/esm/IncrementalLoading/SchemaStubQueries.js +359 -0
  166. package/lib/esm/IncrementalLoading/SchemaStubQueries.js.map +1 -0
  167. package/lib/esm/Metadata/Class.d.ts +5 -16
  168. package/lib/esm/Metadata/Class.d.ts.map +1 -1
  169. package/lib/esm/Metadata/Class.js +68 -68
  170. package/lib/esm/Metadata/Class.js.map +1 -1
  171. package/lib/esm/Metadata/CustomAttribute.d.ts +7 -1
  172. package/lib/esm/Metadata/CustomAttribute.d.ts.map +1 -1
  173. package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
  174. package/lib/esm/Metadata/CustomAttributeClass.d.ts +1 -1
  175. package/lib/esm/Metadata/CustomAttributeClass.js +1 -1
  176. package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
  177. package/lib/esm/Metadata/EntityClass.d.ts +6 -6
  178. package/lib/esm/Metadata/EntityClass.d.ts.map +1 -1
  179. package/lib/esm/Metadata/EntityClass.js +48 -26
  180. package/lib/esm/Metadata/EntityClass.js.map +1 -1
  181. package/lib/esm/Metadata/Format.d.ts +5 -0
  182. package/lib/esm/Metadata/Format.d.ts.map +1 -1
  183. package/lib/esm/Metadata/Format.js +7 -0
  184. package/lib/esm/Metadata/Format.js.map +1 -1
  185. package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
  186. package/lib/esm/Metadata/Schema.d.ts +10 -0
  187. package/lib/esm/Metadata/Schema.d.ts.map +1 -1
  188. package/lib/esm/Metadata/Schema.js +13 -0
  189. package/lib/esm/Metadata/Schema.js.map +1 -1
  190. package/lib/esm/Metadata/SchemaItem.d.ts +10 -0
  191. package/lib/esm/Metadata/SchemaItem.d.ts.map +1 -1
  192. package/lib/esm/Metadata/SchemaItem.js +13 -0
  193. package/lib/esm/Metadata/SchemaItem.js.map +1 -1
  194. package/lib/esm/SchemaFormatsProvider.d.ts +4 -3
  195. package/lib/esm/SchemaFormatsProvider.d.ts.map +1 -1
  196. package/lib/esm/SchemaFormatsProvider.js +61 -18
  197. package/lib/esm/SchemaFormatsProvider.js.map +1 -1
  198. package/lib/esm/SchemaLoader.d.ts +4 -1
  199. package/lib/esm/SchemaLoader.d.ts.map +1 -1
  200. package/lib/esm/SchemaLoader.js +4 -1
  201. package/lib/esm/SchemaLoader.js.map +1 -1
  202. package/lib/esm/ecschema-metadata.d.ts +2 -0
  203. package/lib/esm/ecschema-metadata.d.ts.map +1 -1
  204. package/lib/esm/ecschema-metadata.js +2 -0
  205. package/lib/esm/ecschema-metadata.js.map +1 -1
  206. package/lib/esm/utils/SchemaLoadingController.d.ts +37 -0
  207. package/lib/esm/utils/SchemaLoadingController.d.ts.map +1 -0
  208. package/lib/esm/utils/SchemaLoadingController.js +61 -0
  209. package/lib/esm/utils/SchemaLoadingController.js.map +1 -0
  210. package/package.json +15 -10
@@ -0,0 +1,104 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { ECSchemaNamespaceUris } from "../Constants";
6
+ import { parseSchemaItemType, SchemaItemType } from "../ECObjects";
7
+ import { ClassParser, CustomAttributeClassParser, MixinParser, RelationshipClassParser } from "./ClassParsers";
8
+ import { KindOfQuantityParser, SchemaItemParser } from "./SchemaItemParsers";
9
+ function clean(_key, value) {
10
+ return value === null ? undefined : value;
11
+ }
12
+ /**
13
+ * Parses SchemaProps JSON returned from an ECSql query and returns the correct SchemaProps JSON object.
14
+ * This is necessary as a small amount information (ie. CustomAttributes, unqualified type names, etc.)
15
+ * returned from the iModelDb is in a different format than is required for a given Schema or
16
+ * SchemaItemProps JSON object.
17
+ * @internal
18
+ */
19
+ export class SchemaParser {
20
+ /**
21
+ * Corrects the SchemaProps JSON returned from the query to a proper SchemaProps
22
+ * JSON object.
23
+ * @param schema The SchemaProps JSON object to parse.
24
+ * @param context The SchemaContext that will contain the schema and it's references.
25
+ * @returns The corrected SchemaProps JSON.
26
+ */
27
+ static async parse(schema, context) {
28
+ const props = schema;
29
+ props.$schema = ECSchemaNamespaceUris.SCHEMAURL3_2_JSON,
30
+ props.customAttributes = props.customAttributes ? props.customAttributes.map((attr) => { return parseCustomAttribute(attr); }) : undefined;
31
+ props.label = props.label === null ? undefined : props.label;
32
+ props.description = props.description === null ? undefined : props.description;
33
+ if (props.items) {
34
+ props.items = await this.parseItems(props.items, props.name, context);
35
+ }
36
+ if (!props.customAttributes || props.customAttributes.length === 0)
37
+ delete props.customAttributes;
38
+ const cleaned = JSON.parse(JSON.stringify(props, clean));
39
+ return cleaned;
40
+ }
41
+ /**
42
+ * Parse the given SchemaItemProps array, as returned from an ECSql query, and returns the corrected SchemaItemProps.
43
+ * @param schemaItems The SchemaItemProps array returned from an iModelDb.
44
+ * @param schemaName The name of the Schema to which the SchemaItemProps belong.
45
+ * @param context The SchemaContext containing the Schema.
46
+ * @returns The corrected SchemaItemProps.
47
+ */
48
+ static async parseSchemaItems(schemaItems, schemaName, context) {
49
+ const items = [];
50
+ for (const item of schemaItems) {
51
+ const props = await this.parseItem(item, schemaName, context);
52
+ const cleaned = JSON.parse(JSON.stringify(props, clean));
53
+ items.push(cleaned);
54
+ }
55
+ return items.length > 0 ? items : undefined;
56
+ }
57
+ static async parseItems(schemaItemProps, schemaName, context) {
58
+ const items = {};
59
+ for (const itemProps of schemaItemProps) {
60
+ const props = await this.parseItem(itemProps, schemaName, context);
61
+ items[props.name] = props;
62
+ delete props.name;
63
+ }
64
+ return Object.keys(items).length > 0 ? items : undefined;
65
+ }
66
+ static async parseItem(props, schemaName, context) {
67
+ const schemaItem = "string" === typeof (props) ? JSON.parse(props) : props;
68
+ const type = parseSchemaItemType(schemaItem.schemaItemType);
69
+ switch (type) {
70
+ case SchemaItemType.KindOfQuantity:
71
+ const koqParser = new KindOfQuantityParser(schemaName, context);
72
+ return koqParser.parse(schemaItem);
73
+ case SchemaItemType.EntityClass:
74
+ case SchemaItemType.StructClass:
75
+ const classParser = new ClassParser(schemaName, context);
76
+ return classParser.parse(schemaItem);
77
+ case SchemaItemType.RelationshipClass:
78
+ const relationshipParser = new RelationshipClassParser(schemaName, context);
79
+ return relationshipParser.parse(schemaItem);
80
+ case SchemaItemType.Mixin:
81
+ const mixinParser = new MixinParser(schemaName, context);
82
+ return mixinParser.parse(schemaItem);
83
+ case SchemaItemType.CustomAttributeClass:
84
+ const caParser = new CustomAttributeClassParser(schemaName, context);
85
+ return caParser.parse(schemaItem);
86
+ default:
87
+ const itemParser = new SchemaItemParser(schemaName, context);
88
+ return itemParser.parse(schemaItem);
89
+ }
90
+ }
91
+ }
92
+ /**
93
+ * Utility method to parse CustomAttribute data retrieved from a ECSql query.
94
+ * @param customAttribute CustomAttribute data as retrieved from an iModel query.
95
+ * @returns The CustomAttribute instance.
96
+ * @internal
97
+ */
98
+ export function parseCustomAttribute(customAttribute) {
99
+ return {
100
+ ...customAttribute[customAttribute.ecClass],
101
+ className: `${(customAttribute.ecSchema).split('.')[0]}.${customAttribute.ecClass}`,
102
+ };
103
+ }
104
+ //# sourceMappingURL=SchemaParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaParser.js","sourceRoot":"","sources":["../../../src/IncrementalLoading/SchemaParser.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ECSchemaNamespaceUris } from \"../Constants\";\nimport { SchemaContext } from \"../Context\";\nimport { SchemaItemProps, SchemaProps } from \"../Deserialization/JsonProps\";\nimport { parseSchemaItemType, SchemaItemType } from \"../ECObjects\";\nimport { CustomAttribute } from \"../Metadata/CustomAttribute\";\nimport { ClassParser, CustomAttributeClassParser, MixinParser, RelationshipClassParser } from \"./ClassParsers\";\nimport { KindOfQuantityParser, SchemaItemParser } from \"./SchemaItemParsers\";\n\nfunction clean(_key: string, value: any) {\n return value === null ? undefined : value;\n}\n\ntype MutableSchemaProps = {\n -readonly [K in keyof SchemaProps]: SchemaProps[K]\n};\n\n/**\n * Parses SchemaProps JSON returned from an ECSql query and returns the correct SchemaProps JSON object.\n * This is necessary as a small amount information (ie. CustomAttributes, unqualified type names, etc.)\n * returned from the iModelDb is in a different format than is required for a given Schema or\n * SchemaItemProps JSON object.\n * @internal\n */\nexport class SchemaParser {\n /**\n * Corrects the SchemaProps JSON returned from the query to a proper SchemaProps\n * JSON object.\n * @param schema The SchemaProps JSON object to parse.\n * @param context The SchemaContext that will contain the schema and it's references.\n * @returns The corrected SchemaProps JSON.\n */\n public static async parse(schema: SchemaProps, context: SchemaContext): Promise<SchemaProps> {\n const props = schema as MutableSchemaProps;\n props.$schema = ECSchemaNamespaceUris.SCHEMAURL3_2_JSON,\n props.customAttributes = props.customAttributes ? props.customAttributes.map((attr: any) => { return parseCustomAttribute(attr); }) : undefined;\n props.label = props.label === null ? undefined : props.label;\n props.description = props.description === null ? undefined : props.description;\n if (props.items) {\n props.items = await this.parseItems(props.items as any, props.name, context);\n }\n\n if (!props.customAttributes || props.customAttributes.length === 0)\n delete props.customAttributes;\n\n const cleaned = JSON.parse(JSON.stringify(props, clean)) as SchemaProps;\n return cleaned;\n }\n\n /**\n * Parse the given SchemaItemProps array, as returned from an ECSql query, and returns the corrected SchemaItemProps.\n * @param schemaItems The SchemaItemProps array returned from an iModelDb.\n * @param schemaName The name of the Schema to which the SchemaItemProps belong.\n * @param context The SchemaContext containing the Schema.\n * @returns The corrected SchemaItemProps.\n */\n public static async parseSchemaItems(schemaItems: readonly SchemaItemProps[], schemaName: string, context: SchemaContext): Promise<SchemaItemProps[] | undefined> {\n const items: SchemaItemProps[] = [];\n for (const item of schemaItems) {\n const props = await this.parseItem(item, schemaName, context);\n const cleaned = JSON.parse(JSON.stringify(props, clean));\n items.push(cleaned);\n }\n return items.length > 0 ? items : undefined;\n }\n\n private static async parseItems(schemaItemProps: readonly SchemaItemProps[], schemaName: string, context: SchemaContext): Promise<{ [name: string]: SchemaItemProps } | undefined> {\n const items: { [name: string]: SchemaItemProps } = {};\n for (const itemProps of schemaItemProps) {\n const props = await this.parseItem(itemProps, schemaName, context);\n items[props.name!] = props;\n delete (props as any).name;\n }\n\n return Object.keys(items).length > 0 ? items : undefined;\n }\n\n public static async parseItem(props: SchemaItemProps, schemaName: string, context: SchemaContext): Promise<SchemaItemProps> {\n const schemaItem = \"string\" === typeof (props) ? JSON.parse(props) : props;\n const type = parseSchemaItemType(schemaItem.schemaItemType);\n switch (type) {\n case SchemaItemType.KindOfQuantity:\n const koqParser = new KindOfQuantityParser(schemaName, context);\n return koqParser.parse(schemaItem);\n case SchemaItemType.EntityClass:\n case SchemaItemType.StructClass:\n const classParser = new ClassParser(schemaName, context);\n return classParser.parse(schemaItem);\n case SchemaItemType.RelationshipClass:\n const relationshipParser = new RelationshipClassParser(schemaName, context);\n return relationshipParser.parse(schemaItem);\n case SchemaItemType.Mixin:\n const mixinParser = new MixinParser(schemaName, context);\n return mixinParser.parse(schemaItem);\n case SchemaItemType.CustomAttributeClass:\n const caParser = new CustomAttributeClassParser(schemaName, context);\n return caParser.parse(schemaItem);\n default:\n const itemParser = new SchemaItemParser(schemaName, context);\n return itemParser.parse(schemaItem);\n }\n }\n}\n\n/**\n * Utility method to parse CustomAttribute data retrieved from a ECSql query.\n * @param customAttribute CustomAttribute data as retrieved from an iModel query.\n * @returns The CustomAttribute instance.\n * @internal\n */\nexport function parseCustomAttribute(customAttribute: { ecClass: string; ecSchema: string;[propName: string]: any; }): CustomAttribute {\n return {\n ...customAttribute[customAttribute.ecClass],\n className: `${(customAttribute.ecSchema).split('.')[0]}.${customAttribute.ecClass}`,\n }\n}"]}
@@ -0,0 +1,12 @@
1
+ export declare const modifier: (alias: string) => string;
2
+ export declare const strength: (alias: string) => string;
3
+ export declare const strengthDirection: (alias: string) => string;
4
+ /**
5
+ * Partial Schema queries.
6
+ * @internal
7
+ */
8
+ export declare const ecsqlQueries: {
9
+ schemaStubQuery: string;
10
+ schemaInfoQuery: string;
11
+ };
12
+ //# sourceMappingURL=SchemaStubQueries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaStubQueries.d.ts","sourceRoot":"","sources":["../../../src/IncrementalLoading/SchemaStubQueries.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,UAAW,MAAM,WASrC,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,MAAM,WASrC,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,WAQ9C,CAAC;AAwUF;;;GAGG;AACH,eAAO,MAAM,YAAY;;;CAGxB,CAAC"}
@@ -0,0 +1,359 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { SchemaItemQueries } from "./SchemaItemQueries";
6
+ export const modifier = (alias) => {
7
+ return `
8
+ CASE
9
+ WHEN [${alias}].[modifier] = 0 THEN 'None'
10
+ WHEN [${alias}].[modifier] = 1 THEN 'Abstract'
11
+ WHEN [${alias}].[modifier] = 2 THEN 'Sealed'
12
+ ELSE NULL
13
+ END
14
+ `;
15
+ };
16
+ export const strength = (alias) => {
17
+ return `
18
+ CASE
19
+ WHEN [${alias}].[RelationshipStrength] = 0 THEN 'Referencing'
20
+ WHEN [${alias}].[RelationshipStrength] = 1 THEN 'Holding'
21
+ WHEN [${alias}].[RelationshipStrength] = 2 THEN 'Embedding'
22
+ ELSE NULL
23
+ END
24
+ `;
25
+ };
26
+ export const strengthDirection = (alias) => {
27
+ return `
28
+ CASE
29
+ WHEN [${alias}].[RelationshipStrengthDirection] = 1 THEN 'Forward'
30
+ WHEN [${alias}].[RelationshipStrengthDirection] = 2 THEN 'Backward'
31
+ ELSE NULL
32
+ END
33
+ `;
34
+ };
35
+ const withAppliesTo = `
36
+ AppliesToCTE AS (
37
+ SELECT
38
+ [mixinAppliesTo].[ECInstanceId] AS [AppliesToId],
39
+ [appliesToSchema].[name] as [AppliesToSchema],
40
+ json_extract(XmlCAToJson([ca].[Class].[Id], [ca].[Instance]), '$.IsMixin.AppliesToEntityClass') AS [AppliesTo]
41
+ FROM [meta].[CustomAttribute] [ca]
42
+ JOIN [meta].[ECClassDef] [mixinAppliesTo]
43
+ ON [mixinAppliesTo].[ECInstanceId] = [ca].[ContainerId]
44
+ JOIN [meta].[ECSchemaDef] [appliesToSchema]
45
+ ON [appliesToSchema].[ECInstanceId] = [mixinAppliesTo].[Schema].[Id]
46
+ WHERE [ca].[ContainerType] = 30
47
+ AND json_extract(XmlCAToJson([ca].[Class].[Id], [ca].[Instance]), '$.ecClass') = 'IsMixin'
48
+ )
49
+ `;
50
+ const withSchemaReferences = `
51
+ SchemaReferences AS (
52
+ SELECT
53
+ [ref].[SourceECInstanceId] AS [SchemaId],
54
+ CONCAT([Name],'.',[VersionMajor],'.',[VersionWrite],'.',[VersionMinor]) AS [fullName]
55
+ FROM
56
+ [meta].[ECSchemaDef] AS [refSchema]
57
+ INNER JOIN [meta].[SchemaHasSchemaReferences] [ref]
58
+ ON [ref].[TargetECInstanceId] = [refSchema].[ECInstanceId]
59
+ )
60
+ `;
61
+ const customAttributeQuery = `
62
+ SELECT
63
+ [Schema].[Id] AS [SchemaId],
64
+ json_object(
65
+ 'name', [class].[Name],
66
+ 'schemaItemType', 'CustomAttributeClass',
67
+ 'modifier', ${modifier("class")},
68
+ 'label', [class].[DisplayLabel],
69
+ 'description', [class].[Description],
70
+ 'appliesTo', [class].[CustomAttributeContainerType],
71
+ 'baseClasses', (
72
+ SELECT
73
+ json_group_array(json(json_object(
74
+ 'schema', ec_classname([baseClass].[ECInstanceId], 's'),
75
+ 'name', [baseClass].[Name],
76
+ 'schemaItemType', 'CustomAttributeClass',
77
+ 'modifier', ${modifier("baseClass")},
78
+ 'label', [baseClass].[DisplayLabel],
79
+ 'description', [baseClass].[Description],
80
+ 'appliesTo', [baseClass].[CustomAttributeContainerType]
81
+ )))
82
+ FROM
83
+ [meta].[ECClassDef] [baseClass]
84
+ INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]
85
+ ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]
86
+ WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]
87
+ )
88
+ ) AS [item]
89
+ FROM [meta].[ECClassDef] [class]
90
+ WHERE [class].[Type] = 3
91
+ `;
92
+ const structQuery = `
93
+ SELECT
94
+ [Schema].[Id] AS [SchemaId],
95
+ json_object(
96
+ 'name', [class].[Name],
97
+ 'schemaItemType', 'StructClass',
98
+ 'modifier', ${modifier("class")},
99
+ 'label', [class].[DisplayLabel],
100
+ 'description', [class].[Description],
101
+ 'baseClasses', (
102
+ SELECT
103
+ json_group_array(json(json_object(
104
+ 'schema', ec_classname([baseClass].[ECInstanceId], 's'),
105
+ 'name', [baseClass].[Name],
106
+ 'schemaItemType', 'StructClass',
107
+ 'modifier', ${modifier("baseClass")},
108
+ 'label', [baseClass].[DisplayLabel],
109
+ 'description', [baseClass].[Description]
110
+ )))
111
+ FROM
112
+ [meta].[ECClassDef] [baseClass]
113
+ INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]
114
+ ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]
115
+ WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]
116
+ )
117
+ ) AS [item]
118
+ FROM [meta].[ECClassDef] [class]
119
+ WHERE [class].[Type] = 2
120
+ `;
121
+ const relationshipQuery = `
122
+ SELECT
123
+ [Schema].[Id] AS [SchemaId],
124
+ json_object(
125
+ 'name', [class].[Name],
126
+ 'schemaItemType', 'RelationshipClass',
127
+ 'modifier', ${modifier("class")},
128
+ 'label', [class].[DisplayLabel],
129
+ 'description', [class].[Description],
130
+ 'strength', ${strength("class")},
131
+ 'strengthDirection', ${strengthDirection("class")},
132
+ 'baseClasses', (
133
+ SELECT
134
+ json_group_array(json(json_object(
135
+ 'schema', ec_classname([baseClass].[ECInstanceId], 's'),
136
+ 'name', [baseClass].[Name],
137
+ 'schemaItemType', 'RelationshipClass',
138
+ 'modifier', ${modifier("baseClass")},
139
+ 'label', [baseClass].[DisplayLabel],
140
+ 'description', [baseClass].[Description],
141
+ 'strength', ${strength("baseClass")},
142
+ 'strengthDirection', ${strengthDirection("baseClass")}
143
+ )))
144
+ FROM
145
+ [meta].[ECClassDef] [baseClass]
146
+ INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]
147
+ ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]
148
+ WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]
149
+ )
150
+ ) AS [item]
151
+ FROM [meta].[ECClassDef] [class]
152
+ WHERE [class].[Type] = 1
153
+ `;
154
+ const entityQuery = `
155
+ SELECT
156
+ [Schema].[Id] AS [SchemaId],
157
+ json_object(
158
+ 'name', [class].[Name],
159
+ 'schemaItemType', 'EntityClass',
160
+ 'modifier', ${modifier("class")},
161
+ 'label', [class].[DisplayLabel],
162
+ 'description', [class].[Description],
163
+ 'baseClasses', (
164
+ SELECT
165
+ json_group_array(json(json_object(
166
+ 'schema', ec_classname([baseClass].[ECInstanceId], 's'),
167
+ 'name', [baseClass].[Name],
168
+ 'schemaItemType', 'EntityClass',
169
+ 'modifier', ${modifier("baseClass")},
170
+ 'label', [baseClass].[DisplayLabel],
171
+ 'description', [baseClass].[Description]
172
+ )))
173
+ FROM
174
+ [meta].[ECClassDef] [baseClass]
175
+ INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]
176
+ ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]
177
+ WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]
178
+ AND NOT EXISTS(SELECT 1 FROM [meta].[ClassCustomAttribute] [ca] WHERE [baseClass].[ECInstanceId] = [ca].[Class].[Id]
179
+ AND [ca].[CustomAttributeClass].[Id] Is ([CoreCA].[IsMixin]))
180
+ ),
181
+ 'mixins', (
182
+ SELECT
183
+ json_group_array(json(json_object(
184
+ 'schema', ec_classname([baseClass].[ECInstanceId], 's'),
185
+ 'name', [baseClass].[Name],
186
+ 'schemaItemType', 'Mixin',
187
+ 'modifier', ${modifier("baseClass")},
188
+ 'label', [baseClass].[DisplayLabel],
189
+ 'description', [baseClass].[Description],
190
+ 'appliesTo', (
191
+ SELECT IIF(instr([atCTE].[AppliesTo], ':') > 1, ec_classname(ec_classId([atCTE].[AppliesTo]), 's.c'), CONCAT([atCTE].[AppliesToSchema], '.', [atCTE].[AppliesTo]))
192
+ FROM [AppliesToCTE] [atCTE]
193
+ WHERE [atCTE].[AppliesToId] = [baseClass].[ECInstanceId]
194
+ ),
195
+ 'baseClasses', (
196
+ SELECT
197
+ json_group_array(json(json_object(
198
+ 'schema', ec_classname([mixinBaseClass].[ECInstanceId], 's'),
199
+ 'name', [mixinBaseClass].[Name],
200
+ 'schemaItemType', 'Mixin',
201
+ 'modifier', ${modifier("mixinBaseClass")},
202
+ 'label', [mixinBaseClass].[DisplayLabel],
203
+ 'description', [mixinBaseClass].[Description],
204
+ 'appliesTo', (
205
+ SELECT IIF(instr([atCTE].[AppliesTo], ':') > 1, ec_classname(ec_classId([atCTE].[AppliesTo]), 's.c'), CONCAT([atCTE].[AppliesToSchema], '.', [atCTE].[AppliesTo]))
206
+ FROM [AppliesToCTE] [atCTE]
207
+ WHERE [atCTE].[AppliesToId] = [mixinBaseClass].[ECInstanceId]
208
+ )
209
+ )))
210
+ FROM
211
+ [meta].[ECClassDef] [mixinBaseClass]
212
+ INNER JOIN [meta].[ClassHasAllBaseClasses] [mixinBaseClassMap]
213
+ ON [mixinBaseClassMap].[TargetECInstanceId] = [mixinBaseClass].[ECInstanceId]
214
+ WHERE [mixinBaseClassMap].[SourceECInstanceId] = [baseClass].[ECInstanceId]
215
+ )
216
+ )))
217
+ FROM
218
+ [meta].[ECClassDef] [baseClass]
219
+ INNER JOIN [meta].[ClassHasBaseClasses] [baseClassMap]
220
+ ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]
221
+ WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]
222
+ AND EXISTS(SELECT 1 FROM [meta].[ClassCustomAttribute] [ca] WHERE [baseClass].[ECInstanceId] = [ca].[Class].[Id]
223
+ AND [ca].[CustomAttributeClass].[Id] Is ([CoreCA].[IsMixin]))
224
+ )
225
+ ) AS [item]
226
+ FROM [meta].[ECClassDef] [class]
227
+ WHERE [class].[Type] = 0
228
+ AND NOT EXISTS(SELECT 1 FROM [meta].[ClassCustomAttribute] [ca] WHERE [class].[ECInstanceId] = [ca].[Class].[Id]
229
+ AND [ca].[CustomAttributeClass].[Id] Is ([CoreCA].[IsMixin]))
230
+ `;
231
+ const mixinQuery = `
232
+ SELECT
233
+ [Schema].[Id] AS [SchemaId],
234
+ json_object(
235
+ 'name', [class].[Name],
236
+ 'schemaItemType', 'Mixin',
237
+ 'modifier', ${modifier("class")},
238
+ 'label', [class].[DisplayLabel],
239
+ 'description', [class].[Description],
240
+ 'appliesTo', (
241
+ SELECT IIF(instr([atCTE].[AppliesTo], ':') > 1, ec_classname(ec_classId([atCTE].[AppliesTo]), 's.c'), CONCAT([atCTE].[AppliesToSchema], '.', [atCTE].[AppliesTo]))
242
+ FROM [AppliesToCTE] [atCTE]
243
+ WHERE [atCTE].[AppliesToId] = [class].[ECInstanceId]
244
+ ),
245
+ 'baseClasses', (
246
+ SELECT
247
+ json_group_array(json(json_object(
248
+ 'schema', ec_classname([baseClass].[ECInstanceId], 's'),
249
+ 'name', [baseClass].[Name],
250
+ 'schemaItemType', 'Mixin',
251
+ 'modifier', ${modifier("baseClass")},
252
+ 'label', [baseClass].[DisplayLabel],
253
+ 'description', [baseClass].[Description],
254
+ 'appliesTo', (
255
+ SELECT IIF(instr([atCTE].[AppliesTo], ':') > 1, ec_classname(ec_classId([atCTE].[AppliesTo]), 's.c'), CONCAT([atCTE].[AppliesToSchema], '.', [atCTE].[AppliesTo]))
256
+ FROM [AppliesToCTE] [atCTE]
257
+ WHERE [atCTE].[AppliesToId] = [baseClass].[ECInstanceId]
258
+ )
259
+ )))
260
+ FROM
261
+ [meta].[ECClassDef] [baseClass]
262
+ INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]
263
+ ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]
264
+ WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]
265
+ )
266
+ ) AS [item]
267
+ FROM [meta].[ECClassDef] [class]
268
+ WHERE [class].[Type] = 0 AND EXISTS (SELECT 1 FROM [meta].[ClassCustomAttribute] [ca] WHERE [class].[ECInstanceId] = [ca].[Class].[Id]
269
+ AND [ca].[CustomAttributeClass].[Id] Is ([CoreCA].[IsMixin]))
270
+ `;
271
+ const withSchemaItems = `
272
+ SchemaItems AS (
273
+ ${customAttributeQuery}
274
+ UNION ALL
275
+ ${structQuery}
276
+ UNION ALL
277
+ ${relationshipQuery}
278
+ UNION ALL
279
+ ${entityQuery}
280
+ UNION ALL
281
+ ${mixinQuery}
282
+ UNION ALL
283
+ ${SchemaItemQueries.enumeration()}
284
+ UNION ALL
285
+ ${SchemaItemQueries.kindOfQuantity()}
286
+ UNION ALL
287
+ ${SchemaItemQueries.propertyCategory()}
288
+ UNION ALL
289
+ ${SchemaItemQueries.unit()}
290
+ UNION ALL
291
+ ${SchemaItemQueries.invertedUnit()}
292
+ UNION ALL
293
+ ${SchemaItemQueries.constant()}
294
+ UNION ALL
295
+ ${SchemaItemQueries.phenomenon()}
296
+ UNION ALL
297
+ ${SchemaItemQueries.unitSystem()}
298
+ UNION ALL
299
+ ${SchemaItemQueries.format()}
300
+ )
301
+ `;
302
+ const schemaStubQuery = `
303
+ WITH
304
+ ${withSchemaReferences},
305
+ ${withAppliesTo},
306
+ ${withSchemaItems}
307
+ SELECT
308
+ [Name] as [name],
309
+ CONCAT('',[VersionMajor],'.',[VersionWrite],'.',[VersionMinor]) AS [version],
310
+ [Alias] as [alias],
311
+ [DisplayLabel] as [displayLabel],
312
+ [Description] as [description],
313
+ (
314
+ SELECT
315
+ json_group_array([schemaReferences].[fullName])
316
+ FROM
317
+ [SchemaReferences] [schemaReferences]
318
+ WHERE
319
+ [schemaReferences].[SchemaId] = [schemaDef].[ECInstanceId]
320
+ ) AS [references],
321
+ (
322
+ SELECT
323
+ json_group_array(json([items].[item]))
324
+ FROM
325
+ [SchemaItems] [items]
326
+ WHERE
327
+ [items].[SchemaId] = [schemaDef].[ECInstanceId]
328
+ ) AS [items]
329
+ FROM
330
+ [meta].[ECSchemaDef] [schemaDef]
331
+ WHERE [Name] = :schemaName
332
+ `;
333
+ const schemaInfoQuery = `
334
+ WITH
335
+ ${withSchemaReferences}
336
+ SELECT
337
+ [Name] as [name],
338
+ CONCAT('',[VersionMajor],'.',[VersionWrite],'.',[VersionMinor]) AS [version],
339
+ [Alias] as [alias],
340
+ (
341
+ SELECT
342
+ json_group_array([schemaReferences].[fullName])
343
+ FROM
344
+ [SchemaReferences] [schemaReferences]
345
+ WHERE
346
+ [schemaReferences].[SchemaId] = [schemaDef].[ECInstanceId]
347
+ ) AS [references]
348
+ FROM
349
+ [meta].[ECSchemaDef] [schemaDef]
350
+ `;
351
+ /**
352
+ * Partial Schema queries.
353
+ * @internal
354
+ */
355
+ export const ecsqlQueries = {
356
+ schemaStubQuery,
357
+ schemaInfoQuery,
358
+ };
359
+ //# sourceMappingURL=SchemaStubQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaStubQueries.js","sourceRoot":"","sources":["../../../src/IncrementalLoading/SchemaStubQueries.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO;;cAEK,KAAK;cACL,KAAK;cACL,KAAK;;;GAGhB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO;;cAEK,KAAK;cACL,KAAK;cACL,KAAK;;;GAGhB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE;IACjD,OAAO;;cAEK,KAAK;cACL,KAAK;;;GAGhB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;CAcrB,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;;;;;CAU5B,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;oBAMT,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;0BAUX,QAAQ,CAAC,WAAW,CAAC;;;;;;;;;;;;;;CAc9C,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;oBAMA,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;0BASX,QAAQ,CAAC,WAAW,CAAC;;;;;;;;;;;;;CAa9C,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;oBAMN,QAAQ,CAAC,OAAO,CAAC;;;oBAGjB,QAAQ,CAAC,OAAO,CAAC;6BACR,iBAAiB,CAAC,OAAO,CAAC;;;;;;;0BAO7B,QAAQ,CAAC,WAAW,CAAC;;;0BAGrB,QAAQ,CAAC,WAAW,CAAC;mCACZ,iBAAiB,CAAC,WAAW,CAAC;;;;;;;;;;;CAWhE,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;oBAMA,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;0BASX,QAAQ,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;0BAkBrB,QAAQ,CAAC,WAAW,CAAC;;;;;;;;;;;;;;gCAcf,QAAQ,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzD,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;oBAMC,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;;;;;0BAcX,QAAQ,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;CAmB9C,CAAC;AAEF,MAAM,eAAe,GAAG;;IAEpB,oBAAoB;;IAEpB,WAAW;;IAEX,iBAAiB;;IAEjB,WAAW;;IAEX,UAAU;;IAEV,iBAAiB,CAAC,WAAW,EAAE;;IAE/B,iBAAiB,CAAC,cAAc,EAAE;;IAElC,iBAAiB,CAAC,gBAAgB,EAAE;;IAEpC,iBAAiB,CAAC,IAAI,EAAE;;IAExB,iBAAiB,CAAC,YAAY,EAAE;;IAEhC,iBAAiB,CAAC,QAAQ,EAAE;;IAE5B,iBAAiB,CAAC,UAAU,EAAE;;IAE9B,iBAAiB,CAAC,UAAU,EAAE;;IAE9B,iBAAiB,CAAC,MAAM,EAAE;;CAE7B,CAAC;AAEF,MAAM,eAAe,GAAG;;MAElB,oBAAoB;MACpB,aAAa;MACb,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BpB,CAAC;AAEF,MAAM,eAAe,GAAG;;MAElB,oBAAoB;;;;;;;;;;;;;;;CAezB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe;IACf,eAAe;CAChB,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 *--------------------------------------------------------------------------------------------*/\nimport { SchemaItemQueries } from \"./SchemaItemQueries\";\n\nexport const modifier = (alias: string) => {\n return `\n CASE\n WHEN [${alias}].[modifier] = 0 THEN 'None'\n WHEN [${alias}].[modifier] = 1 THEN 'Abstract'\n WHEN [${alias}].[modifier] = 2 THEN 'Sealed'\n ELSE NULL\n END\n `;\n};\n\nexport const strength = (alias: string) => {\n return `\n CASE\n WHEN [${alias}].[RelationshipStrength] = 0 THEN 'Referencing'\n WHEN [${alias}].[RelationshipStrength] = 1 THEN 'Holding'\n WHEN [${alias}].[RelationshipStrength] = 2 THEN 'Embedding'\n ELSE NULL\n END\n `;\n};\n\nexport const strengthDirection = (alias: string) => {\n return `\n CASE\n WHEN [${alias}].[RelationshipStrengthDirection] = 1 THEN 'Forward'\n WHEN [${alias}].[RelationshipStrengthDirection] = 2 THEN 'Backward'\n ELSE NULL\n END\n `;\n};\n\nconst withAppliesTo = `\n AppliesToCTE AS (\n SELECT\n [mixinAppliesTo].[ECInstanceId] AS [AppliesToId],\n [appliesToSchema].[name] as [AppliesToSchema],\n json_extract(XmlCAToJson([ca].[Class].[Id], [ca].[Instance]), '$.IsMixin.AppliesToEntityClass') AS [AppliesTo]\n FROM [meta].[CustomAttribute] [ca]\n JOIN [meta].[ECClassDef] [mixinAppliesTo]\n ON [mixinAppliesTo].[ECInstanceId] = [ca].[ContainerId]\n JOIN [meta].[ECSchemaDef] [appliesToSchema]\n ON [appliesToSchema].[ECInstanceId] = [mixinAppliesTo].[Schema].[Id]\n WHERE [ca].[ContainerType] = 30\n AND json_extract(XmlCAToJson([ca].[Class].[Id], [ca].[Instance]), '$.ecClass') = 'IsMixin'\n )\n`;\n\nconst withSchemaReferences = `\n SchemaReferences AS (\n SELECT\n [ref].[SourceECInstanceId] AS [SchemaId],\n CONCAT([Name],'.',[VersionMajor],'.',[VersionWrite],'.',[VersionMinor]) AS [fullName]\n FROM\n [meta].[ECSchemaDef] AS [refSchema]\n INNER JOIN [meta].[SchemaHasSchemaReferences] [ref]\n ON [ref].[TargetECInstanceId] = [refSchema].[ECInstanceId]\n )\n`;\n\nconst customAttributeQuery = `\n SELECT\n [Schema].[Id] AS [SchemaId],\n json_object(\n 'name', [class].[Name],\n 'schemaItemType', 'CustomAttributeClass',\n 'modifier', ${modifier(\"class\")},\n 'label', [class].[DisplayLabel],\n 'description', [class].[Description],\n 'appliesTo', [class].[CustomAttributeContainerType],\n 'baseClasses', (\n SELECT\n json_group_array(json(json_object(\n 'schema', ec_classname([baseClass].[ECInstanceId], 's'),\n 'name', [baseClass].[Name],\n 'schemaItemType', 'CustomAttributeClass',\n 'modifier', ${modifier(\"baseClass\")},\n 'label', [baseClass].[DisplayLabel],\n 'description', [baseClass].[Description],\n 'appliesTo', [baseClass].[CustomAttributeContainerType]\n )))\n FROM\n [meta].[ECClassDef] [baseClass]\n INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]\n ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]\n WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]\n )\n ) AS [item]\n FROM [meta].[ECClassDef] [class]\n WHERE [class].[Type] = 3\n`;\n\nconst structQuery = `\n SELECT\n [Schema].[Id] AS [SchemaId],\n json_object(\n 'name', [class].[Name],\n 'schemaItemType', 'StructClass',\n 'modifier', ${modifier(\"class\")},\n 'label', [class].[DisplayLabel],\n 'description', [class].[Description],\n 'baseClasses', (\n SELECT\n json_group_array(json(json_object(\n 'schema', ec_classname([baseClass].[ECInstanceId], 's'),\n 'name', [baseClass].[Name],\n 'schemaItemType', 'StructClass',\n 'modifier', ${modifier(\"baseClass\")},\n 'label', [baseClass].[DisplayLabel],\n 'description', [baseClass].[Description]\n )))\n FROM\n [meta].[ECClassDef] [baseClass]\n INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]\n ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]\n WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]\n )\n ) AS [item]\n FROM [meta].[ECClassDef] [class]\n WHERE [class].[Type] = 2\n`;\n\nconst relationshipQuery = `\n SELECT\n [Schema].[Id] AS [SchemaId],\n json_object(\n 'name', [class].[Name],\n 'schemaItemType', 'RelationshipClass',\n 'modifier', ${modifier(\"class\")},\n 'label', [class].[DisplayLabel],\n 'description', [class].[Description],\n 'strength', ${strength(\"class\")},\n 'strengthDirection', ${strengthDirection(\"class\")},\n 'baseClasses', (\n SELECT\n json_group_array(json(json_object(\n 'schema', ec_classname([baseClass].[ECInstanceId], 's'),\n 'name', [baseClass].[Name],\n 'schemaItemType', 'RelationshipClass',\n 'modifier', ${modifier(\"baseClass\")},\n 'label', [baseClass].[DisplayLabel],\n 'description', [baseClass].[Description],\n 'strength', ${strength(\"baseClass\")},\n 'strengthDirection', ${strengthDirection(\"baseClass\")}\n )))\n FROM\n [meta].[ECClassDef] [baseClass]\n INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]\n ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]\n WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]\n )\n ) AS [item]\n FROM [meta].[ECClassDef] [class]\n WHERE [class].[Type] = 1\n`;\n\nconst entityQuery = `\n SELECT\n [Schema].[Id] AS [SchemaId],\n json_object(\n 'name', [class].[Name],\n 'schemaItemType', 'EntityClass',\n 'modifier', ${modifier(\"class\")},\n 'label', [class].[DisplayLabel],\n 'description', [class].[Description],\n 'baseClasses', (\n SELECT\n json_group_array(json(json_object(\n 'schema', ec_classname([baseClass].[ECInstanceId], 's'),\n 'name', [baseClass].[Name],\n 'schemaItemType', 'EntityClass',\n 'modifier', ${modifier(\"baseClass\")},\n 'label', [baseClass].[DisplayLabel],\n 'description', [baseClass].[Description]\n )))\n FROM\n [meta].[ECClassDef] [baseClass]\n INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]\n ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]\n WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]\n AND NOT EXISTS(SELECT 1 FROM [meta].[ClassCustomAttribute] [ca] WHERE [baseClass].[ECInstanceId] = [ca].[Class].[Id]\n AND [ca].[CustomAttributeClass].[Id] Is ([CoreCA].[IsMixin]))\n ),\n 'mixins', (\n SELECT\n json_group_array(json(json_object(\n 'schema', ec_classname([baseClass].[ECInstanceId], 's'),\n 'name', [baseClass].[Name],\n 'schemaItemType', 'Mixin',\n 'modifier', ${modifier(\"baseClass\")},\n 'label', [baseClass].[DisplayLabel],\n 'description', [baseClass].[Description],\n 'appliesTo', (\n SELECT IIF(instr([atCTE].[AppliesTo], ':') > 1, ec_classname(ec_classId([atCTE].[AppliesTo]), 's.c'), CONCAT([atCTE].[AppliesToSchema], '.', [atCTE].[AppliesTo]))\n FROM [AppliesToCTE] [atCTE]\n WHERE [atCTE].[AppliesToId] = [baseClass].[ECInstanceId]\n ),\n 'baseClasses', (\n SELECT\n json_group_array(json(json_object(\n 'schema', ec_classname([mixinBaseClass].[ECInstanceId], 's'),\n 'name', [mixinBaseClass].[Name],\n 'schemaItemType', 'Mixin',\n 'modifier', ${modifier(\"mixinBaseClass\")},\n 'label', [mixinBaseClass].[DisplayLabel],\n 'description', [mixinBaseClass].[Description],\n 'appliesTo', (\n SELECT IIF(instr([atCTE].[AppliesTo], ':') > 1, ec_classname(ec_classId([atCTE].[AppliesTo]), 's.c'), CONCAT([atCTE].[AppliesToSchema], '.', [atCTE].[AppliesTo]))\n FROM [AppliesToCTE] [atCTE]\n WHERE [atCTE].[AppliesToId] = [mixinBaseClass].[ECInstanceId]\n )\n )))\n FROM\n [meta].[ECClassDef] [mixinBaseClass]\n INNER JOIN [meta].[ClassHasAllBaseClasses] [mixinBaseClassMap]\n ON [mixinBaseClassMap].[TargetECInstanceId] = [mixinBaseClass].[ECInstanceId]\n WHERE [mixinBaseClassMap].[SourceECInstanceId] = [baseClass].[ECInstanceId]\n )\n )))\n FROM\n [meta].[ECClassDef] [baseClass]\n INNER JOIN [meta].[ClassHasBaseClasses] [baseClassMap]\n ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]\n WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]\n AND EXISTS(SELECT 1 FROM [meta].[ClassCustomAttribute] [ca] WHERE [baseClass].[ECInstanceId] = [ca].[Class].[Id]\n AND [ca].[CustomAttributeClass].[Id] Is ([CoreCA].[IsMixin]))\n )\n ) AS [item]\n FROM [meta].[ECClassDef] [class]\n WHERE [class].[Type] = 0\n AND NOT EXISTS(SELECT 1 FROM [meta].[ClassCustomAttribute] [ca] WHERE [class].[ECInstanceId] = [ca].[Class].[Id]\n AND [ca].[CustomAttributeClass].[Id] Is ([CoreCA].[IsMixin]))\n`;\n\nconst mixinQuery = `\n SELECT\n [Schema].[Id] AS [SchemaId],\n json_object(\n 'name', [class].[Name],\n 'schemaItemType', 'Mixin',\n 'modifier', ${modifier(\"class\")},\n 'label', [class].[DisplayLabel],\n 'description', [class].[Description],\n 'appliesTo', (\n SELECT IIF(instr([atCTE].[AppliesTo], ':') > 1, ec_classname(ec_classId([atCTE].[AppliesTo]), 's.c'), CONCAT([atCTE].[AppliesToSchema], '.', [atCTE].[AppliesTo]))\n FROM [AppliesToCTE] [atCTE]\n WHERE [atCTE].[AppliesToId] = [class].[ECInstanceId]\n ),\n 'baseClasses', (\n SELECT\n json_group_array(json(json_object(\n 'schema', ec_classname([baseClass].[ECInstanceId], 's'),\n 'name', [baseClass].[Name],\n 'schemaItemType', 'Mixin',\n 'modifier', ${modifier(\"baseClass\")},\n 'label', [baseClass].[DisplayLabel],\n 'description', [baseClass].[Description],\n 'appliesTo', (\n SELECT IIF(instr([atCTE].[AppliesTo], ':') > 1, ec_classname(ec_classId([atCTE].[AppliesTo]), 's.c'), CONCAT([atCTE].[AppliesToSchema], '.', [atCTE].[AppliesTo]))\n FROM [AppliesToCTE] [atCTE]\n WHERE [atCTE].[AppliesToId] = [baseClass].[ECInstanceId]\n )\n )))\n FROM\n [meta].[ECClassDef] [baseClass]\n INNER JOIN [meta].[ClassHasAllBaseClasses] [baseClassMap]\n ON [baseClassMap].[TargetECInstanceId] = [baseclass].[ECInstanceId]\n WHERE [baseClassMap].[SourceECInstanceId] = [class].[ECInstanceId]\n )\n ) AS [item]\n FROM [meta].[ECClassDef] [class]\n WHERE [class].[Type] = 0 AND EXISTS (SELECT 1 FROM [meta].[ClassCustomAttribute] [ca] WHERE [class].[ECInstanceId] = [ca].[Class].[Id]\n AND [ca].[CustomAttributeClass].[Id] Is ([CoreCA].[IsMixin]))\n`;\n\nconst withSchemaItems = `\nSchemaItems AS (\n ${customAttributeQuery}\n UNION ALL\n ${structQuery}\n UNION ALL\n ${relationshipQuery}\n UNION ALL\n ${entityQuery}\n UNION ALL\n ${mixinQuery}\n UNION ALL\n ${SchemaItemQueries.enumeration()}\n UNION ALL\n ${SchemaItemQueries.kindOfQuantity()}\n UNION ALL\n ${SchemaItemQueries.propertyCategory()}\n UNION ALL\n ${SchemaItemQueries.unit()}\n UNION ALL\n ${SchemaItemQueries.invertedUnit()}\n UNION ALL\n ${SchemaItemQueries.constant()}\n UNION ALL\n ${SchemaItemQueries.phenomenon()}\n UNION ALL\n ${SchemaItemQueries.unitSystem()}\n UNION ALL\n ${SchemaItemQueries.format()}\n )\n`;\n\nconst schemaStubQuery = `\n WITH\n ${withSchemaReferences},\n ${withAppliesTo},\n ${withSchemaItems}\n SELECT\n [Name] as [name],\n CONCAT('',[VersionMajor],'.',[VersionWrite],'.',[VersionMinor]) AS [version],\n [Alias] as [alias],\n [DisplayLabel] as [displayLabel],\n [Description] as [description],\n (\n SELECT\n json_group_array([schemaReferences].[fullName])\n FROM\n [SchemaReferences] [schemaReferences]\n WHERE\n [schemaReferences].[SchemaId] = [schemaDef].[ECInstanceId]\n ) AS [references],\n (\n SELECT\n json_group_array(json([items].[item]))\n FROM\n [SchemaItems] [items]\n WHERE\n [items].[SchemaId] = [schemaDef].[ECInstanceId]\n ) AS [items]\n FROM\n [meta].[ECSchemaDef] [schemaDef]\n WHERE [Name] = :schemaName\n`;\n\nconst schemaInfoQuery = `\n WITH\n ${withSchemaReferences}\n SELECT\n [Name] as [name],\n CONCAT('',[VersionMajor],'.',[VersionWrite],'.',[VersionMinor]) AS [version],\n [Alias] as [alias],\n (\n SELECT\n json_group_array([schemaReferences].[fullName])\n FROM\n [SchemaReferences] [schemaReferences]\n WHERE\n [schemaReferences].[SchemaId] = [schemaDef].[ECInstanceId]\n ) AS [references]\n FROM\n [meta].[ECSchemaDef] [schemaDef]\n`;\n\n/**\n * Partial Schema queries.\n * @internal\n */\nexport const ecsqlQueries = {\n schemaStubQuery,\n schemaInfoQuery,\n};\n"]}
@@ -216,32 +216,20 @@ export declare abstract class ECClass extends SchemaItem implements CustomAttrib
216
216
  getAllBaseClassesSync(): Iterable<AnyClass>;
217
217
  /**
218
218
  *
219
- * @param target
220
- * @param existingValues
221
- * @param propertiesToMerge
222
- * @param overwriteExisting
223
- *
224
- * @internal
225
- */
226
- protected static mergeProperties(target: Property[], existingValues: Map<string, number>, propertiesToMerge: Iterable<Property>, overwriteExisting: boolean): void;
227
- /**
228
- *
229
- * @param result
230
- * @param existingValues
219
+ * @param cache
231
220
  * @returns
232
221
  *
233
222
  * @internal
234
223
  */
235
- protected buildPropertyCache(result: Property[], existingValues?: Map<string, number>): Promise<void>;
224
+ protected buildPropertyCache(): Promise<Map<string, Property>>;
236
225
  /**
237
226
  *
238
- * @param result
239
- * @param existingValues
227
+ * @param cache
240
228
  * @returns
241
229
  *
242
230
  * @internal
243
231
  */
244
- protected buildPropertyCacheSync(result: Property[], existingValues?: Map<string, number>): void;
232
+ protected buildPropertyCacheSync(): Map<string, Property>;
245
233
  /**
246
234
  * Clears all caches on this object. This is called implicitly for this class,
247
235
  * but needs to be called if derived classes have changed.
@@ -301,6 +289,7 @@ export declare abstract class ECClass extends SchemaItem implements CustomAttrib
301
289
  * @param targetClass The class to check.
302
290
  */
303
291
  isSync(targetClass: ECClass): boolean;
292
+ isSync(targetClass: string, schemaName: string): boolean;
304
293
  /**
305
294
  * @internal
306
295
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../../../src/Metadata/Class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../../../src/Metadata/Class.ts"],"names":[],"mappings":"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"}