@itwin/core-backend 5.1.0-dev.3 → 5.1.0-dev.32
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 +38 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.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 +12 -0
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +41 -4
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +77 -4
- 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 +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.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/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 +9 -4
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +30 -3
- 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 +216 -60
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +560 -59
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +7 -7
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +7 -7
- 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 +43 -3
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +59 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.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/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 +28 -43
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +177 -92
- 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 +64 -28
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +115 -27
- 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/Texture.d.ts +1 -1
- package/lib/cjs/Texture.js +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +4 -4
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +2 -1
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +140 -14
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +250 -14
- 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/annotations/FrameGeometry.d.ts +52 -0
- package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/FrameGeometry.js +250 -0
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
- package/lib/cjs/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +20 -26
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +31 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js +83 -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} +11 -68
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +19 -7
- package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +19 -7
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
- 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.d.ts +5 -3
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +5 -6
- 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 +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.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 +12 -0
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +41 -4
- package/lib/esm/Category.d.ts.map +1 -1
- package/lib/esm/Category.js +77 -4
- 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 +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.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/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 +9 -4
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +30 -3
- 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 +216 -60
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +563 -62
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +7 -7
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +7 -7
- 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 +43 -3
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +59 -1
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.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/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 +28 -43
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +180 -95
- 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 +64 -28
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js +116 -28
- 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/Texture.d.ts +1 -1
- package/lib/esm/Texture.js +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +4 -4
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +2 -1
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +140 -14
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +251 -15
- 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/annotations/FrameGeometry.d.ts +52 -0
- package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/FrameGeometry.js +245 -0
- package/lib/esm/annotations/FrameGeometry.js.map +1 -0
- package/lib/esm/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +22 -28
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts +31 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js +80 -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} +11 -68
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +19 -7
- package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +19 -7
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
- package/lib/esm/core-backend.d.ts +5 -3
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +5 -3
- 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 +190 -1025
- 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 +969 -0
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
- 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 +86 -65
- 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 +68 -16
- 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 +67 -15
- 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/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/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 +20 -1
- 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/cjs/TextAnnotationElement.d.ts.map +0 -1
- 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.map +0 -1
- 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
package/lib/cjs/IModelDb.js
CHANGED
|
@@ -50,6 +50,7 @@ const IModelDbFontsImpl_1 = require("./internal/IModelDbFontsImpl");
|
|
|
50
50
|
const Symbols_1 = require("./internal/Symbols");
|
|
51
51
|
const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
|
|
52
52
|
const Schema_1 = require("./Schema");
|
|
53
|
+
const ElementLRUCache_1 = require("./internal/ElementLRUCache");
|
|
53
54
|
// spell:ignore fontid fontmap
|
|
54
55
|
const loggerCategory = BackendLoggerCategory_1.BackendLoggerCategory.IModelDb;
|
|
55
56
|
/** @internal */
|
|
@@ -579,6 +580,8 @@ class IModelDb extends core_common_1.IModel {
|
|
|
579
580
|
this._jsClassMap = undefined;
|
|
580
581
|
this._schemaMap = undefined;
|
|
581
582
|
this._schemaContext = undefined;
|
|
583
|
+
this.elements[Symbols_1._cache].clear();
|
|
584
|
+
this.models[Symbols_1._cache].clear();
|
|
582
585
|
}
|
|
583
586
|
/** Update the project extents for this iModel.
|
|
584
587
|
* <p><em>Example:</em>
|
|
@@ -647,6 +650,9 @@ class IModelDb extends core_common_1.IModel {
|
|
|
647
650
|
performCheckpoint() {
|
|
648
651
|
if (!this.isReadonly) {
|
|
649
652
|
this.saveChanges();
|
|
653
|
+
this.clearCaches();
|
|
654
|
+
this[Symbols_1._nativeDb].concurrentQueryShutdown();
|
|
655
|
+
this[Symbols_1._nativeDb].clearECDbCache();
|
|
650
656
|
this[Symbols_1._nativeDb].performCheckpoint();
|
|
651
657
|
}
|
|
652
658
|
}
|
|
@@ -979,6 +985,24 @@ class IModelDb extends core_common_1.IModel {
|
|
|
979
985
|
return ClassRegistry_1.ClassRegistry.getClass(classFullName, this);
|
|
980
986
|
}
|
|
981
987
|
}
|
|
988
|
+
/** Constructs a ResolveInstanceKeyArgs from given parameters
|
|
989
|
+
* @throws [[IModelError]] if the combination of supplied parameters is invalid.
|
|
990
|
+
* @internal
|
|
991
|
+
*/
|
|
992
|
+
getInstanceArgs(instanceId, baseClassName, federationGuid, code) {
|
|
993
|
+
if (instanceId && baseClassName) {
|
|
994
|
+
return { partialKey: { id: instanceId, baseClassName } };
|
|
995
|
+
}
|
|
996
|
+
else if (federationGuid) {
|
|
997
|
+
return { federationGuid };
|
|
998
|
+
}
|
|
999
|
+
else if (code) {
|
|
1000
|
+
return { code };
|
|
1001
|
+
}
|
|
1002
|
+
else {
|
|
1003
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Either instanceId and baseClassName or federationGuid or code must be specified");
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
982
1006
|
/** Get metadata for a class. This method will load the metadata from the iModel into the cache as a side-effect, if necessary.
|
|
983
1007
|
* @throws [[IModelError]] if the metadata cannot be found nor loaded.
|
|
984
1008
|
* @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
|
|
@@ -1457,10 +1481,13 @@ function processSchemaWriteStatus(status) {
|
|
|
1457
1481
|
/** @public */
|
|
1458
1482
|
(function (IModelDb) {
|
|
1459
1483
|
/** The collection of models in an [[IModelDb]].
|
|
1460
|
-
* @public
|
|
1484
|
+
* @public @preview
|
|
1461
1485
|
*/
|
|
1462
1486
|
class Models {
|
|
1463
1487
|
_iModel;
|
|
1488
|
+
_modelCacheSize = 10;
|
|
1489
|
+
/** @internal */
|
|
1490
|
+
[Symbols_1._cache] = new core_bentley_1.LRUMap(this._modelCacheSize);
|
|
1464
1491
|
/** @internal */
|
|
1465
1492
|
constructor(_iModel) {
|
|
1466
1493
|
this._iModel = _iModel;
|
|
@@ -1471,7 +1498,10 @@ function processSchemaWriteStatus(status) {
|
|
|
1471
1498
|
* @see tryGetModelProps
|
|
1472
1499
|
*/
|
|
1473
1500
|
getModelProps(id) {
|
|
1474
|
-
|
|
1501
|
+
const model = this.tryGetModelProps(id);
|
|
1502
|
+
if (undefined === model)
|
|
1503
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model=${id}`);
|
|
1504
|
+
return model;
|
|
1475
1505
|
}
|
|
1476
1506
|
/** Get the ModelProps with the specified identifier.
|
|
1477
1507
|
* @param modelId The Model identifier.
|
|
@@ -1481,7 +1511,25 @@ function processSchemaWriteStatus(status) {
|
|
|
1481
1511
|
* @see getModelProps
|
|
1482
1512
|
*/
|
|
1483
1513
|
tryGetModelProps(id) {
|
|
1484
|
-
|
|
1514
|
+
try {
|
|
1515
|
+
if (IModelHost_1.IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
|
|
1516
|
+
return this._iModel[Symbols_1._nativeDb].getModel({ id });
|
|
1517
|
+
}
|
|
1518
|
+
const cachedMdl = this[Symbols_1._cache].get(id);
|
|
1519
|
+
if (cachedMdl) {
|
|
1520
|
+
return cachedMdl;
|
|
1521
|
+
}
|
|
1522
|
+
const options = { useJsNames: true };
|
|
1523
|
+
const instanceKey = this.resolveModelKey({ id });
|
|
1524
|
+
const rawInstance = this._iModel[Symbols_1._nativeDb].readInstance(instanceKey, options);
|
|
1525
|
+
const classDef = this._iModel.getJsClass(rawInstance.classFullName);
|
|
1526
|
+
const modelProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel });
|
|
1527
|
+
this[Symbols_1._cache].set(id, modelProps);
|
|
1528
|
+
return modelProps;
|
|
1529
|
+
}
|
|
1530
|
+
catch {
|
|
1531
|
+
return undefined;
|
|
1532
|
+
}
|
|
1485
1533
|
}
|
|
1486
1534
|
/** Query for the last modified time for a [[Model]].
|
|
1487
1535
|
* @param modelId The Id of the model.
|
|
@@ -1528,32 +1576,22 @@ function processSchemaWriteStatus(status) {
|
|
|
1528
1576
|
return model; // modelClass was not specified, cannot call instanceof to validate
|
|
1529
1577
|
return model instanceof modelClass ? model : undefined;
|
|
1530
1578
|
}
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
* @internal
|
|
1537
|
-
*/
|
|
1538
|
-
getModelJson(modelIdArg) {
|
|
1539
|
-
const modelJson = this.tryGetModelJson(modelIdArg);
|
|
1540
|
-
if (undefined === modelJson) {
|
|
1541
|
-
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model=(id: ${modelIdArg.id}, code: ${modelIdArg.code})`);
|
|
1579
|
+
resolveModelKey(modelIdArg) {
|
|
1580
|
+
const baseClassName = "BisCore:Model";
|
|
1581
|
+
let args;
|
|
1582
|
+
if (modelIdArg.id) {
|
|
1583
|
+
args = { partialKey: { id: modelIdArg.id, baseClassName } };
|
|
1542
1584
|
}
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
* @see getModelJson
|
|
1549
|
-
*/
|
|
1550
|
-
tryGetModelJson(modelIdArg) {
|
|
1551
|
-
try {
|
|
1552
|
-
return this._iModel[Symbols_1._nativeDb].getModel(modelIdArg);
|
|
1585
|
+
else if (modelIdArg.code) {
|
|
1586
|
+
const modelId = this._iModel.elements.getElementProps({ code: modelIdArg.code }).id;
|
|
1587
|
+
if (!modelId)
|
|
1588
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model not found with code: [spec:${modelIdArg.code.spec}, scope:${modelIdArg.code.scope}, value:${modelIdArg.code.value}])`);
|
|
1589
|
+
args = { partialKey: { id: modelId, baseClassName } };
|
|
1553
1590
|
}
|
|
1554
|
-
|
|
1555
|
-
|
|
1591
|
+
else {
|
|
1592
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
|
|
1556
1593
|
}
|
|
1594
|
+
return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
|
|
1557
1595
|
}
|
|
1558
1596
|
/** Get the sub-model of the specified Element.
|
|
1559
1597
|
* See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
|
|
@@ -1597,7 +1635,9 @@ function processSchemaWriteStatus(status) {
|
|
|
1597
1635
|
return props.id = this._iModel[Symbols_1._nativeDb].insertModel(props);
|
|
1598
1636
|
}
|
|
1599
1637
|
catch (err) {
|
|
1600
|
-
|
|
1638
|
+
const error = new core_common_1.IModelError(err.errorNumber, `Error inserting model [${err.message}], class=${props.classFullName}`);
|
|
1639
|
+
error.cause = err;
|
|
1640
|
+
throw error;
|
|
1601
1641
|
}
|
|
1602
1642
|
}
|
|
1603
1643
|
/** Update an existing model.
|
|
@@ -1606,10 +1646,14 @@ function processSchemaWriteStatus(status) {
|
|
|
1606
1646
|
*/
|
|
1607
1647
|
updateModel(props) {
|
|
1608
1648
|
try {
|
|
1649
|
+
if (props.id)
|
|
1650
|
+
this[Symbols_1._cache].delete(props.id);
|
|
1609
1651
|
this._iModel[Symbols_1._nativeDb].updateModel(props);
|
|
1610
1652
|
}
|
|
1611
1653
|
catch (err) {
|
|
1612
|
-
|
|
1654
|
+
const error = new core_common_1.IModelError(err.errorNumber, `Error updating model [${err.message}], id: ${props.id}`);
|
|
1655
|
+
error.cause = err;
|
|
1656
|
+
throw error;
|
|
1613
1657
|
}
|
|
1614
1658
|
}
|
|
1615
1659
|
/** Mark the geometry of [[GeometricModel]] as having changed, by recording an indirect change to its GeometryGuid property.
|
|
@@ -1622,9 +1666,10 @@ function processSchemaWriteStatus(status) {
|
|
|
1622
1666
|
* @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
|
|
1623
1667
|
*/
|
|
1624
1668
|
updateGeometryGuid(modelId) {
|
|
1669
|
+
this._iModel.models[Symbols_1._cache].delete(modelId);
|
|
1625
1670
|
const error = this._iModel[Symbols_1._nativeDb].updateModelGeometryGuid(modelId);
|
|
1626
1671
|
if (error !== core_bentley_1.IModelStatus.Success)
|
|
1627
|
-
throw new core_common_1.IModelError(error, `updating geometry guid for model ${modelId}`);
|
|
1672
|
+
throw new core_common_1.IModelError(error, `Error updating geometry guid for model ${modelId}`);
|
|
1628
1673
|
}
|
|
1629
1674
|
/** Delete one or more existing models.
|
|
1630
1675
|
* @param ids The Ids of the models to be deleted
|
|
@@ -1633,10 +1678,13 @@ function processSchemaWriteStatus(status) {
|
|
|
1633
1678
|
deleteModel(ids) {
|
|
1634
1679
|
core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
|
|
1635
1680
|
try {
|
|
1681
|
+
this[Symbols_1._cache].delete(id);
|
|
1636
1682
|
this._iModel[Symbols_1._nativeDb].deleteModel(id);
|
|
1637
1683
|
}
|
|
1638
1684
|
catch (err) {
|
|
1639
|
-
|
|
1685
|
+
const error = new core_common_1.IModelError(err.errorNumber, `Error deleting model [${err.message}], id: ${id}`);
|
|
1686
|
+
error.cause = err;
|
|
1687
|
+
throw error;
|
|
1640
1688
|
}
|
|
1641
1689
|
});
|
|
1642
1690
|
}
|
|
@@ -1666,10 +1714,13 @@ function processSchemaWriteStatus(status) {
|
|
|
1666
1714
|
}
|
|
1667
1715
|
IModelDb.Models = Models;
|
|
1668
1716
|
/** The collection of elements in an [[IModelDb]].
|
|
1669
|
-
* @public
|
|
1717
|
+
* @public @preview
|
|
1670
1718
|
*/
|
|
1671
1719
|
class Elements {
|
|
1672
1720
|
_iModel;
|
|
1721
|
+
_elementCacheSize = 50;
|
|
1722
|
+
/** @internal */
|
|
1723
|
+
[Symbols_1._cache] = new ElementLRUCache_1.ElementLRUCache(this._elementCacheSize);
|
|
1673
1724
|
/** @internal */
|
|
1674
1725
|
constructor(_iModel) {
|
|
1675
1726
|
this._iModel = _iModel;
|
|
@@ -1686,50 +1737,40 @@ function processSchemaWriteStatus(status) {
|
|
|
1686
1737
|
return !stmt.nextRow() ? undefined : stmt.getValueId(0);
|
|
1687
1738
|
}) : undefined;
|
|
1688
1739
|
}
|
|
1689
|
-
/** Read element data from the iModel as JSON
|
|
1690
|
-
* @param elementIdArg a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
|
|
1691
|
-
* @returns The JSON properties of the element.
|
|
1692
|
-
* @throws [[IModelError]] if the element is not found or cannot be loaded.
|
|
1693
|
-
* @see tryGetElementJson
|
|
1694
|
-
* @internal
|
|
1695
|
-
*/
|
|
1696
|
-
getElementJson(elementId) {
|
|
1697
|
-
const elementProps = this.tryGetElementJson(elementId);
|
|
1698
|
-
if (undefined === elementProps)
|
|
1699
|
-
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `reading element={id: ${elementId.id} federationGuid: ${elementId.federationGuid}, code: ${elementId.code}}`);
|
|
1700
|
-
return elementProps;
|
|
1701
|
-
}
|
|
1702
|
-
/** Read element data from the iModel as JSON
|
|
1703
|
-
* @param loadProps - a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
|
|
1704
|
-
* @returns The JSON properties of the element or `undefined` if the element is not found.
|
|
1705
|
-
* @throws [[IModelError]] if the element exists, but cannot be loaded.
|
|
1706
|
-
* @see getElementJson
|
|
1707
|
-
*/
|
|
1708
|
-
tryGetElementJson(loadProps) {
|
|
1709
|
-
try {
|
|
1710
|
-
return this._iModel[Symbols_1._nativeDb].getElement(loadProps);
|
|
1711
|
-
}
|
|
1712
|
-
catch {
|
|
1713
|
-
return undefined;
|
|
1714
|
-
}
|
|
1715
|
-
}
|
|
1716
1740
|
/** Get properties of an Element by Id, FederationGuid, or Code
|
|
1717
1741
|
* @throws [[IModelError]] if the element is not found or cannot be loaded.
|
|
1718
1742
|
* @see tryGetElementProps
|
|
1719
1743
|
*/
|
|
1720
1744
|
getElementProps(props) {
|
|
1745
|
+
const elProp = this.tryGetElementProps(props);
|
|
1746
|
+
if (undefined === elProp)
|
|
1747
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `element not found`);
|
|
1748
|
+
return elProp;
|
|
1749
|
+
}
|
|
1750
|
+
resolveElementKey(props) {
|
|
1751
|
+
const baseClassName = "BisCore:Element";
|
|
1752
|
+
let args;
|
|
1721
1753
|
if (typeof props === "string") {
|
|
1722
|
-
|
|
1754
|
+
args = core_bentley_1.Id64.isId64(props) ? { partialKey: { id: props, baseClassName } } : { federationGuid: props };
|
|
1723
1755
|
}
|
|
1724
1756
|
else if (props instanceof core_common_1.Code) {
|
|
1725
|
-
|
|
1757
|
+
args = { code: props };
|
|
1726
1758
|
}
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1759
|
+
else {
|
|
1760
|
+
if (props.id) {
|
|
1761
|
+
args = { partialKey: { id: props.id, baseClassName } };
|
|
1762
|
+
}
|
|
1763
|
+
else if (props.federationGuid) {
|
|
1764
|
+
args = { federationGuid: props.federationGuid };
|
|
1765
|
+
}
|
|
1766
|
+
else if (props.code) {
|
|
1767
|
+
args = { code: props.code };
|
|
1768
|
+
}
|
|
1769
|
+
else {
|
|
1770
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
|
|
1771
|
+
}
|
|
1732
1772
|
}
|
|
1773
|
+
return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
|
|
1733
1774
|
}
|
|
1734
1775
|
/** Get properties of an Element by Id, FederationGuid, or Code
|
|
1735
1776
|
* @returns The properties of the element or `undefined` if the element is not found.
|
|
@@ -1737,14 +1778,32 @@ function processSchemaWriteStatus(status) {
|
|
|
1737
1778
|
* @note Useful for cases when an element may or may not exist and throwing an `Error` would be overkill.
|
|
1738
1779
|
* @see getElementProps
|
|
1739
1780
|
*/
|
|
1740
|
-
tryGetElementProps(
|
|
1741
|
-
if (typeof
|
|
1742
|
-
|
|
1781
|
+
tryGetElementProps(props) {
|
|
1782
|
+
if (typeof props === "string") {
|
|
1783
|
+
props = core_bentley_1.Id64.isId64(props) ? { id: props } : { federationGuid: props };
|
|
1743
1784
|
}
|
|
1744
|
-
else if (
|
|
1745
|
-
|
|
1785
|
+
else if (props instanceof core_common_1.Code) {
|
|
1786
|
+
props = { code: props };
|
|
1787
|
+
}
|
|
1788
|
+
try {
|
|
1789
|
+
if (IModelHost_1.IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
|
|
1790
|
+
return this._iModel[Symbols_1._nativeDb].getElement(props);
|
|
1791
|
+
}
|
|
1792
|
+
const cachedElm = this[Symbols_1._cache].get(props);
|
|
1793
|
+
if (cachedElm) {
|
|
1794
|
+
return cachedElm.elProps;
|
|
1795
|
+
}
|
|
1796
|
+
const options = { ...props, useJsNames: true };
|
|
1797
|
+
const instanceKey = this.resolveElementKey(props);
|
|
1798
|
+
const rawInstance = this._iModel[Symbols_1._nativeDb].readInstance(instanceKey, options);
|
|
1799
|
+
const classDef = this._iModel.getJsClass(rawInstance.classFullName);
|
|
1800
|
+
const elementProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel, options: { element: props } });
|
|
1801
|
+
this[Symbols_1._cache].set({ elProps: elementProps, loadOptions: props });
|
|
1802
|
+
return elementProps;
|
|
1803
|
+
}
|
|
1804
|
+
catch {
|
|
1805
|
+
return undefined;
|
|
1746
1806
|
}
|
|
1747
|
-
return this.tryGetElementJson(elementId);
|
|
1748
1807
|
}
|
|
1749
1808
|
/** Get an element by Id, FederationGuid, or Code
|
|
1750
1809
|
* @param elementId either the element's Id, Code, or FederationGuid, or an ElementLoadProps
|
|
@@ -1777,7 +1836,7 @@ function processSchemaWriteStatus(status) {
|
|
|
1777
1836
|
elementId = { code: elementId };
|
|
1778
1837
|
else
|
|
1779
1838
|
elementId.onlyBaseProperties = false; // we must load all properties to construct the element.
|
|
1780
|
-
const elementProps = this.
|
|
1839
|
+
const elementProps = this.tryGetElementProps(elementId);
|
|
1781
1840
|
if (undefined === elementProps)
|
|
1782
1841
|
return undefined; // no Element with that elementId found
|
|
1783
1842
|
const element = this._iModel.constructEntity(elementProps);
|
|
@@ -1833,7 +1892,7 @@ function processSchemaWriteStatus(status) {
|
|
|
1833
1892
|
/** Insert a new element into the iModel.
|
|
1834
1893
|
* @param elProps The properties of the new element.
|
|
1835
1894
|
* @returns The newly inserted element's Id.
|
|
1836
|
-
* @throws [[
|
|
1895
|
+
* @throws [[ITwinError]] if unable to insert the element.
|
|
1837
1896
|
* @note For convenience, the value of `elProps.id` is updated to reflect the resultant element's id.
|
|
1838
1897
|
* However when `elProps.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
|
|
1839
1898
|
* the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
|
|
@@ -1841,6 +1900,11 @@ function processSchemaWriteStatus(status) {
|
|
|
1841
1900
|
*/
|
|
1842
1901
|
insertElement(elProps, options) {
|
|
1843
1902
|
try {
|
|
1903
|
+
this[Symbols_1._cache].delete({
|
|
1904
|
+
id: elProps.id,
|
|
1905
|
+
federationGuid: elProps.federationGuid,
|
|
1906
|
+
code: elProps.code,
|
|
1907
|
+
});
|
|
1844
1908
|
return elProps.id = this._iModel[Symbols_1._nativeDb].insertElement(elProps, options);
|
|
1845
1909
|
}
|
|
1846
1910
|
catch (err) {
|
|
@@ -1858,10 +1922,15 @@ function processSchemaWriteStatus(status) {
|
|
|
1858
1922
|
* @param elProps the properties of the element to update.
|
|
1859
1923
|
* @note The values of `classFullName` and `model` *may not be changed* by this method. Further, it will permute the `elProps` object by adding or
|
|
1860
1924
|
* overwriting their values to the correct values.
|
|
1861
|
-
* @throws [[
|
|
1925
|
+
* @throws [[ITwinError]] if unable to update the element.
|
|
1862
1926
|
*/
|
|
1863
1927
|
updateElement(elProps) {
|
|
1864
1928
|
try {
|
|
1929
|
+
this[Symbols_1._cache].delete({
|
|
1930
|
+
id: elProps.id,
|
|
1931
|
+
federationGuid: elProps.federationGuid,
|
|
1932
|
+
code: elProps.code,
|
|
1933
|
+
});
|
|
1865
1934
|
this._iModel[Symbols_1._nativeDb].updateElement(elProps);
|
|
1866
1935
|
}
|
|
1867
1936
|
catch (err) {
|
|
@@ -1872,13 +1941,14 @@ function processSchemaWriteStatus(status) {
|
|
|
1872
1941
|
}
|
|
1873
1942
|
/** Delete one or more elements from this iModel.
|
|
1874
1943
|
* @param ids The set of Ids of the element(s) to be deleted
|
|
1875
|
-
* @throws [[
|
|
1944
|
+
* @throws [[ITwinError]]
|
|
1876
1945
|
* @see deleteDefinitionElements
|
|
1877
1946
|
*/
|
|
1878
1947
|
deleteElement(ids) {
|
|
1879
1948
|
const iModel = this._iModel;
|
|
1880
1949
|
core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
|
|
1881
1950
|
try {
|
|
1951
|
+
this[Symbols_1._cache].delete({ id });
|
|
1882
1952
|
iModel[Symbols_1._nativeDb].deleteElement(id);
|
|
1883
1953
|
}
|
|
1884
1954
|
catch (err) {
|
|
@@ -2098,9 +2168,9 @@ function processSchemaWriteStatus(status) {
|
|
|
2098
2168
|
*/
|
|
2099
2169
|
getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
|
|
2100
2170
|
if (aspectClassFullName === undefined) {
|
|
2101
|
-
const allAspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2102
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
|
|
2103
|
-
UNION ALL
|
|
2171
|
+
const allAspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2172
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
|
|
2173
|
+
UNION ALL
|
|
2104
2174
|
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
|
|
2105
2175
|
if (allAspects.length === 0)
|
|
2106
2176
|
core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
|
|
@@ -2120,7 +2190,7 @@ function processSchemaWriteStatus(status) {
|
|
|
2120
2190
|
if (classIdList === undefined) {
|
|
2121
2191
|
const classIds = [];
|
|
2122
2192
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
2123
|
-
this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
|
|
2193
|
+
this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
|
|
2124
2194
|
and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
|
|
2125
2195
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
2126
2196
|
(statement) => {
|
|
@@ -2137,10 +2207,10 @@ function processSchemaWriteStatus(status) {
|
|
|
2137
2207
|
return [];
|
|
2138
2208
|
}
|
|
2139
2209
|
// Execute an instance query to retrieve all aspects from all the derived classes
|
|
2140
|
-
const aspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2141
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2142
|
-
UNION ALL
|
|
2143
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2210
|
+
const aspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2211
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2212
|
+
UNION ALL
|
|
2213
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2144
2214
|
) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
|
|
2145
2215
|
if (aspects.length === 0)
|
|
2146
2216
|
core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
|
|
@@ -2158,7 +2228,9 @@ function processSchemaWriteStatus(status) {
|
|
|
2158
2228
|
return this._iModel[Symbols_1._nativeDb].insertElementAspect(aspectProps);
|
|
2159
2229
|
}
|
|
2160
2230
|
catch (err) {
|
|
2161
|
-
|
|
2231
|
+
const error = new core_common_1.IModelError(err.errorNumber, `Error inserting ElementAspect [${err.message}], class: ${aspectProps.classFullName}`, aspectProps);
|
|
2232
|
+
error.cause = err;
|
|
2233
|
+
throw error;
|
|
2162
2234
|
}
|
|
2163
2235
|
}
|
|
2164
2236
|
/** Update an exist ElementAspect within the iModel.
|
|
@@ -2170,7 +2242,9 @@ function processSchemaWriteStatus(status) {
|
|
|
2170
2242
|
this._iModel[Symbols_1._nativeDb].updateElementAspect(aspectProps);
|
|
2171
2243
|
}
|
|
2172
2244
|
catch (err) {
|
|
2173
|
-
|
|
2245
|
+
const error = new core_common_1.IModelError(err.errorNumber, `Error updating ElementAspect [${err.message}], id: ${aspectProps.id}`, aspectProps);
|
|
2246
|
+
error.cause = err;
|
|
2247
|
+
throw error;
|
|
2174
2248
|
}
|
|
2175
2249
|
}
|
|
2176
2250
|
/** Delete one or more ElementAspects from this iModel.
|
|
@@ -2184,14 +2258,16 @@ function processSchemaWriteStatus(status) {
|
|
|
2184
2258
|
iModel[Symbols_1._nativeDb].deleteElementAspect(aspectInstanceId);
|
|
2185
2259
|
}
|
|
2186
2260
|
catch (err) {
|
|
2187
|
-
|
|
2261
|
+
const error = new core_common_1.IModelError(err.errorNumber, `Error deleting ElementAspect [${err.message}], id: ${aspectInstanceId}`);
|
|
2262
|
+
error.cause = err;
|
|
2263
|
+
throw error;
|
|
2188
2264
|
}
|
|
2189
2265
|
});
|
|
2190
2266
|
}
|
|
2191
2267
|
}
|
|
2192
2268
|
IModelDb.Elements = Elements;
|
|
2193
2269
|
/** The collection of views in an [[IModelDb]].
|
|
2194
|
-
* @public
|
|
2270
|
+
* @public @preview
|
|
2195
2271
|
*/
|
|
2196
2272
|
class Views {
|
|
2197
2273
|
_iModel;
|
|
@@ -2217,7 +2293,7 @@ function processSchemaWriteStatus(status) {
|
|
|
2217
2293
|
if (undefined === props) {
|
|
2218
2294
|
const propsString = this._iModel.queryFilePropertyString(Views.viewStoreProperty);
|
|
2219
2295
|
if (!propsString)
|
|
2220
|
-
|
|
2296
|
+
core_common_1.ViewStoreError.throwError("no-viewstore", { message: "iModel does not have a default ViewStore" });
|
|
2221
2297
|
props = JSON.parse(propsString);
|
|
2222
2298
|
}
|
|
2223
2299
|
const accessToken = await CloudSqlite_1.CloudSqlite.requestToken({
|
|
@@ -2338,7 +2414,7 @@ function processSchemaWriteStatus(status) {
|
|
|
2338
2414
|
}
|
|
2339
2415
|
getViewThumbnailArg(viewDefinitionId) {
|
|
2340
2416
|
if (!core_bentley_1.Id64.isValid(viewDefinitionId))
|
|
2341
|
-
throw new
|
|
2417
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.BadArg, "illegal thumbnail id");
|
|
2342
2418
|
return { namespace: "dgn_View", name: "Thumbnail", id: viewDefinitionId };
|
|
2343
2419
|
}
|
|
2344
2420
|
/** Get the thumbnail for a view.
|
|
@@ -2381,9 +2457,9 @@ function processSchemaWriteStatus(status) {
|
|
|
2381
2457
|
}
|
|
2382
2458
|
IModelDb.Views = Views;
|
|
2383
2459
|
/** Represents the current state of a pollable tile content request.
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2460
|
+
* Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
|
|
2461
|
+
* @internal
|
|
2462
|
+
*/
|
|
2387
2463
|
let TileContentState;
|
|
2388
2464
|
(function (TileContentState) {
|
|
2389
2465
|
TileContentState[TileContentState["New"] = 0] = "New";
|
|
@@ -2632,6 +2708,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2632
2708
|
touch.sync(briefcaseDb.watchFilePathName);
|
|
2633
2709
|
// Restart default txn to trigger events when watch file is changed by some other process.
|
|
2634
2710
|
const watcher = fs.watch(briefcaseDb.watchFilePathName, { persistent: false }, () => {
|
|
2711
|
+
nativeDb.clearECDbCache();
|
|
2635
2712
|
nativeDb.restartDefaultTxn();
|
|
2636
2713
|
briefcaseDb.changeset = briefcaseDb[Symbols_1._nativeDb].getCurrentChangeset();
|
|
2637
2714
|
});
|
|
@@ -3045,6 +3122,10 @@ class SnapshotDb extends IModelDb {
|
|
|
3045
3122
|
snapshotDb.channels.addAllowedChannel(ChannelControl_1.ChannelControl.sharedChannelName);
|
|
3046
3123
|
if (options.createClassViews)
|
|
3047
3124
|
snapshotDb._createClassViewsOnClose = true; // save flag that will be checked when close() is called
|
|
3125
|
+
if (options.geographicCoordinateSystem)
|
|
3126
|
+
snapshotDb.setGeographicCoordinateSystem(options.geographicCoordinateSystem);
|
|
3127
|
+
if (options.ecefLocation)
|
|
3128
|
+
snapshotDb.setEcefLocation(options.ecefLocation);
|
|
3048
3129
|
return snapshotDb;
|
|
3049
3130
|
}
|
|
3050
3131
|
/** Create a local [Snapshot]($docs/learning/backend/AccessingIModels.md#snapshot-imodels) iModel file, using this iModel as a *seed* or starting point.
|
|
@@ -3200,6 +3281,10 @@ class StandaloneDb extends BriefcaseDb {
|
|
|
3200
3281
|
nativeDb.resetBriefcaseId(core_common_1.BriefcaseIdValue.Unassigned);
|
|
3201
3282
|
nativeDb.saveChanges();
|
|
3202
3283
|
const db = new this({ nativeDb, key: core_bentley_1.Guid.createValue(), briefcaseId: core_common_1.BriefcaseIdValue.Unassigned, openMode: core_bentley_1.OpenMode.ReadWrite });
|
|
3284
|
+
if (args.geographicCoordinateSystem)
|
|
3285
|
+
db.setGeographicCoordinateSystem(args.geographicCoordinateSystem);
|
|
3286
|
+
if (args.ecefLocation)
|
|
3287
|
+
db.setEcefLocation(args.ecefLocation);
|
|
3203
3288
|
db.channels.addAllowedChannel(ChannelControl_1.ChannelControl.sharedChannelName);
|
|
3204
3289
|
return db;
|
|
3205
3290
|
}
|