@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.
Files changed (196) hide show
  1. package/CHANGELOG.md +6 -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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"}
@@ -7,7 +7,7 @@
7
7
  * @module Schema
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.SchemaViewBuilder = exports.SchemaView = void 0;
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
- /** SHA3-256 content hash of the ec_ schema tables at the time this view was built.
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 SHA3-256 content hash for cache invalidation.
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
- /** Build from a pre-populated builder (used by the binary parser).
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 fromBuilder(builder, schemaToken) {
117
- return builder.build(schemaToken);
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