@itwin/ecschema-metadata 5.1.1 → 5.1.3-experimental.1
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 +11 -1
- package/lib/cjs/Constants.js.map +1 -1
- package/lib/cjs/Context.js.map +1 -1
- package/lib/cjs/DelayedPromise.js.map +1 -1
- package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
- package/lib/cjs/Deserialization/Helper.js.map +1 -1
- package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
- package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
- package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
- package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
- package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/cjs/ECName.js.map +1 -1
- package/lib/cjs/ECObjects.js.map +1 -1
- package/lib/cjs/Exception.js.map +1 -1
- package/lib/cjs/IncrementalLoading/ClassParsers.js.map +1 -1
- package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
- package/lib/cjs/IncrementalLoading/FullSchemaQueries.js +465 -465
- package/lib/cjs/IncrementalLoading/FullSchemaQueries.js.map +1 -1
- package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
- package/lib/cjs/IncrementalLoading/PerformanceLogger.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaItemParsers.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaItemQueries.js +235 -235
- package/lib/cjs/IncrementalLoading/SchemaItemQueries.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaParser.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaStubQueries.js +326 -326
- package/lib/cjs/IncrementalLoading/SchemaStubQueries.js.map +1 -1
- package/lib/cjs/Interfaces.js.map +1 -1
- package/lib/cjs/Metadata/Class.js.map +1 -1
- package/lib/cjs/Metadata/Constant.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/cjs/Metadata/EntityClass.js.map +1 -1
- package/lib/cjs/Metadata/Enumeration.js.map +1 -1
- package/lib/cjs/Metadata/Format.js.map +1 -1
- package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
- package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/cjs/Metadata/Mixin.js.map +1 -1
- package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
- package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
- package/lib/cjs/Metadata/Property.js.map +1 -1
- package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
- package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
- package/lib/cjs/Metadata/Schema.js.map +1 -1
- package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
- package/lib/cjs/Metadata/Unit.js.map +1 -1
- package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
- package/lib/cjs/PropertyTypes.js.map +1 -1
- package/lib/cjs/SchemaFormatsProvider.js.map +1 -1
- package/lib/cjs/SchemaJsonLocater.js.map +1 -1
- package/lib/cjs/SchemaKey.js.map +1 -1
- package/lib/cjs/SchemaLoader.js.map +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.js.map +1 -1
- package/lib/cjs/utils/SchemaGraph.js.map +1 -1
- package/lib/cjs/utils/SchemaLoadingController.js.map +1 -1
- package/lib/esm/Constants.js.map +1 -1
- package/lib/esm/Context.js.map +1 -1
- package/lib/esm/DelayedPromise.js.map +1 -1
- package/lib/esm/Deserialization/AbstractParser.js.map +1 -1
- package/lib/esm/Deserialization/Helper.js.map +1 -1
- package/lib/esm/Deserialization/JsonParser.js.map +1 -1
- package/lib/esm/Deserialization/JsonProps.js.map +1 -1
- package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
- package/lib/esm/Deserialization/XmlParser.js.map +1 -1
- package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/esm/ECName.js.map +1 -1
- package/lib/esm/ECObjects.js.map +1 -1
- package/lib/esm/Exception.js.map +1 -1
- package/lib/esm/IncrementalLoading/ClassParsers.js.map +1 -1
- package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
- package/lib/esm/IncrementalLoading/FullSchemaQueries.js +465 -465
- package/lib/esm/IncrementalLoading/FullSchemaQueries.js.map +1 -1
- package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
- package/lib/esm/IncrementalLoading/PerformanceLogger.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaItemParsers.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaItemQueries.js +235 -235
- package/lib/esm/IncrementalLoading/SchemaItemQueries.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaParser.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaStubQueries.js +326 -326
- package/lib/esm/IncrementalLoading/SchemaStubQueries.js.map +1 -1
- package/lib/esm/Interfaces.js.map +1 -1
- package/lib/esm/Metadata/Class.js.map +1 -1
- package/lib/esm/Metadata/Constant.js.map +1 -1
- package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
- package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/esm/Metadata/EntityClass.js.map +1 -1
- package/lib/esm/Metadata/Enumeration.js.map +1 -1
- package/lib/esm/Metadata/Format.js.map +1 -1
- package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
- package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/esm/Metadata/Mixin.js.map +1 -1
- package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
- package/lib/esm/Metadata/Phenomenon.js.map +1 -1
- package/lib/esm/Metadata/Property.js.map +1 -1
- package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
- package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
- package/lib/esm/Metadata/Schema.js.map +1 -1
- package/lib/esm/Metadata/SchemaItem.js.map +1 -1
- package/lib/esm/Metadata/Unit.js.map +1 -1
- package/lib/esm/Metadata/UnitSystem.js.map +1 -1
- package/lib/esm/PropertyTypes.js.map +1 -1
- package/lib/esm/SchemaFormatsProvider.js.map +1 -1
- package/lib/esm/SchemaJsonLocater.js.map +1 -1
- package/lib/esm/SchemaKey.js.map +1 -1
- package/lib/esm/SchemaLoader.js.map +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.js.map +1 -1
- package/lib/esm/utils/SchemaGraph.js.map +1 -1
- package/lib/esm/utils/SchemaLoadingController.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Helper.js","sourceRoot":"","sources":["../../../src/Deserialization/Helper.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 { SchemaContext } from \"../Context\";\nimport { parsePrimitiveType, parseSchemaItemType, SchemaItemType, SchemaMatchType } from \"../ECObjects\";\nimport { ECSchemaError, ECSchemaStatus } from \"../Exception\";\nimport { AnyClass, SchemaInfo, WithSchemaKey } from \"../Interfaces\";\nimport { ECClass, MutableClass, StructClass } from \"../Metadata/Class\";\nimport { Constant } from \"../Metadata/Constant\";\nimport { CustomAttributeClass } from \"../Metadata/CustomAttributeClass\";\nimport { EntityClass, MutableEntityClass } from \"../Metadata/EntityClass\";\nimport { Format } from \"../Metadata/Format\";\nimport { InvertedUnit } from \"../Metadata/InvertedUnit\";\nimport { KindOfQuantity } from \"../Metadata/KindOfQuantity\";\nimport { Mixin } from \"../Metadata/Mixin\";\nimport { MutableProperty, Property } from \"../Metadata/Property\";\nimport { MutableRelationshipConstraint, RelationshipClass, RelationshipConstraint } from \"../Metadata/RelationshipClass\";\nimport { MutableSchema, Schema } from \"../Metadata/Schema\";\nimport { SchemaItem } from \"../Metadata/SchemaItem\";\nimport { Unit } from \"../Metadata/Unit\";\nimport { ECVersion, SchemaItemKey, SchemaKey } from \"../SchemaKey\";\nimport { ISchemaPartVisitor, SchemaPartVisitorDelegate } from \"../SchemaPartVisitorDelegate\";\nimport { getItemNamesFromFormatString } from \"@itwin/core-quantity\";\nimport { AbstractParser, AbstractParserConstructor, CAProviderTuple } from \"./AbstractParser\";\nimport { ClassProps, PropertyProps, RelationshipConstraintProps, SchemaReferenceProps } from \"./JsonProps\";\nimport { SchemaGraph } from \"../utils/SchemaGraph\";\n\ntype AnyCAContainer = Schema | ECClass | Property | RelationshipConstraint;\ntype AnyMutableCAContainer = MutableSchema | MutableClass | MutableProperty | MutableRelationshipConstraint;\n\n/**\n * Specifies the version specification for the schema\n * @internal\n */\nexport interface ECSpecVersion {\n readVersion: number;\n writeVersion: number;\n}\n\n/**\n * This class properly handles the order the deserialization of ECSchemas and SchemaItems from serialized formats.\n * For example, when deserializing an ECClass most times all base class should be de-serialized before the given class.\n * @internal\n */\nexport class SchemaReadHelper<T = unknown> {\n private _context: SchemaContext;\n private _visitorHelper?: SchemaPartVisitorDelegate;\n private _parserType: AbstractParserConstructor<T, unknown>;\n private _parser!: AbstractParser<unknown>;\n\n // Cache of the schema currently being loaded. This schema is in the _context but to\n // avoid going back to the context every time, the cache is used.\n private _schema?: Schema;\n private _schemaInfo?: SchemaInfo;\n\n constructor(parserType: AbstractParserConstructor<T>, context?: SchemaContext, visitor?: ISchemaPartVisitor) {\n this._context = (undefined !== context) ? context : new SchemaContext();\n this._visitorHelper = visitor ? new SchemaPartVisitorDelegate(visitor) : undefined;\n this._parserType = parserType;\n }\n\n /**\n * Creates a complete SchemaInfo and starts parsing the schema from a serialized representation.\n * The info and schema promise will be registered with the SchemaContext. The complete schema can be retrieved by\n * calling getCachedSchema on the context.\n * @param schema The Schema to populate\n * @param rawSchema The serialized data to use to populate the Schema.\n * @param addSchemaToCache Optional parameter that indicates if the schema should be added to the SchemaContext.\n * The default is true. If false, the schema loading will not begin asynchronously in the background because the\n * schema promise must be added to the context. In this case, only the SchemaInfo is returned.\n */\n public async readSchemaInfo(schema: Schema, rawSchema: T, addSchemaToCache: boolean = true): Promise<SchemaInfo> {\n // Ensure context matches schema context\n if (schema.context) {\n if (this._context !== schema.context)\n throw new ECSchemaError(ECSchemaStatus.DifferentSchemaContexts, \"The SchemaContext of the schema must be the same SchemaContext held by the SchemaReadHelper.\");\n } else {\n (schema as MutableSchema).setContext(this._context);\n }\n\n this._parser = new this._parserType(rawSchema);\n\n // Loads all of the properties on the Schema object\n await schema.fromJSON(this._parser.parseSchema());\n\n this._schema = schema;\n\n const schemaReferences: WithSchemaKey[] = [];\n const schemaInfo: SchemaInfo = { schemaKey: schema.schemaKey, alias: schema.alias, references: schemaReferences };\n for (const reference of this._parser.getReferences()) {\n const refKey = new SchemaKey(reference.name, ECVersion.fromString(reference.version));\n schemaReferences.push({ schemaKey: refKey });\n }\n\n this._schemaInfo = schemaInfo;\n\n // Need to add this schema to the context to be able to locate schemaItems within the context.\n if (addSchemaToCache && !this._context.schemaExists(schema.schemaKey)) {\n await this._context.addSchemaPromise(schemaInfo, schema, this.loadSchema(schemaInfo, schema));\n }\n return schemaInfo;\n }\n\n /**\n * Populates the given Schema from a serialized representation.\n * @param schema The Schema to populate\n * @param rawSchema The serialized data to use to populate the Schema.\n * @param addSchemaToCache Optional parameter that indicates if the schema should be added to the SchemaContext.\n * The default is true. If false, the schema will be loaded directly by this method and not from the context's schema cache.\n */\n public async readSchema(schema: Schema, rawSchema: T, addSchemaToCache: boolean = true): Promise<Schema> {\n if (!this._schemaInfo) {\n await this.readSchemaInfo(schema, rawSchema, addSchemaToCache);\n }\n\n // If not adding schema to cache (occurs in readSchemaInfo), we must load the schema here\n if (!addSchemaToCache) {\n const loadedSchema = await this.loadSchema(this._schemaInfo!, schema);\n if (undefined === loadedSchema)\n throw new ECSchemaError(ECSchemaStatus.UnableToLoadSchema, `Could not load schema ${schema.schemaKey.toString()}`);\n\n return loadedSchema;\n }\n\n const cachedSchema = await this._context.getCachedSchema(this._schemaInfo!.schemaKey, SchemaMatchType.Latest);\n if (undefined === cachedSchema)\n throw new ECSchemaError(ECSchemaStatus.UnableToLoadSchema, `Could not load schema ${schema.schemaKey.toString()}`);\n\n return cachedSchema;\n }\n\n /**\n * Called when a SchemaItem has been successfully loaded by the Helper. The default implementation simply\n * checks if the schema item is undefined. An implementation of the helper may choose to partially load\n * a schema item in which case this method would indicate if the item has been fully loaded.\n * @param schemaItem The SchemaItem to check.\n * @returns True if the SchemaItem has been fully loaded, false otherwise.\n */\n protected isSchemaItemLoaded(schemaItem: SchemaItem | undefined): boolean {\n return schemaItem !== undefined;\n }\n\n /* Finish loading the rest of the schema */\n private async loadSchema(schemaInfo: SchemaInfo, schema: Schema): Promise<Schema> {\n // Verify that there are no schema reference cycles, this will start schema loading by loading their headers\n (await SchemaGraph.generateGraph(schemaInfo, this._context)).throwIfCycles();\n\n for (const reference of schemaInfo.references) {\n await this.loadSchemaReference(schema, reference.schemaKey);\n }\n\n if (this._visitorHelper)\n await this._visitorHelper.visitSchema(schema, false);\n\n // Load all schema items\n for (const [itemName, itemType, rawItem] of this._parser.getItems()) {\n // Make sure the item has not already been loaded. No need to check the SchemaContext because all SchemaItems are added to a Schema,\n // which would be found when adding to the context.\n const schemaItem = await schema.getItem(itemName);\n if (this.isSchemaItemLoaded(schemaItem))\n continue;\n\n const loadedItem = await this.loadSchemaItem(schema, itemName, itemType, rawItem);\n if (this.isSchemaItemLoaded(loadedItem) && this._visitorHelper) {\n await this._visitorHelper.visitSchemaPart(loadedItem!);\n }\n }\n\n await this.loadCustomAttributes(schema, this._parser.getSchemaCustomAttributeProviders());\n\n if (this._visitorHelper)\n await this._visitorHelper.visitSchema(schema);\n\n return schema;\n }\n\n /**\n * Populates the given Schema from a serialized representation.\n * @param schema The Schema to populate\n * @param rawSchema The serialized data to use to populate the Schema.\n */\n public readSchemaSync(schema: Schema, rawSchema: T): Schema {\n this._parser = new this._parserType(rawSchema);\n\n // Loads all of the properties on the Schema object\n schema.fromJSONSync(this._parser.parseSchema());\n\n this._schema = schema;\n\n // Need to add this schema to the context to be able to locate schemaItems within the context.\n if (!this._context.schemaExists(schema.schemaKey))\n this._context.addSchemaSync(schema);\n\n // Load schema references first\n // Need to figure out if other schemas are present.\n for (const reference of this._parser.getReferences()) {\n this.loadSchemaReferenceSync(reference);\n }\n\n if (this._visitorHelper)\n this._visitorHelper.visitSchemaSync(schema, false);\n\n // Load all schema items\n for (const [itemName, itemType, rawItem] of this._parser.getItems()) {\n const loadedItem = this.loadSchemaItemSync(schema, itemName, itemType, rawItem);\n if (this.isSchemaItemLoaded(loadedItem) && this._visitorHelper) {\n this._visitorHelper.visitSchemaPartSync(loadedItem!);\n }\n }\n\n this.loadCustomAttributesSync(schema, this._parser.getSchemaCustomAttributeProviders());\n\n if (this._visitorHelper)\n this._visitorHelper.visitSchemaSync(schema);\n\n return schema;\n }\n\n /**\n * Ensures that the schema references can be located and adds them to the schema.\n * @param ref The object to read the SchemaReference's props from.\n */\n private async loadSchemaReference(schema: Schema, refKey: SchemaKey): Promise<Schema> {\n const refSchema = await this._context.getSchema(refKey, SchemaMatchType.LatestWriteCompatible);\n if (undefined === refSchema)\n throw new ECSchemaError(ECSchemaStatus.UnableToLocateSchema, `Could not locate the referenced schema, ${refKey.name}.${refKey.version.toString()}, of ${schema.schemaKey.name}`);\n\n if (schema.references.find((ref) => ref.schemaKey.matches(refSchema.schemaKey)))\n return refSchema;\n\n await (schema as MutableSchema).addReference(refSchema);\n const results = this.validateSchemaReferences(schema);\n\n let errorMessage: string = \"\";\n for (const result of results) {\n errorMessage += `${result}\\r\\n`;\n }\n\n if (errorMessage) {\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `${errorMessage}`);\n }\n\n return refSchema;\n }\n\n /**\n * Ensures that the schema references can be located and adds them to the schema.\n * @param ref The object to read the SchemaReference's props from.\n */\n private loadSchemaReferenceSync(ref: SchemaReferenceProps): void {\n const schemaKey = new SchemaKey(ref.name, ECVersion.fromString(ref.version));\n const refSchema = this._context.getSchemaSync(schemaKey, SchemaMatchType.LatestWriteCompatible);\n if (!refSchema)\n throw new ECSchemaError(ECSchemaStatus.UnableToLocateSchema, `Could not locate the referenced schema, ${ref.name}.${ref.version}, of ${this._schema!.schemaKey.name}`);\n\n (this._schema as MutableSchema).addReferenceSync(refSchema);\n\n SchemaGraph.generateGraphSync(this._schema!).throwIfCycles();\n const results = this.validateSchemaReferences(this._schema!);\n\n let errorMessage: string = \"\";\n for (const result of results) {\n errorMessage += `${result}\\r\\n`;\n }\n\n if (errorMessage) {\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `${errorMessage}`);\n }\n }\n\n /**\n * Validates schema references against multiple EC rules.\n * @param schema The schema to validate.\n */\n private *validateSchemaReferences(schema: Schema): Iterable<string> {\n const aliases = new Map();\n for (const schemaRef of schema.references) {\n if (schemaRef.customAttributes && schemaRef.customAttributes.has(\"CoreCustomAttributes.SupplementalSchema\"))\n yield `Referenced schema '${schemaRef.name}' of schema '${schema.name}' is a supplemental schema. Supplemental schemas are not allowed to be referenced.`;\n\n if (schema.schemaKey.matches(schemaRef.schemaKey))\n yield `Schema '${schema.name}' has reference cycles: '${schema.name} --> ${schemaRef.name}'`;\n\n if (aliases.has(schemaRef.alias)) {\n const currentRef = aliases.get(schemaRef.alias);\n yield `Schema '${schema.name}' has multiple schema references (${currentRef.name}, $schemaRef.name}) with the same alias '${schemaRef.alias}', which is not allowed.`;\n } else {\n aliases.set(schemaRef.alias, schemaRef);\n }\n }\n }\n\n /**\n * Given the schema item object, the anticipated type and the name a schema item is created and loaded into the schema provided.\n * @param schema The Schema the SchemaItem to.\n * @param name The name of the schema item to be loaded.\n * @param itemType The SchemaItemType of the item to load.\n * @param schemaItemObject The Object to populate the SchemaItem with.\n */\n protected async loadSchemaItem(schema: Schema, name: string, itemType: string, schemaItemObject?: Readonly<unknown>): Promise<SchemaItem | undefined> {\n let schemaItem = await schema.getItem(name);\n if (this.isSchemaItemLoaded(schemaItem)) {\n return schemaItem;\n }\n\n switch (parseSchemaItemType(itemType)) {\n case SchemaItemType.EntityClass:\n schemaItem = schemaItem || await (schema as MutableSchema).createEntityClass(name);\n schemaItemObject && await this.loadEntityClass(schemaItem as EntityClass, schemaItemObject);\n break;\n case SchemaItemType.StructClass:\n schemaItem = schemaItem || await (schema as MutableSchema).createStructClass(name);\n const structProps = schemaItemObject && this._parser.parseStructClass(schemaItemObject);\n structProps && await this.loadClass(schemaItem as StructClass, structProps, schemaItemObject);\n break;\n case SchemaItemType.Mixin:\n schemaItem = schemaItem || await (schema as MutableSchema).createMixinClass(name);\n schemaItemObject && await this.loadMixin(schemaItem as Mixin, schemaItemObject);\n break;\n case SchemaItemType.CustomAttributeClass:\n schemaItem = schemaItem || await (schema as MutableSchema).createCustomAttributeClass(name);\n const caClassProps = schemaItemObject && this._parser.parseCustomAttributeClass(schemaItemObject);\n caClassProps && await this.loadClass(schemaItem as CustomAttributeClass, caClassProps, schemaItemObject);\n break;\n case SchemaItemType.RelationshipClass:\n schemaItem = schemaItem || await (schema as MutableSchema).createRelationshipClass(name);\n schemaItemObject && await this.loadRelationshipClass(schemaItem as RelationshipClass, schemaItemObject);\n break;\n case SchemaItemType.KindOfQuantity:\n schemaItem = schemaItem || await (schema as MutableSchema).createKindOfQuantity(name);\n schemaItemObject && await this.loadKindOfQuantity(schemaItem as KindOfQuantity, schemaItemObject);\n break;\n case SchemaItemType.Unit:\n schemaItem = schemaItem || await (schema as MutableSchema).createUnit(name);\n schemaItemObject && await this.loadUnit(schemaItem as Unit, schemaItemObject);\n break;\n case SchemaItemType.Constant:\n schemaItem = schemaItem || await (schema as MutableSchema).createConstant(name);\n schemaItemObject && await this.loadConstant(schemaItem as Constant, schemaItemObject);\n break;\n case SchemaItemType.InvertedUnit:\n schemaItem = schemaItem || await (schema as MutableSchema).createInvertedUnit(name);\n schemaItemObject && await this.loadInvertedUnit(schemaItem as InvertedUnit, schemaItemObject);\n break;\n case SchemaItemType.Format:\n schemaItem = schemaItem || await (schema as MutableSchema).createFormat(name);\n schemaItemObject && await this.loadFormat(schemaItem as Format, schemaItemObject);\n break;\n case SchemaItemType.Phenomenon:\n schemaItem = schemaItem || await (schema as MutableSchema).createPhenomenon(name);\n const phenomenonProps = schemaItemObject && this._parser.parsePhenomenon(schemaItemObject);\n phenomenonProps && await schemaItem.fromJSON(phenomenonProps);\n break;\n case SchemaItemType.UnitSystem:\n schemaItem = schemaItem || await (schema as MutableSchema).createUnitSystem(name);\n schemaItemObject && await schemaItem.fromJSON(this._parser.parseUnitSystem(schemaItemObject));\n break;\n case SchemaItemType.PropertyCategory:\n schemaItem = schemaItem || await (schema as MutableSchema).createPropertyCategory(name);\n const propertyCategoryProps = schemaItemObject && this._parser.parsePropertyCategory(schemaItemObject);\n propertyCategoryProps && schemaItemObject && await schemaItem.fromJSON(propertyCategoryProps);\n break;\n case SchemaItemType.Enumeration:\n schemaItem = schemaItem || await (schema as MutableSchema).createEnumeration(name);\n const enumerationProps = schemaItemObject && this._parser.parseEnumeration(schemaItemObject);\n enumerationProps && await schemaItem.fromJSON(enumerationProps);\n break;\n // NOTE: we are being permissive here and allowing unknown types to silently fail. Not sure if we want to hard fail or just do a basic deserialization\n }\n return schemaItem;\n }\n\n /**\n * Load the customAttribute class dependencies for a set of CustomAttribute objects and add\n * them to a given custom attribute container.\n * @param container The CustomAttributeContainer that each CustomAttribute will be added to.\n * @param customAttributes An iterable set of parsed CustomAttribute objects.\n */\n protected async loadCustomAttributes(container: AnyCAContainer, caProviders: Iterable<CAProviderTuple>): Promise<void> {\n for (const providerTuple of caProviders) {\n // First tuple entry is the CA class name.\n const caClass = await this.findSchemaItem(providerTuple[0]);\n\n // If custom attribute exist within the context and is referenced, validate the reference is defined in the container's schema\n if (caClass && caClass.key.schemaName !== container.schema.name &&\n !container.schema.getReferenceSync(caClass.key.schemaName)) {\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `Unable to load custom attribute ${caClass.fullName} from container ${container.fullName}, ${caClass.key.schemaName} reference not defined`);\n }\n\n // Second tuple entry ia a function that provides the CA instance.\n const provider = providerTuple[1];\n const customAttribute = provider(caClass as CustomAttributeClass);\n\n (container as AnyMutableCAContainer).addCustomAttribute(customAttribute);\n }\n }\n\n /**\n * Given the schema item object, the anticipated type and the name a schema item is created and loaded into the schema provided.\n * @param schema The Schema the SchemaItem to.\n * @param name The name of the schema item to be loaded.\n * @param itemType The SchemaItemType of the item to load.\n * @param schemaItemObject The Object to populate the SchemaItem with.\n */\n private loadSchemaItemSync(schema: Schema, name: string, itemType: string, schemaItemObject: Readonly<unknown>): SchemaItem | undefined {\n let schemaItem = schema.getItemSync(name);\n if (this.isSchemaItemLoaded(schemaItem)) {\n return schemaItem;\n }\n\n switch (parseSchemaItemType(itemType)) {\n case SchemaItemType.EntityClass:\n schemaItem = schemaItem || (schema as MutableSchema).createEntityClassSync(name);\n this.loadEntityClassSync(schemaItem as EntityClass, schemaItemObject);\n break;\n case SchemaItemType.StructClass:\n schemaItem = schemaItem || (schema as MutableSchema).createStructClassSync(name);\n const structProps = this._parser.parseStructClass(schemaItemObject);\n this.loadClassSync(schemaItem as StructClass, structProps, schemaItemObject);\n break;\n case SchemaItemType.Mixin:\n schemaItem = schemaItem || (schema as MutableSchema).createMixinClassSync(name);\n this.loadMixinSync(schemaItem as Mixin, schemaItemObject);\n break;\n case SchemaItemType.CustomAttributeClass:\n schemaItem = schemaItem || (schema as MutableSchema).createCustomAttributeClassSync(name);\n const caClassProps = this._parser.parseCustomAttributeClass(schemaItemObject);\n this.loadClassSync(schemaItem as CustomAttributeClass, caClassProps, schemaItemObject);\n break;\n case SchemaItemType.RelationshipClass:\n schemaItem = schemaItem || (schema as MutableSchema).createRelationshipClassSync(name);\n this.loadRelationshipClassSync(schemaItem as RelationshipClass, schemaItemObject);\n break;\n case SchemaItemType.KindOfQuantity:\n schemaItem = schemaItem || (schema as MutableSchema).createKindOfQuantitySync(name);\n this.loadKindOfQuantitySync(schemaItem as KindOfQuantity, schemaItemObject);\n break;\n case SchemaItemType.Unit:\n schemaItem = schemaItem || (schema as MutableSchema).createUnitSync(name);\n this.loadUnitSync(schemaItem as Unit, schemaItemObject);\n break;\n case SchemaItemType.Constant:\n schemaItem = schemaItem || (schema as MutableSchema).createConstantSync(name);\n this.loadConstantSync(schemaItem as Constant, schemaItemObject);\n break;\n case SchemaItemType.InvertedUnit:\n schemaItem = schemaItem || (schema as MutableSchema).createInvertedUnitSync(name);\n this.loadInvertedUnitSync(schemaItem as InvertedUnit, schemaItemObject);\n break;\n case SchemaItemType.Format:\n schemaItem = schemaItem || (schema as MutableSchema).createFormatSync(name);\n this.loadFormatSync(schemaItem as Format, schemaItemObject);\n break;\n case SchemaItemType.Phenomenon:\n schemaItem = schemaItem || (schema as MutableSchema).createPhenomenonSync(name);\n const phenomenonProps = this._parser.parsePhenomenon(schemaItemObject);\n schemaItem.fromJSONSync(phenomenonProps);\n break;\n case SchemaItemType.UnitSystem:\n schemaItem = schemaItem || (schema as MutableSchema).createUnitSystemSync(name);\n schemaItem.fromJSONSync(this._parser.parseUnitSystem(schemaItemObject));\n break;\n case SchemaItemType.PropertyCategory:\n schemaItem = schemaItem || (schema as MutableSchema).createPropertyCategorySync(name);\n const propertyCategoryProps = this._parser.parsePropertyCategory(schemaItemObject);\n schemaItem.fromJSONSync(propertyCategoryProps);\n break;\n case SchemaItemType.Enumeration:\n schemaItem = schemaItem || (schema as MutableSchema).createEnumerationSync(name);\n const enumerationProps = this._parser.parseEnumeration(schemaItemObject);\n schemaItem.fromJSONSync(enumerationProps);\n break;\n // NOTE: we are being permissive here and allowing unknown types to silently fail. Not sure if we want to hard fail or just do a basic deserialization\n }\n return schemaItem;\n }\n\n /**\n * Given the full (Schema.ItemName) or qualified (alias:ItemName) item name, returns\n * a tuple of strings in the format [\"SchemaName\", \"ItemName\"]. The schema name may be\n * empty if the item comes from the schema being parsed.\n * @param fullOrQualifiedName The full or qualified name of the schema item.\n * @param schema The schema that will be used to lookup the schema name by alias, if necessary.\n */\n private static resolveSchemaAndItemName(fullOrQualifiedName: string, schema?: Schema): [string, string] {\n const [schemaName, itemName] = SchemaItem.parseFullName(fullOrQualifiedName);\n\n // If a schema is provided we attempt to resolve the alias by looking at the reference schemas.\n if (undefined !== schema && -1 !== fullOrQualifiedName.indexOf(\":\")) {\n const refName = schema.getReferenceNameByAlias(schemaName);\n if (undefined === refName)\n throw new ECSchemaError(ECSchemaStatus.UnableToLocateSchema, `Could not resolve schema alias '${schemaName}' for schema item '${itemName}.`);\n return [refName, itemName];\n }\n\n return [schemaName, itemName];\n }\n\n /**\n * Finds the a SchemaItem matching the name first by checking the schema that is being deserialized. If it does\n * not exist within the schema, the SchemaContext will be searched.\n * @param name The full (Schema.ItemName) or qualified (alias:ItemName) name of the SchemaItem to search for.\n * @param skipVisitor Used to break Mixin -appliesTo-> Entity -extends-> Mixin cycle.\n * @param loadCallBack Only called if the SchemaItem had to be loaded.\n * @return The SchemaItem if it had to be loaded, otherwise undefined.\n */\n private async findSchemaItem(name: string, skipVisitor = false, loadCallBack?: (item: SchemaItem) => void): Promise<SchemaItem | undefined> {\n let schemaItem: SchemaItem | undefined;\n // TODO: A better solution should be investigated for handling both an alias and the schema name.\n const [schemaName, itemName] = SchemaReadHelper.resolveSchemaAndItemName(name, this._schema);\n const isInThisSchema = (this._schema && this._schema.name.toLowerCase() === schemaName.toLowerCase());\n\n if (undefined === schemaName || 0 === schemaName.length)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The SchemaItem ${name} is invalid without a schema name`);\n\n if (isInThisSchema) {\n schemaItem = await this._schema!.getItem(itemName);\n if (schemaItem)\n return schemaItem;\n\n const foundItem = this._parser.findItem(itemName);\n if (foundItem) {\n schemaItem = await this.loadSchemaItem(this._schema!, ...foundItem);\n if (!skipVisitor && this.isSchemaItemLoaded(schemaItem) && this._visitorHelper) {\n await this._visitorHelper.visitSchemaPart(schemaItem!);\n }\n if (loadCallBack && schemaItem)\n loadCallBack(schemaItem);\n\n return schemaItem;\n }\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);\n }\n\n schemaItem = await this._context.getSchemaItem(new SchemaItemKey(itemName, new SchemaKey(schemaName)));\n if (undefined === schemaItem)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);\n\n return schemaItem;\n }\n\n /**\n * Finds the a SchemaItem matching the name first by checking the schema that is being deserialized. If it does\n * not exist within the schema, the SchemaContext will be searched.\n * @param name The full (Schema.ItemName) or qualified (alias:ItemName) name of the SchemaItem to search for.\n * @param skipVisitor Used to break Mixin -appliesTo-> Entity -extends-> Mixin cycle.\n * @param loadCallBack Only called if the SchemaItem had to be loaded.\n * @return The SchemaItem if it had to be loaded, otherwise undefined.\n */\n private findSchemaItemSync(name: string, skipVisitor = false, loadCallBack?: (item: SchemaItem) => void): SchemaItem | undefined {\n let schemaItem: SchemaItem | undefined;\n // TODO: A better solution should be investigated for handling both an alias and the schema name.\n const [schemaName, itemName] = SchemaReadHelper.resolveSchemaAndItemName(name, this._schema);\n const isInThisSchema = (this._schema && this._schema.name.toLowerCase() === schemaName.toLowerCase());\n\n if (undefined === schemaName || schemaName.length === 0)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The SchemaItem ${name} is invalid without a schema name`);\n\n if (isInThisSchema && undefined === this._schema!.getItemSync(itemName)) {\n const foundItem = this._parser.findItem(itemName);\n if (foundItem) {\n schemaItem = this.loadSchemaItemSync(this._schema!, ...foundItem);\n if (!skipVisitor && this.isSchemaItemLoaded(schemaItem) && this._visitorHelper) {\n this._visitorHelper.visitSchemaPartSync(schemaItem!);\n }\n if (loadCallBack && schemaItem)\n loadCallBack(schemaItem);\n\n return schemaItem;\n }\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);\n }\n\n schemaItem = this._context.getSchemaItemSync(new SchemaItemKey(itemName, new SchemaKey(schemaName)));\n if (undefined === schemaItem)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `Unable to locate SchemaItem ${name}.`);\n\n return schemaItem;\n }\n\n /**\n * Load dependencies on phenomenon and unitSystem for a Unit object and load the Unit from its serialized format.\n * @param unit The Unit object that we are loading dependencies for and \"deserializing into\".\n * @param rawUnit The serialized unit data\n */\n private async loadUnit(unit: Unit, rawUnit: Readonly<unknown>): Promise<void> {\n const unitProps = this._parser.parseUnit(rawUnit);\n\n await this.findSchemaItem(unitProps.phenomenon, true);\n await this.findSchemaItem(unitProps.unitSystem, true);\n\n await unit.fromJSON(unitProps);\n }\n\n /**\n * Load dependencies on phenomenon and unitSystem for a Unit object and load the Unit from its serialized format.\n * @param unit The Unit object that we are loading dependencies for and \"deserializing into\".\n * @param rawUnit The serialized unit data\n */\n private loadUnitSync(unit: Unit, rawUnit: Readonly<unknown>) {\n const unitProps = this._parser.parseUnit(rawUnit);\n\n this.findSchemaItemSync(unitProps.phenomenon, true);\n this.findSchemaItemSync(unitProps.unitSystem, true);\n\n unit.fromJSONSync(unitProps);\n }\n\n /**\n * Load the persistence unit and presentation unit dependencies for a KindOfQuantity object and load the KoQ from its serialized format.\n * @param koq The KindOfQuantity object that we are loading dependencies for and \"deserializing into\".\n * @param rawKoQ The serialized kind of quantity data\n */\n private async loadKindOfQuantity(koq: KindOfQuantity, rawKoQ: Readonly<unknown>): Promise<void> {\n const koqProps = this._parser.parseKindOfQuantity(rawKoQ);\n await this.findSchemaItem(koqProps.persistenceUnit);\n\n if (undefined !== koqProps.presentationUnits) {\n for (const formatString of koqProps.presentationUnits) {\n for (const name of getItemNamesFromFormatString(formatString)) {\n await this.findSchemaItem(name);\n }\n }\n }\n\n await koq.fromJSON(koqProps);\n }\n\n /**\n * Load the persistence unit and presentation unit dependencies for a KindOfQuantity object and load the KoQ from its serialized format.\n * @param koq The KindOfQuantity object that we are loading dependencies for and \"deserializing into\".\n * @param rawKoQ The serialized kind of quantity data\n */\n private loadKindOfQuantitySync(koq: KindOfQuantity, rawKoQ: Readonly<unknown>) {\n const koqProps = this._parser.parseKindOfQuantity(rawKoQ);\n this.findSchemaItemSync(koqProps.persistenceUnit);\n\n if (undefined !== koqProps.presentationUnits) {\n for (const formatString of koqProps.presentationUnits) {\n for (const name of getItemNamesFromFormatString(formatString)) {\n this.findSchemaItemSync(name);\n }\n }\n }\n koq.fromJSONSync(koqProps);\n }\n\n /**\n * Load the phenomenon dependency for a Constant object and load the Constant from its serialized format.\n * @param constant The Constant object that we are loading the phenomenon dependency for\n * @param rawConstant The serialized constant data\n */\n private async loadConstant(constant: Constant, rawConstant: Readonly<unknown>): Promise<void> {\n const constantProps = this._parser.parseConstant(rawConstant);\n\n await this.findSchemaItem(constantProps.phenomenon, true);\n await constant.fromJSON(constantProps);\n }\n\n /**\n * Load the phenomenon dependency for a Constant object and load the Constant from its serialized format.\n * @param constant The Constant object that we are loading dependencies for and \"deserializing into\".\n * @param rawConstant The serialized constant data\n */\n private loadConstantSync(constant: Constant, rawConstant: Readonly<unknown>) {\n const constantProps = this._parser.parseConstant(rawConstant);\n\n this.findSchemaItemSync(constantProps.phenomenon, true);\n constant.fromJSONSync(constantProps);\n }\n\n /**\n * Load the unit system and invertsUnit dependencies for an Inverted Unit object and load the Inverted Unit from its serialized format.\n * @param invertedUnit The InvertedUnit object that we are loading dependencies for and \"deserializing into\".\n * @param rawInvertedUnit The serialized inverted unit data.\n */\n private async loadInvertedUnit(invertedUnit: InvertedUnit, rawInvertedUnit: Readonly<unknown>): Promise<void> {\n const invertedUnitProps = this._parser.parseInvertedUnit(rawInvertedUnit);\n\n await this.findSchemaItem(invertedUnitProps.invertsUnit, true);\n await this.findSchemaItem(invertedUnitProps.unitSystem, true);\n\n await invertedUnit.fromJSON(invertedUnitProps);\n }\n\n /**\n * Load the unit system and invertsUnit dependencies for an Inverted Unit object and load the Inverted Unit from its serialized format.\n * @param invertedUnit The InvertedUnit object that we are loading dependencies for and \"deserializing into\".\n * @param rawInvertedUnit The serialized inverted unit data.\n */\n private loadInvertedUnitSync(invertedUnit: InvertedUnit, rawInvertedUnit: Readonly<unknown>) {\n const invertedUnitProps = this._parser.parseInvertedUnit(rawInvertedUnit);\n\n this.findSchemaItemSync(invertedUnitProps.invertsUnit, true);\n this.findSchemaItemSync(invertedUnitProps.unitSystem, true);\n\n invertedUnit.fromJSONSync(invertedUnitProps);\n }\n\n /**\n * Load the unit dependencies for a Format object and load the Format from its serialized format.\n * @param format The Format object that we are loading dependencies for and \"deserializing into\".\n * @param rawFormat The serialized format data.\n */\n private async loadFormat(format: Format, rawFormat: Readonly<unknown>): Promise<void> {\n const formatProps = this._parser.parseFormat(rawFormat);\n\n if (undefined !== formatProps.composite) {\n const formatUnits = formatProps.composite.units;\n for (const unit of formatUnits) {\n await this.findSchemaItem(unit.name, true);\n }\n }\n await format.fromJSON(formatProps);\n }\n\n /**\n * Load the unit dependencies for a Format object and load the Format from its serialized format.\n * @param format The Format object that we are loading dependencies for and \"deserializing into\".\n * @param rawFormat The serialized format data.\n */\n private loadFormatSync(format: Format, rawFormat: Readonly<unknown>) {\n const formatProps = this._parser.parseFormat(rawFormat);\n\n if (undefined !== formatProps.composite) {\n const formatUnits = formatProps.composite.units;\n for (const unit of formatUnits) {\n this.findSchemaItemSync(unit.name, true);\n }\n }\n\n format.fromJSONSync(formatProps);\n }\n\n /**\n * Load the base class and property type dependencies for an ECClass object and load the ECClass (and its properties) from its serialized format.\n * @param classObj The ECClass object that we are loading dependencies for and \"deserializing into\".\n * @param classProps The parsed class props object.\n * @param rawClass The serialized class data.\n */\n private async loadClass(classObj: AnyClass, classProps: ClassProps, rawClass: Readonly<unknown>): Promise<void> {\n const baseClassLoaded = async (baseClass: SchemaItem) => {\n if (this._visitorHelper && this.isSchemaItemLoaded(baseClass))\n await this._visitorHelper.visitSchemaPart(baseClass);\n };\n\n // Load base class first\n if (undefined !== classProps.baseClass) {\n await this.findSchemaItem(classProps.baseClass, true, baseClassLoaded);\n }\n\n // Now deserialize the class itself, *before* any properties\n // (We need to do this to break Entity -navProp-> Relationship -constraint-> Entity cycle.)\n await (classObj as ECClass).fromJSON(classProps);\n\n for (const [propName, propType, rawProp] of this._parser.getProperties(rawClass, classObj.fullName)) {\n await this.loadPropertyTypes(classObj, propName, propType, rawProp);\n }\n\n await this.loadCustomAttributes(classObj, this._parser.getClassCustomAttributeProviders(rawClass));\n }\n\n /**\n * Load the base class and property type dependencies for an ECClass object and load the ECClass (and its properties) from its serialized format.\n * @param classObj The ECClass object that we are loading dependencies for and \"deserializing into\".\n * @param classProps The parsed class props object.\n * @param rawClass The serialized class data.\n */\n private loadClassSync(classObj: AnyClass, classProps: ClassProps, rawClass: Readonly<unknown>): void {\n const baseClassLoaded = async (baseClass: SchemaItem) => {\n if (this._visitorHelper && this.isSchemaItemLoaded(baseClass))\n this._visitorHelper.visitSchemaPartSync(baseClass);\n };\n\n // Load base class first\n if (undefined !== classProps.baseClass) {\n this.findSchemaItemSync(classProps.baseClass, true, baseClassLoaded);\n }\n\n // Now deserialize the class itself, *before* any properties\n // (We need to do this to break Entity -navProp-> Relationship -constraint-> Entity cycle.)\n (classObj as ECClass).fromJSONSync(classProps);\n\n for (const [propName, propType, rawProp] of this._parser.getProperties(rawClass, classObj.fullName)) {\n this.loadPropertyTypesSync(classObj, propName, propType, rawProp);\n }\n\n this.loadCustomAttributesSync(classObj, this._parser.getClassCustomAttributeProviders(rawClass));\n }\n\n /**\n * Load the mixin, base class, and property type dependencies for an EntityClass object and load the EntityClass (and properties) from its serialized format.\n * @param entity The EntityClass that we are loading dependencies for and \"deserializing into\".\n * @param rawEntity The serialized entity class data.\n */\n private async loadEntityClass(entity: EntityClass, rawEntity: Readonly<unknown>): Promise<void> {\n const entityClassProps = this._parser.parseEntityClass(rawEntity);\n\n // Load Mixin classes first\n if (undefined !== entityClassProps.mixins) {\n for (const mixinName of entityClassProps.mixins)\n await this.findSchemaItem(mixinName);\n }\n\n await this.loadClass(entity, entityClassProps, rawEntity);\n }\n\n /**\n * Load the mixin, base class, and property type dependencies for an EntityClass object and load the EntityClass (and properties) from its serialized format.\n * @param entity The EntityClass that we are loading dependencies for and \"deserializing into\".\n * @param rawEntity The serialized entity class data.\n */\n private loadEntityClassSync(entity: EntityClass, rawEntity: Readonly<unknown>): void {\n const entityClassProps = this._parser.parseEntityClass(rawEntity);\n\n // Load Mixin classes first\n if (undefined !== entityClassProps.mixins) {\n for (const mixinName of entityClassProps.mixins)\n this.findSchemaItemSync(mixinName);\n }\n\n this.loadClassSync(entity, entityClassProps, rawEntity);\n }\n\n /**\n * Load the appliesTo class, base class, and property type dependencies for a Mixin object and load the Mixin (and properties) from its serialized format.\n * @param mixin The Mixin that we are loading dependencies for and \"deserializing into\".\n * @param rawMixin The serialized mixin data.\n */\n private async loadMixin(mixin: Mixin, rawMixin: Readonly<unknown>): Promise<void> {\n const mixinProps = this._parser.parseMixin(rawMixin);\n\n const appliesToLoaded = async (appliesToClass: SchemaItem) => {\n if (this._visitorHelper && this.isSchemaItemLoaded(appliesToClass))\n await this._visitorHelper.visitSchemaPart(appliesToClass);\n };\n\n await this.findSchemaItem(mixinProps.appliesTo, true, appliesToLoaded);\n\n await this.loadClass(mixin, mixinProps, rawMixin);\n }\n\n /**\n * Load the appliesTo class, base class, and property type dependencies for a Mixin object and load the Mixin (and properties) from its serialized format.\n * @param mixin The Mixin that we are loading dependencies for and \"deserializing into\".\n * @param rawMixin The serialized mixin data.\n */\n private loadMixinSync(mixin: Mixin, rawMixin: Readonly<unknown>): void {\n const mixinProps = this._parser.parseMixin(rawMixin);\n\n const appliesToLoaded = async (appliesToClass: SchemaItem) => {\n if (this._visitorHelper && this.isSchemaItemLoaded(appliesToClass))\n await this._visitorHelper.visitSchemaPart(appliesToClass);\n };\n\n this.findSchemaItemSync(mixinProps.appliesTo, true, appliesToLoaded);\n\n this.loadClassSync(mixin, mixinProps, rawMixin);\n }\n\n /**\n * Load the relationship constraint, base class, and property type dependencies for a RelationshipClass object and load the RelationshipClass (and properties) from its serialized format.\n * @param rel The RelationshipClass that we are loading dependencies for and \"deserializing into\".\n * @param rawRel The serialized relationship class data.\n */\n private async loadRelationshipClass(rel: RelationshipClass, rawRel: Readonly<unknown>): Promise<void> {\n const relationshipClassProps = this._parser.parseRelationshipClass(rawRel);\n await this.loadClass(rel, relationshipClassProps, rawRel);\n await this.loadRelationshipConstraint(rel.source, relationshipClassProps.source);\n await this.loadRelationshipConstraint(rel.target, relationshipClassProps.target);\n\n const [sourceCustomAttributes, targetCustomAttributes] = this._parser.getRelationshipConstraintCustomAttributeProviders(rawRel);\n await this.loadCustomAttributes(rel.source, sourceCustomAttributes);\n await this.loadCustomAttributes(rel.target, targetCustomAttributes);\n }\n\n /**\n * Load the relationship constraint, base class, and property type dependencies for a RelationshipClass object and load the RelationshipClass (and properties) from its serialized format.\n * @param rel The RelationshipClass that we are loading dependencies for and \"deserializing into\".\n * @param rawRel The serialized relationship class data.\n */\n private loadRelationshipClassSync(rel: RelationshipClass, rawRel: Readonly<unknown>): void {\n const relationshipClassProps = this._parser.parseRelationshipClass(rawRel);\n this.loadClassSync(rel, relationshipClassProps, rawRel);\n this.loadRelationshipConstraintSync(rel.source, relationshipClassProps.source);\n this.loadRelationshipConstraintSync(rel.target, relationshipClassProps.target);\n\n const [sourceCustomAttributes, targetCustomAttributes] = this._parser.getRelationshipConstraintCustomAttributeProviders(rawRel);\n this.loadCustomAttributesSync(rel.source, sourceCustomAttributes);\n this.loadCustomAttributesSync(rel.target, targetCustomAttributes);\n }\n\n /**\n * Load the abstract constraint and constraint class dependencies for a RelationshipConstraint object and load the RelationshipConstraint from its parsed props.\n * @param relConstraint The RelationshipConstraint that we are loading dependencies for and \"deserializing into\".\n * @param props The parsed relationship constraint props.\n */\n private async loadRelationshipConstraint(relConstraint: RelationshipConstraint, props: RelationshipConstraintProps): Promise<void> {\n if (undefined !== props.abstractConstraint) {\n await this.findSchemaItem(props.abstractConstraint);\n }\n if (undefined !== props.constraintClasses) { // TODO: this should be required\n for (const constraintClass of props.constraintClasses) {\n await this.findSchemaItem(constraintClass);\n }\n }\n await relConstraint.fromJSON(props);\n }\n\n /**\n * Load the abstract constraint and constraint class dependencies for a RelationshipConstraint object and load the RelationshipConstraint from its parsed props.\n * @param relConstraint The RelationshipConstraint that we are loading dependencies for and \"deserializing into\".\n * @param props The parsed relationship constraint props.\n */\n private loadRelationshipConstraintSync(relConstraint: RelationshipConstraint, props: RelationshipConstraintProps): void {\n if (undefined !== props.abstractConstraint) {\n this.findSchemaItemSync(props.abstractConstraint);\n }\n if (undefined !== props.constraintClasses) {\n for (const constraintClass of props.constraintClasses) {\n this.findSchemaItemSync(constraintClass);\n }\n }\n\n relConstraint.fromJSONSync(props);\n }\n\n /**\n * Load the type dependencies for a serialized property, then creates and deserialized the Property object in the given ECClass.\n * @param classObj The ECClass that the Property should be created in.\n * @param propName The name of the Property.\n * @param propType The (serialized string) kind of property to create.\n * @param rawProperty The serialized property data.\n */\n private async loadPropertyTypes(classObj: AnyClass, propName: string, propType: string, rawProperty: Readonly<unknown>): Promise<void> {\n\n const loadTypeName = async (typeName: string): Promise<ECSchemaStatus> => {\n if (undefined === parsePrimitiveType(typeName)) {\n if (SchemaReadHelper.isECSpecVersionNewer(this._parser.getECSpecVersion))\n return ECSchemaStatus.NewerECSpecVersion;\n await this.findSchemaItem(typeName);\n }\n return ECSchemaStatus.Success;\n };\n\n const lowerCasePropType = propType.toLowerCase();\n\n switch (lowerCasePropType) {\n case \"primitiveproperty\":\n const primPropertyProps = this._parser.parsePrimitiveProperty(rawProperty);\n if (await loadTypeName(primPropertyProps.typeName) === ECSchemaStatus.NewerECSpecVersion)\n (primPropertyProps as any).typeName = \"string\";\n const primProp = await (classObj as MutableClass).createPrimitiveProperty(propName, primPropertyProps.typeName);\n return this.loadProperty(primProp, primPropertyProps, rawProperty);\n\n case \"structproperty\":\n const structPropertyProps = this._parser.parseStructProperty(rawProperty);\n await loadTypeName(structPropertyProps.typeName);\n const structProp = await (classObj as MutableClass).createStructProperty(propName, structPropertyProps.typeName);\n return this.loadProperty(structProp, structPropertyProps, rawProperty);\n\n case \"primitivearrayproperty\":\n const primArrPropertyProps = this._parser.parsePrimitiveArrayProperty(rawProperty);\n if (await loadTypeName(primArrPropertyProps.typeName) === ECSchemaStatus.NewerECSpecVersion)\n (primArrPropertyProps as any).typeName = \"string\";\n const primArrProp = await (classObj as MutableClass).createPrimitiveArrayProperty(propName, primArrPropertyProps.typeName);\n return this.loadProperty(primArrProp, primArrPropertyProps, rawProperty);\n\n case \"structarrayproperty\":\n const structArrPropertyProps = this._parser.parseStructArrayProperty(rawProperty);\n await loadTypeName(structArrPropertyProps.typeName);\n const structArrProp = await (classObj as MutableClass).createStructArrayProperty(propName, structArrPropertyProps.typeName);\n return this.loadProperty(structArrProp, structArrPropertyProps, rawProperty);\n\n case \"navigationproperty\":\n if (classObj.schemaItemType !== SchemaItemType.EntityClass && classObj.schemaItemType !== SchemaItemType.RelationshipClass && classObj.schemaItemType !== SchemaItemType.Mixin)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Navigation Property ${classObj.name}.${propName} is invalid, because only EntityClasses, Mixins, and RelationshipClasses can have NavigationProperties.`);\n\n const navPropertyProps = this._parser.parseNavigationProperty(rawProperty);\n await this.findSchemaItem(navPropertyProps.relationshipName);\n const navProp = await (classObj as MutableEntityClass).createNavigationProperty(propName, navPropertyProps.relationshipName, navPropertyProps.direction);\n return this.loadProperty(navProp, navPropertyProps, rawProperty);\n }\n }\n\n /**\n * Load the type dependencies for a serialized property, then creates and deserialized the Property object in the given ECClass.\n * @param classObj The ECClass that the Property should be created in.\n * @param propName The name of the Property.\n * @param propType The (serialized string) kind of property to create.\n * @param rawProperty The serialized property data.\n */\n private loadPropertyTypesSync(classObj: AnyClass, propName: string, propType: string, rawProperty: Readonly<unknown>): void {\n const loadTypeName = (typeName: string): ECSchemaStatus => {\n if (undefined === parsePrimitiveType(typeName)) {\n if (SchemaReadHelper.isECSpecVersionNewer(this._parser.getECSpecVersion))\n return ECSchemaStatus.NewerECSpecVersion;\n this.findSchemaItemSync(typeName);\n }\n return ECSchemaStatus.Success;\n };\n\n const lowerCasePropType = propType.toLowerCase();\n\n switch (lowerCasePropType) {\n case \"primitiveproperty\":\n const primPropertyProps = this._parser.parsePrimitiveProperty(rawProperty);\n if (loadTypeName(primPropertyProps.typeName) === ECSchemaStatus.NewerECSpecVersion)\n (primPropertyProps as any).typeName = \"string\";\n const primProp = (classObj as MutableClass).createPrimitivePropertySync(propName, primPropertyProps.typeName);\n return this.loadPropertySync(primProp, primPropertyProps, rawProperty);\n\n case \"structproperty\":\n const structPropertyProps = this._parser.parseStructProperty(rawProperty);\n loadTypeName(structPropertyProps.typeName);\n const structProp = (classObj as MutableClass).createStructPropertySync(propName, structPropertyProps.typeName);\n return this.loadPropertySync(structProp, structPropertyProps, rawProperty);\n\n case \"primitivearrayproperty\":\n const primArrPropertyProps = this._parser.parsePrimitiveArrayProperty(rawProperty);\n if (loadTypeName(primArrPropertyProps.typeName) === ECSchemaStatus.NewerECSpecVersion)\n (primArrPropertyProps as any).typeName = \"string\";\n const primArrProp = (classObj as MutableClass).createPrimitiveArrayPropertySync(propName, primArrPropertyProps.typeName);\n return this.loadPropertySync(primArrProp, primArrPropertyProps, rawProperty);\n\n case \"structarrayproperty\":\n const structArrPropertyProps = this._parser.parseStructArrayProperty(rawProperty);\n loadTypeName(structArrPropertyProps.typeName);\n const structArrProp = (classObj as MutableClass).createStructArrayPropertySync(propName, structArrPropertyProps.typeName);\n return this.loadPropertySync(structArrProp, structArrPropertyProps, rawProperty);\n\n case \"navigationproperty\":\n if (classObj.schemaItemType !== SchemaItemType.EntityClass && classObj.schemaItemType !== SchemaItemType.RelationshipClass && classObj.schemaItemType !== SchemaItemType.Mixin)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Navigation Property ${classObj.name}.${propName} is invalid, because only EntityClasses, Mixins, and RelationshipClasses can have NavigationProperties.`);\n\n const navPropertyProps = this._parser.parseNavigationProperty(rawProperty);\n this.findSchemaItemSync(navPropertyProps.relationshipName);\n const navProp = (classObj as MutableEntityClass).createNavigationPropertySync(propName, navPropertyProps.relationshipName, navPropertyProps.direction);\n return this.loadPropertySync(navProp, navPropertyProps, rawProperty);\n }\n }\n\n /**\n * Load the propertyCategory, kindOfQuantity, and customAttribute dependencies for a Property object and load the Property from its parsed props.\n * @param propertyObj The Property that we are loading dependencies for and \"deserializing into\".\n * @param props The parsed property props.\n * @param rawProperty The serialized property data.\n */\n private async loadProperty<U extends Property>(propertyObj: U, props: PropertyProps, rawProperty: Readonly<unknown>): Promise<void> {\n if (undefined !== props.category) {\n await this.findSchemaItem(props.category);\n }\n\n if (undefined !== props.kindOfQuantity) {\n await this.findSchemaItem(props.kindOfQuantity);\n }\n\n await propertyObj.fromJSON(props);\n await this.loadCustomAttributes(propertyObj, this._parser.getPropertyCustomAttributeProviders(rawProperty));\n }\n\n /**\n * Load the propertyCategory, kindOfQuantity, and customAttribute dependencies for a Property object and load the Property from its parsed props.\n * @param propertyObj The Property that we are loading dependencies for and \"deserializing into\".\n * @param props The parsed property props.\n * @param rawProperty The serialized property data.\n */\n private loadPropertySync<U extends Property>(propertyObj: U, props: PropertyProps, rawProperty: Readonly<unknown>): void {\n if (undefined !== props.category) {\n this.findSchemaItemSync(props.category);\n }\n\n if (undefined !== props.kindOfQuantity) {\n this.findSchemaItemSync(props.kindOfQuantity);\n }\n\n propertyObj.fromJSONSync(props);\n this.loadCustomAttributesSync(propertyObj, this._parser.getPropertyCustomAttributeProviders(rawProperty));\n }\n\n /**\n * Load the customAttribute class dependencies for a set of CustomAttribute objects and add them to a given custom attribute container.\n * @param container The CustomAttributeContainer that each CustomAttribute will be added to.\n * @param customAttributes An iterable set of parsed CustomAttribute objects.\n */\n private loadCustomAttributesSync(container: AnyCAContainer, caProviders: Iterable<CAProviderTuple>): void {\n for (const providerTuple of caProviders) {\n // First tuple entry is the CA class name.\n const caClass = this.findSchemaItemSync(providerTuple[0]) as CustomAttributeClass;\n\n // Second tuple entry ia a function that provides the CA instance.\n const provider = providerTuple[1];\n const customAttribute = provider(caClass);\n (container as AnyMutableCAContainer).addCustomAttribute(customAttribute);\n }\n }\n\n public static isECSpecVersionNewer(ecSpecVersion?: ECSpecVersion): boolean {\n if (ecSpecVersion === undefined || ecSpecVersion.readVersion === undefined || ecSpecVersion.writeVersion === undefined)\n return false;\n\n return ((ecSpecVersion.readVersion > Schema.currentECSpecMajorVersion) || (ecSpecVersion.readVersion === Schema.currentECSpecMajorVersion && ecSpecVersion.writeVersion > Schema.currentECSpecMinorVersion));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Helper.js","sourceRoot":"","sources":["../../../src/Deserialization/Helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonParser.js","sourceRoot":"","sources":["../../../src/Deserialization/JsonParser.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 { ECSchemaError, ECSchemaStatus } from \"../Exception\";\nimport { CustomAttribute } from \"../Metadata/CustomAttribute\";\nimport { CustomAttributeClass } from \"../Metadata/CustomAttributeClass\";\nimport { ECName } from \"../ECName\";\nimport { AbstractParser, CAProviderTuple } from \"./AbstractParser\";\nimport {\n ConstantProps, CustomAttributeClassProps, EntityClassProps, EnumerationProps, InvertedUnitProps, KindOfQuantityProps, MixinProps,\n NavigationPropertyProps, PhenomenonProps, PrimitiveArrayPropertyProps, PrimitiveOrEnumPropertyBaseProps, PrimitivePropertyProps,\n PropertyCategoryProps, PropertyProps, RelationshipClassProps, SchemaItemFormatProps, SchemaItemUnitProps, SchemaProps, SchemaReferenceProps, StructArrayPropertyProps, StructClassProps,\n StructPropertyProps, UnitSystemProps,\n} from \"./JsonProps\";\nimport { ECSpecVersion, SchemaReadHelper } from \"./Helper\";\n\ninterface UnknownObject { readonly [name: string]: unknown }\nfunction isObject(x: unknown): x is UnknownObject {\n return typeof (x) === \"object\";\n}\n\nconst SCHEMAURL_JSON = \"https://dev\\\\.bentley\\\\.com/json_schemas/ec\";\n\n/** @internal */\nexport class JsonParser extends AbstractParser<UnknownObject> {\n private _rawSchema: UnknownObject;\n private _schemaName?: string;\n private _currentItemFullName?: string;\n\n constructor(rawSchema: Readonly<unknown>) {\n super();\n\n if (!isObject(rawSchema))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `Invalid JSON object.`);\n\n this._rawSchema = rawSchema;\n this._schemaName = rawSchema.name as string | undefined;\n this._ecSpecVersion = JsonParser.parseJSUri(rawSchema.$schema as string);\n }\n\n public get getECSpecVersion(): ECSpecVersion | undefined { return this._ecSpecVersion; }\n\n public static parseJSUri(uri: string): ECSpecVersion | undefined {\n if (uri === undefined)\n return undefined;\n\n const match = uri.match(`^${SCHEMAURL_JSON}/([0-9]+)/ecschema$`);\n if (!match)\n return;\n\n const readVersion = parseInt(match[1][0], 10);\n const writeVersion = parseInt(match[1][1], 10);\n return { readVersion, writeVersion };\n }\n\n /**\n * Type checks Schema and returns SchemaProps interface\n * @param this._rawSchema\n * @returns SchemaProps\n */\n public parseSchema(): SchemaProps {\n if (undefined === this._rawSchema.name)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `An ECSchema is missing the required 'name' attribute.`);\n if (typeof (this._rawSchema.name) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `An ECSchema has an invalid 'name' attribute. It should be of type 'string'.`);\n\n if (undefined === this._rawSchema.$schema)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECSchema ${this._schemaName} is missing the required '$schema' attribute.`);\n if (typeof (this._rawSchema.$schema) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECSchema ${this._schemaName} has an invalid '$schema' attribute. It should be of type 'string'.`);\n\n if (undefined === this._rawSchema.version)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECSchema ${this._schemaName} is missing the required 'version' attribute.`);\n if (typeof (this._rawSchema.version) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECSchema ${this._schemaName} has an invalid 'version' attribute. It should be of type 'string'.`);\n\n if (undefined !== this._rawSchema.alias) {\n if (typeof (this._rawSchema.alias) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECSchema ${this._schemaName} has an invalid 'alias' attribute. It should be of type 'string'.`);\n }\n\n if (undefined !== this._rawSchema.label) {\n if (typeof (this._rawSchema.label) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECSchema ${this._schemaName} has an invalid 'label' attribute. It should be of type 'string'.`);\n }\n\n if (undefined !== this._rawSchema.description) {\n if (typeof (this._rawSchema.description) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECSchema ${this._schemaName} has an invalid 'description' attribute. It should be of type 'string'.`);\n }\n\n const ecVersions = JsonParser.parseJSUri(this._rawSchema.$schema);\n\n return {\n ...this._rawSchema,\n ecSpecMajorVersion: ecVersions?.readVersion,\n ecSpecMinorVersion: ecVersions?.writeVersion,\n } as SchemaProps;\n }\n\n public *getReferences(): Iterable<SchemaReferenceProps> {\n if (undefined !== this._rawSchema.references) {\n if (!Array.isArray(this._rawSchema.references))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The schema ${this._rawSchema.name} has an invalid 'references' attribute. It should be of type 'object[]'.`);\n\n for (const ref of this._rawSchema.references) {\n yield this.checkSchemaReference(ref);\n }\n }\n }\n\n private checkSchemaReference(jsonObj: Readonly<unknown>): SchemaReferenceProps {\n if (!isObject(jsonObj))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The schema ${this._schemaName} has an invalid 'references' attribute. It should be of type 'object[]'.`);\n if (undefined === jsonObj.name)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The schema ${this._schemaName} has an invalid 'references' attribute. One of the references is missing the required 'name' attribute.`);\n if (typeof (jsonObj.name) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The schema ${this._schemaName} has an invalid 'references' attribute. One of the references has an invalid 'name' attribute. It should be of type 'string'.`);\n if (undefined === jsonObj.version)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The schema ${this._schemaName} has an invalid 'references' attribute. One of the references is missing the required 'version' attribute.`);\n if (typeof (jsonObj.version) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The schema ${this._schemaName} has an invalid 'references' attribute. One of the references has an invalid 'version' attribute. It should be of type 'string'.`);\n return (jsonObj as unknown) as SchemaReferenceProps;\n }\n\n public *getItems(): Iterable<[string, string, UnknownObject]> {\n const items = this._rawSchema.items;\n if (undefined !== items) {\n if (!isObject(items) || Array.isArray(items))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The schema ${this._schemaName} has an invalid 'items' attribute. It should be of type 'object'.`);\n\n // eslint-disable-next-line guard-for-in\n for (const itemName in items) {\n const item = items[itemName];\n if (!isObject(item))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `A SchemaItem in ${this._schemaName} is an invalid JSON object.`);\n\n if (!ECName.validate(itemName))\n throw new ECSchemaError(ECSchemaStatus.InvalidECName, `A SchemaItem in ${this._schemaName} has an invalid 'name' attribute. '${itemName}' is not a valid ECName.`);\n\n if (undefined === item.schemaItemType)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The SchemaItem ${this._schemaName}.${itemName} is missing the required 'schemaItemType' attribute.`);\n if (typeof (item.schemaItemType) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The SchemaItem ${this._schemaName}.${itemName} has an invalid 'schemaItemType' attribute. It should be of type 'string'.`);\n\n this._currentItemFullName = `${this._schemaName}.${itemName}`;\n yield [itemName, item.schemaItemType, item];\n }\n }\n }\n\n public findItem(itemName: string): [string, string, UnknownObject] | undefined {\n const items = this._rawSchema.items;\n if (undefined !== items) {\n if (!isObject(items) || Array.isArray(items))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The schema ${this._schemaName} has an invalid 'items' attribute. It should be of type 'object'.`);\n\n const item = items[itemName];\n if (undefined !== item) {\n if (!isObject(item))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `A SchemaItem in ${this._schemaName} is an invalid JSON object.`);\n\n if (!ECName.validate(itemName))\n throw new ECSchemaError(ECSchemaStatus.InvalidECName, `A SchemaItem in ${this._schemaName} has an invalid 'name' attribute. '${itemName}' is not a valid ECName.`);\n\n if (undefined === item.schemaItemType)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The SchemaItem ${this._schemaName}.${itemName} is missing the required 'schemaItemType' attribute.`);\n if (typeof (item.schemaItemType) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The SchemaItem ${this._schemaName}.${itemName} has an invalid 'schemaItemType' attribute. It should be of type 'string'.`);\n\n this._currentItemFullName = `${this._schemaName}.${itemName}`;\n return [itemName, item.schemaItemType, item];\n }\n }\n\n return undefined;\n }\n\n /**\n * Type checks all Schema Item attributes.\n * @param jsonObj The JSON object to check if it represents a Schema Item.\n */\n private checkSchemaItemProps(jsonObj: UnknownObject): void {\n if (undefined !== jsonObj.description) {\n if (typeof (jsonObj.description) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The SchemaItem ${this._currentItemFullName} has an invalid 'description' attribute. It should be of type 'string'.`);\n }\n\n if (undefined !== jsonObj.label) {\n if (typeof (jsonObj.label) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The SchemaItem ${this._currentItemFullName} has an invalid 'label' attribute. It should be of type 'string'.`);\n }\n }\n\n public *getProperties(jsonObj: UnknownObject, itemName: string): Iterable<[string, string, UnknownObject]> {\n const properties = jsonObj.properties;\n if (undefined !== properties) {\n if (!Array.isArray(properties))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECClass ${itemName} has an invalid 'properties' attribute. It should be of type 'object[]'.`);\n\n for (const property of properties as unknown[]) {\n if (!isObject(property))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `An ECProperty in ${itemName} is an invalid JSON object.`);\n\n if (undefined === property.name)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `An ECProperty in ${itemName} is missing the required 'name' attribute.`);\n if (typeof (property.name) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `An ECProperty in ${itemName} has an invalid 'name' attribute. It should be of type 'string'.`);\n\n if (undefined === property.type)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${itemName}.${property.name} does not have the required 'type' attribute.`);\n if (typeof (property.type) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${itemName}.${property.name} has an invalid 'type' attribute. It should be of type 'string'.`);\n if (!this.isValidPropertyType(property.type)) {\n if (SchemaReadHelper.isECSpecVersionNewer(this._ecSpecVersion))\n return;\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${itemName}.${property.name} has an invalid 'type' attribute. '${property.type}' is not a valid type.`);\n }\n\n yield [property.name, property.type, property];\n }\n }\n }\n\n /**\n * Type checks Class and returns ClassProps interface\n * @param jsonObj The JSON object to check if it represents a Class.\n */\n private checkClassProps(jsonObj: UnknownObject): void {\n this.checkSchemaItemProps(jsonObj);\n\n if (undefined !== jsonObj.modifier) {\n if (typeof (jsonObj.modifier) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECClass ${this._currentItemFullName} has an invalid 'modifier' attribute. It should be of type 'string'.`);\n }\n\n if (undefined !== jsonObj.baseClass) {\n if (typeof (jsonObj.baseClass) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECClass ${this._currentItemFullName} has an invalid 'baseClass' attribute. It should be of type 'string'.`);\n }\n if (undefined !== jsonObj.customAttributes) {\n if (!Array.isArray(jsonObj.customAttributes)) {\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECClass ${this._currentItemFullName} has an invalid 'customAttributes' attribute. It should be of type 'array'.`);\n }\n }\n }\n\n /**\n * Type checks entity class and returns EntityClassProps interface\n * @param jsonObj\n * @returns EntityClassProps\n */\n public parseEntityClass(jsonObj: UnknownObject): EntityClassProps {\n this.checkClassProps(jsonObj);\n\n if (undefined !== jsonObj.mixins) {\n if (!Array.isArray(jsonObj.mixins))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECEntityClass ${this._currentItemFullName} has an invalid 'mixins' attribute. It should be of type 'string[]'.`);\n for (const mixinName of jsonObj.mixins) {\n if (typeof (mixinName) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECEntityClass ${this._currentItemFullName} has an invalid 'mixins' attribute. It should be of type 'string[]'.`);\n }\n }\n\n return {\n ...jsonObj,\n originalECSpecMajorVersion : this._ecSpecVersion?.readVersion,\n originalECSpecMinorVersion: this._ecSpecVersion?.writeVersion,\n } as unknown as EntityClassProps;\n }\n\n /**\n * Type checks mixin and returns MixinProps interface\n * @param jsonObj\n * @returns MixinProps\n */\n public parseMixin(jsonObj: UnknownObject): MixinProps {\n this.checkClassProps(jsonObj);\n if (undefined === jsonObj.appliesTo)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Mixin ${this._currentItemFullName} is missing the required 'appliesTo' attribute.`);\n if (typeof (jsonObj.appliesTo) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Mixin ${this._currentItemFullName} has an invalid 'appliesTo' attribute. It should be of type 'string'.`);\n return {\n ...jsonObj,\n originalECSpecMajorVersion: this._ecSpecVersion?.readVersion,\n originalECSpecMinorVersion: this._ecSpecVersion?.writeVersion,\n } as unknown as MixinProps;\n }\n\n /**\n * Type checks custom attribute class and returns CustomAttributeClassProps interface\n * @param jsonObj\n * @returns CustomAttributeClassProps\n */\n public parseCustomAttributeClass(jsonObj: UnknownObject): CustomAttributeClassProps {\n this.checkClassProps(jsonObj);\n if (undefined === jsonObj.appliesTo)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The CustomAttributeClass ${this._currentItemFullName} is missing the required 'appliesTo' attribute.`);\n if (typeof (jsonObj.appliesTo) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The CustomAttributeClass ${this._currentItemFullName} has an invalid 'appliesTo' attribute. It should be of type 'string'.`);\n return {\n ...jsonObj,\n originalECSpecMajorVersion: this._ecSpecVersion?.readVersion,\n originalECSpecMinorVersion: this._ecSpecVersion?.writeVersion,\n } as unknown as CustomAttributeClassProps;\n }\n\n public parseStructClass(jsonObj: UnknownObject): StructClassProps {\n this.checkClassProps(jsonObj);\n return {\n ...jsonObj,\n originalECSpecMajorVersion: this._ecSpecVersion?.readVersion,\n originalECSpecMinorVersion: this._ecSpecVersion?.writeVersion,\n } as unknown as StructClassProps;\n }\n\n public parseUnitSystem(jsonObj: UnknownObject): UnitSystemProps {\n this.checkSchemaItemProps(jsonObj);\n return jsonObj as UnitSystemProps;\n }\n\n /**\n * Type checks Relationship Class and returns RelationshipClassProps interface\n * @param jsonObj\n * @returns RelationshipClassProps\n */\n public parseRelationshipClass(jsonObj: UnknownObject): RelationshipClassProps {\n this.checkClassProps(jsonObj);\n if (undefined === jsonObj.strength)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The RelationshipClass ${this._currentItemFullName} is missing the required 'strength' attribute.`);\n if (typeof (jsonObj.strength) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The RelationshipClass ${this._currentItemFullName} has an invalid 'strength' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.strengthDirection)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The RelationshipClass ${this._currentItemFullName} is missing the required 'strengthDirection' attribute.`);\n if (typeof (jsonObj.strengthDirection) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The RelationshipClass ${this._currentItemFullName} has an invalid 'strengthDirection' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.source)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The RelationshipClass ${this._currentItemFullName} is missing the required source constraint.`);\n if (!isObject(jsonObj.source))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The RelationshipClass ${this._currentItemFullName} has an invalid source constraint. It should be of type 'object'.`);\n this.checkRelationshipConstraintProps(jsonObj.source, true);\n\n if (undefined === jsonObj.target)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The RelationshipClass ${this._currentItemFullName} is missing the required target constraint.`);\n if (!isObject(jsonObj.target))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The RelationshipClass ${this._currentItemFullName} has an invalid target constraint. It should be of type 'object'.`);\n this.checkRelationshipConstraintProps(jsonObj.target, false);\n\n return {\n ...jsonObj,\n originalECSpecMajorVersion: this._ecSpecVersion?.readVersion,\n originalECSpecMinorVersion: this._ecSpecVersion?.writeVersion,\n } as unknown as RelationshipClassProps;\n }\n\n /**\n * Type checks Relationship Constraint and returns RelationshipConstraintProps interface.\n * @param jsonObj\n * @param isSource For sake of error message, is this relationship constraint a source or target\n * @returns RelationshipConstraintProps\n */\n private checkRelationshipConstraintProps(jsonObj: UnknownObject, isSource: boolean): void {\n const constraintName = `${(isSource) ? \"Source\" : \"Target\"} Constraint of ${this._currentItemFullName}`; // most specific name to call RelationshipConstraint\n\n if (undefined === jsonObj.multiplicity)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} is missing the required 'multiplicity' attribute.`);\n if (typeof (jsonObj.multiplicity) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} has an invalid 'multiplicity' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.roleLabel)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} is missing the required 'roleLabel' attribute.`);\n if (typeof (jsonObj.roleLabel) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} has an invalid 'roleLabel' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.polymorphic)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} is missing the required 'polymorphic' attribute.`);\n if (typeof (jsonObj.polymorphic) !== \"boolean\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} has an invalid 'polymorphic' attribute. It should be of type 'boolean'.`);\n\n if (undefined !== jsonObj.abstractConstraint && typeof (jsonObj.abstractConstraint) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} has an invalid 'abstractConstraint' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.constraintClasses)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} is missing the required 'constraintClasses' attribute.`);\n if (!Array.isArray(jsonObj.constraintClasses))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} has an invalid 'constraintClasses' attribute. It should be of type 'string[]'.`);\n\n for (const constraintClassName of jsonObj.constraintClasses) {\n if (typeof (constraintClassName) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} has an invalid 'constraintClasses' attribute. It should be of type 'string[]'.`);\n }\n\n if (undefined !== jsonObj.customAttributes && !Array.isArray(jsonObj.customAttributes))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${constraintName} has an invalid 'customAttributes' attribute. It should be of type 'array'.`);\n }\n\n /**\n * Type checks Enumeration and returns EnumerationProps interface\n * @param jsonObj\n * @returns EnumerationProps\n */\n public parseEnumeration(jsonObj: UnknownObject): EnumerationProps {\n this.checkSchemaItemProps(jsonObj);\n if (undefined === jsonObj.type)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} is missing the required 'type' attribute.`);\n if (typeof (jsonObj.type) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an invalid 'type' attribute. It should be of type 'string'.`);\n\n const isValidEnumerationType = (type: string): boolean => {\n type = type.toLowerCase();\n return (type === \"int\") ||\n (type === \"integer\") ||\n (type === \"string\");\n };\n if (!isValidEnumerationType(jsonObj.type)) {\n if (SchemaReadHelper.isECSpecVersionNewer(this._ecSpecVersion))\n (jsonObj as any).type = \"string\";\n else\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an invalid 'type' attribute. It should be either \"int\" or \"string\".`);\n }\n\n if (undefined !== jsonObj.isStrict) { // TODO: make required\n if (typeof (jsonObj.isStrict) !== \"boolean\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an invalid 'isStrict' attribute. It should be of type 'boolean'.`);\n }\n\n if (undefined === jsonObj.enumerators)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} is missing the required 'enumerators' attribute.`);\n if (!Array.isArray(jsonObj.enumerators))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an invalid 'enumerators' attribute. It should be of type 'object[]'.`);\n\n for (const enumerator of jsonObj.enumerators) {\n if (!isObject(enumerator))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an invalid 'enumerators' attribute. It should be of type 'object[]'.`);\n\n if (undefined === enumerator.value)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an enumerator that is missing the required attribute 'value'.`);\n\n // TODO: Should this really be handled here?\n const expectedType = jsonObj.type;\n const receivedType = (typeof (enumerator.value) === \"number\") ? \"int\" : typeof (enumerator.value);\n if (!expectedType.includes(receivedType)) // is receivedType a substring of expectedType? - easiest way to check \"int\" === \"int\" | \"integer\" && \"string\" === \"string\"\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an incompatible type. It must be \"${expectedType}\", not \"${receivedType}\".`);\n\n if (undefined === enumerator.name)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an enumerator that is missing the required attribute 'name'.`);\n if (typeof (enumerator.name) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an enumerator with an invalid 'name' attribute. It should be of type 'string'.`);\n\n if (undefined !== enumerator.label) {\n if (typeof (enumerator.label) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an enumerator with an invalid 'label' attribute. It should be of type 'string'.`);\n }\n\n if (undefined !== enumerator.description) {\n if (typeof (enumerator.description) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Enumeration ${this._currentItemFullName} has an enumerator with an invalid 'description' attribute. It should be of type 'string'.`);\n }\n }\n\n return (jsonObj as unknown) as EnumerationProps;\n }\n\n /**\n * Type checks KindOfQuantity and returns KindOfQuantityProps interface\n * @param jsonObj\n * @returns KindOfQuantityProps\n */\n public parseKindOfQuantity(jsonObj: UnknownObject): KindOfQuantityProps {\n this.checkSchemaItemProps(jsonObj);\n if (undefined === jsonObj.relativeError)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The KindOfQuantity ${this._currentItemFullName} is missing the required 'relativeError' attribute.`);\n if (typeof (jsonObj.relativeError) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The KindOfQuantity ${this._currentItemFullName} has an invalid 'relativeError' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.presentationUnits) {\n if (!Array.isArray(jsonObj.presentationUnits) && typeof (jsonObj.presentationUnits) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The KindOfQuantity ${this._currentItemFullName} has an invalid 'presentationUnits' attribute. It should be of type 'string' or 'string[]'.`);\n }\n\n if (undefined === jsonObj.persistenceUnit)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The KindOfQuantity ${this._currentItemFullName} is missing the required 'persistenceUnit' attribute.`);\n if (typeof (jsonObj.persistenceUnit) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The KindOfQuantity ${this._currentItemFullName} has an invalid 'persistenceUnit' attribute. It should be of type 'string'.`);\n\n return (jsonObj as unknown) as KindOfQuantityProps;\n }\n\n /**\n * Type checks Property Category and returns PropertyCategoryProps interface\n * @param jsonObj\n * @returns PropertyCategoryProps\n */\n public parsePropertyCategory(jsonObj: UnknownObject): PropertyCategoryProps {\n this.checkSchemaItemProps(jsonObj);\n if (undefined !== jsonObj.priority) { // TODO: make required\n if (typeof (jsonObj.priority) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The PropertyCategory ${this._currentItemFullName} has an invalid 'priority' attribute. It should be of type 'number'.`);\n }\n\n return (jsonObj as unknown) as PropertyCategoryProps;\n }\n\n /**\n * Type checks unit and returns UnitProps interface\n * @param jsonObj\n * @returns UnitProps\n */\n public parseUnit(jsonObj: UnknownObject): SchemaItemUnitProps {\n this.checkSchemaItemProps(jsonObj);\n if (undefined === jsonObj.phenomenon)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} does not have the required 'phenomenon' attribute.`);\n if (typeof (jsonObj.phenomenon) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} has an invalid 'phenomenon' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.unitSystem)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} does not have the required 'unitSystem' attribute.`);\n if (typeof (jsonObj.unitSystem) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} has an invalid 'unitSystem' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.definition)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} does not have the required 'definition' attribute.`);\n if (typeof (jsonObj.definition) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} has an invalid 'definition' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.numerator) {\n if (typeof (jsonObj.numerator) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} has an invalid 'numerator' attribute. It should be of type 'number'.`);\n }\n\n if (undefined !== jsonObj.denominator) {\n if (typeof (jsonObj.denominator) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} has an invalid 'denominator' attribute. It should be of type 'number'.`);\n }\n\n if (undefined !== jsonObj.offset) {\n if (typeof (jsonObj.offset) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Unit ${this._currentItemFullName} has an invalid 'offset' attribute. It should be of type 'number'.`);\n }\n return (jsonObj as unknown) as SchemaItemUnitProps;\n }\n\n /**\n * Type checks inverted unit and returns InvertedUnitProps interface\n * @param jsonObj\n * @returns InvertedUnitProps\n */\n public parseInvertedUnit(jsonObj: UnknownObject): InvertedUnitProps {\n this.checkSchemaItemProps(jsonObj);\n if (undefined === jsonObj.invertsUnit)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The InvertedUnit ${this._currentItemFullName} does not have the required 'invertsUnit' attribute.`);\n if (typeof (jsonObj.invertsUnit) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The InvertedUnit ${this._currentItemFullName} has an invalid 'invertsUnit' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.unitSystem)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The InvertedUnit ${this._currentItemFullName} does not have the required 'unitSystem' attribute.`);\n if (typeof (jsonObj.unitSystem) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The InvertedUnit ${this._currentItemFullName} has an invalid 'unitSystem' attribute. It should be of type 'string'.`);\n\n return (jsonObj as unknown) as InvertedUnitProps;\n }\n\n /**\n * Type checks constant and returns ConstantProps interface\n * @param jsonObj\n * @returns ConstantProps\n */\n public parseConstant(jsonObj: UnknownObject): ConstantProps {\n this.checkSchemaItemProps(jsonObj);\n if (undefined === jsonObj.phenomenon)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Constant ${this._currentItemFullName} does not have the required 'phenomenon' attribute.`);\n if (typeof (jsonObj.phenomenon) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Constant ${this._currentItemFullName} has an invalid 'phenomenon' attribute. It should be of type 'string'.`);\n\n if (undefined === jsonObj.definition)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Constant ${this._currentItemFullName} does not have the required 'definition' attribute.`);\n if (typeof (jsonObj.definition) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Constant ${this._currentItemFullName} has an invalid 'definition' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.numerator) {\n if (typeof (jsonObj.numerator) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Constant ${this._currentItemFullName} has an invalid 'numerator' attribute. It should be of type 'number'.`);\n }\n\n if (undefined !== jsonObj.denominator) {\n if (typeof (jsonObj.denominator) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Constant ${this._currentItemFullName} has an invalid 'denominator' attribute. It should be of type 'number'.`);\n }\n\n return (jsonObj as unknown) as ConstantProps;\n }\n\n /**\n * Type checks phenomenon and returns PhenomenonProps interface\n * @param jsonObj\n * @returns PhenomenonProps\n */\n public parsePhenomenon(jsonObj: UnknownObject): PhenomenonProps {\n this.checkSchemaItemProps(jsonObj);\n if (undefined === jsonObj.definition)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Phenomenon ${this._currentItemFullName} does not have the required 'definition' attribute.`);\n if (typeof (jsonObj.definition) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Phenomenon ${this._currentItemFullName} has an invalid 'definition' attribute. It should be of type 'string'.`);\n return (jsonObj as unknown) as PhenomenonProps;\n }\n\n /**\n * Type checks format and returns SchemaItemFormatProps interface\n * @param jsonObj\n * @returns SchemaItemFormatProps\n */\n public parseFormat(jsonObj: UnknownObject): SchemaItemFormatProps {\n this.checkSchemaItemProps(jsonObj);\n if (undefined === jsonObj.type)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} does not have the required 'type' attribute.`);\n if (typeof (jsonObj.type) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'type' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.precision && typeof (jsonObj.precision) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'precision' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.roundFactor && typeof (jsonObj.roundFactor) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'roundFactor' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.minWidth && typeof (jsonObj.minWidth) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'minWidth' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.showSignOption && typeof (jsonObj.showSignOption) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'showSignOption' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.formatTraits) {\n if (!Array.isArray(jsonObj.formatTraits) && typeof (jsonObj.formatTraits) !== \"string\") // must be either an array of strings or a string\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'formatTraits' attribute. It should be of type 'string' or 'string[]'.`);\n }\n\n if (undefined !== jsonObj.decimalSeparator && typeof (jsonObj.decimalSeparator) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'decimalSeparator' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.thousandSeparator && typeof (jsonObj.thousandSeparator) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'thousandSeparator' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.uomSeparator && typeof (jsonObj.uomSeparator) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'uomSeparator' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.scientificType && typeof (jsonObj.scientificType) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'scientificType' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.stationOffsetSize && typeof (jsonObj.stationOffsetSize) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'stationOffsetSize' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.stationSeparator && typeof (jsonObj.stationSeparator) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'stationSeparator' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.composite) { // optional\n if (!isObject(jsonObj.composite))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'composite' object.`);\n if (undefined !== jsonObj.composite.includeZero && typeof (jsonObj.composite.includeZero) !== \"boolean\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has a Composite with an invalid 'includeZero' attribute. It should be of type 'boolean'.`);\n\n if (undefined !== jsonObj.composite.spacer && typeof (jsonObj.composite.spacer) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has a Composite with an invalid 'spacer' attribute. It should be of type 'string'.`);\n\n // if composite is defined\n if (undefined === jsonObj.composite.units)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has an invalid 'Composite' attribute. It should have 1-4 units.`);\n if (!Array.isArray(jsonObj.composite.units))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has a Composite with an invalid 'units' attribute. It should be of type 'object[]'.`);\n\n for (let i = 0; i < jsonObj.composite.units.length; i++) {\n if (!isObject(jsonObj.composite.units[i]))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has a Composite with an invalid 'units' attribute. It should be of type 'object[]'.`);\n\n if (undefined === jsonObj.composite.units[i].name) // required\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has a Composite with an invalid 'units' attribute. The object at position ${i} is missing the required 'name' attribute.`);\n if (typeof (jsonObj.composite.units[i].name) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has a Composite with an invalid 'units' attribute. The object at position ${i} has an invalid 'name' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.composite.units[i].label && typeof (jsonObj.composite.units[i].label) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Format ${this._currentItemFullName} has a Composite with an invalid 'units' attribute. The object at position ${i} has an invalid 'label' attribute. It should be of type 'string'.`);\n }\n }\n return (jsonObj as unknown) as SchemaItemFormatProps;\n }\n\n private isValidPropertyType(type: string): boolean {\n type = type.toLowerCase();\n return (type === \"primitiveproperty\") ||\n (type === \"structproperty\") ||\n (type === \"primitivearrayproperty\") ||\n (type === \"structarrayproperty\") ||\n (type === \"navigationproperty\");\n }\n\n /**\n * Type checks property and returns PropertyProps interface\n * @param jsonObj\n * @returns PropertyProps\n */\n private checkPropertyProps(jsonObj: UnknownObject): PropertyProps {\n const propName = jsonObj.name;\n\n if (undefined !== jsonObj.label && typeof (jsonObj.label) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'label' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.description && typeof (jsonObj.description) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'description' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.priority && typeof (jsonObj.priority) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'priority' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.isReadOnly && typeof (jsonObj.isReadOnly) !== \"boolean\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'isReadOnly' attribute. It should be of type 'boolean'.`);\n\n if (undefined !== jsonObj.category && typeof (jsonObj.category) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'category' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.kindOfQuantity && typeof (jsonObj.kindOfQuantity) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'kindOfQuantity' attribute. It should be of type 'string'.`);\n\n if (undefined !== jsonObj.inherited && typeof (jsonObj.inherited) !== \"boolean\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'inherited' attribute. It should be of type 'boolean'.`);\n\n if (undefined !== jsonObj.customAttributes && !Array.isArray(jsonObj.customAttributes))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'customAttributes' attribute. It should be of type 'array'.`);\n return (jsonObj as unknown) as PropertyProps;\n }\n\n private checkPropertyTypename(jsonObj: UnknownObject): void {\n const propName = jsonObj.name;\n if (undefined === jsonObj.typeName)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} is missing the required 'typeName' attribute.`);\n if (typeof (jsonObj.typeName) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'typeName' attribute. It should be of type 'string'.`);\n }\n\n private checkPropertyMinAndMaxOccurs(jsonObj: UnknownObject): void {\n const propName = jsonObj.name;\n if (undefined !== jsonObj.minOccurs && typeof (jsonObj.minOccurs) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'minOccurs' attribute. It should be of type 'number'.`);\n if (undefined !== jsonObj.maxOccurs && typeof (jsonObj.maxOccurs) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'maxOccurs' attribute. It should be of type 'number'.`);\n }\n\n /**\n * Type checks PrimitiveOrEnumProperty and returns PrimitiveOrEnumPropertyBaseProps interface\n * @param jsonObj\n * @returns PrimitiveOrEnumPropertyBaseProps\n */\n private checkPrimitiveOrEnumPropertyBaseProps(jsonObj: UnknownObject): PrimitiveOrEnumPropertyBaseProps {\n this.checkPropertyProps(jsonObj);\n this.checkPropertyTypename(jsonObj);\n const propName = jsonObj.name;\n\n if (undefined !== jsonObj.minLength && typeof (jsonObj.minLength) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'minLength' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.maxLength && typeof (jsonObj.maxLength) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'maxLength' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.minValue && typeof (jsonObj.minValue) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'minValue' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.maxValue && typeof (jsonObj.maxValue) !== \"number\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'maxValue' attribute. It should be of type 'number'.`);\n\n if (undefined !== jsonObj.extendedTypeName && typeof (jsonObj.extendedTypeName) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ECProperty ${this._currentItemFullName}.${propName} has an invalid 'extendedTypeName' attribute. It should be of type 'string'.`);\n return (jsonObj as unknown) as PrimitiveOrEnumPropertyBaseProps;\n }\n\n /**\n * Type checks PrimitiveProperty and returns PrimitivePropertyProps interface\n * @param jsonObj\n * @returns PrimitivePropertyProps\n */\n public parsePrimitiveProperty(jsonObj: UnknownObject): PrimitivePropertyProps {\n this.checkPrimitiveOrEnumPropertyBaseProps(jsonObj);\n return (jsonObj as unknown) as PrimitivePropertyProps;\n }\n\n /**\n * Type checks StructProperty and returns StructPropertyProps interface\n * @param jsonObj\n * @returns StructPropertyProps\n */\n public parseStructProperty(jsonObj: UnknownObject): StructPropertyProps {\n this.checkPropertyProps(jsonObj);\n this.checkPropertyTypename(jsonObj);\n return (jsonObj as unknown) as StructPropertyProps;\n }\n\n /**\n * Type checks PrimitiveArrayProperty and returns PrimitiveArrayPropertyProps interface\n * @param jsonObj\n * @returns PrimitiveArrayPropertyProps\n */\n public parsePrimitiveArrayProperty(jsonObj: UnknownObject): PrimitiveArrayPropertyProps {\n this.checkPrimitiveOrEnumPropertyBaseProps(jsonObj);\n this.checkPropertyMinAndMaxOccurs(jsonObj);\n return (jsonObj as unknown) as PrimitiveArrayPropertyProps;\n }\n\n /**\n * Type checks StructArrayProperty and returns StructArrayPropertyProps interface\n * @param jsonObj\n * @returns StructArrayPropertyProps\n */\n public parseStructArrayProperty(jsonObj: UnknownObject): StructArrayPropertyProps {\n this.checkPropertyProps(jsonObj);\n this.checkPropertyTypename(jsonObj);\n this.checkPropertyMinAndMaxOccurs(jsonObj);\n return (jsonObj as unknown) as StructArrayPropertyProps;\n }\n\n /**\n * Type checks NavigationProperty and returns NavigationPropertyProps interface\n * @param jsonObj\n * @returns NavigationPropertyProps\n */\n public parseNavigationProperty(jsonObj: UnknownObject): NavigationPropertyProps {\n this.checkPropertyProps(jsonObj);\n const fullname = `${this._currentItemFullName}.${jsonObj.name}`;\n\n if (undefined === jsonObj.relationshipName)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Navigation Property ${fullname} is missing the required 'relationshipName' property.`);\n if (typeof (jsonObj.relationshipName) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Navigation Property ${fullname} has an invalid 'relationshipName' property. It should be of type 'string'.`);\n\n if (undefined === jsonObj.direction)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Navigation Property ${fullname} is missing the required 'direction' property.`);\n if (typeof (jsonObj.direction) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The Navigation Property ${fullname} has an invalid 'direction' property. It should be of type 'string'.`);\n\n return (jsonObj as unknown) as NavigationPropertyProps;\n }\n\n public getSchemaCustomAttributeProviders(): Iterable<CAProviderTuple> {\n return this.getCustomAttributeProviders(this._rawSchema, \"Schema\", this._schemaName);\n }\n\n public getClassCustomAttributeProviders(jsonObj: UnknownObject): Iterable<CAProviderTuple> {\n return this.getCustomAttributeProviders(jsonObj, \"ECClass\", this._currentItemFullName);\n }\n\n public getPropertyCustomAttributeProviders(jsonObj: UnknownObject): Iterable<CAProviderTuple> {\n return this.getCustomAttributeProviders(jsonObj, \"ECProperty\", `${this._currentItemFullName}.${jsonObj.name}`);\n }\n\n public getRelationshipConstraintCustomAttributeProviders(jsonObj: UnknownObject): [Iterable<CAProviderTuple> /* source */, Iterable<CAProviderTuple> /* target */] {\n const sourceCustomAttributes = this.getCustomAttributeProviders(jsonObj.source as UnknownObject, \"Source Constraint of\", this._currentItemFullName);\n const targetCustomAttributes = this.getCustomAttributeProviders(jsonObj.target as UnknownObject, \"Target Constraint of\", this._currentItemFullName);\n return [sourceCustomAttributes, targetCustomAttributes];\n }\n\n private *getCustomAttributeProviders(jsonObj: UnknownObject, type: string, name?: string): Iterable<CAProviderTuple> {\n if (undefined !== jsonObj.customAttributes) {\n if (!Array.isArray(jsonObj.customAttributes))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${type} ${name} has an invalid 'customAttributes' attribute. It should be of type 'object[]'.`);\n\n for (const instance of jsonObj.customAttributes) {\n if (!isObject(instance) || Array.isArray(instance))\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `The ${type} ${name} has an invalid 'customAttributes' attribute. It should be of type 'object[]'.`);\n if (undefined === instance.className)\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `A CustomAttribute in ${name}.customAttributes is missing the required 'className' attribute.`);\n if (typeof (instance.className) !== \"string\")\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `A CustomAttribute in ${name}.customAttributes has an invalid 'className' attribute. It should be of type 'string'.`);\n\n const provider = (_caClass: CustomAttributeClass) => {\n return instance as CustomAttribute;\n };\n\n const caTuple: CAProviderTuple = [instance.className, provider];\n yield caTuple;\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"JsonParser.js","sourceRoot":"","sources":["../../../src/Deserialization/JsonParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonProps.js","sourceRoot":"","sources":["../../../src/Deserialization/JsonProps.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG"
|
|
1
|
+
{"version":3,"file":"JsonProps.js","sourceRoot":"","sources":["../../../src/Deserialization/JsonProps.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG"}
|