@itwin/ecschema-metadata 4.0.0-dev.8 → 4.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 (150) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/lib/cjs/Constants.d.ts +23 -23
  3. package/lib/cjs/Constants.js +33 -33
  4. package/lib/cjs/Constants.js.map +1 -1
  5. package/lib/cjs/Context.d.ts +139 -139
  6. package/lib/cjs/Context.js +204 -204
  7. package/lib/cjs/DelayedPromise.d.ts +88 -88
  8. package/lib/cjs/DelayedPromise.d.ts.map +1 -1
  9. package/lib/cjs/DelayedPromise.js +91 -91
  10. package/lib/cjs/DelayedPromise.js.map +1 -1
  11. package/lib/cjs/Deserialization/AbstractParser.d.ts +45 -45
  12. package/lib/cjs/Deserialization/AbstractParser.d.ts.map +1 -1
  13. package/lib/cjs/Deserialization/AbstractParser.js +11 -11
  14. package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
  15. package/lib/cjs/Deserialization/Helper.d.ts +251 -251
  16. package/lib/cjs/Deserialization/Helper.js +843 -843
  17. package/lib/cjs/Deserialization/Helper.js.map +1 -1
  18. package/lib/cjs/Deserialization/JsonParser.d.ts +165 -165
  19. package/lib/cjs/Deserialization/JsonParser.js +680 -680
  20. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  21. package/lib/cjs/Deserialization/JsonProps.d.ts +282 -282
  22. package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -1
  23. package/lib/cjs/Deserialization/JsonProps.js +9 -9
  24. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  25. package/lib/cjs/Deserialization/SchemaGraphUtil.d.ts +34 -34
  26. package/lib/cjs/Deserialization/SchemaGraphUtil.js +77 -77
  27. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
  28. package/lib/cjs/Deserialization/XmlParser.d.ts +85 -85
  29. package/lib/cjs/Deserialization/XmlParser.js +973 -973
  30. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  31. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +54 -54
  32. package/lib/cjs/Deserialization/XmlSerializationUtils.js +174 -174
  33. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  34. package/lib/cjs/ECName.d.ts +30 -30
  35. package/lib/cjs/ECName.js +85 -85
  36. package/lib/cjs/ECName.js.map +1 -1
  37. package/lib/cjs/ECObjects.d.ts +162 -162
  38. package/lib/cjs/ECObjects.js +453 -453
  39. package/lib/cjs/ECObjects.js.map +1 -1
  40. package/lib/cjs/Exception.d.ts +43 -43
  41. package/lib/cjs/Exception.js +84 -84
  42. package/lib/cjs/Exception.js.map +1 -1
  43. package/lib/cjs/Interfaces.d.ts +66 -66
  44. package/lib/cjs/Interfaces.d.ts.map +1 -1
  45. package/lib/cjs/Interfaces.js +9 -9
  46. package/lib/cjs/Interfaces.js.map +1 -1
  47. package/lib/cjs/Metadata/Class.d.ts +243 -243
  48. package/lib/cjs/Metadata/Class.js +558 -558
  49. package/lib/cjs/Metadata/Class.js.map +1 -1
  50. package/lib/cjs/Metadata/Constant.d.ts +64 -64
  51. package/lib/cjs/Metadata/Constant.js +123 -123
  52. package/lib/cjs/Metadata/Constant.js.map +1 -1
  53. package/lib/cjs/Metadata/CustomAttribute.d.ts +23 -23
  54. package/lib/cjs/Metadata/CustomAttribute.js +27 -27
  55. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  56. package/lib/cjs/Metadata/CustomAttributeClass.d.ts +39 -39
  57. package/lib/cjs/Metadata/CustomAttributeClass.js +68 -68
  58. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  59. package/lib/cjs/Metadata/EntityClass.d.ts +77 -77
  60. package/lib/cjs/Metadata/EntityClass.js +230 -230
  61. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  62. package/lib/cjs/Metadata/Enumeration.d.ts +86 -86
  63. package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -1
  64. package/lib/cjs/Metadata/Enumeration.js +159 -159
  65. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  66. package/lib/cjs/Metadata/Format.d.ts +98 -98
  67. package/lib/cjs/Metadata/Format.js +242 -242
  68. package/lib/cjs/Metadata/Format.js.map +1 -1
  69. package/lib/cjs/Metadata/InvertedUnit.d.ts +49 -49
  70. package/lib/cjs/Metadata/InvertedUnit.js +97 -97
  71. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
  72. package/lib/cjs/Metadata/KindOfQuantity.d.ts +65 -65
  73. package/lib/cjs/Metadata/KindOfQuantity.js +225 -225
  74. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  75. package/lib/cjs/Metadata/Mixin.d.ts +54 -54
  76. package/lib/cjs/Metadata/Mixin.js +113 -113
  77. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  78. package/lib/cjs/Metadata/OverrideFormat.d.ts +55 -55
  79. package/lib/cjs/Metadata/OverrideFormat.js +88 -88
  80. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  81. package/lib/cjs/Metadata/Phenomenon.d.ts +33 -33
  82. package/lib/cjs/Metadata/Phenomenon.js +59 -59
  83. package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
  84. package/lib/cjs/Metadata/Property.d.ts +197 -197
  85. package/lib/cjs/Metadata/Property.d.ts.map +1 -1
  86. package/lib/cjs/Metadata/Property.js +491 -491
  87. package/lib/cjs/Metadata/Property.js.map +1 -1
  88. package/lib/cjs/Metadata/PropertyCategory.d.ts +39 -39
  89. package/lib/cjs/Metadata/PropertyCategory.js +61 -61
  90. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  91. package/lib/cjs/Metadata/RelationshipClass.d.ts +152 -152
  92. package/lib/cjs/Metadata/RelationshipClass.js +349 -349
  93. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  94. package/lib/cjs/Metadata/Schema.d.ts +291 -291
  95. package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
  96. package/lib/cjs/Metadata/Schema.js +520 -520
  97. package/lib/cjs/Metadata/Schema.js.map +1 -1
  98. package/lib/cjs/Metadata/SchemaItem.d.ts +61 -61
  99. package/lib/cjs/Metadata/SchemaItem.js +136 -136
  100. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  101. package/lib/cjs/Metadata/Unit.d.ts +76 -76
  102. package/lib/cjs/Metadata/Unit.js +162 -162
  103. package/lib/cjs/Metadata/Unit.js.map +1 -1
  104. package/lib/cjs/Metadata/UnitSystem.d.ts +20 -20
  105. package/lib/cjs/Metadata/UnitSystem.js +29 -29
  106. package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
  107. package/lib/cjs/PropertyTypes.d.ts +49 -49
  108. package/lib/cjs/PropertyTypes.js +91 -91
  109. package/lib/cjs/PropertyTypes.js.map +1 -1
  110. package/lib/cjs/SchemaJsonLocater.d.ts +34 -34
  111. package/lib/cjs/SchemaJsonLocater.d.ts.map +1 -1
  112. package/lib/cjs/SchemaJsonLocater.js +42 -42
  113. package/lib/cjs/SchemaJsonLocater.js.map +1 -1
  114. package/lib/cjs/SchemaKey.d.ts +110 -110
  115. package/lib/cjs/SchemaKey.js +219 -219
  116. package/lib/cjs/SchemaKey.js.map +1 -1
  117. package/lib/cjs/SchemaLoader.d.ts +23 -23
  118. package/lib/cjs/SchemaLoader.js +47 -47
  119. package/lib/cjs/SchemaLoader.js.map +1 -1
  120. package/lib/cjs/SchemaPartVisitorDelegate.d.ts +274 -274
  121. package/lib/cjs/SchemaPartVisitorDelegate.js +212 -212
  122. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
  123. package/lib/cjs/UnitConversion/Graph.d.ts +34 -34
  124. package/lib/cjs/UnitConversion/Graph.js +83 -83
  125. package/lib/cjs/UnitConversion/Graph.js.map +1 -1
  126. package/lib/cjs/UnitConversion/Parser.d.ts +8 -8
  127. package/lib/cjs/UnitConversion/Parser.js +42 -42
  128. package/lib/cjs/UnitConversion/Parser.js.map +1 -1
  129. package/lib/cjs/UnitConversion/UnitConversion.d.ts +45 -45
  130. package/lib/cjs/UnitConversion/UnitConversion.js +77 -77
  131. package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -1
  132. package/lib/cjs/UnitConversion/UnitConverter.d.ts +39 -39
  133. package/lib/cjs/UnitConversion/UnitConverter.js +116 -116
  134. package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
  135. package/lib/cjs/UnitConversion/UnitTree.d.ts +43 -43
  136. package/lib/cjs/UnitConversion/UnitTree.js +169 -169
  137. package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
  138. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts +77 -77
  139. package/lib/cjs/UnitProvider/SchemaUnitProvider.js +234 -236
  140. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  141. package/lib/cjs/Validation/SchemaWalker.d.ts +23 -23
  142. package/lib/cjs/Validation/SchemaWalker.js +53 -53
  143. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  144. package/lib/cjs/ecschema-metadata.d.ts +51 -51
  145. package/lib/cjs/ecschema-metadata.js +100 -96
  146. package/lib/cjs/ecschema-metadata.js.map +1 -1
  147. package/lib/cjs/utils/SchemaGraph.d.ts +25 -25
  148. package/lib/cjs/utils/SchemaGraph.js +65 -65
  149. package/lib/cjs/utils/SchemaGraph.js.map +1 -1
  150. package/package.json +12 -12
@@ -1,66 +1,66 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.SchemaGraph = void 0;
8
- /**
9
- * Utility class for detecting cyclic references in a Schema graph.
10
- * @beta
11
- */
12
- class SchemaGraph {
13
- /**
14
- * Initializes a new SchemaGraph instance.
15
- * @param schema The schema to analyze.
16
- */
17
- constructor(schema) {
18
- this._schemas = [];
19
- this.populateGraph(schema);
20
- }
21
- /**
22
- * Detected cyclic references in a schema.
23
- * @returns True if a cycle is found.
24
- */
25
- detectCycles() {
26
- const visited = {};
27
- const recStack = {};
28
- const cycles = [];
29
- for (const schema of this._schemas) {
30
- if (this.detectCycleUtil(schema, visited, recStack, cycles)) {
31
- return cycles.length > 0 ? cycles : undefined;
32
- }
33
- }
34
- return undefined;
35
- }
36
- detectCycleUtil(schema, visited, recStack, cycles) {
37
- let cycleFound = false;
38
- if (!visited[schema.name]) {
39
- visited[schema.name] = true;
40
- recStack[schema.name] = true;
41
- for (const refSchema of schema.references) {
42
- if (!visited[refSchema.name] && this.detectCycleUtil(refSchema, visited, recStack, cycles)) {
43
- cycles.push({ schema, refSchema });
44
- cycleFound = true;
45
- }
46
- else if (recStack[refSchema.name]) {
47
- cycles.push({ schema, refSchema });
48
- cycleFound = true;
49
- }
50
- }
51
- }
52
- if (!cycleFound)
53
- recStack[schema.name] = false;
54
- return cycleFound;
55
- }
56
- populateGraph(schema) {
57
- if (this._schemas.includes(schema))
58
- return;
59
- this._schemas.push(schema);
60
- for (const refSchema of schema.references) {
61
- this.populateGraph(refSchema);
62
- }
63
- }
64
- }
65
- exports.SchemaGraph = SchemaGraph;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SchemaGraph = void 0;
8
+ /**
9
+ * Utility class for detecting cyclic references in a Schema graph.
10
+ * @beta
11
+ */
12
+ class SchemaGraph {
13
+ /**
14
+ * Initializes a new SchemaGraph instance.
15
+ * @param schema The schema to analyze.
16
+ */
17
+ constructor(schema) {
18
+ this._schemas = [];
19
+ this.populateGraph(schema);
20
+ }
21
+ /**
22
+ * Detected cyclic references in a schema.
23
+ * @returns True if a cycle is found.
24
+ */
25
+ detectCycles() {
26
+ const visited = {};
27
+ const recStack = {};
28
+ const cycles = [];
29
+ for (const schema of this._schemas) {
30
+ if (this.detectCycleUtil(schema, visited, recStack, cycles)) {
31
+ return cycles.length > 0 ? cycles : undefined;
32
+ }
33
+ }
34
+ return undefined;
35
+ }
36
+ detectCycleUtil(schema, visited, recStack, cycles) {
37
+ let cycleFound = false;
38
+ if (!visited[schema.name]) {
39
+ visited[schema.name] = true;
40
+ recStack[schema.name] = true;
41
+ for (const refSchema of schema.references) {
42
+ if (!visited[refSchema.name] && this.detectCycleUtil(refSchema, visited, recStack, cycles)) {
43
+ cycles.push({ schema, refSchema });
44
+ cycleFound = true;
45
+ }
46
+ else if (recStack[refSchema.name]) {
47
+ cycles.push({ schema, refSchema });
48
+ cycleFound = true;
49
+ }
50
+ }
51
+ }
52
+ if (!cycleFound)
53
+ recStack[schema.name] = false;
54
+ return cycleFound;
55
+ }
56
+ populateGraph(schema) {
57
+ if (this._schemas.includes(schema))
58
+ return;
59
+ this._schemas.push(schema);
60
+ for (const refSchema of schema.references) {
61
+ this.populateGraph(refSchema);
62
+ }
63
+ }
64
+ }
65
+ exports.SchemaGraph = SchemaGraph;
66
66
  //# sourceMappingURL=SchemaGraph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaGraph.js","sourceRoot":"","sources":["../../../src/utils/SchemaGraph.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAU/F;;;GAGG;AACH,MAAa,WAAW;IAGtB;;;OAGG;IACH,YAAmB,MAAc;QANzB,aAAQ,GAAa,EAAE,CAAC;QAO9B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;gBAC3D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;aAC/C;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,MAAc,EAAE,OAAY,EAAE,QAAa,EAAE,MAAwB;QAC3F,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC5B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAE7B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;oBAC1F,MAAM,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC;oBACjC,UAAU,GAAG,IAAI,CAAC;iBACnB;qBAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACnC,MAAM,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC;oBACjC,UAAU,GAAG,IAAI,CAAC;iBACnB;aACF;SACF;QACD,IAAI,CAAC,UAAU;YACb,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAEhC,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChC,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAC/B;IACH,CAAC;CACF;AA9DD,kCA8DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Schema } from \"../Metadata/Schema\";\r\n\r\n/** @internal */\r\nexport interface ReferenceCycle {\r\n schema: Schema;\r\n refSchema: Schema;\r\n}\r\n\r\n/**\r\n * Utility class for detecting cyclic references in a Schema graph.\r\n * @beta\r\n */\r\nexport class SchemaGraph {\r\n private _schemas: Schema[] = [];\r\n\r\n /**\r\n * Initializes a new SchemaGraph instance.\r\n * @param schema The schema to analyze.\r\n */\r\n public constructor(schema: Schema) {\r\n this.populateGraph(schema);\r\n }\r\n\r\n /**\r\n * Detected cyclic references in a schema.\r\n * @returns True if a cycle is found.\r\n */\r\n public detectCycles(): ReferenceCycle[] | undefined {\r\n const visited = {};\r\n const recStack = {};\r\n const cycles: ReferenceCycle[] = [];\r\n\r\n for (const schema of this._schemas) {\r\n if (this.detectCycleUtil(schema, visited, recStack, cycles)) {\r\n return cycles.length > 0 ? cycles : undefined;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private detectCycleUtil(schema: Schema, visited: any, recStack: any, cycles: ReferenceCycle[]): boolean {\r\n let cycleFound = false;\r\n\r\n if (!visited[schema.name]) {\r\n visited[schema.name] = true;\r\n recStack[schema.name] = true;\r\n\r\n for (const refSchema of schema.references) {\r\n if (!visited[refSchema.name] && this.detectCycleUtil(refSchema, visited, recStack, cycles)) {\r\n cycles.push({schema, refSchema});\r\n cycleFound = true;\r\n } else if (recStack[refSchema.name]) {\r\n cycles.push({schema, refSchema});\r\n cycleFound = true;\r\n }\r\n }\r\n }\r\n if (!cycleFound)\r\n recStack[schema.name] = false;\r\n\r\n return cycleFound;\r\n }\r\n\r\n private populateGraph(schema: Schema) {\r\n if (this._schemas.includes(schema))\r\n return;\r\n\r\n this._schemas.push(schema);\r\n\r\n for (const refSchema of schema.references) {\r\n this.populateGraph(refSchema);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SchemaGraph.js","sourceRoot":"","sources":["../../../src/utils/SchemaGraph.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAU/F;;;GAGG;AACH,MAAa,WAAW;IAGtB;;;OAGG;IACH,YAAmB,MAAc;QANzB,aAAQ,GAAa,EAAE,CAAC;QAO9B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;gBAC3D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;aAC/C;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,MAAc,EAAE,OAAY,EAAE,QAAa,EAAE,MAAwB;QAC3F,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC5B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAE7B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;oBAC1F,MAAM,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC;oBACjC,UAAU,GAAG,IAAI,CAAC;iBACnB;qBAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACnC,MAAM,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC;oBACjC,UAAU,GAAG,IAAI,CAAC;iBACnB;aACF;SACF;QACD,IAAI,CAAC,UAAU;YACb,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAEhC,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChC,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAC/B;IACH,CAAC;CACF;AA9DD,kCA8DC","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 { Schema } from \"../Metadata/Schema\";\n\n/** @internal */\nexport interface ReferenceCycle {\n schema: Schema;\n refSchema: Schema;\n}\n\n/**\n * Utility class for detecting cyclic references in a Schema graph.\n * @beta\n */\nexport class SchemaGraph {\n private _schemas: Schema[] = [];\n\n /**\n * Initializes a new SchemaGraph instance.\n * @param schema The schema to analyze.\n */\n public constructor(schema: Schema) {\n this.populateGraph(schema);\n }\n\n /**\n * Detected cyclic references in a schema.\n * @returns True if a cycle is found.\n */\n public detectCycles(): ReferenceCycle[] | undefined {\n const visited = {};\n const recStack = {};\n const cycles: ReferenceCycle[] = [];\n\n for (const schema of this._schemas) {\n if (this.detectCycleUtil(schema, visited, recStack, cycles)) {\n return cycles.length > 0 ? cycles : undefined;\n }\n }\n\n return undefined;\n }\n\n private detectCycleUtil(schema: Schema, visited: any, recStack: any, cycles: ReferenceCycle[]): boolean {\n let cycleFound = false;\n\n if (!visited[schema.name]) {\n visited[schema.name] = true;\n recStack[schema.name] = true;\n\n for (const refSchema of schema.references) {\n if (!visited[refSchema.name] && this.detectCycleUtil(refSchema, visited, recStack, cycles)) {\n cycles.push({schema, refSchema});\n cycleFound = true;\n } else if (recStack[refSchema.name]) {\n cycles.push({schema, refSchema});\n cycleFound = true;\n }\n }\n }\n if (!cycleFound)\n recStack[schema.name] = false;\n\n return cycleFound;\n }\n\n private populateGraph(schema: Schema) {\n if (this._schemas.includes(schema))\n return;\n\n this._schemas.push(schema);\n\n for (const refSchema of schema.references) {\n this.populateGraph(refSchema);\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@itwin/ecschema-metadata",
3
- "version": "4.0.0-dev.8",
3
+ "version": "4.0.0-dev.81",
4
4
  "description": "ECObjects core concepts in typescript",
5
5
  "license": "MIT",
6
6
  "main": "lib/cjs/ecschema-metadata.js",
7
7
  "typings": "lib/cjs/ecschema-metadata",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/iTwin/itwinjs-core/tree/master/core/ecschema-metadata"
10
+ "url": "https://github.com/iTwin/itwinjs-core.git",
11
+ "directory": "core/ecschema-metadata"
11
12
  },
12
13
  "keywords": [
13
14
  "Bentley",
@@ -22,32 +23,32 @@
22
23
  },
23
24
  "devDependencies": {
24
25
  "@bentley/units-schema": "^1.0.5",
25
- "@itwin/build-tools": "4.0.0-dev.8",
26
- "@itwin/core-bentley": "4.0.0-dev.8",
27
- "@itwin/core-quantity": "4.0.0-dev.8",
28
- "@itwin/eslint-plugin": "4.0.0-dev.8",
26
+ "@itwin/build-tools": "4.0.0-dev.81",
27
+ "@itwin/core-bentley": "4.0.0-dev.81",
28
+ "@itwin/core-quantity": "4.0.0-dev.81",
29
+ "@itwin/eslint-plugin": "^4.0.0-dev.33",
29
30
  "@types/almost-equal": "1.1.0",
30
31
  "@types/benchmark": "^2.1.0",
31
32
  "@types/chai": "4.3.1",
32
33
  "@types/chai-as-promised": "^7",
33
34
  "@types/mocha": "^8.2.2",
34
- "@types/node": "18.11.5",
35
+ "@types/node": "^18.11.5",
35
36
  "@types/sinon": "^9.0.0",
36
37
  "@xmldom/xmldom": "~0.8.5",
37
38
  "benchmark": "^2.1.4",
38
39
  "chai": "^4.1.2",
39
40
  "chai-as-promised": "^7",
40
41
  "cpx2": "^3.0.0",
41
- "eslint": "^7.11.0",
42
+ "eslint": "^8.36.0",
42
43
  "mocha": "^10.0.0",
43
44
  "nyc": "^15.1.0",
44
45
  "rimraf": "^3.0.2",
45
46
  "sinon": "^9.0.2",
46
- "typescript": "~4.4.0"
47
+ "typescript": "~5.0.2"
47
48
  },
48
49
  "peerDependencies": {
49
- "@itwin/core-bentley": "^4.0.0-dev.8",
50
- "@itwin/core-quantity": "^4.0.0-dev.8"
50
+ "@itwin/core-bentley": "^4.0.0-dev.81",
51
+ "@itwin/core-quantity": "^4.0.0-dev.81"
51
52
  },
52
53
  "dependencies": {
53
54
  "almost-equal": "^1.1.0"
@@ -88,7 +89,6 @@
88
89
  },
89
90
  "scripts": {
90
91
  "build": "npm run -s build:cjs",
91
- "build:ci": "npm run -s build",
92
92
  "build:cjs": "tsc 1>&2 --outDir lib/cjs && npm run -s copy:test-assets",
93
93
  "clean": "rimraf lib .rush/temp/package-deps*.json",
94
94
  "copy:test-assets": "cpx \"./src/test/assets/**/*\" ./lib/cjs/test/assets",