@itwin/ecschema-metadata 5.0.0-dev.98 → 5.1.0-dev.0
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.
- package/CHANGELOG.md +6 -1
- package/lib/cjs/Constants.js.map +1 -1
- package/lib/cjs/Context.d.ts +3 -3
- package/lib/cjs/Context.d.ts.map +1 -1
- package/lib/cjs/Context.js +6 -6
- package/lib/cjs/Context.js.map +1 -1
- package/lib/cjs/DelayedPromise.d.ts +9 -8
- package/lib/cjs/DelayedPromise.d.ts.map +1 -1
- package/lib/cjs/DelayedPromise.js +2 -2
- package/lib/cjs/DelayedPromise.js.map +1 -1
- package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
- package/lib/cjs/Deserialization/Helper.d.ts.map +1 -1
- package/lib/cjs/Deserialization/Helper.js +27 -26
- package/lib/cjs/Deserialization/Helper.js.map +1 -1
- package/lib/cjs/Deserialization/JsonParser.js +150 -150
- package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
- package/lib/cjs/Deserialization/JsonProps.d.ts +34 -34
- package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -1
- package/lib/cjs/Deserialization/JsonProps.js +3 -3
- package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
- package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
- package/lib/cjs/Deserialization/XmlParser.js +49 -49
- package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
- package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +0 -5
- package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
- package/lib/cjs/Deserialization/XmlSerializationUtils.js +6 -11
- package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/cjs/ECName.d.ts +2 -2
- package/lib/cjs/ECName.js +4 -4
- package/lib/cjs/ECName.js.map +1 -1
- package/lib/cjs/ECObjects.d.ts +23 -11
- package/lib/cjs/ECObjects.d.ts.map +1 -1
- package/lib/cjs/ECObjects.js +47 -24
- package/lib/cjs/ECObjects.js.map +1 -1
- package/lib/cjs/Exception.d.ts +4 -4
- package/lib/cjs/Exception.d.ts.map +1 -1
- package/lib/cjs/Exception.js +60 -60
- package/lib/cjs/Exception.js.map +1 -1
- package/lib/cjs/Interfaces.d.ts +30 -34
- package/lib/cjs/Interfaces.d.ts.map +1 -1
- package/lib/cjs/Interfaces.js.map +1 -1
- package/lib/cjs/Metadata/Class.d.ts +107 -19
- package/lib/cjs/Metadata/Class.d.ts.map +1 -1
- package/lib/cjs/Metadata/Class.js +127 -47
- package/lib/cjs/Metadata/Class.js.map +1 -1
- package/lib/cjs/Metadata/Constant.d.ts +12 -9
- package/lib/cjs/Metadata/Constant.d.ts.map +1 -1
- package/lib/cjs/Metadata/Constant.js +12 -9
- package/lib/cjs/Metadata/Constant.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttribute.d.ts +2 -2
- package/lib/cjs/Metadata/CustomAttribute.d.ts.map +1 -1
- package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttributeClass.d.ts +5 -3
- package/lib/cjs/Metadata/CustomAttributeClass.d.ts.map +1 -1
- package/lib/cjs/Metadata/CustomAttributeClass.js +7 -5
- package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/cjs/Metadata/EntityClass.d.ts +20 -3
- package/lib/cjs/Metadata/EntityClass.d.ts.map +1 -1
- package/lib/cjs/Metadata/EntityClass.js +32 -14
- package/lib/cjs/Metadata/EntityClass.js.map +1 -1
- package/lib/cjs/Metadata/Enumeration.d.ts +16 -9
- package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -1
- package/lib/cjs/Metadata/Enumeration.js +20 -13
- package/lib/cjs/Metadata/Enumeration.js.map +1 -1
- package/lib/cjs/Metadata/Format.d.ts +32 -24
- package/lib/cjs/Metadata/Format.d.ts.map +1 -1
- package/lib/cjs/Metadata/Format.js +47 -27
- package/lib/cjs/Metadata/Format.js.map +1 -1
- package/lib/cjs/Metadata/InvertedUnit.d.ts +11 -7
- package/lib/cjs/Metadata/InvertedUnit.d.ts.map +1 -1
- package/lib/cjs/Metadata/InvertedUnit.js +16 -10
- package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
- package/lib/cjs/Metadata/KindOfQuantity.d.ts +24 -15
- package/lib/cjs/Metadata/KindOfQuantity.d.ts.map +1 -1
- package/lib/cjs/Metadata/KindOfQuantity.js +54 -29
- package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/cjs/Metadata/Mixin.d.ts +16 -3
- package/lib/cjs/Metadata/Mixin.d.ts.map +1 -1
- package/lib/cjs/Metadata/Mixin.js +20 -7
- package/lib/cjs/Metadata/Mixin.js.map +1 -1
- package/lib/cjs/Metadata/OverrideFormat.d.ts +12 -12
- package/lib/cjs/Metadata/OverrideFormat.d.ts.map +1 -1
- package/lib/cjs/Metadata/OverrideFormat.js +27 -19
- package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
- package/lib/cjs/Metadata/Phenomenon.d.ts +10 -2
- package/lib/cjs/Metadata/Phenomenon.d.ts.map +1 -1
- package/lib/cjs/Metadata/Phenomenon.js +11 -3
- package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
- package/lib/cjs/Metadata/Property.d.ts +46 -28
- package/lib/cjs/Metadata/Property.d.ts.map +1 -1
- package/lib/cjs/Metadata/Property.js +46 -22
- package/lib/cjs/Metadata/Property.js.map +1 -1
- package/lib/cjs/Metadata/PropertyCategory.d.ts +6 -3
- package/lib/cjs/Metadata/PropertyCategory.d.ts.map +1 -1
- package/lib/cjs/Metadata/PropertyCategory.js +12 -5
- package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
- package/lib/cjs/Metadata/RelationshipClass.d.ts +48 -25
- package/lib/cjs/Metadata/RelationshipClass.d.ts.map +1 -1
- package/lib/cjs/Metadata/RelationshipClass.js +54 -34
- package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
- package/lib/cjs/Metadata/Schema.d.ts +50 -28
- package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
- package/lib/cjs/Metadata/Schema.js +64 -42
- package/lib/cjs/Metadata/Schema.js.map +1 -1
- package/lib/cjs/Metadata/SchemaItem.d.ts +10 -19
- package/lib/cjs/Metadata/SchemaItem.d.ts.map +1 -1
- package/lib/cjs/Metadata/SchemaItem.js +12 -20
- package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
- package/lib/cjs/Metadata/Unit.d.ts +17 -21
- package/lib/cjs/Metadata/Unit.d.ts.map +1 -1
- package/lib/cjs/Metadata/Unit.js +20 -22
- package/lib/cjs/Metadata/Unit.js.map +1 -1
- package/lib/cjs/Metadata/UnitSystem.d.ts +3 -1
- package/lib/cjs/Metadata/UnitSystem.d.ts.map +1 -1
- package/lib/cjs/Metadata/UnitSystem.js +4 -2
- package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
- package/lib/cjs/PropertyTypes.d.ts +11 -11
- package/lib/cjs/PropertyTypes.d.ts.map +1 -1
- package/lib/cjs/PropertyTypes.js +28 -20
- package/lib/cjs/PropertyTypes.js.map +1 -1
- package/lib/cjs/SchemaFormatsProvider.d.ts +39 -0
- package/lib/cjs/SchemaFormatsProvider.d.ts.map +1 -0
- package/lib/cjs/SchemaFormatsProvider.js +146 -0
- package/lib/cjs/SchemaFormatsProvider.js.map +1 -0
- package/lib/cjs/SchemaJsonLocater.d.ts +5 -5
- package/lib/cjs/SchemaJsonLocater.js +4 -4
- package/lib/cjs/SchemaJsonLocater.js.map +1 -1
- package/lib/cjs/SchemaKey.d.ts +6 -6
- package/lib/cjs/SchemaKey.d.ts.map +1 -1
- package/lib/cjs/SchemaKey.js +9 -9
- package/lib/cjs/SchemaKey.js.map +1 -1
- package/lib/cjs/SchemaLoader.d.ts +3 -3
- package/lib/cjs/SchemaLoader.js +4 -4
- package/lib/cjs/SchemaLoader.js.map +1 -1
- package/lib/cjs/SchemaPartVisitorDelegate.d.ts +2 -2
- package/lib/cjs/SchemaPartVisitorDelegate.js +1 -1
- package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
- package/lib/cjs/UnitConversion/Graph.js.map +1 -1
- package/lib/cjs/UnitConversion/Parser.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
- package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
- package/lib/cjs/ecschema-metadata.d.ts +2 -1
- package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
- package/lib/cjs/ecschema-metadata.js +1 -0
- package/lib/cjs/ecschema-metadata.js.map +1 -1
- package/lib/cjs/utils/SchemaGraph.js +3 -3
- package/lib/cjs/utils/SchemaGraph.js.map +1 -1
- package/lib/esm/Constants.js.map +1 -1
- package/lib/esm/Context.d.ts +3 -3
- package/lib/esm/Context.d.ts.map +1 -1
- package/lib/esm/Context.js +7 -7
- package/lib/esm/Context.js.map +1 -1
- package/lib/esm/DelayedPromise.d.ts +9 -8
- package/lib/esm/DelayedPromise.d.ts.map +1 -1
- package/lib/esm/DelayedPromise.js +2 -2
- package/lib/esm/DelayedPromise.js.map +1 -1
- package/lib/esm/Deserialization/AbstractParser.js.map +1 -1
- package/lib/esm/Deserialization/Helper.d.ts.map +1 -1
- package/lib/esm/Deserialization/Helper.js +28 -27
- package/lib/esm/Deserialization/Helper.js.map +1 -1
- package/lib/esm/Deserialization/JsonParser.js +151 -151
- package/lib/esm/Deserialization/JsonParser.js.map +1 -1
- package/lib/esm/Deserialization/JsonProps.d.ts +34 -34
- package/lib/esm/Deserialization/JsonProps.d.ts.map +1 -1
- package/lib/esm/Deserialization/JsonProps.js +3 -3
- package/lib/esm/Deserialization/JsonProps.js.map +1 -1
- package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
- package/lib/esm/Deserialization/XmlParser.js +50 -50
- package/lib/esm/Deserialization/XmlParser.js.map +1 -1
- package/lib/esm/Deserialization/XmlSerializationUtils.d.ts +0 -5
- package/lib/esm/Deserialization/XmlSerializationUtils.d.ts.map +1 -1
- package/lib/esm/Deserialization/XmlSerializationUtils.js +7 -12
- package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/esm/ECName.d.ts +2 -2
- package/lib/esm/ECName.js +5 -5
- package/lib/esm/ECName.js.map +1 -1
- package/lib/esm/ECObjects.d.ts +23 -11
- package/lib/esm/ECObjects.d.ts.map +1 -1
- package/lib/esm/ECObjects.js +48 -25
- package/lib/esm/ECObjects.js.map +1 -1
- package/lib/esm/Exception.d.ts +4 -4
- package/lib/esm/Exception.d.ts.map +1 -1
- package/lib/esm/Exception.js +58 -58
- package/lib/esm/Exception.js.map +1 -1
- package/lib/esm/Interfaces.d.ts +30 -34
- package/lib/esm/Interfaces.d.ts.map +1 -1
- package/lib/esm/Interfaces.js.map +1 -1
- package/lib/esm/Metadata/Class.d.ts +107 -19
- package/lib/esm/Metadata/Class.d.ts.map +1 -1
- package/lib/esm/Metadata/Class.js +128 -48
- package/lib/esm/Metadata/Class.js.map +1 -1
- package/lib/esm/Metadata/Constant.d.ts +12 -9
- package/lib/esm/Metadata/Constant.d.ts.map +1 -1
- package/lib/esm/Metadata/Constant.js +13 -10
- package/lib/esm/Metadata/Constant.js.map +1 -1
- package/lib/esm/Metadata/CustomAttribute.d.ts +2 -2
- package/lib/esm/Metadata/CustomAttribute.d.ts.map +1 -1
- package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
- package/lib/esm/Metadata/CustomAttributeClass.d.ts +5 -3
- package/lib/esm/Metadata/CustomAttributeClass.d.ts.map +1 -1
- package/lib/esm/Metadata/CustomAttributeClass.js +8 -6
- package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/esm/Metadata/EntityClass.d.ts +20 -3
- package/lib/esm/Metadata/EntityClass.d.ts.map +1 -1
- package/lib/esm/Metadata/EntityClass.js +33 -15
- package/lib/esm/Metadata/EntityClass.js.map +1 -1
- package/lib/esm/Metadata/Enumeration.d.ts +16 -9
- package/lib/esm/Metadata/Enumeration.d.ts.map +1 -1
- package/lib/esm/Metadata/Enumeration.js +21 -14
- package/lib/esm/Metadata/Enumeration.js.map +1 -1
- package/lib/esm/Metadata/Format.d.ts +32 -24
- package/lib/esm/Metadata/Format.d.ts.map +1 -1
- package/lib/esm/Metadata/Format.js +48 -28
- package/lib/esm/Metadata/Format.js.map +1 -1
- package/lib/esm/Metadata/InvertedUnit.d.ts +11 -7
- package/lib/esm/Metadata/InvertedUnit.d.ts.map +1 -1
- package/lib/esm/Metadata/InvertedUnit.js +17 -11
- package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
- package/lib/esm/Metadata/KindOfQuantity.d.ts +24 -15
- package/lib/esm/Metadata/KindOfQuantity.d.ts.map +1 -1
- package/lib/esm/Metadata/KindOfQuantity.js +55 -30
- package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/esm/Metadata/Mixin.d.ts +16 -3
- package/lib/esm/Metadata/Mixin.d.ts.map +1 -1
- package/lib/esm/Metadata/Mixin.js +21 -8
- package/lib/esm/Metadata/Mixin.js.map +1 -1
- package/lib/esm/Metadata/OverrideFormat.d.ts +12 -12
- package/lib/esm/Metadata/OverrideFormat.d.ts.map +1 -1
- package/lib/esm/Metadata/OverrideFormat.js +28 -20
- package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
- package/lib/esm/Metadata/Phenomenon.d.ts +10 -2
- package/lib/esm/Metadata/Phenomenon.d.ts.map +1 -1
- package/lib/esm/Metadata/Phenomenon.js +12 -4
- package/lib/esm/Metadata/Phenomenon.js.map +1 -1
- package/lib/esm/Metadata/Property.d.ts +46 -28
- package/lib/esm/Metadata/Property.d.ts.map +1 -1
- package/lib/esm/Metadata/Property.js +47 -23
- package/lib/esm/Metadata/Property.js.map +1 -1
- package/lib/esm/Metadata/PropertyCategory.d.ts +6 -3
- package/lib/esm/Metadata/PropertyCategory.d.ts.map +1 -1
- package/lib/esm/Metadata/PropertyCategory.js +13 -6
- package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
- package/lib/esm/Metadata/RelationshipClass.d.ts +48 -25
- package/lib/esm/Metadata/RelationshipClass.d.ts.map +1 -1
- package/lib/esm/Metadata/RelationshipClass.js +55 -35
- package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
- package/lib/esm/Metadata/Schema.d.ts +50 -28
- package/lib/esm/Metadata/Schema.d.ts.map +1 -1
- package/lib/esm/Metadata/Schema.js +65 -43
- package/lib/esm/Metadata/Schema.js.map +1 -1
- package/lib/esm/Metadata/SchemaItem.d.ts +10 -19
- package/lib/esm/Metadata/SchemaItem.d.ts.map +1 -1
- package/lib/esm/Metadata/SchemaItem.js +13 -21
- package/lib/esm/Metadata/SchemaItem.js.map +1 -1
- package/lib/esm/Metadata/Unit.d.ts +17 -21
- package/lib/esm/Metadata/Unit.d.ts.map +1 -1
- package/lib/esm/Metadata/Unit.js +21 -23
- package/lib/esm/Metadata/Unit.js.map +1 -1
- package/lib/esm/Metadata/UnitSystem.d.ts +3 -1
- package/lib/esm/Metadata/UnitSystem.d.ts.map +1 -1
- package/lib/esm/Metadata/UnitSystem.js +5 -3
- package/lib/esm/Metadata/UnitSystem.js.map +1 -1
- package/lib/esm/PropertyTypes.d.ts +11 -11
- package/lib/esm/PropertyTypes.d.ts.map +1 -1
- package/lib/esm/PropertyTypes.js +29 -21
- package/lib/esm/PropertyTypes.js.map +1 -1
- package/lib/esm/SchemaFormatsProvider.d.ts +39 -0
- package/lib/esm/SchemaFormatsProvider.d.ts.map +1 -0
- package/lib/esm/SchemaFormatsProvider.js +142 -0
- package/lib/esm/SchemaFormatsProvider.js.map +1 -0
- package/lib/esm/SchemaJsonLocater.d.ts +5 -5
- package/lib/esm/SchemaJsonLocater.js +4 -4
- package/lib/esm/SchemaJsonLocater.js.map +1 -1
- package/lib/esm/SchemaKey.d.ts +6 -6
- package/lib/esm/SchemaKey.d.ts.map +1 -1
- package/lib/esm/SchemaKey.js +10 -10
- package/lib/esm/SchemaKey.js.map +1 -1
- package/lib/esm/SchemaLoader.d.ts +3 -3
- package/lib/esm/SchemaLoader.js +5 -5
- package/lib/esm/SchemaLoader.js.map +1 -1
- package/lib/esm/SchemaPartVisitorDelegate.d.ts +2 -2
- package/lib/esm/SchemaPartVisitorDelegate.js +1 -1
- package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
- package/lib/esm/UnitConversion/Graph.js.map +1 -1
- package/lib/esm/UnitConversion/Parser.js.map +1 -1
- package/lib/esm/UnitConversion/UnitConversion.js.map +1 -1
- package/lib/esm/UnitConversion/UnitConverter.js.map +1 -1
- package/lib/esm/UnitConversion/UnitTree.js.map +1 -1
- package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/esm/Validation/SchemaWalker.js.map +1 -1
- package/lib/esm/ecschema-metadata.d.ts +2 -1
- package/lib/esm/ecschema-metadata.d.ts.map +1 -1
- package/lib/esm/ecschema-metadata.js +1 -0
- package/lib/esm/ecschema-metadata.js.map +1 -1
- package/lib/esm/utils/SchemaGraph.js +4 -4
- package/lib/esm/utils/SchemaGraph.js.map +1 -1
- package/package.json +8 -6
|
@@ -44,7 +44,7 @@ class SchemaReadHelper {
|
|
|
44
44
|
// Ensure context matches schema context
|
|
45
45
|
if (schema.context) {
|
|
46
46
|
if (this._context !== schema.context)
|
|
47
|
-
throw new Exception_1.
|
|
47
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.DifferentSchemaContexts, "The SchemaContext of the schema must be the same SchemaContext held by the SchemaReadHelper.");
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
50
50
|
schema.setContext(this._context);
|
|
@@ -53,10 +53,11 @@ class SchemaReadHelper {
|
|
|
53
53
|
// Loads all of the properties on the Schema object
|
|
54
54
|
await schema.fromJSON(this._parser.parseSchema());
|
|
55
55
|
this._schema = schema;
|
|
56
|
-
const
|
|
56
|
+
const schemaInfoReferences = [];
|
|
57
|
+
const schemaInfo = { schemaKey: schema.schemaKey, alias: schema.alias, references: schemaInfoReferences };
|
|
57
58
|
for (const reference of this._parser.getReferences()) {
|
|
58
59
|
const refKey = new SchemaKey_1.SchemaKey(reference.name, SchemaKey_1.ECVersion.fromString(reference.version));
|
|
59
|
-
|
|
60
|
+
schemaInfoReferences.push({ schemaKey: refKey });
|
|
60
61
|
}
|
|
61
62
|
this._schemaInfo = schemaInfo;
|
|
62
63
|
// Need to add this schema to the context to be able to locate schemaItems within the context.
|
|
@@ -76,7 +77,7 @@ class SchemaReadHelper {
|
|
|
76
77
|
}
|
|
77
78
|
const cachedSchema = await this._context.getCachedSchema(this._schemaInfo.schemaKey, ECObjects_1.SchemaMatchType.Latest);
|
|
78
79
|
if (undefined === cachedSchema)
|
|
79
|
-
throw new Exception_1.
|
|
80
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLoadSchema, `Could not load schema ${schema.schemaKey.toString()}`);
|
|
80
81
|
return cachedSchema;
|
|
81
82
|
}
|
|
82
83
|
/* Finish loading the rest of the schema */
|
|
@@ -147,7 +148,7 @@ class SchemaReadHelper {
|
|
|
147
148
|
async loadSchemaReference(schemaInfo, refKey) {
|
|
148
149
|
const refSchema = await this._context.getSchema(refKey, ECObjects_1.SchemaMatchType.LatestWriteCompatible);
|
|
149
150
|
if (undefined === refSchema)
|
|
150
|
-
throw new Exception_1.
|
|
151
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLocateSchema, `Could not locate the referenced schema, ${refKey.name}.${refKey.version.toString()}, of ${schemaInfo.schemaKey.name}`);
|
|
151
152
|
await this._schema.addReference(refSchema);
|
|
152
153
|
const results = this.validateSchemaReferences(this._schema);
|
|
153
154
|
let errorMessage = "";
|
|
@@ -155,7 +156,7 @@ class SchemaReadHelper {
|
|
|
155
156
|
errorMessage += `${result}\r\n`;
|
|
156
157
|
}
|
|
157
158
|
if (errorMessage) {
|
|
158
|
-
throw new Exception_1.
|
|
159
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `${errorMessage}`);
|
|
159
160
|
}
|
|
160
161
|
}
|
|
161
162
|
/**
|
|
@@ -166,7 +167,7 @@ class SchemaReadHelper {
|
|
|
166
167
|
const schemaKey = new SchemaKey_1.SchemaKey(ref.name, SchemaKey_1.ECVersion.fromString(ref.version));
|
|
167
168
|
const refSchema = this._context.getSchemaSync(schemaKey, ECObjects_1.SchemaMatchType.LatestWriteCompatible);
|
|
168
169
|
if (!refSchema)
|
|
169
|
-
throw new Exception_1.
|
|
170
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLocateSchema, `Could not locate the referenced schema, ${ref.name}.${ref.version}, of ${this._schema.schemaKey.name}`);
|
|
170
171
|
this._schema.addReferenceSync(refSchema);
|
|
171
172
|
SchemaGraph_1.SchemaGraph.generateGraphSync(this._schema).throwIfCycles();
|
|
172
173
|
const results = this.validateSchemaReferences(this._schema);
|
|
@@ -175,7 +176,7 @@ class SchemaReadHelper {
|
|
|
175
176
|
errorMessage += `${result}\r\n`;
|
|
176
177
|
}
|
|
177
178
|
if (errorMessage) {
|
|
178
|
-
throw new Exception_1.
|
|
179
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `${errorMessage}`);
|
|
179
180
|
}
|
|
180
181
|
}
|
|
181
182
|
/**
|
|
@@ -361,7 +362,7 @@ class SchemaReadHelper {
|
|
|
361
362
|
if (undefined !== schema && -1 !== fullOrQualifiedName.indexOf(":")) {
|
|
362
363
|
const refName = schema.getReferenceNameByAlias(schemaName);
|
|
363
364
|
if (undefined === refName)
|
|
364
|
-
throw new Exception_1.
|
|
365
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.UnableToLocateSchema, `Could not resolve schema alias '${schemaName}' for schema item '${itemName}.`);
|
|
365
366
|
return [refName, itemName];
|
|
366
367
|
}
|
|
367
368
|
return [schemaName, itemName];
|
|
@@ -380,7 +381,7 @@ class SchemaReadHelper {
|
|
|
380
381
|
const [schemaName, itemName] = SchemaReadHelper.resolveSchemaAndItemName(name, this._schema);
|
|
381
382
|
const isInThisSchema = (this._schema && this._schema.name.toLowerCase() === schemaName.toLowerCase());
|
|
382
383
|
if (undefined === schemaName || 0 === schemaName.length)
|
|
383
|
-
throw new Exception_1.
|
|
384
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `The SchemaItem ${name} is invalid without a schema name`);
|
|
384
385
|
if (isInThisSchema) {
|
|
385
386
|
schemaItem = await this._schema.getItem(itemName);
|
|
386
387
|
if (schemaItem)
|
|
@@ -395,11 +396,11 @@ class SchemaReadHelper {
|
|
|
395
396
|
loadCallBack(schemaItem);
|
|
396
397
|
return schemaItem;
|
|
397
398
|
}
|
|
398
|
-
throw new Exception_1.
|
|
399
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);
|
|
399
400
|
}
|
|
400
401
|
schemaItem = await this._context.getSchemaItem(new SchemaKey_1.SchemaItemKey(itemName, new SchemaKey_1.SchemaKey(schemaName)));
|
|
401
402
|
if (undefined === schemaItem)
|
|
402
|
-
throw new Exception_1.
|
|
403
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);
|
|
403
404
|
return schemaItem;
|
|
404
405
|
}
|
|
405
406
|
/**
|
|
@@ -416,7 +417,7 @@ class SchemaReadHelper {
|
|
|
416
417
|
const [schemaName, itemName] = SchemaReadHelper.resolveSchemaAndItemName(name, this._schema);
|
|
417
418
|
const isInThisSchema = (this._schema && this._schema.name.toLowerCase() === schemaName.toLowerCase());
|
|
418
419
|
if (undefined === schemaName || schemaName.length === 0)
|
|
419
|
-
throw new Exception_1.
|
|
420
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `The SchemaItem ${name} is invalid without a schema name`);
|
|
420
421
|
if (isInThisSchema && undefined === this._schema.getItemSync(itemName)) {
|
|
421
422
|
const foundItem = this._parser.findItem(itemName);
|
|
422
423
|
if (foundItem) {
|
|
@@ -428,11 +429,11 @@ class SchemaReadHelper {
|
|
|
428
429
|
loadCallBack(schemaItem);
|
|
429
430
|
return schemaItem;
|
|
430
431
|
}
|
|
431
|
-
throw new Exception_1.
|
|
432
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);
|
|
432
433
|
}
|
|
433
434
|
schemaItem = this._context.getSchemaItemSync(new SchemaKey_1.SchemaItemKey(itemName, new SchemaKey_1.SchemaKey(schemaName)));
|
|
434
435
|
if (undefined === schemaItem)
|
|
435
|
-
throw new Exception_1.
|
|
436
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);
|
|
436
437
|
return schemaItem;
|
|
437
438
|
}
|
|
438
439
|
/**
|
|
@@ -736,16 +737,16 @@ class SchemaReadHelper {
|
|
|
736
737
|
const loadTypeName = async (typeName) => {
|
|
737
738
|
if (undefined === (0, ECObjects_1.parsePrimitiveType)(typeName)) {
|
|
738
739
|
if (SchemaReadHelper.isECSpecVersionNewer(this._parser.getECSpecVersion))
|
|
739
|
-
return Exception_1.
|
|
740
|
+
return Exception_1.ECSchemaStatus.NewerECSpecVersion;
|
|
740
741
|
await this.findSchemaItem(typeName);
|
|
741
742
|
}
|
|
742
|
-
return Exception_1.
|
|
743
|
+
return Exception_1.ECSchemaStatus.Success;
|
|
743
744
|
};
|
|
744
745
|
const lowerCasePropType = propType.toLowerCase();
|
|
745
746
|
switch (lowerCasePropType) {
|
|
746
747
|
case "primitiveproperty":
|
|
747
748
|
const primPropertyProps = this._parser.parsePrimitiveProperty(rawProperty);
|
|
748
|
-
if (await loadTypeName(primPropertyProps.typeName) === Exception_1.
|
|
749
|
+
if (await loadTypeName(primPropertyProps.typeName) === Exception_1.ECSchemaStatus.NewerECSpecVersion)
|
|
749
750
|
primPropertyProps.typeName = "string";
|
|
750
751
|
const primProp = await classObj.createPrimitiveProperty(propName, primPropertyProps.typeName);
|
|
751
752
|
return this.loadProperty(primProp, primPropertyProps, rawProperty);
|
|
@@ -756,7 +757,7 @@ class SchemaReadHelper {
|
|
|
756
757
|
return this.loadProperty(structProp, structPropertyProps, rawProperty);
|
|
757
758
|
case "primitivearrayproperty":
|
|
758
759
|
const primArrPropertyProps = this._parser.parsePrimitiveArrayProperty(rawProperty);
|
|
759
|
-
if (await loadTypeName(primArrPropertyProps.typeName) === Exception_1.
|
|
760
|
+
if (await loadTypeName(primArrPropertyProps.typeName) === Exception_1.ECSchemaStatus.NewerECSpecVersion)
|
|
760
761
|
primArrPropertyProps.typeName = "string";
|
|
761
762
|
const primArrProp = await classObj.createPrimitiveArrayProperty(propName, primArrPropertyProps.typeName);
|
|
762
763
|
return this.loadProperty(primArrProp, primArrPropertyProps, rawProperty);
|
|
@@ -767,7 +768,7 @@ class SchemaReadHelper {
|
|
|
767
768
|
return this.loadProperty(structArrProp, structArrPropertyProps, rawProperty);
|
|
768
769
|
case "navigationproperty":
|
|
769
770
|
if (classObj.schemaItemType !== ECObjects_1.SchemaItemType.EntityClass && classObj.schemaItemType !== ECObjects_1.SchemaItemType.RelationshipClass && classObj.schemaItemType !== ECObjects_1.SchemaItemType.Mixin)
|
|
770
|
-
throw new Exception_1.
|
|
771
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `The Navigation Property ${classObj.name}.${propName} is invalid, because only EntityClasses, Mixins, and RelationshipClasses can have NavigationProperties.`);
|
|
771
772
|
const navPropertyProps = this._parser.parseNavigationProperty(rawProperty);
|
|
772
773
|
await this.findSchemaItem(navPropertyProps.relationshipName);
|
|
773
774
|
const navProp = await classObj.createNavigationProperty(propName, navPropertyProps.relationshipName, navPropertyProps.direction);
|
|
@@ -785,16 +786,16 @@ class SchemaReadHelper {
|
|
|
785
786
|
const loadTypeName = (typeName) => {
|
|
786
787
|
if (undefined === (0, ECObjects_1.parsePrimitiveType)(typeName)) {
|
|
787
788
|
if (SchemaReadHelper.isECSpecVersionNewer(this._parser.getECSpecVersion))
|
|
788
|
-
return Exception_1.
|
|
789
|
+
return Exception_1.ECSchemaStatus.NewerECSpecVersion;
|
|
789
790
|
this.findSchemaItemSync(typeName);
|
|
790
791
|
}
|
|
791
|
-
return Exception_1.
|
|
792
|
+
return Exception_1.ECSchemaStatus.Success;
|
|
792
793
|
};
|
|
793
794
|
const lowerCasePropType = propType.toLowerCase();
|
|
794
795
|
switch (lowerCasePropType) {
|
|
795
796
|
case "primitiveproperty":
|
|
796
797
|
const primPropertyProps = this._parser.parsePrimitiveProperty(rawProperty);
|
|
797
|
-
if (loadTypeName(primPropertyProps.typeName) === Exception_1.
|
|
798
|
+
if (loadTypeName(primPropertyProps.typeName) === Exception_1.ECSchemaStatus.NewerECSpecVersion)
|
|
798
799
|
primPropertyProps.typeName = "string";
|
|
799
800
|
const primProp = classObj.createPrimitivePropertySync(propName, primPropertyProps.typeName);
|
|
800
801
|
return this.loadPropertySync(primProp, primPropertyProps, rawProperty);
|
|
@@ -805,7 +806,7 @@ class SchemaReadHelper {
|
|
|
805
806
|
return this.loadPropertySync(structProp, structPropertyProps, rawProperty);
|
|
806
807
|
case "primitivearrayproperty":
|
|
807
808
|
const primArrPropertyProps = this._parser.parsePrimitiveArrayProperty(rawProperty);
|
|
808
|
-
if (loadTypeName(primArrPropertyProps.typeName) === Exception_1.
|
|
809
|
+
if (loadTypeName(primArrPropertyProps.typeName) === Exception_1.ECSchemaStatus.NewerECSpecVersion)
|
|
809
810
|
primArrPropertyProps.typeName = "string";
|
|
810
811
|
const primArrProp = classObj.createPrimitiveArrayPropertySync(propName, primArrPropertyProps.typeName);
|
|
811
812
|
return this.loadPropertySync(primArrProp, primArrPropertyProps, rawProperty);
|
|
@@ -816,7 +817,7 @@ class SchemaReadHelper {
|
|
|
816
817
|
return this.loadPropertySync(structArrProp, structArrPropertyProps, rawProperty);
|
|
817
818
|
case "navigationproperty":
|
|
818
819
|
if (classObj.schemaItemType !== ECObjects_1.SchemaItemType.EntityClass && classObj.schemaItemType !== ECObjects_1.SchemaItemType.RelationshipClass && classObj.schemaItemType !== ECObjects_1.SchemaItemType.Mixin)
|
|
819
|
-
throw new Exception_1.
|
|
820
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `The Navigation Property ${classObj.name}.${propName} is invalid, because only EntityClasses, Mixins, and RelationshipClasses can have NavigationProperties.`);
|
|
820
821
|
const navPropertyProps = this._parser.parseNavigationProperty(rawProperty);
|
|
821
822
|
this.findSchemaItemSync(navPropertyProps.relationshipName);
|
|
822
823
|
const navProp = classObj.createNavigationPropertySync(propName, navPropertyProps.relationshipName, navPropertyProps.direction);
|
|
@@ -868,7 +869,7 @@ class SchemaReadHelper {
|
|
|
868
869
|
// If custom attribute exist within the context and is referenced, validate the reference is defined in the container's schema
|
|
869
870
|
if (caClass && caClass.key.schemaName !== container.schema.name &&
|
|
870
871
|
!container.schema.getReferenceSync(caClass.key.schemaName)) {
|
|
871
|
-
throw new Exception_1.
|
|
872
|
+
throw new Exception_1.ECSchemaError(Exception_1.ECSchemaStatus.InvalidECJson, `Unable to load custom attribute ${caClass.fullName} from container ${container.fullName}, ${caClass.key.schemaName} reference not defined`);
|
|
872
873
|
}
|
|
873
874
|
// Second tuple entry ia a function that provides the CA instance.
|
|
874
875
|
const provider = providerTuple[1];
|