@itwin/core-backend 5.0.0-dev.9 → 5.0.0-dev.92
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 +60 -1
- package/lib/cjs/BackendHubAccess.d.ts +14 -28
- package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
- package/lib/cjs/BackendHubAccess.js +2 -0
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
- package/lib/cjs/BisCoreSchema.js +2 -0
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.d.ts +4 -4
- package/lib/cjs/BlobContainerService.d.ts.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts +10 -0
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +63 -20
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.js +6 -1
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +92 -24
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.d.ts +3 -3
- package/lib/cjs/ChangedElementsDb.d.ts.map +1 -1
- package/lib/cjs/ChangedElementsDb.js +8 -7
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts +3 -3
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +273 -261
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.d.ts.map +1 -1
- package/lib/cjs/CheckpointManager.js +15 -12
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +46 -2
- package/lib/cjs/ClassRegistry.d.ts.map +1 -1
- package/lib/cjs/ClassRegistry.js +98 -42
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +2 -1
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +15 -8
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.d.ts +2 -0
- package/lib/cjs/CodeService.d.ts.map +1 -1
- package/lib/cjs/CodeService.js +4 -0
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.js +3 -2
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js +7 -6
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js +16 -16
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.js +2 -0
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +16 -59
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +34 -73
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js +1 -0
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts +4 -2
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +13 -4
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.d.ts +14 -23
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +133 -46
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +0 -5
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +24 -16
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +13 -12
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +46 -10
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +79 -16
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js +4 -0
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.js +22 -0
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.d.ts +68 -0
- package/lib/cjs/FontFile.d.ts.map +1 -0
- package/lib/cjs/FontFile.js +36 -0
- package/lib/cjs/FontFile.js.map +1 -0
- package/lib/cjs/GeoCoordConfig.js +8 -8
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +53 -50
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/HubMock.d.ts +4 -4
- package/lib/cjs/HubMock.d.ts.map +1 -1
- package/lib/cjs/HubMock.js +9 -6
- package/lib/cjs/HubMock.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +203 -72
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +338 -168
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.d.ts +54 -0
- package/lib/cjs/IModelDbFonts.d.ts.map +1 -0
- package/lib/cjs/{IModelCloneContext.js → IModelDbFonts.js} +2 -7
- package/lib/cjs/IModelDbFonts.js.map +1 -0
- package/lib/cjs/IModelElementCloneContext.d.ts +2 -0
- package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js +12 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +14 -14
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +75 -42
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.d.ts.map +1 -1
- package/lib/cjs/IModelJsFs.js +17 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.d.ts +49 -0
- package/lib/cjs/ImageSourceConversion.d.ts.map +1 -0
- package/lib/cjs/ImageSourceConversion.js +37 -0
- package/lib/cjs/ImageSourceConversion.js.map +1 -0
- package/lib/cjs/IpcHost.d.ts.map +1 -1
- package/lib/cjs/IpcHost.js +17 -12
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +9 -3
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js +5 -6
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/LockControl.js.map +1 -1
- package/lib/cjs/Material.js +40 -0
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +1 -1
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +27 -2
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js +5 -3
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js +6 -3
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js +25 -25
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.d.ts +2 -3
- package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
- package/lib/cjs/PromiseMemoizer.js +12 -5
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js +1 -4
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +13 -1
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.d.ts +6 -4
- package/lib/cjs/SQLiteDb.d.ts.map +1 -1
- package/lib/cjs/SQLiteDb.js +74 -15
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.d.ts +25 -1
- package/lib/cjs/Schema.d.ts.map +1 -1
- package/lib/cjs/Schema.js +44 -8
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js +1 -4
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.js +6 -0
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.d.ts +11 -3
- package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js +21 -5
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.d.ts +4 -2
- package/lib/cjs/SqliteStatement.d.ts.map +1 -1
- package/lib/cjs/SqliteStatement.js +13 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/TextAnnotationGeometry.d.ts.map +1 -1
- package/lib/cjs/TextAnnotationGeometry.js +38 -11
- package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/TextAnnotationLayout.d.ts +10 -3
- package/lib/cjs/TextAnnotationLayout.d.ts.map +1 -1
- package/lib/cjs/TextAnnotationLayout.js +56 -18
- package/lib/cjs/TextAnnotationLayout.js.map +1 -1
- package/lib/cjs/Texture.js +3 -0
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js +6 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +55 -4
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +234 -58
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +6 -6
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +81 -26
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.d.ts +0 -1
- package/lib/cjs/ViewStateHydrator.d.ts.map +1 -1
- package/lib/cjs/ViewStateHydrator.js +1 -11
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js +3 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
- package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
- package/lib/cjs/core-backend.d.ts +7 -1
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +7 -1
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js +1 -1
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.d.ts +40 -2
- package/lib/cjs/internal/ChangesetConflictArgs.d.ts.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js +101 -0
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js +25 -16
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/FontFileImpl.d.ts +34 -0
- package/lib/cjs/internal/FontFileImpl.d.ts.map +1 -0
- package/lib/cjs/internal/FontFileImpl.js +143 -0
- package/lib/cjs/internal/FontFileImpl.js.map +1 -0
- package/lib/cjs/internal/IModelDbFontsImpl.d.ts +7 -0
- package/lib/cjs/internal/IModelDbFontsImpl.d.ts.map +1 -0
- package/lib/cjs/internal/IModelDbFontsImpl.js +186 -0
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -0
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js +2 -5
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js +6 -6
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +7 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +8 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js +6 -9
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js +8 -12
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js +22 -17
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js +1 -4
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.d.ts.map +1 -1
- package/lib/cjs/rpc/multipart.js +2 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js +2 -2
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.d.ts.map +1 -1
- package/lib/cjs/rpc/web/request.js +2 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +5 -2
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +5 -3
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +4 -3
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.d.ts +215 -0
- package/lib/esm/BackendHubAccess.d.ts.map +1 -0
- package/lib/esm/BackendHubAccess.js +41 -0
- package/lib/esm/BackendHubAccess.js.map +1 -0
- package/lib/esm/BackendLoggerCategory.d.ts +88 -0
- package/lib/esm/BackendLoggerCategory.d.ts.map +1 -0
- package/lib/esm/BackendLoggerCategory.js +93 -0
- package/lib/esm/BackendLoggerCategory.js.map +1 -0
- package/lib/esm/BisCoreSchema.d.ts +22 -0
- package/lib/esm/BisCoreSchema.d.ts.map +1 -0
- package/lib/esm/BisCoreSchema.js +61 -0
- package/lib/esm/BisCoreSchema.js.map +1 -0
- package/lib/esm/BlobContainerService.d.ts +159 -0
- package/lib/esm/BlobContainerService.d.ts.map +1 -0
- package/lib/esm/BlobContainerService.js +15 -0
- package/lib/esm/BlobContainerService.js.map +1 -0
- package/lib/esm/BriefcaseManager.d.ts +213 -0
- package/lib/esm/BriefcaseManager.d.ts.map +1 -0
- package/lib/esm/BriefcaseManager.js +520 -0
- package/lib/esm/BriefcaseManager.js.map +1 -0
- package/lib/esm/Category.d.ts +136 -0
- package/lib/esm/Category.d.ts.map +1 -0
- package/lib/esm/Category.js +224 -0
- package/lib/esm/Category.js.map +1 -0
- package/lib/esm/ChangeSummaryManager.d.ts +161 -0
- package/lib/esm/ChangeSummaryManager.d.ts.map +1 -0
- package/lib/esm/ChangeSummaryManager.js +414 -0
- package/lib/esm/ChangeSummaryManager.js.map +1 -0
- package/lib/esm/ChangedElementsDb.d.ts +101 -0
- package/lib/esm/ChangedElementsDb.d.ts.map +1 -0
- package/lib/esm/ChangedElementsDb.js +165 -0
- package/lib/esm/ChangedElementsDb.js.map +1 -0
- package/lib/esm/ChangesetECAdaptor.d.ts +203 -0
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -0
- package/lib/esm/ChangesetECAdaptor.js +814 -0
- package/lib/esm/ChangesetECAdaptor.js.map +1 -0
- package/lib/esm/ChannelControl.d.ts +68 -0
- package/lib/esm/ChannelControl.d.ts.map +1 -0
- package/lib/esm/ChannelControl.js +15 -0
- package/lib/esm/ChannelControl.js.map +1 -0
- package/lib/esm/CheckpointManager.d.ts +123 -0
- package/lib/esm/CheckpointManager.d.ts.map +1 -0
- package/lib/esm/CheckpointManager.js +375 -0
- package/lib/esm/CheckpointManager.js.map +1 -0
- package/lib/esm/ClassRegistry.d.ts +134 -0
- package/lib/esm/ClassRegistry.d.ts.map +1 -0
- package/lib/esm/ClassRegistry.js +324 -0
- package/lib/esm/ClassRegistry.js.map +1 -0
- package/lib/esm/CloudSqlite.d.ts +682 -0
- package/lib/esm/CloudSqlite.d.ts.map +1 -0
- package/lib/esm/CloudSqlite.js +511 -0
- package/lib/esm/CloudSqlite.js.map +1 -0
- package/lib/esm/CodeService.d.ts +402 -0
- package/lib/esm/CodeService.d.ts.map +1 -0
- package/lib/esm/CodeService.js +65 -0
- package/lib/esm/CodeService.js.map +1 -0
- package/lib/esm/CodeSpecs.d.ts +59 -0
- package/lib/esm/CodeSpecs.d.ts.map +1 -0
- package/lib/esm/CodeSpecs.js +152 -0
- package/lib/esm/CodeSpecs.js.map +1 -0
- package/lib/esm/ConcurrentQuery.d.ts +14 -0
- package/lib/esm/ConcurrentQuery.d.ts.map +1 -0
- package/lib/esm/ConcurrentQuery.js +33 -0
- package/lib/esm/ConcurrentQuery.js.map +1 -0
- package/lib/esm/CustomViewState3dCreator.d.ts +22 -0
- package/lib/esm/CustomViewState3dCreator.d.ts.map +1 -0
- package/lib/esm/CustomViewState3dCreator.js +78 -0
- package/lib/esm/CustomViewState3dCreator.js.map +1 -0
- package/lib/esm/DevTools.d.ts +73 -0
- package/lib/esm/DevTools.d.ts.map +1 -0
- package/lib/esm/DevTools.js +153 -0
- package/lib/esm/DevTools.js.map +1 -0
- package/lib/esm/DisplayStyle.d.ts +99 -0
- package/lib/esm/DisplayStyle.d.ts.map +1 -0
- package/lib/esm/DisplayStyle.js +264 -0
- package/lib/esm/DisplayStyle.js.map +1 -0
- package/lib/esm/ECDb.d.ts +170 -0
- package/lib/esm/ECDb.d.ts.map +1 -0
- package/lib/esm/ECDb.js +329 -0
- package/lib/esm/ECDb.js.map +1 -0
- package/lib/esm/ECSchemaXmlContext.d.ts +46 -0
- package/lib/esm/ECSchemaXmlContext.d.ts.map +1 -0
- package/lib/esm/ECSchemaXmlContext.js +66 -0
- package/lib/esm/ECSchemaXmlContext.js.map +1 -0
- package/lib/esm/ECSqlStatement.d.ts +492 -0
- package/lib/esm/ECSqlStatement.d.ts.map +1 -0
- package/lib/esm/ECSqlStatement.js +810 -0
- package/lib/esm/ECSqlStatement.js.map +1 -0
- package/lib/esm/Element.d.ts +987 -0
- package/lib/esm/Element.d.ts.map +1 -0
- package/lib/esm/Element.js +1337 -0
- package/lib/esm/Element.js.map +1 -0
- package/lib/esm/ElementAspect.d.ts +164 -0
- package/lib/esm/ElementAspect.d.ts.map +1 -0
- package/lib/esm/ElementAspect.js +204 -0
- package/lib/esm/ElementAspect.js.map +1 -0
- package/lib/esm/ElementGraphics.d.ts +7 -0
- package/lib/esm/ElementGraphics.d.ts.map +1 -0
- package/lib/esm/ElementGraphics.js +36 -0
- package/lib/esm/ElementGraphics.js.map +1 -0
- package/lib/esm/ElementTreeWalker.d.ts +182 -0
- package/lib/esm/ElementTreeWalker.d.ts.map +1 -0
- package/lib/esm/ElementTreeWalker.js +421 -0
- package/lib/esm/ElementTreeWalker.js.map +1 -0
- package/lib/esm/Entity.d.ts +142 -0
- package/lib/esm/Entity.d.ts.map +1 -0
- package/lib/esm/Entity.js +186 -0
- package/lib/esm/Entity.js.map +1 -0
- package/lib/esm/EntityReferences.d.ts +50 -0
- package/lib/esm/EntityReferences.d.ts.map +1 -0
- package/lib/esm/EntityReferences.js +92 -0
- package/lib/esm/EntityReferences.js.map +1 -0
- package/lib/esm/ExportGraphics.d.ts +318 -0
- package/lib/esm/ExportGraphics.d.ts.map +1 -0
- package/lib/esm/ExportGraphics.js +209 -0
- package/lib/esm/ExportGraphics.js.map +1 -0
- package/lib/esm/ExternalSource.d.ts +89 -0
- package/lib/esm/ExternalSource.d.ts.map +1 -0
- package/lib/esm/ExternalSource.js +139 -0
- package/lib/esm/ExternalSource.js.map +1 -0
- package/lib/esm/FontFile.d.ts +68 -0
- package/lib/esm/FontFile.d.ts.map +1 -0
- package/lib/esm/FontFile.js +33 -0
- package/lib/esm/FontFile.js.map +1 -0
- package/lib/esm/GeoCoordConfig.d.ts +30 -0
- package/lib/esm/GeoCoordConfig.d.ts.map +1 -0
- package/lib/esm/GeoCoordConfig.js +78 -0
- package/lib/esm/GeoCoordConfig.js.map +1 -0
- package/lib/esm/GeographicCRSServices.d.ts +40 -0
- package/lib/esm/GeographicCRSServices.d.ts.map +1 -0
- package/lib/esm/GeographicCRSServices.js +17 -0
- package/lib/esm/GeographicCRSServices.js.map +1 -0
- package/lib/esm/GeometrySummary.d.ts +5 -0
- package/lib/esm/GeometrySummary.d.ts.map +1 -0
- package/lib/esm/GeometrySummary.js +381 -0
- package/lib/esm/GeometrySummary.js.map +1 -0
- package/lib/esm/HubMock.d.ts +95 -0
- package/lib/esm/HubMock.d.ts.map +1 -0
- package/lib/esm/HubMock.js +220 -0
- package/lib/esm/HubMock.js.map +1 -0
- package/lib/esm/IModelDb.d.ts +1398 -0
- package/lib/esm/IModelDb.d.ts.map +1 -0
- package/lib/esm/IModelDb.js +3230 -0
- package/lib/esm/IModelDb.js.map +1 -0
- package/lib/esm/IModelDbFonts.d.ts +54 -0
- package/lib/esm/IModelDbFonts.d.ts.map +1 -0
- package/lib/esm/IModelDbFonts.js +9 -0
- package/lib/esm/IModelDbFonts.js.map +1 -0
- package/lib/esm/IModelElementCloneContext.d.ts +92 -0
- package/lib/esm/IModelElementCloneContext.d.ts.map +1 -0
- package/lib/esm/IModelElementCloneContext.js +168 -0
- package/lib/esm/IModelElementCloneContext.js.map +1 -0
- package/lib/esm/IModelHost.d.ts +387 -0
- package/lib/esm/IModelHost.d.ts.map +1 -0
- package/lib/esm/IModelHost.js +502 -0
- package/lib/esm/IModelHost.js.map +1 -0
- package/lib/esm/IModelJsFs.d.ts +62 -0
- package/lib/esm/IModelJsFs.d.ts.map +1 -0
- package/lib/esm/IModelJsFs.js +151 -0
- package/lib/esm/IModelJsFs.js.map +1 -0
- package/lib/esm/ImageSourceConversion.d.ts +49 -0
- package/lib/esm/ImageSourceConversion.d.ts.map +1 -0
- package/lib/esm/ImageSourceConversion.js +33 -0
- package/lib/esm/ImageSourceConversion.js.map +1 -0
- package/lib/esm/IpcHost.d.ts +111 -0
- package/lib/esm/IpcHost.d.ts.map +1 -0
- package/lib/esm/IpcHost.js +311 -0
- package/lib/esm/IpcHost.js.map +1 -0
- package/lib/esm/LineStyle.d.ts +312 -0
- package/lib/esm/LineStyle.d.ts.map +1 -0
- package/lib/esm/LineStyle.js +293 -0
- package/lib/esm/LineStyle.js.map +1 -0
- package/lib/esm/LocalHub.d.ts +163 -0
- package/lib/esm/LocalHub.d.ts.map +1 -0
- package/lib/esm/LocalHub.js +583 -0
- package/lib/esm/LocalHub.js.map +1 -0
- package/lib/esm/LocalhostIpcHost.d.ts +22 -0
- package/lib/esm/LocalhostIpcHost.d.ts.map +1 -0
- package/lib/esm/LocalhostIpcHost.js +74 -0
- package/lib/esm/LocalhostIpcHost.js.map +1 -0
- package/lib/esm/LockControl.d.ts +73 -0
- package/lib/esm/LockControl.d.ts.map +1 -0
- package/lib/esm/LockControl.js +9 -0
- package/lib/esm/LockControl.js.map +1 -0
- package/lib/esm/Material.d.ts +131 -0
- package/lib/esm/Material.d.ts.map +1 -0
- package/lib/esm/Material.js +235 -0
- package/lib/esm/Material.js.map +1 -0
- package/lib/esm/Model.d.ts +375 -0
- package/lib/esm/Model.d.ts.map +1 -0
- package/lib/esm/Model.js +484 -0
- package/lib/esm/Model.js.map +1 -0
- package/lib/esm/NativeAppStorage.d.ts +52 -0
- package/lib/esm/NativeAppStorage.d.ts.map +1 -0
- package/lib/esm/NativeAppStorage.js +205 -0
- package/lib/esm/NativeAppStorage.js.map +1 -0
- package/lib/esm/NativeHost.d.ts +53 -0
- package/lib/esm/NativeHost.d.ts.map +1 -0
- package/lib/esm/NativeHost.js +158 -0
- package/lib/esm/NativeHost.js.map +1 -0
- package/lib/esm/NavigationRelationship.d.ts +185 -0
- package/lib/esm/NavigationRelationship.d.ts.map +1 -0
- package/lib/esm/NavigationRelationship.js +238 -0
- package/lib/esm/NavigationRelationship.js.map +1 -0
- package/lib/esm/PromiseMemoizer.d.ts +48 -0
- package/lib/esm/PromiseMemoizer.d.ts.map +1 -0
- package/lib/esm/PromiseMemoizer.js +101 -0
- package/lib/esm/PromiseMemoizer.js.map +1 -0
- package/lib/esm/PropertyStore.d.ts +134 -0
- package/lib/esm/PropertyStore.d.ts.map +1 -0
- package/lib/esm/PropertyStore.js +177 -0
- package/lib/esm/PropertyStore.js.map +1 -0
- package/lib/esm/Relationship.d.ts +399 -0
- package/lib/esm/Relationship.d.ts.map +1 -0
- package/lib/esm/Relationship.js +474 -0
- package/lib/esm/Relationship.js.map +1 -0
- package/lib/esm/RpcBackend.d.ts +6 -0
- package/lib/esm/RpcBackend.d.ts.map +1 -0
- package/lib/esm/RpcBackend.js +28 -0
- package/lib/esm/RpcBackend.js.map +1 -0
- package/lib/esm/SQLiteDb.d.ts +324 -0
- package/lib/esm/SQLiteDb.d.ts.map +1 -0
- package/lib/esm/SQLiteDb.js +379 -0
- package/lib/esm/SQLiteDb.js.map +1 -0
- package/lib/esm/Schema.d.ts +79 -0
- package/lib/esm/Schema.d.ts.map +1 -0
- package/lib/esm/Schema.js +113 -0
- package/lib/esm/Schema.js.map +1 -0
- package/lib/esm/SchemaSync.d.ts +47 -0
- package/lib/esm/SchemaSync.d.ts.map +1 -0
- package/lib/esm/SchemaSync.js +148 -0
- package/lib/esm/SchemaSync.js.map +1 -0
- package/lib/esm/SchemaUtils.d.ts +19 -0
- package/lib/esm/SchemaUtils.d.ts.map +1 -0
- package/lib/esm/SchemaUtils.js +37 -0
- package/lib/esm/SchemaUtils.js.map +1 -0
- package/lib/esm/SheetIndex.d.ts +148 -0
- package/lib/esm/SheetIndex.d.ts.map +1 -0
- package/lib/esm/SheetIndex.js +228 -0
- package/lib/esm/SheetIndex.js.map +1 -0
- package/lib/esm/SqliteChangesetReader.d.ts +278 -0
- package/lib/esm/SqliteChangesetReader.d.ts.map +1 -0
- package/lib/esm/SqliteChangesetReader.js +337 -0
- package/lib/esm/SqliteChangesetReader.js.map +1 -0
- package/lib/esm/SqliteStatement.d.ts +375 -0
- package/lib/esm/SqliteStatement.d.ts.map +1 -0
- package/lib/esm/SqliteStatement.js +615 -0
- package/lib/esm/SqliteStatement.js.map +1 -0
- package/lib/esm/TextAnnotationElement.d.ts +54 -0
- package/lib/esm/TextAnnotationElement.d.ts.map +1 -0
- package/lib/esm/TextAnnotationElement.js +89 -0
- package/lib/esm/TextAnnotationElement.js.map +1 -0
- package/lib/esm/TextAnnotationGeometry.d.ts +32 -0
- package/lib/esm/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/esm/TextAnnotationGeometry.js +181 -0
- package/lib/esm/TextAnnotationGeometry.js.map +1 -0
- package/lib/esm/TextAnnotationLayout.d.ts +177 -0
- package/lib/esm/TextAnnotationLayout.d.ts.map +1 -0
- package/lib/esm/TextAnnotationLayout.js +513 -0
- package/lib/esm/TextAnnotationLayout.js.map +1 -0
- package/lib/esm/Texture.d.ts +58 -0
- package/lib/esm/Texture.d.ts.map +1 -0
- package/lib/esm/Texture.js +81 -0
- package/lib/esm/Texture.js.map +1 -0
- package/lib/esm/TileStorage.d.ts +59 -0
- package/lib/esm/TileStorage.d.ts.map +1 -0
- package/lib/esm/TileStorage.js +158 -0
- package/lib/esm/TileStorage.js.map +1 -0
- package/lib/esm/TxnManager.d.ts +296 -0
- package/lib/esm/TxnManager.d.ts.map +1 -0
- package/lib/esm/TxnManager.js +619 -0
- package/lib/esm/TxnManager.js.map +1 -0
- package/lib/esm/ViewDefinition.d.ts +392 -0
- package/lib/esm/ViewDefinition.d.ts.map +1 -0
- package/lib/esm/ViewDefinition.js +638 -0
- package/lib/esm/ViewDefinition.js.map +1 -0
- package/lib/esm/ViewStateHydrator.d.ts +14 -0
- package/lib/esm/ViewStateHydrator.d.ts.map +1 -0
- package/lib/esm/ViewStateHydrator.js +89 -0
- package/lib/esm/ViewStateHydrator.js.map +1 -0
- package/lib/esm/ViewStore.d.ts +502 -0
- package/lib/esm/ViewStore.d.ts.map +1 -0
- package/lib/esm/ViewStore.js +1259 -0
- package/lib/esm/ViewStore.js.map +1 -0
- package/lib/esm/core-backend.d.ts +183 -0
- package/lib/esm/core-backend.d.ts.map +1 -0
- package/lib/esm/core-backend.js +187 -0
- package/lib/esm/core-backend.js.map +1 -0
- package/lib/esm/domains/FunctionalElements.d.ts +86 -0
- package/lib/esm/domains/FunctionalElements.d.ts.map +1 -0
- package/lib/esm/domains/FunctionalElements.js +117 -0
- package/lib/esm/domains/FunctionalElements.js.map +1 -0
- package/lib/esm/domains/FunctionalSchema.d.ts +14 -0
- package/lib/esm/domains/FunctionalSchema.d.ts.map +1 -0
- package/lib/esm/domains/FunctionalSchema.js +37 -0
- package/lib/esm/domains/FunctionalSchema.js.map +1 -0
- package/lib/esm/domains/GenericElements.d.ts +160 -0
- package/lib/esm/domains/GenericElements.d.ts.map +1 -0
- package/lib/esm/domains/GenericElements.js +225 -0
- package/lib/esm/domains/GenericElements.js.map +1 -0
- package/lib/esm/domains/GenericSchema.d.ts +11 -0
- package/lib/esm/domains/GenericSchema.d.ts.map +1 -0
- package/lib/esm/domains/GenericSchema.js +25 -0
- package/lib/esm/domains/GenericSchema.js.map +1 -0
- package/lib/esm/internal/ChangesetConflictArgs.d.ts +62 -0
- package/lib/esm/internal/ChangesetConflictArgs.d.ts.map +1 -0
- package/lib/esm/internal/ChangesetConflictArgs.js +104 -0
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -0
- package/lib/esm/internal/ChannelAdmin.d.ts +34 -0
- package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -0
- package/lib/esm/internal/ChannelAdmin.js +122 -0
- package/lib/esm/internal/ChannelAdmin.js.map +1 -0
- package/lib/esm/internal/FontFileImpl.d.ts +34 -0
- package/lib/esm/internal/FontFileImpl.d.ts.map +1 -0
- package/lib/esm/internal/FontFileImpl.js +135 -0
- package/lib/esm/internal/FontFileImpl.js.map +1 -0
- package/lib/esm/internal/IModelDbFontsImpl.d.ts +7 -0
- package/lib/esm/internal/IModelDbFontsImpl.d.ts.map +1 -0
- package/lib/esm/internal/IModelDbFontsImpl.js +183 -0
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -0
- package/lib/esm/internal/NativePlatform.d.ts +15 -0
- package/lib/esm/internal/NativePlatform.d.ts.map +1 -0
- package/lib/esm/internal/NativePlatform.js +43 -0
- package/lib/esm/internal/NativePlatform.js.map +1 -0
- package/lib/esm/internal/NoLocks.d.ts +6 -0
- package/lib/esm/internal/NoLocks.d.ts.map +1 -0
- package/lib/esm/internal/NoLocks.js +24 -0
- package/lib/esm/internal/NoLocks.js.map +1 -0
- package/lib/esm/internal/ServerBasedLocks.d.ts +52 -0
- package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -0
- package/lib/esm/internal/ServerBasedLocks.js +175 -0
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -0
- package/lib/esm/internal/Symbols.d.ts +18 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -0
- package/lib/esm/internal/Symbols.js +25 -0
- package/lib/esm/internal/Symbols.js.map +1 -0
- package/lib/esm/internal/cross-package.d.ts +4 -0
- package/lib/esm/internal/cross-package.d.ts.map +1 -0
- package/lib/esm/internal/cross-package.js +8 -0
- package/lib/esm/internal/cross-package.js.map +1 -0
- package/lib/esm/internal/workspace/SettingsImpl.d.ts +43 -0
- package/lib/esm/internal/workspace/SettingsImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/SettingsImpl.js +154 -0
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts +6 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js +268 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +41 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.js +691 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts +10 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js +35 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -0
- package/lib/esm/rpc/multipart.d.ts +12 -0
- package/lib/esm/rpc/multipart.d.ts.map +1 -0
- package/lib/esm/rpc/multipart.js +67 -0
- package/lib/esm/rpc/multipart.js.map +1 -0
- package/lib/esm/rpc/tracing.d.ts +29 -0
- package/lib/esm/rpc/tracing.d.ts.map +1 -0
- package/lib/esm/rpc/tracing.js +71 -0
- package/lib/esm/rpc/tracing.js.map +1 -0
- package/lib/esm/rpc/web/logging.d.ts +10 -0
- package/lib/esm/rpc/web/logging.d.ts.map +1 -0
- package/lib/esm/rpc/web/logging.js +41 -0
- package/lib/esm/rpc/web/logging.js.map +1 -0
- package/lib/esm/rpc/web/request.d.ts +7 -0
- package/lib/esm/rpc/web/request.d.ts.map +1 -0
- package/lib/esm/rpc/web/request.js +71 -0
- package/lib/esm/rpc/web/request.js.map +1 -0
- package/lib/esm/rpc/web/response.d.ts +7 -0
- package/lib/esm/rpc/web/response.d.ts.map +1 -0
- package/lib/esm/rpc/web/response.js +136 -0
- package/lib/esm/rpc/web/response.js.map +1 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts +16 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js +29 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +51 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +313 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts +21 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js +193 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +45 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js +166 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +18 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +41 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -0
- package/lib/esm/test/AdvancedEqual.d.ts +38 -0
- package/lib/esm/test/AdvancedEqual.d.ts.map +1 -0
- package/lib/esm/test/AdvancedEqual.js +67 -0
- package/lib/esm/test/AdvancedEqual.js.map +1 -0
- package/lib/esm/test/AttachDb.test.d.ts +2 -0
- package/lib/esm/test/AttachDb.test.d.ts.map +1 -0
- package/lib/esm/test/AttachDb.test.js +157 -0
- package/lib/esm/test/AttachDb.test.js.map +1 -0
- package/lib/esm/test/GeometryTestUtil.d.ts +7 -0
- package/lib/esm/test/GeometryTestUtil.d.ts.map +1 -0
- package/lib/esm/test/GeometryTestUtil.js +25 -0
- package/lib/esm/test/GeometryTestUtil.js.map +1 -0
- package/lib/esm/test/IModelHost.test.d.ts +2 -0
- package/lib/esm/test/IModelHost.test.d.ts.map +1 -0
- package/lib/esm/test/IModelHost.test.js +187 -0
- package/lib/esm/test/IModelHost.test.js.map +1 -0
- package/lib/esm/test/IModelTestUtils.d.ts +173 -0
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -0
- package/lib/esm/test/IModelTestUtils.js +1113 -0
- package/lib/esm/test/IModelTestUtils.js.map +1 -0
- package/lib/esm/test/ImageSourceConversion.test.d.ts +2 -0
- package/lib/esm/test/ImageSourceConversion.test.d.ts.map +1 -0
- package/lib/esm/test/ImageSourceConversion.test.js +171 -0
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -0
- package/lib/esm/test/IpcHost.test.d.ts +2 -0
- package/lib/esm/test/IpcHost.test.d.ts.map +1 -0
- package/lib/esm/test/IpcHost.test.js +55 -0
- package/lib/esm/test/IpcHost.test.js.map +1 -0
- package/lib/esm/test/KnownTestLocations.d.ts +7 -0
- package/lib/esm/test/KnownTestLocations.d.ts.map +1 -0
- package/lib/esm/test/KnownTestLocations.js +27 -0
- package/lib/esm/test/KnownTestLocations.js.map +1 -0
- package/lib/esm/test/PrintElementTree.d.ts +7 -0
- package/lib/esm/test/PrintElementTree.d.ts.map +1 -0
- package/lib/esm/test/PrintElementTree.js +35 -0
- package/lib/esm/test/PrintElementTree.js.map +1 -0
- package/lib/esm/test/PropertyDb.test.d.ts +2 -0
- package/lib/esm/test/PropertyDb.test.d.ts.map +1 -0
- package/lib/esm/test/PropertyDb.test.js +71 -0
- package/lib/esm/test/PropertyDb.test.js.map +1 -0
- package/lib/esm/test/RevisionUtility.d.ts +33 -0
- package/lib/esm/test/RevisionUtility.d.ts.map +1 -0
- package/lib/esm/test/RevisionUtility.js +52 -0
- package/lib/esm/test/RevisionUtility.js.map +1 -0
- package/lib/esm/test/SchemaUtils.test.d.ts +2 -0
- package/lib/esm/test/SchemaUtils.test.d.ts.map +1 -0
- package/lib/esm/test/SchemaUtils.test.js +97 -0
- package/lib/esm/test/SchemaUtils.test.js.map +1 -0
- package/lib/esm/test/SequentialLogMatcher.d.ts +35 -0
- package/lib/esm/test/SequentialLogMatcher.d.ts.map +1 -0
- package/lib/esm/test/SequentialLogMatcher.js +130 -0
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -0
- package/lib/esm/test/TestChangeSetUtility.d.ts +23 -0
- package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -0
- package/lib/esm/test/TestChangeSetUtility.js +65 -0
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -0
- package/lib/esm/test/TestUtils.d.ts +38 -0
- package/lib/esm/test/TestUtils.d.ts.map +1 -0
- package/lib/esm/test/TestUtils.js +99 -0
- package/lib/esm/test/TestUtils.js.map +1 -0
- package/lib/esm/test/annotations/TextAnnotation.test.d.ts +2 -0
- package/lib/esm/test/annotations/TextAnnotation.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/TextAnnotation.test.js +1135 -0
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -0
- package/lib/esm/test/categories/Category.test.d.ts +2 -0
- package/lib/esm/test/categories/Category.test.d.ts.map +1 -0
- package/lib/esm/test/categories/Category.test.js +51 -0
- package/lib/esm/test/categories/Category.test.js.map +1 -0
- package/lib/esm/test/codespec/CodeSpec.test.d.ts +2 -0
- package/lib/esm/test/codespec/CodeSpec.test.d.ts.map +1 -0
- package/lib/esm/test/codespec/CodeSpec.test.js +51 -0
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -0
- package/lib/esm/test/ecdb/CTE.test.d.ts +2 -0
- package/lib/esm/test/ecdb/CTE.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/CTE.test.js +177 -0
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +167 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECDb.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECDb.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECDb.test.js +642 -0
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.d.ts +5 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.js +28 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +63 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.d.ts +5 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.js +971 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +770 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.js +669 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +3239 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.d.ts +2 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.js +508 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts +4 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +127 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts +2 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +196 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts +66 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js +420 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts +2 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +365 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts +2 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts.map +1 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.js +208 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -0
- package/lib/esm/test/element/ElementAspect.test.d.ts +2 -0
- package/lib/esm/test/element/ElementAspect.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementAspect.test.js +363 -0
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts +2 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.js +383 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -0
- package/lib/esm/test/element/ElementRoundTrip.test.d.ts +2 -0
- package/lib/esm/test/element/ElementRoundTrip.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementRoundTrip.test.js +916 -0
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -0
- package/lib/esm/test/element/ExcludedElements.test.d.ts +2 -0
- package/lib/esm/test/element/ExcludedElements.test.d.ts.map +1 -0
- package/lib/esm/test/element/ExcludedElements.test.js +57 -0
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -0
- package/lib/esm/test/element/ExternalSource.test.d.ts +2 -0
- package/lib/esm/test/element/ExternalSource.test.d.ts.map +1 -0
- package/lib/esm/test/element/ExternalSource.test.js +107 -0
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -0
- package/lib/esm/test/element/NullStructArray.test.d.ts +2 -0
- package/lib/esm/test/element/NullStructArray.test.d.ts.map +1 -0
- package/lib/esm/test/element/NullStructArray.test.js +77 -0
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -0
- package/lib/esm/test/element/UrlLink.test.d.ts +2 -0
- package/lib/esm/test/element/UrlLink.test.d.ts.map +1 -0
- package/lib/esm/test/element/UrlLink.test.js +36 -0
- package/lib/esm/test/element/UrlLink.test.js.map +1 -0
- package/lib/esm/test/font/FontFile.test.d.ts +2 -0
- package/lib/esm/test/font/FontFile.test.d.ts.map +1 -0
- package/lib/esm/test/font/FontFile.test.js +139 -0
- package/lib/esm/test/font/FontFile.test.js.map +1 -0
- package/lib/esm/test/font/IModelDbFonts.test.d.ts +2 -0
- package/lib/esm/test/font/IModelDbFonts.test.d.ts.map +1 -0
- package/lib/esm/test/font/IModelDbFonts.test.js +264 -0
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts +2 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js +165 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts +2 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.js +137 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -0
- package/lib/esm/test/imageData.d.ts +9 -0
- package/lib/esm/test/imageData.d.ts.map +1 -0
- package/lib/esm/test/imageData.js +16 -0
- package/lib/esm/test/imageData.js.map +1 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts +2 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.js +382 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -0
- package/lib/esm/test/imodel/GetTextureImage.test.d.ts +2 -0
- package/lib/esm/test/imodel/GetTextureImage.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/GetTextureImage.test.js +29 -0
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -0
- package/lib/esm/test/imodel/IModel.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModel.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModel.test.js +2601 -0
- package/lib/esm/test/imodel/IModel.test.js.map +1 -0
- package/lib/esm/test/imodel/ProjectExtents.test.d.ts +2 -0
- package/lib/esm/test/imodel/ProjectExtents.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/ProjectExtents.test.js +66 -0
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts +2 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.js +74 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -0
- package/lib/esm/test/index.d.ts +7 -0
- package/lib/esm/test/index.d.ts.map +1 -0
- package/lib/esm/test/index.js +11 -0
- package/lib/esm/test/index.js.map +1 -0
- package/lib/esm/test/misc/DevTools.test.d.ts +2 -0
- package/lib/esm/test/misc/DevTools.test.d.ts.map +1 -0
- package/lib/esm/test/misc/DevTools.test.js +72 -0
- package/lib/esm/test/misc/DevTools.test.js.map +1 -0
- package/lib/esm/test/misc/EntitySubClasses.test.d.ts +2 -0
- package/lib/esm/test/misc/EntitySubClasses.test.d.ts.map +1 -0
- package/lib/esm/test/misc/EntitySubClasses.test.js +106 -0
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -0
- package/lib/esm/test/misc/GeoServices.test.d.ts +2 -0
- package/lib/esm/test/misc/GeoServices.test.d.ts.map +1 -0
- package/lib/esm/test/misc/GeoServices.test.js +850 -0
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.d.ts +2 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.d.ts.map +1 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.js +111 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -0
- package/lib/esm/test/native/DgnDbWorker.test.d.ts +2 -0
- package/lib/esm/test/native/DgnDbWorker.test.d.ts.map +1 -0
- package/lib/esm/test/native/DgnDbWorker.test.js +159 -0
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -0
- package/lib/esm/test/rpc/response.test.d.ts +2 -0
- package/lib/esm/test/rpc/response.test.d.ts.map +1 -0
- package/lib/esm/test/rpc/response.test.js +112 -0
- package/lib/esm/test/rpc/response.test.js.map +1 -0
- package/lib/esm/test/schema/ClassRegistry.test.d.ts +2 -0
- package/lib/esm/test/schema/ClassRegistry.test.d.ts.map +1 -0
- package/lib/esm/test/schema/ClassRegistry.test.js +679 -0
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -0
- package/lib/esm/test/schema/FunctionalDomain.test.d.ts +2 -0
- package/lib/esm/test/schema/FunctionalDomain.test.d.ts.map +1 -0
- package/lib/esm/test/schema/FunctionalDomain.test.js +490 -0
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -0
- package/lib/esm/test/schema/GenericDomain.test.d.ts +2 -0
- package/lib/esm/test/schema/GenericDomain.test.d.ts.map +1 -0
- package/lib/esm/test/schema/GenericDomain.test.js +132 -0
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.d.ts +2 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.d.ts.map +1 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.js +95 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +4 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -0
- package/lib/esm/test/standalone/ChangeMerge.test.d.ts +2 -0
- package/lib/esm/test/standalone/ChangeMerge.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ChangeMerge.test.js +413 -0
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.d.ts +2 -0
- package/lib/esm/test/standalone/ChangesetReader.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js +890 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts +2 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js +49 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -0
- package/lib/esm/test/standalone/DisplayStyle.test.d.ts +2 -0
- package/lib/esm/test/standalone/DisplayStyle.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/DisplayStyle.test.js +136 -0
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.d.ts +2 -0
- package/lib/esm/test/standalone/ElementGraphics.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js +127 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementMesh.test.d.ts +2 -0
- package/lib/esm/test/standalone/ElementMesh.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ElementMesh.test.js +142 -0
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -0
- package/lib/esm/test/standalone/ExportGraphics.test.d.ts +2 -0
- package/lib/esm/test/standalone/ExportGraphics.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ExportGraphics.test.js +1040 -0
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts +2 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js +139 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -0
- package/lib/esm/test/standalone/GeometryStream.test.d.ts +2 -0
- package/lib/esm/test/standalone/GeometryStream.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/GeometryStream.test.js +2869 -0
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -0
- package/lib/esm/test/standalone/HubMock.test.d.ts +2 -0
- package/lib/esm/test/standalone/HubMock.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/HubMock.test.js +343 -0
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -0
- package/lib/esm/test/standalone/IModelWrite.test.d.ts +7 -0
- package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/IModelWrite.test.js +859 -0
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts +2 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +417 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -0
- package/lib/esm/test/standalone/MergeConflict.test.d.ts +7 -0
- package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/MergeConflict.test.js +345 -0
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.d.ts +2 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.js +121 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts +2 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +398 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -0
- package/lib/esm/test/standalone/RenderTimeline.test.d.ts +2 -0
- package/lib/esm/test/standalone/RenderTimeline.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/RenderTimeline.test.js +71 -0
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -0
- package/lib/esm/test/standalone/SQLiteDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/SQLiteDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SQLiteDb.test.js +63 -0
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -0
- package/lib/esm/test/standalone/SchemaUtils.test.d.ts +2 -0
- package/lib/esm/test/standalone/SchemaUtils.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SchemaUtils.test.js +25 -0
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -0
- package/lib/esm/test/standalone/SectionDrawing.test.d.ts +2 -0
- package/lib/esm/test/standalone/SectionDrawing.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SectionDrawing.test.js +83 -0
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts +2 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.js +279 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -0
- package/lib/esm/test/standalone/Setting.test.d.ts +2 -0
- package/lib/esm/test/standalone/Setting.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Setting.test.js +76 -0
- package/lib/esm/test/standalone/Setting.test.js.map +1 -0
- package/lib/esm/test/standalone/Settings.test.d.ts +2 -0
- package/lib/esm/test/standalone/Settings.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Settings.test.js +349 -0
- package/lib/esm/test/standalone/Settings.test.js.map +1 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.d.ts +2 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.js +31 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/SnapshotDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js +153 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -0
- package/lib/esm/test/standalone/Texture.test.d.ts +2 -0
- package/lib/esm/test/standalone/Texture.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Texture.test.js +90 -0
- package/lib/esm/test/standalone/Texture.test.js.map +1 -0
- package/lib/esm/test/standalone/TileCache.test.d.ts +9 -0
- package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TileCache.test.js +127 -0
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -0
- package/lib/esm/test/standalone/TileTree.test.d.ts +2 -0
- package/lib/esm/test/standalone/TileTree.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TileTree.test.js +241 -0
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -0
- package/lib/esm/test/standalone/TxnManager.test.d.ts +2 -0
- package/lib/esm/test/standalone/TxnManager.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TxnManager.test.js +878 -0
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -0
- package/lib/esm/test/standalone/ViewDefinition.test.d.ts +2 -0
- package/lib/esm/test/standalone/ViewDefinition.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ViewDefinition.test.js +279 -0
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.js +288 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -0
- package/lib/esm/test/standalone/Workspace.test.d.ts +2 -0
- package/lib/esm/test/standalone/Workspace.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Workspace.test.js +161 -0
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -0
- package/lib/esm/workspace/Settings.d.ts +216 -0
- package/lib/esm/workspace/Settings.d.ts.map +1 -0
- package/lib/esm/workspace/Settings.js +83 -0
- package/lib/esm/workspace/Settings.js.map +1 -0
- package/lib/esm/workspace/SettingsSchemas.d.ts +135 -0
- package/lib/esm/workspace/SettingsSchemas.d.ts.map +1 -0
- package/lib/esm/workspace/SettingsSchemas.js +9 -0
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -0
- package/lib/esm/workspace/Workspace.d.ts +507 -0
- package/lib/esm/workspace/Workspace.d.ts.map +1 -0
- package/lib/esm/workspace/Workspace.js +97 -0
- package/lib/esm/workspace/Workspace.js.map +1 -0
- package/lib/esm/workspace/WorkspaceEditor.d.ts +245 -0
- package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -0
- package/lib/esm/workspace/WorkspaceEditor.js +31 -0
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -0
- package/package.json +35 -28
- package/lib/cjs/IModelCloneContext.d.ts +0 -9
- package/lib/cjs/IModelCloneContext.d.ts.map +0 -1
- package/lib/cjs/IModelCloneContext.js.map +0 -1
|
@@ -0,0 +1,1113 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Buffer } from "node:buffer";
|
|
6
|
+
import * as chai from "chai";
|
|
7
|
+
import { assert, expect } from "chai";
|
|
8
|
+
import * as chaiAsPromised from "chai-as-promised";
|
|
9
|
+
import * as path from "path";
|
|
10
|
+
import { BeEvent, DbResult, Guid, Id64, IModelStatus, omit } from "@itwin/core-bentley";
|
|
11
|
+
import { Base64EncodedString, Code, CodeScopeSpec, ColorDef, Environment, FontType, GeometryParams, GeometryStreamBuilder, ImageSourceFormat, IModel, IModelError, IModelReadRpcInterface, IModelVersion, PlanProjectionSettings, RelatedElement, RpcConfiguration, RpcManager, RpcPendingResponse, SkyBoxImageType, SubCategoryAppearance, SubCategoryOverride, SyncMode, } from "@itwin/core-common";
|
|
12
|
+
import { Box, Cone, LineString3d, Point2d, Point3d, Range2d, Range3d, StandardViewIndex, Vector3d, YawPitchRollAngles } from "@itwin/core-geometry";
|
|
13
|
+
import { V1CheckpointManager } from "../CheckpointManager";
|
|
14
|
+
import { ClassRegistry } from "../ClassRegistry";
|
|
15
|
+
import { _nativeDb, AuxCoordSystem2d, BriefcaseDb, BriefcaseLocalValue, BriefcaseManager, CategorySelector, ChannelControl, DisplayStyle2d, DisplayStyle3d, DrawingCategory, DrawingViewDefinition, Element, ElementOwnsChildElements, ElementOwnsMultiAspects, ElementOwnsUniqueAspect, ExternalSource, ExternalSourceIsInRepository, FunctionalModel, FunctionalSchema, GroupModel, IModelDb, IModelHost, IModelJsFs, InformationPartitionElement, Model, ModelSelector, OrthographicViewDefinition, PhysicalModel, PhysicalObject, PhysicalPartition, RenderMaterialElement, SnapshotDb, SpatialCategory, SubCategory, SubjectOwnsPartitionElements, Texture, ViewDefinition, } from "../core-backend";
|
|
16
|
+
import { DefinitionPartition, Drawing, DrawingGraphic, GeometryPart, LinkElement, PhysicalElement, RepositoryLink, Subject } from "../Element";
|
|
17
|
+
import { DefinitionModel, DocumentListModel, DrawingModel, InformationRecordModel, SpatialLocationModel } from "../Model";
|
|
18
|
+
import { DrawingGraphicRepresentsElement, ElementDrivesElement } from "../Relationship";
|
|
19
|
+
import { RpcBriefcaseUtility } from "../rpc-impl/RpcBriefcaseUtility";
|
|
20
|
+
import { Schema, Schemas } from "../Schema";
|
|
21
|
+
import { HubMock } from "../HubMock";
|
|
22
|
+
import { KnownTestLocations } from "./KnownTestLocations";
|
|
23
|
+
import { _hubAccess } from "../internal/Symbols";
|
|
24
|
+
chai.use(chaiAsPromised);
|
|
25
|
+
/* eslint-disable @typescript-eslint/explicit-member-accessibility */
|
|
26
|
+
RpcConfiguration.developmentMode = true;
|
|
27
|
+
// Initialize the RPC interface classes used by tests
|
|
28
|
+
RpcManager.initializeInterface(IModelReadRpcInterface);
|
|
29
|
+
export class TestBim extends Schema {
|
|
30
|
+
static get schemaName() { return "TestBim"; }
|
|
31
|
+
}
|
|
32
|
+
export class TestElementDrivesElement extends ElementDrivesElement {
|
|
33
|
+
static get className() { return "TestElementDrivesElement"; }
|
|
34
|
+
static rootChanged = new BeEvent();
|
|
35
|
+
static deletedDependency = new BeEvent();
|
|
36
|
+
static onRootChanged(props, imodel) { this.rootChanged.raiseEvent(props, imodel); }
|
|
37
|
+
static onDeletedDependency(props, imodel) { this.deletedDependency.raiseEvent(props, imodel); }
|
|
38
|
+
}
|
|
39
|
+
export class TestPhysicalObject extends PhysicalElement {
|
|
40
|
+
static get className() { return "TestPhysicalObject"; }
|
|
41
|
+
static beforeOutputsHandled = new BeEvent();
|
|
42
|
+
static allInputsHandled = new BeEvent();
|
|
43
|
+
static onBeforeOutputsHandled(id, imodel) { this.beforeOutputsHandled.raiseEvent(id, imodel); }
|
|
44
|
+
static onAllInputsHandled(id, imodel) { this.allInputsHandled.raiseEvent(id, imodel); }
|
|
45
|
+
}
|
|
46
|
+
/** the types of users available for tests */
|
|
47
|
+
export var TestUserType;
|
|
48
|
+
(function (TestUserType) {
|
|
49
|
+
TestUserType[TestUserType["Regular"] = 0] = "Regular";
|
|
50
|
+
TestUserType[TestUserType["Manager"] = 1] = "Manager";
|
|
51
|
+
TestUserType[TestUserType["Super"] = 2] = "Super";
|
|
52
|
+
TestUserType[TestUserType["SuperManager"] = 3] = "SuperManager";
|
|
53
|
+
})(TestUserType || (TestUserType = {}));
|
|
54
|
+
/** A wrapper around the BackendHubAccess API through IModelHost[_hubAccess].
|
|
55
|
+
*
|
|
56
|
+
* All methods in this class should be usable with any BackendHubAccess implementation (i.e. HubMock and IModelHubBackend).
|
|
57
|
+
*/
|
|
58
|
+
export class HubWrappers {
|
|
59
|
+
static get hubMock() { return HubMock; }
|
|
60
|
+
static async getAccessToken(user) {
|
|
61
|
+
return TestUserType[user];
|
|
62
|
+
}
|
|
63
|
+
/** Create an iModel with the name provided if it does not already exist. If it does exist, the iModelId is returned. */
|
|
64
|
+
static async createIModel(accessToken, iTwinId, iModelName) {
|
|
65
|
+
assert.isTrue(this.hubMock.isValid, "Must use HubMock for tests that modify iModels");
|
|
66
|
+
let iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName });
|
|
67
|
+
if (!iModelId)
|
|
68
|
+
iModelId = await IModelHost[_hubAccess].createNewIModel({ accessToken, iTwinId, iModelName, description: `Description for iModel` });
|
|
69
|
+
return iModelId;
|
|
70
|
+
}
|
|
71
|
+
/** Deletes and re-creates an iModel with the provided name in the iTwin.
|
|
72
|
+
* @returns the iModelId of the newly created iModel.
|
|
73
|
+
*/
|
|
74
|
+
static async recreateIModel(...[arg]) {
|
|
75
|
+
assert.isTrue(this.hubMock.isValid, "Must use HubMock for tests that modify iModels");
|
|
76
|
+
const deleteIModel = await IModelHost[_hubAccess].queryIModelByName(arg);
|
|
77
|
+
if (undefined !== deleteIModel)
|
|
78
|
+
await IModelHost[_hubAccess].deleteIModel({ accessToken: arg.accessToken, iTwinId: arg.iTwinId, iModelId: deleteIModel });
|
|
79
|
+
// Create a new iModel
|
|
80
|
+
return IModelHost[_hubAccess].createNewIModel({ description: `Description for ${arg.iModelName}`, ...arg });
|
|
81
|
+
}
|
|
82
|
+
/** Delete an IModel from the hub */
|
|
83
|
+
static async deleteIModel(accessToken, iTwinId, iModelName) {
|
|
84
|
+
const iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName });
|
|
85
|
+
if (undefined === iModelId)
|
|
86
|
+
return;
|
|
87
|
+
await IModelHost[_hubAccess].deleteIModel({ accessToken, iTwinId, iModelId });
|
|
88
|
+
}
|
|
89
|
+
/** Push an iModel to the Hub */
|
|
90
|
+
static async pushIModel(accessToken, iTwinId, pathname, iModelName, overwrite) {
|
|
91
|
+
// Delete any existing iModels with the same name as the required iModel
|
|
92
|
+
const locIModelName = iModelName || path.basename(pathname, ".bim");
|
|
93
|
+
const iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName: locIModelName });
|
|
94
|
+
if (iModelId) {
|
|
95
|
+
if (!overwrite)
|
|
96
|
+
return iModelId;
|
|
97
|
+
await IModelHost[_hubAccess].deleteIModel({ accessToken, iTwinId, iModelId });
|
|
98
|
+
}
|
|
99
|
+
// Upload a new iModel
|
|
100
|
+
return IModelHost[_hubAccess].createNewIModel({ accessToken, iTwinId, iModelName: locIModelName, version0: pathname });
|
|
101
|
+
}
|
|
102
|
+
/** Helper to open a briefcase db directly with the BriefcaseManager API */
|
|
103
|
+
static async downloadAndOpenBriefcase(args) {
|
|
104
|
+
const props = await BriefcaseManager.downloadBriefcase(args);
|
|
105
|
+
if (args.noLock) {
|
|
106
|
+
const briefcase = await BriefcaseDb.open({ fileName: props.fileName });
|
|
107
|
+
briefcase[_nativeDb].saveLocalValue(BriefcaseLocalValue.NoLocking, "true");
|
|
108
|
+
briefcase.saveChanges();
|
|
109
|
+
briefcase.close();
|
|
110
|
+
}
|
|
111
|
+
return BriefcaseDb.open({ fileName: props.fileName });
|
|
112
|
+
}
|
|
113
|
+
/** Opens the specific iModel as a Briefcase through the same workflow the IModelReadRpc.getConnectionProps method will use. Replicates the way a frontend would open the iModel. */
|
|
114
|
+
static async openBriefcaseUsingRpc(args) {
|
|
115
|
+
if (undefined === args.asOf)
|
|
116
|
+
args.asOf = IModelVersion.latest().toJSON();
|
|
117
|
+
const openArgs = {
|
|
118
|
+
tokenProps: {
|
|
119
|
+
iTwinId: args.iTwinId,
|
|
120
|
+
iModelId: args.iModelId,
|
|
121
|
+
changeset: (await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId })),
|
|
122
|
+
},
|
|
123
|
+
activity: { accessToken: args.accessToken, activityId: "", applicationId: "", applicationVersion: "", sessionId: "" },
|
|
124
|
+
syncMode: args.briefcaseId === 0 ? SyncMode.PullOnly : SyncMode.PullAndPush,
|
|
125
|
+
forceDownload: args.deleteFirst,
|
|
126
|
+
};
|
|
127
|
+
assert.isTrue(this.hubMock.isValid || openArgs.syncMode === SyncMode.PullOnly, "use HubMock to acquire briefcases");
|
|
128
|
+
while (true) {
|
|
129
|
+
try {
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
131
|
+
return (await RpcBriefcaseUtility.open(openArgs));
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
if (!(error instanceof RpcPendingResponse))
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/** Downloads and opens a v1 checkpoint */
|
|
140
|
+
static async downloadAndOpenCheckpoint(args) {
|
|
141
|
+
if (undefined === args.asOf)
|
|
142
|
+
args.asOf = IModelVersion.latest().toJSON();
|
|
143
|
+
const checkpoint = {
|
|
144
|
+
iTwinId: args.iTwinId,
|
|
145
|
+
iModelId: args.iModelId,
|
|
146
|
+
accessToken: args.accessToken,
|
|
147
|
+
changeset: (await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId })),
|
|
148
|
+
};
|
|
149
|
+
return V1CheckpointManager.getCheckpointDb({ checkpoint, localFile: V1CheckpointManager.getFileName(checkpoint) });
|
|
150
|
+
}
|
|
151
|
+
/** Opens the specific Checkpoint iModel, `SyncMode.FixedVersion`, through the same workflow the IModelReadRpc.getConnectionProps method will use. Replicates the way a frontend would open the iModel. */
|
|
152
|
+
static async openCheckpointUsingRpc(args) {
|
|
153
|
+
if (undefined === args.asOf)
|
|
154
|
+
args.asOf = IModelVersion.latest().toJSON();
|
|
155
|
+
const changeset = await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId });
|
|
156
|
+
const openArgs = {
|
|
157
|
+
tokenProps: {
|
|
158
|
+
iTwinId: args.iTwinId,
|
|
159
|
+
iModelId: args.iModelId,
|
|
160
|
+
changeset,
|
|
161
|
+
},
|
|
162
|
+
activity: { accessToken: args.accessToken, activityId: "", applicationId: "", applicationVersion: "", sessionId: "" },
|
|
163
|
+
syncMode: SyncMode.FixedVersion,
|
|
164
|
+
forceDownload: args.deleteFirst,
|
|
165
|
+
};
|
|
166
|
+
while (true) {
|
|
167
|
+
try {
|
|
168
|
+
return (await RpcBriefcaseUtility.open(openArgs));
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (!(error instanceof RpcPendingResponse))
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Purges all acquired briefcases for the specified iModel (and user), if the specified threshold of acquired briefcases is exceeded
|
|
178
|
+
*/
|
|
179
|
+
static async purgeAcquiredBriefcasesById(accessToken, iModelId, onReachThreshold = () => { }, acquireThreshold = 16) {
|
|
180
|
+
const briefcases = await IModelHost[_hubAccess].getMyBriefcaseIds({ accessToken, iModelId });
|
|
181
|
+
if (briefcases.length > acquireThreshold) {
|
|
182
|
+
if (undefined !== onReachThreshold)
|
|
183
|
+
onReachThreshold();
|
|
184
|
+
const promises = [];
|
|
185
|
+
briefcases.forEach((briefcaseId) => {
|
|
186
|
+
promises.push(IModelHost[_hubAccess].releaseBriefcase({ accessToken, iModelId, briefcaseId }));
|
|
187
|
+
});
|
|
188
|
+
await Promise.all(promises);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
static async closeAndDeleteBriefcaseDb(accessToken, briefcaseDb) {
|
|
192
|
+
const fileName = briefcaseDb.pathName;
|
|
193
|
+
const iModelId = briefcaseDb.iModelId;
|
|
194
|
+
briefcaseDb.close();
|
|
195
|
+
await BriefcaseManager.deleteBriefcaseFiles(fileName, accessToken);
|
|
196
|
+
// try to clean up empty briefcase directories, and empty iModel directories.
|
|
197
|
+
if (0 === BriefcaseManager.getCachedBriefcases(iModelId).length) {
|
|
198
|
+
IModelJsFs.removeSync(BriefcaseManager.getBriefcaseBasePath(iModelId));
|
|
199
|
+
const imodelPath = BriefcaseManager.getIModelPath(iModelId);
|
|
200
|
+
if (0 === IModelJsFs.readdirSync(imodelPath).length) {
|
|
201
|
+
IModelJsFs.removeSync(imodelPath);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
export class IModelTestUtils {
|
|
207
|
+
static get knownTestLocations() { return KnownTestLocations; }
|
|
208
|
+
/** Generate a name for an iModel that's unique using the baseName provided and appending a new GUID. */
|
|
209
|
+
static generateUniqueName(baseName) {
|
|
210
|
+
return `${baseName} - ${Guid.createValue()}`;
|
|
211
|
+
}
|
|
212
|
+
/** Prepare for an output file by:
|
|
213
|
+
* - Resolving the output file name under the known test output directory
|
|
214
|
+
* - Making directories as necessary
|
|
215
|
+
* - Removing a previous copy of the output file
|
|
216
|
+
* @param subDirName Sub-directory under known test output directory. Should match the name of the test file minus the .test.ts file extension.
|
|
217
|
+
* @param fileName Name of output fille
|
|
218
|
+
*/
|
|
219
|
+
static prepareOutputFile(subDirName, fileName) {
|
|
220
|
+
if (!IModelJsFs.existsSync(this.knownTestLocations.outputDir))
|
|
221
|
+
IModelJsFs.mkdirSync(this.knownTestLocations.outputDir);
|
|
222
|
+
const outputDir = path.join(this.knownTestLocations.outputDir, subDirName);
|
|
223
|
+
if (!IModelJsFs.existsSync(outputDir))
|
|
224
|
+
IModelJsFs.mkdirSync(outputDir);
|
|
225
|
+
const outputFile = path.join(outputDir, fileName);
|
|
226
|
+
if (IModelJsFs.existsSync(outputFile))
|
|
227
|
+
IModelJsFs.unlinkSync(outputFile);
|
|
228
|
+
return outputFile;
|
|
229
|
+
}
|
|
230
|
+
/** Resolve an asset file path from the asset name by looking in the known assets directory */
|
|
231
|
+
static resolveAssetFile(assetName) {
|
|
232
|
+
const assetFile = path.join(this.knownTestLocations.assetsDir, assetName);
|
|
233
|
+
assert.isTrue(IModelJsFs.existsSync(assetFile));
|
|
234
|
+
return assetFile;
|
|
235
|
+
}
|
|
236
|
+
static resolveFontFile(fontName) {
|
|
237
|
+
const subDirs = ["Karla", "DejaVu", "Sitka"];
|
|
238
|
+
const fontSubDirectory = subDirs.find((x) => fontName.startsWith(x));
|
|
239
|
+
fontName = fontSubDirectory ? path.join(fontSubDirectory, fontName) : fontName;
|
|
240
|
+
const assetName = path.join("Fonts", fontName);
|
|
241
|
+
return this.resolveAssetFile(assetName);
|
|
242
|
+
}
|
|
243
|
+
/** Orchestrates the steps necessary to create a new snapshot iModel from a seed file. */
|
|
244
|
+
static createSnapshotFromSeed(testFileName, seedFileName) {
|
|
245
|
+
const seedDb = SnapshotDb.openFile(seedFileName);
|
|
246
|
+
const testDb = SnapshotDb.createFrom(seedDb, testFileName);
|
|
247
|
+
seedDb.close();
|
|
248
|
+
testDb.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
249
|
+
return testDb;
|
|
250
|
+
}
|
|
251
|
+
static getUniqueModelCode(testDb, newModelCodeBase) {
|
|
252
|
+
let newModelCode = newModelCodeBase;
|
|
253
|
+
let iter = 0;
|
|
254
|
+
while (true) {
|
|
255
|
+
const modelCode = InformationPartitionElement.createCode(testDb, IModel.rootSubjectId, newModelCode);
|
|
256
|
+
if (testDb.elements.queryElementIdByCode(modelCode) === undefined)
|
|
257
|
+
return modelCode;
|
|
258
|
+
newModelCode = newModelCodeBase + iter;
|
|
259
|
+
++iter;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
static generateChangeSetId() {
|
|
263
|
+
let result = "";
|
|
264
|
+
for (let i = 0; i < 20; ++i) {
|
|
265
|
+
result += Math.floor(Math.random() * 256).toString(16).padStart(2, "0");
|
|
266
|
+
}
|
|
267
|
+
return { id: result };
|
|
268
|
+
}
|
|
269
|
+
/** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
|
|
270
|
+
static createAndInsertPhysicalPartition(testDb, newModelCode, parentId) {
|
|
271
|
+
const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;
|
|
272
|
+
const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
|
|
273
|
+
const modeledElementProps = {
|
|
274
|
+
classFullName: PhysicalPartition.classFullName,
|
|
275
|
+
parent,
|
|
276
|
+
model,
|
|
277
|
+
code: newModelCode,
|
|
278
|
+
};
|
|
279
|
+
const modeledElement = testDb.elements.createElement(modeledElementProps);
|
|
280
|
+
return testDb.elements.insertElement(modeledElement.toJSON());
|
|
281
|
+
}
|
|
282
|
+
/** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
|
|
283
|
+
static async createAndInsertPhysicalPartitionAsync(testDb, newModelCode, parentId) {
|
|
284
|
+
const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;
|
|
285
|
+
const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
|
|
286
|
+
const modeledElementProps = {
|
|
287
|
+
classFullName: PhysicalPartition.classFullName,
|
|
288
|
+
parent,
|
|
289
|
+
model,
|
|
290
|
+
code: newModelCode,
|
|
291
|
+
};
|
|
292
|
+
const modeledElement = testDb.elements.createElement(modeledElementProps);
|
|
293
|
+
await testDb.locks.acquireLocks({ shared: model });
|
|
294
|
+
return testDb.elements.insertElement(modeledElement.toJSON());
|
|
295
|
+
}
|
|
296
|
+
/** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
|
|
297
|
+
static createAndInsertPhysicalModel(testDb, modeledElementRef, privateModel = false) {
|
|
298
|
+
const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName, isPrivate: privateModel });
|
|
299
|
+
const newModelId = newModel.id = testDb.models.insertModel(newModel.toJSON());
|
|
300
|
+
assert.isTrue(Id64.isValidId64(newModelId));
|
|
301
|
+
assert.isTrue(Id64.isValidId64(newModel.id));
|
|
302
|
+
assert.deepEqual(newModelId, newModel.id);
|
|
303
|
+
return newModelId;
|
|
304
|
+
}
|
|
305
|
+
/** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
|
|
306
|
+
static async createAndInsertPhysicalModelAsync(testDb, modeledElementRef, privateModel = false) {
|
|
307
|
+
const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName, isPrivate: privateModel });
|
|
308
|
+
const newModelId = newModel.insert();
|
|
309
|
+
assert.isTrue(Id64.isValidId64(newModelId));
|
|
310
|
+
assert.isTrue(Id64.isValidId64(newModel.id));
|
|
311
|
+
assert.deepEqual(newModelId, newModel.id);
|
|
312
|
+
return newModelId;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel.
|
|
316
|
+
* @return [modeledElementId, modelId]
|
|
317
|
+
*/
|
|
318
|
+
static createAndInsertPhysicalPartitionAndModel(testImodel, newModelCode, privateModel = false, parent) {
|
|
319
|
+
const eid = IModelTestUtils.createAndInsertPhysicalPartition(testImodel, newModelCode, parent);
|
|
320
|
+
const modeledElementRef = new RelatedElement({ id: eid });
|
|
321
|
+
const mid = IModelTestUtils.createAndInsertPhysicalModel(testImodel, modeledElementRef, privateModel);
|
|
322
|
+
return [eid, mid];
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel.
|
|
326
|
+
* @return [modeledElementId, modelId]
|
|
327
|
+
*/
|
|
328
|
+
static async createAndInsertPhysicalPartitionAndModelAsync(testImodel, newModelCode, privateModel = false, parentId) {
|
|
329
|
+
const eid = await IModelTestUtils.createAndInsertPhysicalPartitionAsync(testImodel, newModelCode, parentId);
|
|
330
|
+
const modeledElementRef = new RelatedElement({ id: eid });
|
|
331
|
+
const mid = await IModelTestUtils.createAndInsertPhysicalModelAsync(testImodel, modeledElementRef, privateModel);
|
|
332
|
+
return [eid, mid];
|
|
333
|
+
}
|
|
334
|
+
/** Create and insert a Drawing Partition element (in the repositoryModel). */
|
|
335
|
+
static createAndInsertDrawingPartition(testDb, newModelCode, parentId) {
|
|
336
|
+
const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;
|
|
337
|
+
const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
|
|
338
|
+
const modeledElementProps = {
|
|
339
|
+
classFullName: Drawing.classFullName,
|
|
340
|
+
parent,
|
|
341
|
+
model,
|
|
342
|
+
code: newModelCode,
|
|
343
|
+
};
|
|
344
|
+
const modeledElement = testDb.elements.createElement(modeledElementProps);
|
|
345
|
+
return testDb.elements.insertElement(modeledElement.toJSON());
|
|
346
|
+
}
|
|
347
|
+
/** Create and insert a DrawingModel associated with Drawing Partition. */
|
|
348
|
+
static createAndInsertDrawingModel(testDb, modeledElementRef, privateModel = false) {
|
|
349
|
+
const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: DrawingModel.classFullName, isPrivate: privateModel });
|
|
350
|
+
const newModelId = newModel.insert();
|
|
351
|
+
assert.isTrue(Id64.isValidId64(newModelId));
|
|
352
|
+
assert.isTrue(Id64.isValidId64(newModel.id));
|
|
353
|
+
assert.deepEqual(newModelId, newModel.id);
|
|
354
|
+
return newModelId;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Create and insert a Drawing Partition element (in the repositoryModel) and an associated DrawingModel.
|
|
358
|
+
* @return [modeledElementId, modelId]
|
|
359
|
+
*/
|
|
360
|
+
static createAndInsertDrawingPartitionAndModel(testImodel, newModelCode, privateModel = false, parent) {
|
|
361
|
+
const eid = IModelTestUtils.createAndInsertDrawingPartition(testImodel, newModelCode, parent);
|
|
362
|
+
const modeledElementRef = new RelatedElement({ id: eid });
|
|
363
|
+
const mid = IModelTestUtils.createAndInsertDrawingModel(testImodel, modeledElementRef, privateModel);
|
|
364
|
+
return [eid, mid];
|
|
365
|
+
}
|
|
366
|
+
static getUniqueSpatialCategoryCode(scopeModel, newCodeBaseValue) {
|
|
367
|
+
let newCodeValue = newCodeBaseValue;
|
|
368
|
+
let iter = 0;
|
|
369
|
+
while (true) {
|
|
370
|
+
if (SpatialCategory.queryCategoryIdByName(scopeModel.iModel, scopeModel.id, newCodeValue) === undefined)
|
|
371
|
+
return SpatialCategory.createCode(scopeModel.iModel, scopeModel.id, newCodeValue);
|
|
372
|
+
newCodeValue = newCodeBaseValue + iter;
|
|
373
|
+
++iter;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
// Create a PhysicalObject. (Does not insert it.)
|
|
377
|
+
static createPhysicalObject(testImodel, modelId, categoryId, elemCode) {
|
|
378
|
+
const elementProps = {
|
|
379
|
+
classFullName: "Generic:PhysicalObject",
|
|
380
|
+
model: modelId,
|
|
381
|
+
category: categoryId,
|
|
382
|
+
code: elemCode ? elemCode : Code.createEmpty(),
|
|
383
|
+
};
|
|
384
|
+
return testImodel.elements.createElement(elementProps);
|
|
385
|
+
}
|
|
386
|
+
static registerTestBimSchema() {
|
|
387
|
+
if (undefined === Schemas.getRegisteredSchema(TestBim.schemaName)) {
|
|
388
|
+
Schemas.registerSchema(TestBim);
|
|
389
|
+
ClassRegistry.register(TestPhysicalObject, TestBim);
|
|
390
|
+
ClassRegistry.register(TestElementDrivesElement, TestBim);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
static executeQuery(db, ecsql, bindings) {
|
|
394
|
+
return db.withPreparedStatement(ecsql, (stmt) => {
|
|
395
|
+
if (bindings)
|
|
396
|
+
stmt.bindValues(bindings);
|
|
397
|
+
const rows = [];
|
|
398
|
+
while (DbResult.BE_SQLITE_ROW === stmt.step()) {
|
|
399
|
+
rows.push(stmt.getRow());
|
|
400
|
+
if (rows.length > IModelDb.maxLimit)
|
|
401
|
+
throw new IModelError(IModelStatus.BadRequest, "Max LIMIT exceeded in SELECT statement");
|
|
402
|
+
}
|
|
403
|
+
return rows;
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
static createJobSubjectElement(iModel, name) {
|
|
407
|
+
const subj = Subject.create(iModel, iModel.elements.getRootSubject().id, name);
|
|
408
|
+
subj.setJsonProperty("Subject", { Job: name }); // eslint-disable-line @typescript-eslint/naming-convention
|
|
409
|
+
return subj;
|
|
410
|
+
}
|
|
411
|
+
/** Flushes the Txns in the TxnTable - this allows importing of schemas */
|
|
412
|
+
static flushTxns(iModelDb) {
|
|
413
|
+
iModelDb[_nativeDb].deleteAllTxns();
|
|
414
|
+
return true;
|
|
415
|
+
}
|
|
416
|
+
static querySubjectId(iModelDb, subjectCodeValue) {
|
|
417
|
+
const subjectId = iModelDb.elements.queryElementIdByCode(Subject.createCode(iModelDb, IModel.rootSubjectId, subjectCodeValue));
|
|
418
|
+
assert.isTrue(Id64.isValidId64(subjectId));
|
|
419
|
+
return subjectId;
|
|
420
|
+
}
|
|
421
|
+
static queryDefinitionPartitionId(iModelDb, parentSubjectId, suffix) {
|
|
422
|
+
const partitionCode = DefinitionPartition.createCode(iModelDb, parentSubjectId, `Definition${suffix}`);
|
|
423
|
+
const partitionId = iModelDb.elements.queryElementIdByCode(partitionCode);
|
|
424
|
+
assert.isTrue(Id64.isValidId64(partitionId));
|
|
425
|
+
return partitionId;
|
|
426
|
+
}
|
|
427
|
+
static querySpatialCategoryId(iModelDb, modelId, suffix) {
|
|
428
|
+
const categoryCode = SpatialCategory.createCode(iModelDb, modelId, `SpatialCategory${suffix}`);
|
|
429
|
+
const categoryId = iModelDb.elements.queryElementIdByCode(categoryCode);
|
|
430
|
+
assert.isTrue(Id64.isValidId64(categoryId));
|
|
431
|
+
return categoryId;
|
|
432
|
+
}
|
|
433
|
+
static queryPhysicalPartitionId(iModelDb, parentSubjectId, suffix) {
|
|
434
|
+
const partitionCode = PhysicalPartition.createCode(iModelDb, parentSubjectId, `Physical${suffix}`);
|
|
435
|
+
const partitionId = iModelDb.elements.queryElementIdByCode(partitionCode);
|
|
436
|
+
assert.isTrue(Id64.isValidId64(partitionId));
|
|
437
|
+
return partitionId;
|
|
438
|
+
}
|
|
439
|
+
static queryPhysicalElementId(iModelDb, modelId, categoryId, suffix) {
|
|
440
|
+
const elementId = IModelTestUtils.queryByUserLabel(iModelDb, `PhysicalObject${suffix}`);
|
|
441
|
+
assert.isTrue(Id64.isValidId64(elementId));
|
|
442
|
+
const element = iModelDb.elements.getElement(elementId);
|
|
443
|
+
assert.equal(element.model, modelId);
|
|
444
|
+
assert.equal(element.category, categoryId);
|
|
445
|
+
return elementId;
|
|
446
|
+
}
|
|
447
|
+
static insertSpatialCategory(iModelDb, modelId, categoryName, color) {
|
|
448
|
+
const appearance = {
|
|
449
|
+
color: color.toJSON(),
|
|
450
|
+
transp: 0,
|
|
451
|
+
invisible: false,
|
|
452
|
+
};
|
|
453
|
+
return SpatialCategory.insert(iModelDb, modelId, categoryName, appearance);
|
|
454
|
+
}
|
|
455
|
+
static createBoxes(subCategoryIds) {
|
|
456
|
+
const length = 1.0;
|
|
457
|
+
const entryOrigin = Point3d.createZero();
|
|
458
|
+
const geometryStreamBuilder = new GeometryStreamBuilder();
|
|
459
|
+
geometryStreamBuilder.appendGeometry(Box.createDgnBox(entryOrigin, Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, length), length, length, length, length, true));
|
|
460
|
+
for (const subCategoryId of subCategoryIds) {
|
|
461
|
+
entryOrigin.addInPlace({ x: 1, y: 1, z: 1 });
|
|
462
|
+
geometryStreamBuilder.appendSubCategoryChange(subCategoryId);
|
|
463
|
+
geometryStreamBuilder.appendGeometry(Box.createDgnBox(entryOrigin, Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, length), length, length, length, length, true));
|
|
464
|
+
}
|
|
465
|
+
return geometryStreamBuilder.geometryStream;
|
|
466
|
+
}
|
|
467
|
+
static createBox(size, categoryId, subCategoryId, renderMaterialId, geometryPartId) {
|
|
468
|
+
const geometryStreamBuilder = new GeometryStreamBuilder();
|
|
469
|
+
if ((undefined !== categoryId) && (undefined !== subCategoryId)) {
|
|
470
|
+
geometryStreamBuilder.appendSubCategoryChange(subCategoryId);
|
|
471
|
+
if (undefined !== renderMaterialId) {
|
|
472
|
+
const geometryParams = new GeometryParams(categoryId, subCategoryId);
|
|
473
|
+
geometryParams.materialId = renderMaterialId;
|
|
474
|
+
geometryStreamBuilder.appendGeometryParamsChange(geometryParams);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
geometryStreamBuilder.appendGeometry(Box.createDgnBox(Point3d.createZero(), Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, size.z), size.x, size.y, size.x, size.y, true));
|
|
478
|
+
if (undefined !== geometryPartId) {
|
|
479
|
+
geometryStreamBuilder.appendGeometryPart3d(geometryPartId);
|
|
480
|
+
}
|
|
481
|
+
return geometryStreamBuilder.geometryStream;
|
|
482
|
+
}
|
|
483
|
+
static createCylinder(radius) {
|
|
484
|
+
const pointA = Point3d.create(0, 0, 0);
|
|
485
|
+
const pointB = Point3d.create(0, 0, 2 * radius);
|
|
486
|
+
const cylinder = Cone.createBaseAndTarget(pointA, pointB, Vector3d.unitX(), Vector3d.unitY(), radius, radius, true);
|
|
487
|
+
const geometryStreamBuilder = new GeometryStreamBuilder();
|
|
488
|
+
geometryStreamBuilder.appendGeometry(cylinder);
|
|
489
|
+
return geometryStreamBuilder.geometryStream;
|
|
490
|
+
}
|
|
491
|
+
static createRectangle(size) {
|
|
492
|
+
const geometryStreamBuilder = new GeometryStreamBuilder();
|
|
493
|
+
geometryStreamBuilder.appendGeometry(LineString3d.createPoints([
|
|
494
|
+
new Point3d(0, 0),
|
|
495
|
+
new Point3d(size.x, 0),
|
|
496
|
+
new Point3d(size.x, size.y),
|
|
497
|
+
new Point3d(0, size.y),
|
|
498
|
+
new Point3d(0, 0),
|
|
499
|
+
]));
|
|
500
|
+
return geometryStreamBuilder.geometryStream;
|
|
501
|
+
}
|
|
502
|
+
static insertTextureElement(iModelDb, modelId, textureName) {
|
|
503
|
+
// This is an encoded png containing a 3x3 square with white in top left pixel, blue in middle pixel, and green in bottom right pixel. The rest of the square is red.
|
|
504
|
+
const pngData = [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65, 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130];
|
|
505
|
+
const textureData = Buffer.from(pngData).toString("base64");
|
|
506
|
+
return Texture.insertTexture(iModelDb, modelId, textureName, ImageSourceFormat.Png, textureData, `Description for ${textureName}`);
|
|
507
|
+
}
|
|
508
|
+
static queryByUserLabel(iModelDb, userLabel) {
|
|
509
|
+
return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE UserLabel=:userLabel`, (statement) => {
|
|
510
|
+
statement.bindString("userLabel", userLabel);
|
|
511
|
+
return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
static queryByCodeValue(iModelDb, codeValue) {
|
|
515
|
+
return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE CodeValue=:codeValue`, (statement) => {
|
|
516
|
+
statement.bindString("codeValue", codeValue);
|
|
517
|
+
return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
static insertRepositoryLink(iModelDb, codeValue, url, format) {
|
|
521
|
+
const repositoryLinkProps = {
|
|
522
|
+
classFullName: RepositoryLink.classFullName,
|
|
523
|
+
model: IModel.repositoryModelId,
|
|
524
|
+
code: LinkElement.createCode(iModelDb, IModel.repositoryModelId, codeValue),
|
|
525
|
+
url,
|
|
526
|
+
format,
|
|
527
|
+
};
|
|
528
|
+
return iModelDb.elements.insertElement(repositoryLinkProps);
|
|
529
|
+
}
|
|
530
|
+
static insertExternalSource(iModelDb, repositoryId, userLabel) {
|
|
531
|
+
const externalSourceProps = {
|
|
532
|
+
classFullName: ExternalSource.classFullName,
|
|
533
|
+
model: IModel.repositoryModelId,
|
|
534
|
+
code: Code.createEmpty(),
|
|
535
|
+
userLabel,
|
|
536
|
+
repository: new ExternalSourceIsInRepository(repositoryId),
|
|
537
|
+
connectorName: "Connector",
|
|
538
|
+
connectorVersion: "0.0.1",
|
|
539
|
+
};
|
|
540
|
+
return iModelDb.elements.insertElement(externalSourceProps);
|
|
541
|
+
}
|
|
542
|
+
static dumpIModelInfo(iModelDb) {
|
|
543
|
+
const outputFileName = `${iModelDb.pathName}.info.txt`;
|
|
544
|
+
if (IModelJsFs.existsSync(outputFileName)) {
|
|
545
|
+
IModelJsFs.removeSync(outputFileName);
|
|
546
|
+
}
|
|
547
|
+
IModelJsFs.appendFileSync(outputFileName, `${iModelDb.pathName}\n`);
|
|
548
|
+
IModelJsFs.appendFileSync(outputFileName, "\n=== CodeSpecs ===\n");
|
|
549
|
+
iModelDb.withPreparedStatement(`SELECT ECInstanceId,Name FROM BisCore:CodeSpec ORDER BY ECInstanceId`, (statement) => {
|
|
550
|
+
while (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
551
|
+
const codeSpecId = statement.getValue(0).getId();
|
|
552
|
+
const codeSpecName = statement.getValue(1).getString();
|
|
553
|
+
IModelJsFs.appendFileSync(outputFileName, `${codeSpecId}, ${codeSpecName}\n`);
|
|
554
|
+
}
|
|
555
|
+
});
|
|
556
|
+
IModelJsFs.appendFileSync(outputFileName, "\n=== Schemas ===\n");
|
|
557
|
+
iModelDb.withPreparedStatement(`SELECT Name FROM ECDbMeta.ECSchemaDef ORDER BY ECInstanceId`, (statement) => {
|
|
558
|
+
while (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
559
|
+
const schemaName = statement.getValue(0).getString();
|
|
560
|
+
IModelJsFs.appendFileSync(outputFileName, `${schemaName}\n`);
|
|
561
|
+
}
|
|
562
|
+
});
|
|
563
|
+
IModelJsFs.appendFileSync(outputFileName, "\n=== Models ===\n");
|
|
564
|
+
iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Model.classFullName} ORDER BY ECInstanceId`, (statement) => {
|
|
565
|
+
while (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
566
|
+
const modelId = statement.getValue(0).getId();
|
|
567
|
+
const model = iModelDb.models.getModel(modelId);
|
|
568
|
+
IModelJsFs.appendFileSync(outputFileName, `${modelId}, ${model.name}, ${model.parentModel}, ${model.classFullName}\n`);
|
|
569
|
+
}
|
|
570
|
+
});
|
|
571
|
+
IModelJsFs.appendFileSync(outputFileName, "\n=== ViewDefinitions ===\n");
|
|
572
|
+
iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${ViewDefinition.classFullName} ORDER BY ECInstanceId`, (statement) => {
|
|
573
|
+
while (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
574
|
+
const viewDefinitionId = statement.getValue(0).getId();
|
|
575
|
+
const viewDefinition = iModelDb.elements.getElement(viewDefinitionId);
|
|
576
|
+
IModelJsFs.appendFileSync(outputFileName, `${viewDefinitionId}, ${viewDefinition.code.value}, ${viewDefinition.classFullName}\n`);
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
IModelJsFs.appendFileSync(outputFileName, "\n=== Elements ===\n");
|
|
580
|
+
iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${Element.classFullName}`, (statement) => {
|
|
581
|
+
if (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
582
|
+
const count = statement.getValue(0).getInteger();
|
|
583
|
+
IModelJsFs.appendFileSync(outputFileName, `Count of ${Element.classFullName}=${count}\n`);
|
|
584
|
+
}
|
|
585
|
+
});
|
|
586
|
+
iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${PhysicalObject.classFullName}`, (statement) => {
|
|
587
|
+
if (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
588
|
+
const count = statement.getValue(0).getInteger();
|
|
589
|
+
IModelJsFs.appendFileSync(outputFileName, `Count of ${PhysicalObject.classFullName}=${count}\n`);
|
|
590
|
+
}
|
|
591
|
+
});
|
|
592
|
+
iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${GeometryPart.classFullName}`, (statement) => {
|
|
593
|
+
if (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
594
|
+
const count = statement.getValue(0).getInteger();
|
|
595
|
+
IModelJsFs.appendFileSync(outputFileName, `Count of ${GeometryPart.classFullName}=${count}\n`);
|
|
596
|
+
}
|
|
597
|
+
});
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
export class ExtensiveTestScenario {
|
|
601
|
+
static uniqueAspectGuid = Guid.createValue();
|
|
602
|
+
static federationGuid3 = Guid.createValue();
|
|
603
|
+
static async prepareDb(sourceDb) {
|
|
604
|
+
// Import desired schemas
|
|
605
|
+
const sourceSchemaFileName = path.join(KnownTestLocations.assetsDir, "ExtensiveTestScenario.ecschema.xml");
|
|
606
|
+
await sourceDb.importSchemas([FunctionalSchema.schemaFilePath, sourceSchemaFileName]);
|
|
607
|
+
FunctionalSchema.registerSchema();
|
|
608
|
+
}
|
|
609
|
+
static async populateDb(sourceDb) {
|
|
610
|
+
// make sure Arial is in the font table
|
|
611
|
+
const arialFontId = await sourceDb.fonts.acquireId({ name: "Arial", type: FontType.TrueType });
|
|
612
|
+
expect(arialFontId).not.to.be.undefined;
|
|
613
|
+
expect(arialFontId).greaterThan(0);
|
|
614
|
+
// Initialize project extents
|
|
615
|
+
const projectExtents = new Range3d(-1000, -1000, -1000, 1000, 1000, 1000);
|
|
616
|
+
sourceDb.updateProjectExtents(projectExtents);
|
|
617
|
+
// Insert CodeSpecs
|
|
618
|
+
const codeSpecId1 = sourceDb.codeSpecs.insert("SourceCodeSpec", CodeScopeSpec.Type.Model);
|
|
619
|
+
const codeSpecId2 = sourceDb.codeSpecs.insert("ExtraCodeSpec", CodeScopeSpec.Type.ParentElement);
|
|
620
|
+
const codeSpecId3 = sourceDb.codeSpecs.insert("InformationRecords", CodeScopeSpec.Type.Model);
|
|
621
|
+
assert.isTrue(Id64.isValidId64(codeSpecId1));
|
|
622
|
+
assert.isTrue(Id64.isValidId64(codeSpecId2));
|
|
623
|
+
assert.isTrue(Id64.isValidId64(codeSpecId3));
|
|
624
|
+
// Insert RepositoryModel structure
|
|
625
|
+
const subjectId = Subject.insert(sourceDb, IModel.rootSubjectId, "Subject", "Subject Description");
|
|
626
|
+
assert.isTrue(Id64.isValidId64(subjectId));
|
|
627
|
+
const sourceOnlySubjectId = Subject.insert(sourceDb, IModel.rootSubjectId, "Only in Source");
|
|
628
|
+
assert.isTrue(Id64.isValidId64(sourceOnlySubjectId));
|
|
629
|
+
const definitionModelId = DefinitionModel.insert(sourceDb, subjectId, "Definition");
|
|
630
|
+
assert.isTrue(Id64.isValidId64(definitionModelId));
|
|
631
|
+
const informationModelId = InformationRecordModel.insert(sourceDb, subjectId, "Information");
|
|
632
|
+
assert.isTrue(Id64.isValidId64(informationModelId));
|
|
633
|
+
const groupModelId = GroupModel.insert(sourceDb, subjectId, "Group");
|
|
634
|
+
assert.isTrue(Id64.isValidId64(groupModelId));
|
|
635
|
+
const physicalModelId = PhysicalModel.insert(sourceDb, subjectId, "Physical");
|
|
636
|
+
assert.isTrue(Id64.isValidId64(physicalModelId));
|
|
637
|
+
const spatialLocationModelId = SpatialLocationModel.insert(sourceDb, subjectId, "SpatialLocation", true);
|
|
638
|
+
assert.isTrue(Id64.isValidId64(spatialLocationModelId));
|
|
639
|
+
const functionalModelId = FunctionalModel.insert(sourceDb, subjectId, "Functional");
|
|
640
|
+
assert.isTrue(Id64.isValidId64(functionalModelId));
|
|
641
|
+
const documentListModelId = DocumentListModel.insert(sourceDb, subjectId, "Document");
|
|
642
|
+
assert.isTrue(Id64.isValidId64(documentListModelId));
|
|
643
|
+
const drawingId = Drawing.insert(sourceDb, documentListModelId, "Drawing");
|
|
644
|
+
assert.isTrue(Id64.isValidId64(drawingId));
|
|
645
|
+
// Insert DefinitionElements
|
|
646
|
+
const modelSelectorId = ModelSelector.insert(sourceDb, definitionModelId, "SpatialModels", [physicalModelId, spatialLocationModelId]);
|
|
647
|
+
assert.isTrue(Id64.isValidId64(modelSelectorId));
|
|
648
|
+
const spatialCategoryId = IModelTestUtils.insertSpatialCategory(sourceDb, definitionModelId, "SpatialCategory", ColorDef.green);
|
|
649
|
+
assert.isTrue(Id64.isValidId64(spatialCategoryId));
|
|
650
|
+
const sourcePhysicalCategoryId = IModelTestUtils.insertSpatialCategory(sourceDb, definitionModelId, "SourcePhysicalCategory", ColorDef.blue);
|
|
651
|
+
assert.isTrue(Id64.isValidId64(sourcePhysicalCategoryId));
|
|
652
|
+
const subCategoryId = SubCategory.insert(sourceDb, spatialCategoryId, "SubCategory", { color: ColorDef.blue.toJSON() });
|
|
653
|
+
assert.isTrue(Id64.isValidId64(subCategoryId));
|
|
654
|
+
const filteredSubCategoryId = SubCategory.insert(sourceDb, spatialCategoryId, "FilteredSubCategory", { color: ColorDef.green.toJSON() });
|
|
655
|
+
assert.isTrue(Id64.isValidId64(filteredSubCategoryId));
|
|
656
|
+
const drawingCategoryId = DrawingCategory.insert(sourceDb, definitionModelId, "DrawingCategory", new SubCategoryAppearance());
|
|
657
|
+
assert.isTrue(Id64.isValidId64(drawingCategoryId));
|
|
658
|
+
const spatialCategorySelectorId = CategorySelector.insert(sourceDb, definitionModelId, "SpatialCategories", [spatialCategoryId, sourcePhysicalCategoryId]);
|
|
659
|
+
assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));
|
|
660
|
+
const drawingCategorySelectorId = CategorySelector.insert(sourceDb, definitionModelId, "DrawingCategories", [drawingCategoryId]);
|
|
661
|
+
assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));
|
|
662
|
+
const auxCoordSystemProps = {
|
|
663
|
+
classFullName: AuxCoordSystem2d.classFullName,
|
|
664
|
+
model: definitionModelId,
|
|
665
|
+
code: AuxCoordSystem2d.createCode(sourceDb, definitionModelId, "AuxCoordSystem2d"),
|
|
666
|
+
};
|
|
667
|
+
const auxCoordSystemId = sourceDb.elements.insertElement(auxCoordSystemProps);
|
|
668
|
+
assert.isTrue(Id64.isValidId64(auxCoordSystemId));
|
|
669
|
+
const textureId = IModelTestUtils.insertTextureElement(sourceDb, definitionModelId, "Texture");
|
|
670
|
+
assert.isTrue(Id64.isValidId64(textureId));
|
|
671
|
+
const renderMaterialId = RenderMaterialElement.insert(sourceDb, definitionModelId, "RenderMaterial", { paletteName: "PaletteName" });
|
|
672
|
+
assert.isTrue(Id64.isValidId64(renderMaterialId));
|
|
673
|
+
const geometryPartProps = {
|
|
674
|
+
classFullName: GeometryPart.classFullName,
|
|
675
|
+
model: definitionModelId,
|
|
676
|
+
code: GeometryPart.createCode(sourceDb, definitionModelId, "GeometryPart"),
|
|
677
|
+
geom: IModelTestUtils.createBox(Point3d.create(3, 3, 3)),
|
|
678
|
+
};
|
|
679
|
+
const geometryPartId = sourceDb.elements.insertElement(geometryPartProps);
|
|
680
|
+
assert.isTrue(Id64.isValidId64(geometryPartId));
|
|
681
|
+
// Insert InformationRecords
|
|
682
|
+
const informationRecordProps1 = {
|
|
683
|
+
classFullName: "ExtensiveTestScenario:SourceInformationRecord",
|
|
684
|
+
model: informationModelId,
|
|
685
|
+
code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord1" },
|
|
686
|
+
commonString: "Common1",
|
|
687
|
+
sourceString: "One",
|
|
688
|
+
};
|
|
689
|
+
const informationRecordId1 = sourceDb.elements.insertElement(informationRecordProps1);
|
|
690
|
+
assert.isTrue(Id64.isValidId64(informationRecordId1));
|
|
691
|
+
const informationRecordProps2 = {
|
|
692
|
+
classFullName: "ExtensiveTestScenario:SourceInformationRecord",
|
|
693
|
+
model: informationModelId,
|
|
694
|
+
code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord2" },
|
|
695
|
+
commonString: "Common2",
|
|
696
|
+
sourceString: "Two",
|
|
697
|
+
};
|
|
698
|
+
const informationRecordId2 = sourceDb.elements.insertElement(informationRecordProps2);
|
|
699
|
+
assert.isTrue(Id64.isValidId64(informationRecordId2));
|
|
700
|
+
const informationRecordProps3 = {
|
|
701
|
+
classFullName: "ExtensiveTestScenario:SourceInformationRecord",
|
|
702
|
+
model: informationModelId,
|
|
703
|
+
code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord3" },
|
|
704
|
+
commonString: "Common3",
|
|
705
|
+
sourceString: "Three",
|
|
706
|
+
};
|
|
707
|
+
const informationRecordId3 = sourceDb.elements.insertElement(informationRecordProps3);
|
|
708
|
+
assert.isTrue(Id64.isValidId64(informationRecordId3));
|
|
709
|
+
// Insert PhysicalObject1
|
|
710
|
+
const physicalObjectProps1 = {
|
|
711
|
+
classFullName: PhysicalObject.classFullName,
|
|
712
|
+
model: physicalModelId,
|
|
713
|
+
category: spatialCategoryId,
|
|
714
|
+
code: Code.createEmpty(),
|
|
715
|
+
userLabel: "PhysicalObject1",
|
|
716
|
+
geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1), spatialCategoryId, subCategoryId, renderMaterialId, geometryPartId),
|
|
717
|
+
placement: {
|
|
718
|
+
origin: Point3d.create(1, 1, 1),
|
|
719
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
720
|
+
},
|
|
721
|
+
};
|
|
722
|
+
const physicalObjectId1 = sourceDb.elements.insertElement(physicalObjectProps1);
|
|
723
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId1));
|
|
724
|
+
// Insert PhysicalObject1 children
|
|
725
|
+
const childObjectProps1A = physicalObjectProps1;
|
|
726
|
+
childObjectProps1A.userLabel = "ChildObject1A";
|
|
727
|
+
childObjectProps1A.parent = new ElementOwnsChildElements(physicalObjectId1);
|
|
728
|
+
childObjectProps1A.placement.origin = Point3d.create(0, 1, 1);
|
|
729
|
+
const childObjectId1A = sourceDb.elements.insertElement(childObjectProps1A);
|
|
730
|
+
assert.isTrue(Id64.isValidId64(childObjectId1A));
|
|
731
|
+
const childObjectProps1B = childObjectProps1A;
|
|
732
|
+
childObjectProps1B.userLabel = "ChildObject1B";
|
|
733
|
+
childObjectProps1B.placement.origin = Point3d.create(1, 0, 1);
|
|
734
|
+
const childObjectId1B = sourceDb.elements.insertElement(childObjectProps1B);
|
|
735
|
+
assert.isTrue(Id64.isValidId64(childObjectId1B));
|
|
736
|
+
// Insert PhysicalObject2
|
|
737
|
+
const physicalObjectProps2 = {
|
|
738
|
+
classFullName: PhysicalObject.classFullName,
|
|
739
|
+
model: physicalModelId,
|
|
740
|
+
category: sourcePhysicalCategoryId,
|
|
741
|
+
code: Code.createEmpty(),
|
|
742
|
+
userLabel: "PhysicalObject2",
|
|
743
|
+
geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),
|
|
744
|
+
placement: {
|
|
745
|
+
origin: Point3d.create(2, 2, 2),
|
|
746
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
747
|
+
},
|
|
748
|
+
};
|
|
749
|
+
const physicalObjectId2 = sourceDb.elements.insertElement(physicalObjectProps2);
|
|
750
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId2));
|
|
751
|
+
// Insert PhysicalObject3
|
|
752
|
+
const physicalObjectProps3 = {
|
|
753
|
+
classFullName: PhysicalObject.classFullName,
|
|
754
|
+
model: physicalModelId,
|
|
755
|
+
category: sourcePhysicalCategoryId,
|
|
756
|
+
code: Code.createEmpty(),
|
|
757
|
+
federationGuid: ExtensiveTestScenario.federationGuid3,
|
|
758
|
+
userLabel: "PhysicalObject3",
|
|
759
|
+
};
|
|
760
|
+
const physicalObjectId3 = sourceDb.elements.insertElement(physicalObjectProps3);
|
|
761
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId3));
|
|
762
|
+
// Insert PhysicalObject4
|
|
763
|
+
const physicalObjectProps4 = {
|
|
764
|
+
classFullName: PhysicalObject.classFullName,
|
|
765
|
+
model: physicalModelId,
|
|
766
|
+
category: spatialCategoryId,
|
|
767
|
+
code: Code.createEmpty(),
|
|
768
|
+
userLabel: "PhysicalObject4",
|
|
769
|
+
geom: IModelTestUtils.createBoxes([subCategoryId, filteredSubCategoryId]),
|
|
770
|
+
placement: {
|
|
771
|
+
origin: Point3d.create(4, 4, 4),
|
|
772
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
773
|
+
},
|
|
774
|
+
};
|
|
775
|
+
const physicalObjectId4 = sourceDb.elements.insertElement(physicalObjectProps4);
|
|
776
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId4));
|
|
777
|
+
// Insert PhysicalElement1
|
|
778
|
+
const sourcePhysicalElementProps = {
|
|
779
|
+
classFullName: "ExtensiveTestScenario:SourcePhysicalElement",
|
|
780
|
+
model: physicalModelId,
|
|
781
|
+
category: sourcePhysicalCategoryId,
|
|
782
|
+
code: Code.createEmpty(),
|
|
783
|
+
userLabel: "PhysicalElement1",
|
|
784
|
+
geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),
|
|
785
|
+
placement: {
|
|
786
|
+
origin: Point3d.create(4, 4, 4),
|
|
787
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
788
|
+
},
|
|
789
|
+
sourceString: "S1",
|
|
790
|
+
sourceDouble: 1.1,
|
|
791
|
+
sourceNavigation: { id: sourcePhysicalCategoryId, relClassName: "ExtensiveTestScenario:SourcePhysicalElementUsesSourceDefinition" },
|
|
792
|
+
commonNavigation: { id: sourcePhysicalCategoryId },
|
|
793
|
+
commonString: "Common",
|
|
794
|
+
commonDouble: 7.3,
|
|
795
|
+
sourceBinary: new Uint8Array([1, 3, 5, 7]),
|
|
796
|
+
commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),
|
|
797
|
+
extraString: "Extra",
|
|
798
|
+
};
|
|
799
|
+
const sourcePhysicalElementId = sourceDb.elements.insertElement(sourcePhysicalElementProps);
|
|
800
|
+
assert.isTrue(Id64.isValidId64(sourcePhysicalElementId));
|
|
801
|
+
assert.doesNotThrow(() => sourceDb.elements.getElement(sourcePhysicalElementId));
|
|
802
|
+
// Insert ElementAspects
|
|
803
|
+
const aspectProps = {
|
|
804
|
+
classFullName: "ExtensiveTestScenario:SourceUniqueAspect",
|
|
805
|
+
element: new ElementOwnsUniqueAspect(physicalObjectId1),
|
|
806
|
+
commonDouble: 1.1,
|
|
807
|
+
commonString: "Unique",
|
|
808
|
+
commonLong: physicalObjectId1,
|
|
809
|
+
commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),
|
|
810
|
+
sourceDouble: 11.1,
|
|
811
|
+
sourceString: "UniqueAspect",
|
|
812
|
+
sourceLong: physicalObjectId1,
|
|
813
|
+
sourceGuid: ExtensiveTestScenario.uniqueAspectGuid,
|
|
814
|
+
extraString: "Extra",
|
|
815
|
+
};
|
|
816
|
+
sourceDb.elements.insertAspect(aspectProps);
|
|
817
|
+
const sourceUniqueAspect = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceUniqueAspect")[0];
|
|
818
|
+
expect(sourceUniqueAspect).to.deep.subsetEqual(omit(aspectProps, ["commonBinary"]), { normalizeClassNameProps: true });
|
|
819
|
+
sourceDb.elements.insertAspect({
|
|
820
|
+
classFullName: "ExtensiveTestScenario:SourceMultiAspect",
|
|
821
|
+
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
822
|
+
commonDouble: 2.2,
|
|
823
|
+
commonString: "Multi",
|
|
824
|
+
commonLong: physicalObjectId1,
|
|
825
|
+
sourceDouble: 22.2,
|
|
826
|
+
sourceString: "MultiAspect",
|
|
827
|
+
sourceLong: physicalObjectId1,
|
|
828
|
+
sourceGuid: Guid.createValue(),
|
|
829
|
+
extraString: "Extra",
|
|
830
|
+
});
|
|
831
|
+
sourceDb.elements.insertAspect({
|
|
832
|
+
classFullName: "ExtensiveTestScenario:SourceMultiAspect",
|
|
833
|
+
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
834
|
+
commonDouble: 3.3,
|
|
835
|
+
commonString: "Multi",
|
|
836
|
+
commonLong: physicalObjectId1,
|
|
837
|
+
sourceDouble: 33.3,
|
|
838
|
+
sourceString: "MultiAspect",
|
|
839
|
+
sourceLong: physicalObjectId1,
|
|
840
|
+
sourceGuid: Guid.createValue(),
|
|
841
|
+
extraString: "Extra",
|
|
842
|
+
});
|
|
843
|
+
sourceDb.elements.insertAspect({
|
|
844
|
+
classFullName: "ExtensiveTestScenario:SourceUniqueAspectToExclude",
|
|
845
|
+
element: new ElementOwnsUniqueAspect(physicalObjectId1),
|
|
846
|
+
description: "SourceUniqueAspect1",
|
|
847
|
+
});
|
|
848
|
+
sourceDb.elements.insertAspect({
|
|
849
|
+
classFullName: "ExtensiveTestScenario:SourceMultiAspectToExclude",
|
|
850
|
+
element: new ElementOwnsMultiAspects(physicalObjectId1),
|
|
851
|
+
description: "SourceMultiAspect1",
|
|
852
|
+
});
|
|
853
|
+
// Insert DrawingGraphics
|
|
854
|
+
const drawingGraphicProps1 = {
|
|
855
|
+
classFullName: DrawingGraphic.classFullName,
|
|
856
|
+
model: drawingId,
|
|
857
|
+
category: drawingCategoryId,
|
|
858
|
+
code: Code.createEmpty(),
|
|
859
|
+
userLabel: "DrawingGraphic1",
|
|
860
|
+
geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),
|
|
861
|
+
placement: { origin: Point2d.create(2, 2), angle: 0 },
|
|
862
|
+
};
|
|
863
|
+
const drawingGraphicId1 = sourceDb.elements.insertElement(drawingGraphicProps1);
|
|
864
|
+
assert.isTrue(Id64.isValidId64(drawingGraphicId1));
|
|
865
|
+
const drawingGraphicRepresentsId1 = DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId1, physicalObjectId1);
|
|
866
|
+
assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId1));
|
|
867
|
+
const drawingGraphicProps2 = {
|
|
868
|
+
classFullName: DrawingGraphic.classFullName,
|
|
869
|
+
model: drawingId,
|
|
870
|
+
category: drawingCategoryId,
|
|
871
|
+
code: Code.createEmpty(),
|
|
872
|
+
userLabel: "DrawingGraphic2",
|
|
873
|
+
geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),
|
|
874
|
+
placement: { origin: Point2d.create(3, 3), angle: 0 },
|
|
875
|
+
};
|
|
876
|
+
const drawingGraphicId2 = sourceDb.elements.insertElement(drawingGraphicProps2);
|
|
877
|
+
assert.isTrue(Id64.isValidId64(drawingGraphicId2));
|
|
878
|
+
const drawingGraphicRepresentsId2 = DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId2, physicalObjectId1);
|
|
879
|
+
assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId2));
|
|
880
|
+
// Insert DisplayStyles
|
|
881
|
+
const displayStyle2dId = DisplayStyle2d.insert(sourceDb, definitionModelId, "DisplayStyle2d");
|
|
882
|
+
assert.isTrue(Id64.isValidId64(displayStyle2dId));
|
|
883
|
+
const displayStyle3d = DisplayStyle3d.create(sourceDb, definitionModelId, "DisplayStyle3d");
|
|
884
|
+
const subCategoryOverride = SubCategoryOverride.fromJSON({ color: ColorDef.from(1, 2, 3).toJSON() });
|
|
885
|
+
displayStyle3d.settings.overrideSubCategory(subCategoryId, subCategoryOverride);
|
|
886
|
+
displayStyle3d.settings.addExcludedElements(physicalObjectId1);
|
|
887
|
+
displayStyle3d.settings.setPlanProjectionSettings(spatialLocationModelId, PlanProjectionSettings.fromJSON({ elevation: 10.0 }));
|
|
888
|
+
displayStyle3d.settings.environment = Environment.fromJSON({
|
|
889
|
+
sky: {
|
|
890
|
+
image: {
|
|
891
|
+
type: SkyBoxImageType.Spherical,
|
|
892
|
+
texture: textureId,
|
|
893
|
+
},
|
|
894
|
+
},
|
|
895
|
+
});
|
|
896
|
+
const displayStyle3dId = displayStyle3d.insert();
|
|
897
|
+
assert.isTrue(Id64.isValidId64(displayStyle3dId));
|
|
898
|
+
// Insert ViewDefinitions
|
|
899
|
+
const viewId = OrthographicViewDefinition.insert(sourceDb, definitionModelId, "Orthographic View", modelSelectorId, spatialCategorySelectorId, displayStyle3dId, projectExtents, StandardViewIndex.Iso);
|
|
900
|
+
assert.isTrue(Id64.isValidId64(viewId));
|
|
901
|
+
const drawingViewRange = new Range2d(0, 0, 100, 100);
|
|
902
|
+
const drawingViewId = DrawingViewDefinition.insert(sourceDb, definitionModelId, "Drawing View", drawingId, drawingCategorySelectorId, displayStyle2dId, drawingViewRange);
|
|
903
|
+
assert.isTrue(Id64.isValidId64(drawingViewId));
|
|
904
|
+
// Insert instance of SourceRelToExclude to test relationship exclusion by class
|
|
905
|
+
const relationship1 = sourceDb.relationships.createInstance({
|
|
906
|
+
classFullName: "ExtensiveTestScenario:SourceRelToExclude",
|
|
907
|
+
sourceId: spatialCategorySelectorId,
|
|
908
|
+
targetId: drawingCategorySelectorId,
|
|
909
|
+
});
|
|
910
|
+
const relationshipId1 = sourceDb.relationships.insertInstance(relationship1.toJSON());
|
|
911
|
+
assert.isTrue(Id64.isValidId64(relationshipId1));
|
|
912
|
+
// Insert instance of RelWithProps to test relationship property remapping
|
|
913
|
+
const relationship2 = sourceDb.relationships.createInstance({
|
|
914
|
+
classFullName: "ExtensiveTestScenario:SourceRelWithProps",
|
|
915
|
+
sourceId: spatialCategorySelectorId,
|
|
916
|
+
targetId: drawingCategorySelectorId,
|
|
917
|
+
sourceString: "One",
|
|
918
|
+
sourceDouble: 1.1,
|
|
919
|
+
sourceLong: spatialCategoryId,
|
|
920
|
+
sourceGuid: Guid.createValue(),
|
|
921
|
+
});
|
|
922
|
+
const relationshipId2 = sourceDb.relationships.insertInstance(relationship2.toJSON());
|
|
923
|
+
assert.isTrue(Id64.isValidId64(relationshipId2));
|
|
924
|
+
}
|
|
925
|
+
static updateDb(sourceDb) {
|
|
926
|
+
// Update Subject element
|
|
927
|
+
const subjectId = sourceDb.elements.queryElementIdByCode(Subject.createCode(sourceDb, IModel.rootSubjectId, "Subject"));
|
|
928
|
+
assert.isTrue(Id64.isValidId64(subjectId));
|
|
929
|
+
const subject = sourceDb.elements.getElement(subjectId);
|
|
930
|
+
subject.description = "Subject description (Updated)";
|
|
931
|
+
sourceDb.elements.updateElement(subject.toJSON());
|
|
932
|
+
// Update spatialCategory element
|
|
933
|
+
const definitionModelId = sourceDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(sourceDb, subjectId, "Definition"));
|
|
934
|
+
assert.isTrue(Id64.isValidId64(definitionModelId));
|
|
935
|
+
const spatialCategoryId = sourceDb.elements.queryElementIdByCode(SpatialCategory.createCode(sourceDb, definitionModelId, "SpatialCategory"));
|
|
936
|
+
assert.isTrue(Id64.isValidId64(spatialCategoryId));
|
|
937
|
+
const spatialCategory = sourceDb.elements.getElement(spatialCategoryId);
|
|
938
|
+
spatialCategory.federationGuid = Guid.createValue();
|
|
939
|
+
sourceDb.elements.updateElement(spatialCategory.toJSON());
|
|
940
|
+
// Update relationship properties
|
|
941
|
+
const spatialCategorySelectorId = sourceDb.elements.queryElementIdByCode(CategorySelector.createCode(sourceDb, definitionModelId, "SpatialCategories"));
|
|
942
|
+
assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));
|
|
943
|
+
const drawingCategorySelectorId = sourceDb.elements.queryElementIdByCode(CategorySelector.createCode(sourceDb, definitionModelId, "DrawingCategories"));
|
|
944
|
+
assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));
|
|
945
|
+
const relWithProps = sourceDb.relationships.getInstanceProps("ExtensiveTestScenario:SourceRelWithProps", { sourceId: spatialCategorySelectorId, targetId: drawingCategorySelectorId });
|
|
946
|
+
assert.equal(relWithProps.sourceString, "One");
|
|
947
|
+
assert.equal(relWithProps.sourceDouble, 1.1);
|
|
948
|
+
relWithProps.sourceString += "-Updated";
|
|
949
|
+
relWithProps.sourceDouble = 1.2;
|
|
950
|
+
sourceDb.relationships.updateInstance(relWithProps);
|
|
951
|
+
// Update ElementAspect properties
|
|
952
|
+
const physicalObjectId1 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject1");
|
|
953
|
+
const sourceUniqueAspects = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceUniqueAspect");
|
|
954
|
+
assert.equal(sourceUniqueAspects.length, 1);
|
|
955
|
+
sourceUniqueAspects[0].asAny.commonString += "-Updated";
|
|
956
|
+
sourceUniqueAspects[0].asAny.sourceString += "-Updated";
|
|
957
|
+
sourceDb.elements.updateAspect(sourceUniqueAspects[0].toJSON());
|
|
958
|
+
const sourceMultiAspects = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceMultiAspect");
|
|
959
|
+
assert.equal(sourceMultiAspects.length, 2);
|
|
960
|
+
sourceMultiAspects[1].asAny.commonString += "-Updated";
|
|
961
|
+
sourceMultiAspects[1].asAny.sourceString += "-Updated";
|
|
962
|
+
sourceDb.elements.updateAspect(sourceMultiAspects[1].toJSON());
|
|
963
|
+
// clear NavigationProperty of PhysicalElement1
|
|
964
|
+
const physicalElementId1 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalElement1");
|
|
965
|
+
let physicalElement1 = sourceDb.elements.getElement(physicalElementId1);
|
|
966
|
+
physicalElement1.asAny.commonNavigation = RelatedElement.none;
|
|
967
|
+
physicalElement1.update();
|
|
968
|
+
physicalElement1 = sourceDb.elements.getElement(physicalElementId1);
|
|
969
|
+
assert.isUndefined(physicalElement1.asAny.commonNavigation);
|
|
970
|
+
// delete PhysicalObject3
|
|
971
|
+
const physicalObjectId3 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject3");
|
|
972
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId3));
|
|
973
|
+
sourceDb.elements.deleteElement(physicalObjectId3);
|
|
974
|
+
assert.equal(Id64.invalid, IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject3"));
|
|
975
|
+
// Insert PhysicalObject5
|
|
976
|
+
const physicalObjectProps5 = {
|
|
977
|
+
classFullName: PhysicalObject.classFullName,
|
|
978
|
+
model: physicalElement1.model,
|
|
979
|
+
category: spatialCategoryId,
|
|
980
|
+
code: Code.createEmpty(),
|
|
981
|
+
userLabel: "PhysicalObject5",
|
|
982
|
+
geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1)),
|
|
983
|
+
placement: {
|
|
984
|
+
origin: Point3d.create(5, 5, 5),
|
|
985
|
+
angles: YawPitchRollAngles.createDegrees(0, 0, 0),
|
|
986
|
+
},
|
|
987
|
+
};
|
|
988
|
+
const physicalObjectId5 = sourceDb.elements.insertElement(physicalObjectProps5);
|
|
989
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId5));
|
|
990
|
+
// delete relationship
|
|
991
|
+
const drawingGraphicId1 = IModelTestUtils.queryByUserLabel(sourceDb, "DrawingGraphic1");
|
|
992
|
+
const drawingGraphicId2 = IModelTestUtils.queryByUserLabel(sourceDb, "DrawingGraphic2");
|
|
993
|
+
const relationship = sourceDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId1 });
|
|
994
|
+
relationship.delete();
|
|
995
|
+
// insert relationships
|
|
996
|
+
DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId1, physicalObjectId5);
|
|
997
|
+
DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId2, physicalObjectId5);
|
|
998
|
+
// update InformationRecord2
|
|
999
|
+
const informationRecordCodeSpec = sourceDb.codeSpecs.getByName("InformationRecords");
|
|
1000
|
+
const informationModelId = sourceDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(sourceDb, subjectId, "Information"));
|
|
1001
|
+
const informationRecodeCode2 = new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord2" });
|
|
1002
|
+
const informationRecordId2 = sourceDb.elements.queryElementIdByCode(informationRecodeCode2);
|
|
1003
|
+
assert.isTrue(Id64.isValidId64(informationRecordId2));
|
|
1004
|
+
const informationRecord2 = sourceDb.elements.getElement(informationRecordId2);
|
|
1005
|
+
informationRecord2.commonString = `${informationRecord2.commonString}-Updated`;
|
|
1006
|
+
informationRecord2.sourceString = `${informationRecord2.sourceString}-Updated`;
|
|
1007
|
+
informationRecord2.update();
|
|
1008
|
+
// delete InformationRecord3
|
|
1009
|
+
const informationRecodeCode3 = new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord3" });
|
|
1010
|
+
const informationRecordId3 = sourceDb.elements.queryElementIdByCode(informationRecodeCode3);
|
|
1011
|
+
assert.isTrue(Id64.isValidId64(informationRecordId3));
|
|
1012
|
+
sourceDb.elements.deleteElement(informationRecordId3);
|
|
1013
|
+
}
|
|
1014
|
+
static assertUpdatesInDb(iModelDb, assertDeletes = true) {
|
|
1015
|
+
// determine which schema was imported
|
|
1016
|
+
const testSourceSchema = iModelDb.querySchemaVersion("ExtensiveTestScenario") ? true : false;
|
|
1017
|
+
const testTargetSchema = iModelDb.querySchemaVersion("ExtensiveTestScenarioTarget") ? true : false;
|
|
1018
|
+
assert.notEqual(testSourceSchema, testTargetSchema);
|
|
1019
|
+
// assert Subject was updated
|
|
1020
|
+
const subjectId = iModelDb.elements.queryElementIdByCode(Subject.createCode(iModelDb, IModel.rootSubjectId, "Subject"));
|
|
1021
|
+
assert.isTrue(Id64.isValidId64(subjectId));
|
|
1022
|
+
const subject = iModelDb.elements.getElement(subjectId);
|
|
1023
|
+
assert.equal(subject.description, "Subject description (Updated)");
|
|
1024
|
+
// assert SpatialCategory was updated
|
|
1025
|
+
const definitionModelId = iModelDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(iModelDb, subjectId, "Definition"));
|
|
1026
|
+
assert.isTrue(Id64.isValidId64(definitionModelId));
|
|
1027
|
+
const spatialCategoryId = iModelDb.elements.queryElementIdByCode(SpatialCategory.createCode(iModelDb, definitionModelId, "SpatialCategory"));
|
|
1028
|
+
assert.isTrue(Id64.isValidId64(spatialCategoryId));
|
|
1029
|
+
const spatialCategory = iModelDb.elements.getElement(spatialCategoryId);
|
|
1030
|
+
assert.exists(spatialCategory.federationGuid);
|
|
1031
|
+
// assert TargetRelWithProps was updated
|
|
1032
|
+
const spatialCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, "SpatialCategories"));
|
|
1033
|
+
assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));
|
|
1034
|
+
const drawingCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, "DrawingCategories"));
|
|
1035
|
+
assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));
|
|
1036
|
+
const relClassFullName = testTargetSchema ? "ExtensiveTestScenarioTarget:TargetRelWithProps" : "ExtensiveTestScenario:SourceRelWithProps";
|
|
1037
|
+
const relWithProps = iModelDb.relationships.getInstanceProps(relClassFullName, { sourceId: spatialCategorySelectorId, targetId: drawingCategorySelectorId });
|
|
1038
|
+
assert.equal(testTargetSchema ? relWithProps.targetString : relWithProps.sourceString, "One-Updated");
|
|
1039
|
+
assert.equal(testTargetSchema ? relWithProps.targetDouble : relWithProps.sourceDouble, 1.2);
|
|
1040
|
+
// assert ElementAspect properties
|
|
1041
|
+
const physicalObjectId1 = IModelTestUtils.queryByUserLabel(iModelDb, "PhysicalObject1");
|
|
1042
|
+
const uniqueAspectClassFullName = testTargetSchema ? "ExtensiveTestScenarioTarget:TargetUniqueAspect" : "ExtensiveTestScenario:SourceUniqueAspect";
|
|
1043
|
+
const uniqueAspects = iModelDb.elements.getAspects(physicalObjectId1, uniqueAspectClassFullName);
|
|
1044
|
+
assert.equal(uniqueAspects.length, 1);
|
|
1045
|
+
const uniqueAspect = uniqueAspects[0].asAny;
|
|
1046
|
+
expect(uniqueAspect).to.deep.subsetEqual({
|
|
1047
|
+
commonDouble: 1.1,
|
|
1048
|
+
commonString: "Unique-Updated",
|
|
1049
|
+
commonLong: physicalObjectId1,
|
|
1050
|
+
});
|
|
1051
|
+
if (testTargetSchema) {
|
|
1052
|
+
expect(uniqueAspect).to.deep.subsetEqual({
|
|
1053
|
+
targetDouble: 11.1,
|
|
1054
|
+
targetString: "UniqueAspect-Updated",
|
|
1055
|
+
targetLong: physicalObjectId1,
|
|
1056
|
+
});
|
|
1057
|
+
}
|
|
1058
|
+
else {
|
|
1059
|
+
expect(uniqueAspect).to.deep.subsetEqual({
|
|
1060
|
+
sourceDouble: 11.1,
|
|
1061
|
+
sourceString: "UniqueAspect-Updated",
|
|
1062
|
+
sourceLong: physicalObjectId1,
|
|
1063
|
+
});
|
|
1064
|
+
}
|
|
1065
|
+
const multiAspectClassFullName = testTargetSchema ? "ExtensiveTestScenarioTarget:TargetMultiAspect" : "ExtensiveTestScenario:SourceMultiAspect";
|
|
1066
|
+
const multiAspects = iModelDb.elements.getAspects(physicalObjectId1, multiAspectClassFullName);
|
|
1067
|
+
assert.equal(multiAspects.length, 2);
|
|
1068
|
+
const multiAspect0 = multiAspects[0].asAny;
|
|
1069
|
+
const multiAspect1 = multiAspects[1].asAny;
|
|
1070
|
+
assert.equal(multiAspect0.commonDouble, 2.2);
|
|
1071
|
+
assert.equal(multiAspect0.commonString, "Multi");
|
|
1072
|
+
assert.equal(multiAspect0.commonLong, physicalObjectId1);
|
|
1073
|
+
assert.equal(testTargetSchema ? multiAspect0.targetDouble : multiAspect0.sourceDouble, 22.2);
|
|
1074
|
+
assert.equal(testTargetSchema ? multiAspect0.targetString : multiAspect0.sourceString, "MultiAspect");
|
|
1075
|
+
assert.equal(testTargetSchema ? multiAspect0.targetLong : multiAspect0.sourceLong, physicalObjectId1);
|
|
1076
|
+
assert.equal(multiAspect1.commonDouble, 3.3);
|
|
1077
|
+
assert.equal(multiAspect1.commonString, "Multi-Updated");
|
|
1078
|
+
assert.equal(multiAspect1.commonLong, physicalObjectId1);
|
|
1079
|
+
assert.equal(testTargetSchema ? multiAspect1.targetDouble : multiAspect1.sourceDouble, 33.3);
|
|
1080
|
+
assert.equal(testTargetSchema ? multiAspect1.targetString : multiAspect1.sourceString, "MultiAspect-Updated");
|
|
1081
|
+
assert.equal(testTargetSchema ? multiAspect1.targetLong : multiAspect1.sourceLong, physicalObjectId1);
|
|
1082
|
+
// assert NavigationProperty of PhysicalElement1 was cleared
|
|
1083
|
+
const physicalElementId = IModelTestUtils.queryByUserLabel(iModelDb, "PhysicalElement1");
|
|
1084
|
+
const physicalElement = iModelDb.elements.getElement(physicalElementId);
|
|
1085
|
+
assert.isUndefined(physicalElement.asAny.commonNavigation);
|
|
1086
|
+
// assert PhysicalObject5 was inserted
|
|
1087
|
+
const physicalObjectId5 = IModelTestUtils.queryByUserLabel(iModelDb, "PhysicalObject5");
|
|
1088
|
+
assert.isTrue(Id64.isValidId64(physicalObjectId5));
|
|
1089
|
+
// assert relationships were inserted
|
|
1090
|
+
const drawingGraphicId1 = IModelTestUtils.queryByUserLabel(iModelDb, "DrawingGraphic1");
|
|
1091
|
+
const drawingGraphicId2 = IModelTestUtils.queryByUserLabel(iModelDb, "DrawingGraphic2");
|
|
1092
|
+
iModelDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId1, targetId: physicalObjectId5 });
|
|
1093
|
+
iModelDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId5 });
|
|
1094
|
+
// assert InformationRecord2 was updated
|
|
1095
|
+
const informationRecordCodeSpec = iModelDb.codeSpecs.getByName("InformationRecords");
|
|
1096
|
+
const informationModelId = iModelDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(iModelDb, subjectId, "Information"));
|
|
1097
|
+
const informationRecordId2 = iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord2" }));
|
|
1098
|
+
assert.isTrue(Id64.isValidId64(informationRecordId2));
|
|
1099
|
+
const informationRecord2 = iModelDb.elements.getElement(informationRecordId2);
|
|
1100
|
+
assert.equal(informationRecord2.commonString, "Common2-Updated");
|
|
1101
|
+
assert.equal(testTargetSchema ? informationRecord2.targetString : informationRecord2.sourceString, "Two-Updated");
|
|
1102
|
+
// assert InformationRecord3 was deleted
|
|
1103
|
+
assert.isDefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord1" })));
|
|
1104
|
+
assert.isDefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord2" })));
|
|
1105
|
+
// detect deletes if possible - cannot detect during processAll when isReverseSynchronization is true
|
|
1106
|
+
if (assertDeletes) {
|
|
1107
|
+
assert.equal(Id64.invalid, IModelTestUtils.queryByUserLabel(iModelDb, "PhysicalObject3"));
|
|
1108
|
+
assert.throws(() => iModelDb.relationships.getInstanceProps(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId1 }));
|
|
1109
|
+
assert.isUndefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord3" })));
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
//# sourceMappingURL=IModelTestUtils.js.map
|