@itwin/core-backend 5.0.0-dev.98 → 5.1.0-dev.0
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 +6 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.d.ts +103 -0
- package/lib/cjs/CatalogDb.d.ts.map +1 -0
- package/lib/cjs/CatalogDb.js +271 -0
- package/lib/cjs/CatalogDb.js.map +1 -0
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +14 -7
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +243 -242
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.d.ts +12 -10
- package/lib/cjs/CheckpointManager.d.ts.map +1 -1
- package/lib/cjs/CheckpointManager.js +17 -41
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +5 -5
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +104 -20
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +157 -46
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +37 -1
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +81 -0
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.d.ts +1 -1
- package/lib/cjs/ECSchemaXmlContext.js +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts +181 -2
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +224 -5
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +1 -0
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +4 -0
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +8 -4
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +3 -3
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +47 -47
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +10 -1
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +51 -16
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +1 -1
- package/lib/cjs/IModelHost.js +1 -1
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +1 -1
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/LockControl.js.map +1 -1
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.d.ts.map +1 -1
- package/lib/cjs/NativeHost.js +4 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +2 -0
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.d.ts.map +1 -1
- package/lib/cjs/SQLiteDb.js +5 -4
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/TextAnnotationLayout.js.map +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.d.ts.map +1 -1
- package/lib/cjs/ViewStore.js +29 -28
- 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 +1 -1
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +1 -1
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js +6 -4
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/FontFileImpl.js.map +1 -1
- package/lib/cjs/{HubMock.d.ts → internal/HubMock.d.ts} +4 -5
- package/lib/cjs/internal/HubMock.d.ts.map +1 -0
- package/lib/cjs/{HubMock.js → internal/HubMock.js} +22 -11
- package/lib/cjs/internal/HubMock.js.map +1 -0
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +1 -2
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +2 -3
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts +2 -16
- package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js +35 -104
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +1 -0
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +6 -13
- package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.d.ts +2 -7
- package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BackendLoggerCategory.js.map +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.d.ts +103 -0
- package/lib/esm/CatalogDb.d.ts.map +1 -0
- package/lib/esm/CatalogDb.js +267 -0
- package/lib/esm/CatalogDb.js.map +1 -0
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.d.ts.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +14 -7
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +243 -242
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChannelControl.js.map +1 -1
- package/lib/esm/CheckpointManager.d.ts +12 -10
- package/lib/esm/CheckpointManager.d.ts.map +1 -1
- package/lib/esm/CheckpointManager.js +18 -42
- package/lib/esm/CheckpointManager.js.map +1 -1
- package/lib/esm/ClassRegistry.js +5 -5
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.d.ts +104 -20
- package/lib/esm/CloudSqlite.d.ts.map +1 -1
- package/lib/esm/CloudSqlite.js +157 -46
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/CustomViewState3dCreator.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.d.ts +37 -1
- package/lib/esm/ECDb.d.ts.map +1 -1
- package/lib/esm/ECDb.js +82 -1
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.d.ts +1 -1
- package/lib/esm/ECSchemaXmlContext.js +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlStatement.d.ts +181 -2
- package/lib/esm/ECSqlStatement.d.ts.map +1 -1
- package/lib/esm/ECSqlStatement.js +222 -4
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +1 -0
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
- package/lib/esm/ElementTreeWalker.js +4 -0
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.d.ts +8 -4
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +3 -3
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/ExternalSource.js.map +1 -1
- package/lib/esm/FontFile.js.map +1 -1
- package/lib/esm/GeoCoordConfig.js.map +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/GeometrySummary.js +47 -47
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +10 -1
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +51 -16
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelDbFonts.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +1 -1
- package/lib/esm/IModelHost.js +1 -1
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.js.map +1 -1
- package/lib/esm/LineStyle.js.map +1 -1
- package/lib/esm/LocalHub.js +1 -1
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/LocalhostIpcHost.js.map +1 -1
- package/lib/esm/LockControl.js.map +1 -1
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/NativeAppStorage.js.map +1 -1
- package/lib/esm/NativeHost.d.ts.map +1 -1
- package/lib/esm/NativeHost.js +4 -1
- package/lib/esm/NativeHost.js.map +1 -1
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/PromiseMemoizer.js.map +1 -1
- package/lib/esm/PropertyStore.js.map +1 -1
- package/lib/esm/Relationship.d.ts.map +1 -1
- package/lib/esm/Relationship.js +2 -0
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.d.ts.map +1 -1
- package/lib/esm/SQLiteDb.js +5 -4
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SchemaSync.js.map +1 -1
- package/lib/esm/SchemaUtils.js.map +1 -1
- package/lib/esm/SheetIndex.js.map +1 -1
- package/lib/esm/SqliteChangesetReader.js.map +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/TextAnnotationElement.js.map +1 -1
- package/lib/esm/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/TextAnnotationLayout.js.map +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.d.ts.map +1 -1
- package/lib/esm/ViewStore.js +30 -29
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/core-backend.d.ts +1 -1
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +1 -1
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/FunctionalSchema.js.map +1 -1
- package/lib/esm/domains/GenericElements.js.map +1 -1
- package/lib/esm/domains/GenericSchema.js.map +1 -1
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/esm/internal/ChannelAdmin.js +7 -5
- package/lib/esm/internal/ChannelAdmin.js.map +1 -1
- package/lib/esm/internal/FontFileImpl.js.map +1 -1
- package/lib/esm/{HubMock.d.ts → internal/HubMock.d.ts} +4 -5
- package/lib/esm/internal/HubMock.d.ts.map +1 -0
- package/lib/esm/{HubMock.js → internal/HubMock.js} +22 -11
- package/lib/esm/internal/HubMock.js.map +1 -0
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/esm/internal/NativePlatform.js.map +1 -1
- package/lib/esm/internal/NoLocks.js.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +1 -2
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +1 -2
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +2 -16
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js +36 -100
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/esm/rpc/multipart.js.map +1 -1
- package/lib/esm/rpc/tracing.js.map +1 -1
- package/lib/esm/rpc/web/logging.js.map +1 -1
- package/lib/esm/rpc/web/request.js.map +1 -1
- package/lib/esm/rpc/web/response.js.map +1 -1
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +1 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AdvancedEqual.js.map +1 -1
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.d.ts +6 -2
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
- package/lib/esm/test/IModelTestUtils.js +37 -6
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
- package/lib/esm/test/IpcHost.test.js.map +1 -1
- package/lib/esm/test/KnownTestLocations.js.map +1 -1
- package/lib/esm/test/PrintElementTree.js +1 -0
- package/lib/esm/test/PrintElementTree.js.map +1 -1
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/RevisionUtility.js.map +1 -1
- package/lib/esm/test/SchemaUtils.test.js +27 -25
- package/lib/esm/test/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.js +1 -1
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js.map +1 -1
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
- package/lib/esm/test/ecdb/CTE.test.js +88 -88
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +69 -58
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +4 -4
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +66 -65
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +13 -7
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlReader.test.js +17 -17
- package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +533 -443
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +22 -21
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +5 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
- package/lib/esm/test/element/ElementAspect.test.js +22 -22
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +149 -139
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
- package/lib/esm/test/element/NullStructArray.test.js +13 -13
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
- package/lib/esm/test/element/UrlLink.test.js.map +1 -1
- package/lib/esm/test/font/FontFile.test.js.map +1 -1
- package/lib/esm/test/font/IModelDbFonts.test.js +1 -1
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js +4 -3
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
- package/lib/esm/test/imageData.js.map +1 -1
- package/lib/esm/test/imodel/ElementTreeWalker.test.js +1 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +15 -1
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
- package/lib/esm/test/index.js.map +1 -1
- package/lib/esm/test/misc/DevTools.test.js.map +1 -1
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
- package/lib/esm/test/rpc/response.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +71 -71
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
- package/lib/esm/test/schema/GenericDomain.test.js +1 -0
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +30 -29
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +19 -54
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/HubMock.test.js +1 -1
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +35 -28
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.js +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +1 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
- package/lib/esm/test/standalone/Setting.test.js.map +1 -1
- package/lib/esm/test/standalone/Settings.test.js.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +5 -4
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Texture.test.js.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Workspace.test.js +4 -3
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/lib/esm/workspace/Settings.js.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
- package/lib/esm/workspace/Workspace.d.ts +6 -13
- package/lib/esm/workspace/Workspace.d.ts.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.d.ts +2 -7
- package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +13 -13
- package/lib/cjs/HubMock.d.ts.map +0 -1
- package/lib/cjs/HubMock.js.map +0 -1
- package/lib/esm/HubMock.d.ts.map +0 -1
- package/lib/esm/HubMock.js.map +0 -1
- package/lib/esm/test/CloudSqliteMock.d.ts +0 -37
- package/lib/esm/test/CloudSqliteMock.d.ts.map +0 -1
- package/lib/esm/test/CloudSqliteMock.js +0 -117
- package/lib/esm/test/CloudSqliteMock.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnapshotIModelRpcImpl.js","sourceRoot":"","sources":["../../../src/rpc-impl/SnapshotIModelRpcImpl.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EACkB,sBAAsB,EAAkB,YAAY,EAAE,UAAU,EAAE,0BAA0B,GACpH,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qDAAqD;AAErD;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAC9C,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAC,YAAY,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAExG,kGAAkG;IAC3F,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,IAA0B;QAChE,IAAI,gBAAgB,GAAuB,QAAQ,CAAC;QACpD,IAAI,UAAU,CAAC,wBAAwB,EAAE,CAAC;YACxC,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACpF,IAAI,SAAS,KAAK,gBAAgB;gBAChC,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC,0DAA0D;QAClG,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC1E,CAAC;IAED,4FAA4F;IACrF,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,IAA0B;QACjE,MAAM,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAClF,IAAI,SAAS,KAAK,gBAAgB;YAChC,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC,0DAA0D;QAEhG,OAAO,UAAU,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC/F,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,KAAK,CAAC,UAA0B;QAC3C,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module RpcInterface\n */\n\nimport {\n IModelConnectionProps, IModelNotFoundResponse, IModelRpcProps, RpcInterface, RpcManager, SnapshotIModelRpcInterface, SnapshotOpenOptions,\n} from \"@itwin/core-common\";\nimport { SnapshotDb } from \"../IModelDb\";\nimport { IModelHost } from \"../IModelHost\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** The backend implementation of SnapshotIModelRpcInterface.\n * @internal\n * @deprecated in 5.0. Check [[IpcAppFunctions]] for replacements.\n */\nexport class SnapshotIModelRpcImpl extends RpcInterface implements SnapshotIModelRpcInterface {\n public static register() { RpcManager.registerImpl(SnapshotIModelRpcInterface, SnapshotIModelRpcImpl); }\n\n /** Ask the backend to open a snapshot iModel from a file name that is resolved by the backend. */\n public async openFile(filePath: string, opts?: SnapshotOpenOptions): Promise<IModelConnectionProps> {\n let resolvedFileName: string | undefined = filePath;\n if (IModelHost.snapshotFileNameResolver) {\n resolvedFileName = IModelHost.snapshotFileNameResolver.tryResolveFileName(filePath);\n if (undefined === resolvedFileName)\n throw new IModelNotFoundResponse(); // eslint-disable-line @typescript-eslint/only-throw-error\n }\n return SnapshotDb.openFile(resolvedFileName, opts).getConnectionProps();\n }\n\n /** Ask the backend to open a snapshot iModel from a key that is resolved by the backend. */\n public async openRemote(fileKey: string, opts?: SnapshotOpenOptions): Promise<IModelConnectionProps> {\n const resolvedFileName = IModelHost.snapshotFileNameResolver?.resolveKey(fileKey);\n if (undefined === resolvedFileName)\n throw new IModelNotFoundResponse(); // eslint-disable-line @typescript-eslint/only-throw-error\n\n return SnapshotDb.openFile(resolvedFileName, { key: fileKey, ...opts }).getConnectionProps();\n }\n\n /** Ask the backend to close a snapshot iModel. */\n public async close(tokenProps: IModelRpcProps): Promise<boolean> {\n SnapshotDb.findByKey(tokenProps.key).close();\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SnapshotIModelRpcImpl.js","sourceRoot":"","sources":["../../../src/rpc-impl/SnapshotIModelRpcImpl.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EACkB,sBAAsB,EAAkB,YAAY,EAAE,UAAU,EAAE,0BAA0B,GACpH,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qDAAqD;AAErD;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAC9C,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAC,YAAY,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAExG,kGAAkG;IAC3F,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,IAA0B;QAChE,IAAI,gBAAgB,GAAuB,QAAQ,CAAC;QACpD,IAAI,UAAU,CAAC,wBAAwB,EAAE,CAAC;YACxC,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACpF,IAAI,SAAS,KAAK,gBAAgB;gBAChC,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC,0DAA0D;QAClG,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC1E,CAAC;IAED,4FAA4F;IACrF,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,IAA0B;QACjE,MAAM,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAClF,IAAI,SAAS,KAAK,gBAAgB;YAChC,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC,0DAA0D;QAEhG,OAAO,UAAU,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC/F,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,KAAK,CAAC,UAA0B;QAC3C,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module RpcInterface\r\n */\r\n\r\nimport {\r\n IModelConnectionProps, IModelNotFoundResponse, IModelRpcProps, RpcInterface, RpcManager, SnapshotIModelRpcInterface, SnapshotOpenOptions,\r\n} from \"@itwin/core-common\";\r\nimport { SnapshotDb } from \"../IModelDb\";\r\nimport { IModelHost } from \"../IModelHost\";\r\n\r\n/* eslint-disable @typescript-eslint/no-deprecated */\r\n\r\n/** The backend implementation of SnapshotIModelRpcInterface.\r\n * @internal\r\n * @deprecated in 5.0. Check [[IpcAppFunctions]] for replacements.\r\n */\r\nexport class SnapshotIModelRpcImpl extends RpcInterface implements SnapshotIModelRpcInterface {\r\n public static register() { RpcManager.registerImpl(SnapshotIModelRpcInterface, SnapshotIModelRpcImpl); }\r\n\r\n /** Ask the backend to open a snapshot iModel from a file name that is resolved by the backend. */\r\n public async openFile(filePath: string, opts?: SnapshotOpenOptions): Promise<IModelConnectionProps> {\r\n let resolvedFileName: string | undefined = filePath;\r\n if (IModelHost.snapshotFileNameResolver) {\r\n resolvedFileName = IModelHost.snapshotFileNameResolver.tryResolveFileName(filePath);\r\n if (undefined === resolvedFileName)\r\n throw new IModelNotFoundResponse(); // eslint-disable-line @typescript-eslint/only-throw-error\r\n }\r\n return SnapshotDb.openFile(resolvedFileName, opts).getConnectionProps();\r\n }\r\n\r\n /** Ask the backend to open a snapshot iModel from a key that is resolved by the backend. */\r\n public async openRemote(fileKey: string, opts?: SnapshotOpenOptions): Promise<IModelConnectionProps> {\r\n const resolvedFileName = IModelHost.snapshotFileNameResolver?.resolveKey(fileKey);\r\n if (undefined === resolvedFileName)\r\n throw new IModelNotFoundResponse(); // eslint-disable-line @typescript-eslint/only-throw-error\r\n\r\n return SnapshotDb.openFile(resolvedFileName, { key: fileKey, ...opts }).getConnectionProps();\r\n }\r\n\r\n /** Ask the backend to close a snapshot iModel. */\r\n public async close(tokenProps: IModelRpcProps): Promise<boolean> {\r\n SnapshotDb.findByKey(tokenProps.key).close();\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdvancedEqual.js","sourceRoot":"","sources":["../../../src/test/AdvancedEqual.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { Assertion, util } from \"chai\";\nimport { Geometry } from \"@itwin/core-geometry\";\n\ninterface DeepEqualOpts {\n /**\n * Tolerance for number fields, if not defined will be 1e-10\n * If you don't want a tolerance, either supply 0 or use regular .deep.equal\n */\n tolerance?: number;\n /** e.g. consider {x: undefined} and {} as deeply equal */\n considerNonExistingAndUndefinedEqual?: boolean;\n /** Specify standard property keys holding ec class identifiers (when true, `classFullName` and `relClassName`)\n * to be normalized during comparison so that differently cased and alternative syntax still is considered equal\n * Passing `true`, is the same as passing `[\"classFullName\", \"relClassName\"]`\n */\n normalizeClassNameProps?: boolean | string[];\n}\n\nexport const defaultOpts = {\n tolerance: 1e-10,\n considerNonExistingAndUndefinedEqual: false,\n} as const;\n\ndeclare global {\n namespace Chai {\n interface Deep {\n advancedEqual(actual: any, options?: DeepEqualOpts): Assertion;\n subsetEqual(actual: any, options?: DeepEqualOpts): Assertion;\n }\n }\n}\n\n/** get whether two numbers are almost equal within a tolerance */\nconst isAlmostEqualNumber: (a: number, b: number, tol: number) => boolean = (a, b, tol) => Geometry.isSameCoordinate(a, b, tol);\n\n/** normalize a classname for comparisons */\nconst normalizeClassName = (name: string) => name.toLowerCase().replace(/:/, \".\");\n\ninterface AdvancedEqualFuncOpts extends DeepEqualOpts {\n /** only test */\n useSubsetEquality?: boolean;\n}\n\n/**\n * The diff shown on failure will show undefined fields as part of the diff even if\n * consideringNonExistingAndUndefinedEqual is true. You can ignore that.\n * We would have to mutate the object to clean the diff, although it is worth considering.\n */\nexport function advancedDeepEqual(\n e: any,\n a: any,\n options: AdvancedEqualFuncOpts = {},\n): boolean {\n const normalizedClassNameProps\n = options.normalizeClassNameProps === true\n ? [\"classFullName\", \"relClassName\"]\n : options.normalizeClassNameProps || [];\n if (options.tolerance === undefined)\n options.tolerance = defaultOpts.tolerance;\n if (e === a)\n return true;\n if (typeof e !== typeof a)\n return false;\n switch (typeof e) {\n case \"number\":\n return isAlmostEqualNumber(e, a, options.tolerance);\n case \"string\":\n case \"boolean\":\n case \"function\":\n case \"symbol\":\n case \"undefined\":\n return false; // these objects can only be strict equal which was already tested\n case \"object\":\n if ((e === null) !== (a === null))\n return false;\n const eSize = Object.keys(e).filter((k) => options.considerNonExistingAndUndefinedEqual && e[k] !== undefined).length;\n const aSize = Object.keys(a).filter((k) => options.considerNonExistingAndUndefinedEqual && a[k] !== undefined).length;\n return (eSize === aSize || !!options.useSubsetEquality) && Object.keys(e).every(\n (keyOfE) =>\n (keyOfE in a || options.considerNonExistingAndUndefinedEqual) &&\n normalizedClassNameProps.includes(keyOfE)\n ? advancedDeepEqual(normalizeClassName(e[keyOfE]), normalizeClassName(a[keyOfE]))\n : advancedDeepEqual(e[keyOfE], a[keyOfE], options),\n );\n default: // bigint unhandled\n throw Error(`unhandled deep compare type code returned from typeof, \"${typeof e}\"`);\n }\n}\n\nAssertion.addMethod(\n \"advancedEqual\",\n function advancedEqual(\n expected: any,\n options: DeepEqualOpts = {},\n ) {\n if (options.tolerance === undefined)\n options.tolerance = 1e-10;\n const actual = this._obj;\n const isDeep = util.flag(this, \"deep\");\n this.assert(\n isDeep\n ? advancedDeepEqual(expected, actual, options)\n : isAlmostEqualNumber(expected, actual, options.tolerance),\n `expected ${\n isDeep ? \"deep equality of \" : \" \"\n }#{exp} and #{act} with a tolerance of ${options.tolerance}`,\n `expected ${\n isDeep ? \"deep inequality of \" : \" \"\n }#{exp} and #{act} with a tolerance of ${options.tolerance}`,\n expected,\n actual,\n );\n },\n);\n\nAssertion.addMethod(\n \"subsetEqual\",\n function subsetEqual(\n expected: any,\n options: DeepEqualOpts = {},\n ) {\n if (options.tolerance === undefined)\n options.tolerance = 1e-10;\n const actual = this._obj;\n this.assert(\n advancedDeepEqual(expected, actual, {...options, useSubsetEquality: true }),\n `expected #{act} to contain as a subset #{exp}`,\n `expected #{act} not to contain as a subset #{exp}`,\n expected,\n actual,\n );\n },\n);\n"]}
|
|
1
|
+
{"version":3,"file":"AdvancedEqual.js","sourceRoot":"","sources":["../../../src/test/AdvancedEqual.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Assertion, util } from \"chai\";\r\nimport { Geometry } from \"@itwin/core-geometry\";\r\n\r\ninterface DeepEqualOpts {\r\n /**\r\n * Tolerance for number fields, if not defined will be 1e-10\r\n * If you don't want a tolerance, either supply 0 or use regular .deep.equal\r\n */\r\n tolerance?: number;\r\n /** e.g. consider {x: undefined} and {} as deeply equal */\r\n considerNonExistingAndUndefinedEqual?: boolean;\r\n /** Specify standard property keys holding ec class identifiers (when true, `classFullName` and `relClassName`)\r\n * to be normalized during comparison so that differently cased and alternative syntax still is considered equal\r\n * Passing `true`, is the same as passing `[\"classFullName\", \"relClassName\"]`\r\n */\r\n normalizeClassNameProps?: boolean | string[];\r\n}\r\n\r\nexport const defaultOpts = {\r\n tolerance: 1e-10,\r\n considerNonExistingAndUndefinedEqual: false,\r\n} as const;\r\n\r\ndeclare global {\r\n namespace Chai {\r\n interface Deep {\r\n advancedEqual(actual: any, options?: DeepEqualOpts): Assertion;\r\n subsetEqual(actual: any, options?: DeepEqualOpts): Assertion;\r\n }\r\n }\r\n}\r\n\r\n/** get whether two numbers are almost equal within a tolerance */\r\nconst isAlmostEqualNumber: (a: number, b: number, tol: number) => boolean = (a, b, tol) => Geometry.isSameCoordinate(a, b, tol);\r\n\r\n/** normalize a classname for comparisons */\r\nconst normalizeClassName = (name: string) => name.toLowerCase().replace(/:/, \".\");\r\n\r\ninterface AdvancedEqualFuncOpts extends DeepEqualOpts {\r\n /** only test */\r\n useSubsetEquality?: boolean;\r\n}\r\n\r\n/**\r\n * The diff shown on failure will show undefined fields as part of the diff even if\r\n * consideringNonExistingAndUndefinedEqual is true. You can ignore that.\r\n * We would have to mutate the object to clean the diff, although it is worth considering.\r\n */\r\nexport function advancedDeepEqual(\r\n e: any,\r\n a: any,\r\n options: AdvancedEqualFuncOpts = {},\r\n): boolean {\r\n const normalizedClassNameProps\r\n = options.normalizeClassNameProps === true\r\n ? [\"classFullName\", \"relClassName\"]\r\n : options.normalizeClassNameProps || [];\r\n if (options.tolerance === undefined)\r\n options.tolerance = defaultOpts.tolerance;\r\n if (e === a)\r\n return true;\r\n if (typeof e !== typeof a)\r\n return false;\r\n switch (typeof e) {\r\n case \"number\":\r\n return isAlmostEqualNumber(e, a, options.tolerance);\r\n case \"string\":\r\n case \"boolean\":\r\n case \"function\":\r\n case \"symbol\":\r\n case \"undefined\":\r\n return false; // these objects can only be strict equal which was already tested\r\n case \"object\":\r\n if ((e === null) !== (a === null))\r\n return false;\r\n const eSize = Object.keys(e).filter((k) => options.considerNonExistingAndUndefinedEqual && e[k] !== undefined).length;\r\n const aSize = Object.keys(a).filter((k) => options.considerNonExistingAndUndefinedEqual && a[k] !== undefined).length;\r\n return (eSize === aSize || !!options.useSubsetEquality) && Object.keys(e).every(\r\n (keyOfE) =>\r\n (keyOfE in a || options.considerNonExistingAndUndefinedEqual) &&\r\n normalizedClassNameProps.includes(keyOfE)\r\n ? advancedDeepEqual(normalizeClassName(e[keyOfE]), normalizeClassName(a[keyOfE]))\r\n : advancedDeepEqual(e[keyOfE], a[keyOfE], options),\r\n );\r\n default: // bigint unhandled\r\n throw Error(`unhandled deep compare type code returned from typeof, \"${typeof e}\"`);\r\n }\r\n}\r\n\r\nAssertion.addMethod(\r\n \"advancedEqual\",\r\n function advancedEqual(\r\n expected: any,\r\n options: DeepEqualOpts = {},\r\n ) {\r\n if (options.tolerance === undefined)\r\n options.tolerance = 1e-10;\r\n const actual = this._obj;\r\n const isDeep = util.flag(this, \"deep\");\r\n this.assert(\r\n isDeep\r\n ? advancedDeepEqual(expected, actual, options)\r\n : isAlmostEqualNumber(expected, actual, options.tolerance),\r\n `expected ${\r\n isDeep ? \"deep equality of \" : \" \"\r\n }#{exp} and #{act} with a tolerance of ${options.tolerance}`,\r\n `expected ${\r\n isDeep ? \"deep inequality of \" : \" \"\r\n }#{exp} and #{act} with a tolerance of ${options.tolerance}`,\r\n expected,\r\n actual,\r\n );\r\n },\r\n);\r\n\r\nAssertion.addMethod(\r\n \"subsetEqual\",\r\n function subsetEqual(\r\n expected: any,\r\n options: DeepEqualOpts = {},\r\n ) {\r\n if (options.tolerance === undefined)\r\n options.tolerance = 1e-10;\r\n const actual = this._obj;\r\n this.assert(\r\n advancedDeepEqual(expected, actual, {...options, useSubsetEquality: true }),\r\n `expected #{act} to contain as a subset #{exp}`,\r\n `expected #{act} not to contain as a subset #{exp}`,\r\n expected,\r\n actual,\r\n );\r\n },\r\n);\r\n"]}
|
|
@@ -11,17 +11,17 @@ describe("Attach/Detach Db", () => {
|
|
|
11
11
|
const simulationFile = IModelTestUtils.resolveAssetFile("sim-attach.ecdb");
|
|
12
12
|
const master = SnapshotDb.openFile(masterFile);
|
|
13
13
|
master.attachDb(simulationFile, "SimDb");
|
|
14
|
-
const ecsql = `
|
|
15
|
-
SELECT ts.TimeFromStart [Time From Start (s)],
|
|
16
|
-
p.UserLabel [Pipe with Max Flow],
|
|
17
|
-
MAX(ltvrr.Flow) [Max Flow (L/s)]
|
|
18
|
-
FROM
|
|
19
|
-
SimDb.simrescore.TimeStep ts
|
|
20
|
-
INNER JOIN SimDb.stmswrres.BasicFlowResultRecord ltvrr ON ts.ECInstanceId = ltvrr.TimeStep.Id
|
|
21
|
-
INNER JOIN swrhyd.Pipe p ON p.ECInstanceId = ltvrr.ElementId
|
|
22
|
-
GROUP BY
|
|
23
|
-
ts.ECInstanceId
|
|
24
|
-
HAVING
|
|
14
|
+
const ecsql = `
|
|
15
|
+
SELECT ts.TimeFromStart [Time From Start (s)],
|
|
16
|
+
p.UserLabel [Pipe with Max Flow],
|
|
17
|
+
MAX(ltvrr.Flow) [Max Flow (L/s)]
|
|
18
|
+
FROM
|
|
19
|
+
SimDb.simrescore.TimeStep ts
|
|
20
|
+
INNER JOIN SimDb.stmswrres.BasicFlowResultRecord ltvrr ON ts.ECInstanceId = ltvrr.TimeStep.Id
|
|
21
|
+
INNER JOIN swrhyd.Pipe p ON p.ECInstanceId = ltvrr.ElementId
|
|
22
|
+
GROUP BY
|
|
23
|
+
ts.ECInstanceId
|
|
24
|
+
HAVING
|
|
25
25
|
MAX(ltvrr.Flow) > 1`;
|
|
26
26
|
const reader = master.createQueryReader(ecsql);
|
|
27
27
|
const rows = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachDb.test.js","sourceRoot":"","sources":["../../../src/test/AttachDb.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { expect } from \"chai\";\nimport { SnapshotDb } from \"../IModelDb\";\nimport { IModelTestUtils } from \"./IModelTestUtils\";\n\ndescribe(\"Attach/Detach Db\", () => {\n it(\"attach simulation db\", async () => {\n const masterFile = IModelTestUtils.resolveAssetFile(\"sim-master.bim\");\n const simulationFile = IModelTestUtils.resolveAssetFile(\"sim-attach.ecdb\");\n\n const master = SnapshotDb.openFile(masterFile);\n master.attachDb(simulationFile, \"SimDb\");\n\n const ecsql = `\n SELECT ts.TimeFromStart [Time From Start (s)],\n p.UserLabel [Pipe with Max Flow],\n MAX(ltvrr.Flow) [Max Flow (L/s)]\n FROM\n SimDb.simrescore.TimeStep ts\n INNER JOIN SimDb.stmswrres.BasicFlowResultRecord ltvrr ON ts.ECInstanceId = ltvrr.TimeStep.Id\n INNER JOIN swrhyd.Pipe p ON p.ECInstanceId = ltvrr.ElementId\n GROUP BY\n ts.ECInstanceId\n HAVING\n MAX(ltvrr.Flow) > 1`;\n\n const reader = master.createQueryReader(ecsql);\n const rows = [];\n while (await reader.step()) {\n rows.push(reader.current.toRow());\n }\n const expected = [\n {\n 'Time From Start (s)': 0,\n 'Pipe with Max Flow': 'CO-4',\n 'Max Flow (L/s)': 66.14359584163114\n },\n {\n 'Time From Start (s)': 3600,\n 'Pipe with Max Flow': 'CO-4',\n 'Max Flow (L/s)': 78.33925707748288\n },\n {\n 'Time From Start (s)': 7200,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 85.32875334207684\n },\n {\n 'Time From Start (s)': 10800,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 73.66891955141061\n },\n {\n 'Time From Start (s)': 14400,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 98.03457129303487\n },\n {\n 'Time From Start (s)': 18000,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 79.73721449443349\n },\n {\n 'Time From Start (s)': 21600,\n 'Pipe with Max Flow': 'CO-4',\n 'Max Flow (L/s)': 91.99697459812566\n },\n {\n 'Time From Start (s)': 25200,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 97.3640516154515\n },\n {\n 'Time From Start (s)': 28800,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 82.92153917380564\n },\n {\n 'Time From Start (s)': 32400,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 93.43596024800935\n },\n {\n 'Time From Start (s)': 36000,\n 'Pipe with Max Flow': 'CO-1',\n 'Max Flow (L/s)': 93.38944851040705\n },\n {\n 'Time From Start (s)': 39600,\n 'Pipe with Max Flow': 'CO-2',\n 'Max Flow (L/s)': 96.89678313985426\n },\n {\n 'Time From Start (s)': 43200,\n 'Pipe with Max Flow': 'CO-4',\n 'Max Flow (L/s)': 68.37554676909588\n },\n {\n 'Time From Start (s)': 46800,\n 'Pipe with Max Flow': 'CO-4',\n 'Max Flow (L/s)': 40.71067873689955\n },\n {\n 'Time From Start (s)': 50400,\n 'Pipe with Max Flow': 'CO-2',\n 'Max Flow (L/s)': 94.95603088826243\n },\n {\n 'Time From Start (s)': 54000,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 90.30742518949977\n },\n {\n 'Time From Start (s)': 57600,\n 'Pipe with Max Flow': 'CO-2',\n 'Max Flow (L/s)': 96.32532799368296\n },\n {\n 'Time From Start (s)': 61200,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 98.7241157161529\n },\n {\n 'Time From Start (s)': 64800,\n 'Pipe with Max Flow': 'CO-1',\n 'Max Flow (L/s)': 76.65530275985837\n },\n {\n 'Time From Start (s)': 68400,\n 'Pipe with Max Flow': 'CO-2',\n 'Max Flow (L/s)': 61.81109058119374\n },\n {\n 'Time From Start (s)': 72000,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 98.37332278792479\n },\n {\n 'Time From Start (s)': 75600,\n 'Pipe with Max Flow': 'CO-3',\n 'Max Flow (L/s)': 70.55434454594996\n },\n {\n 'Time From Start (s)': 79200,\n 'Pipe with Max Flow': 'CO-2',\n 'Max Flow (L/s)': 84.03731418990937\n },\n {\n 'Time From Start (s)': 82800,\n 'Pipe with Max Flow': 'CO-2',\n 'Max Flow (L/s)': 96.3267817742375\n }\n ];\n expect(rows).to.deep.equal(expected);\n master.close();\n });\n\n});\n"]}
|
|
1
|
+
{"version":3,"file":"AttachDb.test.js","sourceRoot":"","sources":["../../../src/test/AttachDb.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { expect } from \"chai\";\r\nimport { SnapshotDb } from \"../IModelDb\";\r\nimport { IModelTestUtils } from \"./IModelTestUtils\";\r\n\r\ndescribe(\"Attach/Detach Db\", () => {\r\n it(\"attach simulation db\", async () => {\r\n const masterFile = IModelTestUtils.resolveAssetFile(\"sim-master.bim\");\r\n const simulationFile = IModelTestUtils.resolveAssetFile(\"sim-attach.ecdb\");\r\n\r\n const master = SnapshotDb.openFile(masterFile);\r\n master.attachDb(simulationFile, \"SimDb\");\r\n\r\n const ecsql = `\r\n SELECT ts.TimeFromStart [Time From Start (s)],\r\n p.UserLabel [Pipe with Max Flow],\r\n MAX(ltvrr.Flow) [Max Flow (L/s)]\r\n FROM\r\n SimDb.simrescore.TimeStep ts\r\n INNER JOIN SimDb.stmswrres.BasicFlowResultRecord ltvrr ON ts.ECInstanceId = ltvrr.TimeStep.Id\r\n INNER JOIN swrhyd.Pipe p ON p.ECInstanceId = ltvrr.ElementId\r\n GROUP BY\r\n ts.ECInstanceId\r\n HAVING\r\n MAX(ltvrr.Flow) > 1`;\r\n\r\n const reader = master.createQueryReader(ecsql);\r\n const rows = [];\r\n while (await reader.step()) {\r\n rows.push(reader.current.toRow());\r\n }\r\n const expected = [\r\n {\r\n 'Time From Start (s)': 0,\r\n 'Pipe with Max Flow': 'CO-4',\r\n 'Max Flow (L/s)': 66.14359584163114\r\n },\r\n {\r\n 'Time From Start (s)': 3600,\r\n 'Pipe with Max Flow': 'CO-4',\r\n 'Max Flow (L/s)': 78.33925707748288\r\n },\r\n {\r\n 'Time From Start (s)': 7200,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 85.32875334207684\r\n },\r\n {\r\n 'Time From Start (s)': 10800,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 73.66891955141061\r\n },\r\n {\r\n 'Time From Start (s)': 14400,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 98.03457129303487\r\n },\r\n {\r\n 'Time From Start (s)': 18000,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 79.73721449443349\r\n },\r\n {\r\n 'Time From Start (s)': 21600,\r\n 'Pipe with Max Flow': 'CO-4',\r\n 'Max Flow (L/s)': 91.99697459812566\r\n },\r\n {\r\n 'Time From Start (s)': 25200,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 97.3640516154515\r\n },\r\n {\r\n 'Time From Start (s)': 28800,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 82.92153917380564\r\n },\r\n {\r\n 'Time From Start (s)': 32400,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 93.43596024800935\r\n },\r\n {\r\n 'Time From Start (s)': 36000,\r\n 'Pipe with Max Flow': 'CO-1',\r\n 'Max Flow (L/s)': 93.38944851040705\r\n },\r\n {\r\n 'Time From Start (s)': 39600,\r\n 'Pipe with Max Flow': 'CO-2',\r\n 'Max Flow (L/s)': 96.89678313985426\r\n },\r\n {\r\n 'Time From Start (s)': 43200,\r\n 'Pipe with Max Flow': 'CO-4',\r\n 'Max Flow (L/s)': 68.37554676909588\r\n },\r\n {\r\n 'Time From Start (s)': 46800,\r\n 'Pipe with Max Flow': 'CO-4',\r\n 'Max Flow (L/s)': 40.71067873689955\r\n },\r\n {\r\n 'Time From Start (s)': 50400,\r\n 'Pipe with Max Flow': 'CO-2',\r\n 'Max Flow (L/s)': 94.95603088826243\r\n },\r\n {\r\n 'Time From Start (s)': 54000,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 90.30742518949977\r\n },\r\n {\r\n 'Time From Start (s)': 57600,\r\n 'Pipe with Max Flow': 'CO-2',\r\n 'Max Flow (L/s)': 96.32532799368296\r\n },\r\n {\r\n 'Time From Start (s)': 61200,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 98.7241157161529\r\n },\r\n {\r\n 'Time From Start (s)': 64800,\r\n 'Pipe with Max Flow': 'CO-1',\r\n 'Max Flow (L/s)': 76.65530275985837\r\n },\r\n {\r\n 'Time From Start (s)': 68400,\r\n 'Pipe with Max Flow': 'CO-2',\r\n 'Max Flow (L/s)': 61.81109058119374\r\n },\r\n {\r\n 'Time From Start (s)': 72000,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 98.37332278792479\r\n },\r\n {\r\n 'Time From Start (s)': 75600,\r\n 'Pipe with Max Flow': 'CO-3',\r\n 'Max Flow (L/s)': 70.55434454594996\r\n },\r\n {\r\n 'Time From Start (s)': 79200,\r\n 'Pipe with Max Flow': 'CO-2',\r\n 'Max Flow (L/s)': 84.03731418990937\r\n },\r\n {\r\n 'Time From Start (s)': 82800,\r\n 'Pipe with Max Flow': 'CO-2',\r\n 'Max Flow (L/s)': 96.3267817742375\r\n }\r\n ];\r\n expect(rows).to.deep.equal(expected);\r\n master.close();\r\n });\r\n\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeometryTestUtil.js","sourceRoot":"","sources":["../../../src/test/GeometryTestUtil.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EACI,SAAS,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACO,QAAQ,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAqB,IAAI,CAAC,KAAK,CAClD,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE;IAClE,QAAQ,EAAE,MAAM;CACjB,CAAC,CACH,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAgB,EAAE,MAA2B;IAC/E,gFAAgF;IAChF,MAAM,QAAQ,GAAoC;QAChD,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,4CAA4C;QAC/E,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;KACtD,CAAC;IAEF,MAAM,SAAS,GAAyB;QACtC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;KACtG,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport * as fs from \"fs\";\nimport {\n Point3d, Transform, YawPitchRollAngles,\n} from \"@itwin/core-geometry\";\nimport {\n BRepEntity, ColorDef,\n} from \"@itwin/core-common\";\nimport { IModelTestUtils } from \"./IModelTestUtils\";\n\nexport const brepData: { data: string } = JSON.parse(\n fs.readFileSync(IModelTestUtils.resolveAssetFile(\"brepdata1.json\"), {\n encoding: \"utf8\",\n }),\n);\n\nexport function createBRepDataProps(origin?: Point3d, angles?: YawPitchRollAngles): BRepEntity.DataProps {\n // This brep has a face symbology attribute attached to one face, make it green.\n const faceSymb: BRepEntity.FaceSymbologyProps[] = [\n { color: ColorDef.blue.toJSON() }, // base symbology should match appearance...\n { color: ColorDef.green.toJSON(), transparency: 0.5 },\n ];\n\n const brepProps: BRepEntity.DataProps = {\n data: brepData.data,\n faceSymbology: faceSymb,\n transform: Transform.createOriginAndMatrix(origin, angles ? angles.toMatrix3d() : undefined).toJSON(),\n };\n\n return brepProps;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GeometryTestUtil.js","sourceRoot":"","sources":["../../../src/test/GeometryTestUtil.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EACI,SAAS,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACO,QAAQ,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAqB,IAAI,CAAC,KAAK,CAClD,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE;IAClE,QAAQ,EAAE,MAAM;CACjB,CAAC,CACH,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAgB,EAAE,MAA2B;IAC/E,gFAAgF;IAChF,MAAM,QAAQ,GAAoC;QAChD,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,4CAA4C;QAC/E,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;KACtD,CAAC;IAEF,MAAM,SAAS,GAAyB;QACtC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;KACtG,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as fs from \"fs\";\r\nimport {\r\n Point3d, Transform, YawPitchRollAngles,\r\n} from \"@itwin/core-geometry\";\r\nimport {\r\n BRepEntity, ColorDef,\r\n} from \"@itwin/core-common\";\r\nimport { IModelTestUtils } from \"./IModelTestUtils\";\r\n\r\nexport const brepData: { data: string } = JSON.parse(\r\n fs.readFileSync(IModelTestUtils.resolveAssetFile(\"brepdata1.json\"), {\r\n encoding: \"utf8\",\r\n }),\r\n);\r\n\r\nexport function createBRepDataProps(origin?: Point3d, angles?: YawPitchRollAngles): BRepEntity.DataProps {\r\n // This brep has a face symbology attribute attached to one face, make it green.\r\n const faceSymb: BRepEntity.FaceSymbologyProps[] = [\r\n { color: ColorDef.blue.toJSON() }, // base symbology should match appearance...\r\n { color: ColorDef.green.toJSON(), transparency: 0.5 },\r\n ];\r\n\r\n const brepProps: BRepEntity.DataProps = {\r\n data: brepData.data,\r\n faceSymbology: faceSymb,\r\n transform: Transform.createOriginAndMatrix(origin, angles ? angles.toMatrix3d() : undefined).toJSON(),\r\n };\r\n\r\n return brepProps;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelHost.test.js","sourceRoot":"","sources":["../../../src/test/IModelHost.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { assert, expect } from \"chai\";\nimport * as path from \"path\";\nimport * as sinon from \"sinon\";\nimport { RpcRegistry } from \"@itwin/core-common\";\nimport { BriefcaseManager } from \"../BriefcaseManager\";\nimport { SnapshotDb } from \"../IModelDb\";\nimport { IModelHost, IModelHostOptions, KnownLocations } from \"../IModelHost\";\nimport { Schemas } from \"../Schema\";\nimport { KnownTestLocations } from \"./KnownTestLocations\";\nimport { AzureServerStorage, AzureServerStorageBindings, AzureServerStorageBindingsConfig } from \"@itwin/object-storage-azure\";\nimport { ServerStorage } from \"@itwin/object-storage-core\";\nimport { TestUtils } from \"./TestUtils\";\nimport { IModelTestUtils } from \"./IModelTestUtils\";\nimport { Logger, LogLevel } from \"@itwin/core-bentley\";\nimport { overrideSyncNativeLogLevels } from \"../internal/NativePlatform\";\nimport { _getHubAccess, _hubAccess } from \"../internal/Symbols\";\n\ndescribe(\"IModelHost\", () => {\n const opts = { cacheDir: TestUtils.getCacheDir() };\n beforeEach(async () => {\n await TestUtils.shutdownBackend();\n });\n\n afterEach(async () => {\n sinon.restore();\n });\n\n after(async () => {\n await TestUtils.startBackend();\n });\n\n it(\"valid default configuration\", async () => {\n await IModelHost.startup(opts);\n\n // Valid registered implemented RPCs\n expect(RpcRegistry.instance.implementationClasses.size).to.equal(4);\n expect(RpcRegistry.instance.implementationClasses.get(\"IModelReadRpcInterface\")).to.exist;\n expect(RpcRegistry.instance.implementationClasses.get(\"IModelTileRpcInterface\")).to.exist;\n expect(RpcRegistry.instance.implementationClasses.get(\"SnapshotIModelRpcInterface\")).to.exist;\n expect(RpcRegistry.instance.implementationClasses.get(\"DevToolsRpcInterface\")).to.exist;\n\n expect(Schemas.getRegisteredSchema(\"BisCore\")).to.exist;\n expect(Schemas.getRegisteredSchema(\"Generic\")).to.exist;\n expect(Schemas.getRegisteredSchema(\"Functional\")).to.exist;\n });\n\n it(\"should properly cleanup beforeExit event listeners on shutdown\", async () => {\n const beforeCount = process.listenerCount(\"beforeExit\");\n for (let i = 0; i <= 15; i++) {\n await IModelHost.startup();\n await IModelHost.shutdown();\n\n }\n const afterCount = process.listenerCount(\"beforeExit\");\n expect(beforeCount).to.be.equal(afterCount);\n });\n\n it(\"should call logger sync function\", async () => {\n let nSyncCalls = 0;\n overrideSyncNativeLogLevels(() => ++nSyncCalls);\n await IModelHost.startup(opts);\n expect(nSyncCalls).to.equal(0);\n Logger.setLevel(\"test-cat\", LogLevel.Warning);\n expect(nSyncCalls).to.equal(1);\n overrideSyncNativeLogLevels(undefined);\n });\n\n it(\"should raise onAfterStartup events\", async () => {\n const eventHandler = sinon.spy();\n IModelHost.onAfterStartup.addOnce(eventHandler);\n await IModelHost.startup(opts);\n expect(eventHandler.calledOnce).to.be.true;\n });\n\n it(\"should raise onBeforeShutdown events\", async () => {\n await TestUtils.startBackend();\n const eventHandler = sinon.spy();\n IModelHost.onBeforeShutdown.addOnce(eventHandler);\n const filename = IModelTestUtils.resolveAssetFile(\"GetSetAutoHandledStructProperties.bim\");\n\n const workspaceClose = sinon.spy((IModelHost.appWorkspace as any), \"close\");\n const saveSettings = IModelHost.appWorkspace.settings as any;\n const settingClose = sinon.spy(saveSettings, \"close\");\n expect(workspaceClose.callCount).eq(0);\n expect(settingClose.callCount).eq(0);\n expect(saveSettings._remove).to.not.be.undefined;\n\n // shutdown should close any opened iModels. Make sure that happens\n const imodel1 = SnapshotDb.openFile(filename, { key: \"imodel1\" });\n const imodel2 = SnapshotDb.openFile(filename, { key: \"imodel2\" });\n const imodel3 = SnapshotDb.openFile(filename, { key: \"imodel3\" });\n const imodel4 = SnapshotDb.openFile(filename, { key: \"imodel4\" });\n assert.notEqual(imodel1, imodel2);\n assert.notEqual(imodel2, imodel3);\n expect(imodel1.isOpen).to.be.true;\n expect(imodel2.isOpen).to.be.true;\n expect(imodel3.isOpen).to.be.true;\n imodel4.close(); // make sure it gets removed so we don't try to close it again on shutdown\n await TestUtils.shutdownBackend();\n expect(eventHandler.calledOnce).to.be.true;\n assert.isFalse(imodel1.isOpen, \"shutdown should close iModel1\");\n assert.isFalse(imodel2.isOpen, \"shutdown should close iModel2\");\n assert.isFalse(imodel3.isOpen, \"shutdown should close iModel3\");\n expect(workspaceClose.callCount).eq(1);\n expect(settingClose.callCount).eq(1);\n expect(saveSettings._remove).to.be.undefined;\n });\n\n it(\"should auto-shutdown on process beforeExit event\", async () => {\n await TestUtils.startBackend();\n expect(IModelHost.isValid).to.be.true;\n const eventHandler = sinon.spy();\n IModelHost.onBeforeShutdown.addOnce(eventHandler);\n process.emit(\"beforeExit\", 0);\n await new Promise((resolve) => setImmediate(resolve));\n expect(eventHandler.calledOnce).to.be.true;\n expect(IModelHost.isValid).to.be.false;\n });\n\n it(\"should set the briefcase cache directory to expected locations\", async () => {\n const config: IModelHostOptions = {};\n const cacheSubDir = \"imodels\";\n\n // Test cache default location\n await IModelHost.shutdown();\n await IModelHost.startup(config);\n let expectedDir = path.join(IModelHost.cacheDir, cacheSubDir);\n assert.strictEqual(expectedDir, BriefcaseManager.cacheDir);\n\n // Test custom cache location\n await IModelHost.shutdown();\n config.cacheDir = KnownLocations.tmpdir;\n await IModelHost.startup(config);\n expectedDir = path.join(KnownLocations.tmpdir, cacheSubDir);\n assert.strictEqual(expectedDir, BriefcaseManager.cacheDir);\n });\n\n it(\"should set Azure cloud storage provider for tile cache given credentials\", async () => {\n const config: IModelHostOptions = {};\n config.tileCacheAzureCredentials = {\n account: \"testAccount\",\n accessKey: \"testAccessKey\",\n };\n\n const storageStub = sinon.createStubInstance(AzureServerStorage) as sinon.SinonStubbedInstance<AzureServerStorage> & AzureServerStorage; // I guess Sinon type definitions don't work well with overloads\n const registerStub = sinon.stub(AzureServerStorageBindings.prototype, \"register\").callsFake((container) => {\n container.bind(ServerStorage).toConstantValue(storageStub);\n });\n\n await IModelHost.startup(config);\n\n assert.isDefined(IModelHost.tileStorage);\n assert.equal(IModelHost.tileStorage!.storage, storageStub);\n assert.isTrue(registerStub.calledOnce);\n assert.equal((registerStub.firstCall.lastArg as AzureServerStorageBindingsConfig).accountName, config.tileCacheAzureCredentials.account);\n assert.equal((registerStub.firstCall.lastArg as AzureServerStorageBindingsConfig).accountKey, config.tileCacheAzureCredentials.accessKey);\n assert.equal((registerStub.firstCall.lastArg as AzureServerStorageBindingsConfig).baseUrl, `https://${config.tileCacheAzureCredentials.account}.blob.core.windows.net`);\n });\n\n it(\"should set custom cloud storage provider for tile cache\", async () => {\n const config: IModelHostOptions = {};\n config.tileCacheStorage = {} as ServerStorage;\n\n await IModelHost.startup(config);\n\n assert.isDefined(IModelHost.tileStorage);\n assert.equal(IModelHost.tileStorage!.storage, config.tileCacheStorage);\n });\n\n it(\"should throw if both tileCacheStorage and tileCacheAzureCredentials are set\", async () => {\n const config: IModelHostOptions = {};\n config.tileCacheAzureCredentials = {\n account: \"testAccount\",\n accessKey: \"testAccessKey\",\n };\n config.tileCacheStorage = {} as ServerStorage;\n\n await expect(IModelHost.startup(config)).to.be.rejectedWith(\"Cannot use both Azure and custom cloud storage providers for tile cache.\");\n });\n\n it(\"should use local cache if cloud storage provider for tile cache is not set\", async () => {\n await IModelHost.startup(opts);\n\n assert.isUndefined(IModelHost.tileStorage);\n });\n\n it(\"should cleanup tileStorage on shutdown\", async () => {\n const config: IModelHostOptions = {};\n config.tileCacheStorage = {} as ServerStorage;\n\n await IModelHost.startup(config);\n\n assert.equal(IModelHost.tileStorage?.storage, config.tileCacheStorage);\n\n await IModelHost.shutdown();\n\n assert.isUndefined(IModelHost.tileStorage);\n });\n\n it(\"should throw if hubAccess is undefined and getter is called\", async () => {\n await IModelHost.startup(opts);\n expect(IModelHost[_getHubAccess]()).undefined;\n expect(() => IModelHost[_hubAccess]).throws();\n });\n\n it(\"computeSchemaChecksum\", () => {\n const assetsDir = path.join(KnownTestLocations.assetsDir, \"ECSchemaOps\");\n const schemaXmlPath = path.join(assetsDir, \"SchemaA.ecschema.xml\");\n let referencePaths = [assetsDir];\n let sha1 = IModelHost.computeSchemaChecksum({ schemaXmlPath, referencePaths });\n expect(sha1).equal(\"3ac6578060902aa0b8426b61d62045fdf7fa0b2b\");\n\n expect(() => IModelHost.computeSchemaChecksum({ schemaXmlPath, referencePaths, exactMatch: true })).throws(\"Failed to read schema SchemaA.ecschema\");\n\n referencePaths = [path.join(assetsDir, \"exact-match\")];\n sha1 = IModelHost.computeSchemaChecksum({ schemaXmlPath, referencePaths, exactMatch: true });\n expect(sha1).equal(\"2a618664fbba1df7c05f27d7c0e8f58de250003b\");\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"IModelHost.test.js","sourceRoot":"","sources":["../../../src/test/IModelHost.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { assert, expect } from \"chai\";\r\nimport * as path from \"path\";\r\nimport * as sinon from \"sinon\";\r\nimport { RpcRegistry } from \"@itwin/core-common\";\r\nimport { BriefcaseManager } from \"../BriefcaseManager\";\r\nimport { SnapshotDb } from \"../IModelDb\";\r\nimport { IModelHost, IModelHostOptions, KnownLocations } from \"../IModelHost\";\r\nimport { Schemas } from \"../Schema\";\r\nimport { KnownTestLocations } from \"./KnownTestLocations\";\r\nimport { AzureServerStorage, AzureServerStorageBindings, AzureServerStorageBindingsConfig } from \"@itwin/object-storage-azure\";\r\nimport { ServerStorage } from \"@itwin/object-storage-core\";\r\nimport { TestUtils } from \"./TestUtils\";\r\nimport { IModelTestUtils } from \"./IModelTestUtils\";\r\nimport { Logger, LogLevel } from \"@itwin/core-bentley\";\r\nimport { overrideSyncNativeLogLevels } from \"../internal/NativePlatform\";\r\nimport { _getHubAccess, _hubAccess } from \"../internal/Symbols\";\r\n\r\ndescribe(\"IModelHost\", () => {\r\n const opts = { cacheDir: TestUtils.getCacheDir() };\r\n beforeEach(async () => {\r\n await TestUtils.shutdownBackend();\r\n });\r\n\r\n afterEach(async () => {\r\n sinon.restore();\r\n });\r\n\r\n after(async () => {\r\n await TestUtils.startBackend();\r\n });\r\n\r\n it(\"valid default configuration\", async () => {\r\n await IModelHost.startup(opts);\r\n\r\n // Valid registered implemented RPCs\r\n expect(RpcRegistry.instance.implementationClasses.size).to.equal(4);\r\n expect(RpcRegistry.instance.implementationClasses.get(\"IModelReadRpcInterface\")).to.exist;\r\n expect(RpcRegistry.instance.implementationClasses.get(\"IModelTileRpcInterface\")).to.exist;\r\n expect(RpcRegistry.instance.implementationClasses.get(\"SnapshotIModelRpcInterface\")).to.exist;\r\n expect(RpcRegistry.instance.implementationClasses.get(\"DevToolsRpcInterface\")).to.exist;\r\n\r\n expect(Schemas.getRegisteredSchema(\"BisCore\")).to.exist;\r\n expect(Schemas.getRegisteredSchema(\"Generic\")).to.exist;\r\n expect(Schemas.getRegisteredSchema(\"Functional\")).to.exist;\r\n });\r\n\r\n it(\"should properly cleanup beforeExit event listeners on shutdown\", async () => {\r\n const beforeCount = process.listenerCount(\"beforeExit\");\r\n for (let i = 0; i <= 15; i++) {\r\n await IModelHost.startup();\r\n await IModelHost.shutdown();\r\n\r\n }\r\n const afterCount = process.listenerCount(\"beforeExit\");\r\n expect(beforeCount).to.be.equal(afterCount);\r\n });\r\n\r\n it(\"should call logger sync function\", async () => {\r\n let nSyncCalls = 0;\r\n overrideSyncNativeLogLevels(() => ++nSyncCalls);\r\n await IModelHost.startup(opts);\r\n expect(nSyncCalls).to.equal(0);\r\n Logger.setLevel(\"test-cat\", LogLevel.Warning);\r\n expect(nSyncCalls).to.equal(1);\r\n overrideSyncNativeLogLevels(undefined);\r\n });\r\n\r\n it(\"should raise onAfterStartup events\", async () => {\r\n const eventHandler = sinon.spy();\r\n IModelHost.onAfterStartup.addOnce(eventHandler);\r\n await IModelHost.startup(opts);\r\n expect(eventHandler.calledOnce).to.be.true;\r\n });\r\n\r\n it(\"should raise onBeforeShutdown events\", async () => {\r\n await TestUtils.startBackend();\r\n const eventHandler = sinon.spy();\r\n IModelHost.onBeforeShutdown.addOnce(eventHandler);\r\n const filename = IModelTestUtils.resolveAssetFile(\"GetSetAutoHandledStructProperties.bim\");\r\n\r\n const workspaceClose = sinon.spy((IModelHost.appWorkspace as any), \"close\");\r\n const saveSettings = IModelHost.appWorkspace.settings as any;\r\n const settingClose = sinon.spy(saveSettings, \"close\");\r\n expect(workspaceClose.callCount).eq(0);\r\n expect(settingClose.callCount).eq(0);\r\n expect(saveSettings._remove).to.not.be.undefined;\r\n\r\n // shutdown should close any opened iModels. Make sure that happens\r\n const imodel1 = SnapshotDb.openFile(filename, { key: \"imodel1\" });\r\n const imodel2 = SnapshotDb.openFile(filename, { key: \"imodel2\" });\r\n const imodel3 = SnapshotDb.openFile(filename, { key: \"imodel3\" });\r\n const imodel4 = SnapshotDb.openFile(filename, { key: \"imodel4\" });\r\n assert.notEqual(imodel1, imodel2);\r\n assert.notEqual(imodel2, imodel3);\r\n expect(imodel1.isOpen).to.be.true;\r\n expect(imodel2.isOpen).to.be.true;\r\n expect(imodel3.isOpen).to.be.true;\r\n imodel4.close(); // make sure it gets removed so we don't try to close it again on shutdown\r\n await TestUtils.shutdownBackend();\r\n expect(eventHandler.calledOnce).to.be.true;\r\n assert.isFalse(imodel1.isOpen, \"shutdown should close iModel1\");\r\n assert.isFalse(imodel2.isOpen, \"shutdown should close iModel2\");\r\n assert.isFalse(imodel3.isOpen, \"shutdown should close iModel3\");\r\n expect(workspaceClose.callCount).eq(1);\r\n expect(settingClose.callCount).eq(1);\r\n expect(saveSettings._remove).to.be.undefined;\r\n });\r\n\r\n it(\"should auto-shutdown on process beforeExit event\", async () => {\r\n await TestUtils.startBackend();\r\n expect(IModelHost.isValid).to.be.true;\r\n const eventHandler = sinon.spy();\r\n IModelHost.onBeforeShutdown.addOnce(eventHandler);\r\n process.emit(\"beforeExit\", 0);\r\n await new Promise((resolve) => setImmediate(resolve));\r\n expect(eventHandler.calledOnce).to.be.true;\r\n expect(IModelHost.isValid).to.be.false;\r\n });\r\n\r\n it(\"should set the briefcase cache directory to expected locations\", async () => {\r\n const config: IModelHostOptions = {};\r\n const cacheSubDir = \"imodels\";\r\n\r\n // Test cache default location\r\n await IModelHost.shutdown();\r\n await IModelHost.startup(config);\r\n let expectedDir = path.join(IModelHost.cacheDir, cacheSubDir);\r\n assert.strictEqual(expectedDir, BriefcaseManager.cacheDir);\r\n\r\n // Test custom cache location\r\n await IModelHost.shutdown();\r\n config.cacheDir = KnownLocations.tmpdir;\r\n await IModelHost.startup(config);\r\n expectedDir = path.join(KnownLocations.tmpdir, cacheSubDir);\r\n assert.strictEqual(expectedDir, BriefcaseManager.cacheDir);\r\n });\r\n\r\n it(\"should set Azure cloud storage provider for tile cache given credentials\", async () => {\r\n const config: IModelHostOptions = {};\r\n config.tileCacheAzureCredentials = {\r\n account: \"testAccount\",\r\n accessKey: \"testAccessKey\",\r\n };\r\n\r\n const storageStub = sinon.createStubInstance(AzureServerStorage) as sinon.SinonStubbedInstance<AzureServerStorage> & AzureServerStorage; // I guess Sinon type definitions don't work well with overloads\r\n const registerStub = sinon.stub(AzureServerStorageBindings.prototype, \"register\").callsFake((container) => {\r\n container.bind(ServerStorage).toConstantValue(storageStub);\r\n });\r\n\r\n await IModelHost.startup(config);\r\n\r\n assert.isDefined(IModelHost.tileStorage);\r\n assert.equal(IModelHost.tileStorage!.storage, storageStub);\r\n assert.isTrue(registerStub.calledOnce);\r\n assert.equal((registerStub.firstCall.lastArg as AzureServerStorageBindingsConfig).accountName, config.tileCacheAzureCredentials.account);\r\n assert.equal((registerStub.firstCall.lastArg as AzureServerStorageBindingsConfig).accountKey, config.tileCacheAzureCredentials.accessKey);\r\n assert.equal((registerStub.firstCall.lastArg as AzureServerStorageBindingsConfig).baseUrl, `https://${config.tileCacheAzureCredentials.account}.blob.core.windows.net`);\r\n });\r\n\r\n it(\"should set custom cloud storage provider for tile cache\", async () => {\r\n const config: IModelHostOptions = {};\r\n config.tileCacheStorage = {} as ServerStorage;\r\n\r\n await IModelHost.startup(config);\r\n\r\n assert.isDefined(IModelHost.tileStorage);\r\n assert.equal(IModelHost.tileStorage!.storage, config.tileCacheStorage);\r\n });\r\n\r\n it(\"should throw if both tileCacheStorage and tileCacheAzureCredentials are set\", async () => {\r\n const config: IModelHostOptions = {};\r\n config.tileCacheAzureCredentials = {\r\n account: \"testAccount\",\r\n accessKey: \"testAccessKey\",\r\n };\r\n config.tileCacheStorage = {} as ServerStorage;\r\n\r\n await expect(IModelHost.startup(config)).to.be.rejectedWith(\"Cannot use both Azure and custom cloud storage providers for tile cache.\");\r\n });\r\n\r\n it(\"should use local cache if cloud storage provider for tile cache is not set\", async () => {\r\n await IModelHost.startup(opts);\r\n\r\n assert.isUndefined(IModelHost.tileStorage);\r\n });\r\n\r\n it(\"should cleanup tileStorage on shutdown\", async () => {\r\n const config: IModelHostOptions = {};\r\n config.tileCacheStorage = {} as ServerStorage;\r\n\r\n await IModelHost.startup(config);\r\n\r\n assert.equal(IModelHost.tileStorage?.storage, config.tileCacheStorage);\r\n\r\n await IModelHost.shutdown();\r\n\r\n assert.isUndefined(IModelHost.tileStorage);\r\n });\r\n\r\n it(\"should throw if hubAccess is undefined and getter is called\", async () => {\r\n await IModelHost.startup(opts);\r\n expect(IModelHost[_getHubAccess]()).undefined;\r\n expect(() => IModelHost[_hubAccess]).throws();\r\n });\r\n\r\n it(\"computeSchemaChecksum\", () => {\r\n const assetsDir = path.join(KnownTestLocations.assetsDir, \"ECSchemaOps\");\r\n const schemaXmlPath = path.join(assetsDir, \"SchemaA.ecschema.xml\");\r\n let referencePaths = [assetsDir];\r\n let sha1 = IModelHost.computeSchemaChecksum({ schemaXmlPath, referencePaths });\r\n expect(sha1).equal(\"3ac6578060902aa0b8426b61d62045fdf7fa0b2b\");\r\n\r\n expect(() => IModelHost.computeSchemaChecksum({ schemaXmlPath, referencePaths, exactMatch: true })).throws(\"Failed to read schema SchemaA.ecschema\");\r\n\r\n referencePaths = [path.join(assetsDir, \"exact-match\")];\r\n sha1 = IModelHost.computeSchemaChecksum({ schemaXmlPath, referencePaths, exactMatch: true });\r\n expect(sha1).equal(\"2a618664fbba1df7c05f27d7c0e8f58de250003b\");\r\n });\r\n});\r\n"]}
|
|
@@ -2,11 +2,12 @@ import { AccessToken, BeEvent, GuidString, Id64String, OpenMode } from "@itwin/c
|
|
|
2
2
|
import { ChangesetIdWithIndex, Code, CodeProps, ColorDef, GeometryStreamProps, IModelVersionProps, LocalFileName, PhysicalElementProps, RelatedElement, RequestNewBriefcaseProps } from "@itwin/core-common";
|
|
3
3
|
import { Point2d, Point3d } from "@itwin/core-geometry";
|
|
4
4
|
import { RequestNewBriefcaseArg } from "../BriefcaseManager";
|
|
5
|
+
import { CheckpointProps, DownloadRequest } from "../CheckpointManager";
|
|
5
6
|
import { BriefcaseDb, Element, IModelDb, Model, SnapshotDb } from "../core-backend";
|
|
6
7
|
import { PhysicalElement, Subject } from "../Element";
|
|
7
8
|
import { ElementDrivesElement, RelationshipProps } from "../Relationship";
|
|
8
9
|
import { Schema } from "../Schema";
|
|
9
|
-
import { HubMock } from "../HubMock";
|
|
10
|
+
import { HubMock } from "../internal/HubMock";
|
|
10
11
|
import { BackendHubAccess } from "../BackendHubAccess";
|
|
11
12
|
export interface IModelTestUtilsOpenOptions {
|
|
12
13
|
copyFilename?: string;
|
|
@@ -71,7 +72,7 @@ export declare class HubWrappers {
|
|
|
71
72
|
accessToken: AccessToken;
|
|
72
73
|
deleteFirst?: boolean;
|
|
73
74
|
}): Promise<BriefcaseDb>;
|
|
74
|
-
/** Downloads and opens a
|
|
75
|
+
/** Downloads a checkpoint and opens it as a SnapShotDb */
|
|
75
76
|
static downloadAndOpenCheckpoint(args: {
|
|
76
77
|
accessToken: AccessToken;
|
|
77
78
|
iTwinId: GuidString;
|
|
@@ -96,6 +97,9 @@ export declare class IModelTestUtils {
|
|
|
96
97
|
};
|
|
97
98
|
/** Generate a name for an iModel that's unique using the baseName provided and appending a new GUID. */
|
|
98
99
|
static generateUniqueName(baseName: string): string;
|
|
100
|
+
static openCheckpoint(fileName: LocalFileName, checkpoint: CheckpointProps): SnapshotDb;
|
|
101
|
+
/** try to open an existing local file to satisfy a download request */
|
|
102
|
+
static tryOpenLocalFile(request: DownloadRequest): SnapshotDb | undefined;
|
|
99
103
|
/** Prepare for an output file by:
|
|
100
104
|
* - Resolving the output file name under the known test output directory
|
|
101
105
|
* - Making directories as necessary
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelTestUtils.d.ts","sourceRoot":"","sources":["../../../src/test/IModelTestUtils.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAkB,UAAU,EAAQ,UAAU,EAAsB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvI,OAAO,EACuC,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAA2B,QAAQ,EAEpH,mBAAmB,EAAiF,kBAAkB,EAAE,aAAa,EACrI,oBAAoB,EAA0B,cAAc,EAAuB,wBAAwB,EAE5G,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAA2B,OAAO,EAAE,OAAO,EAAqE,MAAM,sBAAsB,CAAC;AACpJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"IModelTestUtils.d.ts","sourceRoot":"","sources":["../../../src/test/IModelTestUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import * as path from "path";
|
|
|
10
10
|
import { BeEvent, DbResult, Guid, Id64, IModelStatus, omit } from "@itwin/core-bentley";
|
|
11
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
12
|
import { Box, Cone, LineString3d, Point2d, Point3d, Range2d, Range3d, StandardViewIndex, Vector3d, YawPitchRollAngles } from "@itwin/core-geometry";
|
|
13
|
-
import { V2CheckpointManager } from "../CheckpointManager";
|
|
13
|
+
import { CheckpointManager, V2CheckpointManager } from "../CheckpointManager";
|
|
14
14
|
import { ClassRegistry } from "../ClassRegistry";
|
|
15
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
16
|
import { DefinitionPartition, Drawing, DrawingGraphic, GeometryPart, LinkElement, PhysicalElement, RepositoryLink, Subject } from "../Element";
|
|
@@ -18,9 +18,9 @@ import { DefinitionModel, DocumentListModel, DrawingModel, InformationRecordMode
|
|
|
18
18
|
import { DrawingGraphicRepresentsElement, ElementDrivesElement } from "../Relationship";
|
|
19
19
|
import { RpcBriefcaseUtility } from "../rpc-impl/RpcBriefcaseUtility";
|
|
20
20
|
import { Schema, Schemas } from "../Schema";
|
|
21
|
-
import { HubMock } from "../HubMock";
|
|
21
|
+
import { HubMock } from "../internal/HubMock";
|
|
22
22
|
import { KnownTestLocations } from "./KnownTestLocations";
|
|
23
|
-
import {
|
|
23
|
+
import { _hubAccess } from "../internal/Symbols";
|
|
24
24
|
chai.use(chaiAsPromised);
|
|
25
25
|
/* eslint-disable @typescript-eslint/explicit-member-accessibility */
|
|
26
26
|
RpcConfiguration.developmentMode = true;
|
|
@@ -136,7 +136,7 @@ export class HubWrappers {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
/** Downloads and opens a
|
|
139
|
+
/** Downloads a checkpoint and opens it as a SnapShotDb */
|
|
140
140
|
static async downloadAndOpenCheckpoint(args) {
|
|
141
141
|
if (undefined === args.asOf)
|
|
142
142
|
args.asOf = IModelVersion.latest().toJSON();
|
|
@@ -147,8 +147,17 @@ export class HubWrappers {
|
|
|
147
147
|
changeset: (await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId })),
|
|
148
148
|
};
|
|
149
149
|
const folder = path.join(V2CheckpointManager.getFolder(), checkpoint.iModelId);
|
|
150
|
-
const filename = path.join(folder, `${checkpoint.changeset.id
|
|
151
|
-
|
|
150
|
+
const filename = path.join(folder, `${checkpoint.changeset.id === "" ? "first" : checkpoint.changeset.id}.bim`);
|
|
151
|
+
const request = { checkpoint, localFile: filename };
|
|
152
|
+
let db = SnapshotDb.tryFindByKey(CheckpointManager.getKey(request.checkpoint));
|
|
153
|
+
if (undefined !== db)
|
|
154
|
+
return db;
|
|
155
|
+
db = IModelTestUtils.tryOpenLocalFile(request);
|
|
156
|
+
if (db)
|
|
157
|
+
return db;
|
|
158
|
+
await V2CheckpointManager.downloadCheckpoint(request);
|
|
159
|
+
await CheckpointManager.updateToRequestedVersion(request);
|
|
160
|
+
return IModelTestUtils.openCheckpoint(request.localFile, request.checkpoint);
|
|
152
161
|
}
|
|
153
162
|
/** 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. */
|
|
154
163
|
static async openCheckpointUsingRpc(args) {
|
|
@@ -211,6 +220,18 @@ export class IModelTestUtils {
|
|
|
211
220
|
static generateUniqueName(baseName) {
|
|
212
221
|
return `${baseName} - ${Guid.createValue()}`;
|
|
213
222
|
}
|
|
223
|
+
static openCheckpoint(fileName, checkpoint) {
|
|
224
|
+
const snapshot = SnapshotDb.openFile(fileName, { key: CheckpointManager.getKey(checkpoint) });
|
|
225
|
+
snapshot._iTwinId = checkpoint.iTwinId;
|
|
226
|
+
return snapshot;
|
|
227
|
+
}
|
|
228
|
+
/** try to open an existing local file to satisfy a download request */
|
|
229
|
+
static tryOpenLocalFile(request) {
|
|
230
|
+
const checkpoint = request.checkpoint;
|
|
231
|
+
if (CheckpointManager.verifyCheckpoint(checkpoint, request.localFile))
|
|
232
|
+
return this.openCheckpoint(request.localFile, checkpoint);
|
|
233
|
+
return undefined;
|
|
234
|
+
}
|
|
214
235
|
/** Prepare for an output file by:
|
|
215
236
|
* - Resolving the output file name under the known test output directory
|
|
216
237
|
* - Making directories as necessary
|
|
@@ -393,6 +414,7 @@ export class IModelTestUtils {
|
|
|
393
414
|
}
|
|
394
415
|
}
|
|
395
416
|
static executeQuery(db, ecsql, bindings) {
|
|
417
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
396
418
|
return db.withPreparedStatement(ecsql, (stmt) => {
|
|
397
419
|
if (bindings)
|
|
398
420
|
stmt.bindValues(bindings);
|
|
@@ -508,12 +530,14 @@ export class IModelTestUtils {
|
|
|
508
530
|
return Texture.insertTexture(iModelDb, modelId, textureName, ImageSourceFormat.Png, textureData, `Description for ${textureName}`);
|
|
509
531
|
}
|
|
510
532
|
static queryByUserLabel(iModelDb, userLabel) {
|
|
533
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
511
534
|
return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE UserLabel=:userLabel`, (statement) => {
|
|
512
535
|
statement.bindString("userLabel", userLabel);
|
|
513
536
|
return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;
|
|
514
537
|
});
|
|
515
538
|
}
|
|
516
539
|
static queryByCodeValue(iModelDb, codeValue) {
|
|
540
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
517
541
|
return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE CodeValue=:codeValue`, (statement) => {
|
|
518
542
|
statement.bindString("codeValue", codeValue);
|
|
519
543
|
return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;
|
|
@@ -548,6 +572,7 @@ export class IModelTestUtils {
|
|
|
548
572
|
}
|
|
549
573
|
IModelJsFs.appendFileSync(outputFileName, `${iModelDb.pathName}\n`);
|
|
550
574
|
IModelJsFs.appendFileSync(outputFileName, "\n=== CodeSpecs ===\n");
|
|
575
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
551
576
|
iModelDb.withPreparedStatement(`SELECT ECInstanceId,Name FROM BisCore:CodeSpec ORDER BY ECInstanceId`, (statement) => {
|
|
552
577
|
while (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
553
578
|
const codeSpecId = statement.getValue(0).getId();
|
|
@@ -556,6 +581,7 @@ export class IModelTestUtils {
|
|
|
556
581
|
}
|
|
557
582
|
});
|
|
558
583
|
IModelJsFs.appendFileSync(outputFileName, "\n=== Schemas ===\n");
|
|
584
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
559
585
|
iModelDb.withPreparedStatement(`SELECT Name FROM ECDbMeta.ECSchemaDef ORDER BY ECInstanceId`, (statement) => {
|
|
560
586
|
while (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
561
587
|
const schemaName = statement.getValue(0).getString();
|
|
@@ -563,6 +589,7 @@ export class IModelTestUtils {
|
|
|
563
589
|
}
|
|
564
590
|
});
|
|
565
591
|
IModelJsFs.appendFileSync(outputFileName, "\n=== Models ===\n");
|
|
592
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
566
593
|
iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Model.classFullName} ORDER BY ECInstanceId`, (statement) => {
|
|
567
594
|
while (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
568
595
|
const modelId = statement.getValue(0).getId();
|
|
@@ -571,6 +598,7 @@ export class IModelTestUtils {
|
|
|
571
598
|
}
|
|
572
599
|
});
|
|
573
600
|
IModelJsFs.appendFileSync(outputFileName, "\n=== ViewDefinitions ===\n");
|
|
601
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
574
602
|
iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${ViewDefinition.classFullName} ORDER BY ECInstanceId`, (statement) => {
|
|
575
603
|
while (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
576
604
|
const viewDefinitionId = statement.getValue(0).getId();
|
|
@@ -579,18 +607,21 @@ export class IModelTestUtils {
|
|
|
579
607
|
}
|
|
580
608
|
});
|
|
581
609
|
IModelJsFs.appendFileSync(outputFileName, "\n=== Elements ===\n");
|
|
610
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
582
611
|
iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${Element.classFullName}`, (statement) => {
|
|
583
612
|
if (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
584
613
|
const count = statement.getValue(0).getInteger();
|
|
585
614
|
IModelJsFs.appendFileSync(outputFileName, `Count of ${Element.classFullName}=${count}\n`);
|
|
586
615
|
}
|
|
587
616
|
});
|
|
617
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
588
618
|
iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${PhysicalObject.classFullName}`, (statement) => {
|
|
589
619
|
if (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
590
620
|
const count = statement.getValue(0).getInteger();
|
|
591
621
|
IModelJsFs.appendFileSync(outputFileName, `Count of ${PhysicalObject.classFullName}=${count}\n`);
|
|
592
622
|
}
|
|
593
623
|
});
|
|
624
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
594
625
|
iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${GeometryPart.classFullName}`, (statement) => {
|
|
595
626
|
if (DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
596
627
|
const count = statement.getValue(0).getInteger();
|