@itwin/core-backend 5.8.2 → 5.9.0-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/lib/cjs/BackendHubAccess.d.ts +38 -0
- package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.js +3 -3
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +37 -7
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +33 -42
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +253 -250
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.d.ts +29 -0
- package/lib/cjs/ChannelControl.d.ts.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.js +1 -1
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +5 -5
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +1 -1
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +68 -13
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +32 -3
- package/lib/cjs/CodeSpecs.d.ts.map +1 -1
- package/lib/cjs/CodeSpecs.js +48 -20
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +18 -3
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +10 -21
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/ECSqlSyncReader.js.map +1 -1
- package/lib/cjs/EditTxn.d.ts +262 -0
- package/lib/cjs/EditTxn.d.ts.map +1 -0
- package/lib/cjs/EditTxn.js +548 -0
- package/lib/cjs/EditTxn.js.map +1 -0
- package/lib/cjs/Element.d.ts +74 -5
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +63 -75
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +10 -0
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +21 -12
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts +56 -3
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +53 -40
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.d.ts +11 -2
- package/lib/cjs/ExternalSource.d.ts.map +1 -1
- package/lib/cjs/ExternalSource.js +10 -8
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +47 -47
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +66 -22
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +183 -297
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +58 -1
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +89 -0
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.d.ts.map +1 -1
- package/lib/cjs/IpcHost.js +15 -6
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.d.ts +47 -7
- package/lib/cjs/LineStyle.d.ts.map +1 -1
- package/lib/cjs/LineStyle.js +38 -33
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +1 -1
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/LockControl.d.ts +85 -1
- package/lib/cjs/LockControl.d.ts.map +1 -1
- package/lib/cjs/LockControl.js.map +1 -1
- package/lib/cjs/Material.d.ts +8 -1
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +6 -12
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +59 -20
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +38 -80
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.d.ts +72 -7
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +39 -21
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js +4 -4
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.d.ts +9 -0
- package/lib/cjs/SheetIndex.d.ts.map +1 -1
- package/lib/cjs/SheetIndex.js +38 -35
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/StashManager.js +1 -1
- package/lib/cjs/StashManager.js.map +1 -1
- package/lib/cjs/Texture.d.ts +6 -0
- package/lib/cjs/Texture.d.ts.map +1 -1
- package/lib/cjs/Texture.js +6 -14
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +105 -9
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +194 -15
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +21 -1
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +27 -66
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +33 -27
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.js +6 -5
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.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 +1 -0
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +1 -0
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.d.ts +6 -2
- package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js +8 -13
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.d.ts +11 -4
- package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
- package/lib/cjs/domains/GenericElements.js +13 -24
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts +15 -0
- package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js +5 -3
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/FontFileImpl.js.map +1 -1
- package/lib/cjs/internal/HubMock.d.ts +2 -0
- package/lib/cjs/internal/HubMock.d.ts.map +1 -1
- package/lib/cjs/internal/HubMock.js +7 -0
- package/lib/cjs/internal/HubMock.js.map +1 -1
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.d.ts.map +1 -1
- package/lib/cjs/internal/NoLocks.js +6 -0
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/OnlineStatus.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.d.ts +12 -0
- package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js +285 -4
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +4 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +5 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.d.ts +3 -2
- package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
- package/lib/cjs/internal/annotations/fields.js +7 -6
- package/lib/cjs/internal/annotations/fields.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsEditorImpl.d.ts +18 -3
- package/lib/cjs/internal/workspace/SettingsEditorImpl.d.ts.map +1 -1
- package/lib/cjs/internal/workspace/SettingsEditorImpl.js +49 -242
- package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.d.ts.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts +0 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js +70 -41
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- 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.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.d.ts +11 -5
- package/lib/cjs/workspace/Settings.d.ts.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsDb.d.ts +20 -99
- package/lib/cjs/workspace/SettingsDb.d.ts.map +1 -1
- package/lib/cjs/workspace/SettingsDb.js +23 -7
- package/lib/cjs/workspace/SettingsDb.js.map +1 -1
- package/lib/cjs/workspace/SettingsEditor.d.ts +40 -226
- package/lib/cjs/workspace/SettingsEditor.d.ts.map +1 -1
- package/lib/cjs/workspace/SettingsEditor.js +86 -25
- package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +7 -11
- 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 +14 -0
- package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.d.ts +38 -0
- package/lib/esm/BackendHubAccess.d.ts.map +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BackendLoggerCategory.js.map +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.js +3 -3
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +37 -7
- package/lib/esm/Category.d.ts.map +1 -1
- package/lib/esm/Category.js +33 -42
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +2 -2
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +253 -250
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChannelControl.d.ts +29 -0
- package/lib/esm/ChannelControl.d.ts.map +1 -1
- package/lib/esm/ChannelControl.js.map +1 -1
- package/lib/esm/CheckpointManager.js +1 -1
- package/lib/esm/CheckpointManager.js.map +1 -1
- package/lib/esm/ClassRegistry.js +5 -5
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.d.ts +1 -1
- package/lib/esm/CloudSqlite.d.ts.map +1 -1
- package/lib/esm/CloudSqlite.js +69 -14
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +32 -3
- package/lib/esm/CodeSpecs.d.ts.map +1 -1
- package/lib/esm/CodeSpecs.js +49 -21
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/CustomViewState3dCreator.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +18 -3
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +10 -21
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlRowExecutor.js.map +1 -1
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/ECSqlSyncReader.js.map +1 -1
- package/lib/esm/EditTxn.d.ts +262 -0
- package/lib/esm/EditTxn.d.ts.map +1 -0
- package/lib/esm/EditTxn.js +543 -0
- package/lib/esm/EditTxn.js.map +1 -0
- package/lib/esm/Element.d.ts +74 -5
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +64 -76
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +10 -0
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +22 -13
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.d.ts +56 -3
- package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
- package/lib/esm/ElementTreeWalker.js +53 -40
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/ExternalSource.d.ts +11 -2
- package/lib/esm/ExternalSource.d.ts.map +1 -1
- package/lib/esm/ExternalSource.js +10 -8
- package/lib/esm/ExternalSource.js.map +1 -1
- package/lib/esm/FontFile.js.map +1 -1
- package/lib/esm/GeoCoordConfig.js.map +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/GeometrySummary.js +47 -47
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +66 -22
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +185 -299
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelDbFonts.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +58 -1
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +91 -2
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.d.ts.map +1 -1
- package/lib/esm/IpcHost.js +16 -7
- package/lib/esm/IpcHost.js.map +1 -1
- package/lib/esm/LineStyle.d.ts +47 -7
- package/lib/esm/LineStyle.d.ts.map +1 -1
- package/lib/esm/LineStyle.js +38 -33
- package/lib/esm/LineStyle.js.map +1 -1
- package/lib/esm/LocalHub.js +1 -1
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/LocalhostIpcHost.js.map +1 -1
- package/lib/esm/LockControl.d.ts +85 -1
- package/lib/esm/LockControl.d.ts.map +1 -1
- package/lib/esm/LockControl.js.map +1 -1
- package/lib/esm/Material.d.ts +8 -1
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +6 -12
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +59 -20
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js +39 -81
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/NativeAppStorage.js.map +1 -1
- package/lib/esm/NativeHost.js.map +1 -1
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/PromiseMemoizer.js.map +1 -1
- package/lib/esm/PropertyStore.js.map +1 -1
- package/lib/esm/Relationship.d.ts +72 -7
- package/lib/esm/Relationship.d.ts.map +1 -1
- package/lib/esm/Relationship.js +40 -22
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SchemaSync.js +5 -5
- package/lib/esm/SchemaSync.js.map +1 -1
- package/lib/esm/SchemaUtils.js.map +1 -1
- package/lib/esm/SheetIndex.d.ts +9 -0
- package/lib/esm/SheetIndex.d.ts.map +1 -1
- package/lib/esm/SheetIndex.js +38 -35
- package/lib/esm/SheetIndex.js.map +1 -1
- package/lib/esm/SqliteChangesetReader.js.map +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/StashManager.js +1 -1
- package/lib/esm/StashManager.js.map +1 -1
- package/lib/esm/Texture.d.ts +6 -0
- package/lib/esm/Texture.d.ts.map +1 -1
- package/lib/esm/Texture.js +6 -14
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +105 -9
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +194 -15
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +21 -1
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +27 -66
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js +33 -27
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.js.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.js +6 -5
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
- package/lib/esm/core-backend.d.ts +1 -0
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +1 -0
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.d.ts +6 -2
- package/lib/esm/domains/FunctionalElements.d.ts.map +1 -1
- package/lib/esm/domains/FunctionalElements.js +8 -13
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/FunctionalSchema.js.map +1 -1
- package/lib/esm/domains/GenericElements.d.ts +11 -4
- package/lib/esm/domains/GenericElements.d.ts.map +1 -1
- package/lib/esm/domains/GenericElements.js +13 -24
- package/lib/esm/domains/GenericElements.js.map +1 -1
- package/lib/esm/domains/GenericSchema.js.map +1 -1
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/esm/internal/ChannelAdmin.d.ts +15 -0
- package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/esm/internal/ChannelAdmin.js +6 -4
- package/lib/esm/internal/ChannelAdmin.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/FontFileImpl.js.map +1 -1
- package/lib/esm/internal/HubMock.d.ts +2 -0
- package/lib/esm/internal/HubMock.d.ts.map +1 -1
- package/lib/esm/internal/HubMock.js +7 -0
- package/lib/esm/internal/HubMock.js.map +1 -1
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/esm/internal/IntegrityCheck.js.map +1 -1
- package/lib/esm/internal/NativePlatform.js.map +1 -1
- package/lib/esm/internal/NoLocks.d.ts.map +1 -1
- package/lib/esm/internal/NoLocks.js +6 -0
- package/lib/esm/internal/NoLocks.js.map +1 -1
- package/lib/esm/internal/OnlineStatus.js.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.d.ts +12 -0
- package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.js +286 -5
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +4 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +4 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/annotations/fields.d.ts +3 -2
- package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
- package/lib/esm/internal/annotations/fields.js +7 -6
- package/lib/esm/internal/annotations/fields.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsEditorImpl.d.ts +18 -3
- package/lib/esm/internal/workspace/SettingsEditorImpl.d.ts.map +1 -1
- package/lib/esm/internal/workspace/SettingsEditorImpl.js +52 -246
- package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.d.ts.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +0 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js +71 -41
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/esm/rpc/multipart.js.map +1 -1
- package/lib/esm/rpc/tracing.js.map +1 -1
- package/lib/esm/rpc/web/logging.js.map +1 -1
- package/lib/esm/rpc/web/request.js.map +1 -1
- package/lib/esm/rpc/web/response.js.map +1 -1
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AdvancedEqual.js.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.d.ts +20 -19
- package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.js +134 -119
- package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js +56 -2
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.d.ts +23 -23
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
- package/lib/esm/test/IModelTestUtils.js +466 -449
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
- package/lib/esm/test/IpcHost.test.js.map +1 -1
- package/lib/esm/test/KnownTestLocations.js.map +1 -1
- package/lib/esm/test/PrintElementTree.js.map +1 -1
- package/lib/esm/test/PropertyDb.test.js +2 -2
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/RevisionUtility.js.map +1 -1
- package/lib/esm/test/SchemaUtils.test.js +25 -25
- package/lib/esm/test/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js +156 -147
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.js +11 -7
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestEditTxn.d.ts +8 -0
- package/lib/esm/test/TestEditTxn.d.ts.map +1 -0
- package/lib/esm/test/TestEditTxn.js +34 -0
- package/lib/esm/test/TestEditTxn.js.map +1 -0
- package/lib/esm/test/TestUtils.d.ts +1 -0
- package/lib/esm/test/TestUtils.d.ts.map +1 -1
- package/lib/esm/test/TestUtils.js +8 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.js +135 -143
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js +156 -99
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.js +5 -3
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js +63 -3
- package/lib/esm/test/categories/Category.test.js.map +1 -1
- package/lib/esm/test/codespec/CodeSpec.test.js +88 -5
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
- package/lib/esm/test/ecdb/CTE.test.js +88 -88
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +72 -72
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +68 -67
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +6 -6
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -333
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/QueryReaders.test.js +47 -44
- package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
- package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -2
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +30 -28
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js +159 -143
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
- package/lib/esm/test/element/ElementAspect.test.js +90 -82
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.js +51 -43
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +176 -177
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js +2 -2
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/element/ExternalSource.test.js +40 -38
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
- package/lib/esm/test/element/NullStructArray.test.js +23 -22
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
- package/lib/esm/test/element/ProjectInformationRecord.test.js +5 -2
- package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
- package/lib/esm/test/element/SheetInformationAspect.test.js +43 -11
- package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
- package/lib/esm/test/element/UrlLink.test.js +2 -2
- package/lib/esm/test/element/UrlLink.test.js.map +1 -1
- package/lib/esm/test/font/FontFile.test.js.map +1 -1
- package/lib/esm/test/font/IModelDbFonts.test.js +87 -73
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +194 -155
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js +2 -4
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/Rebase.test.js +369 -303
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- package/lib/esm/test/hubaccess/SemanticRebase.test.js +467 -392
- package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
- package/lib/esm/test/imageData.js.map +1 -1
- package/lib/esm/test/imodel/Code.test.js +31 -31
- package/lib/esm/test/imodel/Code.test.js.map +1 -1
- package/lib/esm/test/imodel/ElementTreeWalker.test.js +57 -48
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +463 -388
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/imodel/ProjectExtents.test.js +2 -2
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
- package/lib/esm/test/imodel/SchemaXmlImport.test.js +13 -13
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js +2 -2
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
- package/lib/esm/test/index.d.ts +1 -0
- package/lib/esm/test/index.d.ts.map +1 -1
- package/lib/esm/test/index.js +1 -0
- package/lib/esm/test/index.js.map +1 -1
- package/lib/esm/test/misc/DevTools.test.js.map +1 -1
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
- package/lib/esm/test/rpc/response.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +122 -121
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/FunctionalDomain.test.js +36 -34
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
- package/lib/esm/test/schema/GenericDomain.test.js +114 -94
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js +11 -10
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js +226 -211
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +1 -3
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -247
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js +101 -82
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +242 -213
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
- package/lib/esm/test/standalone/DisplayStyle.test.js +43 -40
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
- package/lib/esm/test/standalone/Drawing.test.js +4 -3
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
- package/lib/esm/test/standalone/EditTxn.test.d.ts +2 -0
- package/lib/esm/test/standalone/EditTxn.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/EditTxn.test.js +219 -0
- package/lib/esm/test/standalone/EditTxn.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementMesh.test.js +16 -13
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +40 -34
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js +11 -15
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js +212 -165
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/HubMock.test.js +31 -25
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelLimits.test.js +11 -8
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.d.ts +2 -2
- package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +211 -169
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/ITwinWorkspace.test.d.ts +2 -0
- package/lib/esm/test/standalone/ITwinWorkspace.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ITwinWorkspace.test.js +236 -0
- package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +25 -22
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
- package/lib/esm/test/standalone/IntegrityCheck.test.js +20 -18
- package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.d.ts +2 -2
- package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.js +49 -33
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +5 -5
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js +3 -2
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/standalone/SectionDrawing.test.js +7 -7
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js +928 -22
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
- package/lib/esm/test/standalone/Setting.test.js.map +1 -1
- package/lib/esm/test/standalone/Settings.test.js +26 -4
- package/lib/esm/test/standalone/Settings.test.js.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js +2 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +3 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/StandaloneDb.test.js +27 -26
- package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Texture.test.js +5 -4
- package/lib/esm/test/standalone/Texture.test.js.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.js +5 -3
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
- package/lib/esm/test/standalone/TileTree.test.js +35 -31
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js +700 -653
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewDefinition.test.js +295 -229
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Workspace.test.js +72 -22
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
- package/lib/esm/test/workspace/SettingsDb.test.js +28 -456
- package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
- package/lib/esm/workspace/Settings.d.ts +11 -5
- package/lib/esm/workspace/Settings.d.ts.map +1 -1
- package/lib/esm/workspace/Settings.js.map +1 -1
- package/lib/esm/workspace/SettingsDb.d.ts +20 -99
- package/lib/esm/workspace/SettingsDb.d.ts.map +1 -1
- package/lib/esm/workspace/SettingsDb.js +20 -6
- package/lib/esm/workspace/SettingsDb.js.map +1 -1
- package/lib/esm/workspace/SettingsEditor.d.ts +40 -226
- package/lib/esm/workspace/SettingsEditor.d.ts.map +1 -1
- package/lib/esm/workspace/SettingsEditor.js +85 -24
- package/lib/esm/workspace/SettingsEditor.js.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
- package/lib/esm/workspace/Workspace.d.ts +7 -11
- package/lib/esm/workspace/Workspace.d.ts.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.d.ts +14 -0
- package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +13 -13
- package/lib/cjs/internal/workspace/SettingsDbImpl.d.ts +0 -38
- package/lib/cjs/internal/workspace/SettingsDbImpl.d.ts.map +0 -1
- package/lib/cjs/internal/workspace/SettingsDbImpl.js +0 -108
- package/lib/cjs/internal/workspace/SettingsDbImpl.js.map +0 -1
- package/lib/cjs/internal/workspace/SettingsSqliteDb.d.ts +0 -14
- package/lib/cjs/internal/workspace/SettingsSqliteDb.d.ts.map +0 -1
- package/lib/cjs/internal/workspace/SettingsSqliteDb.js +0 -40
- package/lib/cjs/internal/workspace/SettingsSqliteDb.js.map +0 -1
- package/lib/esm/internal/workspace/SettingsDbImpl.d.ts +0 -38
- package/lib/esm/internal/workspace/SettingsDbImpl.d.ts.map +0 -1
- package/lib/esm/internal/workspace/SettingsDbImpl.js +0 -104
- package/lib/esm/internal/workspace/SettingsDbImpl.js.map +0 -1
- package/lib/esm/internal/workspace/SettingsSqliteDb.d.ts +0 -14
- package/lib/esm/internal/workspace/SettingsSqliteDb.d.ts.map +0 -1
- package/lib/esm/internal/workspace/SettingsSqliteDb.js +0 -36
- package/lib/esm/internal/workspace/SettingsSqliteDb.js.map +0 -1
|
@@ -68,6 +68,17 @@ import { HubMock } from "../../internal/HubMock";
|
|
|
68
68
|
import { SqliteChangesetReader } from "../../SqliteChangesetReader";
|
|
69
69
|
import { HubWrappers, IModelTestUtils } from "../IModelTestUtils";
|
|
70
70
|
import { KnownTestLocations } from "../KnownTestLocations";
|
|
71
|
+
import { EditTxn } from "../../EditTxn";
|
|
72
|
+
function startTestTxn(iModel, description = "changeset reader") {
|
|
73
|
+
const txn = new EditTxn(iModel, description);
|
|
74
|
+
txn.start();
|
|
75
|
+
return txn;
|
|
76
|
+
}
|
|
77
|
+
async function importSchemaStrings(txn, schemas) {
|
|
78
|
+
if (txn.isActive)
|
|
79
|
+
txn.saveChanges();
|
|
80
|
+
await txn.iModel.importSchemaStrings(schemas);
|
|
81
|
+
}
|
|
71
82
|
describe("Changeset Reader API", async () => {
|
|
72
83
|
let iTwinId;
|
|
73
84
|
before(() => {
|
|
@@ -92,25 +103,26 @@ describe("Changeset Reader API", async () => {
|
|
|
92
103
|
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
93
104
|
assert.isNotEmpty(rwIModelId);
|
|
94
105
|
const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
|
|
106
|
+
const txn = startTestTxn(rwIModel, "recover overflow table changeset reader");
|
|
95
107
|
// 1. Import schema with class that span overflow table.
|
|
96
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
97
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
98
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
99
|
-
<ECEntityClass typeName="Test2dElement">
|
|
100
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
101
|
-
${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i}" typeName="string"/>`).join("\n")}
|
|
102
|
-
</ECEntityClass>
|
|
108
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
109
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
110
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
111
|
+
<ECEntityClass typeName="Test2dElement">
|
|
112
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
113
|
+
${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i}" typeName="string"/>`).join("\n")}
|
|
114
|
+
</ECEntityClass>
|
|
103
115
|
</ECSchema>`;
|
|
104
|
-
await
|
|
116
|
+
await importSchemaStrings(txn, [schema]);
|
|
105
117
|
rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
106
118
|
// Create drawing model and category
|
|
107
119
|
await rwIModel.locks.acquireLocks({ shared: IModel.dictionaryId });
|
|
108
120
|
const codeProps = Code.createEmpty();
|
|
109
121
|
codeProps.value = "DrawingModel";
|
|
110
|
-
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(
|
|
122
|
+
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(txn, codeProps, true);
|
|
111
123
|
let drawingCategoryId = DrawingCategory.queryCategoryIdByName(rwIModel, IModel.dictionaryId, "MyDrawingCategory");
|
|
112
124
|
if (undefined === drawingCategoryId)
|
|
113
|
-
drawingCategoryId = DrawingCategory.insert(
|
|
125
|
+
drawingCategoryId = DrawingCategory.insert(txn, IModel.dictionaryId, "MyDrawingCategory", new SubCategoryAppearance({ color: ColorDef.fromString("rgb(255,0,0)").toJSON() }));
|
|
114
126
|
// Insert element with 100 properties
|
|
115
127
|
const geomArray = [
|
|
116
128
|
Arc3d.createXY(Point3d.create(0, 0), 5),
|
|
@@ -136,9 +148,9 @@ describe("Changeset Reader API", async () => {
|
|
|
136
148
|
...props,
|
|
137
149
|
};
|
|
138
150
|
// 2. Insert a element for the class.
|
|
139
|
-
const id =
|
|
151
|
+
const id = txn.insertElement(geomElement);
|
|
140
152
|
assert.isTrue(Id64.isValidId64(id), "insert worked");
|
|
141
|
-
|
|
153
|
+
txn.saveChanges();
|
|
142
154
|
// 3. Push changes to hub.
|
|
143
155
|
await rwIModel.pushChanges({ description: "insert element", accessToken: adminToken });
|
|
144
156
|
// 4. Update the element.
|
|
@@ -148,14 +160,14 @@ describe("Changeset Reader API", async () => {
|
|
|
148
160
|
return { ...acc, ...curr };
|
|
149
161
|
}, {}));
|
|
150
162
|
await rwIModel.locks.acquireLocks({ exclusive: id });
|
|
151
|
-
|
|
152
|
-
|
|
163
|
+
txn.updateElement(updatedElementProps);
|
|
164
|
+
txn.saveChanges();
|
|
153
165
|
// 5. Push changes to hub.
|
|
154
166
|
await rwIModel.pushChanges({ description: "update element", accessToken: adminToken });
|
|
155
167
|
await rwIModel.locks.acquireLocks({ exclusive: id });
|
|
156
168
|
// 6. Delete the element.
|
|
157
|
-
|
|
158
|
-
|
|
169
|
+
txn.deleteElement(id);
|
|
170
|
+
txn.saveChanges();
|
|
159
171
|
await rwIModel.pushChanges({ description: "delete element", accessToken: adminToken });
|
|
160
172
|
const targetDir = path.join(KnownTestLocations.outputDir, rwIModelId, "changesets");
|
|
161
173
|
const changesets = await HubMock.downloadChangesets({ iModelId: rwIModelId, targetDir });
|
|
@@ -187,6 +199,7 @@ describe("Changeset Reader API", async () => {
|
|
|
187
199
|
}
|
|
188
200
|
}
|
|
189
201
|
assert.isTrue(assertOnOverflowTable);
|
|
202
|
+
txn.end();
|
|
190
203
|
rwIModel.close();
|
|
191
204
|
});
|
|
192
205
|
function getClassIdByName(iModel, className) {
|
|
@@ -209,16 +222,16 @@ describe("Changeset Reader API", async () => {
|
|
|
209
222
|
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
210
223
|
assert.isNotEmpty(rwIModelId);
|
|
211
224
|
const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
<
|
|
216
|
-
|
|
217
|
-
<
|
|
218
|
-
|
|
225
|
+
const txn = startTestTxn(rwIModel, "changeset reader EC adaptor");
|
|
226
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
227
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
228
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
229
|
+
<ECEntityClass typeName="Test2dElement">
|
|
230
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
231
|
+
<ECProperty propertyName="s" typeName="string"/>
|
|
232
|
+
</ECEntityClass>
|
|
219
233
|
</ECSchema>`;
|
|
220
|
-
await
|
|
221
|
-
rwIModel.saveChanges("user 1: schema changeset");
|
|
234
|
+
await importSchemaStrings(txn, [schema]);
|
|
222
235
|
if (true || "push changes") {
|
|
223
236
|
// Push the changes to the hub
|
|
224
237
|
const prePushChangeSetId = rwIModel.changeset.id;
|
|
@@ -232,11 +245,11 @@ describe("Changeset Reader API", async () => {
|
|
|
232
245
|
const codeProps = Code.createEmpty();
|
|
233
246
|
codeProps.value = "DrawingModel";
|
|
234
247
|
let totalEl = 0;
|
|
235
|
-
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(
|
|
248
|
+
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(txn, codeProps, true);
|
|
236
249
|
let drawingCategoryId = DrawingCategory.queryCategoryIdByName(rwIModel, IModel.dictionaryId, "MyDrawingCategory");
|
|
237
250
|
if (undefined === drawingCategoryId)
|
|
238
|
-
drawingCategoryId = DrawingCategory.insert(
|
|
239
|
-
|
|
251
|
+
drawingCategoryId = DrawingCategory.insert(txn, IModel.dictionaryId, "MyDrawingCategory", new SubCategoryAppearance({ color: ColorDef.fromString("rgb(255,0,0)").toJSON() }));
|
|
252
|
+
txn.saveChanges("user 1: create drawing partition");
|
|
240
253
|
if (true || "push changes") {
|
|
241
254
|
// Push the changes to the hub
|
|
242
255
|
const prePushChangeSetId = rwIModel.changeset.id;
|
|
@@ -246,7 +259,7 @@ describe("Changeset Reader API", async () => {
|
|
|
246
259
|
expect(prePushChangeSetId !== postPushChangeSetId);
|
|
247
260
|
}
|
|
248
261
|
await rwIModel.locks.acquireLocks({ shared: drawingModelId });
|
|
249
|
-
const insertElements = (
|
|
262
|
+
const insertElements = (className = "Test2dElement", noOfElements = 10, userProp) => {
|
|
250
263
|
for (let m = 0; m < noOfElements; ++m) {
|
|
251
264
|
const geomArray = [
|
|
252
265
|
Arc3d.createXY(Point3d.create(0, 0), 5),
|
|
@@ -268,23 +281,23 @@ describe("Changeset Reader API", async () => {
|
|
|
268
281
|
geom: geometryStream,
|
|
269
282
|
...prop,
|
|
270
283
|
};
|
|
271
|
-
const id =
|
|
284
|
+
const id = txn.insertElement(geomElement);
|
|
272
285
|
assert.isTrue(Id64.isValidId64(id), "insert worked");
|
|
273
286
|
}
|
|
274
287
|
};
|
|
275
288
|
const generatedStr = new Array(10).join("x");
|
|
276
|
-
insertElements(
|
|
289
|
+
insertElements("Test2dElement", 1, () => {
|
|
277
290
|
return { s: generatedStr };
|
|
278
291
|
});
|
|
279
292
|
const updatedElements = async () => {
|
|
280
293
|
await rwIModel.locks.acquireLocks({ exclusive: "0x20000000004" });
|
|
281
294
|
const updatedElement = rwIModel.elements.getElementProps("0x20000000004");
|
|
282
295
|
updatedElement.s = "updated property";
|
|
283
|
-
|
|
284
|
-
|
|
296
|
+
txn.updateElement(updatedElement);
|
|
297
|
+
txn.saveChanges("user 1: updated data");
|
|
285
298
|
await rwIModel.pushChanges({ description: "user 1: update property id=0x20000000004", accessToken: adminToken });
|
|
286
299
|
};
|
|
287
|
-
|
|
300
|
+
txn.saveChanges("user 1: data");
|
|
288
301
|
if (true || "test local changes") {
|
|
289
302
|
const testChanges = async (changes) => {
|
|
290
303
|
assert.equal(changes.length, 3);
|
|
@@ -714,6 +727,7 @@ describe("Changeset Reader API", async () => {
|
|
|
714
727
|
}
|
|
715
728
|
}
|
|
716
729
|
}
|
|
730
|
+
txn.end();
|
|
717
731
|
rwIModel.close();
|
|
718
732
|
});
|
|
719
733
|
it("revert timeline changes", async () => {
|
|
@@ -722,20 +736,21 @@ describe("Changeset Reader API", async () => {
|
|
|
722
736
|
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
723
737
|
assert.isNotEmpty(rwIModelId);
|
|
724
738
|
const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
|
|
739
|
+
const txn = startTestTxn(rwIModel, "revert timeline changes");
|
|
725
740
|
let nProps = 0;
|
|
726
741
|
// 1. Import schema with class that span overflow table.
|
|
727
742
|
const addPropertyAndImportSchema = async () => {
|
|
728
743
|
await rwIModel.acquireSchemaLock();
|
|
729
744
|
++nProps;
|
|
730
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
731
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00.${nProps}" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
732
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
733
|
-
<ECEntityClass typeName="Test2dElement">
|
|
734
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
735
|
-
${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i + 1}" typeName="string"/>`).join("\n")}
|
|
736
|
-
</ECEntityClass>
|
|
745
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
746
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00.${nProps}" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
747
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
748
|
+
<ECEntityClass typeName="Test2dElement">
|
|
749
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
750
|
+
${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i + 1}" typeName="string"/>`).join("\n")}
|
|
751
|
+
</ECEntityClass>
|
|
737
752
|
</ECSchema>`;
|
|
738
|
-
await
|
|
753
|
+
await importSchemaStrings(txn, [schema]);
|
|
739
754
|
};
|
|
740
755
|
await addPropertyAndImportSchema();
|
|
741
756
|
rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
@@ -743,11 +758,11 @@ describe("Changeset Reader API", async () => {
|
|
|
743
758
|
await rwIModel.locks.acquireLocks({ shared: IModel.dictionaryId });
|
|
744
759
|
const codeProps = Code.createEmpty();
|
|
745
760
|
codeProps.value = "DrawingModel";
|
|
746
|
-
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(
|
|
761
|
+
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(txn, codeProps, true);
|
|
747
762
|
let drawingCategoryId = DrawingCategory.queryCategoryIdByName(rwIModel, IModel.dictionaryId, "MyDrawingCategory");
|
|
748
763
|
if (undefined === drawingCategoryId)
|
|
749
|
-
drawingCategoryId = DrawingCategory.insert(
|
|
750
|
-
|
|
764
|
+
drawingCategoryId = DrawingCategory.insert(txn, IModel.dictionaryId, "MyDrawingCategory", new SubCategoryAppearance({ color: ColorDef.fromString("rgb(255,0,0)").toJSON() }));
|
|
765
|
+
txn.saveChanges();
|
|
751
766
|
await rwIModel.pushChanges({ description: "setup category", accessToken: adminToken });
|
|
752
767
|
const createEl = async (args) => {
|
|
753
768
|
await rwIModel.locks.acquireLocks({ exclusive: drawingModelId });
|
|
@@ -769,17 +784,17 @@ describe("Changeset Reader API", async () => {
|
|
|
769
784
|
geom: geometryStream,
|
|
770
785
|
...args,
|
|
771
786
|
};
|
|
772
|
-
return
|
|
787
|
+
return txn.insertElement(e1);
|
|
773
788
|
;
|
|
774
789
|
};
|
|
775
790
|
const updateEl = async (id, args) => {
|
|
776
791
|
await rwIModel.locks.acquireLocks({ exclusive: id });
|
|
777
792
|
const updatedElementProps = Object.assign(rwIModel.elements.getElementProps(id), args);
|
|
778
|
-
|
|
793
|
+
txn.updateElement(updatedElementProps);
|
|
779
794
|
};
|
|
780
795
|
const deleteEl = async (id) => {
|
|
781
796
|
await rwIModel.locks.acquireLocks({ exclusive: id });
|
|
782
|
-
|
|
797
|
+
txn.deleteElement(id);
|
|
783
798
|
};
|
|
784
799
|
const getChanges = async () => {
|
|
785
800
|
return HubMock.downloadChangesets({ iModelId: rwIModelId, targetDir: path.join(KnownTestLocations.outputDir, rwIModelId, "changesets") });
|
|
@@ -795,22 +810,22 @@ describe("Changeset Reader API", async () => {
|
|
|
795
810
|
// 2. Insert a element for the class
|
|
796
811
|
const el1 = await createEl({ p1: "test1" });
|
|
797
812
|
const el2 = await createEl({ p1: "test2" });
|
|
798
|
-
|
|
813
|
+
txn.saveChanges();
|
|
799
814
|
await rwIModel.pushChanges({ description: "insert 2 elements" });
|
|
800
815
|
// 3. Update the element.
|
|
801
816
|
await updateEl(el1, { p1: "test3" });
|
|
802
|
-
|
|
817
|
+
txn.saveChanges();
|
|
803
818
|
await rwIModel.pushChanges({ description: "update element 1" });
|
|
804
819
|
// 4. Delete the element.
|
|
805
820
|
await deleteEl(el2);
|
|
806
821
|
const el3 = await createEl({ p1: "test4" });
|
|
807
|
-
|
|
822
|
+
txn.saveChanges();
|
|
808
823
|
await rwIModel.pushChanges({ description: "delete element 2" });
|
|
809
824
|
// 5. import schema and insert element 4 & update element 3
|
|
810
825
|
await addPropertyAndImportSchema();
|
|
811
826
|
const el4 = await createEl({ p1: "test5", p2: "test6" });
|
|
812
827
|
await updateEl(el3, { p1: "test7", p2: "test8" });
|
|
813
|
-
|
|
828
|
+
txn.saveChanges();
|
|
814
829
|
await rwIModel.pushChanges({ description: "import schema, insert element 4 & update element 3" });
|
|
815
830
|
assert.isDefined(findEl(el1));
|
|
816
831
|
assert.isUndefined(findEl(el2));
|
|
@@ -838,7 +853,7 @@ describe("Changeset Reader API", async () => {
|
|
|
838
853
|
await addPropertyAndImportSchema();
|
|
839
854
|
const el5 = await createEl({ p1: "test9", p2: "test10", p3: "test11" });
|
|
840
855
|
await updateEl(el1, { p1: "test12", p2: "test13", p3: "test114" });
|
|
841
|
-
|
|
856
|
+
txn.saveChanges();
|
|
842
857
|
await rwIModel.pushChanges({ description: "import schema, insert element 5 & update element 1" });
|
|
843
858
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
844
859
|
assert.deepEqual(Object.getOwnPropertyNames(rwIModel.getMetaData("TestDomain:Test2dElement").properties), ["p1", "p2", "p3"]);
|
|
@@ -861,6 +876,7 @@ describe("Changeset Reader API", async () => {
|
|
|
861
876
|
assert.isDefined(findEl(el5));
|
|
862
877
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
863
878
|
assert.deepEqual(Object.getOwnPropertyNames(rwIModel.getMetaData("TestDomain:Test2dElement").properties), ["p1", "p2", "p3"]);
|
|
879
|
+
txn.end();
|
|
864
880
|
rwIModel.close();
|
|
865
881
|
});
|
|
866
882
|
it("openGroup() & writeToFile()", async () => {
|
|
@@ -869,26 +885,27 @@ describe("Changeset Reader API", async () => {
|
|
|
869
885
|
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
870
886
|
assert.isNotEmpty(rwIModelId);
|
|
871
887
|
const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
|
|
888
|
+
const txn = startTestTxn(rwIModel, "openGroup writeToFile");
|
|
872
889
|
// 1. Import schema with class that span overflow table.
|
|
873
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
874
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
875
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
876
|
-
<ECEntityClass typeName="Test2dElement">
|
|
877
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
878
|
-
<ECProperty propertyName="p1" typeName="string"/>
|
|
879
|
-
</ECEntityClass>
|
|
890
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
891
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
892
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
893
|
+
<ECEntityClass typeName="Test2dElement">
|
|
894
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
895
|
+
<ECProperty propertyName="p1" typeName="string"/>
|
|
896
|
+
</ECEntityClass>
|
|
880
897
|
</ECSchema>`;
|
|
881
|
-
await
|
|
898
|
+
await importSchemaStrings(txn, [schema]);
|
|
882
899
|
rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
883
900
|
// Create drawing model and category
|
|
884
901
|
await rwIModel.locks.acquireLocks({ shared: IModel.dictionaryId });
|
|
885
902
|
const codeProps = Code.createEmpty();
|
|
886
903
|
codeProps.value = "DrawingModel";
|
|
887
|
-
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(
|
|
904
|
+
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(txn, codeProps, true);
|
|
888
905
|
let drawingCategoryId = DrawingCategory.queryCategoryIdByName(rwIModel, IModel.dictionaryId, "MyDrawingCategory");
|
|
889
906
|
if (undefined === drawingCategoryId)
|
|
890
|
-
drawingCategoryId = DrawingCategory.insert(
|
|
891
|
-
|
|
907
|
+
drawingCategoryId = DrawingCategory.insert(txn, IModel.dictionaryId, "MyDrawingCategory", new SubCategoryAppearance({ color: ColorDef.fromString("rgb(255,0,0)").toJSON() }));
|
|
908
|
+
txn.saveChanges();
|
|
892
909
|
await rwIModel.pushChanges({ description: "setup category", accessToken: adminToken });
|
|
893
910
|
const geomArray = [
|
|
894
911
|
Arc3d.createXY(Point3d.create(0, 0), 5),
|
|
@@ -910,20 +927,20 @@ describe("Changeset Reader API", async () => {
|
|
|
910
927
|
};
|
|
911
928
|
// 2. Insert a element for the class
|
|
912
929
|
await rwIModel.locks.acquireLocks({ shared: drawingModelId });
|
|
913
|
-
const e1id =
|
|
930
|
+
const e1id = txn.insertElement(e1);
|
|
914
931
|
assert.isTrue(Id64.isValidId64(e1id), "insert worked");
|
|
915
|
-
|
|
932
|
+
txn.saveChanges();
|
|
916
933
|
await rwIModel.pushChanges({ description: "insert element", accessToken: adminToken });
|
|
917
934
|
// 3. Update the element.
|
|
918
935
|
const updatedElementProps = Object.assign(rwIModel.elements.getElementProps(e1id), { p1: "test2" });
|
|
919
936
|
await rwIModel.locks.acquireLocks({ exclusive: e1id });
|
|
920
|
-
|
|
921
|
-
|
|
937
|
+
txn.updateElement(updatedElementProps);
|
|
938
|
+
txn.saveChanges();
|
|
922
939
|
await rwIModel.pushChanges({ description: "update element", accessToken: adminToken });
|
|
923
940
|
// 4. Delete the element.
|
|
924
941
|
await rwIModel.locks.acquireLocks({ exclusive: e1id });
|
|
925
|
-
|
|
926
|
-
|
|
942
|
+
txn.deleteElement(e1id);
|
|
943
|
+
txn.saveChanges();
|
|
927
944
|
await rwIModel.pushChanges({ description: "delete element", accessToken: adminToken });
|
|
928
945
|
const targetDir = path.join(KnownTestLocations.outputDir, rwIModelId, "changesets");
|
|
929
946
|
const changesets = (await HubMock.downloadChangesets({ iModelId: rwIModelId, targetDir })).slice(1);
|
|
@@ -1045,6 +1062,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1045
1062
|
classFullName: "BisCore:DrawingModel",
|
|
1046
1063
|
});
|
|
1047
1064
|
}
|
|
1065
|
+
txn.end();
|
|
1048
1066
|
rwIModel.close();
|
|
1049
1067
|
});
|
|
1050
1068
|
it("Delete class FK constraint violation in cache table", async () => {
|
|
@@ -1071,37 +1089,36 @@ describe("Changeset Reader API", async () => {
|
|
|
1071
1089
|
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken }),
|
|
1072
1090
|
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken })
|
|
1073
1091
|
]);
|
|
1092
|
+
const firstTxn = startTestTxn(firstBriefCase, "delete class FK constraint setup");
|
|
1074
1093
|
// Enable shared channel for both
|
|
1075
1094
|
[firstBriefCase, secondBriefCase].forEach(briefcase => briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName));
|
|
1076
|
-
await
|
|
1077
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1078
|
-
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1079
|
-
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1080
|
-
|
|
1081
|
-
<ECCustomAttributes>
|
|
1082
|
-
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1083
|
-
</ECCustomAttributes>
|
|
1084
|
-
|
|
1085
|
-
<ECEntityClass typeName="TestClass">
|
|
1086
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1087
|
-
</ECEntityClass>
|
|
1095
|
+
await importSchemaStrings(firstTxn, [`<?xml version="1.0" encoding="UTF-8"?>
|
|
1096
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1097
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1098
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1099
|
+
|
|
1100
|
+
<ECCustomAttributes>
|
|
1101
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1102
|
+
</ECCustomAttributes>
|
|
1103
|
+
|
|
1104
|
+
<ECEntityClass typeName="TestClass">
|
|
1105
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1106
|
+
</ECEntityClass>
|
|
1088
1107
|
</ECSchema>`]);
|
|
1089
|
-
firstBriefCase.saveChanges("import initial schema");
|
|
1090
1108
|
// Push the changes to the hub
|
|
1091
1109
|
await firstBriefCase.pushChanges({ description: "push initial schema changeset", accessToken: adminToken });
|
|
1092
1110
|
// Sync the second briefcase with the iModel
|
|
1093
1111
|
await secondBriefCase.pullChanges({ accessToken: adminToken });
|
|
1094
1112
|
checkClass(firstBriefCase, true, secondBriefCase, true);
|
|
1095
1113
|
// Import the schema
|
|
1096
|
-
await
|
|
1097
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1098
|
-
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1099
|
-
|
|
1100
|
-
<ECCustomAttributes>
|
|
1101
|
-
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1102
|
-
</ECCustomAttributes>
|
|
1114
|
+
await importSchemaStrings(firstTxn, [`<?xml version="1.0" encoding="UTF-8"?>
|
|
1115
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1116
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1117
|
+
|
|
1118
|
+
<ECCustomAttributes>
|
|
1119
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1120
|
+
</ECCustomAttributes>
|
|
1103
1121
|
</ECSchema>`]);
|
|
1104
|
-
firstBriefCase.saveChanges("imported schema");
|
|
1105
1122
|
// Push the changeset to the hub
|
|
1106
1123
|
await firstBriefCase.pushChanges({ description: "Delete class major change", accessToken: adminToken });
|
|
1107
1124
|
checkClass(firstBriefCase, false, secondBriefCase, true);
|
|
@@ -1114,6 +1131,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1114
1131
|
}
|
|
1115
1132
|
checkClass(firstBriefCase, false, secondBriefCase, false);
|
|
1116
1133
|
// Cleanup
|
|
1134
|
+
firstTxn.end();
|
|
1117
1135
|
secondBriefCase.close();
|
|
1118
1136
|
firstBriefCase.close();
|
|
1119
1137
|
});
|
|
@@ -1139,46 +1157,45 @@ describe("Changeset Reader API", async () => {
|
|
|
1139
1157
|
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken }),
|
|
1140
1158
|
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken })
|
|
1141
1159
|
]);
|
|
1160
|
+
const firstTxn = startTestTxn(firstBriefCase, "delete class FK revert");
|
|
1142
1161
|
// Enable shared channel for both
|
|
1143
1162
|
[firstBriefCase, secondBriefCase].forEach(briefcase => briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName));
|
|
1144
|
-
await
|
|
1145
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1146
|
-
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1147
|
-
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1148
|
-
|
|
1149
|
-
<ECCustomAttributes>
|
|
1150
|
-
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1151
|
-
</ECCustomAttributes>
|
|
1152
|
-
|
|
1153
|
-
<ECEntityClass typeName="TestClass">
|
|
1154
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1155
|
-
</ECEntityClass>
|
|
1163
|
+
await importSchemaStrings(firstTxn, [`<?xml version="1.0" encoding="UTF-8"?>
|
|
1164
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1165
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1166
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1167
|
+
|
|
1168
|
+
<ECCustomAttributes>
|
|
1169
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1170
|
+
</ECCustomAttributes>
|
|
1171
|
+
|
|
1172
|
+
<ECEntityClass typeName="TestClass">
|
|
1173
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1174
|
+
</ECEntityClass>
|
|
1156
1175
|
</ECSchema>`]);
|
|
1157
|
-
firstBriefCase.saveChanges("import initial schema");
|
|
1158
1176
|
// Push the changes to the hub
|
|
1159
1177
|
await firstBriefCase.pushChanges({ description: "push initial schema changeset", accessToken: adminToken });
|
|
1160
1178
|
// Sync the second briefcase
|
|
1161
1179
|
await secondBriefCase.pullChanges({ accessToken: adminToken });
|
|
1162
1180
|
checkClass("TestClass", firstBriefCase, true, secondBriefCase, true);
|
|
1163
1181
|
// Import the schema
|
|
1164
|
-
await
|
|
1165
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.1" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1166
|
-
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1167
|
-
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1168
|
-
|
|
1169
|
-
<ECCustomAttributes>
|
|
1170
|
-
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1171
|
-
</ECCustomAttributes>
|
|
1172
|
-
|
|
1173
|
-
<ECEntityClass typeName="TestClass">
|
|
1174
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1175
|
-
</ECEntityClass>
|
|
1176
|
-
|
|
1177
|
-
<ECEntityClass typeName="AnotherTestClass">
|
|
1178
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1179
|
-
</ECEntityClass>
|
|
1182
|
+
await importSchemaStrings(firstTxn, [`<?xml version="1.0" encoding="UTF-8"?>
|
|
1183
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.1" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1184
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1185
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1186
|
+
|
|
1187
|
+
<ECCustomAttributes>
|
|
1188
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1189
|
+
</ECCustomAttributes>
|
|
1190
|
+
|
|
1191
|
+
<ECEntityClass typeName="TestClass">
|
|
1192
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1193
|
+
</ECEntityClass>
|
|
1194
|
+
|
|
1195
|
+
<ECEntityClass typeName="AnotherTestClass">
|
|
1196
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1197
|
+
</ECEntityClass>
|
|
1180
1198
|
</ECSchema>`]);
|
|
1181
|
-
firstBriefCase.saveChanges("imported schema");
|
|
1182
1199
|
// Push the changeset to the hub
|
|
1183
1200
|
await firstBriefCase.pushChanges({ description: "Add another class change", accessToken: adminToken });
|
|
1184
1201
|
// Sync the second briefcase
|
|
@@ -1203,6 +1220,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1203
1220
|
checkClass("TestClass", firstBriefCase, true, secondBriefCase, true);
|
|
1204
1221
|
checkClass("AnotherTestClass", firstBriefCase, false, secondBriefCase, false);
|
|
1205
1222
|
// Cleanup
|
|
1223
|
+
firstTxn.end();
|
|
1206
1224
|
secondBriefCase.close();
|
|
1207
1225
|
firstBriefCase.close();
|
|
1208
1226
|
});
|
|
@@ -1216,63 +1234,62 @@ describe("Changeset Reader API", async () => {
|
|
|
1216
1234
|
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken }),
|
|
1217
1235
|
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken })
|
|
1218
1236
|
]);
|
|
1237
|
+
const firstTxn = startTestTxn(firstBriefcase, "track changeset health first briefcase");
|
|
1238
|
+
const secondTxn = startTestTxn(secondBriefcase, "track changeset health second briefcase");
|
|
1219
1239
|
[firstBriefcase, secondBriefcase].forEach(briefcase => briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName));
|
|
1220
|
-
await
|
|
1221
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1222
|
-
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1223
|
-
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1224
|
-
|
|
1225
|
-
<ECCustomAttributes>
|
|
1226
|
-
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1227
|
-
</ECCustomAttributes>
|
|
1228
|
-
|
|
1229
|
-
<ECEntityClass typeName="TestClass">
|
|
1230
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1231
|
-
</ECEntityClass>
|
|
1240
|
+
await importSchemaStrings(firstTxn, [`<?xml version="1.0" encoding="UTF-8"?>
|
|
1241
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1242
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1243
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1244
|
+
|
|
1245
|
+
<ECCustomAttributes>
|
|
1246
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1247
|
+
</ECCustomAttributes>
|
|
1248
|
+
|
|
1249
|
+
<ECEntityClass typeName="TestClass">
|
|
1250
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1251
|
+
</ECEntityClass>
|
|
1232
1252
|
</ECSchema>`]);
|
|
1233
|
-
firstBriefcase.saveChanges("import initial schema");
|
|
1234
1253
|
// Enable changeset tracking for both briefcases
|
|
1235
1254
|
await Promise.all([firstBriefcase.enableChangesetStatTracking(), secondBriefcase.enableChangesetStatTracking()]);
|
|
1236
1255
|
await firstBriefcase.pushChanges({ description: "push initial schema changeset", accessToken: adminToken });
|
|
1237
1256
|
await secondBriefcase.pullChanges({ accessToken: adminToken });
|
|
1238
1257
|
// Schema upgrade
|
|
1239
|
-
await
|
|
1240
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1241
|
-
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1242
|
-
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1243
|
-
|
|
1244
|
-
<ECCustomAttributes>
|
|
1245
|
-
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1246
|
-
</ECCustomAttributes>
|
|
1247
|
-
|
|
1248
|
-
<ECEntityClass typeName="TestClass">
|
|
1249
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1250
|
-
<ECProperty propertyName="TestProperty" typeName="string"/>
|
|
1251
|
-
</ECEntityClass>
|
|
1252
|
-
|
|
1253
|
-
<ECEnumeration typeName="TestEnum" backingTypeName="int" isStrict="true">
|
|
1254
|
-
<ECEnumerator name="Enumerator1" value="1" displayLabel="TestEnumerator1"/>
|
|
1255
|
-
<ECEnumerator name="Enumerator2" value="2" displayLabel="TestEnumerator2"/>
|
|
1256
|
-
</ECEnumeration>
|
|
1258
|
+
await importSchemaStrings(secondTxn, [`<?xml version="1.0" encoding="UTF-8"?>
|
|
1259
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1260
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1261
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1262
|
+
|
|
1263
|
+
<ECCustomAttributes>
|
|
1264
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1265
|
+
</ECCustomAttributes>
|
|
1266
|
+
|
|
1267
|
+
<ECEntityClass typeName="TestClass">
|
|
1268
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1269
|
+
<ECProperty propertyName="TestProperty" typeName="string"/>
|
|
1270
|
+
</ECEntityClass>
|
|
1271
|
+
|
|
1272
|
+
<ECEnumeration typeName="TestEnum" backingTypeName="int" isStrict="true">
|
|
1273
|
+
<ECEnumerator name="Enumerator1" value="1" displayLabel="TestEnumerator1"/>
|
|
1274
|
+
<ECEnumerator name="Enumerator2" value="2" displayLabel="TestEnumerator2"/>
|
|
1275
|
+
</ECEnumeration>
|
|
1257
1276
|
</ECSchema>`]);
|
|
1258
|
-
secondBriefcase.saveChanges("imported schema");
|
|
1259
1277
|
await secondBriefcase.pushChanges({ description: "Added a property to TestClass and an enum", accessToken: adminToken });
|
|
1260
1278
|
await firstBriefcase.pullChanges({ accessToken: adminToken });
|
|
1261
1279
|
// Major schema change
|
|
1262
|
-
await
|
|
1263
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1264
|
-
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1265
|
-
|
|
1266
|
-
<ECCustomAttributes>
|
|
1267
|
-
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1268
|
-
</ECCustomAttributes>
|
|
1269
|
-
|
|
1270
|
-
<ECEnumeration typeName="TestEnum" backingTypeName="int" isStrict="true">
|
|
1271
|
-
<ECEnumerator name="Enumerator1" value="1" displayLabel="TestEnumerator1"/>
|
|
1272
|
-
<ECEnumerator name="Enumerator2" value="2" displayLabel="TestEnumerator2"/>
|
|
1273
|
-
</ECEnumeration>
|
|
1280
|
+
await importSchemaStrings(firstTxn, [`<?xml version="1.0" encoding="UTF-8"?>
|
|
1281
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1282
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1283
|
+
|
|
1284
|
+
<ECCustomAttributes>
|
|
1285
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1286
|
+
</ECCustomAttributes>
|
|
1287
|
+
|
|
1288
|
+
<ECEnumeration typeName="TestEnum" backingTypeName="int" isStrict="true">
|
|
1289
|
+
<ECEnumerator name="Enumerator1" value="1" displayLabel="TestEnumerator1"/>
|
|
1290
|
+
<ECEnumerator name="Enumerator2" value="2" displayLabel="TestEnumerator2"/>
|
|
1291
|
+
</ECEnumeration>
|
|
1274
1292
|
</ECSchema>`]);
|
|
1275
|
-
firstBriefcase.saveChanges("imported schema");
|
|
1276
1293
|
await firstBriefcase.pushChanges({ description: "Deleted TestClass", accessToken: adminToken });
|
|
1277
1294
|
await secondBriefcase.pullChanges({ accessToken: adminToken });
|
|
1278
1295
|
const firstBriefcaseChangesets = await firstBriefcase.getAllChangesetHealthData();
|
|
@@ -1303,6 +1320,8 @@ describe("Changeset Reader API", async () => {
|
|
|
1303
1320
|
expect(secondBriefcaseChangeset2.totalFullTableScans).to.be.eql(0);
|
|
1304
1321
|
expect(secondBriefcaseChangeset2.perStatementStats.length).to.be.eql(11);
|
|
1305
1322
|
// Cleanup
|
|
1323
|
+
secondTxn.end();
|
|
1324
|
+
firstTxn.end();
|
|
1306
1325
|
secondBriefcase.close();
|
|
1307
1326
|
firstBriefcase.close();
|
|
1308
1327
|
});
|
|
@@ -1312,26 +1331,27 @@ describe("Changeset Reader API", async () => {
|
|
|
1312
1331
|
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
1313
1332
|
assert.isNotEmpty(rwIModelId);
|
|
1314
1333
|
const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
|
|
1334
|
+
const txn = startTestTxn(rwIModel, "openInMemory step");
|
|
1315
1335
|
// 1. Import schema with class that span overflow table.
|
|
1316
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
1317
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
1318
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
1319
|
-
<ECEntityClass typeName="Test2dElement">
|
|
1320
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
1321
|
-
<ECProperty propertyName="p1" typeName="string"/>
|
|
1322
|
-
</ECEntityClass>
|
|
1336
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
1337
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
1338
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
1339
|
+
<ECEntityClass typeName="Test2dElement">
|
|
1340
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
1341
|
+
<ECProperty propertyName="p1" typeName="string"/>
|
|
1342
|
+
</ECEntityClass>
|
|
1323
1343
|
</ECSchema>`;
|
|
1324
|
-
await
|
|
1344
|
+
await importSchemaStrings(txn, [schema]);
|
|
1325
1345
|
rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
1326
1346
|
// Create drawing model and category
|
|
1327
1347
|
await rwIModel.locks.acquireLocks({ shared: IModel.dictionaryId });
|
|
1328
1348
|
const codeProps = Code.createEmpty();
|
|
1329
1349
|
codeProps.value = "DrawingModel";
|
|
1330
|
-
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(
|
|
1350
|
+
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(txn, codeProps, true);
|
|
1331
1351
|
let drawingCategoryId = DrawingCategory.queryCategoryIdByName(rwIModel, IModel.dictionaryId, "MyDrawingCategory");
|
|
1332
1352
|
if (undefined === drawingCategoryId)
|
|
1333
|
-
drawingCategoryId = DrawingCategory.insert(
|
|
1334
|
-
|
|
1353
|
+
drawingCategoryId = DrawingCategory.insert(txn, IModel.dictionaryId, "MyDrawingCategory", new SubCategoryAppearance({ color: ColorDef.fromString("rgb(255,0,0)").toJSON() }));
|
|
1354
|
+
txn.saveChanges();
|
|
1335
1355
|
await rwIModel.pushChanges({ description: "setup category", accessToken: adminToken });
|
|
1336
1356
|
const geomArray = [
|
|
1337
1357
|
Arc3d.createXY(Point3d.create(0, 0), 5),
|
|
@@ -1353,7 +1373,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1353
1373
|
};
|
|
1354
1374
|
// 2. Insert a element for the class
|
|
1355
1375
|
await rwIModel.locks.acquireLocks({ shared: drawingModelId });
|
|
1356
|
-
const e1id =
|
|
1376
|
+
const e1id = txn.insertElement(e1);
|
|
1357
1377
|
assert.isTrue(Id64.isValidId64(e1id), "insert worked");
|
|
1358
1378
|
const testElClassId = getClassIdByName(rwIModel, "Test2dElement");
|
|
1359
1379
|
if (true) {
|
|
@@ -1385,7 +1405,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1385
1405
|
expect(testEl.p1).to.equals("test1");
|
|
1386
1406
|
}
|
|
1387
1407
|
// save changes and verify the the txn
|
|
1388
|
-
|
|
1408
|
+
txn.saveChanges();
|
|
1389
1409
|
if (true) {
|
|
1390
1410
|
const txnId = rwIModel.txns.getLastSavedTxnProps()?.id;
|
|
1391
1411
|
expect(txnId).to.not.be.undefined;
|
|
@@ -1437,6 +1457,8 @@ describe("Changeset Reader API", async () => {
|
|
|
1437
1457
|
expect(testEl.p1).to.equals("test1");
|
|
1438
1458
|
}
|
|
1439
1459
|
await rwIModel.pushChanges({ description: "insert element", accessToken: adminToken });
|
|
1460
|
+
txn.end();
|
|
1461
|
+
rwIModel.close();
|
|
1440
1462
|
});
|
|
1441
1463
|
it("Instance update to a different class (bug)", async () => {
|
|
1442
1464
|
/**
|
|
@@ -1467,29 +1489,30 @@ describe("Changeset Reader API", async () => {
|
|
|
1467
1489
|
const modelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
1468
1490
|
assert.isNotEmpty(modelId);
|
|
1469
1491
|
let b1 = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: modelId, accessToken: adminToken });
|
|
1492
|
+
let txn = startTestTxn(b1, "instance update to different class");
|
|
1470
1493
|
// 1. Import schema with classes that span overflow table.
|
|
1471
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
1472
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
1473
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
1474
|
-
<ECEntityClass typeName="T1">
|
|
1475
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
1476
|
-
<ECProperty propertyName="p" typeName="string"/>
|
|
1477
|
-
</ECEntityClass>
|
|
1478
|
-
<ECEntityClass typeName="T2">
|
|
1479
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
1480
|
-
<ECProperty propertyName="p" typeName="long"/>
|
|
1481
|
-
</ECEntityClass>
|
|
1494
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
1495
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
1496
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
1497
|
+
<ECEntityClass typeName="T1">
|
|
1498
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
1499
|
+
<ECProperty propertyName="p" typeName="string"/>
|
|
1500
|
+
</ECEntityClass>
|
|
1501
|
+
<ECEntityClass typeName="T2">
|
|
1502
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
1503
|
+
<ECProperty propertyName="p" typeName="long"/>
|
|
1504
|
+
</ECEntityClass>
|
|
1482
1505
|
</ECSchema>`;
|
|
1483
|
-
await
|
|
1506
|
+
await importSchemaStrings(txn, [schema]);
|
|
1484
1507
|
b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
1485
1508
|
// Create drawing model and category
|
|
1486
1509
|
await b1.locks.acquireLocks({ shared: IModel.dictionaryId });
|
|
1487
1510
|
const codeProps = Code.createEmpty();
|
|
1488
1511
|
codeProps.value = "DrawingModel";
|
|
1489
|
-
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(
|
|
1512
|
+
const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(txn, codeProps, true);
|
|
1490
1513
|
let drawingCategoryId = DrawingCategory.queryCategoryIdByName(b1, IModel.dictionaryId, "MyDrawingCategory");
|
|
1491
1514
|
if (undefined === drawingCategoryId)
|
|
1492
|
-
drawingCategoryId = DrawingCategory.insert(
|
|
1515
|
+
drawingCategoryId = DrawingCategory.insert(txn, IModel.dictionaryId, "MyDrawingCategory", new SubCategoryAppearance({ color: ColorDef.fromString("rgb(255,0,0)").toJSON() }));
|
|
1493
1516
|
const geomArray = [
|
|
1494
1517
|
Arc3d.createXY(Point3d.create(0, 0), 5),
|
|
1495
1518
|
Arc3d.createXY(Point3d.create(5, 5), 2),
|
|
@@ -1508,22 +1531,24 @@ describe("Changeset Reader API", async () => {
|
|
|
1508
1531
|
geom: geometryStream,
|
|
1509
1532
|
p: "wwww",
|
|
1510
1533
|
};
|
|
1511
|
-
const elId =
|
|
1534
|
+
const elId = txn.insertElement(geomElementT1);
|
|
1512
1535
|
assert.isTrue(Id64.isValidId64(elId), "insert worked");
|
|
1513
|
-
|
|
1536
|
+
txn.saveChanges();
|
|
1514
1537
|
await b1.pushChanges({ description: "insert element" });
|
|
1515
1538
|
await b1.locks.acquireLocks({ shared: drawingModelId, exclusive: elId });
|
|
1516
1539
|
await b1.locks.acquireLocks({ shared: IModel.dictionaryId });
|
|
1517
|
-
|
|
1518
|
-
|
|
1540
|
+
txn.deleteElement(elId);
|
|
1541
|
+
txn.saveChanges();
|
|
1519
1542
|
// Force id set to reproduce same instance with different classid
|
|
1520
1543
|
const bid = BigInt(elId) - 1n;
|
|
1521
1544
|
b1[_nativeDb].saveLocalValue("bis_elementidsequence", bid.toString());
|
|
1522
|
-
|
|
1545
|
+
txn.saveChanges();
|
|
1523
1546
|
const fileName = b1[_nativeDb].getFilePath();
|
|
1547
|
+
txn.end();
|
|
1524
1548
|
b1.close();
|
|
1525
1549
|
b1 = await BriefcaseDb.open({ fileName });
|
|
1526
1550
|
b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
1551
|
+
txn = startTestTxn(b1, "instance update to different class reopened briefcase");
|
|
1527
1552
|
const geomElementT2 = {
|
|
1528
1553
|
classFullName: `TestDomain:T2`,
|
|
1529
1554
|
model: drawingModelId,
|
|
@@ -1532,9 +1557,9 @@ describe("Changeset Reader API", async () => {
|
|
|
1532
1557
|
geom: geometryStream,
|
|
1533
1558
|
p: 1111,
|
|
1534
1559
|
};
|
|
1535
|
-
const elId2 =
|
|
1560
|
+
const elId2 = txn.insertElement(geomElementT2);
|
|
1536
1561
|
chai.expect(elId).equals(elId2);
|
|
1537
|
-
|
|
1562
|
+
txn.saveChanges();
|
|
1538
1563
|
await b1.pushChanges({ description: "buggy changeset" });
|
|
1539
1564
|
const getChanges = async () => {
|
|
1540
1565
|
return HubMock.downloadChangesets({ iModelId: modelId, targetDir: path.join(KnownTestLocations.outputDir, modelId, "changesets") });
|
|
@@ -1653,7 +1678,7 @@ describe("Changeset Reader API", async () => {
|
|
|
1653
1678
|
unifier.appendFrom(adaptor2);
|
|
1654
1679
|
}
|
|
1655
1680
|
chai.expect(unifier.getInstanceCount()).to.be.equals(2); // WRONG should be 1
|
|
1656
|
-
|
|
1681
|
+
txn.end();
|
|
1657
1682
|
b1.close();
|
|
1658
1683
|
});
|
|
1659
1684
|
});
|
|
@@ -1745,19 +1770,20 @@ describe("PRAGMA ECSQL Functions", async () => {
|
|
|
1745
1770
|
// Insert two elements
|
|
1746
1771
|
iModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
1747
1772
|
await iModel.locks.acquireLocks({ shared: IModel.repositoryModelId });
|
|
1748
|
-
const
|
|
1773
|
+
const txn = startTestTxn(iModel, "PRAGMA integrity check corrupted iModel");
|
|
1774
|
+
const element1Id = txn.insertElement({
|
|
1749
1775
|
classFullName: Subject.classFullName,
|
|
1750
1776
|
model: IModel.repositoryModelId,
|
|
1751
1777
|
parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
|
|
1752
1778
|
code: Subject.createCode(iModel, IModel.rootSubjectId, "Subject1"),
|
|
1753
1779
|
});
|
|
1754
|
-
const element2Id =
|
|
1780
|
+
const element2Id = txn.insertElement({
|
|
1755
1781
|
classFullName: Subject.classFullName,
|
|
1756
1782
|
model: IModel.repositoryModelId,
|
|
1757
1783
|
parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
|
|
1758
1784
|
code: Subject.createCode(iModel, IModel.rootSubjectId, "Subject2"),
|
|
1759
1785
|
});
|
|
1760
|
-
|
|
1786
|
+
txn.saveChanges();
|
|
1761
1787
|
// Create a relationship between them
|
|
1762
1788
|
await iModel.locks.acquireLocks({ exclusive: Id64.toIdSet([element1Id, element2Id]) });
|
|
1763
1789
|
const relationship = iModel.relationships.createInstance({
|
|
@@ -1765,13 +1791,13 @@ describe("PRAGMA ECSQL Functions", async () => {
|
|
|
1765
1791
|
sourceId: element1Id,
|
|
1766
1792
|
targetId: element2Id,
|
|
1767
1793
|
});
|
|
1768
|
-
const relationshipId =
|
|
1794
|
+
const relationshipId = txn.insertRelationship(relationship.toJSON());
|
|
1769
1795
|
assert.isTrue(Id64.isValidId64(relationshipId));
|
|
1770
|
-
|
|
1796
|
+
txn.saveChanges();
|
|
1771
1797
|
// Delete one element without deleting the relationship to corrupt the iModel
|
|
1772
1798
|
const deleteResult = iModel[_nativeDb].executeSql(`DELETE FROM bis_Element WHERE Id=${element2Id}`);
|
|
1773
1799
|
expect(deleteResult).to.equal(DbResult.BE_SQLITE_OK);
|
|
1774
|
-
|
|
1800
|
+
txn.saveChanges();
|
|
1775
1801
|
// Call PRAGMA integrity_check
|
|
1776
1802
|
const query = "PRAGMA integrity_check ECSQLOPTIONS ENABLE_EXPERIMENTAL_FEATURES";
|
|
1777
1803
|
const result = iModel.createQueryReader(query, undefined, undefined);
|
|
@@ -1787,24 +1813,26 @@ describe("PRAGMA ECSQL Functions", async () => {
|
|
|
1787
1813
|
assert(results[6][2] === true, "'check_class_ids' check should be true");
|
|
1788
1814
|
assert(results[7][2] === true, "'check_data_schema' check should be true");
|
|
1789
1815
|
assert(results[8][2] === true, "'check_schema_load' check should be true");
|
|
1816
|
+
txn.end();
|
|
1790
1817
|
});
|
|
1791
1818
|
it("should call PRAGMA integrity_check(check_linktable_fk_class_ids) on a corrupted iModel and return an error", async () => {
|
|
1792
1819
|
// Insert two elements
|
|
1793
1820
|
iModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
1794
1821
|
await iModel.locks.acquireLocks({ shared: IModel.repositoryModelId });
|
|
1795
|
-
const
|
|
1822
|
+
const txn = startTestTxn(iModel, "PRAGMA integrity check corrupted linktable fk ids");
|
|
1823
|
+
const element1Id = txn.insertElement({
|
|
1796
1824
|
classFullName: Subject.classFullName,
|
|
1797
1825
|
model: IModel.repositoryModelId,
|
|
1798
1826
|
parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
|
|
1799
1827
|
code: Subject.createCode(iModel, IModel.rootSubjectId, "Subject1"),
|
|
1800
1828
|
});
|
|
1801
|
-
const element2Id =
|
|
1829
|
+
const element2Id = txn.insertElement({
|
|
1802
1830
|
classFullName: Subject.classFullName,
|
|
1803
1831
|
model: IModel.repositoryModelId,
|
|
1804
1832
|
parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
|
|
1805
1833
|
code: Subject.createCode(iModel, IModel.rootSubjectId, "Subject2"),
|
|
1806
1834
|
});
|
|
1807
|
-
|
|
1835
|
+
txn.saveChanges();
|
|
1808
1836
|
// Create a relationship between them
|
|
1809
1837
|
await iModel.locks.acquireLocks({ exclusive: Id64.toIdSet([element1Id, element2Id]) });
|
|
1810
1838
|
const relationship = iModel.relationships.createInstance({
|
|
@@ -1812,13 +1840,13 @@ describe("PRAGMA ECSQL Functions", async () => {
|
|
|
1812
1840
|
sourceId: element1Id,
|
|
1813
1841
|
targetId: element2Id,
|
|
1814
1842
|
});
|
|
1815
|
-
const relationshipId =
|
|
1843
|
+
const relationshipId = txn.insertRelationship(relationship.toJSON());
|
|
1816
1844
|
assert.isTrue(Id64.isValidId64(relationshipId));
|
|
1817
|
-
|
|
1845
|
+
txn.saveChanges();
|
|
1818
1846
|
// Delete one element without deleting the relationship to corrupt the iModel
|
|
1819
1847
|
const deleteResult = iModel[_nativeDb].executeSql(`DELETE FROM bis_Element WHERE Id=${element2Id}`);
|
|
1820
1848
|
expect(deleteResult).to.equal(DbResult.BE_SQLITE_OK);
|
|
1821
|
-
|
|
1849
|
+
txn.saveChanges();
|
|
1822
1850
|
// Call PRAGMA integrity_check
|
|
1823
1851
|
const query = "pragma integrity_check(check_linktable_fk_ids) options enable_experimental_features";
|
|
1824
1852
|
const result = iModel.createQueryReader(query, undefined, { rowFormat: QueryRowFormat.UseECSqlPropertyNames });
|
|
@@ -1826,6 +1854,7 @@ describe("PRAGMA ECSQL Functions", async () => {
|
|
|
1826
1854
|
expect(resultArray.length).to.equal(1); // 1 error report expected
|
|
1827
1855
|
expect(resultArray[0].id).to.equal("0x20000000001");
|
|
1828
1856
|
expect(resultArray[0].key_id).to.equal("0x20000000002");
|
|
1857
|
+
txn.end();
|
|
1829
1858
|
});
|
|
1830
1859
|
});
|
|
1831
1860
|
//# sourceMappingURL=ChangesetReader.test.js.map
|