@itwin/ecschema-metadata 5.12.0-dev.9 → 5.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -1
- package/lib/cjs/Constants.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/Formatting/FormatSetFormatsProvider.js.map +1 -1
- package/lib/cjs/Formatting/SchemaFormatsProvider.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 +466 -466
- 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/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 +309 -309
- package/lib/cjs/IncrementalLoading/SchemaStubQueries.js.map +1 -1
- package/lib/cjs/Interfaces.js.map +1 -1
- package/lib/cjs/Localization/LocalizationProvider.js.map +1 -1
- package/lib/cjs/Localization/LocalizationTypes.js.map +1 -1
- package/lib/cjs/Localization/SchemaLocalization.d.ts +1 -1
- package/lib/cjs/Localization/SchemaLocalization.d.ts.map +1 -1
- package/lib/cjs/Localization/SchemaLocalization.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/UnitSystem.js.map +1 -1
- package/lib/cjs/PropertyTypes.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/SchemaView/SchemaManifest.d.ts +81 -0
- package/lib/cjs/SchemaView/SchemaManifest.d.ts.map +1 -0
- package/lib/cjs/SchemaView/SchemaManifest.js +131 -0
- package/lib/cjs/SchemaView/SchemaManifest.js.map +1 -0
- package/lib/cjs/{SchemaView.d.ts → SchemaView/SchemaView.d.ts} +23 -90
- package/lib/cjs/SchemaView/SchemaView.d.ts.map +1 -0
- package/lib/cjs/{SchemaView.js → SchemaView/SchemaView.js} +32 -198
- package/lib/cjs/SchemaView/SchemaView.js.map +1 -0
- package/lib/cjs/SchemaView/SchemaViewBinaryReader.d.ts +37 -0
- package/lib/cjs/SchemaView/SchemaViewBinaryReader.d.ts.map +1 -0
- package/lib/cjs/{SchemaViewBinaryReader.js → SchemaView/SchemaViewBinaryReader.js} +84 -43
- package/lib/cjs/SchemaView/SchemaViewBinaryReader.js.map +1 -0
- package/lib/cjs/SchemaView/SchemaViewBuilder.d.ts +116 -0
- package/lib/cjs/SchemaView/SchemaViewBuilder.d.ts.map +1 -0
- package/lib/cjs/SchemaView/SchemaViewBuilder.js +230 -0
- package/lib/cjs/SchemaView/SchemaViewBuilder.js.map +1 -0
- package/lib/cjs/{SchemaViewInterfaces.d.ts → SchemaView/SchemaViewInterfaces.d.ts} +1 -1
- package/lib/cjs/SchemaView/SchemaViewInterfaces.d.ts.map +1 -0
- package/lib/cjs/SchemaView/SchemaViewInterfaces.js.map +1 -0
- package/lib/cjs/SchemaView/SchemaViewManager.d.ts +114 -0
- package/lib/cjs/SchemaView/SchemaViewManager.d.ts.map +1 -0
- package/lib/cjs/SchemaView/SchemaViewManager.js +184 -0
- package/lib/cjs/SchemaView/SchemaViewManager.js.map +1 -0
- package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
- package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
- package/lib/cjs/ecschema-metadata.d.ts +6 -3
- package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
- package/lib/cjs/ecschema-metadata.js +6 -3
- package/lib/cjs/ecschema-metadata.js.map +1 -1
- package/lib/cjs/utils/ECClassHierarchy.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/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/Formatting/FormatSetFormatsProvider.js.map +1 -1
- package/lib/esm/Formatting/SchemaFormatsProvider.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 +466 -466
- 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/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 +309 -309
- package/lib/esm/IncrementalLoading/SchemaStubQueries.js.map +1 -1
- package/lib/esm/Interfaces.js.map +1 -1
- package/lib/esm/Localization/LocalizationProvider.js.map +1 -1
- package/lib/esm/Localization/LocalizationTypes.js.map +1 -1
- package/lib/esm/Localization/SchemaLocalization.d.ts +1 -1
- package/lib/esm/Localization/SchemaLocalization.d.ts.map +1 -1
- package/lib/esm/Localization/SchemaLocalization.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/UnitSystem.js.map +1 -1
- package/lib/esm/PropertyTypes.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/SchemaView/SchemaManifest.d.ts +81 -0
- package/lib/esm/SchemaView/SchemaManifest.d.ts.map +1 -0
- package/lib/esm/SchemaView/SchemaManifest.js +127 -0
- package/lib/esm/SchemaView/SchemaManifest.js.map +1 -0
- package/lib/esm/{SchemaView.d.ts → SchemaView/SchemaView.d.ts} +23 -90
- package/lib/esm/SchemaView/SchemaView.d.ts.map +1 -0
- package/lib/esm/{SchemaView.js → SchemaView/SchemaView.js} +32 -197
- package/lib/esm/SchemaView/SchemaView.js.map +1 -0
- package/lib/esm/SchemaView/SchemaViewBinaryReader.d.ts +37 -0
- package/lib/esm/SchemaView/SchemaViewBinaryReader.d.ts.map +1 -0
- package/lib/esm/{SchemaViewBinaryReader.js → SchemaView/SchemaViewBinaryReader.js} +82 -43
- package/lib/esm/SchemaView/SchemaViewBinaryReader.js.map +1 -0
- package/lib/esm/SchemaView/SchemaViewBuilder.d.ts +116 -0
- package/lib/esm/SchemaView/SchemaViewBuilder.d.ts.map +1 -0
- package/lib/esm/SchemaView/SchemaViewBuilder.js +226 -0
- package/lib/esm/SchemaView/SchemaViewBuilder.js.map +1 -0
- package/lib/esm/{SchemaViewInterfaces.d.ts → SchemaView/SchemaViewInterfaces.d.ts} +1 -1
- package/lib/esm/SchemaView/SchemaViewInterfaces.d.ts.map +1 -0
- package/lib/esm/SchemaView/SchemaViewInterfaces.js.map +1 -0
- package/lib/esm/SchemaView/SchemaViewManager.d.ts +114 -0
- package/lib/esm/SchemaView/SchemaViewManager.d.ts.map +1 -0
- package/lib/esm/SchemaView/SchemaViewManager.js +180 -0
- package/lib/esm/SchemaView/SchemaViewManager.js.map +1 -0
- package/lib/esm/UnitConversion/UnitConverter.js.map +1 -1
- package/lib/esm/UnitConversion/UnitTree.js.map +1 -1
- package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/esm/Validation/SchemaWalker.js.map +1 -1
- package/lib/esm/ecschema-metadata.d.ts +6 -3
- package/lib/esm/ecschema-metadata.d.ts.map +1 -1
- package/lib/esm/ecschema-metadata.js +6 -3
- package/lib/esm/ecschema-metadata.js.map +1 -1
- package/lib/esm/utils/ECClassHierarchy.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 +8 -8
- package/lib/cjs/SchemaView.d.ts.map +0 -1
- package/lib/cjs/SchemaView.js.map +0 -1
- package/lib/cjs/SchemaViewBinaryReader.d.ts +0 -16
- package/lib/cjs/SchemaViewBinaryReader.d.ts.map +0 -1
- package/lib/cjs/SchemaViewBinaryReader.js.map +0 -1
- package/lib/cjs/SchemaViewInterfaces.d.ts.map +0 -1
- package/lib/cjs/SchemaViewInterfaces.js.map +0 -1
- package/lib/esm/SchemaView.d.ts.map +0 -1
- package/lib/esm/SchemaView.js.map +0 -1
- package/lib/esm/SchemaViewBinaryReader.d.ts +0 -16
- package/lib/esm/SchemaViewBinaryReader.d.ts.map +0 -1
- package/lib/esm/SchemaViewBinaryReader.js.map +0 -1
- package/lib/esm/SchemaViewInterfaces.d.ts.map +0 -1
- package/lib/esm/SchemaViewInterfaces.js.map +0 -1
- /package/lib/cjs/{SchemaViewInterfaces.js → SchemaView/SchemaViewInterfaces.js} +0 -0
- /package/lib/esm/{SchemaViewInterfaces.js → SchemaView/SchemaViewInterfaces.js} +0 -0
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* @module Schema
|
|
3
3
|
*/
|
|
4
4
|
import { type ClassData, ClassModifier, ClassType, type EnumerationData, type EnumeratorData, type KoqData, type PropCategoryData, type PropertyDef, PropertyKind, type PropertyRef, type RelConstraintData, type SchemaData, SchemaViewPrimitiveType } from "./SchemaViewInterfaces";
|
|
5
|
-
import {
|
|
5
|
+
import { SchemaViewMergeContext } from "./SchemaViewBinaryReader";
|
|
6
|
+
import { StrengthDirection, StrengthType } from "../ECObjects";
|
|
6
7
|
declare const _storage: unique symbol;
|
|
7
8
|
/** Internal runtime storage attached to a SchemaView instance. Carries the immutable data
|
|
8
9
|
* tables built by SchemaViewBuilder plus two mutable caches populated lazily at runtime.
|
|
@@ -58,11 +59,15 @@ export interface SchemaViewData {
|
|
|
58
59
|
export declare class SchemaView {
|
|
59
60
|
/** @internal */
|
|
60
61
|
readonly [_storage]: SchemaViewStorage;
|
|
61
|
-
private _schemaToken;
|
|
62
|
+
private readonly _schemaToken;
|
|
62
63
|
private _outdated;
|
|
64
|
+
/** When present, this view is a *husk*: it retains the live builder and cross-reference maps, so
|
|
65
|
+
* `mergeFragment` can append further fragment blobs. Undefined for one-shot views from `fromBinary`. */
|
|
66
|
+
private readonly _mergeContext?;
|
|
63
67
|
/** @internal */
|
|
64
|
-
constructor(data: SchemaViewData, schemaToken?: string);
|
|
65
|
-
/**
|
|
68
|
+
constructor(data: SchemaViewData, schemaToken?: string, mergeContext?: SchemaViewMergeContext);
|
|
69
|
+
/** Cache-invalidation token identifying the schemas this view was built from: a hash of every
|
|
70
|
+
* schema's name and version (see `PRAGMA checksum(schema_token)`), not of their full contents.
|
|
66
71
|
* Empty string if not set (e.g., when built from a builder without a token).
|
|
67
72
|
* @beta
|
|
68
73
|
*/
|
|
@@ -105,14 +110,25 @@ export declare class SchemaView {
|
|
|
105
110
|
findPropertyCategory(qualifiedName: string): SchemaView.PropertyCategory | undefined;
|
|
106
111
|
/** Parse a binary blob into a SchemaView. Synchronous.
|
|
107
112
|
* @param blob - The binary blob from `PRAGMA schema_view`.
|
|
108
|
-
* @param schemaToken - Optional
|
|
113
|
+
* @param schemaToken - Optional cache-invalidation token (schema name+version hash; see `PRAGMA checksum(schema_token)`).
|
|
109
114
|
* @beta
|
|
110
115
|
*/
|
|
111
116
|
static fromBinary(blob: Uint8Array, schemaToken?: string): SchemaView;
|
|
112
|
-
/**
|
|
117
|
+
/** Create an empty, *mergeable* view (a "husk"). It contains no schemas until `mergeFragment` is
|
|
118
|
+
* called. Each merged fragment is appended into the same instance, so flyweights and cached
|
|
119
|
+
* cross-references obtained earlier stay valid - indices are append-only and never reordered.
|
|
120
|
+
* @note Fragments must be merged in dependency order: a fragment may only reference schemas from
|
|
121
|
+
* fragments already merged.
|
|
113
122
|
* @internal
|
|
114
123
|
*/
|
|
115
|
-
static
|
|
124
|
+
static createMergeable(schemaToken?: string): SchemaView;
|
|
125
|
+
/** Merge one fragment blob into this view. Only valid on a view created via `createMergeable`.
|
|
126
|
+
* Synchronous. Any flyweight or cached index obtained before the call remains valid.
|
|
127
|
+
* @note If the merge throws (e.g. on a malformed blob), the view may be left partially extended
|
|
128
|
+
* and must be discarded by the host.
|
|
129
|
+
* @internal
|
|
130
|
+
*/
|
|
131
|
+
mergeFragment(blob: Uint8Array): void;
|
|
116
132
|
/** Resolve a qualified "SchemaName:ItemName" (or dot-separated) to an index using the given
|
|
117
133
|
* per-schema name map. Returns undefined if not found. @internal */
|
|
118
134
|
private _resolveSchemaItemIdx;
|
|
@@ -566,88 +582,5 @@ export declare namespace SchemaView {
|
|
|
566
582
|
get constraintClasses(): readonly Class[];
|
|
567
583
|
}
|
|
568
584
|
}
|
|
569
|
-
/** Builder for constructing an immutable `SchemaView`.
|
|
570
|
-
*
|
|
571
|
-
* Collects data during binary blob parsing, then freezes it into a view.
|
|
572
|
-
* Handles string interning and property definition deduplication.
|
|
573
|
-
*
|
|
574
|
-
* Consumers should not use this directly - read views via `IModelDb.getSchemaView`
|
|
575
|
-
* / `IModelConnection.getSchemaView` (or `SchemaView.fromBinary` if you have a raw blob).
|
|
576
|
-
* @internal
|
|
577
|
-
*/
|
|
578
|
-
export declare class SchemaViewBuilder {
|
|
579
|
-
private readonly _strings;
|
|
580
|
-
private readonly _lowerStrings;
|
|
581
|
-
private readonly _stringMap;
|
|
582
|
-
private readonly _schemas;
|
|
583
|
-
private readonly _classes;
|
|
584
|
-
private readonly _classMixins;
|
|
585
|
-
private readonly _propDefs;
|
|
586
|
-
private readonly _propertyRefs;
|
|
587
|
-
private readonly _relConstraints;
|
|
588
|
-
private readonly _constraintClassRefs;
|
|
589
|
-
private readonly _enumerations;
|
|
590
|
-
private readonly _enumerators;
|
|
591
|
-
private readonly _koqs;
|
|
592
|
-
private readonly _propCategories;
|
|
593
|
-
private readonly _propDefMap;
|
|
594
|
-
/** Intern a string, returning its SID. Empty/undefined strings return 0.
|
|
595
|
-
* Interning is case-sensitive - "MyLabel" and "MYLABEL" get distinct SIDs.
|
|
596
|
-
* The `lowerStrings` array provides case-insensitive lookup without mutating display values.
|
|
597
|
-
*/
|
|
598
|
-
internString(value: string | undefined): number;
|
|
599
|
-
/** Add a schema. Returns its index. */
|
|
600
|
-
addSchema(data: SchemaData): number;
|
|
601
|
-
/** Add a class. Returns its index. Must be called after the owning schema. */
|
|
602
|
-
addClass(data: ClassData): number;
|
|
603
|
-
/** Add a property definition with deduplication. Returns the def index (possibly existing). */
|
|
604
|
-
addPropertyDef(data: PropertyDef): number;
|
|
605
|
-
/** Append a property reference to the flat refs array. */
|
|
606
|
-
addPropertyRef(ref: PropertyRef): void;
|
|
607
|
-
/** Add an enumeration. Returns its index. */
|
|
608
|
-
addEnumeration(data: EnumerationData): number;
|
|
609
|
-
/** Append an enumerator to the flat enumerators array. */
|
|
610
|
-
addEnumerator(data: EnumeratorData): void;
|
|
611
|
-
/** Add a KindOfQuantity. Returns its index. */
|
|
612
|
-
addKoq(data: KoqData): number;
|
|
613
|
-
/** Add a PropertyCategory. Returns its index. */
|
|
614
|
-
addPropertyCategory(data: PropCategoryData): number;
|
|
615
|
-
/** Add a relationship constraint. Returns its index. */
|
|
616
|
-
addRelConstraint(data: RelConstraintData): number;
|
|
617
|
-
/** Append a constraint class reference to the flat array. */
|
|
618
|
-
addConstraintClassRef(classIdx: number): void;
|
|
619
|
-
/** Append a mixin class reference to the flat array. */
|
|
620
|
-
addClassMixin(classIdx: number): void;
|
|
621
|
-
/** The current count of property refs (used to set ownPropStart on ClassData). */
|
|
622
|
-
get propertyRefCount(): number;
|
|
623
|
-
/** The current count of enumerators (used to set enumeratorStart on EnumerationData). */
|
|
624
|
-
get enumeratorCount(): number;
|
|
625
|
-
/** The current count of constraint class refs (used to set classRefStart). */
|
|
626
|
-
get constraintClassRefCount(): number;
|
|
627
|
-
/** The current count of class mixins (used to set mixinStartIdx). */
|
|
628
|
-
get classMixinCount(): number;
|
|
629
|
-
/** Get a string by SID. @internal */
|
|
630
|
-
getString(sid: number): string;
|
|
631
|
-
/** Replace class data at the given index (used during deferred cross-ref resolution). @internal */
|
|
632
|
-
updateClass(classIdx: number, data: ClassData): void;
|
|
633
|
-
/** Update range fields on a schema (used after all items for a schema are collected). @internal */
|
|
634
|
-
updateSchemaRanges(schemaIdx: number, ranges: {
|
|
635
|
-
classRangeStart: number;
|
|
636
|
-
classCount: number;
|
|
637
|
-
enumRangeStart: number;
|
|
638
|
-
enumCount: number;
|
|
639
|
-
koqRangeStart: number;
|
|
640
|
-
koqCount: number;
|
|
641
|
-
catRangeStart: number;
|
|
642
|
-
catCount: number;
|
|
643
|
-
}): void;
|
|
644
|
-
/** Freeze all data and produce an immutable SchemaView. */
|
|
645
|
-
build(schemaToken?: string): SchemaView;
|
|
646
|
-
/** Produce a dedup signature for a PropertyDef. Label and priority are excluded because
|
|
647
|
-
* they are per-PropertyRef overrides, not part of the structural definition.
|
|
648
|
-
* Uses SIDs (not lowercase strings) for name/description so that case-preserving names
|
|
649
|
-
* stay distinct - matching the C++ writer's dedup behavior. */
|
|
650
|
-
private _propDefSignature;
|
|
651
|
-
}
|
|
652
585
|
export {};
|
|
653
586
|
//# sourceMappingURL=SchemaView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaView.d.ts","sourceRoot":"","sources":["../../../src/SchemaView/SchemaView.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @module Schema
|
|
7
7
|
*/
|
|
8
8
|
import { ClassModifier, ClassType, PropertyKind } from "./SchemaViewInterfaces";
|
|
9
|
-
import { parseSchemaViewBlob } from "./SchemaViewBinaryReader";
|
|
9
|
+
import { parseSchemaViewBlob, SchemaViewMergeContext } from "./SchemaViewBinaryReader";
|
|
10
10
|
// Module-local symbol used as the storage key on SchemaView instances. Mirrors the pattern in
|
|
11
11
|
// core-backend/src/internal/Symbols.ts (e.g. `_nativeDb` on IModelDb): the data is reachable
|
|
12
12
|
// only by code in this module, since the symbol is not exported and not registered globally.
|
|
@@ -28,16 +28,21 @@ export class SchemaView {
|
|
|
28
28
|
[_storage];
|
|
29
29
|
_schemaToken;
|
|
30
30
|
_outdated = false;
|
|
31
|
+
/** When present, this view is a *husk*: it retains the live builder and cross-reference maps, so
|
|
32
|
+
* `mergeFragment` can append further fragment blobs. Undefined for one-shot views from `fromBinary`. */
|
|
33
|
+
_mergeContext;
|
|
31
34
|
/** @internal */
|
|
32
|
-
constructor(data, schemaToken) {
|
|
35
|
+
constructor(data, schemaToken, mergeContext) {
|
|
33
36
|
this[_storage] = {
|
|
34
37
|
...data,
|
|
35
38
|
transitiveBaseCache: new Map(),
|
|
36
39
|
derivedClassMap: undefined,
|
|
37
40
|
};
|
|
38
41
|
this._schemaToken = schemaToken ?? "";
|
|
42
|
+
this._mergeContext = mergeContext;
|
|
39
43
|
}
|
|
40
|
-
/**
|
|
44
|
+
/** Cache-invalidation token identifying the schemas this view was built from: a hash of every
|
|
45
|
+
* schema's name and version (see `PRAGMA checksum(schema_token)`), not of their full contents.
|
|
41
46
|
* Empty string if not set (e.g., when built from a builder without a token).
|
|
42
47
|
* @beta
|
|
43
48
|
*/
|
|
@@ -101,17 +106,37 @@ export class SchemaView {
|
|
|
101
106
|
}
|
|
102
107
|
/** Parse a binary blob into a SchemaView. Synchronous.
|
|
103
108
|
* @param blob - The binary blob from `PRAGMA schema_view`.
|
|
104
|
-
* @param schemaToken - Optional
|
|
109
|
+
* @param schemaToken - Optional cache-invalidation token (schema name+version hash; see `PRAGMA checksum(schema_token)`).
|
|
105
110
|
* @beta
|
|
106
111
|
*/
|
|
107
112
|
static fromBinary(blob, schemaToken) {
|
|
108
113
|
return parseSchemaViewBlob(blob, schemaToken);
|
|
109
114
|
}
|
|
110
|
-
/**
|
|
115
|
+
/** Create an empty, *mergeable* view (a "husk"). It contains no schemas until `mergeFragment` is
|
|
116
|
+
* called. Each merged fragment is appended into the same instance, so flyweights and cached
|
|
117
|
+
* cross-references obtained earlier stay valid - indices are append-only and never reordered.
|
|
118
|
+
* @note Fragments must be merged in dependency order: a fragment may only reference schemas from
|
|
119
|
+
* fragments already merged.
|
|
111
120
|
* @internal
|
|
112
121
|
*/
|
|
113
|
-
static
|
|
114
|
-
|
|
122
|
+
static createMergeable(schemaToken) {
|
|
123
|
+
const ctx = new SchemaViewMergeContext();
|
|
124
|
+
return new SchemaView(ctx.builder.assembleData(), schemaToken, ctx);
|
|
125
|
+
}
|
|
126
|
+
/** Merge one fragment blob into this view. Only valid on a view created via `createMergeable`.
|
|
127
|
+
* Synchronous. Any flyweight or cached index obtained before the call remains valid.
|
|
128
|
+
* @note If the merge throws (e.g. on a malformed blob), the view may be left partially extended
|
|
129
|
+
* and must be discarded by the host.
|
|
130
|
+
* @internal
|
|
131
|
+
*/
|
|
132
|
+
mergeFragment(blob) {
|
|
133
|
+
if (this._mergeContext === undefined)
|
|
134
|
+
throw new Error("SchemaView is not mergeable: create it via SchemaView.createMergeable to merge fragments.");
|
|
135
|
+
this._mergeContext.mergeBlob(blob);
|
|
136
|
+
// A new fragment can add subclasses to an already-present base class, so the derived-class map
|
|
137
|
+
// must be rebuilt. transitiveBaseCache stays valid: a class's ancestors are always merged
|
|
138
|
+
// before it (dependency order), so an append never adds an ancestor to an already-cached class.
|
|
139
|
+
this[_storage].derivedClassMap = undefined;
|
|
115
140
|
}
|
|
116
141
|
// --- Internal helpers used by view objects ---
|
|
117
142
|
/** Resolve a qualified "SchemaName:ItemName" (or dot-separated) to an index using the given
|
|
@@ -1006,194 +1031,4 @@ export class SchemaView {
|
|
|
1006
1031
|
}
|
|
1007
1032
|
SchemaView.RelConstraint = RelConstraint;
|
|
1008
1033
|
})(SchemaView || (SchemaView = {}));
|
|
1009
|
-
// =====================================================================================
|
|
1010
|
-
// SchemaViewBuilder
|
|
1011
|
-
// =====================================================================================
|
|
1012
|
-
/** Builder for constructing an immutable `SchemaView`.
|
|
1013
|
-
*
|
|
1014
|
-
* Collects data during binary blob parsing, then freezes it into a view.
|
|
1015
|
-
* Handles string interning and property definition deduplication.
|
|
1016
|
-
*
|
|
1017
|
-
* Consumers should not use this directly - read views via `IModelDb.getSchemaView`
|
|
1018
|
-
* / `IModelConnection.getSchemaView` (or `SchemaView.fromBinary` if you have a raw blob).
|
|
1019
|
-
* @internal
|
|
1020
|
-
*/
|
|
1021
|
-
export class SchemaViewBuilder {
|
|
1022
|
-
_strings = [""]; // SID 0 = empty string
|
|
1023
|
-
_lowerStrings = [""];
|
|
1024
|
-
_stringMap = new Map(); // original value -> SID
|
|
1025
|
-
_schemas = [];
|
|
1026
|
-
_classes = [];
|
|
1027
|
-
_classMixins = [];
|
|
1028
|
-
_propDefs = [];
|
|
1029
|
-
_propertyRefs = [];
|
|
1030
|
-
_relConstraints = [];
|
|
1031
|
-
_constraintClassRefs = [];
|
|
1032
|
-
_enumerations = [];
|
|
1033
|
-
_enumerators = [];
|
|
1034
|
-
_koqs = [];
|
|
1035
|
-
_propCategories = [];
|
|
1036
|
-
// For PropertyDef dedup
|
|
1037
|
-
_propDefMap = new Map(); // signature string -> defIdx
|
|
1038
|
-
/** Intern a string, returning its SID. Empty/undefined strings return 0.
|
|
1039
|
-
* Interning is case-sensitive - "MyLabel" and "MYLABEL" get distinct SIDs.
|
|
1040
|
-
* The `lowerStrings` array provides case-insensitive lookup without mutating display values.
|
|
1041
|
-
*/
|
|
1042
|
-
internString(value) {
|
|
1043
|
-
if (value === undefined || value === "")
|
|
1044
|
-
return 0;
|
|
1045
|
-
const existing = this._stringMap.get(value);
|
|
1046
|
-
if (existing !== undefined)
|
|
1047
|
-
return existing;
|
|
1048
|
-
const sid = this._strings.length;
|
|
1049
|
-
this._strings.push(value);
|
|
1050
|
-
this._lowerStrings.push(value.toLowerCase());
|
|
1051
|
-
this._stringMap.set(value, sid);
|
|
1052
|
-
return sid;
|
|
1053
|
-
}
|
|
1054
|
-
/** Add a schema. Returns its index. */
|
|
1055
|
-
addSchema(data) {
|
|
1056
|
-
const idx = this._schemas.length;
|
|
1057
|
-
this._schemas.push(data);
|
|
1058
|
-
return idx;
|
|
1059
|
-
}
|
|
1060
|
-
/** Add a class. Returns its index. Must be called after the owning schema. */
|
|
1061
|
-
addClass(data) {
|
|
1062
|
-
const idx = this._classes.length;
|
|
1063
|
-
this._classes.push(data);
|
|
1064
|
-
return idx;
|
|
1065
|
-
}
|
|
1066
|
-
/** Add a property definition with deduplication. Returns the def index (possibly existing). */
|
|
1067
|
-
addPropertyDef(data) {
|
|
1068
|
-
const sig = this._propDefSignature(data);
|
|
1069
|
-
const existing = this._propDefMap.get(sig);
|
|
1070
|
-
if (existing !== undefined)
|
|
1071
|
-
return existing;
|
|
1072
|
-
const idx = this._propDefs.length;
|
|
1073
|
-
this._propDefs.push(data);
|
|
1074
|
-
this._propDefMap.set(sig, idx);
|
|
1075
|
-
return idx;
|
|
1076
|
-
}
|
|
1077
|
-
/** Append a property reference to the flat refs array. */
|
|
1078
|
-
addPropertyRef(ref) {
|
|
1079
|
-
this._propertyRefs.push(ref);
|
|
1080
|
-
}
|
|
1081
|
-
/** Add an enumeration. Returns its index. */
|
|
1082
|
-
addEnumeration(data) {
|
|
1083
|
-
const idx = this._enumerations.length;
|
|
1084
|
-
this._enumerations.push(data);
|
|
1085
|
-
return idx;
|
|
1086
|
-
}
|
|
1087
|
-
/** Append an enumerator to the flat enumerators array. */
|
|
1088
|
-
addEnumerator(data) {
|
|
1089
|
-
this._enumerators.push(data);
|
|
1090
|
-
}
|
|
1091
|
-
/** Add a KindOfQuantity. Returns its index. */
|
|
1092
|
-
addKoq(data) {
|
|
1093
|
-
const idx = this._koqs.length;
|
|
1094
|
-
this._koqs.push(data);
|
|
1095
|
-
return idx;
|
|
1096
|
-
}
|
|
1097
|
-
/** Add a PropertyCategory. Returns its index. */
|
|
1098
|
-
addPropertyCategory(data) {
|
|
1099
|
-
const idx = this._propCategories.length;
|
|
1100
|
-
this._propCategories.push(data);
|
|
1101
|
-
return idx;
|
|
1102
|
-
}
|
|
1103
|
-
/** Add a relationship constraint. Returns its index. */
|
|
1104
|
-
addRelConstraint(data) {
|
|
1105
|
-
const idx = this._relConstraints.length;
|
|
1106
|
-
this._relConstraints.push(data);
|
|
1107
|
-
return idx;
|
|
1108
|
-
}
|
|
1109
|
-
/** Append a constraint class reference to the flat array. */
|
|
1110
|
-
addConstraintClassRef(classIdx) {
|
|
1111
|
-
this._constraintClassRefs.push(classIdx);
|
|
1112
|
-
}
|
|
1113
|
-
/** Append a mixin class reference to the flat array. */
|
|
1114
|
-
addClassMixin(classIdx) {
|
|
1115
|
-
this._classMixins.push(classIdx);
|
|
1116
|
-
}
|
|
1117
|
-
/** The current count of property refs (used to set ownPropStart on ClassData). */
|
|
1118
|
-
get propertyRefCount() { return this._propertyRefs.length; }
|
|
1119
|
-
/** The current count of enumerators (used to set enumeratorStart on EnumerationData). */
|
|
1120
|
-
get enumeratorCount() { return this._enumerators.length; }
|
|
1121
|
-
/** The current count of constraint class refs (used to set classRefStart). */
|
|
1122
|
-
get constraintClassRefCount() { return this._constraintClassRefs.length; }
|
|
1123
|
-
/** The current count of class mixins (used to set mixinStartIdx). */
|
|
1124
|
-
get classMixinCount() { return this._classMixins.length; }
|
|
1125
|
-
/** Get a string by SID. @internal */
|
|
1126
|
-
getString(sid) { return this._strings[sid]; }
|
|
1127
|
-
/** Replace class data at the given index (used during deferred cross-ref resolution). @internal */
|
|
1128
|
-
updateClass(classIdx, data) { this._classes[classIdx] = data; }
|
|
1129
|
-
/** Update range fields on a schema (used after all items for a schema are collected). @internal */
|
|
1130
|
-
updateSchemaRanges(schemaIdx, ranges) {
|
|
1131
|
-
const s = this._schemas[schemaIdx];
|
|
1132
|
-
this._schemas[schemaIdx] = { ...s, ...ranges };
|
|
1133
|
-
}
|
|
1134
|
-
/** Freeze all data and produce an immutable SchemaView. */
|
|
1135
|
-
build(schemaToken) {
|
|
1136
|
-
const schemaByName = new Map();
|
|
1137
|
-
const schemaByAlias = new Map();
|
|
1138
|
-
const classByName = new Map();
|
|
1139
|
-
const enumByName = new Map();
|
|
1140
|
-
const koqByName = new Map();
|
|
1141
|
-
const catByName = new Map();
|
|
1142
|
-
// Build schema lookup maps
|
|
1143
|
-
for (let i = 0; i < this._schemas.length; i++) {
|
|
1144
|
-
const s = this._schemas[i];
|
|
1145
|
-
schemaByName.set(this._lowerStrings[s.nameStringIdx], i);
|
|
1146
|
-
if (s.aliasStringIdx !== 0)
|
|
1147
|
-
schemaByAlias.set(this._lowerStrings[s.aliasStringIdx], i);
|
|
1148
|
-
// Build class-by-name map for this schema
|
|
1149
|
-
const classMap = new Map();
|
|
1150
|
-
for (let c = s.classRangeStart; c < s.classRangeStart + s.classCount; c++)
|
|
1151
|
-
classMap.set(this._lowerStrings[this._classes[c].nameStringIdx], c);
|
|
1152
|
-
classByName.set(i, classMap);
|
|
1153
|
-
// Build enum-by-name map for this schema
|
|
1154
|
-
const eMap = new Map();
|
|
1155
|
-
for (let e = s.enumRangeStart; e < s.enumRangeStart + s.enumCount; e++)
|
|
1156
|
-
eMap.set(this._lowerStrings[this._enumerations[e].nameStringIdx], e);
|
|
1157
|
-
enumByName.set(i, eMap);
|
|
1158
|
-
// Build koq-by-name map for this schema
|
|
1159
|
-
const kMap = new Map();
|
|
1160
|
-
for (let k = s.koqRangeStart; k < s.koqRangeStart + s.koqCount; k++)
|
|
1161
|
-
kMap.set(this._lowerStrings[this._koqs[k].nameStringIdx], k);
|
|
1162
|
-
koqByName.set(i, kMap);
|
|
1163
|
-
// Build category-by-name map for this schema
|
|
1164
|
-
const cMap = new Map();
|
|
1165
|
-
for (let p = s.catRangeStart; p < s.catRangeStart + s.catCount; p++)
|
|
1166
|
-
cMap.set(this._lowerStrings[this._propCategories[p].nameStringIdx], p);
|
|
1167
|
-
catByName.set(i, cMap);
|
|
1168
|
-
}
|
|
1169
|
-
return new SchemaView({
|
|
1170
|
-
strings: this._strings,
|
|
1171
|
-
lowerStrings: this._lowerStrings,
|
|
1172
|
-
schemas: this._schemas,
|
|
1173
|
-
classes: this._classes,
|
|
1174
|
-
classMixins: this._classMixins,
|
|
1175
|
-
propDefs: this._propDefs,
|
|
1176
|
-
propertyRefs: this._propertyRefs,
|
|
1177
|
-
relConstraints: this._relConstraints,
|
|
1178
|
-
constraintClassRefs: this._constraintClassRefs,
|
|
1179
|
-
enumerations: this._enumerations,
|
|
1180
|
-
enumerators: this._enumerators,
|
|
1181
|
-
koqs: this._koqs,
|
|
1182
|
-
propCategories: this._propCategories,
|
|
1183
|
-
schemaByName,
|
|
1184
|
-
schemaByAlias,
|
|
1185
|
-
classByName,
|
|
1186
|
-
enumByName,
|
|
1187
|
-
koqByName,
|
|
1188
|
-
catByName,
|
|
1189
|
-
}, schemaToken);
|
|
1190
|
-
}
|
|
1191
|
-
/** Produce a dedup signature for a PropertyDef. Label and priority are excluded because
|
|
1192
|
-
* they are per-PropertyRef overrides, not part of the structural definition.
|
|
1193
|
-
* Uses SIDs (not lowercase strings) for name/description so that case-preserving names
|
|
1194
|
-
* stay distinct - matching the C++ writer's dedup behavior. */
|
|
1195
|
-
_propDefSignature(def) {
|
|
1196
|
-
return `${def.nameStringIdx}|${def.kind}|${def.primitiveType}|${def.extTypeStringIdx}|${def.enumIdx}|${def.koqIdx}|${def.structClassIdx}|${def.navRelClassIdx}|${def.navDirection}|${def.categoryIdx}|${def.isReadOnly ? 1 : 0}|${def.isHidden ? 1 : 0}|${def.arrayMinOccurs}|${def.arrayMaxOccurs}|${def.descriptionStringIdx}`;
|
|
1197
|
-
}
|
|
1198
|
-
}
|
|
1199
1034
|
//# sourceMappingURL=SchemaView.js.map
|