@itwin/core-backend 5.0.0-dev.11 → 5.0.0-dev.111
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 +90 -1
- package/lib/cjs/BackendHubAccess.d.ts +15 -35
- package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
- package/lib/cjs/BackendHubAccess.js +2 -0
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
- package/lib/cjs/BisCoreSchema.js +2 -0
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.d.ts +4 -4
- package/lib/cjs/BlobContainerService.d.ts.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts +10 -0
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +63 -20
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.d.ts +103 -0
- package/lib/cjs/CatalogDb.d.ts.map +1 -0
- package/lib/cjs/CatalogDb.js +271 -0
- package/lib/cjs/CatalogDb.js.map +1 -0
- package/lib/cjs/Category.d.ts +37 -0
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +79 -1
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +104 -29
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.d.ts +3 -3
- package/lib/cjs/ChangedElementsDb.d.ts.map +1 -1
- package/lib/cjs/ChangedElementsDb.js +8 -7
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts +3 -3
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +274 -261
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.d.ts +12 -17
- package/lib/cjs/CheckpointManager.d.ts.map +1 -1
- package/lib/cjs/CheckpointManager.js +40 -92
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +46 -2
- package/lib/cjs/ClassRegistry.d.ts.map +1 -1
- package/lib/cjs/ClassRegistry.js +98 -42
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +104 -20
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +172 -54
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.d.ts +2 -0
- package/lib/cjs/CodeService.d.ts.map +1 -1
- package/lib/cjs/CodeService.js +4 -0
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.js +3 -2
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js +7 -6
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js +16 -16
- 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 +29 -0
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +53 -60
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +115 -73
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.d.ts +1 -1
- package/lib/cjs/ECSchemaXmlContext.js +2 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts +185 -4
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +237 -9
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.d.ts +194 -35
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +683 -57
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +0 -5
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +25 -16
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +17 -12
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +91 -11
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +137 -16
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js +4 -0
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.js +22 -0
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.d.ts +68 -0
- package/lib/cjs/FontFile.d.ts.map +1 -0
- package/lib/cjs/FontFile.js +36 -0
- package/lib/cjs/FontFile.js.map +1 -0
- package/lib/cjs/GeoCoordConfig.js +8 -8
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +53 -50
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +231 -108
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +516 -249
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.d.ts +54 -0
- package/lib/cjs/IModelDbFonts.d.ts.map +1 -0
- package/lib/cjs/{IModelCloneContext.js → IModelDbFonts.js} +2 -7
- package/lib/cjs/IModelDbFonts.js.map +1 -0
- package/lib/cjs/IModelElementCloneContext.d.ts +2 -0
- package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js +12 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +28 -15
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +82 -43
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.d.ts.map +1 -1
- package/lib/cjs/IModelJsFs.js +17 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.d.ts +49 -0
- package/lib/cjs/ImageSourceConversion.d.ts.map +1 -0
- package/lib/cjs/ImageSourceConversion.js +37 -0
- package/lib/cjs/ImageSourceConversion.js.map +1 -0
- package/lib/cjs/IpcHost.d.ts.map +1 -1
- package/lib/cjs/IpcHost.js +19 -33
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +9 -3
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js +5 -6
- 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 +69 -0
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +43 -7
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +120 -7
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js +5 -3
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.d.ts.map +1 -1
- package/lib/cjs/NativeHost.js +10 -4
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js +25 -25
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.d.ts +2 -3
- package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
- package/lib/cjs/PromiseMemoizer.js +12 -5
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js +1 -4
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +15 -1
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.d.ts +6 -4
- package/lib/cjs/SQLiteDb.d.ts.map +1 -1
- package/lib/cjs/SQLiteDb.js +79 -19
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.d.ts +25 -1
- package/lib/cjs/Schema.d.ts.map +1 -1
- package/lib/cjs/Schema.js +44 -8
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js +1 -4
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.js +6 -0
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.d.ts +11 -3
- package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js +21 -5
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.d.ts +4 -2
- package/lib/cjs/SqliteStatement.d.ts.map +1 -1
- package/lib/cjs/SqliteStatement.js +13 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/TextAnnotationGeometry.d.ts.map +1 -1
- package/lib/cjs/TextAnnotationGeometry.js +38 -11
- package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/TextAnnotationLayout.d.ts +10 -3
- package/lib/cjs/TextAnnotationLayout.d.ts.map +1 -1
- package/lib/cjs/TextAnnotationLayout.js +56 -18
- package/lib/cjs/TextAnnotationLayout.js.map +1 -1
- package/lib/cjs/Texture.js +3 -0
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js +6 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +55 -4
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +235 -58
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +106 -6
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +289 -26
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.d.ts +0 -1
- package/lib/cjs/ViewStateHydrator.d.ts.map +1 -1
- package/lib/cjs/ViewStateHydrator.js +4 -14
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.d.ts.map +1 -1
- package/lib/cjs/ViewStore.js +32 -29
- 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.d.ts +8 -2
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +8 -2
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js +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.d.ts +40 -2
- package/lib/cjs/internal/ChangesetConflictArgs.d.ts.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js +101 -0
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js +16 -13
- 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.d.ts +34 -0
- package/lib/cjs/internal/FontFileImpl.d.ts.map +1 -0
- package/lib/cjs/internal/FontFileImpl.js +143 -0
- package/lib/cjs/internal/FontFileImpl.js.map +1 -0
- package/lib/cjs/{HubMock.d.ts → internal/HubMock.d.ts} +6 -7
- package/lib/cjs/internal/HubMock.d.ts.map +1 -0
- package/lib/cjs/{HubMock.js → internal/HubMock.js} +40 -15
- package/lib/cjs/internal/HubMock.js.map +1 -0
- package/lib/cjs/internal/IModelDbFontsImpl.d.ts +7 -0
- package/lib/cjs/internal/IModelDbFontsImpl.d.ts.map +1 -0
- package/lib/cjs/internal/IModelDbFontsImpl.js +186 -0
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -0
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js +2 -5
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js +6 -6
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +9 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +10 -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 +6 -9
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js +8 -12
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts +2 -16
- package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js +57 -121
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js +1 -4
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.d.ts.map +1 -1
- package/lib/cjs/rpc/multipart.js +2 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js +2 -2
- 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.d.ts.map +1 -1
- package/lib/cjs/rpc/web/request.js +2 -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.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +8 -4
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +5 -3
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +15 -25
- 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.d.ts +6 -13
- package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.d.ts +2 -7
- package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.d.ts +209 -0
- package/lib/esm/BackendHubAccess.d.ts.map +1 -0
- package/lib/esm/BackendHubAccess.js +41 -0
- package/lib/esm/BackendHubAccess.js.map +1 -0
- package/lib/esm/BackendLoggerCategory.d.ts +88 -0
- package/lib/esm/BackendLoggerCategory.d.ts.map +1 -0
- package/lib/esm/BackendLoggerCategory.js +93 -0
- package/lib/esm/BackendLoggerCategory.js.map +1 -0
- package/lib/esm/BisCoreSchema.d.ts +22 -0
- package/lib/esm/BisCoreSchema.d.ts.map +1 -0
- package/lib/esm/BisCoreSchema.js +61 -0
- package/lib/esm/BisCoreSchema.js.map +1 -0
- package/lib/esm/BlobContainerService.d.ts +159 -0
- package/lib/esm/BlobContainerService.d.ts.map +1 -0
- package/lib/esm/BlobContainerService.js +15 -0
- package/lib/esm/BlobContainerService.js.map +1 -0
- package/lib/esm/BriefcaseManager.d.ts +213 -0
- package/lib/esm/BriefcaseManager.d.ts.map +1 -0
- package/lib/esm/BriefcaseManager.js +520 -0
- package/lib/esm/BriefcaseManager.js.map +1 -0
- package/lib/esm/CatalogDb.d.ts +103 -0
- package/lib/esm/CatalogDb.d.ts.map +1 -0
- package/lib/esm/CatalogDb.js +267 -0
- package/lib/esm/CatalogDb.js.map +1 -0
- package/lib/esm/Category.d.ts +173 -0
- package/lib/esm/Category.d.ts.map +1 -0
- package/lib/esm/Category.js +297 -0
- package/lib/esm/Category.js.map +1 -0
- package/lib/esm/ChangeSummaryManager.d.ts +161 -0
- package/lib/esm/ChangeSummaryManager.d.ts.map +1 -0
- package/lib/esm/ChangeSummaryManager.js +421 -0
- package/lib/esm/ChangeSummaryManager.js.map +1 -0
- package/lib/esm/ChangedElementsDb.d.ts +101 -0
- package/lib/esm/ChangedElementsDb.d.ts.map +1 -0
- package/lib/esm/ChangedElementsDb.js +165 -0
- package/lib/esm/ChangedElementsDb.js.map +1 -0
- package/lib/esm/ChangesetECAdaptor.d.ts +203 -0
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -0
- package/lib/esm/ChangesetECAdaptor.js +815 -0
- package/lib/esm/ChangesetECAdaptor.js.map +1 -0
- package/lib/esm/ChannelControl.d.ts +68 -0
- package/lib/esm/ChannelControl.d.ts.map +1 -0
- package/lib/esm/ChannelControl.js +15 -0
- package/lib/esm/ChannelControl.js.map +1 -0
- package/lib/esm/CheckpointManager.d.ts +118 -0
- package/lib/esm/CheckpointManager.d.ts.map +1 -0
- package/lib/esm/CheckpointManager.js +321 -0
- package/lib/esm/CheckpointManager.js.map +1 -0
- package/lib/esm/ClassRegistry.d.ts +134 -0
- package/lib/esm/ClassRegistry.d.ts.map +1 -0
- package/lib/esm/ClassRegistry.js +324 -0
- package/lib/esm/ClassRegistry.js.map +1 -0
- package/lib/esm/CloudSqlite.d.ts +766 -0
- package/lib/esm/CloudSqlite.d.ts.map +1 -0
- package/lib/esm/CloudSqlite.js +622 -0
- package/lib/esm/CloudSqlite.js.map +1 -0
- package/lib/esm/CodeService.d.ts +402 -0
- package/lib/esm/CodeService.d.ts.map +1 -0
- package/lib/esm/CodeService.js +65 -0
- package/lib/esm/CodeService.js.map +1 -0
- package/lib/esm/CodeSpecs.d.ts +59 -0
- package/lib/esm/CodeSpecs.d.ts.map +1 -0
- package/lib/esm/CodeSpecs.js +152 -0
- package/lib/esm/CodeSpecs.js.map +1 -0
- package/lib/esm/ConcurrentQuery.d.ts +14 -0
- package/lib/esm/ConcurrentQuery.d.ts.map +1 -0
- package/lib/esm/ConcurrentQuery.js +33 -0
- package/lib/esm/ConcurrentQuery.js.map +1 -0
- package/lib/esm/CustomViewState3dCreator.d.ts +22 -0
- package/lib/esm/CustomViewState3dCreator.d.ts.map +1 -0
- package/lib/esm/CustomViewState3dCreator.js +78 -0
- package/lib/esm/CustomViewState3dCreator.js.map +1 -0
- package/lib/esm/DevTools.d.ts +73 -0
- package/lib/esm/DevTools.d.ts.map +1 -0
- package/lib/esm/DevTools.js +153 -0
- package/lib/esm/DevTools.js.map +1 -0
- package/lib/esm/DisplayStyle.d.ts +104 -0
- package/lib/esm/DisplayStyle.d.ts.map +1 -0
- package/lib/esm/DisplayStyle.js +291 -0
- package/lib/esm/DisplayStyle.js.map +1 -0
- package/lib/esm/ECDb.d.ts +206 -0
- package/lib/esm/ECDb.d.ts.map +1 -0
- package/lib/esm/ECDb.js +410 -0
- package/lib/esm/ECDb.js.map +1 -0
- package/lib/esm/ECSchemaXmlContext.d.ts +46 -0
- package/lib/esm/ECSchemaXmlContext.d.ts.map +1 -0
- package/lib/esm/ECSchemaXmlContext.js +66 -0
- package/lib/esm/ECSchemaXmlContext.js.map +1 -0
- package/lib/esm/ECSqlStatement.d.ts +671 -0
- package/lib/esm/ECSqlStatement.d.ts.map +1 -0
- package/lib/esm/ECSqlStatement.js +1028 -0
- package/lib/esm/ECSqlStatement.js.map +1 -0
- package/lib/esm/Element.d.ts +1155 -0
- package/lib/esm/Element.d.ts.map +1 -0
- package/lib/esm/Element.js +1876 -0
- package/lib/esm/Element.js.map +1 -0
- package/lib/esm/ElementAspect.d.ts +164 -0
- package/lib/esm/ElementAspect.d.ts.map +1 -0
- package/lib/esm/ElementAspect.js +205 -0
- package/lib/esm/ElementAspect.js.map +1 -0
- package/lib/esm/ElementGraphics.d.ts +7 -0
- package/lib/esm/ElementGraphics.d.ts.map +1 -0
- package/lib/esm/ElementGraphics.js +36 -0
- package/lib/esm/ElementGraphics.js.map +1 -0
- package/lib/esm/ElementTreeWalker.d.ts +182 -0
- package/lib/esm/ElementTreeWalker.d.ts.map +1 -0
- package/lib/esm/ElementTreeWalker.js +425 -0
- package/lib/esm/ElementTreeWalker.js.map +1 -0
- package/lib/esm/Entity.d.ts +186 -0
- package/lib/esm/Entity.d.ts.map +1 -0
- package/lib/esm/Entity.js +244 -0
- package/lib/esm/Entity.js.map +1 -0
- package/lib/esm/EntityReferences.d.ts +50 -0
- package/lib/esm/EntityReferences.d.ts.map +1 -0
- package/lib/esm/EntityReferences.js +92 -0
- package/lib/esm/EntityReferences.js.map +1 -0
- package/lib/esm/ExportGraphics.d.ts +318 -0
- package/lib/esm/ExportGraphics.d.ts.map +1 -0
- package/lib/esm/ExportGraphics.js +209 -0
- package/lib/esm/ExportGraphics.js.map +1 -0
- package/lib/esm/ExternalSource.d.ts +89 -0
- package/lib/esm/ExternalSource.d.ts.map +1 -0
- package/lib/esm/ExternalSource.js +139 -0
- package/lib/esm/ExternalSource.js.map +1 -0
- package/lib/esm/FontFile.d.ts +68 -0
- package/lib/esm/FontFile.d.ts.map +1 -0
- package/lib/esm/FontFile.js +33 -0
- package/lib/esm/FontFile.js.map +1 -0
- package/lib/esm/GeoCoordConfig.d.ts +30 -0
- package/lib/esm/GeoCoordConfig.d.ts.map +1 -0
- package/lib/esm/GeoCoordConfig.js +78 -0
- package/lib/esm/GeoCoordConfig.js.map +1 -0
- package/lib/esm/GeographicCRSServices.d.ts +40 -0
- package/lib/esm/GeographicCRSServices.d.ts.map +1 -0
- package/lib/esm/GeographicCRSServices.js +17 -0
- package/lib/esm/GeographicCRSServices.js.map +1 -0
- package/lib/esm/GeometrySummary.d.ts +5 -0
- package/lib/esm/GeometrySummary.d.ts.map +1 -0
- package/lib/esm/GeometrySummary.js +381 -0
- package/lib/esm/GeometrySummary.js.map +1 -0
- package/lib/esm/IModelDb.d.ts +1390 -0
- package/lib/esm/IModelDb.d.ts.map +1 -0
- package/lib/esm/IModelDb.js +3327 -0
- package/lib/esm/IModelDb.js.map +1 -0
- package/lib/esm/IModelDbFonts.d.ts +54 -0
- package/lib/esm/IModelDbFonts.d.ts.map +1 -0
- package/lib/esm/IModelDbFonts.js +9 -0
- package/lib/esm/IModelDbFonts.js.map +1 -0
- package/lib/esm/IModelElementCloneContext.d.ts +92 -0
- package/lib/esm/IModelElementCloneContext.d.ts.map +1 -0
- package/lib/esm/IModelElementCloneContext.js +168 -0
- package/lib/esm/IModelElementCloneContext.js.map +1 -0
- package/lib/esm/IModelHost.d.ts +400 -0
- package/lib/esm/IModelHost.d.ts.map +1 -0
- package/lib/esm/IModelHost.js +508 -0
- package/lib/esm/IModelHost.js.map +1 -0
- package/lib/esm/IModelJsFs.d.ts +62 -0
- package/lib/esm/IModelJsFs.d.ts.map +1 -0
- package/lib/esm/IModelJsFs.js +151 -0
- package/lib/esm/IModelJsFs.js.map +1 -0
- package/lib/esm/ImageSourceConversion.d.ts +49 -0
- package/lib/esm/ImageSourceConversion.d.ts.map +1 -0
- package/lib/esm/ImageSourceConversion.js +33 -0
- package/lib/esm/ImageSourceConversion.js.map +1 -0
- package/lib/esm/IpcHost.d.ts +111 -0
- package/lib/esm/IpcHost.d.ts.map +1 -0
- package/lib/esm/IpcHost.js +292 -0
- package/lib/esm/IpcHost.js.map +1 -0
- package/lib/esm/LineStyle.d.ts +312 -0
- package/lib/esm/LineStyle.d.ts.map +1 -0
- package/lib/esm/LineStyle.js +293 -0
- package/lib/esm/LineStyle.js.map +1 -0
- package/lib/esm/LocalHub.d.ts +163 -0
- package/lib/esm/LocalHub.d.ts.map +1 -0
- package/lib/esm/LocalHub.js +583 -0
- package/lib/esm/LocalHub.js.map +1 -0
- package/lib/esm/LocalhostIpcHost.d.ts +22 -0
- package/lib/esm/LocalhostIpcHost.d.ts.map +1 -0
- package/lib/esm/LocalhostIpcHost.js +74 -0
- package/lib/esm/LocalhostIpcHost.js.map +1 -0
- package/lib/esm/LockControl.d.ts +73 -0
- package/lib/esm/LockControl.d.ts.map +1 -0
- package/lib/esm/LockControl.js +9 -0
- package/lib/esm/LockControl.js.map +1 -0
- package/lib/esm/Material.d.ts +150 -0
- package/lib/esm/Material.d.ts.map +1 -0
- package/lib/esm/Material.js +264 -0
- package/lib/esm/Material.js.map +1 -0
- package/lib/esm/Model.d.ts +411 -0
- package/lib/esm/Model.d.ts.map +1 -0
- package/lib/esm/Model.js +572 -0
- package/lib/esm/Model.js.map +1 -0
- package/lib/esm/NativeAppStorage.d.ts +52 -0
- package/lib/esm/NativeAppStorage.d.ts.map +1 -0
- package/lib/esm/NativeAppStorage.js +205 -0
- package/lib/esm/NativeAppStorage.js.map +1 -0
- package/lib/esm/NativeHost.d.ts +53 -0
- package/lib/esm/NativeHost.d.ts.map +1 -0
- package/lib/esm/NativeHost.js +161 -0
- package/lib/esm/NativeHost.js.map +1 -0
- package/lib/esm/NavigationRelationship.d.ts +185 -0
- package/lib/esm/NavigationRelationship.d.ts.map +1 -0
- package/lib/esm/NavigationRelationship.js +238 -0
- package/lib/esm/NavigationRelationship.js.map +1 -0
- package/lib/esm/PromiseMemoizer.d.ts +48 -0
- package/lib/esm/PromiseMemoizer.d.ts.map +1 -0
- package/lib/esm/PromiseMemoizer.js +101 -0
- package/lib/esm/PromiseMemoizer.js.map +1 -0
- package/lib/esm/PropertyStore.d.ts +134 -0
- package/lib/esm/PropertyStore.d.ts.map +1 -0
- package/lib/esm/PropertyStore.js +177 -0
- package/lib/esm/PropertyStore.js.map +1 -0
- package/lib/esm/Relationship.d.ts +399 -0
- package/lib/esm/Relationship.d.ts.map +1 -0
- package/lib/esm/Relationship.js +476 -0
- package/lib/esm/Relationship.js.map +1 -0
- package/lib/esm/RpcBackend.d.ts +6 -0
- package/lib/esm/RpcBackend.d.ts.map +1 -0
- package/lib/esm/RpcBackend.js +28 -0
- package/lib/esm/RpcBackend.js.map +1 -0
- package/lib/esm/SQLiteDb.d.ts +324 -0
- package/lib/esm/SQLiteDb.d.ts.map +1 -0
- package/lib/esm/SQLiteDb.js +380 -0
- package/lib/esm/SQLiteDb.js.map +1 -0
- package/lib/esm/Schema.d.ts +79 -0
- package/lib/esm/Schema.d.ts.map +1 -0
- package/lib/esm/Schema.js +113 -0
- package/lib/esm/Schema.js.map +1 -0
- package/lib/esm/SchemaSync.d.ts +47 -0
- package/lib/esm/SchemaSync.d.ts.map +1 -0
- package/lib/esm/SchemaSync.js +148 -0
- package/lib/esm/SchemaSync.js.map +1 -0
- package/lib/esm/SchemaUtils.d.ts +19 -0
- package/lib/esm/SchemaUtils.d.ts.map +1 -0
- package/lib/esm/SchemaUtils.js +37 -0
- package/lib/esm/SchemaUtils.js.map +1 -0
- package/lib/esm/SheetIndex.d.ts +148 -0
- package/lib/esm/SheetIndex.d.ts.map +1 -0
- package/lib/esm/SheetIndex.js +228 -0
- package/lib/esm/SheetIndex.js.map +1 -0
- package/lib/esm/SqliteChangesetReader.d.ts +278 -0
- package/lib/esm/SqliteChangesetReader.d.ts.map +1 -0
- package/lib/esm/SqliteChangesetReader.js +337 -0
- package/lib/esm/SqliteChangesetReader.js.map +1 -0
- package/lib/esm/SqliteStatement.d.ts +375 -0
- package/lib/esm/SqliteStatement.d.ts.map +1 -0
- package/lib/esm/SqliteStatement.js +615 -0
- package/lib/esm/SqliteStatement.js.map +1 -0
- package/lib/esm/TextAnnotationElement.d.ts +54 -0
- package/lib/esm/TextAnnotationElement.d.ts.map +1 -0
- package/lib/esm/TextAnnotationElement.js +89 -0
- package/lib/esm/TextAnnotationElement.js.map +1 -0
- package/lib/esm/TextAnnotationGeometry.d.ts +32 -0
- package/lib/esm/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/esm/TextAnnotationGeometry.js +181 -0
- package/lib/esm/TextAnnotationGeometry.js.map +1 -0
- package/lib/esm/TextAnnotationLayout.d.ts +177 -0
- package/lib/esm/TextAnnotationLayout.d.ts.map +1 -0
- package/lib/esm/TextAnnotationLayout.js +513 -0
- package/lib/esm/TextAnnotationLayout.js.map +1 -0
- package/lib/esm/Texture.d.ts +58 -0
- package/lib/esm/Texture.d.ts.map +1 -0
- package/lib/esm/Texture.js +81 -0
- package/lib/esm/Texture.js.map +1 -0
- package/lib/esm/TileStorage.d.ts +59 -0
- package/lib/esm/TileStorage.d.ts.map +1 -0
- package/lib/esm/TileStorage.js +158 -0
- package/lib/esm/TileStorage.js.map +1 -0
- package/lib/esm/TxnManager.d.ts +296 -0
- package/lib/esm/TxnManager.d.ts.map +1 -0
- package/lib/esm/TxnManager.js +620 -0
- package/lib/esm/TxnManager.js.map +1 -0
- package/lib/esm/ViewDefinition.d.ts +492 -0
- package/lib/esm/ViewDefinition.d.ts.map +1 -0
- package/lib/esm/ViewDefinition.js +846 -0
- package/lib/esm/ViewDefinition.js.map +1 -0
- package/lib/esm/ViewStateHydrator.d.ts +14 -0
- package/lib/esm/ViewStateHydrator.d.ts.map +1 -0
- package/lib/esm/ViewStateHydrator.js +89 -0
- package/lib/esm/ViewStateHydrator.js.map +1 -0
- package/lib/esm/ViewStore.d.ts +502 -0
- package/lib/esm/ViewStore.d.ts.map +1 -0
- package/lib/esm/ViewStore.js +1260 -0
- package/lib/esm/ViewStore.js.map +1 -0
- package/lib/esm/core-backend.d.ts +183 -0
- package/lib/esm/core-backend.d.ts.map +1 -0
- package/lib/esm/core-backend.js +187 -0
- package/lib/esm/core-backend.js.map +1 -0
- package/lib/esm/domains/FunctionalElements.d.ts +86 -0
- package/lib/esm/domains/FunctionalElements.d.ts.map +1 -0
- package/lib/esm/domains/FunctionalElements.js +117 -0
- package/lib/esm/domains/FunctionalElements.js.map +1 -0
- package/lib/esm/domains/FunctionalSchema.d.ts +14 -0
- package/lib/esm/domains/FunctionalSchema.d.ts.map +1 -0
- package/lib/esm/domains/FunctionalSchema.js +37 -0
- package/lib/esm/domains/FunctionalSchema.js.map +1 -0
- package/lib/esm/domains/GenericElements.d.ts +160 -0
- package/lib/esm/domains/GenericElements.d.ts.map +1 -0
- package/lib/esm/domains/GenericElements.js +225 -0
- package/lib/esm/domains/GenericElements.js.map +1 -0
- package/lib/esm/domains/GenericSchema.d.ts +11 -0
- package/lib/esm/domains/GenericSchema.d.ts.map +1 -0
- package/lib/esm/domains/GenericSchema.js +25 -0
- package/lib/esm/domains/GenericSchema.js.map +1 -0
- package/lib/esm/internal/ChangesetConflictArgs.d.ts +62 -0
- package/lib/esm/internal/ChangesetConflictArgs.d.ts.map +1 -0
- package/lib/esm/internal/ChangesetConflictArgs.js +104 -0
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -0
- package/lib/esm/internal/ChannelAdmin.d.ts +34 -0
- package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -0
- package/lib/esm/internal/ChannelAdmin.js +116 -0
- package/lib/esm/internal/ChannelAdmin.js.map +1 -0
- 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.d.ts +34 -0
- package/lib/esm/internal/FontFileImpl.d.ts.map +1 -0
- package/lib/esm/internal/FontFileImpl.js +135 -0
- package/lib/esm/internal/FontFileImpl.js.map +1 -0
- package/lib/esm/internal/HubMock.d.ts +94 -0
- package/lib/esm/internal/HubMock.d.ts.map +1 -0
- package/lib/esm/internal/HubMock.js +242 -0
- package/lib/esm/internal/HubMock.js.map +1 -0
- package/lib/esm/internal/IModelDbFontsImpl.d.ts +7 -0
- package/lib/esm/internal/IModelDbFontsImpl.d.ts.map +1 -0
- package/lib/esm/internal/IModelDbFontsImpl.js +183 -0
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -0
- package/lib/esm/internal/NativePlatform.d.ts +15 -0
- package/lib/esm/internal/NativePlatform.d.ts.map +1 -0
- package/lib/esm/internal/NativePlatform.js +43 -0
- package/lib/esm/internal/NativePlatform.js.map +1 -0
- package/lib/esm/internal/NoLocks.d.ts +6 -0
- package/lib/esm/internal/NoLocks.d.ts.map +1 -0
- package/lib/esm/internal/NoLocks.js +24 -0
- package/lib/esm/internal/NoLocks.js.map +1 -0
- package/lib/esm/internal/ServerBasedLocks.d.ts +52 -0
- package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -0
- package/lib/esm/internal/ServerBasedLocks.js +175 -0
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -0
- package/lib/esm/internal/Symbols.d.ts +20 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -0
- package/lib/esm/internal/Symbols.js +27 -0
- package/lib/esm/internal/Symbols.js.map +1 -0
- package/lib/esm/internal/cross-package.d.ts +4 -0
- package/lib/esm/internal/cross-package.d.ts.map +1 -0
- package/lib/esm/internal/cross-package.js +8 -0
- package/lib/esm/internal/cross-package.js.map +1 -0
- package/lib/esm/internal/workspace/SettingsImpl.d.ts +43 -0
- package/lib/esm/internal/workspace/SettingsImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/SettingsImpl.js +154 -0
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts +6 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js +268 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +27 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.js +627 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts +10 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js +35 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -0
- package/lib/esm/rpc/multipart.d.ts +12 -0
- package/lib/esm/rpc/multipart.d.ts.map +1 -0
- package/lib/esm/rpc/multipart.js +67 -0
- package/lib/esm/rpc/multipart.js.map +1 -0
- package/lib/esm/rpc/tracing.d.ts +29 -0
- package/lib/esm/rpc/tracing.d.ts.map +1 -0
- package/lib/esm/rpc/tracing.js +71 -0
- package/lib/esm/rpc/tracing.js.map +1 -0
- package/lib/esm/rpc/web/logging.d.ts +10 -0
- package/lib/esm/rpc/web/logging.d.ts.map +1 -0
- package/lib/esm/rpc/web/logging.js +41 -0
- package/lib/esm/rpc/web/logging.js.map +1 -0
- package/lib/esm/rpc/web/request.d.ts +7 -0
- package/lib/esm/rpc/web/request.d.ts.map +1 -0
- package/lib/esm/rpc/web/request.js +71 -0
- package/lib/esm/rpc/web/request.js.map +1 -0
- package/lib/esm/rpc/web/response.d.ts +7 -0
- package/lib/esm/rpc/web/response.d.ts.map +1 -0
- package/lib/esm/rpc/web/response.js +136 -0
- package/lib/esm/rpc/web/response.js.map +1 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts +16 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js +29 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +51 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +314 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts +21 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js +193 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +45 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js +155 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +18 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +41 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -0
- package/lib/esm/test/AdvancedEqual.d.ts +38 -0
- package/lib/esm/test/AdvancedEqual.d.ts.map +1 -0
- package/lib/esm/test/AdvancedEqual.js +67 -0
- package/lib/esm/test/AdvancedEqual.js.map +1 -0
- package/lib/esm/test/AttachDb.test.d.ts +2 -0
- package/lib/esm/test/AttachDb.test.d.ts.map +1 -0
- package/lib/esm/test/AttachDb.test.js +157 -0
- package/lib/esm/test/AttachDb.test.js.map +1 -0
- 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.d.ts +7 -0
- package/lib/esm/test/GeometryTestUtil.d.ts.map +1 -0
- package/lib/esm/test/GeometryTestUtil.js +25 -0
- package/lib/esm/test/GeometryTestUtil.js.map +1 -0
- package/lib/esm/test/IModelHost.test.d.ts +2 -0
- package/lib/esm/test/IModelHost.test.d.ts.map +1 -0
- package/lib/esm/test/IModelHost.test.js +187 -0
- package/lib/esm/test/IModelHost.test.js.map +1 -0
- package/lib/esm/test/IModelTestUtils.d.ts +177 -0
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -0
- package/lib/esm/test/IModelTestUtils.js +1146 -0
- package/lib/esm/test/IModelTestUtils.js.map +1 -0
- package/lib/esm/test/ImageSourceConversion.test.d.ts +2 -0
- package/lib/esm/test/ImageSourceConversion.test.d.ts.map +1 -0
- package/lib/esm/test/ImageSourceConversion.test.js +171 -0
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -0
- package/lib/esm/test/IpcHost.test.d.ts +2 -0
- package/lib/esm/test/IpcHost.test.d.ts.map +1 -0
- package/lib/esm/test/IpcHost.test.js +55 -0
- package/lib/esm/test/IpcHost.test.js.map +1 -0
- package/lib/esm/test/KnownTestLocations.d.ts +7 -0
- package/lib/esm/test/KnownTestLocations.d.ts.map +1 -0
- package/lib/esm/test/KnownTestLocations.js +27 -0
- package/lib/esm/test/KnownTestLocations.js.map +1 -0
- package/lib/esm/test/PrintElementTree.d.ts +7 -0
- package/lib/esm/test/PrintElementTree.d.ts.map +1 -0
- package/lib/esm/test/PrintElementTree.js +36 -0
- package/lib/esm/test/PrintElementTree.js.map +1 -0
- package/lib/esm/test/PropertyDb.test.d.ts +2 -0
- package/lib/esm/test/PropertyDb.test.d.ts.map +1 -0
- package/lib/esm/test/PropertyDb.test.js +71 -0
- package/lib/esm/test/PropertyDb.test.js.map +1 -0
- package/lib/esm/test/RevisionUtility.d.ts +33 -0
- package/lib/esm/test/RevisionUtility.d.ts.map +1 -0
- package/lib/esm/test/RevisionUtility.js +52 -0
- package/lib/esm/test/RevisionUtility.js.map +1 -0
- package/lib/esm/test/SchemaUtils.test.d.ts +2 -0
- package/lib/esm/test/SchemaUtils.test.d.ts.map +1 -0
- package/lib/esm/test/SchemaUtils.test.js +99 -0
- package/lib/esm/test/SchemaUtils.test.js.map +1 -0
- package/lib/esm/test/SequentialLogMatcher.d.ts +35 -0
- package/lib/esm/test/SequentialLogMatcher.d.ts.map +1 -0
- package/lib/esm/test/SequentialLogMatcher.js +130 -0
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -0
- package/lib/esm/test/TestChangeSetUtility.d.ts +23 -0
- package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -0
- package/lib/esm/test/TestChangeSetUtility.js +65 -0
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -0
- package/lib/esm/test/TestUtils.d.ts +38 -0
- package/lib/esm/test/TestUtils.d.ts.map +1 -0
- package/lib/esm/test/TestUtils.js +99 -0
- package/lib/esm/test/TestUtils.js.map +1 -0
- package/lib/esm/test/annotations/TextAnnotation.test.d.ts +2 -0
- package/lib/esm/test/annotations/TextAnnotation.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/TextAnnotation.test.js +1135 -0
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -0
- package/lib/esm/test/categories/Category.test.d.ts +2 -0
- package/lib/esm/test/categories/Category.test.d.ts.map +1 -0
- package/lib/esm/test/categories/Category.test.js +51 -0
- package/lib/esm/test/categories/Category.test.js.map +1 -0
- package/lib/esm/test/codespec/CodeSpec.test.d.ts +2 -0
- package/lib/esm/test/codespec/CodeSpec.test.d.ts.map +1 -0
- package/lib/esm/test/codespec/CodeSpec.test.js +51 -0
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -0
- package/lib/esm/test/ecdb/CTE.test.d.ts +2 -0
- package/lib/esm/test/ecdb/CTE.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/CTE.test.js +177 -0
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +167 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECDb.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECDb.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECDb.test.js +653 -0
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.d.ts +5 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.js +28 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +63 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.d.ts +5 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.js +972 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +753 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.js +669 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +3329 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.d.ts +2 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.js +510 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts +4 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +127 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts +2 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +197 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts +66 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js +420 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts +2 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +369 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts +2 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts.map +1 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.js +208 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -0
- package/lib/esm/test/element/ElementAspect.test.d.ts +2 -0
- package/lib/esm/test/element/ElementAspect.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementAspect.test.js +363 -0
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts +2 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.js +383 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -0
- package/lib/esm/test/element/ElementRoundTrip.test.d.ts +2 -0
- package/lib/esm/test/element/ElementRoundTrip.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementRoundTrip.test.js +926 -0
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -0
- package/lib/esm/test/element/ExcludedElements.test.d.ts +2 -0
- package/lib/esm/test/element/ExcludedElements.test.d.ts.map +1 -0
- package/lib/esm/test/element/ExcludedElements.test.js +57 -0
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -0
- package/lib/esm/test/element/ExternalSource.test.d.ts +2 -0
- package/lib/esm/test/element/ExternalSource.test.d.ts.map +1 -0
- package/lib/esm/test/element/ExternalSource.test.js +107 -0
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -0
- package/lib/esm/test/element/NullStructArray.test.d.ts +2 -0
- package/lib/esm/test/element/NullStructArray.test.d.ts.map +1 -0
- package/lib/esm/test/element/NullStructArray.test.js +77 -0
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -0
- package/lib/esm/test/element/UrlLink.test.d.ts +2 -0
- package/lib/esm/test/element/UrlLink.test.d.ts.map +1 -0
- package/lib/esm/test/element/UrlLink.test.js +36 -0
- package/lib/esm/test/element/UrlLink.test.js.map +1 -0
- package/lib/esm/test/font/FontFile.test.d.ts +2 -0
- package/lib/esm/test/font/FontFile.test.d.ts.map +1 -0
- package/lib/esm/test/font/FontFile.test.js +139 -0
- package/lib/esm/test/font/FontFile.test.js.map +1 -0
- package/lib/esm/test/font/IModelDbFonts.test.d.ts +2 -0
- package/lib/esm/test/font/IModelDbFonts.test.d.ts.map +1 -0
- package/lib/esm/test/font/IModelDbFonts.test.js +266 -0
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts +2 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js +176 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts +2 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.js +52 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -0
- package/lib/esm/test/imageData.d.ts +9 -0
- package/lib/esm/test/imageData.d.ts.map +1 -0
- package/lib/esm/test/imageData.js +16 -0
- package/lib/esm/test/imageData.js.map +1 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts +2 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.js +383 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -0
- package/lib/esm/test/imodel/GetTextureImage.test.d.ts +2 -0
- package/lib/esm/test/imodel/GetTextureImage.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/GetTextureImage.test.js +29 -0
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -0
- package/lib/esm/test/imodel/IModel.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModel.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModel.test.js +2626 -0
- package/lib/esm/test/imodel/IModel.test.js.map +1 -0
- package/lib/esm/test/imodel/ProjectExtents.test.d.ts +2 -0
- package/lib/esm/test/imodel/ProjectExtents.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/ProjectExtents.test.js +66 -0
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts +2 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.js +74 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -0
- package/lib/esm/test/index.d.ts +7 -0
- package/lib/esm/test/index.d.ts.map +1 -0
- package/lib/esm/test/index.js +11 -0
- package/lib/esm/test/index.js.map +1 -0
- package/lib/esm/test/misc/DevTools.test.d.ts +2 -0
- package/lib/esm/test/misc/DevTools.test.d.ts.map +1 -0
- package/lib/esm/test/misc/DevTools.test.js +72 -0
- package/lib/esm/test/misc/DevTools.test.js.map +1 -0
- package/lib/esm/test/misc/EntitySubClasses.test.d.ts +2 -0
- package/lib/esm/test/misc/EntitySubClasses.test.d.ts.map +1 -0
- package/lib/esm/test/misc/EntitySubClasses.test.js +106 -0
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -0
- package/lib/esm/test/misc/GeoServices.test.d.ts +2 -0
- package/lib/esm/test/misc/GeoServices.test.d.ts.map +1 -0
- package/lib/esm/test/misc/GeoServices.test.js +850 -0
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.d.ts +2 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.d.ts.map +1 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.js +111 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -0
- package/lib/esm/test/native/DgnDbWorker.test.d.ts +2 -0
- package/lib/esm/test/native/DgnDbWorker.test.d.ts.map +1 -0
- package/lib/esm/test/native/DgnDbWorker.test.js +159 -0
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -0
- package/lib/esm/test/rpc/response.test.d.ts +2 -0
- package/lib/esm/test/rpc/response.test.d.ts.map +1 -0
- package/lib/esm/test/rpc/response.test.js +112 -0
- package/lib/esm/test/rpc/response.test.js.map +1 -0
- package/lib/esm/test/schema/ClassRegistry.test.d.ts +2 -0
- package/lib/esm/test/schema/ClassRegistry.test.d.ts.map +1 -0
- package/lib/esm/test/schema/ClassRegistry.test.js +679 -0
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -0
- package/lib/esm/test/schema/FunctionalDomain.test.d.ts +2 -0
- package/lib/esm/test/schema/FunctionalDomain.test.d.ts.map +1 -0
- package/lib/esm/test/schema/FunctionalDomain.test.js +490 -0
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -0
- package/lib/esm/test/schema/GenericDomain.test.d.ts +2 -0
- package/lib/esm/test/schema/GenericDomain.test.d.ts.map +1 -0
- package/lib/esm/test/schema/GenericDomain.test.js +133 -0
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.d.ts +2 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.d.ts.map +1 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.js +95 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +4 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -0
- package/lib/esm/test/standalone/ChangeMerge.test.d.ts +2 -0
- package/lib/esm/test/standalone/ChangeMerge.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ChangeMerge.test.js +409 -0
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.d.ts +2 -0
- package/lib/esm/test/standalone/ChangesetReader.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js +891 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts +2 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js +49 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -0
- package/lib/esm/test/standalone/DisplayStyle.test.d.ts +2 -0
- package/lib/esm/test/standalone/DisplayStyle.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/DisplayStyle.test.js +136 -0
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -0
- package/lib/esm/test/standalone/Drawing.test.d.ts +2 -0
- package/lib/esm/test/standalone/Drawing.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Drawing.test.js +120 -0
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.d.ts +2 -0
- package/lib/esm/test/standalone/ElementGraphics.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js +127 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementMesh.test.d.ts +2 -0
- package/lib/esm/test/standalone/ElementMesh.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ElementMesh.test.js +142 -0
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -0
- package/lib/esm/test/standalone/ExportGraphics.test.d.ts +2 -0
- package/lib/esm/test/standalone/ExportGraphics.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ExportGraphics.test.js +1005 -0
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts +2 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js +139 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -0
- package/lib/esm/test/standalone/GeometryStream.test.d.ts +2 -0
- package/lib/esm/test/standalone/GeometryStream.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/GeometryStream.test.js +2869 -0
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -0
- package/lib/esm/test/standalone/HubMock.test.d.ts +2 -0
- package/lib/esm/test/standalone/HubMock.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/HubMock.test.js +343 -0
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -0
- package/lib/esm/test/standalone/IModelWrite.test.d.ts +7 -0
- package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/IModelWrite.test.js +907 -0
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts +2 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +417 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -0
- package/lib/esm/test/standalone/MergeConflict.test.d.ts +7 -0
- package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/MergeConflict.test.js +345 -0
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.d.ts +2 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.js +121 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts +2 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +399 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -0
- package/lib/esm/test/standalone/RenderTimeline.test.d.ts +2 -0
- package/lib/esm/test/standalone/RenderTimeline.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/RenderTimeline.test.js +71 -0
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -0
- package/lib/esm/test/standalone/SQLiteDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/SQLiteDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SQLiteDb.test.js +63 -0
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -0
- package/lib/esm/test/standalone/SchemaUtils.test.d.ts +2 -0
- package/lib/esm/test/standalone/SchemaUtils.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SchemaUtils.test.js +25 -0
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -0
- package/lib/esm/test/standalone/SectionDrawing.test.d.ts +2 -0
- package/lib/esm/test/standalone/SectionDrawing.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SectionDrawing.test.js +83 -0
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts +2 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.js +279 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -0
- package/lib/esm/test/standalone/Setting.test.d.ts +2 -0
- package/lib/esm/test/standalone/Setting.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Setting.test.js +76 -0
- package/lib/esm/test/standalone/Setting.test.js.map +1 -0
- package/lib/esm/test/standalone/Settings.test.d.ts +2 -0
- package/lib/esm/test/standalone/Settings.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Settings.test.js +349 -0
- package/lib/esm/test/standalone/Settings.test.js.map +1 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.d.ts +2 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.js +31 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/SnapshotDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js +156 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -0
- package/lib/esm/test/standalone/Texture.test.d.ts +2 -0
- package/lib/esm/test/standalone/Texture.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Texture.test.js +90 -0
- package/lib/esm/test/standalone/Texture.test.js.map +1 -0
- package/lib/esm/test/standalone/TileCache.test.d.ts +9 -0
- package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TileCache.test.js +127 -0
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -0
- package/lib/esm/test/standalone/TileTree.test.d.ts +2 -0
- package/lib/esm/test/standalone/TileTree.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TileTree.test.js +241 -0
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -0
- package/lib/esm/test/standalone/TxnManager.test.d.ts +2 -0
- package/lib/esm/test/standalone/TxnManager.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TxnManager.test.js +878 -0
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -0
- package/lib/esm/test/standalone/ViewDefinition.test.d.ts +2 -0
- package/lib/esm/test/standalone/ViewDefinition.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ViewDefinition.test.js +279 -0
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.js +288 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -0
- package/lib/esm/test/standalone/Workspace.test.d.ts +2 -0
- package/lib/esm/test/standalone/Workspace.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Workspace.test.js +162 -0
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -0
- package/lib/esm/workspace/Settings.d.ts +216 -0
- package/lib/esm/workspace/Settings.d.ts.map +1 -0
- package/lib/esm/workspace/Settings.js +83 -0
- package/lib/esm/workspace/Settings.js.map +1 -0
- package/lib/esm/workspace/SettingsSchemas.d.ts +135 -0
- package/lib/esm/workspace/SettingsSchemas.d.ts.map +1 -0
- package/lib/esm/workspace/SettingsSchemas.js +9 -0
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -0
- package/lib/esm/workspace/Workspace.d.ts +500 -0
- package/lib/esm/workspace/Workspace.d.ts.map +1 -0
- package/lib/esm/workspace/Workspace.js +97 -0
- package/lib/esm/workspace/Workspace.js.map +1 -0
- package/lib/esm/workspace/WorkspaceEditor.d.ts +240 -0
- package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -0
- package/lib/esm/workspace/WorkspaceEditor.js +31 -0
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -0
- package/package.json +37 -29
- package/lib/cjs/HubMock.d.ts.map +0 -1
- package/lib/cjs/HubMock.js.map +0 -1
- package/lib/cjs/IModelCloneContext.d.ts +0 -9
- package/lib/cjs/IModelCloneContext.d.ts.map +0 -1
- package/lib/cjs/IModelCloneContext.js.map +0 -1
package/lib/cjs/IModelDb.js
CHANGED
|
@@ -46,7 +46,11 @@ const WorkspaceImpl_1 = require("./internal/workspace/WorkspaceImpl");
|
|
|
46
46
|
const SettingsImpl_1 = require("./internal/workspace/SettingsImpl");
|
|
47
47
|
const NativePlatform_1 = require("./internal/NativePlatform");
|
|
48
48
|
const NoLocks_1 = require("./internal/NoLocks");
|
|
49
|
+
const IModelDbFontsImpl_1 = require("./internal/IModelDbFontsImpl");
|
|
49
50
|
const Symbols_1 = require("./internal/Symbols");
|
|
51
|
+
const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
|
|
52
|
+
const Schema_1 = require("./Schema");
|
|
53
|
+
const ElementLRUCache_1 = require("./internal/ElementLRUCache");
|
|
50
54
|
// spell:ignore fontid fontmap
|
|
51
55
|
const loggerCategory = BackendLoggerCategory_1.BackendLoggerCategory.IModelDb;
|
|
52
56
|
/** @internal */
|
|
@@ -85,10 +89,45 @@ class IModelSettings extends SettingsImpl_1.SettingsImpl {
|
|
|
85
89
|
* @public
|
|
86
90
|
*/
|
|
87
91
|
class IModelDb extends core_common_1.IModel {
|
|
92
|
+
_initialized = false;
|
|
93
|
+
/** Keep track of open imodels to support `tryFind` for RPC purposes */
|
|
94
|
+
static _openDbs = new Map();
|
|
95
|
+
static defaultLimit = 1000; // default limit for batching queries
|
|
96
|
+
static maxLimit = 10000; // maximum limit for batching queries
|
|
97
|
+
models = new IModelDb.Models(this);
|
|
98
|
+
elements = new IModelDb.Elements(this);
|
|
99
|
+
views = new IModelDb.Views(this);
|
|
100
|
+
tiles = new IModelDb.Tiles(this);
|
|
101
|
+
/** @beta */
|
|
102
|
+
channels = (0, ChannelAdmin_1.createChannelControl)(this);
|
|
103
|
+
_relationships;
|
|
104
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
105
|
+
_statementCache = new SqliteStatement_1.StatementCache();
|
|
106
|
+
_sqliteStatementCache = new SqliteStatement_1.StatementCache();
|
|
107
|
+
_codeSpecs;
|
|
108
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
109
|
+
_classMetaDataRegistry;
|
|
110
|
+
_jsClassMap;
|
|
111
|
+
_schemaMap;
|
|
112
|
+
_schemaContext;
|
|
113
|
+
/** @deprecated in 5.0.0. Use [[fonts]]. */
|
|
114
|
+
_fontMap; // eslint-disable-line @typescript-eslint/no-deprecated
|
|
115
|
+
_fonts = (0, IModelDbFontsImpl_1.createIModelDbFonts)(this);
|
|
116
|
+
_workspace;
|
|
117
|
+
_snaps = new Map();
|
|
118
|
+
static _shutdownListener; // so we only register listener once
|
|
119
|
+
/** @internal */
|
|
120
|
+
_locks = (0, NoLocks_1.createNoOpLockControl)();
|
|
121
|
+
/** @internal */
|
|
122
|
+
_codeService;
|
|
88
123
|
/** @alpha */
|
|
89
124
|
get codeService() { return this._codeService; }
|
|
90
125
|
/** The [[LockControl]] that orchestrates [concurrent editing]($docs/learning/backend/ConcurrencyControl.md) of this iModel. */
|
|
91
126
|
get locks() { return this._locks; } // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
127
|
+
/** Provides methods for interacting with [font-related information]($docs/learning/backend/Fonts.md) stored in this iModel.
|
|
128
|
+
* @beta
|
|
129
|
+
*/
|
|
130
|
+
get fonts() { return this._fonts; }
|
|
92
131
|
/**
|
|
93
132
|
* Get the [[Workspace]] for this iModel.
|
|
94
133
|
* @beta
|
|
@@ -98,6 +137,13 @@ class IModelDb extends core_common_1.IModel {
|
|
|
98
137
|
this._workspace = (0, WorkspaceImpl_1.constructWorkspace)(new IModelSettings());
|
|
99
138
|
return this._workspace;
|
|
100
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* get the cloud container for this iModel, if it was opened from one
|
|
142
|
+
* @beta
|
|
143
|
+
*/
|
|
144
|
+
get cloudContainer() {
|
|
145
|
+
return this[Symbols_1._nativeDb].cloudContainer;
|
|
146
|
+
}
|
|
101
147
|
/** Acquire the exclusive schema lock on this iModel.
|
|
102
148
|
* @note: To acquire the schema lock, all other briefcases must first release *all* their locks. No other briefcases
|
|
103
149
|
* will be able to acquire *any* locks while the schema lock is held.
|
|
@@ -109,6 +155,8 @@ class IModelDb extends core_common_1.IModel {
|
|
|
109
155
|
get holdsSchemaLock() {
|
|
110
156
|
return this.locks.holdsExclusiveLock(core_common_1.IModel.repositoryModelId);
|
|
111
157
|
}
|
|
158
|
+
/** Event called after a changeset is applied to this IModelDb. */
|
|
159
|
+
onChangesetApplied = new core_bentley_1.BeEvent();
|
|
112
160
|
/** @internal */
|
|
113
161
|
notifyChangesetApplied() {
|
|
114
162
|
this.changeset = this[Symbols_1._nativeDb].getCurrentChangeset();
|
|
@@ -118,25 +166,14 @@ class IModelDb extends core_common_1.IModel {
|
|
|
118
166
|
restartDefaultTxn() {
|
|
119
167
|
this[Symbols_1._nativeDb].restartDefaultTxn();
|
|
120
168
|
}
|
|
169
|
+
/** @deprecated in 5.0.0. Use [[fonts]]. */
|
|
121
170
|
get fontMap() {
|
|
122
|
-
return this._fontMap ?? (this._fontMap = new core_common_1.FontMap(this[Symbols_1._nativeDb].readFontMap()));
|
|
171
|
+
return this._fontMap ?? (this._fontMap = new core_common_1.FontMap(this[Symbols_1._nativeDb].readFontMap())); // eslint-disable-line @typescript-eslint/no-deprecated
|
|
123
172
|
}
|
|
124
173
|
/** @internal */
|
|
125
174
|
clearFontMap() {
|
|
126
|
-
this._fontMap = undefined;
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Add a new font name/type to the FontMap for this iModel and return its FontId.
|
|
130
|
-
* @param name The name of the font to add
|
|
131
|
-
* @param type The type of the font. Default is TrueType.
|
|
132
|
-
* @returns The FontId for the newly added font. If a font by that name/type already exists, this method does not fail, it returns the existing Id.
|
|
133
|
-
* @see [FontId and FontMap]($docs/learning/backend/Fonts.md#fontid-and-fontmap)
|
|
134
|
-
* @beta
|
|
135
|
-
*/
|
|
136
|
-
addNewFont(name, type) {
|
|
137
|
-
this.locks.checkExclusiveLock(core_common_1.IModel.repositoryModelId, "schema", "addNewFont");
|
|
138
|
-
this.clearFontMap();
|
|
139
|
-
return this[Symbols_1._nativeDb].addNewFont({ name, type: type ?? core_common_1.FontType.TrueType });
|
|
175
|
+
this._fontMap = undefined; // eslint-disable-line @typescript-eslint/no-deprecated
|
|
176
|
+
this[Symbols_1._nativeDb].invalidateFontMap();
|
|
140
177
|
}
|
|
141
178
|
/** Check if this iModel has been opened read-only or not. */
|
|
142
179
|
get isReadonly() { return this.openMode === core_bentley_1.OpenMode.Readonly; }
|
|
@@ -145,10 +182,8 @@ class IModelDb extends core_common_1.IModel {
|
|
|
145
182
|
(0, core_bentley_1.assert)(undefined !== super.iModelId);
|
|
146
183
|
return super.iModelId;
|
|
147
184
|
} // GuidString | undefined for the IModel superclass, but required for all IModelDb subclasses
|
|
148
|
-
/** @internal
|
|
149
|
-
|
|
150
|
-
*/
|
|
151
|
-
get nativeDb() { return this[Symbols_1._nativeDb]; }
|
|
185
|
+
/** @internal*/
|
|
186
|
+
[Symbols_1._nativeDb];
|
|
152
187
|
/** Get the full path fileName of this iModelDb
|
|
153
188
|
* @note this member is only valid while the iModel is opened.
|
|
154
189
|
*/
|
|
@@ -164,22 +199,6 @@ class IModelDb extends core_common_1.IModel {
|
|
|
164
199
|
/** @internal */
|
|
165
200
|
constructor(args) {
|
|
166
201
|
super({ ...args, iTwinId: args.nativeDb.getITwinId(), iModelId: args.nativeDb.getIModelId() });
|
|
167
|
-
this._initialized = false;
|
|
168
|
-
this.models = new IModelDb.Models(this);
|
|
169
|
-
this.elements = new IModelDb.Elements(this);
|
|
170
|
-
this.views = new IModelDb.Views(this);
|
|
171
|
-
this.tiles = new IModelDb.Tiles(this);
|
|
172
|
-
/** @beta */
|
|
173
|
-
this.channels = (0, ChannelAdmin_1.createChannelControl)(this);
|
|
174
|
-
this._statementCache = new SqliteStatement_1.StatementCache();
|
|
175
|
-
this._sqliteStatementCache = new SqliteStatement_1.StatementCache();
|
|
176
|
-
this._snaps = new Map();
|
|
177
|
-
/** @internal */
|
|
178
|
-
this._locks = (0, NoLocks_1.createNoOpLockControl)();
|
|
179
|
-
/** Event called after a changeset is applied to this IModelDb. */
|
|
180
|
-
this.onChangesetApplied = new core_bentley_1.BeEvent();
|
|
181
|
-
/** Event called when the iModel is about to be closed. */
|
|
182
|
-
this.onBeforeClose = new core_bentley_1.BeEvent();
|
|
183
202
|
this[Symbols_1._nativeDb] = args.nativeDb;
|
|
184
203
|
// it is illegal to create an IModelDb unless the nativeDb has been opened. Throw otherwise.
|
|
185
204
|
if (!this.isOpen)
|
|
@@ -209,6 +228,40 @@ class IModelDb extends core_common_1.IModel {
|
|
|
209
228
|
});
|
|
210
229
|
}
|
|
211
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Attach an iModel file to this connection and load and register its schemas.
|
|
233
|
+
* @note There are some reserve tablespace names that cannot be used. They are 'main', 'schema_sync_db', 'ecchange' & 'temp'
|
|
234
|
+
* @param fileName IModel file name
|
|
235
|
+
* @param alias identifier for the attached file. This identifer is used to access schema from the attached file. e.g. if alias is 'abc' then schema can be accessed using 'abc.MySchema.MyClass'
|
|
236
|
+
*
|
|
237
|
+
* *Example:*
|
|
238
|
+
* ``` ts
|
|
239
|
+
* [[include:IModelDb_attachDb.code]]
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
attachDb(fileName, alias) {
|
|
243
|
+
if (alias.toLowerCase() === "main" || alias.toLowerCase() === "schema_sync_db" || alias.toLowerCase() === "ecchange" || alias.toLowerCase() === "temp") {
|
|
244
|
+
throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Reserved tablespace name cannot be used");
|
|
245
|
+
}
|
|
246
|
+
this[Symbols_1._nativeDb].attachDb(fileName, alias);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Detach the attached file from this connection. The attached file is closed and its schemas are unregistered.
|
|
250
|
+
* @note There are some reserve tablespace names that cannot be used. They are 'main', 'schema_sync_db', 'ecchange' & 'temp'
|
|
251
|
+
* @param alias identifer that was used in the call to [[attachDb]]
|
|
252
|
+
*
|
|
253
|
+
* *Example:*
|
|
254
|
+
* ``` ts
|
|
255
|
+
* [[include:IModelDb_attachDb.code]]
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
258
|
+
detachDb(alias) {
|
|
259
|
+
if (alias.toLowerCase() === "main" || alias.toLowerCase() === "schema_sync_db" || alias.toLowerCase() === "ecchange" || alias.toLowerCase() === "temp") {
|
|
260
|
+
throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Reserved tablespace name cannot be used");
|
|
261
|
+
}
|
|
262
|
+
this.clearCaches();
|
|
263
|
+
this[Symbols_1._nativeDb].detachDb(alias);
|
|
264
|
+
}
|
|
212
265
|
/** Close this IModel, if it is currently open, and save changes if it was opened in ReadWrite mode. */
|
|
213
266
|
close() {
|
|
214
267
|
if (!this.isOpen)
|
|
@@ -226,6 +279,8 @@ class IModelDb extends core_common_1.IModel {
|
|
|
226
279
|
}
|
|
227
280
|
/** @internal */
|
|
228
281
|
async refreshContainerForRpc(_userAccessToken) { }
|
|
282
|
+
/** Event called when the iModel is about to be closed. */
|
|
283
|
+
onBeforeClose = new core_bentley_1.BeEvent();
|
|
229
284
|
/**
|
|
230
285
|
* Called by derived classes before closing the connection
|
|
231
286
|
* @internal
|
|
@@ -235,8 +290,8 @@ class IModelDb extends core_common_1.IModel {
|
|
|
235
290
|
this.clearCaches();
|
|
236
291
|
}
|
|
237
292
|
/** @internal */
|
|
238
|
-
initializeIModelDb() {
|
|
239
|
-
const props = this[Symbols_1._nativeDb].getIModelProps();
|
|
293
|
+
initializeIModelDb(when) {
|
|
294
|
+
const props = this[Symbols_1._nativeDb].getIModelProps(when);
|
|
240
295
|
super.initialize(props.rootSubject.name, props);
|
|
241
296
|
if (this._initialized)
|
|
242
297
|
return;
|
|
@@ -288,8 +343,11 @@ class IModelDb extends core_common_1.IModel {
|
|
|
288
343
|
* @returns the value returned by `callback`.
|
|
289
344
|
* @see [[withStatement]]
|
|
290
345
|
* @public
|
|
346
|
+
* @deprecated in 4.11. Use [[createQueryReader]] instead.
|
|
291
347
|
*/
|
|
348
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
292
349
|
withPreparedStatement(ecsql, callback, logErrors = true) {
|
|
350
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
293
351
|
const stmt = this._statementCache.findAndRemove(ecsql) ?? this.prepareStatement(ecsql, logErrors);
|
|
294
352
|
const release = () => this._statementCache.addOrDispose(stmt);
|
|
295
353
|
try {
|
|
@@ -317,10 +375,13 @@ class IModelDb extends core_common_1.IModel {
|
|
|
317
375
|
* @returns the value returned by `callback`.
|
|
318
376
|
* @see [[withPreparedStatement]]
|
|
319
377
|
* @public
|
|
378
|
+
* @deprecated in 4.11. Use [[createQueryReader]] instead.
|
|
320
379
|
*/
|
|
380
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
321
381
|
withStatement(ecsql, callback, logErrors = true) {
|
|
382
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
322
383
|
const stmt = this.prepareStatement(ecsql, logErrors);
|
|
323
|
-
const release = () => stmt.dispose();
|
|
384
|
+
const release = () => stmt[Symbol.dispose]();
|
|
324
385
|
try {
|
|
325
386
|
const val = callback(stmt);
|
|
326
387
|
if (val instanceof Promise) {
|
|
@@ -358,70 +419,6 @@ class IModelDb extends core_common_1.IModel {
|
|
|
358
419
|
};
|
|
359
420
|
return new core_common_1.ECSqlReader(executor, ecsql, params, config);
|
|
360
421
|
}
|
|
361
|
-
/** Execute a query and stream its results
|
|
362
|
-
* The result of the query is async iterator over the rows. The iterator will get next page automatically once rows in current page has been read.
|
|
363
|
-
* [ECSQL row]($docs/learning/ECSQLRowFormat).
|
|
364
|
-
*
|
|
365
|
-
* See also:
|
|
366
|
-
* - [ECSQL Overview]($docs/learning/backend/ExecutingECSQL)
|
|
367
|
-
* - [Code Examples]($docs/learning/backend/ECSQLCodeExamples)
|
|
368
|
-
*
|
|
369
|
-
* @param ecsql The ECSQL statement to execute
|
|
370
|
-
* @param params The values to bind to the parameters (if the ECSQL has any).
|
|
371
|
-
* @param options Allow to specify certain flags which control how query is executed.
|
|
372
|
-
* @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
|
|
373
|
-
* See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
|
|
374
|
-
* @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
|
|
375
|
-
* @deprecated in 3.7. Use [[createQueryReader]] instead; it accepts the same parameters.
|
|
376
|
-
*/
|
|
377
|
-
async *query(ecsql, params, options) {
|
|
378
|
-
const builder = new core_common_1.QueryOptionsBuilder(options);
|
|
379
|
-
const reader = this.createQueryReader(ecsql, params, builder.getOptions());
|
|
380
|
-
while (await reader.step())
|
|
381
|
-
yield reader.formatCurrentRow();
|
|
382
|
-
}
|
|
383
|
-
/** Compute number of rows that would be returned by the ECSQL.
|
|
384
|
-
*
|
|
385
|
-
* See also:
|
|
386
|
-
* - [ECSQL Overview]($docs/learning/backend/ExecutingECSQL)
|
|
387
|
-
* - [Code Examples]($docs/learning/backend/ECSQLCodeExamples)
|
|
388
|
-
*
|
|
389
|
-
* @param ecsql The ECSQL statement to execute
|
|
390
|
-
* @param params The values to bind to the parameters (if the ECSQL has any).
|
|
391
|
-
* See "[iTwin.js Types used in ECSQL Parameter Bindings]($docs/learning/ECSQLParameterTypes)" for details.
|
|
392
|
-
* @returns Return row count.
|
|
393
|
-
* @throws [IModelError]($common) If the statement is invalid
|
|
394
|
-
* @deprecated in 3.7. Count the number of results using `count(*)` where the original query is a subquery instead. E.g., `SELECT count(*) FROM (<query-whose-rows-to-count>)`.
|
|
395
|
-
*/
|
|
396
|
-
async queryRowCount(ecsql, params) {
|
|
397
|
-
for await (const row of this.createQueryReader(`SELECT count(*) FROM (${ecsql})`, params)) {
|
|
398
|
-
return row[0];
|
|
399
|
-
}
|
|
400
|
-
throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Failed to get row count");
|
|
401
|
-
}
|
|
402
|
-
/** Cancel any previous query with same token and run execute the current specified query.
|
|
403
|
-
* The result of the query is async iterator over the rows. The iterator will get next page automatically once rows in current page has been read.
|
|
404
|
-
* [ECSQL row]($docs/learning/ECSQLRowFormat).
|
|
405
|
-
*
|
|
406
|
-
* See also:
|
|
407
|
-
* - [ECSQL Overview]($docs/learning/backend/ExecutingECSQL)
|
|
408
|
-
* - [Code Examples]($docs/learning/backend/ECSQLCodeExamples)
|
|
409
|
-
*
|
|
410
|
-
* @param ecsql The ECSQL statement to execute
|
|
411
|
-
* @param token None empty restart token. The previous query with same token would be cancelled. This would cause
|
|
412
|
-
* exception which user code must handle.
|
|
413
|
-
* @param params The values to bind to the parameters (if the ECSQL has any).
|
|
414
|
-
* @param options Allow to specify certain flags which control how query is executed.
|
|
415
|
-
* @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
|
|
416
|
-
* See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
|
|
417
|
-
* @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
|
|
418
|
-
* @deprecated in 3.7. Use [[createQueryReader]] instead. Pass in the restart token as part of the `config` argument; e.g., `{ restartToken: myToken }` or `new QueryOptionsBuilder().setRestartToken(myToken).getOptions()`.
|
|
419
|
-
*/
|
|
420
|
-
async *restartQuery(token, ecsql, params, options) {
|
|
421
|
-
for await (const row of this.createQueryReader(ecsql, params, new core_common_1.QueryOptionsBuilder(options).setRestartToken(token).getOptions())) {
|
|
422
|
-
yield row;
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
422
|
/**
|
|
426
423
|
* Use a prepared SQL statement, potentially from the statement cache. If the requested statement doesn't exist
|
|
427
424
|
* in the statement cache, a new statement is prepared. After the callback completes, the statement is reset and saved
|
|
@@ -465,7 +462,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
465
462
|
*/
|
|
466
463
|
withSqliteStatement(sql, callback, logErrors = true) {
|
|
467
464
|
const stmt = this.prepareSqliteStatement(sql, logErrors);
|
|
468
|
-
const release = () => stmt.dispose();
|
|
465
|
+
const release = () => stmt[Symbol.dispose]();
|
|
469
466
|
try {
|
|
470
467
|
const val = callback(stmt);
|
|
471
468
|
if (val instanceof Promise) {
|
|
@@ -560,6 +557,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
560
557
|
if (typeof params.offset === "number" && params.offset > 0)
|
|
561
558
|
sql += ` OFFSET ${params.offset}`;
|
|
562
559
|
const ids = new Set();
|
|
560
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
563
561
|
this.withPreparedStatement(sql, (stmt) => {
|
|
564
562
|
if (params.bindings)
|
|
565
563
|
stmt.bindValues(params.bindings);
|
|
@@ -579,6 +577,11 @@ class IModelDb extends core_common_1.IModel {
|
|
|
579
577
|
this._statementCache.clear();
|
|
580
578
|
this._sqliteStatementCache.clear();
|
|
581
579
|
this._classMetaDataRegistry = undefined;
|
|
580
|
+
this._jsClassMap = undefined;
|
|
581
|
+
this._schemaMap = undefined;
|
|
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>
|
|
@@ -617,9 +620,11 @@ class IModelDb extends core_common_1.IModel {
|
|
|
617
620
|
updateIModelProps() {
|
|
618
621
|
this[Symbols_1._nativeDb].updateIModelProps(this.toJSON());
|
|
619
622
|
}
|
|
620
|
-
/** Commit
|
|
623
|
+
/** Commit unsaved changes in memory as a Txn to this iModelDb.
|
|
621
624
|
* @param description Optional description of the changes
|
|
622
625
|
* @throws [[IModelError]] if there is a problem saving changes or if there are pending, un-processed lock or code requests.
|
|
626
|
+
* @note This will not push changes to the iModelHub.
|
|
627
|
+
* @see [[IModelDb.pushChanges]] to push changes to the iModelHub.
|
|
623
628
|
*/
|
|
624
629
|
saveChanges(description) {
|
|
625
630
|
if (this.openMode === core_bentley_1.OpenMode.Readonly)
|
|
@@ -628,7 +633,9 @@ class IModelDb extends core_common_1.IModel {
|
|
|
628
633
|
if (core_bentley_1.DbResult.BE_SQLITE_OK !== stat)
|
|
629
634
|
throw new core_common_1.IModelError(stat, `Could not save changes (${description})`);
|
|
630
635
|
}
|
|
631
|
-
/** Abandon
|
|
636
|
+
/** Abandon changes in memory that have not been saved as a Txn to this iModelDb.
|
|
637
|
+
* @note This will not delete Txns that have already been saved, even if they have not yet been pushed.
|
|
638
|
+
*/
|
|
632
639
|
abandonChanges() {
|
|
633
640
|
this[Symbols_1._nativeDb].abandonChanges();
|
|
634
641
|
}
|
|
@@ -873,12 +880,54 @@ class IModelDb extends core_common_1.IModel {
|
|
|
873
880
|
}
|
|
874
881
|
/** The registry of entity metadata for this iModel.
|
|
875
882
|
* @internal
|
|
883
|
+
* @deprecated in 5.0. Please use `schemaContext` from the `iModel` instead.
|
|
884
|
+
*
|
|
885
|
+
* @example
|
|
886
|
+
* ```typescript
|
|
887
|
+
* // Current usage:
|
|
888
|
+
* const classMetaData: EntityMetaData | undefined = iModel.classMetaDataRegistry.find("SchemaName:ClassName");
|
|
889
|
+
*
|
|
890
|
+
* // Replacement:
|
|
891
|
+
* const metaData: EntityClass | undefined = imodel.schemaContext.getSchemaItemSync("SchemaName.ClassName", EntityClass);
|
|
892
|
+
* ```
|
|
876
893
|
*/
|
|
894
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
877
895
|
get classMetaDataRegistry() {
|
|
878
896
|
if (this._classMetaDataRegistry === undefined)
|
|
897
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
879
898
|
this._classMetaDataRegistry = new ClassRegistry_1.MetaDataRegistry();
|
|
880
899
|
return this._classMetaDataRegistry;
|
|
881
900
|
}
|
|
901
|
+
/**
|
|
902
|
+
* Allows registering js classes mapped to ECClasses
|
|
903
|
+
*/
|
|
904
|
+
get jsClassMap() {
|
|
905
|
+
if (this._jsClassMap === undefined)
|
|
906
|
+
this._jsClassMap = new ClassRegistry_1.EntityJsClassMap();
|
|
907
|
+
return this._jsClassMap;
|
|
908
|
+
}
|
|
909
|
+
/**
|
|
910
|
+
* Allows locally registering a schema for this imodel, in constrast to [Schemas.registerSchema] which is a global operation
|
|
911
|
+
*/
|
|
912
|
+
get schemaMap() {
|
|
913
|
+
if (this._schemaMap === undefined)
|
|
914
|
+
this._schemaMap = new Schema_1.SchemaMap();
|
|
915
|
+
return this._schemaMap;
|
|
916
|
+
}
|
|
917
|
+
/**
|
|
918
|
+
* Gets the context that allows accessing the metadata (ecschema-metadata package) of this iModel
|
|
919
|
+
* @public @preview
|
|
920
|
+
*/
|
|
921
|
+
get schemaContext() {
|
|
922
|
+
if (this._schemaContext === undefined) {
|
|
923
|
+
const context = new ecschema_metadata_1.SchemaContext();
|
|
924
|
+
// TODO: We probably need a more optimized locater for here
|
|
925
|
+
const locater = new ecschema_metadata_1.SchemaJsonLocater((name) => this.getSchemaProps(name));
|
|
926
|
+
context.addLocater(locater);
|
|
927
|
+
this._schemaContext = context;
|
|
928
|
+
}
|
|
929
|
+
return this._schemaContext;
|
|
930
|
+
}
|
|
882
931
|
/** Get the linkTableRelationships for this IModel */
|
|
883
932
|
get relationships() {
|
|
884
933
|
return this._relationships || (this._relationships = new Relationship_1.Relationships(this));
|
|
@@ -891,8 +940,11 @@ class IModelDb extends core_common_1.IModel {
|
|
|
891
940
|
* @param sql The ECSQL statement to prepare
|
|
892
941
|
* @param logErrors Determines if error will be logged if statement fail to prepare
|
|
893
942
|
* @throws [[IModelError]] if there is a problem preparing the statement.
|
|
943
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
894
944
|
*/
|
|
945
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
895
946
|
prepareStatement(sql, logErrors = true) {
|
|
947
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
896
948
|
const stmt = new ECSqlStatement_1.ECSqlStatement();
|
|
897
949
|
stmt.prepare(this[Symbols_1._nativeDb], sql, logErrors);
|
|
898
950
|
return stmt;
|
|
@@ -900,8 +952,11 @@ class IModelDb extends core_common_1.IModel {
|
|
|
900
952
|
/** Prepare an ECSQL statement.
|
|
901
953
|
* @param sql The ECSQL statement to prepare
|
|
902
954
|
* @returns `undefined` if there is a problem preparing the statement.
|
|
955
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
903
956
|
*/
|
|
957
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
904
958
|
tryPrepareStatement(sql) {
|
|
959
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
905
960
|
const statement = new ECSqlStatement_1.ECSqlStatement();
|
|
906
961
|
const result = statement.tryPrepare(this[Symbols_1._nativeDb], sql);
|
|
907
962
|
return core_bentley_1.DbResult.BE_SQLITE_OK === result.status ? statement : undefined;
|
|
@@ -922,26 +977,72 @@ class IModelDb extends core_common_1.IModel {
|
|
|
922
977
|
if (!ClassRegistry_1.ClassRegistry.isNotFoundError(err)) {
|
|
923
978
|
throw err;
|
|
924
979
|
}
|
|
980
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
925
981
|
this.loadMetaData(classFullName);
|
|
926
982
|
return ClassRegistry_1.ClassRegistry.getClass(classFullName, this);
|
|
927
983
|
}
|
|
928
984
|
}
|
|
985
|
+
/** Constructs a ResolveInstanceKeyArgs from given parameters
|
|
986
|
+
* @throws [[IModelError]] if the combination of supplied parameters is invalid.
|
|
987
|
+
* @internal
|
|
988
|
+
*/
|
|
989
|
+
getInstanceArgs(instanceId, baseClassName, federationGuid, code) {
|
|
990
|
+
if (instanceId && baseClassName) {
|
|
991
|
+
return { partialKey: { id: instanceId, baseClassName } };
|
|
992
|
+
}
|
|
993
|
+
else if (federationGuid) {
|
|
994
|
+
return { federationGuid };
|
|
995
|
+
}
|
|
996
|
+
else if (code) {
|
|
997
|
+
return { code };
|
|
998
|
+
}
|
|
999
|
+
else {
|
|
1000
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Either instanceId and baseClassName or federationGuid or code must be specified");
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
929
1003
|
/** Get metadata for a class. This method will load the metadata from the iModel into the cache as a side-effect, if necessary.
|
|
930
1004
|
* @throws [[IModelError]] if the metadata cannot be found nor loaded.
|
|
1005
|
+
* @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
|
|
1006
|
+
*
|
|
1007
|
+
* @example
|
|
1008
|
+
* * ```typescript
|
|
1009
|
+
* // Current usage:
|
|
1010
|
+
* const metaData: EntityMetaData = imodel.getMetaData("SchemaName:ClassName");
|
|
1011
|
+
*
|
|
1012
|
+
* // Replacement:
|
|
1013
|
+
* const metaData: EntityClass | undefined = imodel.schemaContext.getSchemaItemSync("SchemaName", "ClassName", EntityClass);
|
|
1014
|
+
* ```
|
|
931
1015
|
*/
|
|
1016
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
932
1017
|
getMetaData(classFullName) {
|
|
1018
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
933
1019
|
let metadata = this.classMetaDataRegistry.find(classFullName);
|
|
934
1020
|
if (metadata === undefined) {
|
|
1021
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
935
1022
|
this.loadMetaData(classFullName);
|
|
1023
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
936
1024
|
metadata = this.classMetaDataRegistry.find(classFullName);
|
|
937
1025
|
if (metadata === undefined)
|
|
938
1026
|
throw ClassRegistry_1.ClassRegistry.makeMetaDataNotFoundError(classFullName); // do not log
|
|
939
1027
|
}
|
|
940
1028
|
return metadata;
|
|
941
1029
|
}
|
|
942
|
-
/** Identical to [[getMetaData]], except it returns `undefined` instead of throwing an error if the metadata cannot be found nor loaded.
|
|
1030
|
+
/** Identical to [[getMetaData]], except it returns `undefined` instead of throwing an error if the metadata cannot be found nor loaded.
|
|
1031
|
+
* @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
|
|
1032
|
+
*
|
|
1033
|
+
* @example
|
|
1034
|
+
* * ```typescript
|
|
1035
|
+
* // Current usage:
|
|
1036
|
+
* const metaData: EntityMetaData | undefined = imodel.tryGetMetaData("SchemaName:ClassName");
|
|
1037
|
+
*
|
|
1038
|
+
* // Replacement:
|
|
1039
|
+
* const metaData: EntityClass | undefined = imodel.schemaContext.getSchemaItemSync("SchemaName.ClassName", EntityClass);
|
|
1040
|
+
* ```
|
|
1041
|
+
*/
|
|
1042
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
943
1043
|
tryGetMetaData(classFullName) {
|
|
944
1044
|
try {
|
|
1045
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
945
1046
|
return this.getMetaData(classFullName);
|
|
946
1047
|
}
|
|
947
1048
|
catch {
|
|
@@ -955,8 +1056,24 @@ class IModelDb extends core_common_1.IModel {
|
|
|
955
1056
|
* @param func The callback to be invoked on each property
|
|
956
1057
|
* @param includeCustom If true (default), include custom-handled properties in the iteration. Otherwise, skip custom-handled properties.
|
|
957
1058
|
* @note Custom-handled properties are core properties that have behavior enforced by C++ handlers.
|
|
1059
|
+
* @deprecated in 5.0. Please use `forEachProperty` instead.
|
|
1060
|
+
*
|
|
1061
|
+
* @example
|
|
1062
|
+
* ```typescript
|
|
1063
|
+
* // Current usage:
|
|
1064
|
+
* IModelDb.forEachMetaData(imodel, "BisCore:Element", true, (name: string, propMetaData: PropertyMetaData) => {
|
|
1065
|
+
* console.log(`Property name: ${name}, Property type: ${propMetaData.primitiveType}`);
|
|
1066
|
+
* }, false);
|
|
1067
|
+
*
|
|
1068
|
+
* // Replacement:
|
|
1069
|
+
* await IModelDb.forEachProperty(imodel, "TestDomain.TestDomainClass", true, (propName: string, property: Property) => {
|
|
1070
|
+
* console.log(`Property name: ${propName}, Property type: ${property.propertyType}`);
|
|
1071
|
+
* }, false);
|
|
1072
|
+
* ```
|
|
958
1073
|
*/
|
|
1074
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
959
1075
|
static forEachMetaData(iModel, classFullName, wantSuper, func, includeCustom = true) {
|
|
1076
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
960
1077
|
iModel.forEachMetaData(classFullName, wantSuper, func, includeCustom);
|
|
961
1078
|
}
|
|
962
1079
|
/** Invoke a callback on each property of the specified class, optionally including superclass properties.
|
|
@@ -965,8 +1082,24 @@ class IModelDb extends core_common_1.IModel {
|
|
|
965
1082
|
* @param func The callback to be invoked on each property
|
|
966
1083
|
* @param includeCustom If true (default), include custom-handled properties in the iteration. Otherwise, skip custom-handled properties.
|
|
967
1084
|
* @note Custom-handled properties are core properties that have behavior enforced by C++ handlers.
|
|
1085
|
+
* @deprecated in 5.0. Use `forEachProperty` from `SchemaContext` class instead.
|
|
1086
|
+
*
|
|
1087
|
+
* @example
|
|
1088
|
+
* ```typescript
|
|
1089
|
+
* // Current usage:
|
|
1090
|
+
* iModel.forEachMetaData("BisCore:Element", true, (name: string, propMetaData: PropertyMetaData) => {
|
|
1091
|
+
* console.log(`Property name: ${name}, Property type: ${propMetaData.primitiveType}`);
|
|
1092
|
+
* });
|
|
1093
|
+
*
|
|
1094
|
+
* // Replacement:
|
|
1095
|
+
* imodel.schemaContext.forEachProperty("BisCore:Element", true, (propName: string, property: Property) => {
|
|
1096
|
+
* console.log(`Property name: ${propName}, Property type: ${property.propertyType}`);
|
|
1097
|
+
* });
|
|
1098
|
+
* ```
|
|
968
1099
|
*/
|
|
1100
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
969
1101
|
forEachMetaData(classFullName, wantSuper, func, includeCustom = true) {
|
|
1102
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
970
1103
|
const meta = this.getMetaData(classFullName); // will load if necessary
|
|
971
1104
|
for (const propName in meta.properties) { // eslint-disable-line guard-for-in
|
|
972
1105
|
const propMeta = meta.properties[propName];
|
|
@@ -974,10 +1107,15 @@ class IModelDb extends core_common_1.IModel {
|
|
|
974
1107
|
func(propName, propMeta);
|
|
975
1108
|
}
|
|
976
1109
|
if (wantSuper && meta.baseClasses && meta.baseClasses.length > 0)
|
|
1110
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
977
1111
|
meta.baseClasses.forEach((baseClass) => this.forEachMetaData(baseClass, true, func, includeCustom));
|
|
978
1112
|
}
|
|
979
|
-
/**
|
|
1113
|
+
/**
|
|
1114
|
+
* @internal
|
|
1115
|
+
* @deprecated in 5.0. Please use `schemaContext` from `iModel` instead to get metadata.
|
|
1116
|
+
*/
|
|
980
1117
|
loadMetaData(classFullName) {
|
|
1118
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
981
1119
|
if (this.classMetaDataRegistry.find(classFullName))
|
|
982
1120
|
return;
|
|
983
1121
|
const className = classFullName.split(":");
|
|
@@ -987,10 +1125,13 @@ class IModelDb extends core_common_1.IModel {
|
|
|
987
1125
|
if (val.error)
|
|
988
1126
|
throw new core_common_1.IModelError(val.error.status, `Error getting class meta data for: ${classFullName}`);
|
|
989
1127
|
(0, core_bentley_1.assert)(undefined !== val.result);
|
|
1128
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
990
1129
|
const metaData = new core_common_1.EntityMetaData(JSON.parse(val.result));
|
|
1130
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
991
1131
|
this.classMetaDataRegistry.add(classFullName, metaData);
|
|
992
1132
|
// Recursive, to make sure that base classes are cached.
|
|
993
1133
|
if (metaData.baseClasses !== undefined && metaData.baseClasses.length > 0)
|
|
1134
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
994
1135
|
metaData.baseClasses.forEach((baseClassName) => this.loadMetaData(baseClassName));
|
|
995
1136
|
}
|
|
996
1137
|
/** Returns the full schema for the input name.
|
|
@@ -1016,6 +1157,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
1016
1157
|
*/
|
|
1017
1158
|
querySchemaVersion(schemaName) {
|
|
1018
1159
|
const sql = `SELECT VersionMajor,VersionWrite,VersionMinor FROM ECDbMeta.ECSchemaDef WHERE Name=:schemaName LIMIT 1`;
|
|
1160
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1019
1161
|
return this.withPreparedStatement(sql, (statement) => {
|
|
1020
1162
|
statement.bindString("schemaName", schemaName);
|
|
1021
1163
|
if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
@@ -1192,6 +1334,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
1192
1334
|
async generateElementGraphics(request) {
|
|
1193
1335
|
return (0, ElementGraphics_1.generateElementGraphics)(request, this);
|
|
1194
1336
|
}
|
|
1337
|
+
static _settingPropNamespace = "settings";
|
|
1195
1338
|
/** Save a `SettingDictionary` in this iModel that will be loaded into [[workspace.settings]] every time this iModel is opened in future sessions.
|
|
1196
1339
|
* @param name The name for the SettingDictionary. If a dictionary by that name already exists in the iModel, its value is replaced.
|
|
1197
1340
|
* @param dict The SettingDictionary object to stringify and save.
|
|
@@ -1284,19 +1427,63 @@ class IModelDb extends core_common_1.IModel {
|
|
|
1284
1427
|
justification: core_geometry_1.Range2d.fromJSON(props.justification),
|
|
1285
1428
|
};
|
|
1286
1429
|
}
|
|
1430
|
+
/** Writes the contents of a single ECSchema to a file on the local file system.
|
|
1431
|
+
* @beta
|
|
1432
|
+
*/
|
|
1433
|
+
exportSchema(args) {
|
|
1434
|
+
processSchemaWriteStatus(this[Symbols_1._nativeDb].exportSchema(args.schemaName, args.outputDirectory, args.outputFileName));
|
|
1435
|
+
}
|
|
1436
|
+
/** Writes the contents of all ECSchemas in this iModel to files in a directory on the local file system.
|
|
1437
|
+
* @beta
|
|
1438
|
+
*/
|
|
1439
|
+
exportSchemas(outputDirectory) {
|
|
1440
|
+
processSchemaWriteStatus(this[Symbols_1._nativeDb].exportSchemas(outputDirectory));
|
|
1441
|
+
}
|
|
1442
|
+
/** Attempt to simplify the geometry stream of a single [[GeometricElement]] or [[GeometryPart]] as specified by `args`.
|
|
1443
|
+
* @beta
|
|
1444
|
+
*/
|
|
1445
|
+
simplifyElementGeometry(args) {
|
|
1446
|
+
return this[Symbols_1._nativeDb].simplifyElementGeometry(args);
|
|
1447
|
+
}
|
|
1448
|
+
/** Attempts to optimize all of the geometry in this iModel by identifying [[GeometryPart]]s that are referenced by exactly one
|
|
1449
|
+
* element's geometry stream. Each such reference is replaced by inserting the part's geometry directly into the element's geometry stream.
|
|
1450
|
+
* Then, the no-longer-used geometry part is deleted.
|
|
1451
|
+
* This can improve performance when a connector inadvertently creates large numbers of parts that are each only used once.
|
|
1452
|
+
* @beta
|
|
1453
|
+
*/
|
|
1454
|
+
inlineGeometryParts() {
|
|
1455
|
+
return this[Symbols_1._nativeDb].inlineGeometryPartReferences();
|
|
1456
|
+
}
|
|
1457
|
+
/** Returns a string representation of the error that most recently arose during an operation on the underlying SQLite database.
|
|
1458
|
+
* If no errors have occurred, an empty string is returned.
|
|
1459
|
+
* Otherwise, a string of the format `message (code)` is returned, where `message` is a human-readable diagnostic string and `code` is an integer status code.
|
|
1460
|
+
* See [SQLite error codes and messages](https://www.sqlite.org/c3ref/errcode.html)
|
|
1461
|
+
* @note Do not rely upon this value or its specific contents in error handling logic. It is only intended for use in debugging.
|
|
1462
|
+
*/
|
|
1463
|
+
getLastError() {
|
|
1464
|
+
return this[Symbols_1._nativeDb].getLastError();
|
|
1465
|
+
}
|
|
1287
1466
|
}
|
|
1288
1467
|
exports.IModelDb = IModelDb;
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1468
|
+
function processSchemaWriteStatus(status) {
|
|
1469
|
+
switch (status) {
|
|
1470
|
+
case 0 /* SchemaWriteStatus.Success */: return;
|
|
1471
|
+
case 1 /* SchemaWriteStatus.FailedToSaveXml */: throw new Error("Failed to save schema XML");
|
|
1472
|
+
case 2 /* SchemaWriteStatus.FailedToCreateXml */: throw new Error("Failed to create schema XML");
|
|
1473
|
+
case 3 /* SchemaWriteStatus.FailedToCreateJson */: throw new Error("Failed to create schema JSON");
|
|
1474
|
+
case 4 /* SchemaWriteStatus.FailedToWriteFile */: throw new Error("Failed to write schema file");
|
|
1475
|
+
default: throw new Error("Unknown error while exporting schema");
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1294
1478
|
/** @public */
|
|
1295
1479
|
(function (IModelDb) {
|
|
1296
1480
|
/** The collection of models in an [[IModelDb]].
|
|
1297
1481
|
* @public
|
|
1298
1482
|
*/
|
|
1299
1483
|
class Models {
|
|
1484
|
+
_iModel;
|
|
1485
|
+
/** @internal */
|
|
1486
|
+
[Symbols_1._cache] = new core_bentley_1.LRUMap(500);
|
|
1300
1487
|
/** @internal */
|
|
1301
1488
|
constructor(_iModel) {
|
|
1302
1489
|
this._iModel = _iModel;
|
|
@@ -1307,7 +1494,10 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1307
1494
|
* @see tryGetModelProps
|
|
1308
1495
|
*/
|
|
1309
1496
|
getModelProps(id) {
|
|
1310
|
-
|
|
1497
|
+
const model = this.tryGetModelProps(id);
|
|
1498
|
+
if (undefined === model)
|
|
1499
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model=${id}`);
|
|
1500
|
+
return model;
|
|
1311
1501
|
}
|
|
1312
1502
|
/** Get the ModelProps with the specified identifier.
|
|
1313
1503
|
* @param modelId The Model identifier.
|
|
@@ -1317,7 +1507,25 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1317
1507
|
* @see getModelProps
|
|
1318
1508
|
*/
|
|
1319
1509
|
tryGetModelProps(id) {
|
|
1320
|
-
|
|
1510
|
+
try {
|
|
1511
|
+
if (IModelHost_1.IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
|
|
1512
|
+
return this._iModel[Symbols_1._nativeDb].getModel({ id });
|
|
1513
|
+
}
|
|
1514
|
+
const cachedMdl = this[Symbols_1._cache].get(id);
|
|
1515
|
+
if (cachedMdl) {
|
|
1516
|
+
return cachedMdl;
|
|
1517
|
+
}
|
|
1518
|
+
const options = { useJsNames: true };
|
|
1519
|
+
const instanceKey = this.resolveModelKey({ id });
|
|
1520
|
+
const rawInstance = this._iModel[Symbols_1._nativeDb].readInstance(instanceKey, options);
|
|
1521
|
+
const classDef = this._iModel.getJsClass(rawInstance.classFullName);
|
|
1522
|
+
const modelProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel });
|
|
1523
|
+
this[Symbols_1._cache].set(id, modelProps);
|
|
1524
|
+
return modelProps;
|
|
1525
|
+
}
|
|
1526
|
+
catch {
|
|
1527
|
+
return undefined;
|
|
1528
|
+
}
|
|
1321
1529
|
}
|
|
1322
1530
|
/** Query for the last modified time for a [[Model]].
|
|
1323
1531
|
* @param modelId The Id of the model.
|
|
@@ -1325,6 +1533,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1325
1533
|
*/
|
|
1326
1534
|
queryLastModifiedTime(modelId) {
|
|
1327
1535
|
const sql = `SELECT LastMod FROM ${Model_1.Model.classFullName} WHERE ECInstanceId=:modelId`;
|
|
1536
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1328
1537
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1329
1538
|
statement.bindId("modelId", modelId);
|
|
1330
1539
|
if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
@@ -1363,32 +1572,22 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1363
1572
|
return model; // modelClass was not specified, cannot call instanceof to validate
|
|
1364
1573
|
return model instanceof modelClass ? model : undefined;
|
|
1365
1574
|
}
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
* @internal
|
|
1372
|
-
*/
|
|
1373
|
-
getModelJson(modelIdArg) {
|
|
1374
|
-
const modelJson = this.tryGetModelJson(modelIdArg);
|
|
1375
|
-
if (undefined === modelJson) {
|
|
1376
|
-
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model=(id: ${modelIdArg.id}, code: ${modelIdArg.code})`);
|
|
1575
|
+
resolveModelKey(modelIdArg) {
|
|
1576
|
+
const baseClassName = "BisCore:Model";
|
|
1577
|
+
let args;
|
|
1578
|
+
if (modelIdArg.id) {
|
|
1579
|
+
args = { partialKey: { id: modelIdArg.id, baseClassName } };
|
|
1377
1580
|
}
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
* @see getModelJson
|
|
1384
|
-
*/
|
|
1385
|
-
tryGetModelJson(modelIdArg) {
|
|
1386
|
-
try {
|
|
1387
|
-
return this._iModel[Symbols_1._nativeDb].getModel(modelIdArg);
|
|
1581
|
+
else if (modelIdArg.code) {
|
|
1582
|
+
const modelId = this._iModel.elements.getElementProps({ code: modelIdArg.code }).id;
|
|
1583
|
+
if (!modelId)
|
|
1584
|
+
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}])`);
|
|
1585
|
+
args = { partialKey: { id: modelId, baseClassName } };
|
|
1388
1586
|
}
|
|
1389
|
-
|
|
1390
|
-
|
|
1587
|
+
else {
|
|
1588
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
|
|
1391
1589
|
}
|
|
1590
|
+
return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
|
|
1392
1591
|
}
|
|
1393
1592
|
/** Get the sub-model of the specified Element.
|
|
1394
1593
|
* See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
|
|
@@ -1441,6 +1640,8 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1441
1640
|
*/
|
|
1442
1641
|
updateModel(props) {
|
|
1443
1642
|
try {
|
|
1643
|
+
if (props.id)
|
|
1644
|
+
this[Symbols_1._cache].delete(props.id);
|
|
1444
1645
|
this._iModel[Symbols_1._nativeDb].updateModel(props);
|
|
1445
1646
|
}
|
|
1446
1647
|
catch (err) {
|
|
@@ -1457,6 +1658,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1457
1658
|
* @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
|
|
1458
1659
|
*/
|
|
1459
1660
|
updateGeometryGuid(modelId) {
|
|
1661
|
+
this._iModel.models[Symbols_1._cache].delete(modelId);
|
|
1460
1662
|
const error = this._iModel[Symbols_1._nativeDb].updateModelGeometryGuid(modelId);
|
|
1461
1663
|
if (error !== core_bentley_1.IModelStatus.Success)
|
|
1462
1664
|
throw new core_common_1.IModelError(error, `updating geometry guid for model ${modelId}`);
|
|
@@ -1468,6 +1670,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1468
1670
|
deleteModel(ids) {
|
|
1469
1671
|
core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
|
|
1470
1672
|
try {
|
|
1673
|
+
this[Symbols_1._cache].delete(id);
|
|
1471
1674
|
this._iModel[Symbols_1._nativeDb].deleteModel(id);
|
|
1472
1675
|
}
|
|
1473
1676
|
catch (err) {
|
|
@@ -1504,6 +1707,9 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1504
1707
|
* @public
|
|
1505
1708
|
*/
|
|
1506
1709
|
class Elements {
|
|
1710
|
+
_iModel;
|
|
1711
|
+
/** @internal */
|
|
1712
|
+
[Symbols_1._cache] = new ElementLRUCache_1.ElementLRUCache();
|
|
1507
1713
|
/** @internal */
|
|
1508
1714
|
constructor(_iModel) {
|
|
1509
1715
|
this._iModel = _iModel;
|
|
@@ -1520,50 +1726,40 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1520
1726
|
return !stmt.nextRow() ? undefined : stmt.getValueId(0);
|
|
1521
1727
|
}) : undefined;
|
|
1522
1728
|
}
|
|
1523
|
-
/** Read element data from the iModel as JSON
|
|
1524
|
-
* @param elementIdArg a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
|
|
1525
|
-
* @returns The JSON properties of the element.
|
|
1526
|
-
* @throws [[IModelError]] if the element is not found or cannot be loaded.
|
|
1527
|
-
* @see tryGetElementJson
|
|
1528
|
-
* @internal
|
|
1529
|
-
*/
|
|
1530
|
-
getElementJson(elementId) {
|
|
1531
|
-
const elementProps = this.tryGetElementJson(elementId);
|
|
1532
|
-
if (undefined === elementProps)
|
|
1533
|
-
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `reading element={id: ${elementId.id} federationGuid: ${elementId.federationGuid}, code: ${elementId.code}}`);
|
|
1534
|
-
return elementProps;
|
|
1535
|
-
}
|
|
1536
|
-
/** Read element data from the iModel as JSON
|
|
1537
|
-
* @param loadProps - a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
|
|
1538
|
-
* @returns The JSON properties of the element or `undefined` if the element is not found.
|
|
1539
|
-
* @throws [[IModelError]] if the element exists, but cannot be loaded.
|
|
1540
|
-
* @see getElementJson
|
|
1541
|
-
*/
|
|
1542
|
-
tryGetElementJson(loadProps) {
|
|
1543
|
-
try {
|
|
1544
|
-
return this._iModel[Symbols_1._nativeDb].getElement(loadProps);
|
|
1545
|
-
}
|
|
1546
|
-
catch {
|
|
1547
|
-
return undefined;
|
|
1548
|
-
}
|
|
1549
|
-
}
|
|
1550
1729
|
/** Get properties of an Element by Id, FederationGuid, or Code
|
|
1551
1730
|
* @throws [[IModelError]] if the element is not found or cannot be loaded.
|
|
1552
1731
|
* @see tryGetElementProps
|
|
1553
1732
|
*/
|
|
1554
1733
|
getElementProps(props) {
|
|
1734
|
+
const elProp = this.tryGetElementProps(props);
|
|
1735
|
+
if (undefined === elProp)
|
|
1736
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `element not found`);
|
|
1737
|
+
return elProp;
|
|
1738
|
+
}
|
|
1739
|
+
resolveElementKey(props) {
|
|
1740
|
+
const baseClassName = "BisCore:Element";
|
|
1741
|
+
let args;
|
|
1555
1742
|
if (typeof props === "string") {
|
|
1556
|
-
|
|
1743
|
+
args = core_bentley_1.Id64.isId64(props) ? { partialKey: { id: props, baseClassName } } : { federationGuid: props };
|
|
1557
1744
|
}
|
|
1558
1745
|
else if (props instanceof core_common_1.Code) {
|
|
1559
|
-
|
|
1746
|
+
args = { code: props };
|
|
1560
1747
|
}
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1748
|
+
else {
|
|
1749
|
+
if (props.id) {
|
|
1750
|
+
args = { partialKey: { id: props.id, baseClassName } };
|
|
1751
|
+
}
|
|
1752
|
+
else if (props.federationGuid) {
|
|
1753
|
+
args = { federationGuid: props.federationGuid };
|
|
1754
|
+
}
|
|
1755
|
+
else if (props.code) {
|
|
1756
|
+
args = { code: props.code };
|
|
1757
|
+
}
|
|
1758
|
+
else {
|
|
1759
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
|
|
1760
|
+
}
|
|
1566
1761
|
}
|
|
1762
|
+
return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
|
|
1567
1763
|
}
|
|
1568
1764
|
/** Get properties of an Element by Id, FederationGuid, or Code
|
|
1569
1765
|
* @returns The properties of the element or `undefined` if the element is not found.
|
|
@@ -1571,14 +1767,32 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1571
1767
|
* @note Useful for cases when an element may or may not exist and throwing an `Error` would be overkill.
|
|
1572
1768
|
* @see getElementProps
|
|
1573
1769
|
*/
|
|
1574
|
-
tryGetElementProps(
|
|
1575
|
-
if (typeof
|
|
1576
|
-
|
|
1770
|
+
tryGetElementProps(props) {
|
|
1771
|
+
if (typeof props === "string") {
|
|
1772
|
+
props = core_bentley_1.Id64.isId64(props) ? { id: props } : { federationGuid: props };
|
|
1577
1773
|
}
|
|
1578
|
-
else if (
|
|
1579
|
-
|
|
1774
|
+
else if (props instanceof core_common_1.Code) {
|
|
1775
|
+
props = { code: props };
|
|
1776
|
+
}
|
|
1777
|
+
try {
|
|
1778
|
+
if (IModelHost_1.IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
|
|
1779
|
+
return this._iModel[Symbols_1._nativeDb].getElement(props);
|
|
1780
|
+
}
|
|
1781
|
+
const cachedElm = this[Symbols_1._cache].get(props);
|
|
1782
|
+
if (cachedElm) {
|
|
1783
|
+
return cachedElm.elProps;
|
|
1784
|
+
}
|
|
1785
|
+
const options = { ...props, useJsNames: true };
|
|
1786
|
+
const instanceKey = this.resolveElementKey(props);
|
|
1787
|
+
const rawInstance = this._iModel[Symbols_1._nativeDb].readInstance(instanceKey, options);
|
|
1788
|
+
const classDef = this._iModel.getJsClass(rawInstance.classFullName);
|
|
1789
|
+
const elementProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel, options: { element: props } });
|
|
1790
|
+
this[Symbols_1._cache].set({ elProps: elementProps, loadOptions: props });
|
|
1791
|
+
return elementProps;
|
|
1792
|
+
}
|
|
1793
|
+
catch {
|
|
1794
|
+
return undefined;
|
|
1580
1795
|
}
|
|
1581
|
-
return this.tryGetElementJson(elementId);
|
|
1582
1796
|
}
|
|
1583
1797
|
/** Get an element by Id, FederationGuid, or Code
|
|
1584
1798
|
* @param elementId either the element's Id, Code, or FederationGuid, or an ElementLoadProps
|
|
@@ -1611,7 +1825,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1611
1825
|
elementId = { code: elementId };
|
|
1612
1826
|
else
|
|
1613
1827
|
elementId.onlyBaseProperties = false; // we must load all properties to construct the element.
|
|
1614
|
-
const elementProps = this.
|
|
1828
|
+
const elementProps = this.tryGetElementProps(elementId);
|
|
1615
1829
|
if (undefined === elementProps)
|
|
1616
1830
|
return undefined; // no Element with that elementId found
|
|
1617
1831
|
const element = this._iModel.constructEntity(elementProps);
|
|
@@ -1635,6 +1849,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1635
1849
|
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidCodeSpec, "Invalid CodeSpec");
|
|
1636
1850
|
if (code.value === undefined)
|
|
1637
1851
|
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidCode, "Invalid Code");
|
|
1852
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1638
1853
|
return this._iModel.withPreparedStatement("SELECT ECInstanceId FROM BisCore:Element WHERE CodeSpec.Id=? AND CodeScope.Id=? AND CodeValue=?", (stmt) => {
|
|
1639
1854
|
stmt.bindId(1, code.spec);
|
|
1640
1855
|
stmt.bindId(2, core_bentley_1.Id64.fromString(code.scope));
|
|
@@ -1650,6 +1865,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1650
1865
|
*/
|
|
1651
1866
|
queryLastModifiedTime(elementId) {
|
|
1652
1867
|
const sql = "SELECT LastMod FROM BisCore:Element WHERE ECInstanceId=:elementId";
|
|
1868
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1653
1869
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1654
1870
|
statement.bindId("elementId", elementId);
|
|
1655
1871
|
if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step())
|
|
@@ -1671,9 +1887,14 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1671
1887
|
* the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
|
|
1672
1888
|
* if you intend to continue working with it. That will ensure its values reflect the persistent state.
|
|
1673
1889
|
*/
|
|
1674
|
-
insertElement(elProps) {
|
|
1890
|
+
insertElement(elProps, options) {
|
|
1675
1891
|
try {
|
|
1676
|
-
|
|
1892
|
+
this[Symbols_1._cache].delete({
|
|
1893
|
+
id: elProps.id,
|
|
1894
|
+
federationGuid: elProps.federationGuid,
|
|
1895
|
+
code: elProps.code,
|
|
1896
|
+
});
|
|
1897
|
+
return elProps.id = this._iModel[Symbols_1._nativeDb].insertElement(elProps, options);
|
|
1677
1898
|
}
|
|
1678
1899
|
catch (err) {
|
|
1679
1900
|
err.message = `Error inserting element [${err.message}]`;
|
|
@@ -1694,6 +1915,11 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1694
1915
|
*/
|
|
1695
1916
|
updateElement(elProps) {
|
|
1696
1917
|
try {
|
|
1918
|
+
this[Symbols_1._cache].delete({
|
|
1919
|
+
id: elProps.id,
|
|
1920
|
+
federationGuid: elProps.federationGuid,
|
|
1921
|
+
code: elProps.code,
|
|
1922
|
+
});
|
|
1697
1923
|
this._iModel[Symbols_1._nativeDb].updateElement(elProps);
|
|
1698
1924
|
}
|
|
1699
1925
|
catch (err) {
|
|
@@ -1711,6 +1937,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1711
1937
|
const iModel = this._iModel;
|
|
1712
1938
|
core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
|
|
1713
1939
|
try {
|
|
1940
|
+
this[Symbols_1._cache].delete({ id });
|
|
1714
1941
|
iModel[Symbols_1._nativeDb].deleteElement(id);
|
|
1715
1942
|
}
|
|
1716
1943
|
catch (err) {
|
|
@@ -1801,6 +2028,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1801
2028
|
*/
|
|
1802
2029
|
queryChildren(elementId) {
|
|
1803
2030
|
const sql = "SELECT ECInstanceId FROM BisCore:Element WHERE Parent.Id=:elementId";
|
|
2031
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1804
2032
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1805
2033
|
statement.bindId("elementId", elementId);
|
|
1806
2034
|
const childIds = [];
|
|
@@ -1816,6 +2044,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1816
2044
|
* @throws [[IModelError]] if the element does not exist
|
|
1817
2045
|
*/
|
|
1818
2046
|
queryParent(elementId) {
|
|
2047
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1819
2048
|
return this._iModel.withPreparedStatement(`select parent.id from ${Element_1.Element.classFullName} where ecinstanceid=?`, (stmt) => {
|
|
1820
2049
|
stmt.bindId(1, elementId);
|
|
1821
2050
|
if (stmt.step() !== core_bentley_1.DbResult.BE_SQLITE_ROW)
|
|
@@ -1832,6 +2061,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1832
2061
|
return false; // Special case since the RepositoryModel does not sub-model the root Subject
|
|
1833
2062
|
// A sub-model will have the same Id value as the element it is describing
|
|
1834
2063
|
const sql = "SELECT ECInstanceId FROM BisCore:Model WHERE ECInstanceId=:elementId";
|
|
2064
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1835
2065
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1836
2066
|
statement.bindId("elementId", elementId);
|
|
1837
2067
|
return core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step();
|
|
@@ -1846,6 +2076,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1846
2076
|
*/
|
|
1847
2077
|
_queryAspects(elementId, fromClassFullName, excludedClassFullNames) {
|
|
1848
2078
|
const sql = `SELECT ECInstanceId,ECClassId FROM ${fromClassFullName} WHERE Element.Id=:elementId ORDER BY ECClassId,ECInstanceId`; // ORDER BY to maximize statement reuse
|
|
2079
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1849
2080
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1850
2081
|
statement.bindId("elementId", elementId);
|
|
1851
2082
|
const aspects = [];
|
|
@@ -1864,6 +2095,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1864
2095
|
*/
|
|
1865
2096
|
_queryAspect(aspectInstanceId, aspectClassName) {
|
|
1866
2097
|
const sql = `SELECT * FROM ${aspectClassName} WHERE ECInstanceId=:aspectInstanceId`;
|
|
2098
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1867
2099
|
const aspect = this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1868
2100
|
statement.bindId("aspectInstanceId", aspectInstanceId);
|
|
1869
2101
|
if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
@@ -1884,6 +2116,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1884
2116
|
*/
|
|
1885
2117
|
getAspect(aspectInstanceId) {
|
|
1886
2118
|
const sql = "SELECT ECClassId FROM BisCore:ElementAspect WHERE ECInstanceId=:aspectInstanceId";
|
|
2119
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1887
2120
|
const aspectClassFullName = this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1888
2121
|
statement.bindId("aspectInstanceId", aspectInstanceId);
|
|
1889
2122
|
return (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) ? statement.getValue(0).getClassNameForClassId().replace(".", ":") : undefined;
|
|
@@ -1893,7 +2126,9 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1893
2126
|
}
|
|
1894
2127
|
return this._queryAspect(aspectInstanceId, aspectClassFullName);
|
|
1895
2128
|
}
|
|
2129
|
+
static classMap = new Map();
|
|
1896
2130
|
runInstanceQuery(sql, elementId, excludedClassFullNames) {
|
|
2131
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1897
2132
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1898
2133
|
statement.bindId("elementId", elementId);
|
|
1899
2134
|
const aspects = [];
|
|
@@ -1922,9 +2157,9 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1922
2157
|
*/
|
|
1923
2158
|
getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
|
|
1924
2159
|
if (aspectClassFullName === undefined) {
|
|
1925
|
-
const allAspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
1926
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
|
|
1927
|
-
UNION ALL
|
|
2160
|
+
const allAspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2161
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
|
|
2162
|
+
UNION ALL
|
|
1928
2163
|
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
|
|
1929
2164
|
if (allAspects.length === 0)
|
|
1930
2165
|
core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
|
|
@@ -1934,6 +2169,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1934
2169
|
const fullClassName = aspectClassFullName.replace(".", ":").split(":");
|
|
1935
2170
|
const val = this._iModel[Symbols_1._nativeDb].getECClassMetaData(fullClassName[0], fullClassName[1]);
|
|
1936
2171
|
if (val.result !== undefined) {
|
|
2172
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1937
2173
|
const metaData = new core_common_1.EntityMetaData(JSON.parse(val.result));
|
|
1938
2174
|
if (metaData.modifier !== "Abstract") // Class is not abstract, use normal query to retrieve aspects
|
|
1939
2175
|
return this._queryAspects(elementId, aspectClassFullName, excludedClassFullNames);
|
|
@@ -1942,8 +2178,11 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1942
2178
|
let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
|
|
1943
2179
|
if (classIdList === undefined) {
|
|
1944
2180
|
const classIds = [];
|
|
1945
|
-
|
|
1946
|
-
|
|
2181
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
2182
|
+
this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
|
|
2183
|
+
and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
|
|
2184
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
2185
|
+
(statement) => {
|
|
1947
2186
|
while (statement.step() === core_bentley_1.DbResult.BE_SQLITE_ROW)
|
|
1948
2187
|
classIds.push(statement.getValue(0).getId());
|
|
1949
2188
|
});
|
|
@@ -1957,10 +2196,10 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1957
2196
|
return [];
|
|
1958
2197
|
}
|
|
1959
2198
|
// Execute an instance query to retrieve all aspects from all the derived classes
|
|
1960
|
-
const aspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
1961
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
1962
|
-
UNION ALL
|
|
1963
|
-
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2199
|
+
const aspects = this.runInstanceQuery(`SELECT $ FROM (
|
|
2200
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
2201
|
+
UNION ALL
|
|
2202
|
+
SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
|
|
1964
2203
|
) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
|
|
1965
2204
|
if (aspects.length === 0)
|
|
1966
2205
|
core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
|
|
@@ -2009,16 +2248,18 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
2009
2248
|
});
|
|
2010
2249
|
}
|
|
2011
2250
|
}
|
|
2012
|
-
Elements.classMap = new Map();
|
|
2013
2251
|
IModelDb.Elements = Elements;
|
|
2014
2252
|
/** The collection of views in an [[IModelDb]].
|
|
2015
2253
|
* @public
|
|
2016
2254
|
*/
|
|
2017
2255
|
class Views {
|
|
2256
|
+
_iModel;
|
|
2018
2257
|
/** @internal */
|
|
2019
2258
|
constructor(_iModel) {
|
|
2020
2259
|
this._iModel = _iModel;
|
|
2021
2260
|
}
|
|
2261
|
+
static viewStoreProperty = { namespace: "itwinjs", name: "DefaultViewStore" };
|
|
2262
|
+
_viewStore;
|
|
2022
2263
|
get hasViewStore() { return undefined !== this._viewStore; }
|
|
2023
2264
|
/** @beta */
|
|
2024
2265
|
get viewStore() {
|
|
@@ -2070,6 +2311,8 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
2070
2311
|
});
|
|
2071
2312
|
return props;
|
|
2072
2313
|
}
|
|
2314
|
+
/** Default parameters for iterating/querying ViewDefinitions. Includes all subclasses of ViewDefinition, excluding only those marked 'private'. */
|
|
2315
|
+
static defaultQueryParams = { from: "BisCore.ViewDefinition", where: "IsPrivate=FALSE" };
|
|
2073
2316
|
/** Iterate all ViewDefinitions matching the supplied query.
|
|
2074
2317
|
* @param params Specifies the query by which views are selected.
|
|
2075
2318
|
* @param callback Function invoked for each ViewDefinition matching the query. Return false to terminate iteration, true to continue.
|
|
@@ -2141,17 +2384,6 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
2141
2384
|
}
|
|
2142
2385
|
return props;
|
|
2143
2386
|
}
|
|
2144
|
-
/** @deprecated in 3.x. use [[getViewStateProps]]. */
|
|
2145
|
-
getViewStateData(viewDefinitionId, options) {
|
|
2146
|
-
const viewStateData = this.loadViewData(viewDefinitionId, options);
|
|
2147
|
-
const baseModelId = viewStateData.viewDefinitionProps.baseModelId;
|
|
2148
|
-
if (baseModelId) {
|
|
2149
|
-
const drawingExtents = core_geometry_1.Range3d.fromJSON(this._iModel[Symbols_1._nativeDb].queryModelExtents({ id: baseModelId }).modelExtents);
|
|
2150
|
-
if (!drawingExtents.isNull)
|
|
2151
|
-
viewStateData.modelExtents = drawingExtents.toJSON();
|
|
2152
|
-
}
|
|
2153
|
-
return viewStateData;
|
|
2154
|
-
}
|
|
2155
2387
|
/** Obtain a [ViewStateProps]($common) for a [[ViewDefinition]] specified by ViewIdString. */
|
|
2156
2388
|
async getViewStateProps(viewDefinitionId, options) {
|
|
2157
2389
|
const viewStateData = this.loadViewData(viewDefinitionId, options);
|
|
@@ -2206,14 +2438,11 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
2206
2438
|
this._iModel.saveFileProperty(spec, undefined, blob8);
|
|
2207
2439
|
}
|
|
2208
2440
|
}
|
|
2209
|
-
Views.viewStoreProperty = { namespace: "itwinjs", name: "DefaultViewStore" };
|
|
2210
|
-
/** Default parameters for iterating/querying ViewDefinitions. Includes all subclasses of ViewDefinition, excluding only those marked 'private'. */
|
|
2211
|
-
Views.defaultQueryParams = { from: "BisCore.ViewDefinition", where: "IsPrivate=FALSE" };
|
|
2212
2441
|
IModelDb.Views = Views;
|
|
2213
2442
|
/** Represents the current state of a pollable tile content request.
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2443
|
+
* Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
|
|
2444
|
+
* @internal
|
|
2445
|
+
*/
|
|
2217
2446
|
let TileContentState;
|
|
2218
2447
|
(function (TileContentState) {
|
|
2219
2448
|
TileContentState[TileContentState["New"] = 0] = "New";
|
|
@@ -2222,6 +2451,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
2222
2451
|
})(TileContentState = IModelDb.TileContentState || (IModelDb.TileContentState = {}));
|
|
2223
2452
|
/** @internal */
|
|
2224
2453
|
class Tiles {
|
|
2454
|
+
_iModel;
|
|
2225
2455
|
/** @internal */
|
|
2226
2456
|
constructor(_iModel) {
|
|
2227
2457
|
this._iModel = _iModel;
|
|
@@ -2296,10 +2526,38 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
2296
2526
|
* @public
|
|
2297
2527
|
*/
|
|
2298
2528
|
class BriefcaseDb extends IModelDb {
|
|
2529
|
+
/** Manages local changes to this briefcase. */
|
|
2530
|
+
txns = new TxnManager_1.TxnManager(this);
|
|
2299
2531
|
/** override superclass method */
|
|
2300
2532
|
get isBriefcase() { return true; }
|
|
2533
|
+
/* the BriefcaseId of the briefcase opened with this BriefcaseDb */
|
|
2534
|
+
briefcaseId;
|
|
2535
|
+
_skipSyncSchemasOnPullAndPush;
|
|
2301
2536
|
/** @internal */
|
|
2302
2537
|
get skipSyncSchemasOnPullAndPush() { return this._skipSyncSchemasOnPullAndPush ?? false; }
|
|
2538
|
+
/**
|
|
2539
|
+
* Event raised just before a BriefcaseDb is opened. Supplies the arguments that will be used to open the BriefcaseDb.
|
|
2540
|
+
* Throw an exception to stop the open.
|
|
2541
|
+
*
|
|
2542
|
+
* **Example:**
|
|
2543
|
+
* ``` ts
|
|
2544
|
+
* [[include:BriefcaseDb.onOpen]]
|
|
2545
|
+
* ```
|
|
2546
|
+
*/
|
|
2547
|
+
static onOpen = new core_bentley_1.BeEvent();
|
|
2548
|
+
/**
|
|
2549
|
+
* Event raised just after a BriefcaseDb is opened. Supplies the newly opened BriefcaseDb and the arguments that were used to open it.
|
|
2550
|
+
*
|
|
2551
|
+
* **Example:**
|
|
2552
|
+
* ``` ts
|
|
2553
|
+
* [[include:BriefcaseDb.onOpened]]
|
|
2554
|
+
* ```
|
|
2555
|
+
*/
|
|
2556
|
+
static onOpened = new core_bentley_1.BeEvent();
|
|
2557
|
+
/** Event raised after a BriefcaseDb has been closed. */
|
|
2558
|
+
onClosed = new core_bentley_1.BeEvent();
|
|
2559
|
+
/** @alpha */
|
|
2560
|
+
static onCodeServiceCreated = new core_bentley_1.BeEvent();
|
|
2303
2561
|
static findByKey(key) {
|
|
2304
2562
|
return super.findByKey(key);
|
|
2305
2563
|
}
|
|
@@ -2329,10 +2587,6 @@ class BriefcaseDb extends IModelDb {
|
|
|
2329
2587
|
}
|
|
2330
2588
|
constructor(args) {
|
|
2331
2589
|
super({ ...args, changeset: args.nativeDb.getCurrentChangeset() });
|
|
2332
|
-
/** Manages local changes to this briefcase. */
|
|
2333
|
-
this.txns = new TxnManager_1.TxnManager(this);
|
|
2334
|
-
/** Event raised after a BriefcaseDb has been closed. */
|
|
2335
|
-
this.onClosed = new core_bentley_1.BeEvent();
|
|
2336
2590
|
this._openMode = args.openMode;
|
|
2337
2591
|
this.briefcaseId = args.briefcaseId;
|
|
2338
2592
|
this.makeLockControl();
|
|
@@ -2415,6 +2669,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2415
2669
|
finally {
|
|
2416
2670
|
await withBriefcaseDb(briefcase, async (db) => db.locks[Symbols_1._releaseAllLocks]());
|
|
2417
2671
|
}
|
|
2672
|
+
return;
|
|
2418
2673
|
}
|
|
2419
2674
|
throw error;
|
|
2420
2675
|
}
|
|
@@ -2427,7 +2682,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2427
2682
|
const file = { path: args.fileName, key: args.key };
|
|
2428
2683
|
const openMode = (args.readonly || args.watchForChanges) ? core_bentley_1.OpenMode.Readonly : core_bentley_1.OpenMode.ReadWrite;
|
|
2429
2684
|
const nativeDb = this.openDgnDb(file, openMode, undefined, args);
|
|
2430
|
-
const briefcaseDb = new
|
|
2685
|
+
const briefcaseDb = new this({ nativeDb, key: file.key ?? core_bentley_1.Guid.createValue(), openMode, briefcaseId: nativeDb.getBriefcaseId() });
|
|
2431
2686
|
// If they asked to watch for changes, set an fs.watch on the "-watch" file (only it is modified while we hold this connection.)
|
|
2432
2687
|
// Whenever there are changes, restart our defaultTxn. That loads the changes from the other connection and sends
|
|
2433
2688
|
// notifications as if they happened on this connection. Note: the watcher is called only when the backend event loop cycles.
|
|
@@ -2436,6 +2691,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2436
2691
|
touch.sync(briefcaseDb.watchFilePathName);
|
|
2437
2692
|
// Restart default txn to trigger events when watch file is changed by some other process.
|
|
2438
2693
|
const watcher = fs.watch(briefcaseDb.watchFilePathName, { persistent: false }, () => {
|
|
2694
|
+
nativeDb.clearECDbCache();
|
|
2439
2695
|
nativeDb.restartDefaultTxn();
|
|
2440
2696
|
briefcaseDb.changeset = briefcaseDb[Symbols_1._nativeDb].getCurrentChangeset();
|
|
2441
2697
|
});
|
|
@@ -2659,7 +2915,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2659
2915
|
await BriefcaseManager_1.BriefcaseManager.pullAndApplyChangesets(this, arg ?? {});
|
|
2660
2916
|
if (!this.skipSyncSchemasOnPullAndPush)
|
|
2661
2917
|
await SchemaSync_1.SchemaSync.pull(this);
|
|
2662
|
-
this.initializeIModelDb();
|
|
2918
|
+
this.initializeIModelDb("pullMerge");
|
|
2663
2919
|
});
|
|
2664
2920
|
IpcHost_1.IpcHost.notifyTxns(this, "notifyPulledChanges", this.changeset);
|
|
2665
2921
|
this.txns.touchWatchFile();
|
|
@@ -2741,46 +2997,32 @@ class BriefcaseDb extends IModelDb {
|
|
|
2741
2997
|
// pushing changes requires a writeable briefcase
|
|
2742
2998
|
await this.executeWritable(async () => {
|
|
2743
2999
|
await BriefcaseManager_1.BriefcaseManager.pullMergePush(this, arg);
|
|
2744
|
-
this.initializeIModelDb();
|
|
3000
|
+
this.initializeIModelDb("pullMerge");
|
|
2745
3001
|
});
|
|
2746
3002
|
const changeset = this.changeset;
|
|
2747
3003
|
IpcHost_1.IpcHost.notifyTxns(this, "notifyPushedChanges", changeset);
|
|
2748
3004
|
this.txns.touchWatchFile();
|
|
2749
3005
|
}
|
|
2750
3006
|
close() {
|
|
3007
|
+
if (this.isBriefcase && this.isOpen && !this.isReadonly && this.txns.changeMergeManager.inProgress()) {
|
|
3008
|
+
this.abandonChanges();
|
|
3009
|
+
}
|
|
2751
3010
|
super.close();
|
|
2752
3011
|
this.onClosed.raiseEvent();
|
|
2753
3012
|
}
|
|
2754
3013
|
}
|
|
2755
3014
|
exports.BriefcaseDb = BriefcaseDb;
|
|
2756
|
-
/**
|
|
2757
|
-
* Event raised just before a BriefcaseDb is opened. Supplies the arguments that will be used to open the BriefcaseDb.
|
|
2758
|
-
* Throw an exception to stop the open.
|
|
2759
|
-
*
|
|
2760
|
-
* **Example:**
|
|
2761
|
-
* ``` ts
|
|
2762
|
-
* [[include:BriefcaseDb.onOpen]]
|
|
2763
|
-
* ```
|
|
2764
|
-
*/
|
|
2765
|
-
BriefcaseDb.onOpen = new core_bentley_1.BeEvent();
|
|
2766
|
-
/**
|
|
2767
|
-
* Event raised just after a BriefcaseDb is opened. Supplies the newly opened BriefcaseDb and the arguments that were used to open it.
|
|
2768
|
-
*
|
|
2769
|
-
* **Example:**
|
|
2770
|
-
* ``` ts
|
|
2771
|
-
* [[include:BriefcaseDb.onOpened]]
|
|
2772
|
-
* ```
|
|
2773
|
-
*/
|
|
2774
|
-
BriefcaseDb.onOpened = new core_bentley_1.BeEvent();
|
|
2775
|
-
/** @alpha */
|
|
2776
|
-
BriefcaseDb.onCodeServiceCreated = new core_bentley_1.BeEvent();
|
|
2777
3015
|
/** Used to reattach Daemon from a user's accessToken for V2 checkpoints.
|
|
2778
3016
|
* @note Reattach only happens if the previous access token either has expired or is about to expire within an application-supplied safety duration.
|
|
2779
3017
|
*/
|
|
2780
3018
|
class RefreshV2CheckpointSas {
|
|
3019
|
+
/** the time at which the current token should be refreshed (its expiry minus safetySeconds) */
|
|
3020
|
+
_timestamp = 0;
|
|
3021
|
+
/** while a refresh is happening, all callers get this promise. */
|
|
3022
|
+
_promise;
|
|
3023
|
+
/** Time, in seconds, before the current token expires to obtain a new token. Default is 1 hour. */
|
|
3024
|
+
_safetySeconds;
|
|
2781
3025
|
constructor(sasToken, safetySeconds) {
|
|
2782
|
-
/** the time at which the current token should be refreshed (its expiry minus safetySeconds) */
|
|
2783
|
-
this._timestamp = 0;
|
|
2784
3026
|
this._safetySeconds = safetySeconds ?? 60 * 60; // default to 1 hour
|
|
2785
3027
|
this.setTimestamp(sasToken);
|
|
2786
3028
|
}
|
|
@@ -2790,11 +3032,11 @@ class RefreshV2CheckpointSas {
|
|
|
2790
3032
|
core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.Authorization, "attempting to refresh sasToken for checkpoint");
|
|
2791
3033
|
try {
|
|
2792
3034
|
// this exchanges the supplied user accessToken for an expiring blob-store token to read the checkpoint.
|
|
2793
|
-
const container = iModel
|
|
3035
|
+
const container = iModel.cloudContainer;
|
|
2794
3036
|
if (!container)
|
|
2795
3037
|
throw new Error("checkpoint is not from a cloud container");
|
|
2796
3038
|
(0, core_bentley_1.assert)(undefined !== iModel.iTwinId);
|
|
2797
|
-
const props = await IModelHost_1.IModelHost.
|
|
3039
|
+
const props = await IModelHost_1.IModelHost[Symbols_1._hubAccess].queryV2Checkpoint({ accessToken, iTwinId: iModel.iTwinId, iModelId: iModel.iModelId, changeset: iModel.changeset });
|
|
2798
3040
|
if (!props)
|
|
2799
3041
|
throw new Error("can't reset checkpoint sas token");
|
|
2800
3042
|
container.accessToken = props.sasToken;
|
|
@@ -2827,9 +3069,18 @@ class RefreshV2CheckpointSas {
|
|
|
2827
3069
|
*/
|
|
2828
3070
|
class SnapshotDb extends IModelDb {
|
|
2829
3071
|
get isSnapshot() { return true; }
|
|
3072
|
+
_refreshSas;
|
|
3073
|
+
/** Timer used to restart the default txn on the SnapshotDb after some inactivity. This is only used for checkpoints.
|
|
3074
|
+
* Restarting the default txn lets CloudSqlite know that any blocks that may have been read may now be ejected.
|
|
3075
|
+
* Without restarting the default txn, CloudSQLite can get into a state where it can not evict any blocks to make space for more blocks.
|
|
3076
|
+
*/
|
|
3077
|
+
_restartDefaultTxnTimer;
|
|
3078
|
+
_createClassViewsOnClose;
|
|
3079
|
+
static onOpen = new core_bentley_1.BeEvent();
|
|
3080
|
+
static onOpened = new core_bentley_1.BeEvent();
|
|
2830
3081
|
constructor(nativeDb, key) {
|
|
2831
|
-
super({ nativeDb, key, changeset: nativeDb.getCurrentChangeset() });
|
|
2832
|
-
this._openMode = nativeDb.isReadonly() ? core_bentley_1.OpenMode.Readonly : core_bentley_1.OpenMode.ReadWrite;
|
|
3082
|
+
super({ nativeDb, key, changeset: nativeDb.getCurrentChangeset() });
|
|
3083
|
+
this._openMode = nativeDb.isReadonly() ? core_bentley_1.OpenMode.Readonly : core_bentley_1.OpenMode.ReadWrite;
|
|
2833
3084
|
}
|
|
2834
3085
|
static findByKey(key) {
|
|
2835
3086
|
return super.findByKey(key);
|
|
@@ -2869,7 +3120,7 @@ class SnapshotDb extends IModelDb {
|
|
|
2869
3120
|
iModelDb.performCheckpoint();
|
|
2870
3121
|
IModelJsFs_1.IModelJsFs.copySync(iModelDb.pathName, snapshotFile);
|
|
2871
3122
|
const nativeDb = new NativePlatform_1.IModelNative.platform.DgnDb();
|
|
2872
|
-
nativeDb.openIModel(snapshotFile, core_bentley_1.OpenMode.ReadWrite, undefined
|
|
3123
|
+
nativeDb.openIModel(snapshotFile, core_bentley_1.OpenMode.ReadWrite, undefined);
|
|
2873
3124
|
nativeDb.vacuum();
|
|
2874
3125
|
// Replace iModelId if seedFile is a snapshot, preserve iModelId if seedFile is an iModelHub-managed briefcase
|
|
2875
3126
|
if (!BriefcaseManager_1.BriefcaseManager.isValidBriefcaseId(nativeDb.getBriefcaseId()))
|
|
@@ -2907,7 +3158,7 @@ class SnapshotDb extends IModelDb {
|
|
|
2907
3158
|
file.key = `${nativeDb.getIModelId()}:${nativeDb.getCurrentChangeset().id}`;
|
|
2908
3159
|
}
|
|
2909
3160
|
(0, core_bentley_1.assert)(undefined !== file.key);
|
|
2910
|
-
const db = new
|
|
3161
|
+
const db = new this(nativeDb, file.key);
|
|
2911
3162
|
this.onOpened.raiseEvent(db);
|
|
2912
3163
|
return db;
|
|
2913
3164
|
}
|
|
@@ -2933,8 +3184,10 @@ class SnapshotDb extends IModelDb {
|
|
|
2933
3184
|
snapshot._restartDefaultTxnTimer = setTimeout(() => {
|
|
2934
3185
|
snapshot.restartDefaultTxn();
|
|
2935
3186
|
}, (10 * 60) * 1000).unref(); // 10 minutes
|
|
2936
|
-
|
|
2937
|
-
|
|
3187
|
+
const cloudContainer = snapshot.cloudContainer;
|
|
3188
|
+
if (cloudContainer !== undefined) {
|
|
3189
|
+
snapshot._refreshSas = new RefreshV2CheckpointSas(cloudContainer.accessToken, checkpoint.reattachSafetySeconds);
|
|
3190
|
+
}
|
|
2938
3191
|
return snapshot;
|
|
2939
3192
|
}
|
|
2940
3193
|
/**
|
|
@@ -2968,8 +3221,6 @@ class SnapshotDb extends IModelDb {
|
|
|
2968
3221
|
}
|
|
2969
3222
|
}
|
|
2970
3223
|
exports.SnapshotDb = SnapshotDb;
|
|
2971
|
-
SnapshotDb.onOpen = new core_bentley_1.BeEvent();
|
|
2972
|
-
SnapshotDb.onOpened = new core_bentley_1.BeEvent();
|
|
2973
3224
|
/**
|
|
2974
3225
|
* Standalone iModels are read/write files that are not associated with an iTwin or managed by iModelHub.
|
|
2975
3226
|
* They are relevant only for testing, or for small-scale single-user scenarios.
|
|
@@ -3008,7 +3259,7 @@ class StandaloneDb extends BriefcaseDb {
|
|
|
3008
3259
|
nativeDb.setITwinId(core_bentley_1.Guid.empty);
|
|
3009
3260
|
nativeDb.resetBriefcaseId(core_common_1.BriefcaseIdValue.Unassigned);
|
|
3010
3261
|
nativeDb.saveChanges();
|
|
3011
|
-
const db = new
|
|
3262
|
+
const db = new this({ nativeDb, key: core_bentley_1.Guid.createValue(), briefcaseId: core_common_1.BriefcaseIdValue.Unassigned, openMode: core_bentley_1.OpenMode.ReadWrite });
|
|
3012
3263
|
db.channels.addAllowedChannel(ChannelControl_1.ChannelControl.sharedChannelName);
|
|
3013
3264
|
return db;
|
|
3014
3265
|
}
|
|
@@ -3054,7 +3305,7 @@ class StandaloneDb extends BriefcaseDb {
|
|
|
3054
3305
|
if (iTwinId !== core_bentley_1.Guid.empty) // a "standalone" iModel means it is not associated with an iTwin
|
|
3055
3306
|
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.WrongIModel, `${filePath} is not a Standalone iModel. iTwinId=${iTwinId}`);
|
|
3056
3307
|
(0, core_bentley_1.assert)(undefined !== file.key);
|
|
3057
|
-
const db = new
|
|
3308
|
+
const db = new this({ nativeDb, key: file.key, openMode, briefcaseId: core_common_1.BriefcaseIdValue.Unassigned });
|
|
3058
3309
|
return db;
|
|
3059
3310
|
}
|
|
3060
3311
|
catch (error) {
|
|
@@ -3062,6 +3313,22 @@ class StandaloneDb extends BriefcaseDb {
|
|
|
3062
3313
|
throw error;
|
|
3063
3314
|
}
|
|
3064
3315
|
}
|
|
3316
|
+
/** Convert an iModel stored on the local file system into a StandaloneDb, chiefly for testing purposes.
|
|
3317
|
+
* The file must not be open in any application.
|
|
3318
|
+
* @param iModelFileName the path to the iModel on the local file system.
|
|
3319
|
+
* @beta
|
|
3320
|
+
*/
|
|
3321
|
+
static convertToStandalone(iModelFileName) {
|
|
3322
|
+
const nativeDb = new NativePlatform_1.IModelNative.platform.DgnDb();
|
|
3323
|
+
nativeDb.openIModel(iModelFileName, core_bentley_1.OpenMode.ReadWrite);
|
|
3324
|
+
nativeDb.setITwinId(core_bentley_1.Guid.empty); // empty iTwinId means "standalone"
|
|
3325
|
+
nativeDb.saveChanges(); // save change to iTwinId
|
|
3326
|
+
nativeDb.deleteAllTxns(); // necessary before resetting briefcaseId
|
|
3327
|
+
nativeDb.resetBriefcaseId(core_common_1.BriefcaseIdValue.Unassigned); // standalone iModels should always have BriefcaseId unassigned
|
|
3328
|
+
nativeDb.saveLocalValue("StandaloneEdit", JSON.stringify({ txns: true }));
|
|
3329
|
+
nativeDb.saveChanges(); // save change to briefcaseId
|
|
3330
|
+
nativeDb.closeFile();
|
|
3331
|
+
}
|
|
3065
3332
|
}
|
|
3066
3333
|
exports.StandaloneDb = StandaloneDb;
|
|
3067
3334
|
//# sourceMappingURL=IModelDb.js.map
|