@itwin/ecschema-metadata 5.12.0-dev.9 → 5.13.0-dev.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 +6 -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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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @module Schema
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.SchemaView = void 0;
|
|
11
11
|
const SchemaViewInterfaces_1 = require("./SchemaViewInterfaces");
|
|
12
12
|
const SchemaViewBinaryReader_1 = require("./SchemaViewBinaryReader");
|
|
13
13
|
// Module-local symbol used as the storage key on SchemaView instances. Mirrors the pattern in
|
|
@@ -31,16 +31,21 @@ class SchemaView {
|
|
|
31
31
|
[_storage];
|
|
32
32
|
_schemaToken;
|
|
33
33
|
_outdated = false;
|
|
34
|
+
/** When present, this view is a *husk*: it retains the live builder and cross-reference maps, so
|
|
35
|
+
* `mergeFragment` can append further fragment blobs. Undefined for one-shot views from `fromBinary`. */
|
|
36
|
+
_mergeContext;
|
|
34
37
|
/** @internal */
|
|
35
|
-
constructor(data, schemaToken) {
|
|
38
|
+
constructor(data, schemaToken, mergeContext) {
|
|
36
39
|
this[_storage] = {
|
|
37
40
|
...data,
|
|
38
41
|
transitiveBaseCache: new Map(),
|
|
39
42
|
derivedClassMap: undefined,
|
|
40
43
|
};
|
|
41
44
|
this._schemaToken = schemaToken ?? "";
|
|
45
|
+
this._mergeContext = mergeContext;
|
|
42
46
|
}
|
|
43
|
-
/**
|
|
47
|
+
/** Cache-invalidation token identifying the schemas this view was built from: a hash of every
|
|
48
|
+
* schema's name and version (see `PRAGMA checksum(schema_token)`), not of their full contents.
|
|
44
49
|
* Empty string if not set (e.g., when built from a builder without a token).
|
|
45
50
|
* @beta
|
|
46
51
|
*/
|
|
@@ -104,17 +109,37 @@ class SchemaView {
|
|
|
104
109
|
}
|
|
105
110
|
/** Parse a binary blob into a SchemaView. Synchronous.
|
|
106
111
|
* @param blob - The binary blob from `PRAGMA schema_view`.
|
|
107
|
-
* @param schemaToken - Optional
|
|
112
|
+
* @param schemaToken - Optional cache-invalidation token (schema name+version hash; see `PRAGMA checksum(schema_token)`).
|
|
108
113
|
* @beta
|
|
109
114
|
*/
|
|
110
115
|
static fromBinary(blob, schemaToken) {
|
|
111
116
|
return (0, SchemaViewBinaryReader_1.parseSchemaViewBlob)(blob, schemaToken);
|
|
112
117
|
}
|
|
113
|
-
/**
|
|
118
|
+
/** Create an empty, *mergeable* view (a "husk"). It contains no schemas until `mergeFragment` is
|
|
119
|
+
* called. Each merged fragment is appended into the same instance, so flyweights and cached
|
|
120
|
+
* cross-references obtained earlier stay valid - indices are append-only and never reordered.
|
|
121
|
+
* @note Fragments must be merged in dependency order: a fragment may only reference schemas from
|
|
122
|
+
* fragments already merged.
|
|
114
123
|
* @internal
|
|
115
124
|
*/
|
|
116
|
-
static
|
|
117
|
-
|
|
125
|
+
static createMergeable(schemaToken) {
|
|
126
|
+
const ctx = new SchemaViewBinaryReader_1.SchemaViewMergeContext();
|
|
127
|
+
return new SchemaView(ctx.builder.assembleData(), schemaToken, ctx);
|
|
128
|
+
}
|
|
129
|
+
/** Merge one fragment blob into this view. Only valid on a view created via `createMergeable`.
|
|
130
|
+
* Synchronous. Any flyweight or cached index obtained before the call remains valid.
|
|
131
|
+
* @note If the merge throws (e.g. on a malformed blob), the view may be left partially extended
|
|
132
|
+
* and must be discarded by the host.
|
|
133
|
+
* @internal
|
|
134
|
+
*/
|
|
135
|
+
mergeFragment(blob) {
|
|
136
|
+
if (this._mergeContext === undefined)
|
|
137
|
+
throw new Error("SchemaView is not mergeable: create it via SchemaView.createMergeable to merge fragments.");
|
|
138
|
+
this._mergeContext.mergeBlob(blob);
|
|
139
|
+
// A new fragment can add subclasses to an already-present base class, so the derived-class map
|
|
140
|
+
// must be rebuilt. transitiveBaseCache stays valid: a class's ancestors are always merged
|
|
141
|
+
// before it (dependency order), so an append never adds an ancestor to an already-cached class.
|
|
142
|
+
this[_storage].derivedClassMap = undefined;
|
|
118
143
|
}
|
|
119
144
|
// --- Internal helpers used by view objects ---
|
|
120
145
|
/** Resolve a qualified "SchemaName:ItemName" (or dot-separated) to an index using the given
|
|
@@ -1010,195 +1035,4 @@ exports.SchemaView = SchemaView;
|
|
|
1010
1035
|
}
|
|
1011
1036
|
SchemaView.RelConstraint = RelConstraint;
|
|
1012
1037
|
})(SchemaView || (exports.SchemaView = SchemaView = {}));
|
|
1013
|
-
// =====================================================================================
|
|
1014
|
-
// SchemaViewBuilder
|
|
1015
|
-
// =====================================================================================
|
|
1016
|
-
/** Builder for constructing an immutable `SchemaView`.
|
|
1017
|
-
*
|
|
1018
|
-
* Collects data during binary blob parsing, then freezes it into a view.
|
|
1019
|
-
* Handles string interning and property definition deduplication.
|
|
1020
|
-
*
|
|
1021
|
-
* Consumers should not use this directly - read views via `IModelDb.getSchemaView`
|
|
1022
|
-
* / `IModelConnection.getSchemaView` (or `SchemaView.fromBinary` if you have a raw blob).
|
|
1023
|
-
* @internal
|
|
1024
|
-
*/
|
|
1025
|
-
class SchemaViewBuilder {
|
|
1026
|
-
_strings = [""]; // SID 0 = empty string
|
|
1027
|
-
_lowerStrings = [""];
|
|
1028
|
-
_stringMap = new Map(); // original value -> SID
|
|
1029
|
-
_schemas = [];
|
|
1030
|
-
_classes = [];
|
|
1031
|
-
_classMixins = [];
|
|
1032
|
-
_propDefs = [];
|
|
1033
|
-
_propertyRefs = [];
|
|
1034
|
-
_relConstraints = [];
|
|
1035
|
-
_constraintClassRefs = [];
|
|
1036
|
-
_enumerations = [];
|
|
1037
|
-
_enumerators = [];
|
|
1038
|
-
_koqs = [];
|
|
1039
|
-
_propCategories = [];
|
|
1040
|
-
// For PropertyDef dedup
|
|
1041
|
-
_propDefMap = new Map(); // signature string -> defIdx
|
|
1042
|
-
/** Intern a string, returning its SID. Empty/undefined strings return 0.
|
|
1043
|
-
* Interning is case-sensitive - "MyLabel" and "MYLABEL" get distinct SIDs.
|
|
1044
|
-
* The `lowerStrings` array provides case-insensitive lookup without mutating display values.
|
|
1045
|
-
*/
|
|
1046
|
-
internString(value) {
|
|
1047
|
-
if (value === undefined || value === "")
|
|
1048
|
-
return 0;
|
|
1049
|
-
const existing = this._stringMap.get(value);
|
|
1050
|
-
if (existing !== undefined)
|
|
1051
|
-
return existing;
|
|
1052
|
-
const sid = this._strings.length;
|
|
1053
|
-
this._strings.push(value);
|
|
1054
|
-
this._lowerStrings.push(value.toLowerCase());
|
|
1055
|
-
this._stringMap.set(value, sid);
|
|
1056
|
-
return sid;
|
|
1057
|
-
}
|
|
1058
|
-
/** Add a schema. Returns its index. */
|
|
1059
|
-
addSchema(data) {
|
|
1060
|
-
const idx = this._schemas.length;
|
|
1061
|
-
this._schemas.push(data);
|
|
1062
|
-
return idx;
|
|
1063
|
-
}
|
|
1064
|
-
/** Add a class. Returns its index. Must be called after the owning schema. */
|
|
1065
|
-
addClass(data) {
|
|
1066
|
-
const idx = this._classes.length;
|
|
1067
|
-
this._classes.push(data);
|
|
1068
|
-
return idx;
|
|
1069
|
-
}
|
|
1070
|
-
/** Add a property definition with deduplication. Returns the def index (possibly existing). */
|
|
1071
|
-
addPropertyDef(data) {
|
|
1072
|
-
const sig = this._propDefSignature(data);
|
|
1073
|
-
const existing = this._propDefMap.get(sig);
|
|
1074
|
-
if (existing !== undefined)
|
|
1075
|
-
return existing;
|
|
1076
|
-
const idx = this._propDefs.length;
|
|
1077
|
-
this._propDefs.push(data);
|
|
1078
|
-
this._propDefMap.set(sig, idx);
|
|
1079
|
-
return idx;
|
|
1080
|
-
}
|
|
1081
|
-
/** Append a property reference to the flat refs array. */
|
|
1082
|
-
addPropertyRef(ref) {
|
|
1083
|
-
this._propertyRefs.push(ref);
|
|
1084
|
-
}
|
|
1085
|
-
/** Add an enumeration. Returns its index. */
|
|
1086
|
-
addEnumeration(data) {
|
|
1087
|
-
const idx = this._enumerations.length;
|
|
1088
|
-
this._enumerations.push(data);
|
|
1089
|
-
return idx;
|
|
1090
|
-
}
|
|
1091
|
-
/** Append an enumerator to the flat enumerators array. */
|
|
1092
|
-
addEnumerator(data) {
|
|
1093
|
-
this._enumerators.push(data);
|
|
1094
|
-
}
|
|
1095
|
-
/** Add a KindOfQuantity. Returns its index. */
|
|
1096
|
-
addKoq(data) {
|
|
1097
|
-
const idx = this._koqs.length;
|
|
1098
|
-
this._koqs.push(data);
|
|
1099
|
-
return idx;
|
|
1100
|
-
}
|
|
1101
|
-
/** Add a PropertyCategory. Returns its index. */
|
|
1102
|
-
addPropertyCategory(data) {
|
|
1103
|
-
const idx = this._propCategories.length;
|
|
1104
|
-
this._propCategories.push(data);
|
|
1105
|
-
return idx;
|
|
1106
|
-
}
|
|
1107
|
-
/** Add a relationship constraint. Returns its index. */
|
|
1108
|
-
addRelConstraint(data) {
|
|
1109
|
-
const idx = this._relConstraints.length;
|
|
1110
|
-
this._relConstraints.push(data);
|
|
1111
|
-
return idx;
|
|
1112
|
-
}
|
|
1113
|
-
/** Append a constraint class reference to the flat array. */
|
|
1114
|
-
addConstraintClassRef(classIdx) {
|
|
1115
|
-
this._constraintClassRefs.push(classIdx);
|
|
1116
|
-
}
|
|
1117
|
-
/** Append a mixin class reference to the flat array. */
|
|
1118
|
-
addClassMixin(classIdx) {
|
|
1119
|
-
this._classMixins.push(classIdx);
|
|
1120
|
-
}
|
|
1121
|
-
/** The current count of property refs (used to set ownPropStart on ClassData). */
|
|
1122
|
-
get propertyRefCount() { return this._propertyRefs.length; }
|
|
1123
|
-
/** The current count of enumerators (used to set enumeratorStart on EnumerationData). */
|
|
1124
|
-
get enumeratorCount() { return this._enumerators.length; }
|
|
1125
|
-
/** The current count of constraint class refs (used to set classRefStart). */
|
|
1126
|
-
get constraintClassRefCount() { return this._constraintClassRefs.length; }
|
|
1127
|
-
/** The current count of class mixins (used to set mixinStartIdx). */
|
|
1128
|
-
get classMixinCount() { return this._classMixins.length; }
|
|
1129
|
-
/** Get a string by SID. @internal */
|
|
1130
|
-
getString(sid) { return this._strings[sid]; }
|
|
1131
|
-
/** Replace class data at the given index (used during deferred cross-ref resolution). @internal */
|
|
1132
|
-
updateClass(classIdx, data) { this._classes[classIdx] = data; }
|
|
1133
|
-
/** Update range fields on a schema (used after all items for a schema are collected). @internal */
|
|
1134
|
-
updateSchemaRanges(schemaIdx, ranges) {
|
|
1135
|
-
const s = this._schemas[schemaIdx];
|
|
1136
|
-
this._schemas[schemaIdx] = { ...s, ...ranges };
|
|
1137
|
-
}
|
|
1138
|
-
/** Freeze all data and produce an immutable SchemaView. */
|
|
1139
|
-
build(schemaToken) {
|
|
1140
|
-
const schemaByName = new Map();
|
|
1141
|
-
const schemaByAlias = new Map();
|
|
1142
|
-
const classByName = new Map();
|
|
1143
|
-
const enumByName = new Map();
|
|
1144
|
-
const koqByName = new Map();
|
|
1145
|
-
const catByName = new Map();
|
|
1146
|
-
// Build schema lookup maps
|
|
1147
|
-
for (let i = 0; i < this._schemas.length; i++) {
|
|
1148
|
-
const s = this._schemas[i];
|
|
1149
|
-
schemaByName.set(this._lowerStrings[s.nameStringIdx], i);
|
|
1150
|
-
if (s.aliasStringIdx !== 0)
|
|
1151
|
-
schemaByAlias.set(this._lowerStrings[s.aliasStringIdx], i);
|
|
1152
|
-
// Build class-by-name map for this schema
|
|
1153
|
-
const classMap = new Map();
|
|
1154
|
-
for (let c = s.classRangeStart; c < s.classRangeStart + s.classCount; c++)
|
|
1155
|
-
classMap.set(this._lowerStrings[this._classes[c].nameStringIdx], c);
|
|
1156
|
-
classByName.set(i, classMap);
|
|
1157
|
-
// Build enum-by-name map for this schema
|
|
1158
|
-
const eMap = new Map();
|
|
1159
|
-
for (let e = s.enumRangeStart; e < s.enumRangeStart + s.enumCount; e++)
|
|
1160
|
-
eMap.set(this._lowerStrings[this._enumerations[e].nameStringIdx], e);
|
|
1161
|
-
enumByName.set(i, eMap);
|
|
1162
|
-
// Build koq-by-name map for this schema
|
|
1163
|
-
const kMap = new Map();
|
|
1164
|
-
for (let k = s.koqRangeStart; k < s.koqRangeStart + s.koqCount; k++)
|
|
1165
|
-
kMap.set(this._lowerStrings[this._koqs[k].nameStringIdx], k);
|
|
1166
|
-
koqByName.set(i, kMap);
|
|
1167
|
-
// Build category-by-name map for this schema
|
|
1168
|
-
const cMap = new Map();
|
|
1169
|
-
for (let p = s.catRangeStart; p < s.catRangeStart + s.catCount; p++)
|
|
1170
|
-
cMap.set(this._lowerStrings[this._propCategories[p].nameStringIdx], p);
|
|
1171
|
-
catByName.set(i, cMap);
|
|
1172
|
-
}
|
|
1173
|
-
return new SchemaView({
|
|
1174
|
-
strings: this._strings,
|
|
1175
|
-
lowerStrings: this._lowerStrings,
|
|
1176
|
-
schemas: this._schemas,
|
|
1177
|
-
classes: this._classes,
|
|
1178
|
-
classMixins: this._classMixins,
|
|
1179
|
-
propDefs: this._propDefs,
|
|
1180
|
-
propertyRefs: this._propertyRefs,
|
|
1181
|
-
relConstraints: this._relConstraints,
|
|
1182
|
-
constraintClassRefs: this._constraintClassRefs,
|
|
1183
|
-
enumerations: this._enumerations,
|
|
1184
|
-
enumerators: this._enumerators,
|
|
1185
|
-
koqs: this._koqs,
|
|
1186
|
-
propCategories: this._propCategories,
|
|
1187
|
-
schemaByName,
|
|
1188
|
-
schemaByAlias,
|
|
1189
|
-
classByName,
|
|
1190
|
-
enumByName,
|
|
1191
|
-
koqByName,
|
|
1192
|
-
catByName,
|
|
1193
|
-
}, schemaToken);
|
|
1194
|
-
}
|
|
1195
|
-
/** Produce a dedup signature for a PropertyDef. Label and priority are excluded because
|
|
1196
|
-
* they are per-PropertyRef overrides, not part of the structural definition.
|
|
1197
|
-
* Uses SIDs (not lowercase strings) for name/description so that case-preserving names
|
|
1198
|
-
* stay distinct - matching the C++ writer's dedup behavior. */
|
|
1199
|
-
_propDefSignature(def) {
|
|
1200
|
-
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}`;
|
|
1201
|
-
}
|
|
1202
|
-
}
|
|
1203
|
-
exports.SchemaViewBuilder = SchemaViewBuilder;
|
|
1204
1038
|
//# sourceMappingURL=SchemaView.js.map
|