@itwin/core-backend 5.4.0-dev.7 → 5.4.1
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 +53 -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.js.map +1 -1
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +248 -248
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +5 -5
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.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.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.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.map +1 -1
- package/lib/cjs/IModelDb.js +20 -17
- 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 +11 -0
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +6 -0
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.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.d.ts +1 -0
- package/lib/cjs/LocalhostIpcHost.d.ts.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js +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.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.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js.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/StashManager.js.map +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +16 -4
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +25 -3
- 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.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
- package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
- package/lib/cjs/core-backend.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.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/FontFileImpl.js.map +1 -1
- package/lib/cjs/internal/HubMock.js.map +1 -1
- 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.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.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.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.js.map +1 -1
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +2 -2
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +248 -248
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChannelControl.js.map +1 -1
- package/lib/esm/CheckpointManager.js.map +1 -1
- package/lib/esm/ClassRegistry.js +5 -5
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.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.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/ExternalSource.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.map +1 -1
- package/lib/esm/IModelDb.js +20 -17
- 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 +11 -0
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +6 -0
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.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.d.ts +1 -0
- package/lib/esm/LocalhostIpcHost.d.ts.map +1 -1
- package/lib/esm/LocalhostIpcHost.js +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.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.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SchemaSync.js.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/StashManager.js.map +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +16 -4
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +25 -3
- 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.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.js.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
- package/lib/esm/core-backend.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.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/FontFileImpl.js.map +1 -1
- package/lib/esm/internal/HubMock.js.map +1 -1
- 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.js.map +1 -1
- package/lib/esm/internal/annotations/fields.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/esm/rpc/multipart.js.map +1 -1
- package/lib/esm/rpc/tracing.js.map +1 -1
- package/lib/esm/rpc/web/logging.js.map +1 -1
- package/lib/esm/rpc/web/request.js.map +1 -1
- package/lib/esm/rpc/web/response.js.map +1 -1
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AdvancedEqual.js.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.js +23 -23
- package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
- package/lib/esm/test/IpcHost.test.js.map +1 -1
- package/lib/esm/test/KnownTestLocations.js.map +1 -1
- package/lib/esm/test/PrintElementTree.js.map +1 -1
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/RevisionUtility.js.map +1 -1
- package/lib/esm/test/SchemaUtils.test.js +25 -25
- package/lib/esm/test/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.js +53 -53
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js.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/ConcurrentQuery.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +72 -72
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
- package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- 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 +21 -21
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.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 +139 -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/ProjectInformationRecord.test.js.map +1 -1
- package/lib/esm/test/element/SheetInformationAspect.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.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +132 -34
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/Rebase.test.js +197 -41
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- package/lib/esm/test/imageData.js.map +1 -1
- package/lib/esm/test/imodel/Code.test.js +369 -248
- package/lib/esm/test/imodel/Code.test.js.map +1 -1
- 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 +47 -44
- 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/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +27 -8
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +4 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +14 -4
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.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 +99 -99
- 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.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 +24 -0
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +124 -124
- 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 +14 -14
- 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.map +1 -1
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
- 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.map +1 -1
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
- 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.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.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.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.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DgnDbWorker.test.js","sourceRoot":"","sources":["../../../../src/test/native/DgnDbWorker.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 { assert, expect } from \"chai\";\nimport { BeDuration } from \"@itwin/core-bentley\";\nimport { Matrix4d } from \"@itwin/core-geometry\";\nimport { IModelNative } from \"../../internal/NativePlatform\";\nimport { StandaloneDb } from \"../../IModelDb\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { IModelJsNative } from \"@bentley/imodeljs-native\";\nimport { _nativeDb } from \"../../internal/Symbols\";\n\ndescribe(\"DgnDbWorker\", () => {\n let imodel: StandaloneDb;\n\n function openIModel(): void {\n const rootSubject = { name: \"DgnDbWorker tests\", description: \"DgnDbWorker tests\" };\n imodel = StandaloneDb.createEmpty(IModelTestUtils.prepareOutputFile(\"DgnDbWorker\", \"DgnDbWorker.bim\"), { rootSubject });\n }\n\n before(() => {\n openIModel();\n });\n\n after(() => {\n imodel.close();\n });\n\n class Worker {\n public promise: Promise<void> | undefined;\n private readonly _worker: IModelJsNative.TestWorker;\n\n public constructor() {\n this._worker = new IModelNative.platform.TestWorker(imodel[_nativeDb]);\n }\n\n public queue() { this.promise = this._worker.queue(); }\n public cancel() { this._worker.cancel(); }\n public setReady() { this._worker.setReady(); }\n public setThrow() { this._worker.setThrow(); }\n\n public get isCanceled(): boolean { return this._worker.isCanceled(); }\n public get wasExecuted(): boolean { return this._worker.wasExecuted(); }\n public get state(): IModelJsNative.TestWorkerState { return this._worker.getState(); }\n\n public get wasQueued() { return IModelJsNative.TestWorkerState.NotQueued !== this.state; }\n public get isQueued() { return IModelJsNative.TestWorkerState.Queued === this.state; }\n public get isRunning() { return IModelJsNative.TestWorkerState.Running === this.state; }\n public get isError() { return IModelJsNative.TestWorkerState.Error === this.state; }\n public get isOk() { return IModelJsNative.TestWorkerState.Ok === this.state; }\n public get isSkipped() { return IModelJsNative.TestWorkerState.Skipped === this.state; }\n public get isAborted() { return IModelJsNative.TestWorkerState.Aborted === this.state; }\n }\n\n async function waitUntil(condition: () => boolean): Promise<void> {\n if (condition())\n return;\n\n await new Promise<void>((resolve: any) => setTimeout(resolve, 100));\n return waitUntil(condition);\n }\n\n it(\"executes asynchronously\", async () => {\n const worker = new Worker();\n await BeDuration.wait(1000);\n expect(worker.wasQueued).to.be.false;\n expect(worker.isCanceled).to.be.false;\n\n worker.queue();\n expect(worker.isQueued || worker.isRunning).to.be.true;\n\n worker.setReady();\n await worker.promise;\n\n expect(worker.wasExecuted).to.be.true;\n expect(worker.isCanceled).to.be.false;\n expect(worker.isOk).to.be.true;\n });\n\n it(\"executes a maximum of 4 simultaneously\", async () => {\n // Create 4 workers. They should all start executing.\n const first = [new Worker(), new Worker(), new Worker(), new Worker()];\n for (const worker of first)\n worker.queue();\n\n await waitUntil(() => first.every((x) => x.isRunning));\n\n // Queue up 2 more workers. They should not start executing until at least one of the first 4 resolves.\n const next = [new Worker(), new Worker()];\n for (const worker of next)\n worker.queue();\n\n await BeDuration.wait(1000);\n expect(first.every((x) => x.isRunning)).to.be.true;\n expect(next.every((x) => x.isQueued)).to.be.true;\n\n // Let the first worker resolve.\n first[0].setReady();\n await first[0].promise;\n expect(first[0].isOk).to.be.true;\n\n // Exactly one of the 2 workers remaining in the queue should start executing.\n await waitUntil(() => next.some((x) => x.isRunning));\n await BeDuration.wait(1000);\n expect(next.every((x) => x.isRunning)).to.be.false;\n\n // Clear the queue.\n const workers = first.concat(next);\n for (const worker of workers)\n worker.setReady();\n\n await Promise.all(workers.map((x) => x.promise)); // eslint-disable-line @typescript-eslint/promise-function-async\n expect(workers.every((x) => x.isOk)).to.be.true;\n });\n\n it(\"skips execution if canceled before execution begins\", async () => {\n const worker = new Worker();\n worker.cancel();\n expect(worker.isCanceled).to.be.true;\n worker.queue();\n await assert.isRejected(worker.promise!, \"canceled\");\n expect(worker.isSkipped).to.be.true;\n expect(worker.wasExecuted).to.be.false;\n });\n\n it(\"executes if canceled after execution begins\", async () => {\n const worker = new Worker();\n worker.queue();\n await waitUntil(() => worker.isRunning);\n worker.cancel();\n worker.setReady();\n await worker.promise;\n expect(worker.isCanceled).to.be.true;\n expect(worker.isSkipped).to.be.false;\n expect(worker.wasExecuted).to.be.true;\n });\n\n it(\"throws\", async () => {\n const worker = new Worker();\n worker.setThrow();\n worker.queue();\n await assert.isRejected(worker.promise!, \"throw\");\n expect(worker.isCanceled).to.be.false;\n expect(worker.isError).to.be.true;\n });\n\n it(\"cancels all workers before iModel is closed\", async () => {\n const resolve = new Worker();\n resolve.setReady();\n const reject = new Worker();\n reject.setThrow();\n\n // These 6 workers will never resolve nor reject explicitly.\n const cancel = [new Worker(), new Worker(), new Worker(), new Worker(), new Worker(), new Worker()];\n\n // Queue up all the workers.\n const workers = cancel.concat([resolve, reject]);\n for (const worker of workers)\n worker.queue();\n\n // Closing the iModel cancels all extant workers.\n imodel.close();\n openIModel();\n\n await expect(Promise.all(workers.map(async (x) => x.promise))).rejectedWith(\"canceled\");\n\n expect(cancel.every((x) => x.isCanceled)).to.be.true;\n expect(cancel.every((x) => x.isAborted || x.isSkipped)).to.be.true;\n expect(resolve.isOk || resolve.isSkipped || resolve.isAborted).to.be.true;\n expect(reject.isError || reject.isSkipped).to.be.true;\n });\n\n it(\"cancels a snap request\", async () => {\n // Block the worker thread pool with 4 workers so that our snap cannot complete before they complete.\n const blockers = [new Worker(), new Worker(), new Worker(), new Worker()];\n blockers.forEach((w) => w.queue());\n\n const sessionId = \"0x222\";\n const snap = imodel.requestSnap(sessionId, {\n testPoint: { x: 1, y: 2, z: 3 },\n closePoint: { x: 1, y: 2, z: 3 },\n id: \"0x111\",\n worldToView: Matrix4d.createIdentity().toJSON(),\n });\n\n const toBeRejected = expect(snap).to.be.rejectedWith(\"aborted\");\n imodel.cancelSnap(sessionId);\n\n // Clear the worker thread pool so the snap request (now canceled) can be processed.\n blockers.forEach((w) => w.setReady());\n await Promise.all(blockers.map(async (w) => w.promise));\n\n await toBeRejected;\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"DgnDbWorker.test.js","sourceRoot":"","sources":["../../../../src/test/native/DgnDbWorker.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 { assert, expect } from \"chai\";\r\nimport { BeDuration } from \"@itwin/core-bentley\";\r\nimport { Matrix4d } from \"@itwin/core-geometry\";\r\nimport { IModelNative } from \"../../internal/NativePlatform\";\r\nimport { StandaloneDb } from \"../../IModelDb\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { IModelJsNative } from \"@bentley/imodeljs-native\";\r\nimport { _nativeDb } from \"../../internal/Symbols\";\r\n\r\ndescribe(\"DgnDbWorker\", () => {\r\n let imodel: StandaloneDb;\r\n\r\n function openIModel(): void {\r\n const rootSubject = { name: \"DgnDbWorker tests\", description: \"DgnDbWorker tests\" };\r\n imodel = StandaloneDb.createEmpty(IModelTestUtils.prepareOutputFile(\"DgnDbWorker\", \"DgnDbWorker.bim\"), { rootSubject });\r\n }\r\n\r\n before(() => {\r\n openIModel();\r\n });\r\n\r\n after(() => {\r\n imodel.close();\r\n });\r\n\r\n class Worker {\r\n public promise: Promise<void> | undefined;\r\n private readonly _worker: IModelJsNative.TestWorker;\r\n\r\n public constructor() {\r\n this._worker = new IModelNative.platform.TestWorker(imodel[_nativeDb]);\r\n }\r\n\r\n public queue() { this.promise = this._worker.queue(); }\r\n public cancel() { this._worker.cancel(); }\r\n public setReady() { this._worker.setReady(); }\r\n public setThrow() { this._worker.setThrow(); }\r\n\r\n public get isCanceled(): boolean { return this._worker.isCanceled(); }\r\n public get wasExecuted(): boolean { return this._worker.wasExecuted(); }\r\n public get state(): IModelJsNative.TestWorkerState { return this._worker.getState(); }\r\n\r\n public get wasQueued() { return IModelJsNative.TestWorkerState.NotQueued !== this.state; }\r\n public get isQueued() { return IModelJsNative.TestWorkerState.Queued === this.state; }\r\n public get isRunning() { return IModelJsNative.TestWorkerState.Running === this.state; }\r\n public get isError() { return IModelJsNative.TestWorkerState.Error === this.state; }\r\n public get isOk() { return IModelJsNative.TestWorkerState.Ok === this.state; }\r\n public get isSkipped() { return IModelJsNative.TestWorkerState.Skipped === this.state; }\r\n public get isAborted() { return IModelJsNative.TestWorkerState.Aborted === this.state; }\r\n }\r\n\r\n async function waitUntil(condition: () => boolean): Promise<void> {\r\n if (condition())\r\n return;\r\n\r\n await new Promise<void>((resolve: any) => setTimeout(resolve, 100));\r\n return waitUntil(condition);\r\n }\r\n\r\n it(\"executes asynchronously\", async () => {\r\n const worker = new Worker();\r\n await BeDuration.wait(1000);\r\n expect(worker.wasQueued).to.be.false;\r\n expect(worker.isCanceled).to.be.false;\r\n\r\n worker.queue();\r\n expect(worker.isQueued || worker.isRunning).to.be.true;\r\n\r\n worker.setReady();\r\n await worker.promise;\r\n\r\n expect(worker.wasExecuted).to.be.true;\r\n expect(worker.isCanceled).to.be.false;\r\n expect(worker.isOk).to.be.true;\r\n });\r\n\r\n it(\"executes a maximum of 4 simultaneously\", async () => {\r\n // Create 4 workers. They should all start executing.\r\n const first = [new Worker(), new Worker(), new Worker(), new Worker()];\r\n for (const worker of first)\r\n worker.queue();\r\n\r\n await waitUntil(() => first.every((x) => x.isRunning));\r\n\r\n // Queue up 2 more workers. They should not start executing until at least one of the first 4 resolves.\r\n const next = [new Worker(), new Worker()];\r\n for (const worker of next)\r\n worker.queue();\r\n\r\n await BeDuration.wait(1000);\r\n expect(first.every((x) => x.isRunning)).to.be.true;\r\n expect(next.every((x) => x.isQueued)).to.be.true;\r\n\r\n // Let the first worker resolve.\r\n first[0].setReady();\r\n await first[0].promise;\r\n expect(first[0].isOk).to.be.true;\r\n\r\n // Exactly one of the 2 workers remaining in the queue should start executing.\r\n await waitUntil(() => next.some((x) => x.isRunning));\r\n await BeDuration.wait(1000);\r\n expect(next.every((x) => x.isRunning)).to.be.false;\r\n\r\n // Clear the queue.\r\n const workers = first.concat(next);\r\n for (const worker of workers)\r\n worker.setReady();\r\n\r\n await Promise.all(workers.map((x) => x.promise)); // eslint-disable-line @typescript-eslint/promise-function-async\r\n expect(workers.every((x) => x.isOk)).to.be.true;\r\n });\r\n\r\n it(\"skips execution if canceled before execution begins\", async () => {\r\n const worker = new Worker();\r\n worker.cancel();\r\n expect(worker.isCanceled).to.be.true;\r\n worker.queue();\r\n await assert.isRejected(worker.promise!, \"canceled\");\r\n expect(worker.isSkipped).to.be.true;\r\n expect(worker.wasExecuted).to.be.false;\r\n });\r\n\r\n it(\"executes if canceled after execution begins\", async () => {\r\n const worker = new Worker();\r\n worker.queue();\r\n await waitUntil(() => worker.isRunning);\r\n worker.cancel();\r\n worker.setReady();\r\n await worker.promise;\r\n expect(worker.isCanceled).to.be.true;\r\n expect(worker.isSkipped).to.be.false;\r\n expect(worker.wasExecuted).to.be.true;\r\n });\r\n\r\n it(\"throws\", async () => {\r\n const worker = new Worker();\r\n worker.setThrow();\r\n worker.queue();\r\n await assert.isRejected(worker.promise!, \"throw\");\r\n expect(worker.isCanceled).to.be.false;\r\n expect(worker.isError).to.be.true;\r\n });\r\n\r\n it(\"cancels all workers before iModel is closed\", async () => {\r\n const resolve = new Worker();\r\n resolve.setReady();\r\n const reject = new Worker();\r\n reject.setThrow();\r\n\r\n // These 6 workers will never resolve nor reject explicitly.\r\n const cancel = [new Worker(), new Worker(), new Worker(), new Worker(), new Worker(), new Worker()];\r\n\r\n // Queue up all the workers.\r\n const workers = cancel.concat([resolve, reject]);\r\n for (const worker of workers)\r\n worker.queue();\r\n\r\n // Closing the iModel cancels all extant workers.\r\n imodel.close();\r\n openIModel();\r\n\r\n await expect(Promise.all(workers.map(async (x) => x.promise))).rejectedWith(\"canceled\");\r\n\r\n expect(cancel.every((x) => x.isCanceled)).to.be.true;\r\n expect(cancel.every((x) => x.isAborted || x.isSkipped)).to.be.true;\r\n expect(resolve.isOk || resolve.isSkipped || resolve.isAborted).to.be.true;\r\n expect(reject.isError || reject.isSkipped).to.be.true;\r\n });\r\n\r\n it(\"cancels a snap request\", async () => {\r\n // Block the worker thread pool with 4 workers so that our snap cannot complete before they complete.\r\n const blockers = [new Worker(), new Worker(), new Worker(), new Worker()];\r\n blockers.forEach((w) => w.queue());\r\n\r\n const sessionId = \"0x222\";\r\n const snap = imodel.requestSnap(sessionId, {\r\n testPoint: { x: 1, y: 2, z: 3 },\r\n closePoint: { x: 1, y: 2, z: 3 },\r\n id: \"0x111\",\r\n worldToView: Matrix4d.createIdentity().toJSON(),\r\n });\r\n\r\n const toBeRejected = expect(snap).to.be.rejectedWith(\"aborted\");\r\n imodel.cancelSnap(sessionId);\r\n\r\n // Clear the worker thread pool so the snap request (now canceled) can be processed.\r\n blockers.forEach((w) => w.setReady());\r\n await Promise.all(blockers.map(async (w) => w.promise));\r\n\r\n await toBeRejected;\r\n });\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.test.js","sourceRoot":"","sources":["../../../../src/test/rpc/response.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from \"chai\";\nimport { SinonStub, stub } from \"sinon\";\nimport { Readable, Writable } from \"stream\";\nimport { HttpServerRequest, HttpServerResponse, RpcRequestFulfillment, RpcRequestStatus, SerializedRpcRequest, WebAppRpcProtocol } from \"@itwin/core-common\";\nimport { sendResponse } from \"../../rpc/web/response\";\nimport { brotliDecompressSync, unzipSync } from \"node:zlib\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nclass StubResponse extends Writable implements HttpServerResponse {\n public chunks: any[] = [];\n public get buffer(): Buffer { return Buffer.concat(this.chunks); }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public override _write(chunk: any, _encoding: BufferEncoding, callback: VoidFunction): void {\n this.chunks.push(chunk);\n callback();\n }\n\n public send: SinonStub<any[], HttpServerResponse> = stub().returns(this);\n public status: SinonStub<[number], HttpServerResponse> = stub();\n public set: SinonStub<[string, string], void> = stub();\n}\n\ndescribe(\"sendResponse\", () => {\n let protocol: WebAppRpcProtocol;\n let request: SerializedRpcRequest;\n let fulfillment: RpcRequestFulfillment;\n let req: HttpServerRequest;\n let res: StubResponse;\n\n beforeEach(() => {\n protocol = { getStatus: () => RpcRequestStatus.Resolved } as any;\n request = { operation: { operationName: \"fake-RPC-operation\" } } as any;\n fulfillment = {\n allowCompression: true,\n status: 200,\n result: {\n data: [],\n },\n } as any;\n req = { header: () => \"gzip, deflate, br\" } as any;\n res = new StubResponse();\n });\n\n it(\"should compress response using Brotli\", async () => {\n // Arrange\n const originalData = generateJson();\n const originalDataSize = Buffer.byteLength(originalData);\n fulfillment.result.objects = originalData;\n\n // Act\n await sendResponse(protocol, request, fulfillment, req, res);\n\n // Assert\n expect(res.set.calledWithExactly(\"Content-Encoding\", \"br\")).to.be.true;\n\n const compressedData = res.send.getCall(0).args[0];\n expect(compressedData).to.not.be.undefined;\n expect(compressedData.length).to.be.lessThan(originalDataSize);\n expect(brotliDecompressSync(compressedData).toString()).to.be.equal(originalData);\n });\n\n it(\"should compress response using Gzip if Brotli is not supported\", async () => {\n // Arrange\n const originalData = generateJson();\n const originalDataSize = Buffer.byteLength(originalData);\n fulfillment.result.objects = originalData;\n req.header = () => \"gzip, deflate\";\n\n // Act\n await sendResponse(protocol, request, fulfillment, req, res);\n\n // Assert\n expect(res.set.calledWithExactly(\"Content-Encoding\", \"gzip\")).to.be.true;\n\n const compressedData = res.send.getCall(0).args[0];\n expect(compressedData).to.not.be.undefined;\n expect(compressedData.length).to.be.lessThan(originalDataSize);\n expect(unzipSync(compressedData).toString()).to.be.equal(originalData);\n });\n\n it(\"should not compress if Brotli and Gzip is not supported\", async () => {\n // Arrange\n const originalData = generateJson();\n fulfillment.result.objects = originalData;\n req.header = () => undefined;\n\n // Act\n await sendResponse(protocol, request, fulfillment, req, res);\n\n // Assert\n expect(res.set.calledWithMatch(\"Content-Encoding\")).to.be.false;\n\n expect(res.send.getCall(0).args[0]).to.be.equal(originalData);\n });\n\n it(\"should compress stream\", async () => {\n // Arrange\n const originalData = generateJson();\n const originalDataSize = Buffer.byteLength(originalData);\n fulfillment.result.stream = Readable.from(originalData);\n\n // Act\n await sendResponse(protocol, request, fulfillment, req, res);\n await new Promise((resolve) => res.on(\"finish\", resolve));\n\n // Assert\n const compressedData = res.buffer;\n expect(compressedData).to.not.be.undefined;\n expect(compressedData.length).to.be.lessThan(originalDataSize);\n expect(brotliDecompressSync(compressedData).toString()).to.be.equal(originalData);\n });\n\n it(\"should support Accept-Encoding header value format without spaces between values\", async () => {\n // Arrange\n fulfillment.result.objects = generateJson();\n req.header = () => \"gzip,deflate,br,zstd\";\n\n // Act\n await sendResponse(protocol, request, fulfillment, req, res);\n\n // Assert\n expect(res.set.calledWithExactly(\"Content-Encoding\", \"br\")).to.be.true;\n });\n});\n\nfunction generateJson(minimumSize = 2000): string {\n let propertyIdx = 0;\n const obj = {} as any;\n\n while (JSON.stringify(obj).length < minimumSize) {\n obj[`property-${propertyIdx}`] = `value-${propertyIdx}`;\n propertyIdx++;\n }\n\n return JSON.stringify(obj);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"response.test.js","sourceRoot":"","sources":["../../../../src/test/rpc/response.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from \"chai\";\r\nimport { SinonStub, stub } from \"sinon\";\r\nimport { Readable, Writable } from \"stream\";\r\nimport { HttpServerRequest, HttpServerResponse, RpcRequestFulfillment, RpcRequestStatus, SerializedRpcRequest, WebAppRpcProtocol } from \"@itwin/core-common\";\r\nimport { sendResponse } from \"../../rpc/web/response\";\r\nimport { brotliDecompressSync, unzipSync } from \"node:zlib\";\r\n\r\n/* eslint-disable @typescript-eslint/no-deprecated */\r\n\r\nclass StubResponse extends Writable implements HttpServerResponse {\r\n public chunks: any[] = [];\r\n public get buffer(): Buffer { return Buffer.concat(this.chunks); }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public override _write(chunk: any, _encoding: BufferEncoding, callback: VoidFunction): void {\r\n this.chunks.push(chunk);\r\n callback();\r\n }\r\n\r\n public send: SinonStub<any[], HttpServerResponse> = stub().returns(this);\r\n public status: SinonStub<[number], HttpServerResponse> = stub();\r\n public set: SinonStub<[string, string], void> = stub();\r\n}\r\n\r\ndescribe(\"sendResponse\", () => {\r\n let protocol: WebAppRpcProtocol;\r\n let request: SerializedRpcRequest;\r\n let fulfillment: RpcRequestFulfillment;\r\n let req: HttpServerRequest;\r\n let res: StubResponse;\r\n\r\n beforeEach(() => {\r\n protocol = { getStatus: () => RpcRequestStatus.Resolved } as any;\r\n request = { operation: { operationName: \"fake-RPC-operation\" } } as any;\r\n fulfillment = {\r\n allowCompression: true,\r\n status: 200,\r\n result: {\r\n data: [],\r\n },\r\n } as any;\r\n req = { header: () => \"gzip, deflate, br\" } as any;\r\n res = new StubResponse();\r\n });\r\n\r\n it(\"should compress response using Brotli\", async () => {\r\n // Arrange\r\n const originalData = generateJson();\r\n const originalDataSize = Buffer.byteLength(originalData);\r\n fulfillment.result.objects = originalData;\r\n\r\n // Act\r\n await sendResponse(protocol, request, fulfillment, req, res);\r\n\r\n // Assert\r\n expect(res.set.calledWithExactly(\"Content-Encoding\", \"br\")).to.be.true;\r\n\r\n const compressedData = res.send.getCall(0).args[0];\r\n expect(compressedData).to.not.be.undefined;\r\n expect(compressedData.length).to.be.lessThan(originalDataSize);\r\n expect(brotliDecompressSync(compressedData).toString()).to.be.equal(originalData);\r\n });\r\n\r\n it(\"should compress response using Gzip if Brotli is not supported\", async () => {\r\n // Arrange\r\n const originalData = generateJson();\r\n const originalDataSize = Buffer.byteLength(originalData);\r\n fulfillment.result.objects = originalData;\r\n req.header = () => \"gzip, deflate\";\r\n\r\n // Act\r\n await sendResponse(protocol, request, fulfillment, req, res);\r\n\r\n // Assert\r\n expect(res.set.calledWithExactly(\"Content-Encoding\", \"gzip\")).to.be.true;\r\n\r\n const compressedData = res.send.getCall(0).args[0];\r\n expect(compressedData).to.not.be.undefined;\r\n expect(compressedData.length).to.be.lessThan(originalDataSize);\r\n expect(unzipSync(compressedData).toString()).to.be.equal(originalData);\r\n });\r\n\r\n it(\"should not compress if Brotli and Gzip is not supported\", async () => {\r\n // Arrange\r\n const originalData = generateJson();\r\n fulfillment.result.objects = originalData;\r\n req.header = () => undefined;\r\n\r\n // Act\r\n await sendResponse(protocol, request, fulfillment, req, res);\r\n\r\n // Assert\r\n expect(res.set.calledWithMatch(\"Content-Encoding\")).to.be.false;\r\n\r\n expect(res.send.getCall(0).args[0]).to.be.equal(originalData);\r\n });\r\n\r\n it(\"should compress stream\", async () => {\r\n // Arrange\r\n const originalData = generateJson();\r\n const originalDataSize = Buffer.byteLength(originalData);\r\n fulfillment.result.stream = Readable.from(originalData);\r\n\r\n // Act\r\n await sendResponse(protocol, request, fulfillment, req, res);\r\n await new Promise((resolve) => res.on(\"finish\", resolve));\r\n\r\n // Assert\r\n const compressedData = res.buffer;\r\n expect(compressedData).to.not.be.undefined;\r\n expect(compressedData.length).to.be.lessThan(originalDataSize);\r\n expect(brotliDecompressSync(compressedData).toString()).to.be.equal(originalData);\r\n });\r\n\r\n it(\"should support Accept-Encoding header value format without spaces between values\", async () => {\r\n // Arrange\r\n fulfillment.result.objects = generateJson();\r\n req.header = () => \"gzip,deflate,br,zstd\";\r\n\r\n // Act\r\n await sendResponse(protocol, request, fulfillment, req, res);\r\n\r\n // Assert\r\n expect(res.set.calledWithExactly(\"Content-Encoding\", \"br\")).to.be.true;\r\n });\r\n});\r\n\r\nfunction generateJson(minimumSize = 2000): string {\r\n let propertyIdx = 0;\r\n const obj = {} as any;\r\n\r\n while (JSON.stringify(obj).length < minimumSize) {\r\n obj[`property-${propertyIdx}`] = `value-${propertyIdx}`;\r\n propertyIdx++;\r\n }\r\n\r\n return JSON.stringify(obj);\r\n}\r\n"]}
|
|
@@ -95,50 +95,50 @@ describe("Class Registry - getRootMetaData", () => {
|
|
|
95
95
|
imodel = StandaloneDb.openFile(testFileName, OpenMode.ReadWrite);
|
|
96
96
|
assert.exists(imodel);
|
|
97
97
|
await imodel.importSchemaStrings([
|
|
98
|
-
`<?xml version="1.0" encoding="UTF-8"?>
|
|
99
|
-
<ECSchema schemaName="TestSchema1" alias="ts1" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
100
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
101
|
-
<ECSchemaReference name="CoreCustomAttributes" version="01.00.03" alias="CoreCA"/>
|
|
102
|
-
|
|
103
|
-
<ECEntityClass typeName="TestBase">
|
|
104
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
105
|
-
</ECEntityClass>
|
|
106
|
-
|
|
107
|
-
<ECEntityClass typeName="TestDerived">
|
|
108
|
-
<BaseClass>TestBase</BaseClass>
|
|
109
|
-
</ECEntityClass>
|
|
110
|
-
|
|
111
|
-
<ECEntityClass typeName="ITestMixinForAspectsBase">
|
|
112
|
-
<ECCustomAttributes>
|
|
113
|
-
<IsMixin xmlns="CoreCustomAttributes.01.00.03">
|
|
114
|
-
<AppliesToEntityClass>bis:ElementUniqueAspect</AppliesToEntityClass>
|
|
115
|
-
</IsMixin>
|
|
116
|
-
</ECCustomAttributes>
|
|
117
|
-
</ECEntityClass>
|
|
118
|
-
|
|
119
|
-
<ECEntityClass typeName="ITestMixinForAspectsDerived">
|
|
120
|
-
<BaseClass>ITestMixinForAspectsBase</BaseClass>
|
|
121
|
-
<ECCustomAttributes>
|
|
122
|
-
<IsMixin xmlns="CoreCustomAttributes.01.00.03">
|
|
123
|
-
<AppliesToEntityClass>bis:ElementUniqueAspect</AppliesToEntityClass>
|
|
124
|
-
</IsMixin>
|
|
125
|
-
</ECCustomAttributes>
|
|
126
|
-
</ECEntityClass>
|
|
127
|
-
|
|
128
|
-
<ECEntityClass typeName="ITestMixinForElements" modifier="Abstract">
|
|
129
|
-
<ECCustomAttributes>
|
|
130
|
-
<IsMixin xmlns="CoreCustomAttributes.01.00.03">
|
|
131
|
-
<AppliesToEntityClass>bis:Element</AppliesToEntityClass>
|
|
132
|
-
</IsMixin>
|
|
133
|
-
</ECCustomAttributes>
|
|
134
|
-
</ECEntityClass>
|
|
135
|
-
|
|
136
|
-
<ECEntityClass typeName="TestMixedInAndDerived">
|
|
137
|
-
<BaseClass>TestBase</BaseClass>
|
|
138
|
-
<BaseClass>ITestMixinForElements</BaseClass>
|
|
139
|
-
</ECEntityClass>
|
|
140
|
-
|
|
141
|
-
</ECSchema>
|
|
98
|
+
`<?xml version="1.0" encoding="UTF-8"?>
|
|
99
|
+
<ECSchema schemaName="TestSchema1" alias="ts1" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
100
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
101
|
+
<ECSchemaReference name="CoreCustomAttributes" version="01.00.03" alias="CoreCA"/>
|
|
102
|
+
|
|
103
|
+
<ECEntityClass typeName="TestBase">
|
|
104
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
105
|
+
</ECEntityClass>
|
|
106
|
+
|
|
107
|
+
<ECEntityClass typeName="TestDerived">
|
|
108
|
+
<BaseClass>TestBase</BaseClass>
|
|
109
|
+
</ECEntityClass>
|
|
110
|
+
|
|
111
|
+
<ECEntityClass typeName="ITestMixinForAspectsBase">
|
|
112
|
+
<ECCustomAttributes>
|
|
113
|
+
<IsMixin xmlns="CoreCustomAttributes.01.00.03">
|
|
114
|
+
<AppliesToEntityClass>bis:ElementUniqueAspect</AppliesToEntityClass>
|
|
115
|
+
</IsMixin>
|
|
116
|
+
</ECCustomAttributes>
|
|
117
|
+
</ECEntityClass>
|
|
118
|
+
|
|
119
|
+
<ECEntityClass typeName="ITestMixinForAspectsDerived">
|
|
120
|
+
<BaseClass>ITestMixinForAspectsBase</BaseClass>
|
|
121
|
+
<ECCustomAttributes>
|
|
122
|
+
<IsMixin xmlns="CoreCustomAttributes.01.00.03">
|
|
123
|
+
<AppliesToEntityClass>bis:ElementUniqueAspect</AppliesToEntityClass>
|
|
124
|
+
</IsMixin>
|
|
125
|
+
</ECCustomAttributes>
|
|
126
|
+
</ECEntityClass>
|
|
127
|
+
|
|
128
|
+
<ECEntityClass typeName="ITestMixinForElements" modifier="Abstract">
|
|
129
|
+
<ECCustomAttributes>
|
|
130
|
+
<IsMixin xmlns="CoreCustomAttributes.01.00.03">
|
|
131
|
+
<AppliesToEntityClass>bis:Element</AppliesToEntityClass>
|
|
132
|
+
</IsMixin>
|
|
133
|
+
</ECCustomAttributes>
|
|
134
|
+
</ECEntityClass>
|
|
135
|
+
|
|
136
|
+
<ECEntityClass typeName="TestMixedInAndDerived">
|
|
137
|
+
<BaseClass>TestBase</BaseClass>
|
|
138
|
+
<BaseClass>ITestMixinForElements</BaseClass>
|
|
139
|
+
</ECEntityClass>
|
|
140
|
+
|
|
141
|
+
</ECSchema>
|
|
142
142
|
`,
|
|
143
143
|
]); // will throw an exception if import fails
|
|
144
144
|
});
|
|
@@ -255,35 +255,35 @@ describe("Class Registry - generated classes", () => {
|
|
|
255
255
|
}
|
|
256
256
|
it("Should provide correct schemas and full-names on generated classes", async () => {
|
|
257
257
|
await imodel.importSchemaStrings([
|
|
258
|
-
`<?xml version="1.0" encoding="UTF-8"?>
|
|
259
|
-
<ECSchema schemaName="CustomA" alias="custA" version="1.0.0"
|
|
260
|
-
xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
261
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
262
|
-
<ECSchemaReference name="Functional" version="1.00" alias="func"/>
|
|
263
|
-
<ECEntityClass typeName="NonGeneratedElement">
|
|
264
|
-
<BaseClass>bis:DefinitionElement</BaseClass>
|
|
265
|
-
</ECEntityClass>
|
|
266
|
-
<ECEntityClass typeName="GeneratedElement">
|
|
267
|
-
<BaseClass>NonGeneratedElement</BaseClass>
|
|
268
|
-
</ECEntityClass>
|
|
269
|
-
<ECEntityClass typeName="ElementC">
|
|
270
|
-
<BaseClass>GeneratedElement</BaseClass>
|
|
271
|
-
</ECEntityClass>
|
|
272
|
-
</ECSchema>
|
|
258
|
+
`<?xml version="1.0" encoding="UTF-8"?>
|
|
259
|
+
<ECSchema schemaName="CustomA" alias="custA" version="1.0.0"
|
|
260
|
+
xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
261
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
262
|
+
<ECSchemaReference name="Functional" version="1.00" alias="func"/>
|
|
263
|
+
<ECEntityClass typeName="NonGeneratedElement">
|
|
264
|
+
<BaseClass>bis:DefinitionElement</BaseClass>
|
|
265
|
+
</ECEntityClass>
|
|
266
|
+
<ECEntityClass typeName="GeneratedElement">
|
|
267
|
+
<BaseClass>NonGeneratedElement</BaseClass>
|
|
268
|
+
</ECEntityClass>
|
|
269
|
+
<ECEntityClass typeName="ElementC">
|
|
270
|
+
<BaseClass>GeneratedElement</BaseClass>
|
|
271
|
+
</ECEntityClass>
|
|
272
|
+
</ECSchema>
|
|
273
273
|
`,
|
|
274
|
-
`<?xml version="1.0" encoding="UTF-8"?>
|
|
275
|
-
<ECSchema schemaName="CustomB" alias="custB" version="1.0.0"
|
|
276
|
-
xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
277
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
278
|
-
<ECSchemaReference name="Functional" version="1.00" alias="func"/>
|
|
279
|
-
<ECSchemaReference name="CustomA" version="01.00" alias="custA"/>
|
|
280
|
-
<ECEntityClass typeName="DummyElement">
|
|
281
|
-
<BaseClass>bis:DefinitionElement</BaseClass>
|
|
282
|
-
</ECEntityClass>
|
|
283
|
-
<ECEntityClass typeName="ErrorElement">
|
|
284
|
-
<BaseClass>custA:ElementC</BaseClass>
|
|
285
|
-
</ECEntityClass>
|
|
286
|
-
</ECSchema>
|
|
274
|
+
`<?xml version="1.0" encoding="UTF-8"?>
|
|
275
|
+
<ECSchema schemaName="CustomB" alias="custB" version="1.0.0"
|
|
276
|
+
xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
277
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
278
|
+
<ECSchemaReference name="Functional" version="1.00" alias="func"/>
|
|
279
|
+
<ECSchemaReference name="CustomA" version="01.00" alias="custA"/>
|
|
280
|
+
<ECEntityClass typeName="DummyElement">
|
|
281
|
+
<BaseClass>bis:DefinitionElement</BaseClass>
|
|
282
|
+
</ECEntityClass>
|
|
283
|
+
<ECEntityClass typeName="ErrorElement">
|
|
284
|
+
<BaseClass>custA:ElementC</BaseClass>
|
|
285
|
+
</ECEntityClass>
|
|
286
|
+
</ECSchema>
|
|
287
287
|
`,
|
|
288
288
|
]);
|
|
289
289
|
class CustomASchema extends Schema {
|
|
@@ -737,36 +737,36 @@ describe("Global state of ClassRegistry", () => {
|
|
|
737
737
|
});
|
|
738
738
|
it("registering a class in different imodels should not affect each other", async () => {
|
|
739
739
|
await imodel1.importSchemaStrings([
|
|
740
|
-
`<?xml version="1.0" encoding="UTF-8"?>
|
|
741
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
742
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
743
|
-
|
|
744
|
-
<ECEntityClass typeName="TestClass">
|
|
745
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
746
|
-
<ECProperty propertyName="foo" typeName="string"/>
|
|
747
|
-
<ECNavigationProperty propertyName="RelatedTestClass" relationshipName="MyRelationship" direction="backward"/>
|
|
748
|
-
</ECEntityClass>
|
|
749
|
-
|
|
750
|
-
<ECRelationshipClass typeName="MyRelationship" modifier="None" strength="embedding">
|
|
751
|
-
<Source multiplicity="(0..1)" roleLabel="has" polymorphic="false">
|
|
752
|
-
<Class class="TestClass"/>
|
|
753
|
-
</Source>
|
|
754
|
-
<Target multiplicity="(0..*)" roleLabel="has" polymorphic="false">
|
|
755
|
-
<Class class="TestClass"/>
|
|
756
|
-
</Target>
|
|
757
|
-
</ECRelationshipClass>
|
|
758
|
-
</ECSchema>
|
|
740
|
+
`<?xml version="1.0" encoding="UTF-8"?>
|
|
741
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
742
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
743
|
+
|
|
744
|
+
<ECEntityClass typeName="TestClass">
|
|
745
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
746
|
+
<ECProperty propertyName="foo" typeName="string"/>
|
|
747
|
+
<ECNavigationProperty propertyName="RelatedTestClass" relationshipName="MyRelationship" direction="backward"/>
|
|
748
|
+
</ECEntityClass>
|
|
749
|
+
|
|
750
|
+
<ECRelationshipClass typeName="MyRelationship" modifier="None" strength="embedding">
|
|
751
|
+
<Source multiplicity="(0..1)" roleLabel="has" polymorphic="false">
|
|
752
|
+
<Class class="TestClass"/>
|
|
753
|
+
</Source>
|
|
754
|
+
<Target multiplicity="(0..*)" roleLabel="has" polymorphic="false">
|
|
755
|
+
<Class class="TestClass"/>
|
|
756
|
+
</Target>
|
|
757
|
+
</ECRelationshipClass>
|
|
758
|
+
</ECSchema>
|
|
759
759
|
`,
|
|
760
760
|
]);
|
|
761
761
|
await imodel2.importSchemaStrings([
|
|
762
|
-
`<?xml version="1.0" encoding="UTF-8"?>
|
|
763
|
-
<ECSchema schemaName="TestSchema" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
764
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
765
|
-
<ECEntityClass typeName="TestClass">
|
|
766
|
-
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
767
|
-
<ECProperty propertyName="bar" typeName="string"/>
|
|
768
|
-
</ECEntityClass>
|
|
769
|
-
</ECSchema>
|
|
762
|
+
`<?xml version="1.0" encoding="UTF-8"?>
|
|
763
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
764
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
765
|
+
<ECEntityClass typeName="TestClass">
|
|
766
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
767
|
+
<ECProperty propertyName="bar" typeName="string"/>
|
|
768
|
+
</ECEntityClass>
|
|
769
|
+
</ECSchema>
|
|
770
770
|
`,
|
|
771
771
|
]);
|
|
772
772
|
const testClass1 = imodel1.getJsClass("TestSchema:TestClass");
|