@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestEditTxn.js","sourceRoot":"","sources":["../../../src/test/TestEditTxn.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAG/F,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAOrC,MAAM,UAAU,WAAW,CAAI,MAAgB,EAAE,YAA2E,EAAE,OAA0C;IACtK,MAAM,QAAQ,GAAG,UAAU,KAAK,OAAO,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAC/E,MAAM,EAAE,GAAG,UAAU,KAAK,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IAEvE,IAAI,SAAS,KAAK,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAErD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBACT,IAAI,GAAG,CAAC,QAAQ;oBACd,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAErB,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,CAAC,QAAQ;YACd,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAErB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { SaveChangesArgs } from \"@itwin/core-common\";\nimport { EditTxn } from \"../EditTxn\";\nimport type { IModelDb } from \"../IModelDb\";\n\nexport function withEditTxn<T>(iModel: IModelDb, fn: (txn: EditTxn) => T): T;\nexport function withEditTxn<T>(iModel: IModelDb, saveArgs: string | SaveChangesArgs, fn: (txn: EditTxn) => T): T;\nexport function withEditTxn<T>(iModel: IModelDb, fn: (txn: EditTxn) => Promise<T>): Promise<T>;\nexport function withEditTxn<T>(iModel: IModelDb, saveArgs: string | SaveChangesArgs, fn: (txn: EditTxn) => Promise<T>): Promise<T>;\nexport function withEditTxn<T>(iModel: IModelDb, saveArgsOrFn: string | SaveChangesArgs | ((txn: EditTxn) => T | Promise<T>), maybeFn?: (txn: EditTxn) => T | Promise<T>): T | Promise<T> {\n const saveArgs = \"function\" === typeof saveArgsOrFn ? undefined : saveArgsOrFn;\n const fn = \"function\" === typeof saveArgsOrFn ? saveArgsOrFn : maybeFn;\n\n if (undefined === fn)\n throw new Error(\"withEditTxn requires a callback\");\n\n const txn = new EditTxn(iModel, \"test\");\n txn.start();\n\n try {\n const result = fn(txn);\n if (result instanceof Promise) {\n return result.then((value) => {\n txn.end(\"save\", saveArgs);\n return value;\n }, (err) => {\n if (txn.isActive)\n txn.end(\"abandon\");\n\n throw err;\n });\n }\n\n txn.end(\"save\", saveArgs);\n return result;\n } catch (err) {\n if (txn.isActive)\n txn.end(\"abandon\");\n\n throw err;\n }\n}\n\n"]}
|
|
@@ -20,6 +20,7 @@ export declare class DisableNativeAssertions implements Disposable {
|
|
|
20
20
|
dispose(): void;
|
|
21
21
|
}
|
|
22
22
|
export declare class TestUtils {
|
|
23
|
+
private static shouldLogToConsole;
|
|
23
24
|
static getCacheDir(fallback?: string | undefined): string | undefined;
|
|
24
25
|
/** Handles the startup of IModelHost.
|
|
25
26
|
* The provided config is used and will override any of the default values used in this method.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestUtils.d.ts","sourceRoot":"","sources":["../../../src/test/TestUtils.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAG9D,mCAAmC;AACnC,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAO;gBACT,KAAK,EAAE,MAAM;IAKlB,GAAG;CAMX;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,UAAU;IACxD,OAAO,CAAC,OAAO,CAAqD;;IAM7D,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAQ/B,qGAAqG;IAC9F,OAAO,IAAI,IAAI;CAGvB;AAED,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"TestUtils.d.ts","sourceRoot":"","sources":["../../../src/test/TestUtils.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAG9D,mCAAmC;AACnC,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAO;gBACT,KAAK,EAAE,MAAM;IAKlB,GAAG;CAMX;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,UAAU;IACxD,OAAO,CAAC,OAAO,CAAqD;;IAM7D,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAQ/B,qGAAqG;IAC9F,OAAO,IAAI,IAAI;CAGvB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,kBAAkB;WAInB,WAAW,CAAC,QAAQ,GAAE,MAAM,GAAG,SAAqB;IAOlE;;;;;;OAMG;WACiB,YAAY,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;WAQvD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;WAItC,YAAY;IAQ1B,OAAO,CAAC,MAAM,CAAC,kBAAkB;WAUnB,mBAAmB;WAInB,mBAAmB;CAGlC"}
|
|
@@ -46,6 +46,9 @@ export class DisableNativeAssertions {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
export class TestUtils {
|
|
49
|
+
static shouldLogToConsole() {
|
|
50
|
+
return process.env.ITWINJS_CORE_BACKEND_TEST_LOG_TO_CONSOLE === "1";
|
|
51
|
+
}
|
|
49
52
|
static getCacheDir(fallback = undefined) {
|
|
50
53
|
if (ProcessDetector.isMobileAppBackend) {
|
|
51
54
|
return undefined; // Let the native side handle the cache.
|
|
@@ -63,13 +66,17 @@ export class TestUtils {
|
|
|
63
66
|
const cfg = config ?? {};
|
|
64
67
|
cfg.cacheDir = TestUtils.getCacheDir(cfg.cacheDir);
|
|
65
68
|
cfg.allowSharedChannel ??= false; // Override default to test shared channel enforcement. Remove in version 5.0.
|
|
69
|
+
cfg.implicitWriteEnforcement ??= "throw";
|
|
66
70
|
await IModelHost.startup(cfg);
|
|
67
71
|
}
|
|
68
72
|
static async shutdownBackend() {
|
|
69
73
|
return IModelHost.shutdown();
|
|
70
74
|
}
|
|
71
75
|
static setupLogging() {
|
|
72
|
-
|
|
76
|
+
if (TestUtils.shouldLogToConsole())
|
|
77
|
+
Logger.initializeToConsole();
|
|
78
|
+
else
|
|
79
|
+
Logger.initialize();
|
|
73
80
|
Logger.setLevelDefault(LogLevel.Error);
|
|
74
81
|
}
|
|
75
82
|
static initDebugLogLevels(reset) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestUtils.js","sourceRoot":"","sources":["../../../src/test/TestUtils.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAkB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAqB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,mCAAmC;AACnC,MAAM,OAAO,KAAK;IACR,MAAM,CAAS;IACf,MAAM,CAAO;IACrB,YAAY,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEM,GAAG;QACR,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IAC1B,OAAO,CAAqD;IAEpE;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC;IACrE,CAAC;IAEM,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,OAAO;QAET,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,qGAAqG;IAC9F,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,SAAS;
|
|
1
|
+
{"version":3,"file":"TestUtils.js","sourceRoot":"","sources":["../../../src/test/TestUtils.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAkB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAqB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,mCAAmC;AACnC,MAAM,OAAO,KAAK;IACR,MAAM,CAAS;IACf,MAAM,CAAO;IACrB,YAAY,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEM,GAAG;QACR,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IAC1B,OAAO,CAAqD;IAEpE;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC;IACrE,CAAC;IAEM,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,OAAO;QAET,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,qGAAqG;IAC9F,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACZ,MAAM,CAAC,kBAAkB;QAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,wCAAwC,KAAK,GAAG,CAAC;IACtE,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,WAA+B,SAAS;QAChE,IAAI,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC,CAAC,wCAAwC;QAC5D,CAAC;QACD,OAAO,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,mDAAmD;IACxG,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAA0B;QACzD,MAAM,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,GAAG,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC,8EAA8E;QAChH,GAAG,CAAC,wBAAwB,KAAK,OAAO,CAAC;QACzC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,eAAe;QACjC,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,YAAY;QACxB,IAAI,SAAS,CAAC,kBAAkB,EAAE;YAChC,MAAM,CAAC,mBAAmB,EAAE,CAAC;;YAE7B,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,KAAe;QAC/C,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3F,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzF,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;IAED,sDAAsD;IACtD,2DAA2D;IACpD,MAAM,CAAC,mBAAmB;QAC/B,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,mBAAmB;QAC/B,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,IAAI,EAAE;IAChB,SAAS,CAAC,YAAY,EAAE,CAAC;IACzB,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC;AACpC,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport * as path from \"path\";\nimport { IModelJsNative, NativeLoggerCategory } from \"@bentley/imodeljs-native\";\nimport { BentleyLoggerCategory, Logger, LogLevel, ProcessDetector } from \"@itwin/core-bentley\";\nimport { BackendLoggerCategory } from \"../BackendLoggerCategory\";\nimport { IModelHost, IModelHostOptions } from \"../IModelHost\";\nimport { IModelNative } from \"../internal/NativePlatform\";\n\n/** Class for simple test timing */\nexport class Timer {\n private _label: string;\n private _start: Date;\n constructor(label: string) {\n this._label = `\\t${label}`;\n this._start = new Date();\n }\n\n public end() {\n const stop = new Date();\n const elapsed = stop.getTime() - this._start.getTime();\n // eslint-disable-next-line no-console\n console.log(`${this._label}: ${elapsed}ms`);\n }\n}\n\n/**\n * Disables native code assertions from firing. This can be used by tests that intentionally\n * test failing operations. If those failing operations raise assertions in native code, the test\n * would fail unexpectedly in a debug build. In that case the native code assertions can be disabled with\n * this class.\n */\nexport class DisableNativeAssertions implements Disposable {\n private _native: IModelJsNative.DisableNativeAssertions | undefined;\n\n constructor() {\n this._native = new IModelNative.platform.DisableNativeAssertions();\n }\n\n public [Symbol.dispose](): void {\n if (!this._native)\n return;\n\n this._native.dispose();\n this._native = undefined;\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */\n public dispose(): void {\n this[Symbol.dispose]();\n }\n}\n\nexport class TestUtils {\n private static shouldLogToConsole(): boolean {\n return process.env.ITWINJS_CORE_BACKEND_TEST_LOG_TO_CONSOLE === \"1\";\n }\n\n public static getCacheDir(fallback: string | undefined = undefined) {\n if (ProcessDetector.isMobileAppBackend) {\n return undefined; // Let the native side handle the cache.\n }\n return fallback ?? path.join(__dirname, \".cache\"); // Set the cache dir to be under the lib directory.\n }\n\n /** Handles the startup of IModelHost.\n * The provided config is used and will override any of the default values used in this method.\n *\n * The default includes:\n * - cacheDir = path.join(__dirname, \".cache\")\n * - allowSharedChannel = false;\n */\n public static async startBackend(config?: IModelHostOptions): Promise<void> {\n const cfg = config ?? {};\n cfg.cacheDir = TestUtils.getCacheDir(cfg.cacheDir);\n cfg.allowSharedChannel ??= false; // Override default to test shared channel enforcement. Remove in version 5.0.\n cfg.implicitWriteEnforcement ??= \"throw\";\n await IModelHost.startup(cfg);\n }\n\n public static async shutdownBackend(): Promise<void> {\n return IModelHost.shutdown();\n }\n\n public static setupLogging() {\n if (TestUtils.shouldLogToConsole())\n Logger.initializeToConsole();\n else\n Logger.initialize();\n Logger.setLevelDefault(LogLevel.Error);\n }\n\n private static initDebugLogLevels(reset?: boolean) {\n Logger.setLevelDefault(reset ? LogLevel.Error : LogLevel.Warning);\n Logger.setLevel(BentleyLoggerCategory.Performance, reset ? LogLevel.Error : LogLevel.Info);\n Logger.setLevel(BackendLoggerCategory.IModelDb, reset ? LogLevel.Error : LogLevel.Trace);\n Logger.setLevel(NativeLoggerCategory.DgnCore, reset ? LogLevel.Error : LogLevel.Trace);\n Logger.setLevel(NativeLoggerCategory.BeSQLite, reset ? LogLevel.Error : LogLevel.Trace);\n }\n\n // Setup typical programmatic log level overrides here\n // Convenience method used to debug specific tests/fixtures\n public static setupDebugLogLevels() {\n TestUtils.initDebugLogLevels(false);\n }\n\n public static resetDebugLogLevels() {\n TestUtils.initDebugLogLevels(true);\n }\n}\n\n// The very first \"before\" run to initially setup the logging and initial backend.\nbefore(async () => {\n TestUtils.setupLogging();\n await TestUtils.startBackend();\n});\n\nafter(async () => {\n await TestUtils.shutdownBackend();\n});\n\n"]}
|
|
@@ -15,13 +15,14 @@ import { ClassRegistry } from "../../ClassRegistry";
|
|
|
15
15
|
import { PhysicalElement } from "../../Element";
|
|
16
16
|
import { ElementOwnsUniqueAspect, ElementUniqueAspect, FontFile, IModelElementCloneContext, TextAnnotation3d } from "../../core-backend";
|
|
17
17
|
import { ElementDrivesTextAnnotation, TextAnnotationUsesTextStyleByDefault } from "../../annotations/ElementDrivesTextAnnotation";
|
|
18
|
+
import { withEditTxn } from "../../EditTxn";
|
|
18
19
|
function isIntlSupported() {
|
|
19
20
|
// Node in the mobile add-on does not include Intl, so this test fails. Right now, mobile
|
|
20
21
|
// users are not expected to do any editing, but long term we will attempt to find a better
|
|
21
22
|
// solution.
|
|
22
23
|
return !ProcessDetector.isMobileAppBackend;
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
+
function insertTestElement(txn, model, category, overrides, aspectProp = 999) {
|
|
25
26
|
const props = {
|
|
26
27
|
classFullName: "Fields:TestElement",
|
|
27
28
|
model,
|
|
@@ -60,15 +61,14 @@ function createTestElement(imodel, model, category, overrides, aspectProp = 999)
|
|
|
60
61
|
},
|
|
61
62
|
...overrides,
|
|
62
63
|
};
|
|
63
|
-
const
|
|
64
|
+
const elemId = txn.insertElement(props);
|
|
64
65
|
const aspectProps = {
|
|
65
66
|
classFullName: TestAspect.classFullName,
|
|
66
67
|
aspectProp,
|
|
67
|
-
element: new ElementOwnsUniqueAspect(
|
|
68
|
+
element: new ElementOwnsUniqueAspect(elemId),
|
|
68
69
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return id;
|
|
70
|
+
txn.insertAspect(aspectProps);
|
|
71
|
+
return elemId;
|
|
72
72
|
}
|
|
73
73
|
describe("updateField", () => {
|
|
74
74
|
const mockElementId = "0x1";
|
|
@@ -152,59 +152,59 @@ describe("updateField", () => {
|
|
|
152
152
|
expect(fieldRun.cachedContent).to.equal(FieldRun.invalidContentIndicator);
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
|
-
const fieldsSchemaXml = `
|
|
156
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
157
|
-
<ECSchema schemaName="Fields" alias="ts" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
158
|
-
<ECSchemaReference name="BisCore" version="01.00.04" alias="bis"/>
|
|
159
|
-
<ECSchemaReference name='ECDbMap' version='02.00.04' alias='ecdbmap' />
|
|
160
|
-
|
|
161
|
-
<ECEnumeration typeName="IntEnum" backingTypeName="int">
|
|
162
|
-
<ECEnumerator name="one" displayLabel="One" value="1" />
|
|
163
|
-
<ECEnumerator name="two" displayLabel="Two" value="2"/>
|
|
164
|
-
</ECEnumeration>
|
|
165
|
-
|
|
166
|
-
<ECStructClass typeName="InnerStruct" modifier="None">
|
|
167
|
-
<ECProperty propertyName="bool" typeName="boolean"/>
|
|
168
|
-
<ECArrayProperty propertyName="doubles" typeName="double" minOccurs="0" maxOccurs="unbounded"/>
|
|
169
|
-
</ECStructClass>
|
|
170
|
-
|
|
171
|
-
<ECStructClass typeName="OuterStruct" modifier="None">
|
|
172
|
-
<ECStructProperty propertyName="innerStruct" typeName="InnerStruct"/>
|
|
173
|
-
<ECStructArrayProperty propertyName="innerStructs" typeName="InnerStruct" minOccurs="0" maxOccurs="unbounded"/>
|
|
174
|
-
</ECStructClass>
|
|
175
|
-
|
|
176
|
-
<ECEntityClass typeName="TestElement" modifier="None">
|
|
177
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
178
|
-
<ECProperty propertyName="intProp" typeName="int"/>
|
|
179
|
-
<ECProperty propertyName="point" typeName="point3d"/>
|
|
180
|
-
<ECProperty propertyName="maybeNull" typeName="int"/>
|
|
181
|
-
<ECProperty propertyName="datetime" typeName="dateTime"/>
|
|
182
|
-
<ECArrayProperty propertyName="strings" typeName="string" minOccurs="0" maxOccurs="unbounded"/>
|
|
183
|
-
<ECStructProperty propertyName="outerStruct" typeName="OuterStruct"/>
|
|
184
|
-
<ECStructArrayProperty propertyName="outerStructs" typeName="OuterStruct" minOccurs="0" maxOccurs="unbounded"/>
|
|
185
|
-
<ECProperty propertyName="intEnum" typeName="IntEnum"/>
|
|
186
|
-
</ECEntityClass>
|
|
187
|
-
|
|
188
|
-
<ECEntityClass typeName="TestAspect" modifier="None">
|
|
189
|
-
<BaseClass>bis:ElementUniqueAspect</BaseClass>
|
|
190
|
-
<ECProperty propertyName="aspectProp" typeName="int"/>
|
|
191
|
-
</ECEntityClass>
|
|
192
|
-
|
|
193
|
-
<ECEntityClass typeName="TestElementStringProp" modifier="Abstract">
|
|
194
|
-
<ECCustomAttributes>
|
|
195
|
-
<QueryView xmlns="ECDbMap.02.00.04">
|
|
196
|
-
<Query>
|
|
197
|
-
SELECT
|
|
198
|
-
jo.ECInstanceId,
|
|
199
|
-
ec_classid('Fields', 'TestElementStringProp') [ECClassId],
|
|
200
|
-
json_extract(jo.jsonProperties, '$.stringProp') [StringProp]
|
|
201
|
-
FROM Fields.TestElement jo
|
|
202
|
-
</Query>
|
|
203
|
-
</QueryView>
|
|
204
|
-
</ECCustomAttributes>
|
|
205
|
-
<ECProperty propertyName="StringProp" typeName="string" />
|
|
206
|
-
</ECEntityClass>
|
|
207
|
-
</ECSchema>
|
|
155
|
+
const fieldsSchemaXml = `
|
|
156
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
157
|
+
<ECSchema schemaName="Fields" alias="ts" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
158
|
+
<ECSchemaReference name="BisCore" version="01.00.04" alias="bis"/>
|
|
159
|
+
<ECSchemaReference name='ECDbMap' version='02.00.04' alias='ecdbmap' />
|
|
160
|
+
|
|
161
|
+
<ECEnumeration typeName="IntEnum" backingTypeName="int">
|
|
162
|
+
<ECEnumerator name="one" displayLabel="One" value="1" />
|
|
163
|
+
<ECEnumerator name="two" displayLabel="Two" value="2"/>
|
|
164
|
+
</ECEnumeration>
|
|
165
|
+
|
|
166
|
+
<ECStructClass typeName="InnerStruct" modifier="None">
|
|
167
|
+
<ECProperty propertyName="bool" typeName="boolean"/>
|
|
168
|
+
<ECArrayProperty propertyName="doubles" typeName="double" minOccurs="0" maxOccurs="unbounded"/>
|
|
169
|
+
</ECStructClass>
|
|
170
|
+
|
|
171
|
+
<ECStructClass typeName="OuterStruct" modifier="None">
|
|
172
|
+
<ECStructProperty propertyName="innerStruct" typeName="InnerStruct"/>
|
|
173
|
+
<ECStructArrayProperty propertyName="innerStructs" typeName="InnerStruct" minOccurs="0" maxOccurs="unbounded"/>
|
|
174
|
+
</ECStructClass>
|
|
175
|
+
|
|
176
|
+
<ECEntityClass typeName="TestElement" modifier="None">
|
|
177
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
178
|
+
<ECProperty propertyName="intProp" typeName="int"/>
|
|
179
|
+
<ECProperty propertyName="point" typeName="point3d"/>
|
|
180
|
+
<ECProperty propertyName="maybeNull" typeName="int"/>
|
|
181
|
+
<ECProperty propertyName="datetime" typeName="dateTime"/>
|
|
182
|
+
<ECArrayProperty propertyName="strings" typeName="string" minOccurs="0" maxOccurs="unbounded"/>
|
|
183
|
+
<ECStructProperty propertyName="outerStruct" typeName="OuterStruct"/>
|
|
184
|
+
<ECStructArrayProperty propertyName="outerStructs" typeName="OuterStruct" minOccurs="0" maxOccurs="unbounded"/>
|
|
185
|
+
<ECProperty propertyName="intEnum" typeName="IntEnum"/>
|
|
186
|
+
</ECEntityClass>
|
|
187
|
+
|
|
188
|
+
<ECEntityClass typeName="TestAspect" modifier="None">
|
|
189
|
+
<BaseClass>bis:ElementUniqueAspect</BaseClass>
|
|
190
|
+
<ECProperty propertyName="aspectProp" typeName="int"/>
|
|
191
|
+
</ECEntityClass>
|
|
192
|
+
|
|
193
|
+
<ECEntityClass typeName="TestElementStringProp" modifier="Abstract">
|
|
194
|
+
<ECCustomAttributes>
|
|
195
|
+
<QueryView xmlns="ECDbMap.02.00.04">
|
|
196
|
+
<Query>
|
|
197
|
+
SELECT
|
|
198
|
+
jo.ECInstanceId,
|
|
199
|
+
ec_classid('Fields', 'TestElementStringProp') [ECClassId],
|
|
200
|
+
json_extract(jo.jsonProperties, '$.stringProp') [StringProp]
|
|
201
|
+
FROM Fields.TestElement jo
|
|
202
|
+
</Query>
|
|
203
|
+
</QueryView>
|
|
204
|
+
</ECCustomAttributes>
|
|
205
|
+
<ECProperty propertyName="StringProp" typeName="string" />
|
|
206
|
+
</ECEntityClass>
|
|
207
|
+
</ECSchema>
|
|
208
208
|
`;
|
|
209
209
|
class TestElement extends PhysicalElement {
|
|
210
210
|
static get className() { return "TestElement"; }
|
|
@@ -222,7 +222,6 @@ async function registerTestSchema(iModel) {
|
|
|
222
222
|
ClassRegistry.register(TestAspect, FieldsSchema);
|
|
223
223
|
}
|
|
224
224
|
await iModel.importSchemaStrings([fieldsSchemaXml]);
|
|
225
|
-
iModel.saveChanges();
|
|
226
225
|
}
|
|
227
226
|
describe("Field evaluation", () => {
|
|
228
227
|
let imodel;
|
|
@@ -233,19 +232,18 @@ describe("Field evaluation", () => {
|
|
|
233
232
|
const iModelPath = IModelTestUtils.prepareOutputFile("UpdateFieldsContext", "test.bim");
|
|
234
233
|
imodel = StandaloneDb.createEmpty(iModelPath, { rootSubject: { name: "UpdateFieldsContext" }, enableTransactions: true });
|
|
235
234
|
await registerTestSchema(imodel);
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
235
|
+
await withEditTxn(imodel, async (txn) => {
|
|
236
|
+
model = IModelTestUtils.createAndInsertPhysicalPartitionAndModel(txn, Code.createEmpty(), true)[1];
|
|
237
|
+
category = SpatialCategory.insert(txn, StandaloneDb.dictionaryId, "UpdateFieldsContextCategory", new SubCategoryAppearance());
|
|
238
|
+
await imodel.fonts.embedFontFile({
|
|
239
|
+
file: FontFile.createFromTrueTypeFileName(IModelTestUtils.resolveFontFile("Karla-Regular.ttf"))
|
|
240
|
+
});
|
|
241
|
+
sourceElementId = insertTestElement(txn, model, category);
|
|
241
242
|
});
|
|
242
243
|
});
|
|
243
244
|
after(() => {
|
|
244
245
|
imodel.close();
|
|
245
246
|
});
|
|
246
|
-
function insertTestElement(overrides, aspectProp) {
|
|
247
|
-
return createTestElement(imodel, model, category, overrides, aspectProp);
|
|
248
|
-
}
|
|
249
247
|
function evaluateField(propertyPath, propertyHost, deletedDependency = false) {
|
|
250
248
|
if (typeof propertyHost === "string") {
|
|
251
249
|
propertyHost = { schemaName: "Fields", className: "TestElement", elementId: propertyHost };
|
|
@@ -449,7 +447,7 @@ describe("Field evaluation", () => {
|
|
|
449
447
|
}
|
|
450
448
|
function insertAnnotationElement(textBlock) {
|
|
451
449
|
const elem = createAnnotationElement(textBlock);
|
|
452
|
-
return elem.
|
|
450
|
+
return withEditTxn(imodel, (txn) => txn.insertElement(elem.toJSON()));
|
|
453
451
|
}
|
|
454
452
|
describe("ElementDrivesTextAnnotation", () => {
|
|
455
453
|
function expectNumRelationships(expected, targetId) {
|
|
@@ -471,7 +469,7 @@ describe("Field evaluation", () => {
|
|
|
471
469
|
const targetAnno = imodel.elements.getElement(targetId);
|
|
472
470
|
expect(targetAnno).instanceof(TextAnnotation3d);
|
|
473
471
|
const rel = ElementDrivesTextAnnotation.create(imodel, sourceElementId, targetId);
|
|
474
|
-
const relId = rel.
|
|
472
|
+
const relId = withEditTxn(imodel, (txn) => txn.insertRelationship(rel.toJSON()));
|
|
475
473
|
expect(relId).not.to.equal(Id64.invalid);
|
|
476
474
|
expectNumRelationships(1);
|
|
477
475
|
const relationship = imodel.relationships.getInstance("BisCore:ElementDrivesTextAnnotation", relId);
|
|
@@ -491,40 +489,35 @@ describe("Field evaluation", () => {
|
|
|
491
489
|
}
|
|
492
490
|
describe("updateFieldDependencies", () => {
|
|
493
491
|
it("creates exactly one relationship for each unique source element on insert and update", () => {
|
|
494
|
-
const source1 = insertTestElement();
|
|
492
|
+
const source1 = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
495
493
|
const block = TextBlock.create();
|
|
496
494
|
block.appendRun(createField(source1, "1"));
|
|
497
495
|
const targetId = insertAnnotationElement(block);
|
|
498
|
-
imodel.saveChanges();
|
|
499
496
|
expectNumRelationships(1, targetId);
|
|
500
|
-
const source2 = insertTestElement();
|
|
497
|
+
const source2 = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
501
498
|
const target = imodel.elements.getElement(targetId);
|
|
502
499
|
const anno = target.getAnnotation();
|
|
503
500
|
anno.textBlock.appendRun(createField(source2, "2a"));
|
|
504
501
|
target.setAnnotation(anno);
|
|
505
|
-
target.update();
|
|
506
|
-
imodel.saveChanges();
|
|
502
|
+
withEditTxn(imodel, (txn) => target.update(txn));
|
|
507
503
|
expectNumRelationships(2, targetId);
|
|
508
504
|
anno.textBlock.appendRun(createField(source2, "2b"));
|
|
509
505
|
target.setAnnotation(anno);
|
|
510
|
-
target.update();
|
|
511
|
-
imodel.saveChanges();
|
|
506
|
+
withEditTxn(imodel, (txn) => target.update(txn));
|
|
512
507
|
expectNumRelationships(2, targetId);
|
|
513
|
-
const source3 = insertTestElement();
|
|
508
|
+
const source3 = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
514
509
|
anno.textBlock.appendRun(createField(source3, "3"));
|
|
515
510
|
target.setAnnotation(anno);
|
|
516
|
-
target.update();
|
|
517
|
-
imodel.saveChanges();
|
|
511
|
+
withEditTxn(imodel, (txn) => target.update(txn));
|
|
518
512
|
expectNumRelationships(3, targetId);
|
|
519
513
|
});
|
|
520
514
|
it("deletes stale relationships", () => {
|
|
521
|
-
const sourceA = insertTestElement();
|
|
522
|
-
const sourceB = insertTestElement();
|
|
515
|
+
const sourceA = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
516
|
+
const sourceB = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
523
517
|
const block = TextBlock.create();
|
|
524
518
|
block.appendRun(createField(sourceA, "A"));
|
|
525
519
|
block.appendRun(createField(sourceB, "B"));
|
|
526
520
|
const targetId = insertAnnotationElement(block);
|
|
527
|
-
imodel.saveChanges();
|
|
528
521
|
expectNumRelationships(2, targetId);
|
|
529
522
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceA })).not.to.be.undefined;
|
|
530
523
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceB })).not.to.be.undefined;
|
|
@@ -534,16 +527,14 @@ describe("Field evaluation", () => {
|
|
|
534
527
|
const p1 = anno.textBlock.children[0];
|
|
535
528
|
p1.children.shift();
|
|
536
529
|
target.setAnnotation(anno);
|
|
537
|
-
target.update();
|
|
538
|
-
imodel.saveChanges();
|
|
530
|
+
withEditTxn(imodel, (txn) => target.update(txn));
|
|
539
531
|
expectNumRelationships(1, targetId);
|
|
540
532
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceA })).to.be.undefined;
|
|
541
533
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceB })).not.to.be.undefined;
|
|
542
534
|
anno.textBlock.children.length = 0;
|
|
543
535
|
anno.textBlock.appendRun(createField(sourceA, "A2"));
|
|
544
536
|
target.setAnnotation(anno);
|
|
545
|
-
target.update();
|
|
546
|
-
imodel.saveChanges();
|
|
537
|
+
withEditTxn(imodel, (txn) => target.update(txn));
|
|
547
538
|
expectNumRelationships(1, targetId);
|
|
548
539
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceA })).not.to.be.undefined;
|
|
549
540
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceB })).to.be.undefined;
|
|
@@ -553,20 +544,18 @@ describe("Field evaluation", () => {
|
|
|
553
544
|
content: "not a field",
|
|
554
545
|
}));
|
|
555
546
|
target.setAnnotation(anno);
|
|
556
|
-
target.update();
|
|
557
|
-
imodel.saveChanges();
|
|
547
|
+
withEditTxn(imodel, (txn) => target.update(txn));
|
|
558
548
|
expectNumRelationships(0, targetId);
|
|
559
549
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceA })).to.be.undefined;
|
|
560
550
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceB })).to.be.undefined;
|
|
561
551
|
});
|
|
562
552
|
it("ignores invalid source element Ids", () => {
|
|
563
|
-
const source = insertTestElement();
|
|
553
|
+
const source = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
564
554
|
const block = TextBlock.create();
|
|
565
555
|
block.appendRun(createField(Id64.invalid, "invalid"));
|
|
566
556
|
block.appendRun(createField("0xbaadf00d", "non-existent"));
|
|
567
557
|
block.appendRun(createField(source, "valid"));
|
|
568
558
|
const targetId = insertAnnotationElement(block);
|
|
569
|
-
imodel.saveChanges();
|
|
570
559
|
expectNumRelationships(1, targetId);
|
|
571
560
|
});
|
|
572
561
|
});
|
|
@@ -578,116 +567,114 @@ describe("Field evaluation", () => {
|
|
|
578
567
|
expect(actual).to.equal(expected);
|
|
579
568
|
}
|
|
580
569
|
it("evaluates cachedContent when annotation element is inserted", () => {
|
|
581
|
-
const sourceId = insertTestElement();
|
|
570
|
+
const sourceId = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
582
571
|
const block = TextBlock.create();
|
|
583
572
|
block.appendRun(createField(sourceId, "initial cached content"));
|
|
584
573
|
expect(block.stringify()).to.equal("initial cached content");
|
|
585
574
|
const targetId = insertAnnotationElement(block);
|
|
586
|
-
imodel.saveChanges();
|
|
587
575
|
const target = imodel.elements.getElement(targetId);
|
|
588
576
|
expect(target.getAnnotation().textBlock.stringify()).to.equal("100");
|
|
589
577
|
});
|
|
590
578
|
it("updates fields when source element is modified or deleted", () => {
|
|
591
|
-
const sourceId = insertTestElement();
|
|
579
|
+
const sourceId = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
592
580
|
const block = TextBlock.create();
|
|
593
581
|
block.appendRun(createField(sourceId, "old value"));
|
|
594
582
|
;
|
|
595
583
|
const targetId = insertAnnotationElement(block);
|
|
596
|
-
imodel.saveChanges();
|
|
597
584
|
const target = imodel.elements.getElement(targetId);
|
|
598
585
|
expect(target.getAnnotation()).not.to.be.undefined;
|
|
599
586
|
expectText("100", targetId);
|
|
600
587
|
let source = imodel.elements.getElement(sourceId);
|
|
601
588
|
source.intProp = 50;
|
|
602
|
-
source.update();
|
|
603
589
|
expectText("100", targetId);
|
|
604
|
-
imodel
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
590
|
+
withEditTxn(imodel, "delete source element fields", (txn) => {
|
|
591
|
+
source.update(txn);
|
|
592
|
+
expectText("100", targetId);
|
|
593
|
+
txn.saveChanges("update source element fields");
|
|
594
|
+
source = imodel.elements.getElement(sourceId);
|
|
595
|
+
expect(source.intProp).to.equal(50);
|
|
596
|
+
expectText("50", targetId);
|
|
597
|
+
source.delete(txn);
|
|
598
|
+
expectText("50", targetId);
|
|
599
|
+
});
|
|
611
600
|
expectText(FieldRun.invalidContentIndicator, targetId);
|
|
612
601
|
});
|
|
613
602
|
it("updates fields when source element aspect is modified, deleted, or recreated", () => {
|
|
614
|
-
const sourceId = insertTestElement();
|
|
603
|
+
const sourceId = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
615
604
|
const block = TextBlock.create();
|
|
616
605
|
block.appendRun(createField({ elementId: sourceId, schemaName: "Fields", className: "TestAspect" }, "", "aspectProp"));
|
|
617
606
|
const targetId = insertAnnotationElement(block);
|
|
618
|
-
imodel.saveChanges();
|
|
619
607
|
expectText("999", targetId);
|
|
620
608
|
const aspects = imodel.elements.getAspects(sourceId, "Fields:TestAspect");
|
|
621
609
|
expect(aspects.length).to.equal(1);
|
|
622
610
|
const aspect = aspects[0];
|
|
623
611
|
expect(aspect.aspectProp).to.equal(999);
|
|
624
612
|
aspect.aspectProp = 12345;
|
|
625
|
-
imodel.elements.updateAspect(aspect.toJSON());
|
|
626
|
-
imodel.saveChanges();
|
|
627
|
-
expectText("12345", targetId);
|
|
628
|
-
imodel.elements.deleteAspect([aspect.id]);
|
|
629
|
-
imodel.saveChanges();
|
|
630
|
-
expectText(FieldRun.invalidContentIndicator, targetId);
|
|
631
613
|
const newAspect = {
|
|
632
614
|
element: new ElementOwnsUniqueAspect(sourceId),
|
|
633
615
|
classFullName: TestAspect.classFullName,
|
|
634
616
|
aspectProp: 42,
|
|
635
617
|
};
|
|
636
|
-
imodel
|
|
637
|
-
|
|
638
|
-
|
|
618
|
+
withEditTxn(imodel, "recreate source aspect fields", (txn) => {
|
|
619
|
+
txn.updateAspect(aspect.toJSON());
|
|
620
|
+
txn.saveChanges("update source aspect fields");
|
|
621
|
+
expectText("12345", targetId);
|
|
622
|
+
txn.deleteAspect([aspect.id]);
|
|
623
|
+
txn.saveChanges("delete source aspect fields");
|
|
624
|
+
expectText(FieldRun.invalidContentIndicator, targetId);
|
|
625
|
+
txn.insertAspect(newAspect);
|
|
626
|
+
txn.saveChanges("recreate source aspect fields");
|
|
627
|
+
expectText("42", targetId);
|
|
628
|
+
});
|
|
639
629
|
});
|
|
640
630
|
it("updates only fields for specific modified element", () => {
|
|
641
|
-
const sourceA = insertTestElement();
|
|
642
|
-
const sourceB = insertTestElement();
|
|
631
|
+
const sourceA = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
632
|
+
const sourceB = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
643
633
|
const block = TextBlock.create();
|
|
644
634
|
block.appendRun(createField(sourceA, "A"));
|
|
645
635
|
block.appendRun(createField(sourceB, "B"));
|
|
646
636
|
const targetId = insertAnnotationElement(block);
|
|
647
|
-
imodel.saveChanges();
|
|
648
637
|
expectText("100100", targetId);
|
|
649
638
|
const sourceElem = imodel.elements.getElement(sourceB);
|
|
650
639
|
sourceElem.intProp = 123;
|
|
651
|
-
sourceElem.update();
|
|
652
|
-
imodel.saveChanges();
|
|
640
|
+
withEditTxn(imodel, (txn) => sourceElem.update(txn));
|
|
653
641
|
expectText("100123", targetId);
|
|
654
642
|
});
|
|
655
643
|
it("supports complex property paths", () => {
|
|
656
|
-
const sourceId = insertTestElement();
|
|
644
|
+
const sourceId = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
657
645
|
const block = TextBlock.create();
|
|
658
646
|
block.appendRun(createField(sourceId, "", "outerStruct", ["innerStructs", 1, "doubles", -2]));
|
|
659
647
|
const targetId = insertAnnotationElement(block);
|
|
660
|
-
imodel.saveChanges();
|
|
661
648
|
expectText("2", targetId);
|
|
662
649
|
const source = imodel.elements.getElement(sourceId);
|
|
663
650
|
source.outerStruct.innerStructs[1].doubles[3] = 12.5;
|
|
664
|
-
source.update();
|
|
665
|
-
imodel.saveChanges();
|
|
651
|
+
withEditTxn(imodel, (txn) => source.update(txn));
|
|
666
652
|
expectText("12.5", targetId);
|
|
667
653
|
});
|
|
668
654
|
it("updates EC view fields when the element changes if the EC view queries the element directly", () => {
|
|
669
|
-
const sourceId = insertTestElement();
|
|
655
|
+
const sourceId = withEditTxn(imodel, (editTxn) => insertTestElement(editTxn, model, category));
|
|
670
656
|
const block = TextBlock.create();
|
|
671
657
|
block.appendRun(createField({
|
|
672
658
|
elementId: sourceId, schemaName: "Fields", className: "TestElementStringProp",
|
|
673
659
|
}, "cached-content", "StringProp"));
|
|
674
660
|
const targetId = insertAnnotationElement(block);
|
|
675
|
-
imodel.saveChanges();
|
|
676
661
|
const target = imodel.elements.getElement(targetId);
|
|
677
662
|
expect(target.getAnnotation()).not.to.be.undefined;
|
|
678
663
|
expectText("abc", targetId);
|
|
679
664
|
let source = imodel.elements.getElement(sourceId);
|
|
680
665
|
source.jsonProperties.stringProp = "zyx";
|
|
681
|
-
source.update();
|
|
682
666
|
expectText("abc", targetId);
|
|
683
|
-
imodel
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
667
|
+
withEditTxn(imodel, "delete EC view fields", (txn) => {
|
|
668
|
+
source.update(txn);
|
|
669
|
+
expectText("abc", targetId);
|
|
670
|
+
txn.saveChanges("update EC view fields");
|
|
671
|
+
expectText("zyx", targetId);
|
|
672
|
+
source = imodel.elements.getElement(sourceId);
|
|
673
|
+
expect(source.jsonProperties.stringProp).to.equal("zyx");
|
|
674
|
+
expectText("zyx", targetId);
|
|
675
|
+
source.delete(txn);
|
|
676
|
+
expectText("zyx", targetId);
|
|
677
|
+
});
|
|
691
678
|
expectText(FieldRun.invalidContentIndicator, targetId);
|
|
692
679
|
});
|
|
693
680
|
describe("remapFields", () => {
|
|
@@ -700,21 +687,26 @@ describe("Field evaluation", () => {
|
|
|
700
687
|
dstIModel = StandaloneDb.createEmpty(path, { rootSubject: { name: `RemapFields-dst` }, enableTransactions: true });
|
|
701
688
|
await registerTestSchema(dstIModel);
|
|
702
689
|
// Insert additional unused elements to ensure element Ids differ between src and dst iModels
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
690
|
+
const modelAndElement = withEditTxn(dstIModel, (txn) => {
|
|
691
|
+
for (let i = 0; i < 3; i++) {
|
|
692
|
+
IModelTestUtils.createAndInsertPhysicalPartitionAndModel(txn, Code.createEmpty(), true);
|
|
693
|
+
}
|
|
694
|
+
const ids = IModelTestUtils.createAndInsertPhysicalPartitionAndModel(txn, Code.createEmpty(), true);
|
|
695
|
+
dstCategory = SpatialCategory.insert(txn, StandaloneDb.dictionaryId, `dstCat`, new SubCategoryAppearance());
|
|
696
|
+
return ids;
|
|
697
|
+
});
|
|
707
698
|
expect(modelAndElement[0]).to.equal(modelAndElement[1]);
|
|
708
699
|
dstModel = modelAndElement[1];
|
|
709
|
-
|
|
710
|
-
dstSourceElementId = createTestElement(dstIModel, dstModel, dstCategory, {
|
|
700
|
+
dstSourceElementId = withEditTxn(dstIModel, (txn) => insertTestElement(txn, dstModel, dstCategory, {
|
|
711
701
|
intProp: 200,
|
|
712
702
|
point: { x: -1, y: -2, z: -3 },
|
|
713
703
|
strings: ["x", "y", "z"],
|
|
714
704
|
intEnum: 2,
|
|
715
|
-
}, 1234);
|
|
716
|
-
await dstIModel
|
|
717
|
-
|
|
705
|
+
}, 1234));
|
|
706
|
+
await withEditTxn(dstIModel, async () => {
|
|
707
|
+
await dstIModel.fonts.embedFontFile({
|
|
708
|
+
file: FontFile.createFromTrueTypeFileName(IModelTestUtils.resolveFontFile("Karla-Regular.ttf"))
|
|
709
|
+
});
|
|
718
710
|
});
|
|
719
711
|
expect(dstCategory).not.to.equal(category);
|
|
720
712
|
expect(dstModel).not.to.equal(model);
|