@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.
Files changed (196) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/lib/cjs/Constants.js.map +1 -1
  3. package/lib/cjs/DelayedPromise.js.map +1 -1
  4. package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
  5. package/lib/cjs/Deserialization/Helper.js.map +1 -1
  6. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  7. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  8. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
  9. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  10. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  11. package/lib/cjs/ECName.js.map +1 -1
  12. package/lib/cjs/ECObjects.js.map +1 -1
  13. package/lib/cjs/Exception.js.map +1 -1
  14. package/lib/cjs/Formatting/FormatSetFormatsProvider.js.map +1 -1
  15. package/lib/cjs/Formatting/SchemaFormatsProvider.js.map +1 -1
  16. package/lib/cjs/IncrementalLoading/ClassParsers.js.map +1 -1
  17. package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
  18. package/lib/cjs/IncrementalLoading/FullSchemaQueries.js +466 -466
  19. package/lib/cjs/IncrementalLoading/FullSchemaQueries.js.map +1 -1
  20. package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
  21. package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
  22. package/lib/cjs/IncrementalLoading/SchemaItemParsers.js.map +1 -1
  23. package/lib/cjs/IncrementalLoading/SchemaItemQueries.js +235 -235
  24. package/lib/cjs/IncrementalLoading/SchemaItemQueries.js.map +1 -1
  25. package/lib/cjs/IncrementalLoading/SchemaParser.js.map +1 -1
  26. package/lib/cjs/IncrementalLoading/SchemaStubQueries.js +309 -309
  27. package/lib/cjs/IncrementalLoading/SchemaStubQueries.js.map +1 -1
  28. package/lib/cjs/Interfaces.js.map +1 -1
  29. package/lib/cjs/Localization/LocalizationProvider.js.map +1 -1
  30. package/lib/cjs/Localization/LocalizationTypes.js.map +1 -1
  31. package/lib/cjs/Localization/SchemaLocalization.d.ts +1 -1
  32. package/lib/cjs/Localization/SchemaLocalization.d.ts.map +1 -1
  33. package/lib/cjs/Localization/SchemaLocalization.js.map +1 -1
  34. package/lib/cjs/Metadata/Class.js.map +1 -1
  35. package/lib/cjs/Metadata/Constant.js.map +1 -1
  36. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  37. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  38. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  39. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  40. package/lib/cjs/Metadata/Format.js.map +1 -1
  41. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
  42. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  43. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  44. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  45. package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
  46. package/lib/cjs/Metadata/Property.js.map +1 -1
  47. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  48. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  49. package/lib/cjs/Metadata/Schema.js.map +1 -1
  50. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  51. package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
  52. package/lib/cjs/PropertyTypes.js.map +1 -1
  53. package/lib/cjs/SchemaJsonLocater.js.map +1 -1
  54. package/lib/cjs/SchemaKey.js.map +1 -1
  55. package/lib/cjs/SchemaLoader.js.map +1 -1
  56. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
  57. package/lib/cjs/SchemaView/SchemaManifest.d.ts +81 -0
  58. package/lib/cjs/SchemaView/SchemaManifest.d.ts.map +1 -0
  59. package/lib/cjs/SchemaView/SchemaManifest.js +131 -0
  60. package/lib/cjs/SchemaView/SchemaManifest.js.map +1 -0
  61. package/lib/cjs/{SchemaView.d.ts → SchemaView/SchemaView.d.ts} +23 -90
  62. package/lib/cjs/SchemaView/SchemaView.d.ts.map +1 -0
  63. package/lib/cjs/{SchemaView.js → SchemaView/SchemaView.js} +32 -198
  64. package/lib/cjs/SchemaView/SchemaView.js.map +1 -0
  65. package/lib/cjs/SchemaView/SchemaViewBinaryReader.d.ts +37 -0
  66. package/lib/cjs/SchemaView/SchemaViewBinaryReader.d.ts.map +1 -0
  67. package/lib/cjs/{SchemaViewBinaryReader.js → SchemaView/SchemaViewBinaryReader.js} +84 -43
  68. package/lib/cjs/SchemaView/SchemaViewBinaryReader.js.map +1 -0
  69. package/lib/cjs/SchemaView/SchemaViewBuilder.d.ts +116 -0
  70. package/lib/cjs/SchemaView/SchemaViewBuilder.d.ts.map +1 -0
  71. package/lib/cjs/SchemaView/SchemaViewBuilder.js +230 -0
  72. package/lib/cjs/SchemaView/SchemaViewBuilder.js.map +1 -0
  73. package/lib/cjs/{SchemaViewInterfaces.d.ts → SchemaView/SchemaViewInterfaces.d.ts} +1 -1
  74. package/lib/cjs/SchemaView/SchemaViewInterfaces.d.ts.map +1 -0
  75. package/lib/cjs/SchemaView/SchemaViewInterfaces.js.map +1 -0
  76. package/lib/cjs/SchemaView/SchemaViewManager.d.ts +114 -0
  77. package/lib/cjs/SchemaView/SchemaViewManager.d.ts.map +1 -0
  78. package/lib/cjs/SchemaView/SchemaViewManager.js +184 -0
  79. package/lib/cjs/SchemaView/SchemaViewManager.js.map +1 -0
  80. package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
  81. package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
  82. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  83. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  84. package/lib/cjs/ecschema-metadata.d.ts +6 -3
  85. package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
  86. package/lib/cjs/ecschema-metadata.js +6 -3
  87. package/lib/cjs/ecschema-metadata.js.map +1 -1
  88. package/lib/cjs/utils/ECClassHierarchy.js.map +1 -1
  89. package/lib/cjs/utils/SchemaGraph.js.map +1 -1
  90. package/lib/cjs/utils/SchemaLoadingController.js.map +1 -1
  91. package/lib/esm/Constants.js.map +1 -1
  92. package/lib/esm/DelayedPromise.js.map +1 -1
  93. package/lib/esm/Deserialization/AbstractParser.js.map +1 -1
  94. package/lib/esm/Deserialization/Helper.js.map +1 -1
  95. package/lib/esm/Deserialization/JsonParser.js.map +1 -1
  96. package/lib/esm/Deserialization/JsonProps.js.map +1 -1
  97. package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
  98. package/lib/esm/Deserialization/XmlParser.js.map +1 -1
  99. package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
  100. package/lib/esm/ECName.js.map +1 -1
  101. package/lib/esm/ECObjects.js.map +1 -1
  102. package/lib/esm/Exception.js.map +1 -1
  103. package/lib/esm/Formatting/FormatSetFormatsProvider.js.map +1 -1
  104. package/lib/esm/Formatting/SchemaFormatsProvider.js.map +1 -1
  105. package/lib/esm/IncrementalLoading/ClassParsers.js.map +1 -1
  106. package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
  107. package/lib/esm/IncrementalLoading/FullSchemaQueries.js +466 -466
  108. package/lib/esm/IncrementalLoading/FullSchemaQueries.js.map +1 -1
  109. package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
  110. package/lib/esm/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
  111. package/lib/esm/IncrementalLoading/SchemaItemParsers.js.map +1 -1
  112. package/lib/esm/IncrementalLoading/SchemaItemQueries.js +235 -235
  113. package/lib/esm/IncrementalLoading/SchemaItemQueries.js.map +1 -1
  114. package/lib/esm/IncrementalLoading/SchemaParser.js.map +1 -1
  115. package/lib/esm/IncrementalLoading/SchemaStubQueries.js +309 -309
  116. package/lib/esm/IncrementalLoading/SchemaStubQueries.js.map +1 -1
  117. package/lib/esm/Interfaces.js.map +1 -1
  118. package/lib/esm/Localization/LocalizationProvider.js.map +1 -1
  119. package/lib/esm/Localization/LocalizationTypes.js.map +1 -1
  120. package/lib/esm/Localization/SchemaLocalization.d.ts +1 -1
  121. package/lib/esm/Localization/SchemaLocalization.d.ts.map +1 -1
  122. package/lib/esm/Localization/SchemaLocalization.js.map +1 -1
  123. package/lib/esm/Metadata/Class.js.map +1 -1
  124. package/lib/esm/Metadata/Constant.js.map +1 -1
  125. package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
  126. package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
  127. package/lib/esm/Metadata/EntityClass.js.map +1 -1
  128. package/lib/esm/Metadata/Enumeration.js.map +1 -1
  129. package/lib/esm/Metadata/Format.js.map +1 -1
  130. package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
  131. package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
  132. package/lib/esm/Metadata/Mixin.js.map +1 -1
  133. package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
  134. package/lib/esm/Metadata/Phenomenon.js.map +1 -1
  135. package/lib/esm/Metadata/Property.js.map +1 -1
  136. package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
  137. package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
  138. package/lib/esm/Metadata/Schema.js.map +1 -1
  139. package/lib/esm/Metadata/SchemaItem.js.map +1 -1
  140. package/lib/esm/Metadata/UnitSystem.js.map +1 -1
  141. package/lib/esm/PropertyTypes.js.map +1 -1
  142. package/lib/esm/SchemaJsonLocater.js.map +1 -1
  143. package/lib/esm/SchemaKey.js.map +1 -1
  144. package/lib/esm/SchemaLoader.js.map +1 -1
  145. package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
  146. package/lib/esm/SchemaView/SchemaManifest.d.ts +81 -0
  147. package/lib/esm/SchemaView/SchemaManifest.d.ts.map +1 -0
  148. package/lib/esm/SchemaView/SchemaManifest.js +127 -0
  149. package/lib/esm/SchemaView/SchemaManifest.js.map +1 -0
  150. package/lib/esm/{SchemaView.d.ts → SchemaView/SchemaView.d.ts} +23 -90
  151. package/lib/esm/SchemaView/SchemaView.d.ts.map +1 -0
  152. package/lib/esm/{SchemaView.js → SchemaView/SchemaView.js} +32 -197
  153. package/lib/esm/SchemaView/SchemaView.js.map +1 -0
  154. package/lib/esm/SchemaView/SchemaViewBinaryReader.d.ts +37 -0
  155. package/lib/esm/SchemaView/SchemaViewBinaryReader.d.ts.map +1 -0
  156. package/lib/esm/{SchemaViewBinaryReader.js → SchemaView/SchemaViewBinaryReader.js} +82 -43
  157. package/lib/esm/SchemaView/SchemaViewBinaryReader.js.map +1 -0
  158. package/lib/esm/SchemaView/SchemaViewBuilder.d.ts +116 -0
  159. package/lib/esm/SchemaView/SchemaViewBuilder.d.ts.map +1 -0
  160. package/lib/esm/SchemaView/SchemaViewBuilder.js +226 -0
  161. package/lib/esm/SchemaView/SchemaViewBuilder.js.map +1 -0
  162. package/lib/esm/{SchemaViewInterfaces.d.ts → SchemaView/SchemaViewInterfaces.d.ts} +1 -1
  163. package/lib/esm/SchemaView/SchemaViewInterfaces.d.ts.map +1 -0
  164. package/lib/esm/SchemaView/SchemaViewInterfaces.js.map +1 -0
  165. package/lib/esm/SchemaView/SchemaViewManager.d.ts +114 -0
  166. package/lib/esm/SchemaView/SchemaViewManager.d.ts.map +1 -0
  167. package/lib/esm/SchemaView/SchemaViewManager.js +180 -0
  168. package/lib/esm/SchemaView/SchemaViewManager.js.map +1 -0
  169. package/lib/esm/UnitConversion/UnitConverter.js.map +1 -1
  170. package/lib/esm/UnitConversion/UnitTree.js.map +1 -1
  171. package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
  172. package/lib/esm/Validation/SchemaWalker.js.map +1 -1
  173. package/lib/esm/ecschema-metadata.d.ts +6 -3
  174. package/lib/esm/ecschema-metadata.d.ts.map +1 -1
  175. package/lib/esm/ecschema-metadata.js +6 -3
  176. package/lib/esm/ecschema-metadata.js.map +1 -1
  177. package/lib/esm/utils/ECClassHierarchy.js.map +1 -1
  178. package/lib/esm/utils/SchemaGraph.js.map +1 -1
  179. package/lib/esm/utils/SchemaLoadingController.js.map +1 -1
  180. package/package.json +8 -8
  181. package/lib/cjs/SchemaView.d.ts.map +0 -1
  182. package/lib/cjs/SchemaView.js.map +0 -1
  183. package/lib/cjs/SchemaViewBinaryReader.d.ts +0 -16
  184. package/lib/cjs/SchemaViewBinaryReader.d.ts.map +0 -1
  185. package/lib/cjs/SchemaViewBinaryReader.js.map +0 -1
  186. package/lib/cjs/SchemaViewInterfaces.d.ts.map +0 -1
  187. package/lib/cjs/SchemaViewInterfaces.js.map +0 -1
  188. package/lib/esm/SchemaView.d.ts.map +0 -1
  189. package/lib/esm/SchemaView.js.map +0 -1
  190. package/lib/esm/SchemaViewBinaryReader.d.ts +0 -16
  191. package/lib/esm/SchemaViewBinaryReader.d.ts.map +0 -1
  192. package/lib/esm/SchemaViewBinaryReader.js.map +0 -1
  193. package/lib/esm/SchemaViewInterfaces.d.ts.map +0 -1
  194. package/lib/esm/SchemaViewInterfaces.js.map +0 -1
  195. /package/lib/cjs/{SchemaViewInterfaces.js → SchemaView/SchemaViewInterfaces.js} +0 -0
  196. /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 { StrengthDirection, StrengthType } from "./ECObjects";
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
- /** SHA3-256 content hash of the ec_ schema tables at the time this view was built.
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 SHA3-256 content hash for cache invalidation.
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
- /** Build from a pre-populated builder (used by the binary parser).
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 fromBuilder(builder: SchemaViewBuilder, schemaToken?: string): SchemaView;
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
- /** SHA3-256 content hash of the ec_ schema tables at the time this view was built.
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 SHA3-256 content hash for cache invalidation.
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
- /** Build from a pre-populated builder (used by the binary parser).
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 fromBuilder(builder, schemaToken) {
114
- return builder.build(schemaToken);
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