@itwin/ecschema-metadata 4.0.0-dev.10 → 4.0.0-dev.101

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 (156) hide show
  1. package/CHANGELOG.md +51 -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.d.ts.map +1 -1
  20. package/lib/cjs/Deserialization/JsonParser.js +680 -680
  21. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  22. package/lib/cjs/Deserialization/JsonProps.d.ts +268 -282
  23. package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -1
  24. package/lib/cjs/Deserialization/JsonProps.js +9 -9
  25. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  26. package/lib/cjs/Deserialization/SchemaGraphUtil.d.ts +34 -34
  27. package/lib/cjs/Deserialization/SchemaGraphUtil.js +77 -77
  28. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
  29. package/lib/cjs/Deserialization/XmlParser.d.ts +85 -85
  30. package/lib/cjs/Deserialization/XmlParser.d.ts.map +1 -1
  31. package/lib/cjs/Deserialization/XmlParser.js +973 -973
  32. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  33. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +54 -54
  34. package/lib/cjs/Deserialization/XmlSerializationUtils.js +174 -174
  35. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  36. package/lib/cjs/ECName.d.ts +30 -30
  37. package/lib/cjs/ECName.js +85 -85
  38. package/lib/cjs/ECName.js.map +1 -1
  39. package/lib/cjs/ECObjects.d.ts +162 -162
  40. package/lib/cjs/ECObjects.js +453 -453
  41. package/lib/cjs/ECObjects.js.map +1 -1
  42. package/lib/cjs/Exception.d.ts +43 -43
  43. package/lib/cjs/Exception.js +84 -84
  44. package/lib/cjs/Exception.js.map +1 -1
  45. package/lib/cjs/Interfaces.d.ts +66 -66
  46. package/lib/cjs/Interfaces.d.ts.map +1 -1
  47. package/lib/cjs/Interfaces.js +9 -9
  48. package/lib/cjs/Interfaces.js.map +1 -1
  49. package/lib/cjs/Metadata/Class.d.ts +243 -243
  50. package/lib/cjs/Metadata/Class.js +558 -558
  51. package/lib/cjs/Metadata/Class.js.map +1 -1
  52. package/lib/cjs/Metadata/Constant.d.ts +64 -64
  53. package/lib/cjs/Metadata/Constant.js +123 -123
  54. package/lib/cjs/Metadata/Constant.js.map +1 -1
  55. package/lib/cjs/Metadata/CustomAttribute.d.ts +23 -23
  56. package/lib/cjs/Metadata/CustomAttribute.js +27 -27
  57. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  58. package/lib/cjs/Metadata/CustomAttributeClass.d.ts +39 -39
  59. package/lib/cjs/Metadata/CustomAttributeClass.js +68 -68
  60. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  61. package/lib/cjs/Metadata/EntityClass.d.ts +77 -77
  62. package/lib/cjs/Metadata/EntityClass.js +230 -230
  63. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  64. package/lib/cjs/Metadata/Enumeration.d.ts +86 -86
  65. package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -1
  66. package/lib/cjs/Metadata/Enumeration.js +159 -159
  67. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  68. package/lib/cjs/Metadata/Format.d.ts +98 -98
  69. package/lib/cjs/Metadata/Format.d.ts.map +1 -1
  70. package/lib/cjs/Metadata/Format.js +242 -242
  71. package/lib/cjs/Metadata/Format.js.map +1 -1
  72. package/lib/cjs/Metadata/InvertedUnit.d.ts +49 -49
  73. package/lib/cjs/Metadata/InvertedUnit.js +97 -97
  74. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
  75. package/lib/cjs/Metadata/KindOfQuantity.d.ts +65 -65
  76. package/lib/cjs/Metadata/KindOfQuantity.js +225 -225
  77. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  78. package/lib/cjs/Metadata/Mixin.d.ts +54 -54
  79. package/lib/cjs/Metadata/Mixin.js +113 -113
  80. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  81. package/lib/cjs/Metadata/OverrideFormat.d.ts +67 -55
  82. package/lib/cjs/Metadata/OverrideFormat.d.ts.map +1 -1
  83. package/lib/cjs/Metadata/OverrideFormat.js +126 -88
  84. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  85. package/lib/cjs/Metadata/Phenomenon.d.ts +33 -33
  86. package/lib/cjs/Metadata/Phenomenon.js +59 -59
  87. package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
  88. package/lib/cjs/Metadata/Property.d.ts +197 -197
  89. package/lib/cjs/Metadata/Property.d.ts.map +1 -1
  90. package/lib/cjs/Metadata/Property.js +491 -491
  91. package/lib/cjs/Metadata/Property.js.map +1 -1
  92. package/lib/cjs/Metadata/PropertyCategory.d.ts +39 -39
  93. package/lib/cjs/Metadata/PropertyCategory.js +61 -61
  94. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  95. package/lib/cjs/Metadata/RelationshipClass.d.ts +152 -152
  96. package/lib/cjs/Metadata/RelationshipClass.js +349 -349
  97. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  98. package/lib/cjs/Metadata/Schema.d.ts +291 -291
  99. package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
  100. package/lib/cjs/Metadata/Schema.js +520 -520
  101. package/lib/cjs/Metadata/Schema.js.map +1 -1
  102. package/lib/cjs/Metadata/SchemaItem.d.ts +61 -61
  103. package/lib/cjs/Metadata/SchemaItem.js +136 -136
  104. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  105. package/lib/cjs/Metadata/Unit.d.ts +76 -76
  106. package/lib/cjs/Metadata/Unit.d.ts.map +1 -1
  107. package/lib/cjs/Metadata/Unit.js +162 -162
  108. package/lib/cjs/Metadata/Unit.js.map +1 -1
  109. package/lib/cjs/Metadata/UnitSystem.d.ts +20 -20
  110. package/lib/cjs/Metadata/UnitSystem.js +29 -29
  111. package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
  112. package/lib/cjs/PropertyTypes.d.ts +49 -49
  113. package/lib/cjs/PropertyTypes.js +91 -91
  114. package/lib/cjs/PropertyTypes.js.map +1 -1
  115. package/lib/cjs/SchemaJsonLocater.d.ts +34 -34
  116. package/lib/cjs/SchemaJsonLocater.d.ts.map +1 -1
  117. package/lib/cjs/SchemaJsonLocater.js +42 -42
  118. package/lib/cjs/SchemaJsonLocater.js.map +1 -1
  119. package/lib/cjs/SchemaKey.d.ts +110 -110
  120. package/lib/cjs/SchemaKey.js +219 -219
  121. package/lib/cjs/SchemaKey.js.map +1 -1
  122. package/lib/cjs/SchemaLoader.d.ts +23 -23
  123. package/lib/cjs/SchemaLoader.js +47 -47
  124. package/lib/cjs/SchemaLoader.js.map +1 -1
  125. package/lib/cjs/SchemaPartVisitorDelegate.d.ts +274 -274
  126. package/lib/cjs/SchemaPartVisitorDelegate.js +212 -212
  127. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
  128. package/lib/cjs/UnitConversion/Graph.d.ts +34 -34
  129. package/lib/cjs/UnitConversion/Graph.js +83 -83
  130. package/lib/cjs/UnitConversion/Graph.js.map +1 -1
  131. package/lib/cjs/UnitConversion/Parser.d.ts +8 -8
  132. package/lib/cjs/UnitConversion/Parser.js +42 -42
  133. package/lib/cjs/UnitConversion/Parser.js.map +1 -1
  134. package/lib/cjs/UnitConversion/UnitConversion.d.ts +45 -45
  135. package/lib/cjs/UnitConversion/UnitConversion.js +77 -77
  136. package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -1
  137. package/lib/cjs/UnitConversion/UnitConverter.d.ts +39 -39
  138. package/lib/cjs/UnitConversion/UnitConverter.js +116 -116
  139. package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
  140. package/lib/cjs/UnitConversion/UnitTree.d.ts +43 -43
  141. package/lib/cjs/UnitConversion/UnitTree.js +169 -169
  142. package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
  143. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts +77 -77
  144. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts.map +1 -1
  145. package/lib/cjs/UnitProvider/SchemaUnitProvider.js +234 -236
  146. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  147. package/lib/cjs/Validation/SchemaWalker.d.ts +23 -23
  148. package/lib/cjs/Validation/SchemaWalker.js +53 -53
  149. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  150. package/lib/cjs/ecschema-metadata.d.ts +51 -51
  151. package/lib/cjs/ecschema-metadata.js +100 -96
  152. package/lib/cjs/ecschema-metadata.js.map +1 -1
  153. package/lib/cjs/utils/SchemaGraph.d.ts +25 -25
  154. package/lib/cjs/utils/SchemaGraph.js +65 -65
  155. package/lib/cjs/utils/SchemaGraph.js.map +1 -1
  156. package/package.json +13 -14
@@ -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.10",
3
+ "version": "4.0.0-dev.101",
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.10",
26
- "@itwin/core-bentley": "4.0.0-dev.10",
27
- "@itwin/core-quantity": "4.0.0-dev.10",
28
- "@itwin/eslint-plugin": "4.0.0-dev.10",
26
+ "@itwin/eslint-plugin": "^4.0.0-dev.33",
29
27
  "@types/almost-equal": "1.1.0",
30
28
  "@types/benchmark": "^2.1.0",
31
29
  "@types/chai": "4.3.1",
32
30
  "@types/chai-as-promised": "^7",
33
31
  "@types/mocha": "^8.2.2",
34
- "@types/node": "18.11.5",
32
+ "@types/node": "^18.11.5",
35
33
  "@types/sinon": "^9.0.0",
36
34
  "@xmldom/xmldom": "~0.8.5",
37
35
  "benchmark": "^2.1.4",
38
36
  "chai": "^4.1.2",
39
37
  "chai-as-promised": "^7",
40
38
  "cpx2": "^3.0.0",
41
- "eslint": "^7.11.0",
39
+ "eslint": "^8.36.0",
42
40
  "mocha": "^10.0.0",
43
41
  "nyc": "^15.1.0",
44
42
  "rimraf": "^3.0.2",
45
43
  "sinon": "^9.0.2",
46
- "typescript": "~4.4.0"
44
+ "typescript": "~5.0.2",
45
+ "@itwin/build-tools": "4.0.0-dev.101",
46
+ "@itwin/core-bentley": "4.0.0-dev.101",
47
+ "@itwin/core-quantity": "4.0.0-dev.101"
47
48
  },
48
49
  "peerDependencies": {
49
- "@itwin/core-bentley": "^4.0.0-dev.10",
50
- "@itwin/core-quantity": "^4.0.0-dev.10"
50
+ "@itwin/core-bentley": "^4.0.0-dev.101",
51
+ "@itwin/core-quantity": "^4.0.0-dev.101"
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",
@@ -98,6 +98,5 @@
98
98
  "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/ecschema-metadata/file.json --tsIndexFile=./ecschema-metadata.ts --onlyJson",
99
99
  "cover": "nyc npm -s test",
100
100
  "start": "npm run -s lint && npm run -s clean && npm run -s build && npm run -s test & npm run -s cover & npm run -s docs"
101
- },
102
- "readme": "# @itwin/ecschema-metadata\r\n\r\nCopyright © Bentley Systems, Incorporated. All rights reserved. See LICENSE.md for license terms and full copyright notice.\r\n\r\n## Description\r\n\r\nThe __@itwin/ecschema-metadata__ package contains classes for working with EC metadata.\r\n\r\n## Documentation\r\n\r\nSee the [iTwin.js](https://www.itwinjs.org) documentation for more information.\r\n"
101
+ }
103
102
  }