@itwin/core-backend 5.0.0-dev.90 → 5.0.0-dev.93
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/lib/esm/BackendHubAccess.d.ts +215 -0
- package/lib/esm/BackendHubAccess.d.ts.map +1 -0
- package/lib/esm/BackendHubAccess.js +41 -0
- package/lib/esm/BackendHubAccess.js.map +1 -0
- package/lib/esm/BackendLoggerCategory.d.ts +88 -0
- package/lib/esm/BackendLoggerCategory.d.ts.map +1 -0
- package/lib/esm/BackendLoggerCategory.js +93 -0
- package/lib/esm/BackendLoggerCategory.js.map +1 -0
- package/lib/esm/BisCoreSchema.d.ts +22 -0
- package/lib/esm/BisCoreSchema.d.ts.map +1 -0
- package/lib/esm/BisCoreSchema.js +61 -0
- package/lib/esm/BisCoreSchema.js.map +1 -0
- package/lib/esm/BlobContainerService.d.ts +159 -0
- package/lib/esm/BlobContainerService.d.ts.map +1 -0
- package/lib/esm/BlobContainerService.js +15 -0
- package/lib/esm/BlobContainerService.js.map +1 -0
- package/lib/esm/BriefcaseManager.d.ts +213 -0
- package/lib/esm/BriefcaseManager.d.ts.map +1 -0
- package/lib/esm/BriefcaseManager.js +520 -0
- package/lib/esm/BriefcaseManager.js.map +1 -0
- package/lib/esm/Category.d.ts +136 -0
- package/lib/esm/Category.d.ts.map +1 -0
- package/lib/esm/Category.js +224 -0
- package/lib/esm/Category.js.map +1 -0
- package/lib/esm/ChangeSummaryManager.d.ts +161 -0
- package/lib/esm/ChangeSummaryManager.d.ts.map +1 -0
- package/lib/esm/ChangeSummaryManager.js +414 -0
- package/lib/esm/ChangeSummaryManager.js.map +1 -0
- package/lib/esm/ChangedElementsDb.d.ts +101 -0
- package/lib/esm/ChangedElementsDb.d.ts.map +1 -0
- package/lib/esm/ChangedElementsDb.js +165 -0
- package/lib/esm/ChangedElementsDb.js.map +1 -0
- package/lib/esm/ChangesetECAdaptor.d.ts +203 -0
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -0
- package/lib/esm/ChangesetECAdaptor.js +814 -0
- package/lib/esm/ChangesetECAdaptor.js.map +1 -0
- package/lib/esm/ChannelControl.d.ts +68 -0
- package/lib/esm/ChannelControl.d.ts.map +1 -0
- package/lib/esm/ChannelControl.js +15 -0
- package/lib/esm/ChannelControl.js.map +1 -0
- package/lib/esm/CheckpointManager.d.ts +123 -0
- package/lib/esm/CheckpointManager.d.ts.map +1 -0
- package/lib/esm/CheckpointManager.js +375 -0
- package/lib/esm/CheckpointManager.js.map +1 -0
- package/lib/esm/ClassRegistry.d.ts +134 -0
- package/lib/esm/ClassRegistry.d.ts.map +1 -0
- package/lib/esm/ClassRegistry.js +324 -0
- package/lib/esm/ClassRegistry.js.map +1 -0
- package/lib/esm/CloudSqlite.d.ts +682 -0
- package/lib/esm/CloudSqlite.d.ts.map +1 -0
- package/lib/esm/CloudSqlite.js +511 -0
- package/lib/esm/CloudSqlite.js.map +1 -0
- package/lib/esm/CodeService.d.ts +402 -0
- package/lib/esm/CodeService.d.ts.map +1 -0
- package/lib/esm/CodeService.js +65 -0
- package/lib/esm/CodeService.js.map +1 -0
- package/lib/esm/CodeSpecs.d.ts +59 -0
- package/lib/esm/CodeSpecs.d.ts.map +1 -0
- package/lib/esm/CodeSpecs.js +152 -0
- package/lib/esm/CodeSpecs.js.map +1 -0
- package/lib/esm/ConcurrentQuery.d.ts +14 -0
- package/lib/esm/ConcurrentQuery.d.ts.map +1 -0
- package/lib/esm/ConcurrentQuery.js +33 -0
- package/lib/esm/ConcurrentQuery.js.map +1 -0
- package/lib/esm/CustomViewState3dCreator.d.ts +22 -0
- package/lib/esm/CustomViewState3dCreator.d.ts.map +1 -0
- package/lib/esm/CustomViewState3dCreator.js +78 -0
- package/lib/esm/CustomViewState3dCreator.js.map +1 -0
- package/lib/esm/DevTools.d.ts +73 -0
- package/lib/esm/DevTools.d.ts.map +1 -0
- package/lib/esm/DevTools.js +153 -0
- package/lib/esm/DevTools.js.map +1 -0
- package/lib/esm/DisplayStyle.d.ts +99 -0
- package/lib/esm/DisplayStyle.d.ts.map +1 -0
- package/lib/esm/DisplayStyle.js +264 -0
- package/lib/esm/DisplayStyle.js.map +1 -0
- package/lib/esm/ECDb.d.ts +170 -0
- package/lib/esm/ECDb.d.ts.map +1 -0
- package/lib/esm/ECDb.js +329 -0
- package/lib/esm/ECDb.js.map +1 -0
- package/lib/esm/ECSchemaXmlContext.d.ts +46 -0
- package/lib/esm/ECSchemaXmlContext.d.ts.map +1 -0
- package/lib/esm/ECSchemaXmlContext.js +66 -0
- package/lib/esm/ECSchemaXmlContext.js.map +1 -0
- package/lib/esm/ECSqlStatement.d.ts +492 -0
- package/lib/esm/ECSqlStatement.d.ts.map +1 -0
- package/lib/esm/ECSqlStatement.js +810 -0
- package/lib/esm/ECSqlStatement.js.map +1 -0
- package/lib/esm/Element.d.ts +987 -0
- package/lib/esm/Element.d.ts.map +1 -0
- package/lib/esm/Element.js +1337 -0
- package/lib/esm/Element.js.map +1 -0
- package/lib/esm/ElementAspect.d.ts +164 -0
- package/lib/esm/ElementAspect.d.ts.map +1 -0
- package/lib/esm/ElementAspect.js +204 -0
- package/lib/esm/ElementAspect.js.map +1 -0
- package/lib/esm/ElementGraphics.d.ts +7 -0
- package/lib/esm/ElementGraphics.d.ts.map +1 -0
- package/lib/esm/ElementGraphics.js +36 -0
- package/lib/esm/ElementGraphics.js.map +1 -0
- package/lib/esm/ElementTreeWalker.d.ts +182 -0
- package/lib/esm/ElementTreeWalker.d.ts.map +1 -0
- package/lib/esm/ElementTreeWalker.js +421 -0
- package/lib/esm/ElementTreeWalker.js.map +1 -0
- package/lib/esm/Entity.d.ts +142 -0
- package/lib/esm/Entity.d.ts.map +1 -0
- package/lib/esm/Entity.js +186 -0
- package/lib/esm/Entity.js.map +1 -0
- package/lib/esm/EntityReferences.d.ts +50 -0
- package/lib/esm/EntityReferences.d.ts.map +1 -0
- package/lib/esm/EntityReferences.js +92 -0
- package/lib/esm/EntityReferences.js.map +1 -0
- package/lib/esm/ExportGraphics.d.ts +318 -0
- package/lib/esm/ExportGraphics.d.ts.map +1 -0
- package/lib/esm/ExportGraphics.js +209 -0
- package/lib/esm/ExportGraphics.js.map +1 -0
- package/lib/esm/ExternalSource.d.ts +89 -0
- package/lib/esm/ExternalSource.d.ts.map +1 -0
- package/lib/esm/ExternalSource.js +139 -0
- package/lib/esm/ExternalSource.js.map +1 -0
- package/lib/esm/FontFile.d.ts +68 -0
- package/lib/esm/FontFile.d.ts.map +1 -0
- package/lib/esm/FontFile.js +33 -0
- package/lib/esm/FontFile.js.map +1 -0
- package/lib/esm/GeoCoordConfig.d.ts +30 -0
- package/lib/esm/GeoCoordConfig.d.ts.map +1 -0
- package/lib/esm/GeoCoordConfig.js +78 -0
- package/lib/esm/GeoCoordConfig.js.map +1 -0
- package/lib/esm/GeographicCRSServices.d.ts +40 -0
- package/lib/esm/GeographicCRSServices.d.ts.map +1 -0
- package/lib/esm/GeographicCRSServices.js +17 -0
- package/lib/esm/GeographicCRSServices.js.map +1 -0
- package/lib/esm/GeometrySummary.d.ts +5 -0
- package/lib/esm/GeometrySummary.d.ts.map +1 -0
- package/lib/esm/GeometrySummary.js +381 -0
- package/lib/esm/GeometrySummary.js.map +1 -0
- package/lib/esm/HubMock.d.ts +95 -0
- package/lib/esm/HubMock.d.ts.map +1 -0
- package/lib/esm/HubMock.js +220 -0
- package/lib/esm/HubMock.js.map +1 -0
- package/lib/esm/IModelDb.d.ts +1398 -0
- package/lib/esm/IModelDb.d.ts.map +1 -0
- package/lib/esm/IModelDb.js +3230 -0
- package/lib/esm/IModelDb.js.map +1 -0
- package/lib/esm/IModelDbFonts.d.ts +54 -0
- package/lib/esm/IModelDbFonts.d.ts.map +1 -0
- package/lib/esm/IModelDbFonts.js +9 -0
- package/lib/esm/IModelDbFonts.js.map +1 -0
- package/lib/esm/IModelElementCloneContext.d.ts +92 -0
- package/lib/esm/IModelElementCloneContext.d.ts.map +1 -0
- package/lib/esm/IModelElementCloneContext.js +168 -0
- package/lib/esm/IModelElementCloneContext.js.map +1 -0
- package/lib/esm/IModelHost.d.ts +387 -0
- package/lib/esm/IModelHost.d.ts.map +1 -0
- package/lib/esm/IModelHost.js +502 -0
- package/lib/esm/IModelHost.js.map +1 -0
- package/lib/esm/IModelJsFs.d.ts +62 -0
- package/lib/esm/IModelJsFs.d.ts.map +1 -0
- package/lib/esm/IModelJsFs.js +151 -0
- package/lib/esm/IModelJsFs.js.map +1 -0
- package/lib/esm/ImageSourceConversion.d.ts +49 -0
- package/lib/esm/ImageSourceConversion.d.ts.map +1 -0
- package/lib/esm/ImageSourceConversion.js +33 -0
- package/lib/esm/ImageSourceConversion.js.map +1 -0
- package/lib/esm/IpcHost.d.ts +111 -0
- package/lib/esm/IpcHost.d.ts.map +1 -0
- package/lib/esm/IpcHost.js +311 -0
- package/lib/esm/IpcHost.js.map +1 -0
- package/lib/esm/LineStyle.d.ts +312 -0
- package/lib/esm/LineStyle.d.ts.map +1 -0
- package/lib/esm/LineStyle.js +293 -0
- package/lib/esm/LineStyle.js.map +1 -0
- package/lib/esm/LocalHub.d.ts +163 -0
- package/lib/esm/LocalHub.d.ts.map +1 -0
- package/lib/esm/LocalHub.js +583 -0
- package/lib/esm/LocalHub.js.map +1 -0
- package/lib/esm/LocalhostIpcHost.d.ts +22 -0
- package/lib/esm/LocalhostIpcHost.d.ts.map +1 -0
- package/lib/esm/LocalhostIpcHost.js +74 -0
- package/lib/esm/LocalhostIpcHost.js.map +1 -0
- package/lib/esm/LockControl.d.ts +73 -0
- package/lib/esm/LockControl.d.ts.map +1 -0
- package/lib/esm/LockControl.js +9 -0
- package/lib/esm/LockControl.js.map +1 -0
- package/lib/esm/Material.d.ts +131 -0
- package/lib/esm/Material.d.ts.map +1 -0
- package/lib/esm/Material.js +235 -0
- package/lib/esm/Material.js.map +1 -0
- package/lib/esm/Model.d.ts +375 -0
- package/lib/esm/Model.d.ts.map +1 -0
- package/lib/esm/Model.js +484 -0
- package/lib/esm/Model.js.map +1 -0
- package/lib/esm/NativeAppStorage.d.ts +52 -0
- package/lib/esm/NativeAppStorage.d.ts.map +1 -0
- package/lib/esm/NativeAppStorage.js +205 -0
- package/lib/esm/NativeAppStorage.js.map +1 -0
- package/lib/esm/NativeHost.d.ts +53 -0
- package/lib/esm/NativeHost.d.ts.map +1 -0
- package/lib/esm/NativeHost.js +158 -0
- package/lib/esm/NativeHost.js.map +1 -0
- package/lib/esm/NavigationRelationship.d.ts +185 -0
- package/lib/esm/NavigationRelationship.d.ts.map +1 -0
- package/lib/esm/NavigationRelationship.js +238 -0
- package/lib/esm/NavigationRelationship.js.map +1 -0
- package/lib/esm/PromiseMemoizer.d.ts +48 -0
- package/lib/esm/PromiseMemoizer.d.ts.map +1 -0
- package/lib/esm/PromiseMemoizer.js +101 -0
- package/lib/esm/PromiseMemoizer.js.map +1 -0
- package/lib/esm/PropertyStore.d.ts +134 -0
- package/lib/esm/PropertyStore.d.ts.map +1 -0
- package/lib/esm/PropertyStore.js +177 -0
- package/lib/esm/PropertyStore.js.map +1 -0
- package/lib/esm/Relationship.d.ts +399 -0
- package/lib/esm/Relationship.d.ts.map +1 -0
- package/lib/esm/Relationship.js +474 -0
- package/lib/esm/Relationship.js.map +1 -0
- package/lib/esm/RpcBackend.d.ts +6 -0
- package/lib/esm/RpcBackend.d.ts.map +1 -0
- package/lib/esm/RpcBackend.js +28 -0
- package/lib/esm/RpcBackend.js.map +1 -0
- package/lib/esm/SQLiteDb.d.ts +324 -0
- package/lib/esm/SQLiteDb.d.ts.map +1 -0
- package/lib/esm/SQLiteDb.js +379 -0
- package/lib/esm/SQLiteDb.js.map +1 -0
- package/lib/esm/Schema.d.ts +79 -0
- package/lib/esm/Schema.d.ts.map +1 -0
- package/lib/esm/Schema.js +113 -0
- package/lib/esm/Schema.js.map +1 -0
- package/lib/esm/SchemaSync.d.ts +47 -0
- package/lib/esm/SchemaSync.d.ts.map +1 -0
- package/lib/esm/SchemaSync.js +148 -0
- package/lib/esm/SchemaSync.js.map +1 -0
- package/lib/esm/SchemaUtils.d.ts +19 -0
- package/lib/esm/SchemaUtils.d.ts.map +1 -0
- package/lib/esm/SchemaUtils.js +37 -0
- package/lib/esm/SchemaUtils.js.map +1 -0
- package/lib/esm/SheetIndex.d.ts +148 -0
- package/lib/esm/SheetIndex.d.ts.map +1 -0
- package/lib/esm/SheetIndex.js +228 -0
- package/lib/esm/SheetIndex.js.map +1 -0
- package/lib/esm/SqliteChangesetReader.d.ts +278 -0
- package/lib/esm/SqliteChangesetReader.d.ts.map +1 -0
- package/lib/esm/SqliteChangesetReader.js +337 -0
- package/lib/esm/SqliteChangesetReader.js.map +1 -0
- package/lib/esm/SqliteStatement.d.ts +375 -0
- package/lib/esm/SqliteStatement.d.ts.map +1 -0
- package/lib/esm/SqliteStatement.js +615 -0
- package/lib/esm/SqliteStatement.js.map +1 -0
- package/lib/esm/TextAnnotationElement.d.ts +54 -0
- package/lib/esm/TextAnnotationElement.d.ts.map +1 -0
- package/lib/esm/TextAnnotationElement.js +89 -0
- package/lib/esm/TextAnnotationElement.js.map +1 -0
- package/lib/esm/TextAnnotationGeometry.d.ts +32 -0
- package/lib/esm/TextAnnotationGeometry.d.ts.map +1 -0
- package/lib/esm/TextAnnotationGeometry.js +181 -0
- package/lib/esm/TextAnnotationGeometry.js.map +1 -0
- package/lib/esm/TextAnnotationLayout.d.ts +177 -0
- package/lib/esm/TextAnnotationLayout.d.ts.map +1 -0
- package/lib/esm/TextAnnotationLayout.js +513 -0
- package/lib/esm/TextAnnotationLayout.js.map +1 -0
- package/lib/esm/Texture.d.ts +58 -0
- package/lib/esm/Texture.d.ts.map +1 -0
- package/lib/esm/Texture.js +81 -0
- package/lib/esm/Texture.js.map +1 -0
- package/lib/esm/TileStorage.d.ts +59 -0
- package/lib/esm/TileStorage.d.ts.map +1 -0
- package/lib/esm/TileStorage.js +158 -0
- package/lib/esm/TileStorage.js.map +1 -0
- package/lib/esm/TxnManager.d.ts +296 -0
- package/lib/esm/TxnManager.d.ts.map +1 -0
- package/lib/esm/TxnManager.js +619 -0
- package/lib/esm/TxnManager.js.map +1 -0
- package/lib/esm/ViewDefinition.d.ts +392 -0
- package/lib/esm/ViewDefinition.d.ts.map +1 -0
- package/lib/esm/ViewDefinition.js +638 -0
- package/lib/esm/ViewDefinition.js.map +1 -0
- package/lib/esm/ViewStateHydrator.d.ts +14 -0
- package/lib/esm/ViewStateHydrator.d.ts.map +1 -0
- package/lib/esm/ViewStateHydrator.js +89 -0
- package/lib/esm/ViewStateHydrator.js.map +1 -0
- package/lib/esm/ViewStore.d.ts +502 -0
- package/lib/esm/ViewStore.d.ts.map +1 -0
- package/lib/esm/ViewStore.js +1259 -0
- package/lib/esm/ViewStore.js.map +1 -0
- package/lib/esm/core-backend.d.ts +183 -0
- package/lib/esm/core-backend.d.ts.map +1 -0
- package/lib/esm/core-backend.js +187 -0
- package/lib/esm/core-backend.js.map +1 -0
- package/lib/esm/domains/FunctionalElements.d.ts +86 -0
- package/lib/esm/domains/FunctionalElements.d.ts.map +1 -0
- package/lib/esm/domains/FunctionalElements.js +117 -0
- package/lib/esm/domains/FunctionalElements.js.map +1 -0
- package/lib/esm/domains/FunctionalSchema.d.ts +14 -0
- package/lib/esm/domains/FunctionalSchema.d.ts.map +1 -0
- package/lib/esm/domains/FunctionalSchema.js +37 -0
- package/lib/esm/domains/FunctionalSchema.js.map +1 -0
- package/lib/esm/domains/GenericElements.d.ts +160 -0
- package/lib/esm/domains/GenericElements.d.ts.map +1 -0
- package/lib/esm/domains/GenericElements.js +225 -0
- package/lib/esm/domains/GenericElements.js.map +1 -0
- package/lib/esm/domains/GenericSchema.d.ts +11 -0
- package/lib/esm/domains/GenericSchema.d.ts.map +1 -0
- package/lib/esm/domains/GenericSchema.js +25 -0
- package/lib/esm/domains/GenericSchema.js.map +1 -0
- package/lib/esm/internal/ChangesetConflictArgs.d.ts +62 -0
- package/lib/esm/internal/ChangesetConflictArgs.d.ts.map +1 -0
- package/lib/esm/internal/ChangesetConflictArgs.js +104 -0
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -0
- package/lib/esm/internal/ChannelAdmin.d.ts +34 -0
- package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -0
- package/lib/esm/internal/ChannelAdmin.js +122 -0
- package/lib/esm/internal/ChannelAdmin.js.map +1 -0
- package/lib/esm/internal/FontFileImpl.d.ts +34 -0
- package/lib/esm/internal/FontFileImpl.d.ts.map +1 -0
- package/lib/esm/internal/FontFileImpl.js +135 -0
- package/lib/esm/internal/FontFileImpl.js.map +1 -0
- package/lib/esm/internal/IModelDbFontsImpl.d.ts +7 -0
- package/lib/esm/internal/IModelDbFontsImpl.d.ts.map +1 -0
- package/lib/esm/internal/IModelDbFontsImpl.js +183 -0
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -0
- package/lib/esm/internal/NativePlatform.d.ts +15 -0
- package/lib/esm/internal/NativePlatform.d.ts.map +1 -0
- package/lib/esm/internal/NativePlatform.js +43 -0
- package/lib/esm/internal/NativePlatform.js.map +1 -0
- package/lib/esm/internal/NoLocks.d.ts +6 -0
- package/lib/esm/internal/NoLocks.d.ts.map +1 -0
- package/lib/esm/internal/NoLocks.js +24 -0
- package/lib/esm/internal/NoLocks.js.map +1 -0
- package/lib/esm/internal/ServerBasedLocks.d.ts +52 -0
- package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -0
- package/lib/esm/internal/ServerBasedLocks.js +175 -0
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -0
- package/lib/esm/internal/Symbols.d.ts +18 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -0
- package/lib/esm/internal/Symbols.js +25 -0
- package/lib/esm/internal/Symbols.js.map +1 -0
- package/lib/esm/internal/cross-package.d.ts +4 -0
- package/lib/esm/internal/cross-package.d.ts.map +1 -0
- package/lib/esm/internal/cross-package.js +8 -0
- package/lib/esm/internal/cross-package.js.map +1 -0
- package/lib/esm/internal/workspace/SettingsImpl.d.ts +43 -0
- package/lib/esm/internal/workspace/SettingsImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/SettingsImpl.js +154 -0
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts +6 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js +268 -0
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +41 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.js +691 -0
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts +10 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts.map +1 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js +35 -0
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -0
- package/lib/esm/rpc/multipart.d.ts +12 -0
- package/lib/esm/rpc/multipart.d.ts.map +1 -0
- package/lib/esm/rpc/multipart.js +67 -0
- package/lib/esm/rpc/multipart.js.map +1 -0
- package/lib/esm/rpc/tracing.d.ts +29 -0
- package/lib/esm/rpc/tracing.d.ts.map +1 -0
- package/lib/esm/rpc/tracing.js +71 -0
- package/lib/esm/rpc/tracing.js.map +1 -0
- package/lib/esm/rpc/web/logging.d.ts +10 -0
- package/lib/esm/rpc/web/logging.d.ts.map +1 -0
- package/lib/esm/rpc/web/logging.js +41 -0
- package/lib/esm/rpc/web/logging.js.map +1 -0
- package/lib/esm/rpc/web/request.d.ts +7 -0
- package/lib/esm/rpc/web/request.d.ts.map +1 -0
- package/lib/esm/rpc/web/request.js +71 -0
- package/lib/esm/rpc/web/request.js.map +1 -0
- package/lib/esm/rpc/web/response.d.ts +7 -0
- package/lib/esm/rpc/web/response.d.ts.map +1 -0
- package/lib/esm/rpc/web/response.js +136 -0
- package/lib/esm/rpc/web/response.js.map +1 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts +16 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js +29 -0
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +51 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js +313 -0
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts +21 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js +193 -0
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +45 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js +166 -0
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +18 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts.map +1 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +41 -0
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -0
- package/lib/esm/test/AdvancedEqual.d.ts +38 -0
- package/lib/esm/test/AdvancedEqual.d.ts.map +1 -0
- package/lib/esm/test/AdvancedEqual.js +67 -0
- package/lib/esm/test/AdvancedEqual.js.map +1 -0
- package/lib/esm/test/AttachDb.test.d.ts +2 -0
- package/lib/esm/test/AttachDb.test.d.ts.map +1 -0
- package/lib/esm/test/AttachDb.test.js +157 -0
- package/lib/esm/test/AttachDb.test.js.map +1 -0
- package/lib/esm/test/GeometryTestUtil.d.ts +7 -0
- package/lib/esm/test/GeometryTestUtil.d.ts.map +1 -0
- package/lib/esm/test/GeometryTestUtil.js +25 -0
- package/lib/esm/test/GeometryTestUtil.js.map +1 -0
- package/lib/esm/test/IModelHost.test.d.ts +2 -0
- package/lib/esm/test/IModelHost.test.d.ts.map +1 -0
- package/lib/esm/test/IModelHost.test.js +187 -0
- package/lib/esm/test/IModelHost.test.js.map +1 -0
- package/lib/esm/test/IModelTestUtils.d.ts +173 -0
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -0
- package/lib/esm/test/IModelTestUtils.js +1113 -0
- package/lib/esm/test/IModelTestUtils.js.map +1 -0
- package/lib/esm/test/ImageSourceConversion.test.d.ts +2 -0
- package/lib/esm/test/ImageSourceConversion.test.d.ts.map +1 -0
- package/lib/esm/test/ImageSourceConversion.test.js +171 -0
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -0
- package/lib/esm/test/IpcHost.test.d.ts +2 -0
- package/lib/esm/test/IpcHost.test.d.ts.map +1 -0
- package/lib/esm/test/IpcHost.test.js +55 -0
- package/lib/esm/test/IpcHost.test.js.map +1 -0
- package/lib/esm/test/KnownTestLocations.d.ts +7 -0
- package/lib/esm/test/KnownTestLocations.d.ts.map +1 -0
- package/lib/esm/test/KnownTestLocations.js +27 -0
- package/lib/esm/test/KnownTestLocations.js.map +1 -0
- package/lib/esm/test/PrintElementTree.d.ts +7 -0
- package/lib/esm/test/PrintElementTree.d.ts.map +1 -0
- package/lib/esm/test/PrintElementTree.js +35 -0
- package/lib/esm/test/PrintElementTree.js.map +1 -0
- package/lib/esm/test/PropertyDb.test.d.ts +2 -0
- package/lib/esm/test/PropertyDb.test.d.ts.map +1 -0
- package/lib/esm/test/PropertyDb.test.js +71 -0
- package/lib/esm/test/PropertyDb.test.js.map +1 -0
- package/lib/esm/test/RevisionUtility.d.ts +33 -0
- package/lib/esm/test/RevisionUtility.d.ts.map +1 -0
- package/lib/esm/test/RevisionUtility.js +52 -0
- package/lib/esm/test/RevisionUtility.js.map +1 -0
- package/lib/esm/test/SchemaUtils.test.d.ts +2 -0
- package/lib/esm/test/SchemaUtils.test.d.ts.map +1 -0
- package/lib/esm/test/SchemaUtils.test.js +97 -0
- package/lib/esm/test/SchemaUtils.test.js.map +1 -0
- package/lib/esm/test/SequentialLogMatcher.d.ts +35 -0
- package/lib/esm/test/SequentialLogMatcher.d.ts.map +1 -0
- package/lib/esm/test/SequentialLogMatcher.js +130 -0
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -0
- package/lib/esm/test/TestChangeSetUtility.d.ts +23 -0
- package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -0
- package/lib/esm/test/TestChangeSetUtility.js +65 -0
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -0
- package/lib/esm/test/TestUtils.d.ts +38 -0
- package/lib/esm/test/TestUtils.d.ts.map +1 -0
- package/lib/esm/test/TestUtils.js +99 -0
- package/lib/esm/test/TestUtils.js.map +1 -0
- package/lib/esm/test/annotations/TextAnnotation.test.d.ts +2 -0
- package/lib/esm/test/annotations/TextAnnotation.test.d.ts.map +1 -0
- package/lib/esm/test/annotations/TextAnnotation.test.js +1135 -0
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -0
- package/lib/esm/test/categories/Category.test.d.ts +2 -0
- package/lib/esm/test/categories/Category.test.d.ts.map +1 -0
- package/lib/esm/test/categories/Category.test.js +51 -0
- package/lib/esm/test/categories/Category.test.js.map +1 -0
- package/lib/esm/test/codespec/CodeSpec.test.d.ts +2 -0
- package/lib/esm/test/codespec/CodeSpec.test.d.ts.map +1 -0
- package/lib/esm/test/codespec/CodeSpec.test.js +51 -0
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -0
- package/lib/esm/test/ecdb/CTE.test.d.ts +2 -0
- package/lib/esm/test/ecdb/CTE.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/CTE.test.js +177 -0
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +167 -0
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECDb.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECDb.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECDb.test.js +642 -0
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.d.ts +5 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.js +28 -0
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +63 -0
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.d.ts +5 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.js +971 -0
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +770 -0
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.js +669 -0
- package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts +2 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +3239 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.d.ts +2 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.d.ts.map +1 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.js +508 -0
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts +4 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +127 -0
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts +2 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +196 -0
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts +66 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js +420 -0
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts +2 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts.map +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +365 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts +2 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts.map +1 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.js +208 -0
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -0
- package/lib/esm/test/element/ElementAspect.test.d.ts +2 -0
- package/lib/esm/test/element/ElementAspect.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementAspect.test.js +363 -0
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts +2 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.js +383 -0
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -0
- package/lib/esm/test/element/ElementRoundTrip.test.d.ts +2 -0
- package/lib/esm/test/element/ElementRoundTrip.test.d.ts.map +1 -0
- package/lib/esm/test/element/ElementRoundTrip.test.js +916 -0
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -0
- package/lib/esm/test/element/ExcludedElements.test.d.ts +2 -0
- package/lib/esm/test/element/ExcludedElements.test.d.ts.map +1 -0
- package/lib/esm/test/element/ExcludedElements.test.js +57 -0
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -0
- package/lib/esm/test/element/ExternalSource.test.d.ts +2 -0
- package/lib/esm/test/element/ExternalSource.test.d.ts.map +1 -0
- package/lib/esm/test/element/ExternalSource.test.js +107 -0
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -0
- package/lib/esm/test/element/NullStructArray.test.d.ts +2 -0
- package/lib/esm/test/element/NullStructArray.test.d.ts.map +1 -0
- package/lib/esm/test/element/NullStructArray.test.js +77 -0
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -0
- package/lib/esm/test/element/UrlLink.test.d.ts +2 -0
- package/lib/esm/test/element/UrlLink.test.d.ts.map +1 -0
- package/lib/esm/test/element/UrlLink.test.js +36 -0
- package/lib/esm/test/element/UrlLink.test.js.map +1 -0
- package/lib/esm/test/font/FontFile.test.d.ts +2 -0
- package/lib/esm/test/font/FontFile.test.d.ts.map +1 -0
- package/lib/esm/test/font/FontFile.test.js +139 -0
- package/lib/esm/test/font/FontFile.test.js.map +1 -0
- package/lib/esm/test/font/IModelDbFonts.test.d.ts +2 -0
- package/lib/esm/test/font/IModelDbFonts.test.d.ts.map +1 -0
- package/lib/esm/test/font/IModelDbFonts.test.js +264 -0
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts +2 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js +165 -0
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts +2 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.js +137 -0
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -0
- package/lib/esm/test/imageData.d.ts +9 -0
- package/lib/esm/test/imageData.d.ts.map +1 -0
- package/lib/esm/test/imageData.js +16 -0
- package/lib/esm/test/imageData.js.map +1 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts +2 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.js +382 -0
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -0
- package/lib/esm/test/imodel/GetTextureImage.test.d.ts +2 -0
- package/lib/esm/test/imodel/GetTextureImage.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/GetTextureImage.test.js +29 -0
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -0
- package/lib/esm/test/imodel/IModel.test.d.ts +2 -0
- package/lib/esm/test/imodel/IModel.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/IModel.test.js +2601 -0
- package/lib/esm/test/imodel/IModel.test.js.map +1 -0
- package/lib/esm/test/imodel/ProjectExtents.test.d.ts +2 -0
- package/lib/esm/test/imodel/ProjectExtents.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/ProjectExtents.test.js +66 -0
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts +2 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts.map +1 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.js +74 -0
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -0
- package/lib/esm/test/index.d.ts +7 -0
- package/lib/esm/test/index.d.ts.map +1 -0
- package/lib/esm/test/index.js +11 -0
- package/lib/esm/test/index.js.map +1 -0
- package/lib/esm/test/misc/DevTools.test.d.ts +2 -0
- package/lib/esm/test/misc/DevTools.test.d.ts.map +1 -0
- package/lib/esm/test/misc/DevTools.test.js +72 -0
- package/lib/esm/test/misc/DevTools.test.js.map +1 -0
- package/lib/esm/test/misc/EntitySubClasses.test.d.ts +2 -0
- package/lib/esm/test/misc/EntitySubClasses.test.d.ts.map +1 -0
- package/lib/esm/test/misc/EntitySubClasses.test.js +106 -0
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -0
- package/lib/esm/test/misc/GeoServices.test.d.ts +2 -0
- package/lib/esm/test/misc/GeoServices.test.d.ts.map +1 -0
- package/lib/esm/test/misc/GeoServices.test.js +850 -0
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.d.ts +2 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.d.ts.map +1 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.js +111 -0
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -0
- package/lib/esm/test/native/DgnDbWorker.test.d.ts +2 -0
- package/lib/esm/test/native/DgnDbWorker.test.d.ts.map +1 -0
- package/lib/esm/test/native/DgnDbWorker.test.js +159 -0
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -0
- package/lib/esm/test/rpc/response.test.d.ts +2 -0
- package/lib/esm/test/rpc/response.test.d.ts.map +1 -0
- package/lib/esm/test/rpc/response.test.js +112 -0
- package/lib/esm/test/rpc/response.test.js.map +1 -0
- package/lib/esm/test/schema/ClassRegistry.test.d.ts +2 -0
- package/lib/esm/test/schema/ClassRegistry.test.d.ts.map +1 -0
- package/lib/esm/test/schema/ClassRegistry.test.js +679 -0
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -0
- package/lib/esm/test/schema/FunctionalDomain.test.d.ts +2 -0
- package/lib/esm/test/schema/FunctionalDomain.test.d.ts.map +1 -0
- package/lib/esm/test/schema/FunctionalDomain.test.js +490 -0
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -0
- package/lib/esm/test/schema/GenericDomain.test.d.ts +2 -0
- package/lib/esm/test/schema/GenericDomain.test.d.ts.map +1 -0
- package/lib/esm/test/schema/GenericDomain.test.js +132 -0
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.d.ts +2 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.d.ts.map +1 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.js +95 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +4 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -0
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -0
- package/lib/esm/test/standalone/ChangeMerge.test.d.ts +2 -0
- package/lib/esm/test/standalone/ChangeMerge.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ChangeMerge.test.js +413 -0
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.d.ts +2 -0
- package/lib/esm/test/standalone/ChangesetReader.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js +890 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts +2 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js +49 -0
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -0
- package/lib/esm/test/standalone/DisplayStyle.test.d.ts +2 -0
- package/lib/esm/test/standalone/DisplayStyle.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/DisplayStyle.test.js +136 -0
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.d.ts +2 -0
- package/lib/esm/test/standalone/ElementGraphics.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js +127 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementMesh.test.d.ts +2 -0
- package/lib/esm/test/standalone/ElementMesh.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ElementMesh.test.js +142 -0
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -0
- package/lib/esm/test/standalone/ExportGraphics.test.d.ts +2 -0
- package/lib/esm/test/standalone/ExportGraphics.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ExportGraphics.test.js +1040 -0
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts +2 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js +139 -0
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -0
- package/lib/esm/test/standalone/GeometryStream.test.d.ts +2 -0
- package/lib/esm/test/standalone/GeometryStream.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/GeometryStream.test.js +2869 -0
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -0
- package/lib/esm/test/standalone/HubMock.test.d.ts +2 -0
- package/lib/esm/test/standalone/HubMock.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/HubMock.test.js +343 -0
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -0
- package/lib/esm/test/standalone/IModelWrite.test.d.ts +7 -0
- package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/IModelWrite.test.js +859 -0
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts +2 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +417 -0
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -0
- package/lib/esm/test/standalone/MergeConflict.test.d.ts +7 -0
- package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/MergeConflict.test.js +345 -0
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.d.ts +2 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.js +121 -0
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts +2 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +398 -0
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -0
- package/lib/esm/test/standalone/RenderTimeline.test.d.ts +2 -0
- package/lib/esm/test/standalone/RenderTimeline.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/RenderTimeline.test.js +71 -0
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -0
- package/lib/esm/test/standalone/SQLiteDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/SQLiteDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SQLiteDb.test.js +63 -0
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -0
- package/lib/esm/test/standalone/SchemaUtils.test.d.ts +2 -0
- package/lib/esm/test/standalone/SchemaUtils.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SchemaUtils.test.js +25 -0
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -0
- package/lib/esm/test/standalone/SectionDrawing.test.d.ts +2 -0
- package/lib/esm/test/standalone/SectionDrawing.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SectionDrawing.test.js +83 -0
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts +2 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.js +279 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -0
- package/lib/esm/test/standalone/Setting.test.d.ts +2 -0
- package/lib/esm/test/standalone/Setting.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Setting.test.js +76 -0
- package/lib/esm/test/standalone/Setting.test.js.map +1 -0
- package/lib/esm/test/standalone/Settings.test.d.ts +2 -0
- package/lib/esm/test/standalone/Settings.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Settings.test.js +349 -0
- package/lib/esm/test/standalone/Settings.test.js.map +1 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.d.ts +2 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.js +31 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/SnapshotDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js +153 -0
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -0
- package/lib/esm/test/standalone/Texture.test.d.ts +2 -0
- package/lib/esm/test/standalone/Texture.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Texture.test.js +90 -0
- package/lib/esm/test/standalone/Texture.test.js.map +1 -0
- package/lib/esm/test/standalone/TileCache.test.d.ts +9 -0
- package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TileCache.test.js +127 -0
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -0
- package/lib/esm/test/standalone/TileTree.test.d.ts +2 -0
- package/lib/esm/test/standalone/TileTree.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TileTree.test.js +241 -0
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -0
- package/lib/esm/test/standalone/TxnManager.test.d.ts +2 -0
- package/lib/esm/test/standalone/TxnManager.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/TxnManager.test.js +878 -0
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -0
- package/lib/esm/test/standalone/ViewDefinition.test.d.ts +2 -0
- package/lib/esm/test/standalone/ViewDefinition.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ViewDefinition.test.js +279 -0
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.d.ts +2 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.js +288 -0
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -0
- package/lib/esm/test/standalone/Workspace.test.d.ts +2 -0
- package/lib/esm/test/standalone/Workspace.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/Workspace.test.js +161 -0
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -0
- package/lib/esm/workspace/Settings.d.ts +216 -0
- package/lib/esm/workspace/Settings.d.ts.map +1 -0
- package/lib/esm/workspace/Settings.js +83 -0
- package/lib/esm/workspace/Settings.js.map +1 -0
- package/lib/esm/workspace/SettingsSchemas.d.ts +135 -0
- package/lib/esm/workspace/SettingsSchemas.d.ts.map +1 -0
- package/lib/esm/workspace/SettingsSchemas.js +9 -0
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -0
- package/lib/esm/workspace/Workspace.d.ts +507 -0
- package/lib/esm/workspace/Workspace.d.ts.map +1 -0
- package/lib/esm/workspace/Workspace.js +97 -0
- package/lib/esm/workspace/Workspace.js.map +1 -0
- package/lib/esm/workspace/WorkspaceEditor.d.ts +245 -0
- package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -0
- package/lib/esm/workspace/WorkspaceEditor.js +31 -0
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -0
- package/package.json +19 -15
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
6
|
+
import { assert } from "chai";
|
|
7
|
+
import * as fs from "fs";
|
|
8
|
+
import * as path from "path";
|
|
9
|
+
import { Guid, Logger, OpenMode } from "@itwin/core-bentley";
|
|
10
|
+
import { CodeScopeSpec, CodeSpec, ColorByName, DomainOptions, GeometryStreamBuilder, IModel, SubCategoryAppearance, } from "@itwin/core-common";
|
|
11
|
+
import { LineSegment3d, Point3d, YawPitchRollAngles } from "@itwin/core-geometry";
|
|
12
|
+
import { _nativeDb, ChannelControl, IModelJsFs, PhysicalModel, SpatialCategory, StandaloneDb } from "../../core-backend";
|
|
13
|
+
import { IModelTestUtils, TestElementDrivesElement, TestPhysicalObject } from "../IModelTestUtils";
|
|
14
|
+
import { IModelNative } from "../../internal/NativePlatform";
|
|
15
|
+
export function copyFile(newName, pathToCopy) {
|
|
16
|
+
const newPath = path.join(path.dirname(pathToCopy), newName);
|
|
17
|
+
try {
|
|
18
|
+
fs.unlinkSync(newPath);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
}
|
|
22
|
+
fs.copyFileSync(pathToCopy, newPath);
|
|
23
|
+
return newPath;
|
|
24
|
+
}
|
|
25
|
+
function assertRels(list, rels) {
|
|
26
|
+
assert.equal(list.length, rels.length);
|
|
27
|
+
for (let i = 0; i < rels.length; ++i) {
|
|
28
|
+
assert.equal(list[i].id, rels[i].id);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
class DependencyCallbackResults {
|
|
32
|
+
beforeOutputs = [];
|
|
33
|
+
allInputsHandled = [];
|
|
34
|
+
rootChanged = [];
|
|
35
|
+
deletedDependency = [];
|
|
36
|
+
}
|
|
37
|
+
class TestHelper {
|
|
38
|
+
db;
|
|
39
|
+
dres = new DependencyCallbackResults();
|
|
40
|
+
removals = [];
|
|
41
|
+
codeSpecId = "";
|
|
42
|
+
physicalModelId = "";
|
|
43
|
+
spatialCategoryid = "";
|
|
44
|
+
constructor(testName, dbInfo) {
|
|
45
|
+
this.codeSpecId = dbInfo.codeSpecId;
|
|
46
|
+
this.physicalModelId = dbInfo.physicalModelId;
|
|
47
|
+
this.spatialCategoryid = dbInfo.spatialCategoryId;
|
|
48
|
+
const writeDbFileName = copyFile(`${testName}.bim`, dbInfo.seedFileName);
|
|
49
|
+
this.db = StandaloneDb.openFile(writeDbFileName, OpenMode.ReadWrite);
|
|
50
|
+
assert.isTrue(this.db !== undefined);
|
|
51
|
+
this.db.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
52
|
+
this.db[_nativeDb].enableTxnTesting();
|
|
53
|
+
assert.equal(this.db[_nativeDb].addChildPropagatesChangesToParentRelationship("TestBim", "ChildPropagatesChangesToParent"), 0);
|
|
54
|
+
this.setElementDependencyGraphCallbacks();
|
|
55
|
+
}
|
|
56
|
+
terminate() {
|
|
57
|
+
this.db.close();
|
|
58
|
+
assert.isFalse(this.db.isOpen);
|
|
59
|
+
this.removeElementDependencyGraphCallbacks();
|
|
60
|
+
}
|
|
61
|
+
makeElement(codeValue, parent) {
|
|
62
|
+
const builder = new GeometryStreamBuilder();
|
|
63
|
+
builder.appendGeometry(LineSegment3d.create(Point3d.createZero(), Point3d.create(5, 0, 0)));
|
|
64
|
+
return {
|
|
65
|
+
classFullName: "TestBim:TestPhysicalObject",
|
|
66
|
+
model: this.physicalModelId,
|
|
67
|
+
category: this.spatialCategoryid,
|
|
68
|
+
code: { spec: this.codeSpecId, scope: this.physicalModelId, value: codeValue },
|
|
69
|
+
intProperty: 100,
|
|
70
|
+
placement: {
|
|
71
|
+
origin: new Point3d(0, 0, 0),
|
|
72
|
+
angles: new YawPitchRollAngles(),
|
|
73
|
+
},
|
|
74
|
+
geom: builder.geometryStream,
|
|
75
|
+
parent,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
insertElement(codeValue, parent) {
|
|
79
|
+
return this.db.elements.insertElement(this.makeElement(codeValue, parent));
|
|
80
|
+
}
|
|
81
|
+
updateElement(elid, newLabel) {
|
|
82
|
+
const ed2 = this.db.elements.getElement({ id: elid });
|
|
83
|
+
ed2.userLabel = newLabel;
|
|
84
|
+
this.db.elements.updateElement(ed2.toJSON());
|
|
85
|
+
}
|
|
86
|
+
fmtElem(elId) { return this.db.elements.getElement(elId).code.value; }
|
|
87
|
+
fmtRel(props) { return `${props.classFullName} ${this.fmtElem(props.sourceId)} --> ${this.fmtElem(props.targetId)}`; }
|
|
88
|
+
resetDependencyResults() {
|
|
89
|
+
this.dres = new DependencyCallbackResults();
|
|
90
|
+
}
|
|
91
|
+
setElementDependencyGraphCallbacks() {
|
|
92
|
+
this.removals.push(TestElementDrivesElement.deletedDependency.addListener((evProps) => {
|
|
93
|
+
Logger.logTrace("EDGTest", `_onDeletedDependency ${this.fmtRel(evProps)}`);
|
|
94
|
+
this.dres.deletedDependency.push(evProps);
|
|
95
|
+
}));
|
|
96
|
+
this.removals.push(TestElementDrivesElement.rootChanged.addListener((evProps, _im) => {
|
|
97
|
+
Logger.logTrace("EDGTest", `_onRootChanged ${this.fmtRel(evProps)}`);
|
|
98
|
+
this.dres.rootChanged.push(evProps);
|
|
99
|
+
}));
|
|
100
|
+
this.removals.push(TestPhysicalObject.beforeOutputsHandled.addListener((elId) => {
|
|
101
|
+
Logger.logTrace("EDGTest", `_onBeforeOutputsHandled ${this.fmtElem(elId)}`);
|
|
102
|
+
this.dres.beforeOutputs.push(elId);
|
|
103
|
+
}));
|
|
104
|
+
this.removals.push(TestPhysicalObject.allInputsHandled.addListener((elId) => {
|
|
105
|
+
Logger.logTrace("EDGTest", `_onAllInputsHandled ${this.fmtElem(elId)}`);
|
|
106
|
+
this.dres.allInputsHandled.push(elId);
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
removeElementDependencyGraphCallbacks() {
|
|
110
|
+
this.removals.forEach((drop) => drop());
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
describe("ElementDependencyGraph", () => {
|
|
114
|
+
let testFileName;
|
|
115
|
+
let dbInfo;
|
|
116
|
+
const performUpgrade = (pathname) => {
|
|
117
|
+
const nativeDb = new IModelNative.platform.DgnDb();
|
|
118
|
+
const upgradeOptions = {
|
|
119
|
+
domain: DomainOptions.Upgrade,
|
|
120
|
+
schemaLockHeld: true,
|
|
121
|
+
};
|
|
122
|
+
nativeDb.openIModel(pathname, OpenMode.ReadWrite, upgradeOptions);
|
|
123
|
+
nativeDb.deleteAllTxns();
|
|
124
|
+
nativeDb.closeFile();
|
|
125
|
+
};
|
|
126
|
+
before(async () => {
|
|
127
|
+
IModelTestUtils.registerTestBimSchema();
|
|
128
|
+
// make a unique name for the output file so this test can be run in parallel
|
|
129
|
+
testFileName = IModelTestUtils.prepareOutputFile("ElementDependencyGraph", `${Guid.createValue()}.bim`);
|
|
130
|
+
const seedFileName = IModelTestUtils.resolveAssetFile("test.bim");
|
|
131
|
+
const schemaFileName = IModelTestUtils.resolveAssetFile("TestBim.ecschema.xml");
|
|
132
|
+
IModelJsFs.copySync(seedFileName, testFileName);
|
|
133
|
+
performUpgrade(testFileName);
|
|
134
|
+
const imodel = StandaloneDb.openFile(testFileName, OpenMode.ReadWrite);
|
|
135
|
+
await imodel.importSchemas([schemaFileName]); // will throw an exception if import fails
|
|
136
|
+
imodel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
|
|
137
|
+
const physicalModelId = PhysicalModel.insert(imodel, IModel.rootSubjectId, "EDGTestModel");
|
|
138
|
+
const codeSpecId = imodel.codeSpecs.insert(CodeSpec.create(imodel, "EDGTestCodeSpec", CodeScopeSpec.Type.Model));
|
|
139
|
+
const spatialCategoryId = SpatialCategory.insert(imodel, IModel.dictionaryId, "EDGTestSpatialCategory", new SubCategoryAppearance({ color: ColorByName.darkRed }));
|
|
140
|
+
dbInfo = { physicalModelId, codeSpecId, spatialCategoryId, seedFileName: testFileName };
|
|
141
|
+
imodel.saveChanges("");
|
|
142
|
+
imodel[_nativeDb].deleteAllTxns();
|
|
143
|
+
imodel.close();
|
|
144
|
+
});
|
|
145
|
+
after(() => {
|
|
146
|
+
IModelJsFs.removeSync(testFileName);
|
|
147
|
+
});
|
|
148
|
+
it("should invokeCallbacks EDE only", () => {
|
|
149
|
+
const helper = new TestHelper("EDE", dbInfo);
|
|
150
|
+
const e1id = helper.insertElement("e1");
|
|
151
|
+
const e2id = helper.insertElement("e2");
|
|
152
|
+
const e3id = helper.insertElement("e3");
|
|
153
|
+
helper.db.saveChanges(); // get the elements into the iModel
|
|
154
|
+
const ede_1_2 = TestElementDrivesElement.create(helper.db, e1id, e2id);
|
|
155
|
+
const ede_2_3 = TestElementDrivesElement.create(helper.db, e2id, e3id);
|
|
156
|
+
for (const ede of [ede_1_2, ede_2_3]) {
|
|
157
|
+
ede.insert();
|
|
158
|
+
}
|
|
159
|
+
// The full graph:
|
|
160
|
+
// e1 --> e2 --> e3
|
|
161
|
+
helper.resetDependencyResults();
|
|
162
|
+
helper.db.saveChanges(); // this will react to EDE inserts only.
|
|
163
|
+
assert.deepEqual(helper.dres.beforeOutputs, []); // only roots get this callback, and only if they have been directly changed.
|
|
164
|
+
assert.deepEqual(helper.dres.allInputsHandled, []); // No input elements have changed
|
|
165
|
+
assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON()]); // we send out this callback even if only the relationship itself is new or changed.
|
|
166
|
+
helper.updateElement(e1id, "change e1");
|
|
167
|
+
helper.resetDependencyResults();
|
|
168
|
+
helper.db.saveChanges();
|
|
169
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e1id]); // only called on directly changed root elements.
|
|
170
|
+
assert.deepEqual(helper.dres.allInputsHandled, [e2id, e3id]);
|
|
171
|
+
assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON()]);
|
|
172
|
+
helper.terminate();
|
|
173
|
+
});
|
|
174
|
+
it("should invokeCallbacks through parents only", () => {
|
|
175
|
+
const helper = new TestHelper("Parents", dbInfo);
|
|
176
|
+
const p2id = helper.insertElement("p2");
|
|
177
|
+
const e1id = helper.insertElement("e1", { id: p2id, relClassName: "TestBim.ChildPropagatesChangesToParent" });
|
|
178
|
+
helper.db.saveChanges(); // get the elements into the iModel
|
|
179
|
+
// The full graph:
|
|
180
|
+
// .-parent-> p2
|
|
181
|
+
// /
|
|
182
|
+
// e1
|
|
183
|
+
//
|
|
184
|
+
helper.resetDependencyResults();
|
|
185
|
+
helper.db.saveChanges();
|
|
186
|
+
assert.deepEqual(helper.dres.beforeOutputs, []); // only roots get this callback, and only if they have been directly changed.
|
|
187
|
+
assert.deepEqual(helper.dres.allInputsHandled, []); // No input elements have changed
|
|
188
|
+
assertRels(helper.dres.rootChanged, []); // we send out this callback even if only the relationship itself is new or changed.
|
|
189
|
+
helper.updateElement(e1id, "change e1");
|
|
190
|
+
helper.resetDependencyResults();
|
|
191
|
+
helper.db.saveChanges();
|
|
192
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e1id]); // only called on directly changed root elements.
|
|
193
|
+
assert.deepEqual(helper.dres.allInputsHandled, [p2id]);
|
|
194
|
+
assertRels(helper.dres.rootChanged, []);
|
|
195
|
+
helper.updateElement(p2id, "change p2");
|
|
196
|
+
helper.resetDependencyResults();
|
|
197
|
+
helper.db.saveChanges();
|
|
198
|
+
assert.deepEqual(helper.dres.beforeOutputs, []); // only called on directly changed root elements
|
|
199
|
+
assert.deepEqual(helper.dres.allInputsHandled, []);
|
|
200
|
+
assertRels(helper.dres.rootChanged, []);
|
|
201
|
+
helper.terminate();
|
|
202
|
+
});
|
|
203
|
+
it("should invokeCallbacks through EDEs and parents", () => {
|
|
204
|
+
const helper = new TestHelper("EDEsAndParents", dbInfo);
|
|
205
|
+
const p2id = helper.insertElement("p2");
|
|
206
|
+
const p3id = helper.insertElement("p3");
|
|
207
|
+
const e1id = helper.insertElement("e1", { id: p2id, relClassName: "TestBim.ChildPropagatesChangesToParent" });
|
|
208
|
+
const e2id = helper.insertElement("e2");
|
|
209
|
+
const e3id = helper.insertElement("e3");
|
|
210
|
+
helper.db.saveChanges(); // get the elements into the iModel
|
|
211
|
+
const ede_1_2 = TestElementDrivesElement.create(helper.db, e1id, e2id);
|
|
212
|
+
const ede_2_3 = TestElementDrivesElement.create(helper.db, e2id, e3id);
|
|
213
|
+
const ede_p2_p3 = TestElementDrivesElement.create(helper.db, p2id, p3id);
|
|
214
|
+
for (const ede of [ede_1_2, ede_2_3, ede_p2_p3]) {
|
|
215
|
+
ede.insert();
|
|
216
|
+
}
|
|
217
|
+
// db[_nativeDb].writeFullElementDependencyGraphToFile(`${writeDbFileName}.dot`);
|
|
218
|
+
// The full graph:
|
|
219
|
+
// .-parent-> p2 -EDE-> p3
|
|
220
|
+
// /
|
|
221
|
+
// e1 -EDE-> e2 -EDE-> e3
|
|
222
|
+
//
|
|
223
|
+
helper.resetDependencyResults();
|
|
224
|
+
helper.db.saveChanges(); // this will react to EDE inserts only.
|
|
225
|
+
assert.deepEqual(helper.dres.beforeOutputs, []); // only roots get this callback, and only if they have been directly changed.
|
|
226
|
+
assert.deepEqual(helper.dres.allInputsHandled, []); // No input elements have changed
|
|
227
|
+
assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON(), ede_p2_p3.toJSON()]); // we send out this callback even if only the relationship itself is new or changed.
|
|
228
|
+
helper.updateElement(e1id, "change e1");
|
|
229
|
+
helper.resetDependencyResults();
|
|
230
|
+
helper.db.saveChanges();
|
|
231
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e1id]); // only called on directly changed root elements.
|
|
232
|
+
assert.deepEqual(helper.dres.allInputsHandled, [e2id, p2id, e3id, p3id]);
|
|
233
|
+
assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON(), ede_p2_p3.toJSON()]);
|
|
234
|
+
helper.updateElement(p2id, "change p2");
|
|
235
|
+
helper.resetDependencyResults();
|
|
236
|
+
helper.db.saveChanges();
|
|
237
|
+
assert.deepEqual(helper.dres.beforeOutputs, [p2id]); // only called on directly changed root elements.
|
|
238
|
+
assert.deepEqual(helper.dres.allInputsHandled, [p3id]);
|
|
239
|
+
assertRels(helper.dres.rootChanged, [ede_p2_p3.toJSON()]);
|
|
240
|
+
helper.updateElement(e2id, "change e2");
|
|
241
|
+
helper.resetDependencyResults();
|
|
242
|
+
helper.db.saveChanges();
|
|
243
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e2id]); // only called on directly changed root elements.
|
|
244
|
+
assert.deepEqual(helper.dres.allInputsHandled, [e3id]);
|
|
245
|
+
assertRels(helper.dres.rootChanged, [ede_2_3.toJSON()]);
|
|
246
|
+
helper.terminate();
|
|
247
|
+
});
|
|
248
|
+
it("should invokeCallbacks through parents - geomodeler schema", () => {
|
|
249
|
+
const helper = new TestHelper("GeoModeler", dbInfo);
|
|
250
|
+
// The full graph:
|
|
251
|
+
// BoreholeSource -EDE-> GroundGeneration
|
|
252
|
+
// / parent
|
|
253
|
+
// Borehole
|
|
254
|
+
// / parent
|
|
255
|
+
// Material -EDE-> MaterialDepthRange
|
|
256
|
+
const boreholeSource = helper.insertElement("BoreholeSource");
|
|
257
|
+
const borehole = helper.insertElement("Borehole", { id: boreholeSource, relClassName: "TestBim.ChildPropagatesChangesToParent" });
|
|
258
|
+
const materialDepthRange = helper.insertElement("MaterialDepthRange", { id: borehole, relClassName: "TestBim.ChildPropagatesChangesToParent" });
|
|
259
|
+
const material = helper.insertElement("Material");
|
|
260
|
+
const groundGeneration = helper.insertElement("GroundGeneration");
|
|
261
|
+
helper.db.saveChanges(); // get the elements into the iModel
|
|
262
|
+
const ede_material_materialDepthRange = TestElementDrivesElement.create(helper.db, material, materialDepthRange);
|
|
263
|
+
const ede_boreholeSource_groundGeneration = TestElementDrivesElement.create(helper.db, boreholeSource, groundGeneration);
|
|
264
|
+
for (const ede of [ede_material_materialDepthRange, ede_boreholeSource_groundGeneration]) {
|
|
265
|
+
ede.insert();
|
|
266
|
+
}
|
|
267
|
+
helper.resetDependencyResults();
|
|
268
|
+
helper.db.saveChanges();
|
|
269
|
+
helper.updateElement(material, "change material");
|
|
270
|
+
helper.resetDependencyResults();
|
|
271
|
+
helper.db.saveChanges();
|
|
272
|
+
assert.deepEqual(helper.dres.beforeOutputs, [material]); // only called on directly changed root elements.
|
|
273
|
+
assert.deepEqual(helper.dres.allInputsHandled, [materialDepthRange, borehole, boreholeSource, groundGeneration]);
|
|
274
|
+
assertRels(helper.dres.rootChanged, [ede_material_materialDepthRange.toJSON(), ede_boreholeSource_groundGeneration.toJSON()]);
|
|
275
|
+
helper.terminate();
|
|
276
|
+
});
|
|
277
|
+
it("should invokeCallbacks many:1", () => {
|
|
278
|
+
const helper = new TestHelper("ManyToOne", dbInfo);
|
|
279
|
+
const e1id = helper.insertElement("e1");
|
|
280
|
+
const e11id = helper.insertElement("e11");
|
|
281
|
+
const e2id = helper.insertElement("e2");
|
|
282
|
+
const e21id = helper.insertElement("e21");
|
|
283
|
+
const e3id = helper.insertElement("e3");
|
|
284
|
+
const e4id = helper.insertElement("e4");
|
|
285
|
+
const ede_1_2 = TestElementDrivesElement.create(helper.db, e1id, e2id);
|
|
286
|
+
const ede_11_2 = TestElementDrivesElement.create(helper.db, e11id, e2id);
|
|
287
|
+
const ede_2_3 = TestElementDrivesElement.create(helper.db, e2id, e3id);
|
|
288
|
+
const ede_21_3 = TestElementDrivesElement.create(helper.db, e21id, e3id);
|
|
289
|
+
const ede_3_4 = TestElementDrivesElement.create(helper.db, e3id, e4id);
|
|
290
|
+
for (const ede of [ede_1_2, ede_11_2, ede_2_3, ede_21_3, ede_3_4]) {
|
|
291
|
+
ede.insert();
|
|
292
|
+
}
|
|
293
|
+
// The full graph:
|
|
294
|
+
// e21
|
|
295
|
+
// \
|
|
296
|
+
// e1 --> e2 --> e3 --> e4
|
|
297
|
+
// /
|
|
298
|
+
// e11
|
|
299
|
+
// On the very first validation, everything is new and is considered directly changed
|
|
300
|
+
// resulting graph:
|
|
301
|
+
// e21
|
|
302
|
+
// \
|
|
303
|
+
// e1 --> e2 --> e3 --> e4
|
|
304
|
+
// /
|
|
305
|
+
// e11
|
|
306
|
+
helper.resetDependencyResults();
|
|
307
|
+
helper.db.saveChanges();
|
|
308
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e1id, e11id, e21id]); // only called on directly changed root elements.
|
|
309
|
+
assert.deepEqual(helper.dres.allInputsHandled, [e2id, e3id, e4id]);
|
|
310
|
+
assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_11_2.toJSON(), ede_2_3.toJSON(), ede_21_3.toJSON(), ede_3_4.toJSON()]);
|
|
311
|
+
// modify e4 directly. That is a leaf. None of its inputs are changed.
|
|
312
|
+
// resulting subgraph:
|
|
313
|
+
// *
|
|
314
|
+
// e4
|
|
315
|
+
//
|
|
316
|
+
//
|
|
317
|
+
helper.updateElement(e4id, "change e4");
|
|
318
|
+
helper.resetDependencyResults();
|
|
319
|
+
helper.db.saveChanges();
|
|
320
|
+
assert.deepEqual(helper.dres.beforeOutputs, []); // only called on directly changed root elements.
|
|
321
|
+
assert.deepEqual(helper.dres.allInputsHandled, []);
|
|
322
|
+
assertRels(helper.dres.rootChanged, []);
|
|
323
|
+
// modify e3 directly.
|
|
324
|
+
// resulting subgraph:
|
|
325
|
+
//
|
|
326
|
+
//
|
|
327
|
+
// *
|
|
328
|
+
// e3 --> e4
|
|
329
|
+
//
|
|
330
|
+
//
|
|
331
|
+
helper.updateElement(e3id, "change e3");
|
|
332
|
+
helper.resetDependencyResults();
|
|
333
|
+
helper.db.saveChanges();
|
|
334
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e3id]); // only called on directly changed root elements.
|
|
335
|
+
assert.deepEqual(helper.dres.allInputsHandled, [e4id]);
|
|
336
|
+
assertRels(helper.dres.rootChanged, [ede_3_4.toJSON()]);
|
|
337
|
+
// modify e2 directly. That is a node in middle of the graph. None of its inputs is modified.
|
|
338
|
+
// resulting subgraph:
|
|
339
|
+
//
|
|
340
|
+
// *
|
|
341
|
+
// e2 --> e3 --> e4
|
|
342
|
+
//
|
|
343
|
+
//
|
|
344
|
+
//
|
|
345
|
+
helper.updateElement(e2id, "change e2");
|
|
346
|
+
helper.resetDependencyResults();
|
|
347
|
+
helper.db.saveChanges();
|
|
348
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e2id]); // only called on directly changed root elements
|
|
349
|
+
assert.deepEqual(helper.dres.allInputsHandled, [e3id, e4id]);
|
|
350
|
+
assertRels(helper.dres.rootChanged, [ede_2_3.toJSON(), ede_3_4.toJSON()]);
|
|
351
|
+
// Modify e1 directly. That should propagate to the rest of the nodes. Each should get an _onAllInputsHandled callback
|
|
352
|
+
// resulting graph:
|
|
353
|
+
//
|
|
354
|
+
// *
|
|
355
|
+
// e1 --> e2 --> e3 --> e4
|
|
356
|
+
//
|
|
357
|
+
helper.updateElement(e1id, "change e1");
|
|
358
|
+
helper.resetDependencyResults();
|
|
359
|
+
helper.db.saveChanges();
|
|
360
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e1id]); // only called on directly changed root elements
|
|
361
|
+
assert.deepEqual(helper.dres.allInputsHandled, [e2id, e3id, e4id]);
|
|
362
|
+
assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON(), ede_3_4.toJSON()]);
|
|
363
|
+
// Modify e11 directly. That should propagate to the rest of the nodes. Each should get an _onAllInputsHandled callback
|
|
364
|
+
// resulting graph:
|
|
365
|
+
//
|
|
366
|
+
// > e2 --> e3 --> e4
|
|
367
|
+
// /
|
|
368
|
+
// e11
|
|
369
|
+
// *
|
|
370
|
+
//
|
|
371
|
+
// Note that the e1 -> e2 and e21 -> e3 edges are NOT in the sub-graph. These edges should be validated, nevertheless -- TBD
|
|
372
|
+
helper.updateElement(e11id, "change e11");
|
|
373
|
+
helper.resetDependencyResults();
|
|
374
|
+
helper.db.saveChanges();
|
|
375
|
+
// assert.deepEqual(helper.dres.directChange, []); // only called on directly changed non-root elements that have no directly changed inputs
|
|
376
|
+
assert.deepEqual(helper.dres.beforeOutputs, [e11id]); // only called on directly changed root elements
|
|
377
|
+
assert.deepEqual(helper.dres.allInputsHandled, [e2id, e3id, e4id]);
|
|
378
|
+
assertRels(helper.dres.rootChanged, [ede_11_2.toJSON(), ede_2_3.toJSON(), ede_3_4.toJSON()]);
|
|
379
|
+
// assertRels(helper.dres.validateOutput, [ede_1_2, ede_21_3]); // this callback is made only on rels that not in the graph but share an output with another rel or have an output that was directly changed
|
|
380
|
+
helper.terminate();
|
|
381
|
+
});
|
|
382
|
+
});
|
|
383
|
+
//# sourceMappingURL=ElementDependencyGraph.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ElementDependencyGraph.test.js","sourceRoot":"","sources":["../../../../src/test/element/ElementDependencyGraph.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/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { assert } from \"chai\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { Guid, Id64Array, Id64String, Logger, OpenMode } from \"@itwin/core-bentley\";\nimport {\n CodeScopeSpec, CodeSpec, ColorByName, DomainOptions, GeometryStreamBuilder, IModel, RelatedElementProps, RelationshipProps, SubCategoryAppearance,\n UpgradeOptions,\n} from \"@itwin/core-common\";\nimport { LineSegment3d, Point3d, YawPitchRollAngles } from \"@itwin/core-geometry\";\nimport { _nativeDb, ChannelControl, ElementDrivesElementProps, IModelJsFs, PhysicalModel, SpatialCategory, StandaloneDb } from \"../../core-backend\";\nimport { IModelTestUtils, TestElementDrivesElement, TestPhysicalObject, TestPhysicalObjectProps } from \"../IModelTestUtils\";\nimport { IModelNative } from \"../../internal/NativePlatform\";\n\nexport function copyFile(newName: string, pathToCopy: string): string {\n const newPath = path.join(path.dirname(pathToCopy), newName);\n try {\n fs.unlinkSync(newPath);\n } catch {\n }\n fs.copyFileSync(pathToCopy, newPath);\n return newPath;\n}\n\nfunction assertRels(list: RelationshipProps[], rels: ElementDrivesElementProps[]) {\n assert.equal(list.length, rels.length);\n for (let i = 0; i < rels.length; ++i) {\n assert.equal(list[i].id, rels[i].id);\n }\n}\n\nclass DependencyCallbackResults {\n public beforeOutputs: Id64Array = [];\n public allInputsHandled: Id64Array = [];\n public rootChanged: RelationshipProps[] = [];\n public deletedDependency: RelationshipProps[] = [];\n}\n\ninterface DbInfo {\n seedFileName: string;\n codeSpecId: Id64String;\n physicalModelId: Id64String;\n spatialCategoryId: Id64String;\n}\n\nclass TestHelper {\n public db: StandaloneDb;\n public dres = new DependencyCallbackResults();\n private removals: VoidFunction[] = [];\n private codeSpecId: Id64String = \"\";\n private physicalModelId: Id64String = \"\";\n private spatialCategoryid: Id64String = \"\";\n\n constructor(testName: string, dbInfo: DbInfo) {\n this.codeSpecId = dbInfo.codeSpecId;\n this.physicalModelId = dbInfo.physicalModelId;\n this.spatialCategoryid = dbInfo.spatialCategoryId;\n\n const writeDbFileName = copyFile(`${testName}.bim`, dbInfo.seedFileName);\n this.db = StandaloneDb.openFile(writeDbFileName, OpenMode.ReadWrite);\n assert.isTrue(this.db !== undefined);\n this.db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n\n this.db[_nativeDb].enableTxnTesting();\n assert.equal(this.db[_nativeDb].addChildPropagatesChangesToParentRelationship(\"TestBim\", \"ChildPropagatesChangesToParent\"), 0);\n this.setElementDependencyGraphCallbacks();\n }\n\n public terminate() {\n this.db.close();\n assert.isFalse(this.db.isOpen);\n this.removeElementDependencyGraphCallbacks();\n }\n\n public makeElement(codeValue: string, parent?: RelatedElementProps): TestPhysicalObjectProps {\n const builder = new GeometryStreamBuilder();\n builder.appendGeometry(LineSegment3d.create(Point3d.createZero(), Point3d.create(5, 0, 0)));\n\n return {\n classFullName: \"TestBim:TestPhysicalObject\",\n model: this.physicalModelId,\n category: this.spatialCategoryid,\n code: { spec: this.codeSpecId, scope: this.physicalModelId, value: codeValue },\n intProperty: 100,\n placement: {\n origin: new Point3d(0, 0, 0),\n angles: new YawPitchRollAngles(),\n },\n geom: builder.geometryStream,\n parent,\n };\n }\n\n public insertElement(codeValue: string, parent?: RelatedElementProps): Id64String {\n return this.db.elements.insertElement(this.makeElement(codeValue, parent));\n }\n\n public updateElement(elid: Id64String, newLabel: string) {\n const ed2 = this.db.elements.getElement({ id: elid });\n ed2.userLabel = newLabel;\n this.db.elements.updateElement(ed2.toJSON());\n }\n\n public fmtElem(elId: Id64String) { return this.db.elements.getElement(elId).code.value; }\n public fmtRel(props: RelationshipProps) { return `${props.classFullName} ${this.fmtElem(props.sourceId)} --> ${this.fmtElem(props.targetId)}`; }\n\n public resetDependencyResults() {\n this.dres = new DependencyCallbackResults();\n }\n\n public setElementDependencyGraphCallbacks() {\n this.removals.push(TestElementDrivesElement.deletedDependency.addListener((evProps) => {\n Logger.logTrace(\"EDGTest\", `_onDeletedDependency ${this.fmtRel(evProps)}`);\n this.dres.deletedDependency.push(evProps);\n }));\n this.removals.push(TestElementDrivesElement.rootChanged.addListener((evProps, _im) => {\n Logger.logTrace(\"EDGTest\", `_onRootChanged ${this.fmtRel(evProps)}`);\n this.dres.rootChanged.push(evProps);\n }));\n this.removals.push(TestPhysicalObject.beforeOutputsHandled.addListener((elId) => {\n Logger.logTrace(\"EDGTest\", `_onBeforeOutputsHandled ${this.fmtElem(elId)}`);\n this.dres.beforeOutputs.push(elId);\n }));\n this.removals.push(TestPhysicalObject.allInputsHandled.addListener((elId) => {\n Logger.logTrace(\"EDGTest\", `_onAllInputsHandled ${this.fmtElem(elId)}`);\n this.dres.allInputsHandled.push(elId);\n }));\n }\n\n public removeElementDependencyGraphCallbacks() {\n this.removals.forEach((drop) => drop());\n }\n}\n\ndescribe(\"ElementDependencyGraph\", () => {\n let testFileName: string;\n let dbInfo: DbInfo;\n\n const performUpgrade = (pathname: string) => {\n const nativeDb = new IModelNative.platform.DgnDb();\n const upgradeOptions: UpgradeOptions = {\n domain: DomainOptions.Upgrade,\n schemaLockHeld: true,\n };\n nativeDb.openIModel(pathname, OpenMode.ReadWrite, upgradeOptions);\n nativeDb.deleteAllTxns();\n nativeDb.closeFile();\n };\n\n before(async () => {\n IModelTestUtils.registerTestBimSchema();\n // make a unique name for the output file so this test can be run in parallel\n testFileName = IModelTestUtils.prepareOutputFile(\"ElementDependencyGraph\", `${Guid.createValue()}.bim`);\n const seedFileName = IModelTestUtils.resolveAssetFile(\"test.bim\");\n const schemaFileName = IModelTestUtils.resolveAssetFile(\"TestBim.ecschema.xml\");\n IModelJsFs.copySync(seedFileName, testFileName);\n performUpgrade(testFileName);\n const imodel = StandaloneDb.openFile(testFileName, OpenMode.ReadWrite);\n await imodel.importSchemas([schemaFileName]); // will throw an exception if import fails\n imodel.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n const physicalModelId = PhysicalModel.insert(imodel, IModel.rootSubjectId, \"EDGTestModel\");\n const codeSpecId = imodel.codeSpecs.insert(CodeSpec.create(imodel, \"EDGTestCodeSpec\", CodeScopeSpec.Type.Model));\n const spatialCategoryId = SpatialCategory.insert(imodel, IModel.dictionaryId, \"EDGTestSpatialCategory\", new SubCategoryAppearance({ color: ColorByName.darkRed }));\n dbInfo = { physicalModelId, codeSpecId, spatialCategoryId, seedFileName: testFileName };\n imodel.saveChanges(\"\");\n imodel[_nativeDb].deleteAllTxns();\n imodel.close();\n });\n\n after(() => {\n IModelJsFs.removeSync(testFileName);\n });\n\n it(\"should invokeCallbacks EDE only\", () => {\n const helper = new TestHelper(\"EDE\", dbInfo);\n\n const e1id = helper.insertElement(\"e1\");\n const e2id = helper.insertElement(\"e2\");\n const e3id = helper.insertElement(\"e3\");\n helper.db.saveChanges(); // get the elements into the iModel\n\n const ede_1_2 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e1id, e2id);\n const ede_2_3 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e2id, e3id);\n for (const ede of [ede_1_2, ede_2_3]) {\n ede.insert();\n }\n\n // The full graph:\n // e1 --> e2 --> e3\n\n helper.resetDependencyResults();\n helper.db.saveChanges(); // this will react to EDE inserts only.\n assert.deepEqual(helper.dres.beforeOutputs, []); // only roots get this callback, and only if they have been directly changed.\n assert.deepEqual(helper.dres.allInputsHandled, []); // No input elements have changed\n assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON()]); // we send out this callback even if only the relationship itself is new or changed.\n\n helper.updateElement(e1id, \"change e1\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [e1id]); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, [e2id, e3id]);\n assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON()]);\n\n helper.terminate();\n });\n\n it(\"should invokeCallbacks through parents only\", () => {\n const helper = new TestHelper(\"Parents\", dbInfo);\n\n const p2id = helper.insertElement(\"p2\");\n const e1id = helper.insertElement(\"e1\", { id: p2id, relClassName: \"TestBim.ChildPropagatesChangesToParent\" });\n helper.db.saveChanges(); // get the elements into the iModel\n\n // The full graph:\n // .-parent-> p2\n // /\n // e1\n //\n helper.resetDependencyResults();\n helper.db.saveChanges();\n assert.deepEqual(helper.dres.beforeOutputs, []); // only roots get this callback, and only if they have been directly changed.\n assert.deepEqual(helper.dres.allInputsHandled, []); // No input elements have changed\n assertRels(helper.dres.rootChanged, []); // we send out this callback even if only the relationship itself is new or changed.\n\n helper.updateElement(e1id, \"change e1\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [e1id]); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, [p2id]);\n assertRels(helper.dres.rootChanged, []);\n\n helper.updateElement(p2id, \"change p2\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, []); // only called on directly changed root elements\n assert.deepEqual(helper.dres.allInputsHandled, []);\n assertRels(helper.dres.rootChanged, []);\n\n helper.terminate();\n });\n\n it(\"should invokeCallbacks through EDEs and parents\", () => {\n const helper = new TestHelper(\"EDEsAndParents\", dbInfo);\n\n const p2id = helper.insertElement(\"p2\");\n const p3id = helper.insertElement(\"p3\");\n const e1id = helper.insertElement(\"e1\", { id: p2id, relClassName: \"TestBim.ChildPropagatesChangesToParent\" });\n const e2id = helper.insertElement(\"e2\");\n const e3id = helper.insertElement(\"e3\");\n helper.db.saveChanges(); // get the elements into the iModel\n\n const ede_1_2 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e1id, e2id);\n const ede_2_3 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e2id, e3id);\n const ede_p2_p3 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, p2id, p3id);\n for (const ede of [ede_1_2, ede_2_3, ede_p2_p3]) {\n ede.insert();\n }\n\n // db[_nativeDb].writeFullElementDependencyGraphToFile(`${writeDbFileName}.dot`);\n\n // The full graph:\n // .-parent-> p2 -EDE-> p3\n // /\n // e1 -EDE-> e2 -EDE-> e3\n //\n helper.resetDependencyResults();\n helper.db.saveChanges(); // this will react to EDE inserts only.\n assert.deepEqual(helper.dres.beforeOutputs, []); // only roots get this callback, and only if they have been directly changed.\n assert.deepEqual(helper.dres.allInputsHandled, []); // No input elements have changed\n assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON(), ede_p2_p3.toJSON()]); // we send out this callback even if only the relationship itself is new or changed.\n\n helper.updateElement(e1id, \"change e1\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [e1id]); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, [e2id, p2id, e3id, p3id]);\n assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON(), ede_p2_p3.toJSON()]);\n\n helper.updateElement(p2id, \"change p2\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [p2id]); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, [p3id]);\n assertRels(helper.dres.rootChanged, [ede_p2_p3.toJSON()]);\n\n helper.updateElement(e2id, \"change e2\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [e2id]); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, [e3id]);\n assertRels(helper.dres.rootChanged, [ede_2_3.toJSON()]);\n\n helper.terminate();\n });\n\n it(\"should invokeCallbacks through parents - geomodeler schema\", () => {\n const helper = new TestHelper(\"GeoModeler\", dbInfo);\n\n // The full graph:\n // BoreholeSource -EDE-> GroundGeneration\n // / parent\n // Borehole\n // / parent\n // Material -EDE-> MaterialDepthRange\n\n const boreholeSource = helper.insertElement(\"BoreholeSource\");\n const borehole = helper.insertElement(\"Borehole\", { id: boreholeSource, relClassName: \"TestBim.ChildPropagatesChangesToParent\" });\n const materialDepthRange = helper.insertElement(\"MaterialDepthRange\", { id: borehole, relClassName: \"TestBim.ChildPropagatesChangesToParent\" });\n const material = helper.insertElement(\"Material\");\n const groundGeneration = helper.insertElement(\"GroundGeneration\");\n helper.db.saveChanges(); // get the elements into the iModel\n\n const ede_material_materialDepthRange = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, material, materialDepthRange);\n const ede_boreholeSource_groundGeneration = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, boreholeSource, groundGeneration);\n for (const ede of [ede_material_materialDepthRange, ede_boreholeSource_groundGeneration]) {\n ede.insert();\n }\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n helper.updateElement(material, \"change material\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [material]); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, [materialDepthRange, borehole, boreholeSource, groundGeneration]);\n assertRels(helper.dres.rootChanged, [ede_material_materialDepthRange.toJSON(), ede_boreholeSource_groundGeneration.toJSON()]);\n\n helper.terminate();\n });\n\n it(\"should invokeCallbacks many:1\", () => {\n const helper = new TestHelper(\"ManyToOne\", dbInfo);\n\n const e1id = helper.insertElement(\"e1\");\n const e11id = helper.insertElement(\"e11\");\n const e2id = helper.insertElement(\"e2\");\n const e21id = helper.insertElement(\"e21\");\n const e3id = helper.insertElement(\"e3\");\n const e4id = helper.insertElement(\"e4\");\n\n const ede_1_2 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e1id, e2id);\n const ede_11_2 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e11id, e2id);\n const ede_2_3 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e2id, e3id);\n const ede_21_3 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e21id, e3id);\n const ede_3_4 = TestElementDrivesElement.create<TestElementDrivesElement>(helper.db, e3id, e4id);\n for (const ede of [ede_1_2, ede_11_2, ede_2_3, ede_21_3, ede_3_4]) {\n ede.insert();\n }\n\n // The full graph:\n // e21\n // \\\n // e1 --> e2 --> e3 --> e4\n // /\n // e11\n\n // On the very first validation, everything is new and is considered directly changed\n // resulting graph:\n // e21\n // \\\n // e1 --> e2 --> e3 --> e4\n // /\n // e11\n helper.resetDependencyResults();\n helper.db.saveChanges();\n assert.deepEqual(helper.dres.beforeOutputs, [e1id, e11id, e21id]); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, [e2id, e3id, e4id]);\n assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_11_2.toJSON(), ede_2_3.toJSON(), ede_21_3.toJSON(), ede_3_4.toJSON()]);\n\n // modify e4 directly. That is a leaf. None of its inputs are changed.\n // resulting subgraph:\n // *\n // e4\n //\n //\n helper.updateElement(e4id, \"change e4\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, []); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, []);\n assertRels(helper.dres.rootChanged, []);\n\n // modify e3 directly.\n // resulting subgraph:\n //\n //\n // *\n // e3 --> e4\n //\n //\n helper.updateElement(e3id, \"change e3\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [e3id]); // only called on directly changed root elements.\n assert.deepEqual(helper.dres.allInputsHandled, [e4id]);\n assertRels(helper.dres.rootChanged, [ede_3_4.toJSON()]);\n\n // modify e2 directly. That is a node in middle of the graph. None of its inputs is modified.\n // resulting subgraph:\n //\n // *\n // e2 --> e3 --> e4\n //\n //\n //\n helper.updateElement(e2id, \"change e2\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [e2id]); // only called on directly changed root elements\n assert.deepEqual(helper.dres.allInputsHandled, [e3id, e4id]);\n assertRels(helper.dres.rootChanged, [ede_2_3.toJSON(), ede_3_4.toJSON()]);\n\n // Modify e1 directly. That should propagate to the rest of the nodes. Each should get an _onAllInputsHandled callback\n // resulting graph:\n //\n // *\n // e1 --> e2 --> e3 --> e4\n //\n helper.updateElement(e1id, \"change e1\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n assert.deepEqual(helper.dres.beforeOutputs, [e1id]); // only called on directly changed root elements\n assert.deepEqual(helper.dres.allInputsHandled, [e2id, e3id, e4id]);\n assertRels(helper.dres.rootChanged, [ede_1_2.toJSON(), ede_2_3.toJSON(), ede_3_4.toJSON()]);\n\n // Modify e11 directly. That should propagate to the rest of the nodes. Each should get an _onAllInputsHandled callback\n // resulting graph:\n //\n // > e2 --> e3 --> e4\n // /\n // e11\n // *\n //\n // Note that the e1 -> e2 and e21 -> e3 edges are NOT in the sub-graph. These edges should be validated, nevertheless -- TBD\n helper.updateElement(e11id, \"change e11\");\n\n helper.resetDependencyResults();\n helper.db.saveChanges();\n\n // assert.deepEqual(helper.dres.directChange, []); // only called on directly changed non-root elements that have no directly changed inputs\n assert.deepEqual(helper.dres.beforeOutputs, [e11id]); // only called on directly changed root elements\n assert.deepEqual(helper.dres.allInputsHandled, [e2id, e3id, e4id]);\n assertRels(helper.dres.rootChanged, [ede_11_2.toJSON(), ede_2_3.toJSON(), ede_3_4.toJSON()]);\n // assertRels(helper.dres.validateOutput, [ede_1_2, ede_21_3]); // this callback is made only on rels that not in the graph but share an output with another rel or have an output that was directly changed\n\n helper.terminate();\n });\n\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ElementRoundTrip.test.d.ts","sourceRoot":"","sources":["../../../../src/test/element/ElementRoundTrip.test.ts"],"names":[],"mappings":""}
|