@itwin/core-backend 5.1.0-dev.9 → 5.1.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 +160 -1
- package/lib/cjs/BackendHubAccess.d.ts +1 -1
- package/lib/cjs/BackendHubAccess.js +1 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
- package/lib/cjs/BisCoreSchema.js +4 -2
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts +10 -2
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +16 -0
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +4 -4
- package/lib/cjs/Category.js +4 -4
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts +67 -8
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +490 -275
- 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.d.ts +9 -1
- package/lib/cjs/ClassRegistry.d.ts.map +1 -1
- package/lib/cjs/ClassRegistry.js +14 -6
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.js +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +1 -1
- package/lib/cjs/CodeSpecs.js +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.d.ts +4 -4
- package/lib/cjs/DisplayStyle.js +3 -3
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +4 -4
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +4 -4
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts +15 -6
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +19 -4
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.d.ts +54 -51
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +67 -52
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +8 -8
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +8 -8
- 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.d.ts +10 -7
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +35 -13
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.d.ts +54 -8
- package/lib/cjs/ExportGraphics.d.ts.map +1 -1
- package/lib/cjs/ExportGraphics.js +158 -59
- 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.d.ts +6 -2
- package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
- package/lib/cjs/GeographicCRSServices.js +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 +37 -26
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +132 -55
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +2 -3
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +2 -3
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.d.ts +36 -0
- package/lib/cjs/IModelIncrementalSchemaLocater.d.ts.map +1 -0
- package/lib/cjs/IModelIncrementalSchemaLocater.js +69 -0
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -0
- 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.d.ts.map +1 -1
- package/lib/cjs/LocalHub.js +6 -4
- 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.d.ts +4 -3
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +5 -5
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +22 -22
- package/lib/cjs/Model.js +22 -22
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.d.ts +3 -0
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +15 -0
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.d.ts +1 -1
- package/lib/cjs/SQLiteDb.js +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.d.ts +25 -0
- package/lib/cjs/Schema.d.ts.map +1 -1
- package/lib/cjs/Schema.js +25 -0
- 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.d.ts +1 -1
- package/lib/cjs/SqliteStatement.d.ts.map +1 -1
- package/lib/cjs/SqliteStatement.js +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/Texture.d.ts +1 -1
- package/lib/cjs/Texture.js +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +4 -4
- package/lib/cjs/TxnManager.js +1 -1
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +40 -14
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +42 -14
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +110 -0
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -0
- package/lib/cjs/annotations/FrameGeometry.d.ts +51 -0
- package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/FrameGeometry.js +249 -0
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
- package/lib/cjs/annotations/LeaderGeometry.d.ts +53 -0
- package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/LeaderGeometry.js +184 -0
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -0
- package/lib/cjs/annotations/TextAnnotationElement.d.ts +204 -0
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/cjs/annotations/TextAnnotationElement.js +411 -0
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +33 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js +137 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
- package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
- package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
- package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +174 -49
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
- package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
- package/lib/cjs/core-backend.d.ts +7 -3
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +27 -6
- 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.d.ts +23 -0
- package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js +167 -3
- 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.d.ts +1 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +2 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.d.ts +22 -0
- package/lib/cjs/internal/annotations/fields.d.ts.map +1 -0
- package/lib/cjs/internal/annotations/fields.js +237 -0
- package/lib/cjs/internal/annotations/fields.js.map +1 -0
- 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.d.ts +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +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 +0 -1
- package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.d.ts +1 -1
- package/lib/esm/BackendHubAccess.js +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BackendLoggerCategory.js.map +1 -1
- package/lib/esm/BisCoreSchema.d.ts.map +1 -1
- package/lib/esm/BisCoreSchema.js +4 -2
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.d.ts +10 -2
- package/lib/esm/BriefcaseManager.d.ts.map +1 -1
- package/lib/esm/BriefcaseManager.js +17 -1
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +4 -4
- package/lib/esm/Category.js +4 -4
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +2 -2
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts +67 -8
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +490 -275
- 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.d.ts +9 -1
- package/lib/esm/ClassRegistry.d.ts.map +1 -1
- package/lib/esm/ClassRegistry.js +14 -6
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.js +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +1 -1
- package/lib/esm/CodeSpecs.js +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.d.ts +4 -4
- package/lib/esm/DisplayStyle.js +3 -3
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.d.ts +4 -4
- package/lib/esm/ECDb.d.ts.map +1 -1
- package/lib/esm/ECDb.js +4 -4
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlStatement.d.ts +15 -6
- package/lib/esm/ECSqlStatement.d.ts.map +1 -1
- package/lib/esm/ECSqlStatement.js +19 -4
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/Element.d.ts +54 -51
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +67 -52
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +8 -8
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +8 -8
- 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.d.ts +10 -7
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +36 -14
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.d.ts +54 -8
- package/lib/esm/ExportGraphics.d.ts.map +1 -1
- package/lib/esm/ExportGraphics.js +156 -58
- 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.d.ts +6 -2
- package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
- package/lib/esm/GeographicCRSServices.js +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 +37 -26
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +136 -59
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelDbFonts.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.d.ts +1 -1
- package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
- package/lib/esm/IModelElementCloneContext.js +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +2 -3
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +2 -3
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.d.ts +36 -0
- package/lib/esm/IModelIncrementalSchemaLocater.d.ts.map +1 -0
- package/lib/esm/IModelIncrementalSchemaLocater.js +65 -0
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -0
- 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.d.ts.map +1 -1
- package/lib/esm/LocalHub.js +6 -4
- 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.d.ts +4 -3
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +5 -5
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +22 -22
- package/lib/esm/Model.js +22 -22
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/NativeAppStorage.js.map +1 -1
- package/lib/esm/NativeHost.js.map +1 -1
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/PromiseMemoizer.js.map +1 -1
- package/lib/esm/PropertyStore.js.map +1 -1
- package/lib/esm/Relationship.d.ts +3 -0
- package/lib/esm/Relationship.d.ts.map +1 -1
- package/lib/esm/Relationship.js +15 -0
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.d.ts +1 -1
- package/lib/esm/SQLiteDb.js +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.d.ts +25 -0
- package/lib/esm/Schema.d.ts.map +1 -1
- package/lib/esm/Schema.js +25 -0
- 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.d.ts +1 -1
- package/lib/esm/SqliteStatement.d.ts.map +1 -1
- package/lib/esm/SqliteStatement.js +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/Texture.d.ts +1 -1
- package/lib/esm/Texture.js +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +4 -4
- package/lib/esm/TxnManager.js +1 -1
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +40 -14
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +42 -14
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js +105 -0
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -0
- package/lib/esm/annotations/FrameGeometry.d.ts +51 -0
- package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/FrameGeometry.js +244 -0
- package/lib/esm/annotations/FrameGeometry.js.map +1 -0
- package/lib/esm/annotations/LeaderGeometry.d.ts +53 -0
- package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/LeaderGeometry.js +179 -0
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -0
- package/lib/esm/annotations/TextAnnotationElement.d.ts +204 -0
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
- package/lib/esm/annotations/TextAnnotationElement.js +405 -0
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts +33 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js +134 -0
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
- package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
- package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
- package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
- package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
- package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +172 -48
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
- package/lib/esm/core-backend.d.ts +7 -3
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +27 -3
- 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.d.ts +23 -0
- package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js +165 -2
- 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.d.ts +1 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +1 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/annotations/fields.d.ts +22 -0
- package/lib/esm/internal/annotations/fields.d.ts.map +1 -0
- package/lib/esm/internal/annotations/fields.js +231 -0
- package/lib/esm/internal/annotations/fields.js.map +1 -0
- 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.d.ts +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +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.d.ts +15 -0
- package/lib/esm/test/AnnotationTestUtils.d.ts.map +1 -0
- package/lib/esm/test/AnnotationTestUtils.js +41 -0
- package/lib/esm/test/AnnotationTestUtils.js.map +1 -0
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js +224 -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.d.ts.map +1 -1
- package/lib/esm/test/IModelTestUtils.js +1 -0
- 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.d.ts +1 -1
- package/lib/esm/test/TestUtils.d.ts.map +1 -1
- package/lib/esm/test/TestUtils.js +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.d.ts +2 -0
- package/lib/esm/test/annotations/Fields.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/Fields.test.js +576 -0
- package/lib/esm/test/annotations/Fields.test.js.map +1 -0
- package/lib/esm/test/annotations/FrameGeometry.test.d.ts +2 -0
- package/lib/esm/test/annotations/FrameGeometry.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/FrameGeometry.test.js +86 -0
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -0
- package/lib/esm/test/annotations/LeaderGeometry.test.d.ts +2 -0
- package/lib/esm/test/annotations/LeaderGeometry.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/LeaderGeometry.test.js +256 -0
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -0
- package/lib/esm/test/annotations/TextAnnotation.test.js +269 -1047
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
- package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/TextBlock.test.js +1199 -0
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts +60 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts.map +1 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js +69 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts +1442 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts.map +1 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js +817 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -0
- 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.d.ts +2 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +164 -0
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +35 -45
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +86 -65
- 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 +0 -55
- 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 +484 -292
- 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/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.d.ts +2 -0
- package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +86 -0
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -0
- 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/imageData.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 +313 -5
- 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.d.ts +2 -0
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js +343 -0
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts +2 -0
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +207 -0
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts +11 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js +36 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +17 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +116 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts +9 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts.map +1 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js +20 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -0
- package/lib/esm/test/index.js.map +1 -1
- package/lib/esm/test/misc/DevTools.test.js.map +1 -1
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js +36 -10
- 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 +175 -73
- 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.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +575 -164
- 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 +67 -15
- 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 +49 -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.d.ts +2 -0
- package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
- 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 +24 -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 +19 -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.d.ts +0 -1
- package/lib/esm/workspace/Workspace.d.ts.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +22 -16
- package/lib/cjs/TextAnnotationElement.d.ts +0 -54
- package/lib/cjs/TextAnnotationElement.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationElement.js +0 -94
- package/lib/cjs/TextAnnotationElement.js.map +0 -1
- package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
- package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
- package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
- package/lib/cjs/TextAnnotationLayout.js.map +0 -1
- package/lib/esm/TextAnnotationElement.d.ts +0 -54
- package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
- package/lib/esm/TextAnnotationElement.js +0 -89
- package/lib/esm/TextAnnotationElement.js.map +0 -1
- package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
- package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
- package/lib/esm/TextAnnotationGeometry.js.map +0 -1
- package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
- package/lib/esm/TextAnnotationLayout.js.map +0 -1
|
@@ -60,7 +60,7 @@ import { Arc3d, IModelJson, Point3d } from "@itwin/core-geometry";
|
|
|
60
60
|
import { assert, expect } from "chai";
|
|
61
61
|
import * as path from "node:path";
|
|
62
62
|
import { DrawingCategory } from "../../Category";
|
|
63
|
-
import { ChangesetECAdaptor as ECChangesetAdaptor, PartialECChangeUnifier } from "../../ChangesetECAdaptor";
|
|
63
|
+
import { ChangesetECAdaptor as ECChangesetAdaptor, ECChangeUnifierCache, PartialECChangeUnifier } from "../../ChangesetECAdaptor";
|
|
64
64
|
import { HubMock } from "../../internal/HubMock";
|
|
65
65
|
import { SnapshotDb } from "../../IModelDb";
|
|
66
66
|
import { SqliteChangesetReader } from "../../SqliteChangesetReader";
|
|
@@ -92,13 +92,13 @@ describe("Changeset Reader API", async () => {
|
|
|
92
92
|
assert.isNotEmpty(rwIModelId);
|
|
93
93
|
const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
|
|
94
94
|
// 1. Import schema with class that span overflow table.
|
|
95
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
96
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
97
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
98
|
-
<ECEntityClass typeName="Test2dElement">
|
|
99
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
100
|
-
${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i}" typeName="string"/>`).join("\n")}
|
|
101
|
-
</ECEntityClass>
|
|
95
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
96
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
97
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
98
|
+
<ECEntityClass typeName="Test2dElement">
|
|
99
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
100
|
+
${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i}" typeName="string"/>`).join("\n")}
|
|
101
|
+
</ECEntityClass>
|
|
102
102
|
</ECSchema>`;
|
|
103
103
|
await rwIModel.importSchemaStrings([schema]);
|
|
104
104
|
rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
@@ -215,13 +215,13 @@ describe("Changeset Reader API", async () => {
|
|
|
215
215
|
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
216
216
|
assert.isNotEmpty(rwIModelId);
|
|
217
217
|
const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
|
|
218
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
219
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
220
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
221
|
-
<ECEntityClass typeName="Test2dElement">
|
|
222
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
223
|
-
<ECProperty propertyName="s" typeName="string"/>
|
|
224
|
-
</ECEntityClass>
|
|
218
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
219
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
220
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
221
|
+
<ECEntityClass typeName="Test2dElement">
|
|
222
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
223
|
+
<ECProperty propertyName="s" typeName="string"/>
|
|
224
|
+
</ECEntityClass>
|
|
225
225
|
</ECSchema>`;
|
|
226
226
|
await rwIModel.importSchemaStrings([schema]);
|
|
227
227
|
rwIModel.saveChanges("user 1: schema changeset");
|
|
@@ -292,32 +292,24 @@ describe("Changeset Reader API", async () => {
|
|
|
292
292
|
};
|
|
293
293
|
rwIModel.saveChanges("user 1: data");
|
|
294
294
|
if (true || "test local changes") {
|
|
295
|
-
const
|
|
296
|
-
try {
|
|
297
|
-
const reader = SqliteChangesetReader.openLocalChanges({ db: rwIModel, disableSchemaCheck: true });
|
|
298
|
-
const adaptor = __addDisposableResource(env_1, new ECChangesetAdaptor(reader), false);
|
|
299
|
-
const cci = new PartialECChangeUnifier();
|
|
300
|
-
while (adaptor.step()) {
|
|
301
|
-
cci.appendFrom(adaptor);
|
|
302
|
-
}
|
|
303
|
-
const changes = Array.from(cci.instances);
|
|
295
|
+
const testChanges = (changes) => {
|
|
304
296
|
assert.equal(changes.length, 3);
|
|
305
|
-
assert.equal(changes[0].ECInstanceId, "
|
|
306
|
-
assert.equal(changes[0].$meta?.classFullName, "
|
|
307
|
-
assert.equal(changes[0].$meta?.op, "
|
|
297
|
+
assert.equal(changes[0].ECInstanceId, "0x20000000001");
|
|
298
|
+
assert.equal(changes[0].$meta?.classFullName, "BisCore:DrawingModel");
|
|
299
|
+
assert.equal(changes[0].$meta?.op, "Updated");
|
|
308
300
|
assert.equal(changes[0].$meta?.stage, "New");
|
|
301
|
+
assert.isNotNull(changes[0].LastMod);
|
|
302
|
+
assert.isNotNull(changes[0].GeometryGuid);
|
|
309
303
|
assert.equal(changes[1].ECInstanceId, "0x20000000001");
|
|
310
304
|
assert.equal(changes[1].$meta?.classFullName, "BisCore:DrawingModel");
|
|
311
305
|
assert.equal(changes[1].$meta?.op, "Updated");
|
|
312
|
-
assert.equal(changes[1].$meta?.stage, "
|
|
313
|
-
assert.
|
|
314
|
-
assert.
|
|
315
|
-
assert.equal(changes[2].ECInstanceId, "
|
|
316
|
-
assert.equal(changes[2].$meta?.classFullName, "
|
|
317
|
-
assert.equal(changes[2].$meta?.op, "
|
|
318
|
-
assert.equal(changes[2].$meta?.stage, "
|
|
319
|
-
assert.isNull(changes[2].LastMod);
|
|
320
|
-
assert.isNull(changes[2].GeometryGuid);
|
|
306
|
+
assert.equal(changes[1].$meta?.stage, "Old");
|
|
307
|
+
assert.isNull(changes[1].LastMod);
|
|
308
|
+
assert.isNull(changes[1].GeometryGuid);
|
|
309
|
+
assert.equal(changes[2].ECInstanceId, "0x20000000004");
|
|
310
|
+
assert.equal(changes[2].$meta?.classFullName, "TestDomain:Test2dElement");
|
|
311
|
+
assert.equal(changes[2].$meta?.op, "Inserted");
|
|
312
|
+
assert.equal(changes[2].$meta?.stage, "New");
|
|
321
313
|
const el = changes.filter((x) => x.ECInstanceId === "0x20000000004")[0];
|
|
322
314
|
assert.equal(el.Rotation, 0);
|
|
323
315
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -357,15 +349,45 @@ describe("Changeset Reader API", async () => {
|
|
|
357
349
|
1,
|
|
358
350
|
],
|
|
359
351
|
stage: "New",
|
|
360
|
-
fallbackClassId: undefined,
|
|
361
352
|
});
|
|
353
|
+
};
|
|
354
|
+
if (true || "test with InMemoryInstanceCache") {
|
|
355
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
356
|
+
try {
|
|
357
|
+
const reader = __addDisposableResource(env_1, SqliteChangesetReader.openLocalChanges({ db: rwIModel, disableSchemaCheck: true }), false);
|
|
358
|
+
const adaptor = __addDisposableResource(env_1, new ECChangesetAdaptor(reader), false);
|
|
359
|
+
const pcu = __addDisposableResource(env_1, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemoryCache()), false);
|
|
360
|
+
while (adaptor.step()) {
|
|
361
|
+
pcu.appendFrom(adaptor);
|
|
362
|
+
}
|
|
363
|
+
testChanges(Array.from(pcu.instances));
|
|
364
|
+
}
|
|
365
|
+
catch (e_1) {
|
|
366
|
+
env_1.error = e_1;
|
|
367
|
+
env_1.hasError = true;
|
|
368
|
+
}
|
|
369
|
+
finally {
|
|
370
|
+
__disposeResources(env_1);
|
|
371
|
+
}
|
|
362
372
|
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
373
|
+
if (true || "test with SqliteBackedInstanceCache") {
|
|
374
|
+
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
375
|
+
try {
|
|
376
|
+
const reader = __addDisposableResource(env_2, SqliteChangesetReader.openLocalChanges({ db: rwIModel, disableSchemaCheck: true }), false);
|
|
377
|
+
const adaptor = __addDisposableResource(env_2, new ECChangesetAdaptor(reader), false);
|
|
378
|
+
const pcu = __addDisposableResource(env_2, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBackedCache(rwIModel)), false);
|
|
379
|
+
while (adaptor.step()) {
|
|
380
|
+
pcu.appendFrom(adaptor);
|
|
381
|
+
}
|
|
382
|
+
testChanges(Array.from(pcu.instances));
|
|
383
|
+
}
|
|
384
|
+
catch (e_2) {
|
|
385
|
+
env_2.error = e_2;
|
|
386
|
+
env_2.hasError = true;
|
|
387
|
+
}
|
|
388
|
+
finally {
|
|
389
|
+
__disposeResources(env_2);
|
|
390
|
+
}
|
|
369
391
|
}
|
|
370
392
|
}
|
|
371
393
|
const targetDir = path.join(KnownTestLocations.outputDir, rwIModelId, "changesets");
|
|
@@ -373,86 +395,144 @@ describe("Changeset Reader API", async () => {
|
|
|
373
395
|
await updatedElements();
|
|
374
396
|
const changesets = await HubMock.downloadChangesets({ iModelId: rwIModelId, targetDir });
|
|
375
397
|
if (true || "updated element") {
|
|
376
|
-
const
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
398
|
+
const testChanges = (changes) => {
|
|
399
|
+
assert.equal(changes.length, 4);
|
|
400
|
+
const classId = getClassIdByName(rwIModel, "Test2dElement");
|
|
401
|
+
// new value
|
|
402
|
+
assert.equal(changes[2].ECInstanceId, "0x20000000004");
|
|
403
|
+
assert.equal(changes[2].ECClassId, classId);
|
|
404
|
+
assert.equal(changes[2].s, "updated property");
|
|
405
|
+
assert.equal(changes[2].$meta?.classFullName, "TestDomain:Test2dElement");
|
|
406
|
+
assert.equal(changes[2].$meta?.op, "Updated");
|
|
407
|
+
assert.equal(changes[2].$meta?.stage, "New");
|
|
408
|
+
// old value
|
|
409
|
+
assert.equal(changes[3].ECInstanceId, "0x20000000004");
|
|
410
|
+
assert.equal(changes[3].ECClassId, classId);
|
|
411
|
+
assert.equal(changes[3].s, "xxxxxxxxx");
|
|
412
|
+
assert.equal(changes[3].$meta?.classFullName, "TestDomain:Test2dElement");
|
|
413
|
+
assert.equal(changes[3].$meta?.op, "Updated");
|
|
414
|
+
assert.equal(changes[3].$meta?.stage, "Old");
|
|
415
|
+
};
|
|
416
|
+
if (true || "test with InMemoryInstanceCache") {
|
|
417
|
+
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
418
|
+
try {
|
|
419
|
+
const reader = __addDisposableResource(env_3, SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: rwIModel, disableSchemaCheck: true }), false);
|
|
420
|
+
const adaptor = __addDisposableResource(env_3, new ECChangesetAdaptor(reader), false);
|
|
421
|
+
const pcu = __addDisposableResource(env_3, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemoryCache()), false);
|
|
422
|
+
while (adaptor.step()) {
|
|
423
|
+
pcu.appendFrom(adaptor);
|
|
424
|
+
}
|
|
425
|
+
testChanges(Array.from(pcu.instances));
|
|
426
|
+
}
|
|
427
|
+
catch (e_3) {
|
|
428
|
+
env_3.error = e_3;
|
|
429
|
+
env_3.hasError = true;
|
|
430
|
+
}
|
|
431
|
+
finally {
|
|
432
|
+
__disposeResources(env_3);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
if (true || "test with SqliteBackedInstanceCache") {
|
|
436
|
+
const env_4 = { stack: [], error: void 0, hasError: false };
|
|
437
|
+
try {
|
|
438
|
+
const reader = __addDisposableResource(env_4, SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: rwIModel, disableSchemaCheck: true }), false);
|
|
439
|
+
const adaptor = __addDisposableResource(env_4, new ECChangesetAdaptor(reader), false);
|
|
440
|
+
const pcu = __addDisposableResource(env_4, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBackedCache(rwIModel)), false);
|
|
441
|
+
while (adaptor.step()) {
|
|
442
|
+
pcu.appendFrom(adaptor);
|
|
443
|
+
}
|
|
444
|
+
testChanges(Array.from(pcu.instances));
|
|
445
|
+
}
|
|
446
|
+
catch (e_4) {
|
|
447
|
+
env_4.error = e_4;
|
|
448
|
+
env_4.hasError = true;
|
|
449
|
+
}
|
|
450
|
+
finally {
|
|
451
|
+
__disposeResources(env_4);
|
|
452
|
+
}
|
|
381
453
|
}
|
|
382
|
-
const changes = Array.from(cci.instances);
|
|
383
|
-
assert.equal(changes.length, 4);
|
|
384
|
-
const classId = getClassIdByName(rwIModel, "Test2dElement");
|
|
385
|
-
// new value
|
|
386
|
-
assert.equal(changes[0].ECInstanceId, "0x20000000004");
|
|
387
|
-
assert.equal(changes[0].ECClassId, classId);
|
|
388
|
-
assert.equal(changes[0].s, "updated property");
|
|
389
|
-
assert.equal(changes[0].$meta?.classFullName, "TestDomain:Test2dElement");
|
|
390
|
-
assert.equal(changes[0].$meta?.op, "Updated");
|
|
391
|
-
assert.equal(changes[0].$meta?.stage, "New");
|
|
392
|
-
// old value
|
|
393
|
-
assert.equal(changes[1].ECInstanceId, "0x20000000004");
|
|
394
|
-
assert.equal(changes[1].ECClassId, classId);
|
|
395
|
-
assert.equal(changes[1].s, "xxxxxxxxx");
|
|
396
|
-
assert.equal(changes[1].$meta?.classFullName, "TestDomain:Test2dElement");
|
|
397
|
-
assert.equal(changes[1].$meta?.op, "Updated");
|
|
398
|
-
assert.equal(changes[1].$meta?.stage, "Old");
|
|
399
454
|
}
|
|
400
455
|
if (true || "updated element when no classId") {
|
|
401
456
|
const otherDb = SnapshotDb.openFile(IModelTestUtils.resolveAssetFile("test.bim"));
|
|
402
|
-
const
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
457
|
+
const testChanges = (changes) => {
|
|
458
|
+
assert.equal(changes.length, 4);
|
|
459
|
+
// new value
|
|
460
|
+
assert.equal(changes[2].ECInstanceId, "0x20000000004");
|
|
461
|
+
assert.isUndefined(changes[2].ECClassId);
|
|
462
|
+
assert.isDefined(changes[2].$meta?.fallbackClassId);
|
|
463
|
+
assert.equal(changes[2].$meta?.fallbackClassId, "0x3d");
|
|
464
|
+
assert.isUndefined(changes[2].s);
|
|
465
|
+
assert.equal(changes[2].$meta?.classFullName, "BisCore:GeometricElement2d");
|
|
466
|
+
assert.equal(changes[2].$meta?.op, "Updated");
|
|
467
|
+
assert.equal(changes[2].$meta?.stage, "New");
|
|
468
|
+
// old value
|
|
469
|
+
assert.equal(changes[3].ECInstanceId, "0x20000000004");
|
|
470
|
+
assert.isUndefined(changes[3].ECClassId);
|
|
471
|
+
assert.isDefined(changes[3].$meta?.fallbackClassId);
|
|
472
|
+
assert.equal(changes[3].$meta?.fallbackClassId, "0x3d");
|
|
473
|
+
assert.isUndefined(changes[3].s);
|
|
474
|
+
assert.equal(changes[3].$meta?.classFullName, "BisCore:GeometricElement2d");
|
|
475
|
+
assert.equal(changes[3].$meta?.op, "Updated");
|
|
476
|
+
assert.equal(changes[3].$meta?.stage, "Old");
|
|
477
|
+
};
|
|
478
|
+
if (true || "test with InMemoryInstanceCache") {
|
|
479
|
+
const env_5 = { stack: [], error: void 0, hasError: false };
|
|
480
|
+
try {
|
|
481
|
+
const reader = __addDisposableResource(env_5, SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: otherDb, disableSchemaCheck: true }), false);
|
|
482
|
+
const adaptor = __addDisposableResource(env_5, new ECChangesetAdaptor(reader), false);
|
|
483
|
+
const pcu = __addDisposableResource(env_5, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemoryCache()), false);
|
|
484
|
+
while (adaptor.step()) {
|
|
485
|
+
pcu.appendFrom(adaptor);
|
|
486
|
+
}
|
|
487
|
+
testChanges(Array.from(pcu.instances));
|
|
488
|
+
}
|
|
489
|
+
catch (e_5) {
|
|
490
|
+
env_5.error = e_5;
|
|
491
|
+
env_5.hasError = true;
|
|
492
|
+
}
|
|
493
|
+
finally {
|
|
494
|
+
__disposeResources(env_5);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
if (true || "test with SqliteBackedInstanceCache") {
|
|
498
|
+
const env_6 = { stack: [], error: void 0, hasError: false };
|
|
499
|
+
try {
|
|
500
|
+
const reader = __addDisposableResource(env_6, SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: otherDb, disableSchemaCheck: true }), false);
|
|
501
|
+
const adaptor = __addDisposableResource(env_6, new ECChangesetAdaptor(reader), false);
|
|
502
|
+
const pcu = __addDisposableResource(env_6, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBackedCache(rwIModel)), false);
|
|
503
|
+
while (adaptor.step()) {
|
|
504
|
+
pcu.appendFrom(adaptor);
|
|
505
|
+
}
|
|
506
|
+
testChanges(Array.from(pcu.instances));
|
|
507
|
+
}
|
|
508
|
+
catch (e_6) {
|
|
509
|
+
env_6.error = e_6;
|
|
510
|
+
env_6.hasError = true;
|
|
511
|
+
}
|
|
512
|
+
finally {
|
|
513
|
+
__disposeResources(env_6);
|
|
514
|
+
}
|
|
407
515
|
}
|
|
408
|
-
const changes = Array.from(cci.instances);
|
|
409
|
-
assert.equal(changes.length, 4);
|
|
410
|
-
// new value
|
|
411
|
-
assert.equal(changes[0].ECInstanceId, "0x20000000004");
|
|
412
|
-
assert.isUndefined(changes[0].ECClassId);
|
|
413
|
-
assert.isDefined(changes[0].$meta?.fallbackClassId);
|
|
414
|
-
assert.equal(changes[0].$meta?.fallbackClassId, "0x3d");
|
|
415
|
-
assert.isUndefined(changes[0].s);
|
|
416
|
-
assert.equal(changes[0].$meta?.classFullName, "BisCore:GeometricElement2d");
|
|
417
|
-
assert.equal(changes[0].$meta?.op, "Updated");
|
|
418
|
-
assert.equal(changes[0].$meta?.stage, "New");
|
|
419
|
-
// old value
|
|
420
|
-
assert.equal(changes[1].ECInstanceId, "0x20000000004");
|
|
421
|
-
assert.isUndefined(changes[1].ECClassId);
|
|
422
|
-
assert.isDefined(changes[1].$meta?.fallbackClassId);
|
|
423
|
-
assert.equal(changes[1].$meta?.fallbackClassId, "0x3d");
|
|
424
|
-
assert.isUndefined(changes[1].s);
|
|
425
|
-
assert.equal(changes[1].$meta?.classFullName, "BisCore:GeometricElement2d");
|
|
426
|
-
assert.equal(changes[1].$meta?.op, "Updated");
|
|
427
|
-
assert.equal(changes[1].$meta?.stage, "Old");
|
|
428
516
|
}
|
|
429
517
|
if (true || "test changeset file") {
|
|
430
|
-
const
|
|
431
|
-
try {
|
|
432
|
-
const reader = SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true });
|
|
433
|
-
const adaptor = __addDisposableResource(env_2, new ECChangesetAdaptor(reader), false);
|
|
434
|
-
const cci = new PartialECChangeUnifier();
|
|
435
|
-
while (adaptor.step()) {
|
|
436
|
-
cci.appendFrom(adaptor);
|
|
437
|
-
}
|
|
438
|
-
const changes = Array.from(cci.instances);
|
|
518
|
+
const testChanges = (changes) => {
|
|
439
519
|
assert.equal(changes.length, 3);
|
|
440
|
-
assert.equal(changes[0].ECInstanceId, "
|
|
441
|
-
assert.equal(changes[0].$meta?.classFullName, "
|
|
442
|
-
assert.equal(changes[0].$meta?.op, "
|
|
520
|
+
assert.equal(changes[0].ECInstanceId, "0x20000000001");
|
|
521
|
+
assert.equal(changes[0].$meta?.classFullName, "BisCore:DrawingModel");
|
|
522
|
+
assert.equal(changes[0].$meta?.op, "Updated");
|
|
443
523
|
assert.equal(changes[0].$meta?.stage, "New");
|
|
524
|
+
assert.isNotNull(changes[0].LastMod);
|
|
525
|
+
assert.isNotNull(changes[0].GeometryGuid);
|
|
444
526
|
assert.equal(changes[1].ECInstanceId, "0x20000000001");
|
|
445
527
|
assert.equal(changes[1].$meta?.classFullName, "BisCore:DrawingModel");
|
|
446
528
|
assert.equal(changes[1].$meta?.op, "Updated");
|
|
447
|
-
assert.equal(changes[1].$meta?.stage, "
|
|
448
|
-
assert.
|
|
449
|
-
assert.
|
|
450
|
-
assert.equal(changes[2].ECInstanceId, "
|
|
451
|
-
assert.equal(changes[2].$meta?.classFullName, "
|
|
452
|
-
assert.equal(changes[2].$meta?.op, "
|
|
453
|
-
assert.equal(changes[2].$meta?.stage, "
|
|
454
|
-
assert.isNull(changes[2].LastMod);
|
|
455
|
-
assert.isNull(changes[2].GeometryGuid);
|
|
529
|
+
assert.equal(changes[1].$meta?.stage, "Old");
|
|
530
|
+
assert.isNull(changes[1].LastMod);
|
|
531
|
+
assert.isNull(changes[1].GeometryGuid);
|
|
532
|
+
assert.equal(changes[2].ECInstanceId, "0x20000000004");
|
|
533
|
+
assert.equal(changes[2].$meta?.classFullName, "TestDomain:Test2dElement");
|
|
534
|
+
assert.equal(changes[2].$meta?.op, "Inserted");
|
|
535
|
+
assert.equal(changes[2].$meta?.stage, "New");
|
|
456
536
|
const el = changes.filter((x) => x.ECInstanceId === "0x20000000004")[0];
|
|
457
537
|
assert.equal(el.Rotation, 0);
|
|
458
538
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -492,50 +572,95 @@ describe("Changeset Reader API", async () => {
|
|
|
492
572
|
1,
|
|
493
573
|
],
|
|
494
574
|
stage: "New",
|
|
495
|
-
fallbackClassId: undefined,
|
|
496
575
|
});
|
|
576
|
+
};
|
|
577
|
+
if (true || "test with InMemoryInstanceCache") {
|
|
578
|
+
const env_7 = { stack: [], error: void 0, hasError: false };
|
|
579
|
+
try {
|
|
580
|
+
const reader = __addDisposableResource(env_7, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
|
|
581
|
+
const adaptor = __addDisposableResource(env_7, new ECChangesetAdaptor(reader), false);
|
|
582
|
+
const pcu = __addDisposableResource(env_7, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemoryCache()), false);
|
|
583
|
+
while (adaptor.step()) {
|
|
584
|
+
pcu.appendFrom(adaptor);
|
|
585
|
+
}
|
|
586
|
+
testChanges(Array.from(pcu.instances));
|
|
587
|
+
}
|
|
588
|
+
catch (e_7) {
|
|
589
|
+
env_7.error = e_7;
|
|
590
|
+
env_7.hasError = true;
|
|
591
|
+
}
|
|
592
|
+
finally {
|
|
593
|
+
__disposeResources(env_7);
|
|
594
|
+
}
|
|
497
595
|
}
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
596
|
+
if (true || "test with SqliteBackedInstanceCache") {
|
|
597
|
+
const env_8 = { stack: [], error: void 0, hasError: false };
|
|
598
|
+
try {
|
|
599
|
+
const reader = __addDisposableResource(env_8, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
|
|
600
|
+
const adaptor = __addDisposableResource(env_8, new ECChangesetAdaptor(reader), false);
|
|
601
|
+
const pcu = __addDisposableResource(env_8, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBackedCache(rwIModel)), false);
|
|
602
|
+
while (adaptor.step()) {
|
|
603
|
+
pcu.appendFrom(adaptor);
|
|
604
|
+
}
|
|
605
|
+
testChanges(Array.from(pcu.instances));
|
|
606
|
+
}
|
|
607
|
+
catch (e_8) {
|
|
608
|
+
env_8.error = e_8;
|
|
609
|
+
env_8.hasError = true;
|
|
610
|
+
}
|
|
611
|
+
finally {
|
|
612
|
+
__disposeResources(env_8);
|
|
613
|
+
}
|
|
504
614
|
}
|
|
505
615
|
}
|
|
506
616
|
if (true || "test ChangesetAdaptor.acceptClass()") {
|
|
507
|
-
const
|
|
508
|
-
try {
|
|
509
|
-
const reader = SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true });
|
|
510
|
-
const adaptor = __addDisposableResource(env_3, new ECChangesetAdaptor(reader), false);
|
|
511
|
-
adaptor.acceptClass("TestDomain.Test2dElement");
|
|
512
|
-
const cci = new PartialECChangeUnifier();
|
|
513
|
-
while (adaptor.step()) {
|
|
514
|
-
cci.appendFrom(adaptor);
|
|
515
|
-
}
|
|
516
|
-
const changes = Array.from(cci.instances);
|
|
617
|
+
const testChanges = (changes) => {
|
|
517
618
|
assert.equal(changes.length, 1);
|
|
518
619
|
assert.equal(changes[0].$meta?.classFullName, "TestDomain:Test2dElement");
|
|
620
|
+
};
|
|
621
|
+
if (true || "test with InMemoryInstanceCache") {
|
|
622
|
+
const env_9 = { stack: [], error: void 0, hasError: false };
|
|
623
|
+
try {
|
|
624
|
+
const reader = __addDisposableResource(env_9, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
|
|
625
|
+
const adaptor = __addDisposableResource(env_9, new ECChangesetAdaptor(reader), false);
|
|
626
|
+
adaptor.acceptClass("TestDomain.Test2dElement");
|
|
627
|
+
const pcu = __addDisposableResource(env_9, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemoryCache()), false);
|
|
628
|
+
while (adaptor.step()) {
|
|
629
|
+
pcu.appendFrom(adaptor);
|
|
630
|
+
}
|
|
631
|
+
testChanges(Array.from(pcu.instances));
|
|
632
|
+
}
|
|
633
|
+
catch (e_9) {
|
|
634
|
+
env_9.error = e_9;
|
|
635
|
+
env_9.hasError = true;
|
|
636
|
+
}
|
|
637
|
+
finally {
|
|
638
|
+
__disposeResources(env_9);
|
|
639
|
+
}
|
|
519
640
|
}
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
641
|
+
if (true || "test with SqliteBackedInstanceCache") {
|
|
642
|
+
const env_10 = { stack: [], error: void 0, hasError: false };
|
|
643
|
+
try {
|
|
644
|
+
const reader = __addDisposableResource(env_10, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
|
|
645
|
+
const adaptor = __addDisposableResource(env_10, new ECChangesetAdaptor(reader), false);
|
|
646
|
+
adaptor.acceptClass("TestDomain.Test2dElement");
|
|
647
|
+
const pcu = __addDisposableResource(env_10, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBackedCache(rwIModel)), false);
|
|
648
|
+
while (adaptor.step()) {
|
|
649
|
+
pcu.appendFrom(adaptor);
|
|
650
|
+
}
|
|
651
|
+
testChanges(Array.from(pcu.instances));
|
|
652
|
+
}
|
|
653
|
+
catch (e_10) {
|
|
654
|
+
env_10.error = e_10;
|
|
655
|
+
env_10.hasError = true;
|
|
656
|
+
}
|
|
657
|
+
finally {
|
|
658
|
+
__disposeResources(env_10);
|
|
659
|
+
}
|
|
526
660
|
}
|
|
527
661
|
}
|
|
528
662
|
if (true || "test ChangesetAdaptor.adaptor()") {
|
|
529
|
-
const
|
|
530
|
-
try {
|
|
531
|
-
const reader = SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true });
|
|
532
|
-
const adaptor = __addDisposableResource(env_4, new ECChangesetAdaptor(reader), false);
|
|
533
|
-
adaptor.acceptOp("Updated");
|
|
534
|
-
const cci = new PartialECChangeUnifier();
|
|
535
|
-
while (adaptor.step()) {
|
|
536
|
-
cci.appendFrom(adaptor);
|
|
537
|
-
}
|
|
538
|
-
const changes = Array.from(cci.instances);
|
|
663
|
+
const testChanges = (changes) => {
|
|
539
664
|
assert.equal(changes.length, 2);
|
|
540
665
|
assert.equal(changes[0].ECInstanceId, "0x20000000001");
|
|
541
666
|
assert.equal(changes[0].$meta?.classFullName, "BisCore:DrawingModel");
|
|
@@ -545,13 +670,46 @@ describe("Changeset Reader API", async () => {
|
|
|
545
670
|
assert.equal(changes[1].$meta?.classFullName, "BisCore:DrawingModel");
|
|
546
671
|
assert.equal(changes[1].$meta?.op, "Updated");
|
|
547
672
|
assert.equal(changes[1].$meta?.stage, "Old");
|
|
673
|
+
};
|
|
674
|
+
if (true || "test with InMemoryInstanceCache") {
|
|
675
|
+
const env_11 = { stack: [], error: void 0, hasError: false };
|
|
676
|
+
try {
|
|
677
|
+
const reader = __addDisposableResource(env_11, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
|
|
678
|
+
const adaptor = __addDisposableResource(env_11, new ECChangesetAdaptor(reader), false);
|
|
679
|
+
adaptor.acceptOp("Updated");
|
|
680
|
+
const pcu = __addDisposableResource(env_11, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemoryCache()), false);
|
|
681
|
+
while (adaptor.step()) {
|
|
682
|
+
pcu.appendFrom(adaptor);
|
|
683
|
+
}
|
|
684
|
+
testChanges(Array.from(pcu.instances));
|
|
685
|
+
}
|
|
686
|
+
catch (e_11) {
|
|
687
|
+
env_11.error = e_11;
|
|
688
|
+
env_11.hasError = true;
|
|
689
|
+
}
|
|
690
|
+
finally {
|
|
691
|
+
__disposeResources(env_11);
|
|
692
|
+
}
|
|
548
693
|
}
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
694
|
+
if (true || "test with SqliteBackedInstanceCache") {
|
|
695
|
+
const env_12 = { stack: [], error: void 0, hasError: false };
|
|
696
|
+
try {
|
|
697
|
+
const reader = __addDisposableResource(env_12, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
|
|
698
|
+
const adaptor = __addDisposableResource(env_12, new ECChangesetAdaptor(reader), false);
|
|
699
|
+
adaptor.acceptOp("Updated");
|
|
700
|
+
const pcu = __addDisposableResource(env_12, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBackedCache(rwIModel)), false);
|
|
701
|
+
while (adaptor.step()) {
|
|
702
|
+
pcu.appendFrom(adaptor);
|
|
703
|
+
}
|
|
704
|
+
testChanges(Array.from(pcu.instances));
|
|
705
|
+
}
|
|
706
|
+
catch (e_12) {
|
|
707
|
+
env_12.error = e_12;
|
|
708
|
+
env_12.hasError = true;
|
|
709
|
+
}
|
|
710
|
+
finally {
|
|
711
|
+
__disposeResources(env_12);
|
|
712
|
+
}
|
|
555
713
|
}
|
|
556
714
|
}
|
|
557
715
|
rwIModel.close();
|
|
@@ -567,13 +725,13 @@ describe("Changeset Reader API", async () => {
|
|
|
567
725
|
const addPropertyAndImportSchema = async () => {
|
|
568
726
|
await rwIModel.acquireSchemaLock();
|
|
569
727
|
++nProps;
|
|
570
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
571
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00.${nProps}" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
572
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
573
|
-
<ECEntityClass typeName="Test2dElement">
|
|
574
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
575
|
-
${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i + 1}" typeName="string"/>`).join("\n")}
|
|
576
|
-
</ECEntityClass>
|
|
728
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
729
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00.${nProps}" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
730
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
731
|
+
<ECEntityClass typeName="Test2dElement">
|
|
732
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
733
|
+
${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i + 1}" typeName="string"/>`).join("\n")}
|
|
734
|
+
</ECEntityClass>
|
|
577
735
|
</ECSchema>`;
|
|
578
736
|
await rwIModel.importSchemaStrings([schema]);
|
|
579
737
|
};
|
|
@@ -710,13 +868,13 @@ describe("Changeset Reader API", async () => {
|
|
|
710
868
|
assert.isNotEmpty(rwIModelId);
|
|
711
869
|
const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
|
|
712
870
|
// 1. Import schema with class that span overflow table.
|
|
713
|
-
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
714
|
-
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
715
|
-
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
716
|
-
<ECEntityClass typeName="Test2dElement">
|
|
717
|
-
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
718
|
-
<ECProperty propertyName="p1" typeName="string"/>
|
|
719
|
-
</ECEntityClass>
|
|
871
|
+
const schema = `<?xml version="1.0" encoding="UTF-8"?>
|
|
872
|
+
<ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
|
|
873
|
+
<ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
|
|
874
|
+
<ECEntityClass typeName="Test2dElement">
|
|
875
|
+
<BaseClass>bis:GraphicalElement2d</BaseClass>
|
|
876
|
+
<ECProperty propertyName="p1" typeName="string"/>
|
|
877
|
+
</ECEntityClass>
|
|
720
878
|
</ECSchema>`;
|
|
721
879
|
await rwIModel.importSchemaStrings([schema]);
|
|
722
880
|
rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
@@ -887,5 +1045,258 @@ describe("Changeset Reader API", async () => {
|
|
|
887
1045
|
}
|
|
888
1046
|
rwIModel.close();
|
|
889
1047
|
});
|
|
1048
|
+
it("Delete class FK constraint violation in cache table", async () => {
|
|
1049
|
+
// Helper to check if TestClass exists in schema and cache table for both briefcases
|
|
1050
|
+
function checkClass(firstBriefcase, isClassInFirst, secondBriefcase, isClassInSecond) {
|
|
1051
|
+
const firstItems = firstBriefcase.getSchemaProps("TestSchema").items;
|
|
1052
|
+
assert.equal(isClassInFirst, !!firstItems?.TestClass);
|
|
1053
|
+
const secondItems = secondBriefcase.getSchemaProps("TestSchema").items;
|
|
1054
|
+
assert.equal(isClassInSecond, !!secondItems?.TestClass);
|
|
1055
|
+
const sql = `SELECT ch.classId FROM ec_cache_ClassHierarchy ch JOIN ec_Class c ON ch.classId = c.Id WHERE c.Name = 'TestClass'`;
|
|
1056
|
+
const firstStmt = firstBriefcase.prepareSqliteStatement(sql);
|
|
1057
|
+
assert.equal(firstStmt.step(), isClassInFirst ? DbResult.BE_SQLITE_ROW : DbResult.BE_SQLITE_DONE);
|
|
1058
|
+
firstStmt[Symbol.dispose]();
|
|
1059
|
+
const secondStmt = secondBriefcase.prepareSqliteStatement(sql);
|
|
1060
|
+
assert.equal(secondStmt.step(), isClassInSecond ? DbResult.BE_SQLITE_ROW : DbResult.BE_SQLITE_DONE);
|
|
1061
|
+
secondStmt[Symbol.dispose]();
|
|
1062
|
+
}
|
|
1063
|
+
const adminToken = "super manager token";
|
|
1064
|
+
const iModelName = "test";
|
|
1065
|
+
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
1066
|
+
assert.isNotEmpty(rwIModelId);
|
|
1067
|
+
// Open two briefcases for the same iModel
|
|
1068
|
+
const [firstBriefCase, secondBriefCase] = await Promise.all([
|
|
1069
|
+
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken }),
|
|
1070
|
+
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken })
|
|
1071
|
+
]);
|
|
1072
|
+
// Enable shared channel for both
|
|
1073
|
+
[firstBriefCase, secondBriefCase].forEach(briefcase => briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName));
|
|
1074
|
+
await firstBriefCase.importSchemaStrings([`<?xml version="1.0" encoding="UTF-8"?>
|
|
1075
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1076
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1077
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1078
|
+
|
|
1079
|
+
<ECCustomAttributes>
|
|
1080
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1081
|
+
</ECCustomAttributes>
|
|
1082
|
+
|
|
1083
|
+
<ECEntityClass typeName="TestClass">
|
|
1084
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1085
|
+
</ECEntityClass>
|
|
1086
|
+
</ECSchema>`]);
|
|
1087
|
+
firstBriefCase.saveChanges("import initial schema");
|
|
1088
|
+
// Push the changes to the hub
|
|
1089
|
+
await firstBriefCase.pushChanges({ description: "push initial schema changeset", accessToken: adminToken });
|
|
1090
|
+
// Sync the second briefcase with the iModel
|
|
1091
|
+
await secondBriefCase.pullChanges({ accessToken: adminToken });
|
|
1092
|
+
checkClass(firstBriefCase, true, secondBriefCase, true);
|
|
1093
|
+
// Import the schema
|
|
1094
|
+
await firstBriefCase.importSchemaStrings([`<?xml version="1.0" encoding="UTF-8"?>
|
|
1095
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1096
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1097
|
+
|
|
1098
|
+
<ECCustomAttributes>
|
|
1099
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1100
|
+
</ECCustomAttributes>
|
|
1101
|
+
</ECSchema>`]);
|
|
1102
|
+
firstBriefCase.saveChanges("imported schema");
|
|
1103
|
+
// Push the changeset to the hub
|
|
1104
|
+
await firstBriefCase.pushChanges({ description: "Delete class major change", accessToken: adminToken });
|
|
1105
|
+
checkClass(firstBriefCase, false, secondBriefCase, true);
|
|
1106
|
+
// Apply the latest changeset to a new briefcase
|
|
1107
|
+
try {
|
|
1108
|
+
await secondBriefCase.pullChanges({ accessToken: adminToken });
|
|
1109
|
+
}
|
|
1110
|
+
catch (error) {
|
|
1111
|
+
assert.fail(`Should not have failed with the error: ${error.message}`);
|
|
1112
|
+
}
|
|
1113
|
+
checkClass(firstBriefCase, false, secondBriefCase, false);
|
|
1114
|
+
// Cleanup
|
|
1115
|
+
await Promise.all([secondBriefCase.close(), firstBriefCase.close()]);
|
|
1116
|
+
});
|
|
1117
|
+
it("Delete class FK constraint violation in cache table through a revert", async () => {
|
|
1118
|
+
// Helper to check if TestClass exists in schema and cache table for both briefcases
|
|
1119
|
+
function checkClass(className, firstBriefcase, isClassInFirst, secondBriefcase, isClassInSecond) {
|
|
1120
|
+
assert.equal(isClassInFirst, !!firstBriefcase.getSchemaProps("TestSchema").items?.[className]);
|
|
1121
|
+
assert.equal(isClassInSecond, !!secondBriefcase.getSchemaProps("TestSchema").items?.[className]);
|
|
1122
|
+
const sql = `SELECT ch.classId FROM ec_cache_ClassHierarchy ch JOIN ec_Class c ON ch.classId = c.Id WHERE c.Name = '${className}'`;
|
|
1123
|
+
const firstStmt = firstBriefcase.prepareSqliteStatement(sql);
|
|
1124
|
+
assert.equal(firstStmt.step(), isClassInFirst ? DbResult.BE_SQLITE_ROW : DbResult.BE_SQLITE_DONE);
|
|
1125
|
+
firstStmt[Symbol.dispose]();
|
|
1126
|
+
const secondStmt = secondBriefcase.prepareSqliteStatement(sql);
|
|
1127
|
+
assert.equal(secondStmt.step(), isClassInSecond ? DbResult.BE_SQLITE_ROW : DbResult.BE_SQLITE_DONE);
|
|
1128
|
+
secondStmt[Symbol.dispose]();
|
|
1129
|
+
}
|
|
1130
|
+
const adminToken = "super manager token";
|
|
1131
|
+
const iModelName = "test";
|
|
1132
|
+
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
1133
|
+
assert.isNotEmpty(rwIModelId);
|
|
1134
|
+
// Open two briefcases for the same iModel
|
|
1135
|
+
const [firstBriefCase, secondBriefCase] = await Promise.all([
|
|
1136
|
+
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken }),
|
|
1137
|
+
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken })
|
|
1138
|
+
]);
|
|
1139
|
+
// Enable shared channel for both
|
|
1140
|
+
[firstBriefCase, secondBriefCase].forEach(briefcase => briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName));
|
|
1141
|
+
await firstBriefCase.importSchemaStrings([`<?xml version="1.0" encoding="UTF-8"?>
|
|
1142
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1143
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1144
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1145
|
+
|
|
1146
|
+
<ECCustomAttributes>
|
|
1147
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1148
|
+
</ECCustomAttributes>
|
|
1149
|
+
|
|
1150
|
+
<ECEntityClass typeName="TestClass">
|
|
1151
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1152
|
+
</ECEntityClass>
|
|
1153
|
+
</ECSchema>`]);
|
|
1154
|
+
firstBriefCase.saveChanges("import initial schema");
|
|
1155
|
+
// Push the changes to the hub
|
|
1156
|
+
await firstBriefCase.pushChanges({ description: "push initial schema changeset", accessToken: adminToken });
|
|
1157
|
+
// Sync the second briefcase
|
|
1158
|
+
await secondBriefCase.pullChanges({ accessToken: adminToken });
|
|
1159
|
+
checkClass("TestClass", firstBriefCase, true, secondBriefCase, true);
|
|
1160
|
+
// Import the schema
|
|
1161
|
+
await firstBriefCase.importSchemaStrings([`<?xml version="1.0" encoding="UTF-8"?>
|
|
1162
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.1" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1163
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1164
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1165
|
+
|
|
1166
|
+
<ECCustomAttributes>
|
|
1167
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1168
|
+
</ECCustomAttributes>
|
|
1169
|
+
|
|
1170
|
+
<ECEntityClass typeName="TestClass">
|
|
1171
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1172
|
+
</ECEntityClass>
|
|
1173
|
+
|
|
1174
|
+
<ECEntityClass typeName="AnotherTestClass">
|
|
1175
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1176
|
+
</ECEntityClass>
|
|
1177
|
+
</ECSchema>`]);
|
|
1178
|
+
firstBriefCase.saveChanges("imported schema");
|
|
1179
|
+
// Push the changeset to the hub
|
|
1180
|
+
await firstBriefCase.pushChanges({ description: "Add another class change", accessToken: adminToken });
|
|
1181
|
+
// Sync the second briefcase
|
|
1182
|
+
await secondBriefCase.pullChanges({ accessToken: adminToken });
|
|
1183
|
+
checkClass("TestClass", firstBriefCase, true, secondBriefCase, true);
|
|
1184
|
+
checkClass("AnotherTestClass", firstBriefCase, true, secondBriefCase, true);
|
|
1185
|
+
// Revert the latest changeset from the first briefcase
|
|
1186
|
+
try {
|
|
1187
|
+
await firstBriefCase.revertAndPushChanges({ toIndex: 2, description: "Revert last changeset" });
|
|
1188
|
+
}
|
|
1189
|
+
catch (error) {
|
|
1190
|
+
assert.fail(`Should not have failed with the error: ${error.message}`);
|
|
1191
|
+
}
|
|
1192
|
+
checkClass("TestClass", firstBriefCase, true, secondBriefCase, true);
|
|
1193
|
+
checkClass("AnotherTestClass", firstBriefCase, false, secondBriefCase, true);
|
|
1194
|
+
try {
|
|
1195
|
+
await secondBriefCase.pullChanges({ accessToken: adminToken });
|
|
1196
|
+
}
|
|
1197
|
+
catch (error) {
|
|
1198
|
+
assert.fail(`Should not have failed with the error: ${error.message}`);
|
|
1199
|
+
}
|
|
1200
|
+
checkClass("TestClass", firstBriefCase, true, secondBriefCase, true);
|
|
1201
|
+
checkClass("AnotherTestClass", firstBriefCase, false, secondBriefCase, false);
|
|
1202
|
+
// Cleanup
|
|
1203
|
+
await Promise.all([secondBriefCase.close(), firstBriefCase.close()]);
|
|
1204
|
+
});
|
|
1205
|
+
it("Track changeset health stats", async () => {
|
|
1206
|
+
const adminToken = "super manager token";
|
|
1207
|
+
const iModelName = "test";
|
|
1208
|
+
const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
|
|
1209
|
+
assert.isNotEmpty(rwIModelId);
|
|
1210
|
+
// Open two briefcases for the same iModel
|
|
1211
|
+
const [firstBriefcase, secondBriefcase] = await Promise.all([
|
|
1212
|
+
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken }),
|
|
1213
|
+
HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken })
|
|
1214
|
+
]);
|
|
1215
|
+
[firstBriefcase, secondBriefcase].forEach(briefcase => briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName));
|
|
1216
|
+
await firstBriefcase.importSchemaStrings([`<?xml version="1.0" encoding="UTF-8"?>
|
|
1217
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="1.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1218
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1219
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1220
|
+
|
|
1221
|
+
<ECCustomAttributes>
|
|
1222
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1223
|
+
</ECCustomAttributes>
|
|
1224
|
+
|
|
1225
|
+
<ECEntityClass typeName="TestClass">
|
|
1226
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1227
|
+
</ECEntityClass>
|
|
1228
|
+
</ECSchema>`]);
|
|
1229
|
+
firstBriefcase.saveChanges("import initial schema");
|
|
1230
|
+
// Enable changeset tracking for both briefcases
|
|
1231
|
+
await Promise.all([firstBriefcase.enableChangesetStatTracking(), secondBriefcase.enableChangesetStatTracking()]);
|
|
1232
|
+
await firstBriefcase.pushChanges({ description: "push initial schema changeset", accessToken: adminToken });
|
|
1233
|
+
await secondBriefcase.pullChanges({ accessToken: adminToken });
|
|
1234
|
+
// Schema upgrade
|
|
1235
|
+
await secondBriefcase.importSchemaStrings([`<?xml version="1.0" encoding="UTF-8"?>
|
|
1236
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1237
|
+
<ECSchemaReference name="BisCore" version="1.0.0" alias="bis"/>
|
|
1238
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1239
|
+
|
|
1240
|
+
<ECCustomAttributes>
|
|
1241
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1242
|
+
</ECCustomAttributes>
|
|
1243
|
+
|
|
1244
|
+
<ECEntityClass typeName="TestClass">
|
|
1245
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
1246
|
+
<ECProperty propertyName="TestProperty" typeName="string"/>
|
|
1247
|
+
</ECEntityClass>
|
|
1248
|
+
|
|
1249
|
+
<ECEnumeration typeName="TestEnum" backingTypeName="int" isStrict="true">
|
|
1250
|
+
<ECEnumerator name="Enumerator1" value="1" displayLabel="TestEnumerator1"/>
|
|
1251
|
+
<ECEnumerator name="Enumerator2" value="2" displayLabel="TestEnumerator2"/>
|
|
1252
|
+
</ECEnumeration>
|
|
1253
|
+
</ECSchema>`]);
|
|
1254
|
+
secondBriefcase.saveChanges("imported schema");
|
|
1255
|
+
await secondBriefcase.pushChanges({ description: "Added a property to TestClass and an enum", accessToken: adminToken });
|
|
1256
|
+
await firstBriefcase.pullChanges({ accessToken: adminToken });
|
|
1257
|
+
// Major schema change
|
|
1258
|
+
await firstBriefcase.importSchemaStrings([`<?xml version="1.0" encoding="UTF-8"?>
|
|
1259
|
+
<ECSchema schemaName="TestSchema" alias="ts" version="2.0.0" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
1260
|
+
<ECSchemaReference name="CoreCustomAttributes" version="1.0.0" alias="CoreCA" />
|
|
1261
|
+
|
|
1262
|
+
<ECCustomAttributes>
|
|
1263
|
+
<DynamicSchema xmlns = 'CoreCustomAttributes.1.0.0' />
|
|
1264
|
+
</ECCustomAttributes>
|
|
1265
|
+
|
|
1266
|
+
<ECEnumeration typeName="TestEnum" backingTypeName="int" isStrict="true">
|
|
1267
|
+
<ECEnumerator name="Enumerator1" value="1" displayLabel="TestEnumerator1"/>
|
|
1268
|
+
<ECEnumerator name="Enumerator2" value="2" displayLabel="TestEnumerator2"/>
|
|
1269
|
+
</ECEnumeration>
|
|
1270
|
+
</ECSchema>`]);
|
|
1271
|
+
firstBriefcase.saveChanges("imported schema");
|
|
1272
|
+
await firstBriefcase.pushChanges({ description: "Deleted TestClass", accessToken: adminToken });
|
|
1273
|
+
await secondBriefcase.pullChanges({ accessToken: adminToken });
|
|
1274
|
+
const firstBriefcaseChangesets = await firstBriefcase.getAllChangesetHealthData();
|
|
1275
|
+
const secondBriefcaseChangesets = await secondBriefcase.getAllChangesetHealthData();
|
|
1276
|
+
assert.equal(firstBriefcaseChangesets.length, 1);
|
|
1277
|
+
const firstBriefcaseChangeset = firstBriefcaseChangesets[0];
|
|
1278
|
+
expect(firstBriefcaseChangeset.uncompressedSizeBytes).to.be.greaterThan(300);
|
|
1279
|
+
expect(firstBriefcaseChangeset.insertedRows).to.be.greaterThanOrEqual(4);
|
|
1280
|
+
expect(firstBriefcaseChangeset.updatedRows).to.be.greaterThanOrEqual(1);
|
|
1281
|
+
expect(firstBriefcaseChangeset.deletedRows).to.be.eql(0);
|
|
1282
|
+
expect(firstBriefcaseChangeset.totalFullTableScans).to.be.eql(0);
|
|
1283
|
+
expect(firstBriefcaseChangeset.perStatementStats.length).to.be.eql(5);
|
|
1284
|
+
assert.equal(secondBriefcaseChangesets.length, 2);
|
|
1285
|
+
const [secondBriefcaseChangeset1, secondBriefcaseChangeset2] = secondBriefcaseChangesets;
|
|
1286
|
+
expect(secondBriefcaseChangeset1.uncompressedSizeBytes).to.be.greaterThan(40000);
|
|
1287
|
+
expect(secondBriefcaseChangeset1.insertedRows).to.be.greaterThanOrEqual(52);
|
|
1288
|
+
expect(secondBriefcaseChangeset1.updatedRows).to.be.greaterThanOrEqual(921);
|
|
1289
|
+
expect(secondBriefcaseChangeset1.deletedRows).to.be.eql(0);
|
|
1290
|
+
expect(secondBriefcaseChangeset1.totalFullTableScans).to.be.eql(0);
|
|
1291
|
+
expect(secondBriefcaseChangeset1.perStatementStats.length).to.be.eql(11);
|
|
1292
|
+
expect(secondBriefcaseChangeset2.uncompressedSizeBytes).to.be.greaterThan(40000);
|
|
1293
|
+
expect(secondBriefcaseChangeset2.insertedRows).to.be.eql(0);
|
|
1294
|
+
expect(secondBriefcaseChangeset2.updatedRows).to.be.greaterThanOrEqual(921);
|
|
1295
|
+
expect(secondBriefcaseChangeset2.deletedRows).to.be.greaterThanOrEqual(52);
|
|
1296
|
+
expect(secondBriefcaseChangeset2.totalFullTableScans).to.be.eql(0);
|
|
1297
|
+
expect(secondBriefcaseChangeset2.perStatementStats.length).to.be.eql(11);
|
|
1298
|
+
// Cleanup
|
|
1299
|
+
await Promise.all([secondBriefcase.close(), firstBriefcase.close()]);
|
|
1300
|
+
});
|
|
890
1301
|
});
|
|
891
1302
|
//# sourceMappingURL=ChangesetReader.test.js.map
|