@itwin/core-backend 5.1.0-dev.9 → 5.2.0-dev.2
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 +117 -1
- package/lib/cjs/BackendHubAccess.d.ts +1 -1
- package/lib/cjs/BackendHubAccess.js +1 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
- package/lib/cjs/BisCoreSchema.js +4 -2
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts +10 -2
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +16 -0
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.d.ts +4 -4
- package/lib/cjs/Category.js +4 -4
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts +67 -8
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +248 -33
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +9 -1
- package/lib/cjs/ClassRegistry.d.ts.map +1 -1
- package/lib/cjs/ClassRegistry.js +9 -1
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.js +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +1 -1
- package/lib/cjs/CodeSpecs.js +1 -1
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +4 -4
- package/lib/cjs/DisplayStyle.js +3 -3
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +4 -4
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +4 -4
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts +15 -6
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +19 -4
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.d.ts +54 -51
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +67 -52
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +8 -8
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +8 -8
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/Entity.d.ts +10 -7
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +35 -13
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/ExportGraphics.d.ts +54 -8
- package/lib/cjs/ExportGraphics.d.ts.map +1 -1
- package/lib/cjs/ExportGraphics.js +158 -59
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.d.ts +6 -2
- package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
- package/lib/cjs/GeographicCRSServices.js +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +37 -26
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +124 -47
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +2 -3
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +2 -3
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.d.ts +36 -0
- package/lib/cjs/IModelIncrementalSchemaLocater.d.ts.map +1 -0
- package/lib/cjs/IModelIncrementalSchemaLocater.js +69 -0
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -0
- package/lib/cjs/LocalHub.d.ts.map +1 -1
- package/lib/cjs/LocalHub.js +6 -4
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/Material.d.ts +4 -3
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +5 -5
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +22 -22
- package/lib/cjs/Model.js +22 -22
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/Relationship.d.ts +3 -0
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +15 -0
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/SQLiteDb.d.ts +1 -1
- package/lib/cjs/SQLiteDb.js +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.d.ts +25 -0
- package/lib/cjs/Schema.d.ts.map +1 -1
- package/lib/cjs/Schema.js +25 -0
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SqliteStatement.d.ts +1 -1
- package/lib/cjs/SqliteStatement.d.ts.map +1 -1
- package/lib/cjs/SqliteStatement.js +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/Texture.d.ts +1 -1
- package/lib/cjs/Texture.js +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +4 -4
- package/lib/cjs/TxnManager.js +1 -1
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +40 -14
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +42 -14
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +110 -0
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -0
- package/lib/cjs/annotations/FrameGeometry.d.ts +51 -0
- package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/FrameGeometry.js +249 -0
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
- package/lib/cjs/annotations/LeaderGeometry.d.ts +53 -0
- package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/LeaderGeometry.js +184 -0
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -0
- package/lib/cjs/annotations/TextAnnotationElement.d.ts +204 -0
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/cjs/annotations/TextAnnotationElement.js +411 -0
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +33 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js +137 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
- package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
- package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
- package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +174 -49
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
- package/lib/cjs/core-backend.d.ts +7 -3
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +27 -6
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.d.ts +23 -0
- package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js +167 -3
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +1 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +2 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.d.ts +22 -0
- package/lib/cjs/internal/annotations/fields.d.ts.map +1 -0
- package/lib/cjs/internal/annotations/fields.js +237 -0
- package/lib/cjs/internal/annotations/fields.js.map +1 -0
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +0 -1
- package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/esm/BackendHubAccess.d.ts +1 -1
- package/lib/esm/BackendHubAccess.js +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BisCoreSchema.d.ts.map +1 -1
- package/lib/esm/BisCoreSchema.js +4 -2
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BriefcaseManager.d.ts +10 -2
- package/lib/esm/BriefcaseManager.d.ts.map +1 -1
- package/lib/esm/BriefcaseManager.js +17 -1
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/Category.d.ts +4 -4
- package/lib/esm/Category.js +4 -4
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts +67 -8
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +248 -33
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ClassRegistry.d.ts +9 -1
- package/lib/esm/ClassRegistry.d.ts.map +1 -1
- package/lib/esm/ClassRegistry.js +9 -1
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.js +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +1 -1
- package/lib/esm/CodeSpecs.js +1 -1
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +4 -4
- package/lib/esm/DisplayStyle.js +3 -3
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.d.ts +4 -4
- package/lib/esm/ECDb.d.ts.map +1 -1
- package/lib/esm/ECDb.js +4 -4
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSqlStatement.d.ts +15 -6
- package/lib/esm/ECSqlStatement.d.ts.map +1 -1
- package/lib/esm/ECSqlStatement.js +19 -4
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/Element.d.ts +54 -51
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +67 -52
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +8 -8
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +8 -8
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/Entity.d.ts +10 -7
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +36 -14
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/ExportGraphics.d.ts +54 -8
- package/lib/esm/ExportGraphics.d.ts.map +1 -1
- package/lib/esm/ExportGraphics.js +156 -58
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/GeographicCRSServices.d.ts +6 -2
- package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
- package/lib/esm/GeographicCRSServices.js +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +37 -26
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +128 -51
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.d.ts +1 -1
- package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/esm/IModelElementCloneContext.js +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +2 -3
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +2 -3
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.d.ts +36 -0
- package/lib/esm/IModelIncrementalSchemaLocater.d.ts.map +1 -0
- package/lib/esm/IModelIncrementalSchemaLocater.js +65 -0
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -0
- package/lib/esm/LocalHub.d.ts.map +1 -1
- package/lib/esm/LocalHub.js +6 -4
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/Material.d.ts +4 -3
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +5 -5
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +22 -22
- package/lib/esm/Model.js +22 -22
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/Relationship.d.ts +3 -0
- package/lib/esm/Relationship.d.ts.map +1 -1
- package/lib/esm/Relationship.js +15 -0
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/SQLiteDb.d.ts +1 -1
- package/lib/esm/SQLiteDb.js +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.d.ts +25 -0
- package/lib/esm/Schema.d.ts.map +1 -1
- package/lib/esm/Schema.js +25 -0
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SqliteStatement.d.ts +1 -1
- package/lib/esm/SqliteStatement.d.ts.map +1 -1
- package/lib/esm/SqliteStatement.js +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/Texture.d.ts +1 -1
- package/lib/esm/Texture.js +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +4 -4
- package/lib/esm/TxnManager.js +1 -1
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +40 -14
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +42 -14
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js +105 -0
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -0
- package/lib/esm/annotations/FrameGeometry.d.ts +51 -0
- package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/FrameGeometry.js +244 -0
- package/lib/esm/annotations/FrameGeometry.js.map +1 -0
- package/lib/esm/annotations/LeaderGeometry.d.ts +53 -0
- package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/LeaderGeometry.js +179 -0
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -0
- package/lib/esm/annotations/TextAnnotationElement.d.ts +204 -0
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/esm/annotations/TextAnnotationElement.js +405 -0
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts +33 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js +134 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
- package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
- package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
- package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +172 -48
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
- package/lib/esm/core-backend.d.ts +7 -3
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +27 -3
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.d.ts +23 -0
- package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js +165 -2
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +1 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +1 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/annotations/fields.d.ts +22 -0
- package/lib/esm/internal/annotations/fields.d.ts.map +1 -0
- package/lib/esm/internal/annotations/fields.js +231 -0
- package/lib/esm/internal/annotations/fields.js.map +1 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.d.ts +15 -0
- package/lib/esm/test/AnnotationTestUtils.d.ts.map +1 -0
- package/lib/esm/test/AnnotationTestUtils.js +41 -0
- package/lib/esm/test/AnnotationTestUtils.js.map +1 -0
- package/lib/esm/test/ElementLRUCache.test.js +224 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
- package/lib/esm/test/IModelTestUtils.js +1 -0
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/TestUtils.d.ts +1 -1
- package/lib/esm/test/TestUtils.d.ts.map +1 -1
- package/lib/esm/test/TestUtils.js +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.d.ts +2 -0
- package/lib/esm/test/annotations/Fields.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/Fields.test.js +576 -0
- package/lib/esm/test/annotations/Fields.test.js.map +1 -0
- package/lib/esm/test/annotations/FrameGeometry.test.d.ts +2 -0
- package/lib/esm/test/annotations/FrameGeometry.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/FrameGeometry.test.js +86 -0
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -0
- package/lib/esm/test/annotations/LeaderGeometry.test.d.ts +2 -0
- package/lib/esm/test/annotations/LeaderGeometry.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/LeaderGeometry.test.js +256 -0
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -0
- package/lib/esm/test/annotations/TextAnnotation.test.js +269 -1047
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
- package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/TextBlock.test.js +1199 -0
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts +60 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts.map +1 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js +69 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts +1442 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts.map +1 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js +817 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +164 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +22 -32
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +29 -8
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +0 -55
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +192 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts +2 -0
- package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +86 -0
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -0
- package/lib/esm/test/imodel/IModel.test.js +313 -5
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts +2 -0
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js +343 -0
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts +2 -0
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +207 -0
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts +11 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js +36 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +17 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +116 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts +9 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js +20 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -0
- package/lib/esm/test/misc/GeoServices.test.js +36 -10
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +104 -2
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +547 -136
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +53 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js +49 -1
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelLimits.test.d.ts +2 -0
- package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +24 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +19 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/workspace/Workspace.d.ts +0 -1
- package/lib/esm/workspace/Workspace.d.ts.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/package.json +22 -16
- package/lib/cjs/TextAnnotationElement.d.ts +0 -54
- package/lib/cjs/TextAnnotationElement.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationElement.js +0 -94
- package/lib/cjs/TextAnnotationElement.js.map +0 -1
- package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
- package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
- package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationLayout.js.map +0 -1
- package/lib/esm/TextAnnotationElement.d.ts +0 -54
- package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
- package/lib/esm/TextAnnotationElement.js +0 -89
- package/lib/esm/TextAnnotationElement.js.map +0 -1
- package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
- package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
- package/lib/esm/TextAnnotationGeometry.js.map +0 -1
- package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
- package/lib/esm/TextAnnotationLayout.js.map +0 -1
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module ECDb
|
|
7
7
|
*/
|
|
8
|
-
import { DbResult } from "@itwin/core-bentley";
|
|
8
|
+
import { DbResult, Guid } from "@itwin/core-bentley";
|
|
9
|
+
import { Base64EncodedString } from "@itwin/core-common";
|
|
10
|
+
import { ECDb } from "./ECDb";
|
|
11
|
+
import { _nativeDb } from "./internal/Symbols";
|
|
9
12
|
class ECDbMap {
|
|
10
13
|
db;
|
|
11
14
|
_cachedClassMaps = new Map();
|
|
@@ -318,6 +321,199 @@ var DateTime;
|
|
|
318
321
|
}
|
|
319
322
|
DateTime.fromJulianDay = fromJulianDay;
|
|
320
323
|
})(DateTime || (DateTime = {}));
|
|
324
|
+
/** @beta */
|
|
325
|
+
export var ECChangeUnifierCache;
|
|
326
|
+
(function (ECChangeUnifierCache) {
|
|
327
|
+
/**
|
|
328
|
+
* Creates and returns a new in-memory cache for EC change unification.
|
|
329
|
+
* @note This cache is fast but recommended for small to medium size changesets. As it store changes in memory using a hash map, it may run out of memory for larger changesets.
|
|
330
|
+
* @returns {ECChangeUnifierCache} An instance of cache that store changes in memory using a hash map.
|
|
331
|
+
*/
|
|
332
|
+
function createInMemoryCache() {
|
|
333
|
+
return new InMemoryInstanceCache();
|
|
334
|
+
}
|
|
335
|
+
ECChangeUnifierCache.createInMemoryCache = createInMemoryCache;
|
|
336
|
+
/**
|
|
337
|
+
* Creates an ECChangeUnifierCache that is backed by a database.
|
|
338
|
+
* @note This cache is suitable for larger changesets and uses SQLite to store changes. It is slower than the in-memory cache but can handle larger datasets without running out of memory.
|
|
339
|
+
* @param db - The database instance to use for caching.
|
|
340
|
+
* @param bufferedReadInstanceSizeInBytes - The size in bytes for buffered read instances. Defaults to 10 MB.
|
|
341
|
+
* @returns An instance of ECChangeUnifierCache backed by SQLite temp db.
|
|
342
|
+
*/
|
|
343
|
+
function createSqliteBackedCache(db, bufferedReadInstanceSizeInBytes = 1024 * 1024 * 10) {
|
|
344
|
+
return new SqliteBackedInstanceCache(db, bufferedReadInstanceSizeInBytes);
|
|
345
|
+
}
|
|
346
|
+
ECChangeUnifierCache.createSqliteBackedCache = createSqliteBackedCache;
|
|
347
|
+
})(ECChangeUnifierCache || (ECChangeUnifierCache = {}));
|
|
348
|
+
/**
|
|
349
|
+
* In-memory cache for storing changed EC instances.
|
|
350
|
+
*/
|
|
351
|
+
class InMemoryInstanceCache {
|
|
352
|
+
_cache = new Map();
|
|
353
|
+
/**
|
|
354
|
+
* Retrieves the changed EC instance associated with the specified key.
|
|
355
|
+
* @param key - The key used to retrieve the instance.
|
|
356
|
+
* @returns The changed EC instance, or undefined if not found.
|
|
357
|
+
*/
|
|
358
|
+
get(key) {
|
|
359
|
+
return this._cache.get(key);
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Sets the changed EC instance associated with the specified key.
|
|
363
|
+
* @param key - The key used to store the instance.
|
|
364
|
+
* @param value - The changed EC instance to be stored.
|
|
365
|
+
*/
|
|
366
|
+
set(key, value) {
|
|
367
|
+
const meta = value.$meta;
|
|
368
|
+
// Remove undefined keys
|
|
369
|
+
if (meta) {
|
|
370
|
+
Object.keys(meta).forEach((k) => meta[k] === undefined && delete meta[k]);
|
|
371
|
+
}
|
|
372
|
+
this._cache.set(key, value);
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Returns an iterator over all the changed EC instances in the cache.
|
|
376
|
+
* @returns An iterator over all the changed EC instances.
|
|
377
|
+
*/
|
|
378
|
+
*all() {
|
|
379
|
+
for (const key of Array.from(this._cache.keys()).sort()) {
|
|
380
|
+
const instance = this._cache.get(key);
|
|
381
|
+
if (instance) {
|
|
382
|
+
yield instance;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Returns the number of changed EC instances in the cache.
|
|
388
|
+
* @returns The number of changed EC instances.
|
|
389
|
+
*/
|
|
390
|
+
count() {
|
|
391
|
+
return this._cache.size;
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Disposes the cache.
|
|
395
|
+
*/
|
|
396
|
+
[Symbol.dispose]() {
|
|
397
|
+
// Implementation details
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Represents a cache for unifying EC changes in a SQLite-backed instance cache.
|
|
402
|
+
*/
|
|
403
|
+
class SqliteBackedInstanceCache {
|
|
404
|
+
_db;
|
|
405
|
+
bufferedReadInstanceSizeInBytes;
|
|
406
|
+
_cacheTable = `[temp].[${Guid.createValue()}]`;
|
|
407
|
+
static defaultBufferSize = 1024 * 1024 * 10; // 10MB
|
|
408
|
+
/**
|
|
409
|
+
* Creates an instance of SqliteBackedInstanceCache.
|
|
410
|
+
* @param _db The underlying database connection.
|
|
411
|
+
* @param bufferedReadInstanceSizeInBytes The size of read instance buffer defaults to 10Mb.
|
|
412
|
+
* @throws Error if bufferedReadInstanceSizeInBytes is less than or equal to 0.
|
|
413
|
+
*/
|
|
414
|
+
constructor(_db, bufferedReadInstanceSizeInBytes = SqliteBackedInstanceCache.defaultBufferSize) {
|
|
415
|
+
this._db = _db;
|
|
416
|
+
this.bufferedReadInstanceSizeInBytes = bufferedReadInstanceSizeInBytes;
|
|
417
|
+
if (bufferedReadInstanceSizeInBytes <= 0)
|
|
418
|
+
throw new Error("bufferedReadInstanceCount must be greater than 0");
|
|
419
|
+
this.createTempTable();
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Creates a temporary table in the database for caching instances.
|
|
423
|
+
* @throws Error if unable to create the temporary table.
|
|
424
|
+
*/
|
|
425
|
+
createTempTable() {
|
|
426
|
+
this._db.withSqliteStatement(`CREATE TABLE ${this._cacheTable} ([key] text primary key, [value] text)`, (stmt) => {
|
|
427
|
+
if (DbResult.BE_SQLITE_DONE !== stmt.step())
|
|
428
|
+
throw new Error("unable to create temp table");
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Drops the temporary table from the database.
|
|
433
|
+
* @throws Error if unable to drop the temporary table.
|
|
434
|
+
*/
|
|
435
|
+
dropTempTable() {
|
|
436
|
+
this._db.saveChanges();
|
|
437
|
+
if (this._db instanceof ECDb)
|
|
438
|
+
this._db.clearStatementCache();
|
|
439
|
+
else {
|
|
440
|
+
this._db.clearCaches();
|
|
441
|
+
this._db[_nativeDb].clearECDbCache();
|
|
442
|
+
}
|
|
443
|
+
this._db.withSqliteStatement(`DROP TABLE IF EXISTS ${this._cacheTable}`, (stmt) => {
|
|
444
|
+
if (DbResult.BE_SQLITE_DONE !== stmt.step())
|
|
445
|
+
throw new Error("unable to drop temp table");
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Retrieves the changed EC instance from the cache based on the specified key.
|
|
450
|
+
* @param key The key of the instance.
|
|
451
|
+
* @returns The changed EC instance if found, otherwise undefined.
|
|
452
|
+
*/
|
|
453
|
+
get(key) {
|
|
454
|
+
return this._db.withPreparedSqliteStatement(`SELECT [value] FROM ${this._cacheTable} WHERE [key]=?`, (stmt) => {
|
|
455
|
+
stmt.bindString(1, key);
|
|
456
|
+
if (stmt.step() === DbResult.BE_SQLITE_ROW) {
|
|
457
|
+
const out = JSON.parse(stmt.getValueString(0), Base64EncodedString.reviver);
|
|
458
|
+
return out;
|
|
459
|
+
}
|
|
460
|
+
return undefined;
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Sets the changed EC instance in the cache with the specified key.
|
|
465
|
+
* @param key The key of the instance.
|
|
466
|
+
* @param value The changed EC instance to be set.
|
|
467
|
+
*/
|
|
468
|
+
set(key, value) {
|
|
469
|
+
const shallowCopy = Object.assign({}, value);
|
|
470
|
+
this._db.withPreparedSqliteStatement(`INSERT INTO ${this._cacheTable} ([key], [value]) VALUES (?, ?) ON CONFLICT ([key]) DO UPDATE SET [value] = [excluded].[value]`, (stmt) => {
|
|
471
|
+
stmt.bindString(1, key);
|
|
472
|
+
stmt.bindString(2, JSON.stringify(shallowCopy, Base64EncodedString.replacer));
|
|
473
|
+
stmt.step();
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Returns an iterator for all the changed EC instances in the cache.
|
|
478
|
+
* @returns An iterator for all the changed EC instances.
|
|
479
|
+
*/
|
|
480
|
+
*all() {
|
|
481
|
+
const sql = `
|
|
482
|
+
SELECT JSON_GROUP_ARRAY (JSON([value]))
|
|
483
|
+
FROM (SELECT
|
|
484
|
+
[value],
|
|
485
|
+
SUM (LENGTH ([value])) OVER (ORDER BY [key] ROWS UNBOUNDED PRECEDING) / ${this.bufferedReadInstanceSizeInBytes} AS [bucket]
|
|
486
|
+
FROM ${this._cacheTable})
|
|
487
|
+
GROUP BY [bucket]`;
|
|
488
|
+
const stmt = this._db.prepareSqliteStatement(sql);
|
|
489
|
+
while (stmt.step() === DbResult.BE_SQLITE_ROW) {
|
|
490
|
+
const instanceBucket = JSON.parse(stmt.getValueString(0), Base64EncodedString.reviver);
|
|
491
|
+
for (const value of instanceBucket) {
|
|
492
|
+
yield value;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
stmt[Symbol.dispose]();
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Returns the number of instances in the cache.
|
|
499
|
+
* @returns The number of instances in the cache.
|
|
500
|
+
*/
|
|
501
|
+
count() {
|
|
502
|
+
return this._db.withPreparedSqliteStatement(`SELECT COUNT(*) FROM ${this._cacheTable}`, (stmt) => {
|
|
503
|
+
if (stmt.step() === DbResult.BE_SQLITE_ROW)
|
|
504
|
+
return stmt.getValue(0).getInteger();
|
|
505
|
+
return 0;
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Disposes the cache by dropping the temporary table.
|
|
510
|
+
*/
|
|
511
|
+
[Symbol.dispose]() {
|
|
512
|
+
if (this._db.isOpen) {
|
|
513
|
+
this.dropTempTable();
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
321
517
|
/**
|
|
322
518
|
* Combine partial changed instance into single instance.
|
|
323
519
|
* Partial changes is per table and a single instance can
|
|
@@ -325,15 +521,26 @@ var DateTime;
|
|
|
325
521
|
* @beta
|
|
326
522
|
*/
|
|
327
523
|
export class PartialECChangeUnifier {
|
|
328
|
-
|
|
524
|
+
_db;
|
|
525
|
+
_cache;
|
|
329
526
|
_readonly = false;
|
|
527
|
+
constructor(_db, _cache = new InMemoryInstanceCache()) {
|
|
528
|
+
this._db = _db;
|
|
529
|
+
this._cache = _cache;
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Dispose the instance.
|
|
533
|
+
*/
|
|
534
|
+
[Symbol.dispose]() {
|
|
535
|
+
this._cache[Symbol.dispose]();
|
|
536
|
+
}
|
|
330
537
|
/**
|
|
331
538
|
* Get root class id for a given class
|
|
332
539
|
* @param classId given class id
|
|
333
540
|
* @param db use to find root class
|
|
334
541
|
* @returns return root class id
|
|
335
542
|
*/
|
|
336
|
-
|
|
543
|
+
getRootClassId(classId) {
|
|
337
544
|
const sql = `
|
|
338
545
|
WITH
|
|
339
546
|
[base_class]([classId], [baseClassId], [Level]) AS(
|
|
@@ -356,7 +563,7 @@ export class PartialECChangeUnifier {
|
|
|
356
563
|
WHERE [cc].[Name] = 'IsMixIn'
|
|
357
564
|
AND [ss].[Name] = 'CoreCustomAttributes'))
|
|
358
565
|
ORDER BY [Level] DESC`;
|
|
359
|
-
return
|
|
566
|
+
return this._db.withSqliteStatement(sql, (stmt) => {
|
|
360
567
|
stmt.bindId(1, classId);
|
|
361
568
|
if (stmt.step() === DbResult.BE_SQLITE_ROW && !stmt.isValueNull(0)) {
|
|
362
569
|
return stmt.getValueString(0);
|
|
@@ -364,15 +571,30 @@ export class PartialECChangeUnifier {
|
|
|
364
571
|
return classId;
|
|
365
572
|
});
|
|
366
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* Checks if the given `rhsClassId` is an instance of the `lhsClassId`.
|
|
576
|
+
* @param rhsClassId The ID of the right-hand side class.
|
|
577
|
+
* @param lhsClassId The ID of the left-hand side class.
|
|
578
|
+
* @returns `true` if `rhsClassId` is an instance of `lhsClassId`, `false` otherwise.
|
|
579
|
+
*/
|
|
580
|
+
instanceOf(rhsClassId, lhsClassId) {
|
|
581
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
582
|
+
return this._db.withPreparedStatement("SELECT ec_instanceof(?,?)", (stmt) => {
|
|
583
|
+
stmt.bindId(1, rhsClassId);
|
|
584
|
+
stmt.bindId(2, lhsClassId);
|
|
585
|
+
stmt.step();
|
|
586
|
+
return stmt.getValue(0).getInteger() === 1;
|
|
587
|
+
});
|
|
588
|
+
}
|
|
367
589
|
/**
|
|
368
590
|
* Combine partial instance with instance with same key if already exists.
|
|
369
591
|
* @param rhs partial instance
|
|
370
592
|
*/
|
|
371
|
-
combine(rhs
|
|
593
|
+
combine(rhs) {
|
|
372
594
|
if (!rhs.$meta) {
|
|
373
595
|
throw new Error("PartialECChange being combine must have '$meta' property");
|
|
374
596
|
}
|
|
375
|
-
const key =
|
|
597
|
+
const key = this.buildKey(rhs);
|
|
376
598
|
const lhs = this._cache.get(key);
|
|
377
599
|
if (lhs) {
|
|
378
600
|
const { $meta: _, ...restOfRhs } = rhs;
|
|
@@ -381,37 +603,39 @@ export class PartialECChangeUnifier {
|
|
|
381
603
|
lhs.$meta.tables = [...rhs.$meta?.tables, ...lhs.$meta?.tables];
|
|
382
604
|
lhs.$meta.changeIndexes = [...rhs.$meta?.changeIndexes, ...lhs.$meta?.changeIndexes];
|
|
383
605
|
// we preserve child class name & id when merging instance.
|
|
384
|
-
if (rhs.$meta.fallbackClassId && lhs.$meta.fallbackClassId &&
|
|
606
|
+
if (rhs.$meta.fallbackClassId && lhs.$meta.fallbackClassId && rhs.$meta.fallbackClassId !== lhs.$meta.fallbackClassId) {
|
|
385
607
|
const lhsClassId = lhs.$meta.fallbackClassId;
|
|
386
608
|
const rhsClassId = rhs.$meta.fallbackClassId;
|
|
387
|
-
|
|
388
|
-
const isRhsIsSubClassOfLhs = db.withPreparedStatement("SELECT ec_instanceof(?,?)", (stmt) => {
|
|
389
|
-
stmt.bindId(1, rhsClassId);
|
|
390
|
-
stmt.bindId(2, lhsClassId);
|
|
391
|
-
stmt.step();
|
|
392
|
-
return stmt.getValue(0).getInteger() === 1;
|
|
393
|
-
});
|
|
609
|
+
const isRhsIsSubClassOfLhs = this.instanceOf(rhsClassId, lhsClassId);
|
|
394
610
|
if (isRhsIsSubClassOfLhs) {
|
|
395
611
|
lhs.$meta.fallbackClassId = rhs.$meta.fallbackClassId;
|
|
396
612
|
lhs.$meta.classFullName = rhs.$meta.classFullName;
|
|
397
613
|
}
|
|
398
614
|
}
|
|
399
615
|
}
|
|
616
|
+
this._cache.set(key, lhs);
|
|
400
617
|
}
|
|
401
618
|
else {
|
|
402
619
|
this._cache.set(key, rhs);
|
|
403
620
|
}
|
|
404
621
|
}
|
|
622
|
+
/**
|
|
623
|
+
* Returns the number of instances in the cache.
|
|
624
|
+
* @returns The number of instances in the cache.
|
|
625
|
+
*/
|
|
626
|
+
getInstanceCount() {
|
|
627
|
+
return this._cache.count();
|
|
628
|
+
}
|
|
405
629
|
/**
|
|
406
630
|
* Build key from EC change.
|
|
407
631
|
* @param change EC change
|
|
408
632
|
* @returns key created from EC change.
|
|
409
633
|
*/
|
|
410
|
-
|
|
634
|
+
buildKey(change) {
|
|
411
635
|
let classId = change.ECClassId;
|
|
412
636
|
if (typeof classId === "undefined") {
|
|
413
|
-
if (
|
|
414
|
-
classId = this.getRootClassId(change.$meta.fallbackClassId
|
|
637
|
+
if (change.$meta?.fallbackClassId) {
|
|
638
|
+
classId = this.getRootClassId(change.$meta.fallbackClassId);
|
|
415
639
|
}
|
|
416
640
|
if (typeof classId === "undefined") {
|
|
417
641
|
throw new Error(`unable to resolve ECClassId to root class id.`);
|
|
@@ -434,32 +658,23 @@ export class PartialECChangeUnifier {
|
|
|
434
658
|
throw new Error("this instance is marked as readonly.");
|
|
435
659
|
}
|
|
436
660
|
if (adaptor.op === "Updated" && adaptor.inserted && adaptor.deleted) {
|
|
437
|
-
this.combine(adaptor.inserted
|
|
438
|
-
this.combine(adaptor.deleted
|
|
661
|
+
this.combine(adaptor.inserted);
|
|
662
|
+
this.combine(adaptor.deleted);
|
|
439
663
|
}
|
|
440
664
|
else if (adaptor.op === "Inserted" && adaptor.inserted) {
|
|
441
|
-
this.combine(adaptor.inserted
|
|
665
|
+
this.combine(adaptor.inserted);
|
|
442
666
|
}
|
|
443
667
|
else if (adaptor.op === "Deleted" && adaptor.deleted) {
|
|
444
|
-
this.combine(adaptor.deleted
|
|
668
|
+
this.combine(adaptor.deleted);
|
|
445
669
|
}
|
|
446
670
|
}
|
|
447
|
-
/**
|
|
448
|
-
* Delete $meta from all the instances.
|
|
449
|
-
*/
|
|
450
|
-
stripMetaData() {
|
|
451
|
-
for (const inst of this._cache.values()) {
|
|
452
|
-
if ("$meta" in inst) {
|
|
453
|
-
delete inst.$meta;
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
this._readonly = true;
|
|
457
|
-
}
|
|
458
671
|
/**
|
|
459
672
|
* Returns complete EC change instances.
|
|
460
673
|
* @beta
|
|
461
674
|
*/
|
|
462
|
-
get instances() {
|
|
675
|
+
get instances() {
|
|
676
|
+
return this._cache.all();
|
|
677
|
+
}
|
|
463
678
|
}
|
|
464
679
|
/**
|
|
465
680
|
* Transform sqlite change to ec change. EC change is partial change as
|