@itwin/core-backend 5.1.0-dev.0 → 5.1.0-dev.10
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 +21 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +37 -0
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +73 -0
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +242 -242
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +5 -5
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +5 -0
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +27 -0
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.d.ts +166 -10
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +510 -9
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +41 -1
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +58 -0
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.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/GeometrySummary.js +47 -47
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +21 -36
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +139 -77
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +13 -0
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +6 -0
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +1 -1
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/LockControl.js.map +1 -1
- package/lib/cjs/Material.d.ts +19 -0
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +29 -0
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +42 -6
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +93 -5
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/TextAnnotationLayout.js.map +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +1 -0
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +100 -0
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +208 -0
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js +3 -3
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
- package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.d.ts +28 -0
- package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -0
- package/lib/cjs/internal/ElementLRUCache.js +120 -0
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -0
- package/lib/cjs/internal/FontFileImpl.js.map +1 -1
- package/lib/cjs/internal/HubMock.js.map +1 -1
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.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/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +2 -2
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BackendLoggerCategory.js.map +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +37 -0
- package/lib/esm/Category.d.ts.map +1 -1
- package/lib/esm/Category.js +73 -0
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +2 -2
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +242 -242
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChannelControl.js.map +1 -1
- package/lib/esm/CheckpointManager.js.map +1 -1
- package/lib/esm/ClassRegistry.js +5 -5
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/CustomViewState3dCreator.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +5 -0
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +27 -0
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/Element.d.ts +166 -10
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +513 -12
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.d.ts +41 -1
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +58 -0
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/ExternalSource.js.map +1 -1
- package/lib/esm/FontFile.js.map +1 -1
- package/lib/esm/GeoCoordConfig.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/GeometrySummary.js +47 -47
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +21 -36
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +142 -80
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelDbFonts.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +13 -0
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +6 -0
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.js.map +1 -1
- package/lib/esm/LineStyle.js.map +1 -1
- package/lib/esm/LocalHub.js +1 -1
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/LocalhostIpcHost.js.map +1 -1
- package/lib/esm/LockControl.js.map +1 -1
- package/lib/esm/Material.d.ts +19 -0
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +30 -1
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +42 -6
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js +94 -6
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/NativeAppStorage.js.map +1 -1
- package/lib/esm/NativeHost.js.map +1 -1
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/PromiseMemoizer.js.map +1 -1
- package/lib/esm/PropertyStore.js.map +1 -1
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SchemaSync.js.map +1 -1
- package/lib/esm/SchemaUtils.js.map +1 -1
- package/lib/esm/SheetIndex.js.map +1 -1
- package/lib/esm/SqliteChangesetReader.js.map +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/TextAnnotationElement.js.map +1 -1
- package/lib/esm/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/TextAnnotationLayout.js.map +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +1 -0
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +100 -0
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +209 -1
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js +3 -3
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/FunctionalSchema.js.map +1 -1
- package/lib/esm/domains/GenericElements.js.map +1 -1
- package/lib/esm/domains/GenericSchema.js.map +1 -1
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/esm/internal/ChannelAdmin.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.d.ts +28 -0
- package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -0
- package/lib/esm/internal/ElementLRUCache.js +116 -0
- package/lib/esm/internal/ElementLRUCache.js.map +1 -0
- package/lib/esm/internal/FontFileImpl.js.map +1 -1
- package/lib/esm/internal/HubMock.js.map +1 -1
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/esm/internal/NativePlatform.js.map +1 -1
- package/lib/esm/internal/NoLocks.js.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.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/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/esm/rpc/multipart.js.map +1 -1
- package/lib/esm/rpc/tracing.js.map +1 -1
- package/lib/esm/rpc/web/logging.js.map +1 -1
- package/lib/esm/rpc/web/request.js.map +1 -1
- package/lib/esm/rpc/web/response.js.map +1 -1
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +2 -2
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AdvancedEqual.js.map +1 -1
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.d.ts +2 -0
- package/lib/esm/test/ElementLRUCache.test.d.ts.map +1 -0
- package/lib/esm/test/ElementLRUCache.test.js +212 -0
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -0
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
- package/lib/esm/test/IpcHost.test.js.map +1 -1
- package/lib/esm/test/KnownTestLocations.js.map +1 -1
- package/lib/esm/test/PrintElementTree.js.map +1 -1
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/RevisionUtility.js.map +1 -1
- package/lib/esm/test/SchemaUtils.test.js +25 -25
- package/lib/esm/test/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js.map +1 -1
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
- package/lib/esm/test/ecdb/CTE.test.js +88 -88
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +57 -57
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +7 -30
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
- package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +292 -292
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
- package/lib/esm/test/element/ElementAspect.test.js +22 -22
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
- package/lib/esm/test/element/NullStructArray.test.js +13 -13
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
- package/lib/esm/test/element/UrlLink.test.js.map +1 -1
- package/lib/esm/test/font/FontFile.test.js.map +1 -1
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
- package/lib/esm/test/imageData.js.map +1 -1
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +22 -11
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
- package/lib/esm/test/index.js.map +1 -1
- package/lib/esm/test/misc/DevTools.test.js.map +1 -1
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js +23 -9
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
- package/lib/esm/test/rpc/response.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +71 -71
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +28 -28
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
- package/lib/esm/test/standalone/Setting.test.js.map +1 -1
- package/lib/esm/test/standalone/Settings.test.js.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Texture.test.js.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/lib/esm/workspace/Settings.js.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +12 -12
package/lib/esm/IModelDb.js
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
import * as fs from "fs";
|
|
9
9
|
import { join } from "path";
|
|
10
10
|
import * as touch from "touch";
|
|
11
|
-
import { assert, BeEvent, BentleyStatus, ChangeSetStatus, DbChangeStage, DbConflictCause, DbConflictResolution, DbResult, Guid, Id64, IModelStatus, JsonUtils, Logger, LogLevel,
|
|
12
|
-
import { BriefcaseIdValue, Code, DomainOptions, ECJsNames, ECSqlReader, EntityMetaData, FontMap, IModel, IModelError, IModelNotFoundResponse, ProfileOptions, QueryRowFormat, SchemaState, ViewStoreRpc
|
|
11
|
+
import { assert, BeEvent, BentleyStatus, ChangeSetStatus, DbChangeStage, DbConflictCause, DbConflictResolution, DbResult, Guid, Id64, IModelStatus, JsonUtils, Logger, LogLevel, LRUMap, OpenMode } from "@itwin/core-bentley";
|
|
12
|
+
import { BriefcaseIdValue, Code, DomainOptions, ECJsNames, ECSqlReader, EntityMetaData, FontMap, IModel, IModelError, IModelNotFoundResponse, ProfileOptions, QueryRowFormat, SchemaState, ViewStoreRpc } from "@itwin/core-common";
|
|
13
13
|
import { Range2d, Range3d } from "@itwin/core-geometry";
|
|
14
14
|
import { BackendLoggerCategory } from "./BackendLoggerCategory";
|
|
15
15
|
import { BriefcaseManager } from "./BriefcaseManager";
|
|
@@ -44,9 +44,10 @@ import { SettingsImpl } from "./internal/workspace/SettingsImpl";
|
|
|
44
44
|
import { IModelNative } from "./internal/NativePlatform";
|
|
45
45
|
import { createNoOpLockControl } from "./internal/NoLocks";
|
|
46
46
|
import { createIModelDbFonts } from "./internal/IModelDbFontsImpl";
|
|
47
|
-
import { _close, _hubAccess, _nativeDb, _releaseAllLocks } from "./internal/Symbols";
|
|
47
|
+
import { _cache, _close, _hubAccess, _nativeDb, _releaseAllLocks } from "./internal/Symbols";
|
|
48
48
|
import { SchemaContext, SchemaJsonLocater } from "@itwin/ecschema-metadata";
|
|
49
49
|
import { SchemaMap } from "./Schema";
|
|
50
|
+
import { ElementLRUCache } from "./internal/ElementLRUCache";
|
|
50
51
|
// spell:ignore fontid fontmap
|
|
51
52
|
const loggerCategory = BackendLoggerCategory.IModelDb;
|
|
52
53
|
/** @internal */
|
|
@@ -576,6 +577,8 @@ export class IModelDb extends IModel {
|
|
|
576
577
|
this._jsClassMap = undefined;
|
|
577
578
|
this._schemaMap = undefined;
|
|
578
579
|
this._schemaContext = undefined;
|
|
580
|
+
this.elements[_cache].clear();
|
|
581
|
+
this.models[_cache].clear();
|
|
579
582
|
}
|
|
580
583
|
/** Update the project extents for this iModel.
|
|
581
584
|
* <p><em>Example:</em>
|
|
@@ -976,6 +979,24 @@ export class IModelDb extends IModel {
|
|
|
976
979
|
return ClassRegistry.getClass(classFullName, this);
|
|
977
980
|
}
|
|
978
981
|
}
|
|
982
|
+
/** Constructs a ResolveInstanceKeyArgs from given parameters
|
|
983
|
+
* @throws [[IModelError]] if the combination of supplied parameters is invalid.
|
|
984
|
+
* @internal
|
|
985
|
+
*/
|
|
986
|
+
getInstanceArgs(instanceId, baseClassName, federationGuid, code) {
|
|
987
|
+
if (instanceId && baseClassName) {
|
|
988
|
+
return { partialKey: { id: instanceId, baseClassName } };
|
|
989
|
+
}
|
|
990
|
+
else if (federationGuid) {
|
|
991
|
+
return { federationGuid };
|
|
992
|
+
}
|
|
993
|
+
else if (code) {
|
|
994
|
+
return { code };
|
|
995
|
+
}
|
|
996
|
+
else {
|
|
997
|
+
throw new IModelError(IModelStatus.InvalidId, "Either instanceId and baseClassName or federationGuid or code must be specified");
|
|
998
|
+
}
|
|
999
|
+
}
|
|
979
1000
|
/** Get metadata for a class. This method will load the metadata from the iModel into the cache as a side-effect, if necessary.
|
|
980
1001
|
* @throws [[IModelError]] if the metadata cannot be found nor loaded.
|
|
981
1002
|
* @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
|
|
@@ -1457,6 +1478,9 @@ function processSchemaWriteStatus(status) {
|
|
|
1457
1478
|
*/
|
|
1458
1479
|
class Models {
|
|
1459
1480
|
_iModel;
|
|
1481
|
+
_modelCacheSize = 10;
|
|
1482
|
+
/** @internal */
|
|
1483
|
+
[_cache] = new LRUMap(this._modelCacheSize);
|
|
1460
1484
|
/** @internal */
|
|
1461
1485
|
constructor(_iModel) {
|
|
1462
1486
|
this._iModel = _iModel;
|
|
@@ -1467,7 +1491,10 @@ function processSchemaWriteStatus(status) {
|
|
|
1467
1491
|
* @see tryGetModelProps
|
|
1468
1492
|
*/
|
|
1469
1493
|
getModelProps(id) {
|
|
1470
|
-
|
|
1494
|
+
const model = this.tryGetModelProps(id);
|
|
1495
|
+
if (undefined === model)
|
|
1496
|
+
throw new IModelError(IModelStatus.NotFound, `Model=${id}`);
|
|
1497
|
+
return model;
|
|
1471
1498
|
}
|
|
1472
1499
|
/** Get the ModelProps with the specified identifier.
|
|
1473
1500
|
* @param modelId The Model identifier.
|
|
@@ -1477,7 +1504,25 @@ function processSchemaWriteStatus(status) {
|
|
|
1477
1504
|
* @see getModelProps
|
|
1478
1505
|
*/
|
|
1479
1506
|
tryGetModelProps(id) {
|
|
1480
|
-
|
|
1507
|
+
try {
|
|
1508
|
+
if (IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
|
|
1509
|
+
return this._iModel[_nativeDb].getModel({ id });
|
|
1510
|
+
}
|
|
1511
|
+
const cachedMdl = this[_cache].get(id);
|
|
1512
|
+
if (cachedMdl) {
|
|
1513
|
+
return cachedMdl;
|
|
1514
|
+
}
|
|
1515
|
+
const options = { useJsNames: true };
|
|
1516
|
+
const instanceKey = this.resolveModelKey({ id });
|
|
1517
|
+
const rawInstance = this._iModel[_nativeDb].readInstance(instanceKey, options);
|
|
1518
|
+
const classDef = this._iModel.getJsClass(rawInstance.classFullName);
|
|
1519
|
+
const modelProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel });
|
|
1520
|
+
this[_cache].set(id, modelProps);
|
|
1521
|
+
return modelProps;
|
|
1522
|
+
}
|
|
1523
|
+
catch {
|
|
1524
|
+
return undefined;
|
|
1525
|
+
}
|
|
1481
1526
|
}
|
|
1482
1527
|
/** Query for the last modified time for a [[Model]].
|
|
1483
1528
|
* @param modelId The Id of the model.
|
|
@@ -1524,32 +1569,22 @@ function processSchemaWriteStatus(status) {
|
|
|
1524
1569
|
return model; // modelClass was not specified, cannot call instanceof to validate
|
|
1525
1570
|
return model instanceof modelClass ? model : undefined;
|
|
1526
1571
|
}
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
* @internal
|
|
1533
|
-
*/
|
|
1534
|
-
getModelJson(modelIdArg) {
|
|
1535
|
-
const modelJson = this.tryGetModelJson(modelIdArg);
|
|
1536
|
-
if (undefined === modelJson) {
|
|
1537
|
-
throw new IModelError(IModelStatus.NotFound, `Model=(id: ${modelIdArg.id}, code: ${modelIdArg.code})`);
|
|
1572
|
+
resolveModelKey(modelIdArg) {
|
|
1573
|
+
const baseClassName = "BisCore:Model";
|
|
1574
|
+
let args;
|
|
1575
|
+
if (modelIdArg.id) {
|
|
1576
|
+
args = { partialKey: { id: modelIdArg.id, baseClassName } };
|
|
1538
1577
|
}
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
* @see getModelJson
|
|
1545
|
-
*/
|
|
1546
|
-
tryGetModelJson(modelIdArg) {
|
|
1547
|
-
try {
|
|
1548
|
-
return this._iModel[_nativeDb].getModel(modelIdArg);
|
|
1578
|
+
else if (modelIdArg.code) {
|
|
1579
|
+
const modelId = this._iModel.elements.getElementProps({ code: modelIdArg.code }).id;
|
|
1580
|
+
if (!modelId)
|
|
1581
|
+
throw new IModelError(IModelStatus.NotFound, `Model not found with code: [spec:${modelIdArg.code.spec}, scope:${modelIdArg.code.scope}, value:${modelIdArg.code.value}])`);
|
|
1582
|
+
args = { partialKey: { id: modelId, baseClassName } };
|
|
1549
1583
|
}
|
|
1550
|
-
|
|
1551
|
-
|
|
1584
|
+
else {
|
|
1585
|
+
throw new IModelError(IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
|
|
1552
1586
|
}
|
|
1587
|
+
return this._iModel[_nativeDb].resolveInstanceKey(args);
|
|
1553
1588
|
}
|
|
1554
1589
|
/** Get the sub-model of the specified Element.
|
|
1555
1590
|
* See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
|
|
@@ -1602,6 +1637,8 @@ function processSchemaWriteStatus(status) {
|
|
|
1602
1637
|
*/
|
|
1603
1638
|
updateModel(props) {
|
|
1604
1639
|
try {
|
|
1640
|
+
if (props.id)
|
|
1641
|
+
this[_cache].delete(props.id);
|
|
1605
1642
|
this._iModel[_nativeDb].updateModel(props);
|
|
1606
1643
|
}
|
|
1607
1644
|
catch (err) {
|
|
@@ -1618,6 +1655,7 @@ function processSchemaWriteStatus(status) {
|
|
|
1618
1655
|
* @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
|
|
1619
1656
|
*/
|
|
1620
1657
|
updateGeometryGuid(modelId) {
|
|
1658
|
+
this._iModel.models[_cache].delete(modelId);
|
|
1621
1659
|
const error = this._iModel[_nativeDb].updateModelGeometryGuid(modelId);
|
|
1622
1660
|
if (error !== IModelStatus.Success)
|
|
1623
1661
|
throw new IModelError(error, `updating geometry guid for model ${modelId}`);
|
|
@@ -1629,6 +1667,7 @@ function processSchemaWriteStatus(status) {
|
|
|
1629
1667
|
deleteModel(ids) {
|
|
1630
1668
|
Id64.toIdSet(ids).forEach((id) => {
|
|
1631
1669
|
try {
|
|
1670
|
+
this[_cache].delete(id);
|
|
1632
1671
|
this._iModel[_nativeDb].deleteModel(id);
|
|
1633
1672
|
}
|
|
1634
1673
|
catch (err) {
|
|
@@ -1666,6 +1705,9 @@ function processSchemaWriteStatus(status) {
|
|
|
1666
1705
|
*/
|
|
1667
1706
|
class Elements {
|
|
1668
1707
|
_iModel;
|
|
1708
|
+
_elementCacheSize = 50;
|
|
1709
|
+
/** @internal */
|
|
1710
|
+
[_cache] = new ElementLRUCache(this._elementCacheSize);
|
|
1669
1711
|
/** @internal */
|
|
1670
1712
|
constructor(_iModel) {
|
|
1671
1713
|
this._iModel = _iModel;
|
|
@@ -1682,50 +1724,40 @@ function processSchemaWriteStatus(status) {
|
|
|
1682
1724
|
return !stmt.nextRow() ? undefined : stmt.getValueId(0);
|
|
1683
1725
|
}) : undefined;
|
|
1684
1726
|
}
|
|
1685
|
-
/** Read element data from the iModel as JSON
|
|
1686
|
-
* @param elementIdArg a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
|
|
1687
|
-
* @returns The JSON properties of the element.
|
|
1688
|
-
* @throws [[IModelError]] if the element is not found or cannot be loaded.
|
|
1689
|
-
* @see tryGetElementJson
|
|
1690
|
-
* @internal
|
|
1691
|
-
*/
|
|
1692
|
-
getElementJson(elementId) {
|
|
1693
|
-
const elementProps = this.tryGetElementJson(elementId);
|
|
1694
|
-
if (undefined === elementProps)
|
|
1695
|
-
throw new IModelError(IModelStatus.NotFound, `reading element={id: ${elementId.id} federationGuid: ${elementId.federationGuid}, code: ${elementId.code}}`);
|
|
1696
|
-
return elementProps;
|
|
1697
|
-
}
|
|
1698
|
-
/** Read element data from the iModel as JSON
|
|
1699
|
-
* @param loadProps - a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
|
|
1700
|
-
* @returns The JSON properties of the element or `undefined` if the element is not found.
|
|
1701
|
-
* @throws [[IModelError]] if the element exists, but cannot be loaded.
|
|
1702
|
-
* @see getElementJson
|
|
1703
|
-
*/
|
|
1704
|
-
tryGetElementJson(loadProps) {
|
|
1705
|
-
try {
|
|
1706
|
-
return this._iModel[_nativeDb].getElement(loadProps);
|
|
1707
|
-
}
|
|
1708
|
-
catch {
|
|
1709
|
-
return undefined;
|
|
1710
|
-
}
|
|
1711
|
-
}
|
|
1712
1727
|
/** Get properties of an Element by Id, FederationGuid, or Code
|
|
1713
1728
|
* @throws [[IModelError]] if the element is not found or cannot be loaded.
|
|
1714
1729
|
* @see tryGetElementProps
|
|
1715
1730
|
*/
|
|
1716
1731
|
getElementProps(props) {
|
|
1732
|
+
const elProp = this.tryGetElementProps(props);
|
|
1733
|
+
if (undefined === elProp)
|
|
1734
|
+
throw new IModelError(IModelStatus.NotFound, `element not found`);
|
|
1735
|
+
return elProp;
|
|
1736
|
+
}
|
|
1737
|
+
resolveElementKey(props) {
|
|
1738
|
+
const baseClassName = "BisCore:Element";
|
|
1739
|
+
let args;
|
|
1717
1740
|
if (typeof props === "string") {
|
|
1718
|
-
|
|
1741
|
+
args = Id64.isId64(props) ? { partialKey: { id: props, baseClassName } } : { federationGuid: props };
|
|
1719
1742
|
}
|
|
1720
1743
|
else if (props instanceof Code) {
|
|
1721
|
-
|
|
1744
|
+
args = { code: props };
|
|
1722
1745
|
}
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1746
|
+
else {
|
|
1747
|
+
if (props.id) {
|
|
1748
|
+
args = { partialKey: { id: props.id, baseClassName } };
|
|
1749
|
+
}
|
|
1750
|
+
else if (props.federationGuid) {
|
|
1751
|
+
args = { federationGuid: props.federationGuid };
|
|
1752
|
+
}
|
|
1753
|
+
else if (props.code) {
|
|
1754
|
+
args = { code: props.code };
|
|
1755
|
+
}
|
|
1756
|
+
else {
|
|
1757
|
+
throw new IModelError(IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
|
|
1758
|
+
}
|
|
1728
1759
|
}
|
|
1760
|
+
return this._iModel[_nativeDb].resolveInstanceKey(args);
|
|
1729
1761
|
}
|
|
1730
1762
|
/** Get properties of an Element by Id, FederationGuid, or Code
|
|
1731
1763
|
* @returns The properties of the element or `undefined` if the element is not found.
|
|
@@ -1733,14 +1765,32 @@ function processSchemaWriteStatus(status) {
|
|
|
1733
1765
|
* @note Useful for cases when an element may or may not exist and throwing an `Error` would be overkill.
|
|
1734
1766
|
* @see getElementProps
|
|
1735
1767
|
*/
|
|
1736
|
-
tryGetElementProps(
|
|
1737
|
-
if (typeof
|
|
1738
|
-
|
|
1768
|
+
tryGetElementProps(props) {
|
|
1769
|
+
if (typeof props === "string") {
|
|
1770
|
+
props = Id64.isId64(props) ? { id: props } : { federationGuid: props };
|
|
1739
1771
|
}
|
|
1740
|
-
else if (
|
|
1741
|
-
|
|
1772
|
+
else if (props instanceof Code) {
|
|
1773
|
+
props = { code: props };
|
|
1774
|
+
}
|
|
1775
|
+
try {
|
|
1776
|
+
if (IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
|
|
1777
|
+
return this._iModel[_nativeDb].getElement(props);
|
|
1778
|
+
}
|
|
1779
|
+
const cachedElm = this[_cache].get(props);
|
|
1780
|
+
if (cachedElm) {
|
|
1781
|
+
return cachedElm.elProps;
|
|
1782
|
+
}
|
|
1783
|
+
const options = { ...props, useJsNames: true };
|
|
1784
|
+
const instanceKey = this.resolveElementKey(props);
|
|
1785
|
+
const rawInstance = this._iModel[_nativeDb].readInstance(instanceKey, options);
|
|
1786
|
+
const classDef = this._iModel.getJsClass(rawInstance.classFullName);
|
|
1787
|
+
const elementProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel, options: { element: props } });
|
|
1788
|
+
this[_cache].set({ elProps: elementProps, loadOptions: props });
|
|
1789
|
+
return elementProps;
|
|
1790
|
+
}
|
|
1791
|
+
catch {
|
|
1792
|
+
return undefined;
|
|
1742
1793
|
}
|
|
1743
|
-
return this.tryGetElementJson(elementId);
|
|
1744
1794
|
}
|
|
1745
1795
|
/** Get an element by Id, FederationGuid, or Code
|
|
1746
1796
|
* @param elementId either the element's Id, Code, or FederationGuid, or an ElementLoadProps
|
|
@@ -1773,7 +1823,7 @@ function processSchemaWriteStatus(status) {
|
|
|
1773
1823
|
elementId = { code: elementId };
|
|
1774
1824
|
else
|
|
1775
1825
|
elementId.onlyBaseProperties = false; // we must load all properties to construct the element.
|
|
1776
|
-
const elementProps = this.
|
|
1826
|
+
const elementProps = this.tryGetElementProps(elementId);
|
|
1777
1827
|
if (undefined === elementProps)
|
|
1778
1828
|
return undefined; // no Element with that elementId found
|
|
1779
1829
|
const element = this._iModel.constructEntity(elementProps);
|
|
@@ -1837,6 +1887,11 @@ function processSchemaWriteStatus(status) {
|
|
|
1837
1887
|
*/
|
|
1838
1888
|
insertElement(elProps, options) {
|
|
1839
1889
|
try {
|
|
1890
|
+
this[_cache].delete({
|
|
1891
|
+
id: elProps.id,
|
|
1892
|
+
federationGuid: elProps.federationGuid,
|
|
1893
|
+
code: elProps.code,
|
|
1894
|
+
});
|
|
1840
1895
|
return elProps.id = this._iModel[_nativeDb].insertElement(elProps, options);
|
|
1841
1896
|
}
|
|
1842
1897
|
catch (err) {
|
|
@@ -1858,6 +1913,11 @@ function processSchemaWriteStatus(status) {
|
|
|
1858
1913
|
*/
|
|
1859
1914
|
updateElement(elProps) {
|
|
1860
1915
|
try {
|
|
1916
|
+
this[_cache].delete({
|
|
1917
|
+
id: elProps.id,
|
|
1918
|
+
federationGuid: elProps.federationGuid,
|
|
1919
|
+
code: elProps.code,
|
|
1920
|
+
});
|
|
1861
1921
|
this._iModel[_nativeDb].updateElement(elProps);
|
|
1862
1922
|
}
|
|
1863
1923
|
catch (err) {
|
|
@@ -1875,6 +1935,7 @@ function processSchemaWriteStatus(status) {
|
|
|
1875
1935
|
const iModel = this._iModel;
|
|
1876
1936
|
Id64.toIdSet(ids).forEach((id) => {
|
|
1877
1937
|
try {
|
|
1938
|
+
this[_cache].delete({ id });
|
|
1878
1939
|
iModel[_nativeDb].deleteElement(id);
|
|
1879
1940
|
}
|
|
1880
1941
|
catch (err) {
|
|
@@ -2094,9 +2155,9 @@ function processSchemaWriteStatus(status) {
|
|
|
2094
2155
|
*/
|
|
2095
2156
|
getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
|
|
2096
2157
|
if (aspectClassFullName === undefined) {
|
|
2097
|
-
const allAspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2098
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
|
|
2099
|
-
UNION ALL
|
|
2158
|
+
const allAspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2159
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
|
|
2160
|
+
UNION ALL
|
|
2100
2161
|
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
|
|
2101
2162
|
if (allAspects.length === 0)
|
|
2102
2163
|
Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
|
|
@@ -2116,7 +2177,7 @@ function processSchemaWriteStatus(status) {
|
|
|
2116
2177
|
if (classIdList === undefined) {
|
|
2117
2178
|
const classIds = [];
|
|
2118
2179
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
2119
|
-
this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
|
|
2180
|
+
this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
|
|
2120
2181
|
and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
|
|
2121
2182
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
2122
2183
|
(statement) => {
|
|
@@ -2133,10 +2194,10 @@ function processSchemaWriteStatus(status) {
|
|
|
2133
2194
|
return [];
|
|
2134
2195
|
}
|
|
2135
2196
|
// Execute an instance query to retrieve all aspects from all the derived classes
|
|
2136
|
-
const aspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2137
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2138
|
-
UNION ALL
|
|
2139
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2197
|
+
const aspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2198
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2199
|
+
UNION ALL
|
|
2200
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2140
2201
|
) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
|
|
2141
2202
|
if (aspects.length === 0)
|
|
2142
2203
|
Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
|
|
@@ -2377,9 +2438,9 @@ function processSchemaWriteStatus(status) {
|
|
|
2377
2438
|
}
|
|
2378
2439
|
IModelDb.Views = Views;
|
|
2379
2440
|
/** Represents the current state of a pollable tile content request.
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2441
|
+
* Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
|
|
2442
|
+
* @internal
|
|
2443
|
+
*/
|
|
2383
2444
|
let TileContentState;
|
|
2384
2445
|
(function (TileContentState) {
|
|
2385
2446
|
TileContentState[TileContentState["New"] = 0] = "New";
|
|
@@ -2628,6 +2689,7 @@ export class BriefcaseDb extends IModelDb {
|
|
|
2628
2689
|
touch.sync(briefcaseDb.watchFilePathName);
|
|
2629
2690
|
// Restart default txn to trigger events when watch file is changed by some other process.
|
|
2630
2691
|
const watcher = fs.watch(briefcaseDb.watchFilePathName, { persistent: false }, () => {
|
|
2692
|
+
nativeDb.clearECDbCache();
|
|
2631
2693
|
nativeDb.restartDefaultTxn();
|
|
2632
2694
|
briefcaseDb.changeset = briefcaseDb[_nativeDb].getCurrentChangeset();
|
|
2633
2695
|
});
|