@itwin/core-backend 5.10.0-dev.9 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -1
- package/lib/cjs/BriefcaseManager.d.ts +8 -1
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.d.ts +4 -4
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts +6 -6
- package/lib/cjs/ChangesetECAdaptor.js +4 -4
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChangesetReader.d.ts +84 -1
- package/lib/cjs/ChangesetReader.d.ts.map +1 -1
- package/lib/cjs/ChangesetReader.js +108 -12
- package/lib/cjs/ChangesetReader.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +3 -3
- package/lib/cjs/ClassRegistry.js +3 -3
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +3 -3
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +2 -2
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +4 -0
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/ECSqlSyncReader.d.ts.map +1 -1
- package/lib/cjs/ECSqlSyncReader.js +1 -0
- package/lib/cjs/ECSqlSyncReader.js.map +1 -1
- package/lib/cjs/Element.d.ts +16 -13
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +8 -5
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +1 -1
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts +5 -5
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +13 -5
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +13 -5
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/ExternalSource.d.ts +2 -2
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +112 -40
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +215 -42
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/LineStyle.d.ts +6 -6
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.d.ts +6 -0
- package/lib/cjs/LocalHub.d.ts.map +1 -1
- package/lib/cjs/LocalHub.js +23 -0
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/Material.d.ts +1 -1
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +6 -6
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/Relationship.d.ts +13 -11
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +9 -7
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/SheetIndex.d.ts +4 -4
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/Texture.d.ts +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +7 -0
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +6 -6
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.js +2 -3
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +6 -2
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +1 -0
- package/lib/cjs/domains/FunctionalElements.d.ts +1 -1
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/GenericElements.d.ts +2 -2
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts +2 -2
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js +23 -4
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/HubMock.d.ts +24 -1
- package/lib/cjs/internal/HubMock.d.ts.map +1 -1
- package/lib/cjs/internal/HubMock.js +60 -39
- package/lib/cjs/internal/HubMock.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.d.ts +19 -1
- package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js +55 -1
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/cross-package.d.ts +1 -1
- package/lib/cjs/internal/cross-package.d.ts.map +1 -1
- package/lib/cjs/internal/cross-package.js +1 -2
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.d.ts.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js +55 -9
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js +7 -11
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.d.ts +20 -3
- package/lib/cjs/workspace/SettingsSchemas.d.ts.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +3 -1
- package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/esm/BriefcaseManager.d.ts +8 -1
- package/lib/esm/BriefcaseManager.d.ts.map +1 -1
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/Category.d.ts +4 -4
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts +6 -6
- package/lib/esm/ChangesetECAdaptor.js +4 -4
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChangesetReader.d.ts +84 -1
- package/lib/esm/ChangesetReader.d.ts.map +1 -1
- package/lib/esm/ChangesetReader.js +108 -12
- package/lib/esm/ChangesetReader.js.map +1 -1
- package/lib/esm/ClassRegistry.d.ts +3 -3
- package/lib/esm/ClassRegistry.js +3 -3
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +3 -3
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +2 -2
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECSqlStatement.d.ts.map +1 -1
- package/lib/esm/ECSqlStatement.js +4 -0
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/ECSqlSyncReader.d.ts.map +1 -1
- package/lib/esm/ECSqlSyncReader.js +1 -0
- package/lib/esm/ECSqlSyncReader.js.map +1 -1
- package/lib/esm/Element.d.ts +16 -13
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +8 -5
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +1 -1
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementTreeWalker.d.ts +5 -5
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.d.ts +13 -5
- package/lib/esm/Entity.d.ts.map +1 -1
- package/lib/esm/Entity.js +13 -5
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/ExternalSource.d.ts +2 -2
- package/lib/esm/ExternalSource.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +112 -40
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +216 -43
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/LineStyle.d.ts +6 -6
- package/lib/esm/LineStyle.js.map +1 -1
- package/lib/esm/LocalHub.d.ts +6 -0
- package/lib/esm/LocalHub.d.ts.map +1 -1
- package/lib/esm/LocalHub.js +23 -0
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/Material.d.ts +1 -1
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +6 -6
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/Relationship.d.ts +13 -11
- package/lib/esm/Relationship.d.ts.map +1 -1
- package/lib/esm/Relationship.js +9 -7
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/SheetIndex.d.ts +4 -4
- package/lib/esm/SheetIndex.js.map +1 -1
- package/lib/esm/Texture.d.ts +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +7 -0
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +6 -6
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -1
- package/lib/esm/annotations/FrameGeometry.js +2 -3
- package/lib/esm/annotations/FrameGeometry.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.d.ts +1 -1
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/GenericElements.d.ts +2 -2
- package/lib/esm/domains/GenericElements.js.map +1 -1
- package/lib/esm/internal/ChannelAdmin.d.ts +2 -2
- package/lib/esm/internal/ChannelAdmin.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js +23 -4
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/HubMock.d.ts +24 -1
- package/lib/esm/internal/HubMock.d.ts.map +1 -1
- package/lib/esm/internal/HubMock.js +61 -40
- package/lib/esm/internal/HubMock.js.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.d.ts +19 -1
- package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.js +55 -1
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
- package/lib/esm/internal/cross-package.d.ts +1 -1
- package/lib/esm/internal/cross-package.d.ts.map +1 -1
- package/lib/esm/internal/cross-package.js +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js +55 -9
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js +7 -11
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js +60 -0
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/SchemaChangesetCanBeReversed.test.d.ts +2 -0
- package/lib/esm/test/SchemaChangesetCanBeReversed.test.d.ts.map +1 -0
- package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +239 -0
- package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -0
- package/lib/esm/test/annotations/FrameGeometry.test.js +2 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/ecdb/CTE.test.js +1 -0
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +10 -2
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +10 -0
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +1 -0
- package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/QueryReaders.test.js +13 -0
- package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +1 -0
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js +6 -2
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +5 -0
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js +1 -0
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +10 -0
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
- package/lib/esm/test/hubaccess/SemanticRebase.test.js +1 -0
- package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +31 -0
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +3 -0
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js +2 -0
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaViewHidden.test.d.ts +2 -0
- package/lib/esm/test/schema/SchemaViewHidden.test.d.ts.map +1 -0
- package/lib/esm/test/schema/SchemaViewHidden.test.js +275 -0
- package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -0
- package/lib/esm/test/schema/SchemaViewKoQ.test.d.ts +2 -0
- package/lib/esm/test/schema/SchemaViewKoQ.test.d.ts.map +1 -0
- package/lib/esm/test/schema/SchemaViewKoQ.test.js +184 -0
- package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -0
- package/lib/esm/test/schema/SchemaViewLifecycle.test.d.ts +2 -0
- package/lib/esm/test/schema/SchemaViewLifecycle.test.d.ts.map +1 -0
- package/lib/esm/test/schema/SchemaViewLifecycle.test.js +141 -0
- package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -0
- package/lib/esm/test/schema/SchemaViewValidation.test.d.ts +2 -0
- package/lib/esm/test/schema/SchemaViewValidation.test.d.ts.map +1 -0
- package/lib/esm/test/schema/SchemaViewValidation.test.js +475 -0
- package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -0
- package/lib/esm/test/standalone/ChangesetReader.test.js +945 -337
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/DeleteElements.test.js +45 -0
- package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +6 -0
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js +62 -0
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
- package/lib/esm/test/standalone/Settings.test.js +2 -0
- package/lib/esm/test/standalone/Settings.test.js.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js +397 -0
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/Workspace.test.js +23 -0
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.d.ts +20 -3
- package/lib/esm/workspace/SettingsSchemas.d.ts.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
- package/lib/esm/workspace/Workspace.d.ts +3 -1
- package/lib/esm/workspace/Workspace.d.ts.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExcludedElements.test.js","sourceRoot":"","sources":["../../../../src/test/element/ExcludedElements.test.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAqB,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAc,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,yBAAyB;AAEzB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,MAAkB,CAAC;IAEvB,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,eAAe,CAAC,sBAAsB,CAAC,eAAe,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACzJ,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACT,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,IAAI,GAAG,KAAK,EAAE,UAAmB,EAAE,EAAE;YACzC,MAAM,gBAAgB,GAAG,MAAM,CAAC;YAChC,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,KAAK,GAAsB;gBAC/B,aAAa,EAAE,cAAc,CAAC,aAAa;gBAC3C,KAAK,EAAE,MAAM,CAAC,YAAY;gBAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE;gBACpE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE;oBACd,MAAM,EAAE;wBACN,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB;qBACrE;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE3C,MAAM,IAAI,GAAU,EAAE,CAAC;YACvB,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,CAAC,iBAAiB,CAAC,6DAA6D,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,kBAAkB,EAAE,CAAC;gBACjM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YAE9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,CAAC,0BAAoC,EAAE,EAAE;gBACxD,MAAM,SAAS,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,0BAA0B,EAAE,EAAE,CAAC;gBAChF,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAiB,SAAS,CAAC,CAAC;YAC/D,CAAC,CAAC;YAEF,iHAAiH;YACjH,iIAAiI;YACjI,MAAM,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC5F,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACjG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3F,CAAC,CAAC;QAEF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { expect } from \"chai\";\nimport { Id64 } from \"@itwin/core-bentley\";\nimport { BisCodeSpec, DisplayStyleProps, IModel, QueryBinder, QueryRowFormat } from \"@itwin/core-common\";\nimport { DisplayStyle3d, SnapshotDb } from \"../../core-backend\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { withEditTxn } from \"../../EditTxn\";\n\n// spell-checker: disable\n\ndescribe(\"ExcludedElements\", () => {\n let imodel: SnapshotDb;\n\n before(() => {\n imodel = IModelTestUtils.createSnapshotFromSeed(IModelTestUtils.prepareOutputFile(\"IModel\", \"test.bim\"), IModelTestUtils.resolveAssetFile(\"test.bim\"));\n });\n\n after(() => {\n imodel.close();\n });\n\n it(\"should persist as a string and return as requested type\", async () => {\n const test = async (compressed: boolean) => {\n const excludedElements = \"+123\";\n const excludedElementIds = [\"0x123\"];\n const props: DisplayStyleProps = {\n classFullName: DisplayStyle3d.classFullName,\n model: IModel.dictionaryId,\n code: { spec: BisCodeSpec.displayStyle, scope: IModel.dictionaryId },\n isPrivate: false,\n jsonProperties: {\n styles: {\n excludedElements: compressed ? excludedElements : excludedElementIds,\n },\n },\n };\n\n const styleId = withEditTxn(imodel, (txn) => txn.insertElement(props));\n expect(styleId).not.to.equal(Id64.invalid);\n\n const rows: any[] = [];\n for await (const queryRow of imodel.createQueryReader(\"SELECT jsonProperties FROM bis.Element WHERE ECInstanceId=?\", QueryBinder.from([styleId]), { rowFormat: QueryRowFormat.UseJsPropertyNames }))\n rows.push(queryRow.toRow());\n\n expect(rows.length).to.equal(1);\n const json = JSON.parse(rows[0].jsonProperties);\n expect(json.styles.excludedElements).to.equal(excludedElements);\n\n const getStyle = (compressExcludedElementIds?: boolean) => {\n const loadProps = { id: styleId, displayStyle: { compressExcludedElementIds } };\n return imodel.elements.getElement<DisplayStyle3d>(loadProps);\n };\n\n // Unless compressed Ids explicitly requested, the Ids are always decompressed regardless of how they are stored.\n // This is to preserve compatibility with older front-ends that don't understand the compressed Ids; it's an unfortunate default.\n expect(getStyle().jsonProperties.styles.excludedElements).to.deep.equal(excludedElementIds);\n expect(getStyle(false).jsonProperties.styles.excludedElements).to.deep.equal(excludedElementIds);\n expect(getStyle(true).jsonProperties.styles.excludedElements).to.equal(excludedElements);\n };\n\n await test(true);\n await test(false);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ExcludedElements.test.js","sourceRoot":"","sources":["../../../../src/test/element/ExcludedElements.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { expect } from \"chai\";\nimport { Id64 } from \"@itwin/core-bentley\";\nimport { BisCodeSpec, DisplayStyleProps, IModel, QueryBinder, QueryRowFormat } from \"@itwin/core-common\";\nimport { DisplayStyle3d, SnapshotDb } from \"../../core-backend\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { withEditTxn } from \"../../EditTxn\";\n\n// spell-checker: disable\n\ndescribe(\"ExcludedElements\", () => {\n let imodel: SnapshotDb;\n\n before(() => {\n imodel = IModelTestUtils.createSnapshotFromSeed(IModelTestUtils.prepareOutputFile(\"IModel\", \"test.bim\"), IModelTestUtils.resolveAssetFile(\"test.bim\"));\n });\n\n after(() => {\n imodel.close();\n });\n\n it(\"should persist as a string and return as requested type\", async () => {\n const test = async (compressed: boolean) => {\n const excludedElements = \"+123\";\n const excludedElementIds = [\"0x123\"];\n const props: DisplayStyleProps = {\n classFullName: DisplayStyle3d.classFullName,\n model: IModel.dictionaryId,\n code: { spec: BisCodeSpec.displayStyle, scope: IModel.dictionaryId },\n isPrivate: false,\n jsonProperties: {\n styles: {\n excludedElements: compressed ? excludedElements : excludedElementIds,\n },\n },\n };\n\n const styleId = withEditTxn(imodel, (txn) => txn.insertElement(props));\n expect(styleId).not.to.equal(Id64.invalid);\n\n const rows: any[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n for await (const queryRow of imodel.createQueryReader(\"SELECT jsonProperties FROM bis.Element WHERE ECInstanceId=?\", QueryBinder.from([styleId]), { rowFormat: QueryRowFormat.UseJsPropertyNames }))\n rows.push(queryRow.toRow());\n\n expect(rows.length).to.equal(1);\n const json = JSON.parse(rows[0].jsonProperties);\n expect(json.styles.excludedElements).to.equal(excludedElements);\n\n const getStyle = (compressExcludedElementIds?: boolean) => {\n const loadProps = { id: styleId, displayStyle: { compressExcludedElementIds } };\n return imodel.elements.getElement<DisplayStyle3d>(loadProps);\n };\n\n // Unless compressed Ids explicitly requested, the Ids are always decompressed regardless of how they are stored.\n // This is to preserve compatibility with older front-ends that don't understand the compressed Ids; it's an unfortunate default.\n expect(getStyle().jsonProperties.styles.excludedElements).to.deep.equal(excludedElementIds);\n expect(getStyle(false).jsonProperties.styles.excludedElements).to.deep.equal(excludedElementIds);\n expect(getStyle(true).jsonProperties.styles.excludedElements).to.equal(excludedElements);\n };\n\n await test(true);\n await test(false);\n });\n});\n"]}
|
|
@@ -132,6 +132,11 @@ describe("apply changesets", function () {
|
|
|
132
132
|
};
|
|
133
133
|
const subjectId = withEditTxn(b1, "Inserted Subject", (txn) => txn.insertElement(subjectProps));
|
|
134
134
|
await b1.pushChanges({ description: "Inserted Subject", retainLocks: true });
|
|
135
|
+
// FIXME: We should not need to reacquire this element lock, since we pushed with `retainLocks: true`.
|
|
136
|
+
// See https://github.com/iTwin/itwinjs-core/issues/9302
|
|
137
|
+
await b1.locks.acquireLocks({
|
|
138
|
+
exclusive: subjectId,
|
|
139
|
+
});
|
|
135
140
|
const existingCode = b1.elements.getElementProps(subjectId).code;
|
|
136
141
|
withEditTxn(b1, "Updated Subject", (txn) => {
|
|
137
142
|
txn.updateElement({
|
|
@@ -178,6 +183,11 @@ describe("apply changesets", function () {
|
|
|
178
183
|
};
|
|
179
184
|
const subjectId = withEditTxn(b1, "Inserted Subject", (txn) => txn.insertElement(subjectProps));
|
|
180
185
|
await b1.pushChanges({ description: "Inserted Subject", retainLocks: true });
|
|
186
|
+
// FIXME: We should not need to reacquire this element lock, since we pushed with `retainLocks: true`.
|
|
187
|
+
// See https://github.com/iTwin/itwinjs-core/issues/9302
|
|
188
|
+
await b1.locks.acquireLocks({
|
|
189
|
+
exclusive: subjectId,
|
|
190
|
+
});
|
|
181
191
|
const existingCode = b1.elements.getElementProps(subjectId).code;
|
|
182
192
|
withEditTxn(b1, "Updated Subject", (txn) => {
|
|
183
193
|
txn.updateElement({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplyChangeset.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/ApplyChangeset.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport * as chai from \"chai\";\nimport * as chaiAsPromised from \"chai-as-promised\";\nimport { HubWrappers, IModelTestUtils, KnownTestLocations } from \"..\";\nimport { _nativeDb, BriefcaseDb, BriefcaseManager, ChannelControl, Subject, SubjectOwnsSubjects } from \"../../core-backend\";\nimport { withEditTxn } from \"../../EditTxn\";\nimport { HubMock } from \"../../internal/HubMock\";\nimport { Suite } from \"mocha\";\nimport { IModel, SchemaState, SubjectProps } from \"@itwin/core-common\";\nimport { Guid } from \"@itwin/core-bentley\";\nimport { TestUtils } from \"../TestUtils\";\nchai.use(chaiAsPromised);\n\ndescribe(\"apply changesets\", function (this: Suite) {\n before(async () => {\n await TestUtils.startBackend();\n });\n\n it(\"Apply changeset with no local changes, should not create new local changes\", async () => {\n HubMock.startup(\"PullMergeMethod\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let b2: BriefcaseDb | undefined;\n let b3: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n iModelId = await HubMock.createNewIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelName: \"Test\", description: \"TestSubject\" });\n\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b1Db = b1;\n withEditTxn(b1Db, \"apply changeset b1\", () => {\n b1Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b2Db = b2;\n withEditTxn(b2Db, \"apply changeset b2\", () => {\n b2Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b3Db = b3;\n withEditTxn(b3Db, \"apply changeset b3\", () => {\n b3Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n const schema1 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"a1\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n </ECEntityClass>\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n </ECSchema>`;\n\n await b1.importSchemaStrings([schema1]);\n\n chai.expect(b1.txns.hasPendingTxns).to.be.true;\n await b1.pushChanges({ description: \"schema1\" });\n chai.expect(b1.txns.hasPendingTxns).to.be.false;\n\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n await b2.pullChanges();\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n\n const schema2 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain2\" alias=\"ts1\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"a1\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n </ECEntityClass>\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n </ECSchema>`;\n\n await b1.importSchemaStrings([schema2]);\n\n chai.expect(b1.txns.hasPendingTxns).to.be.true;\n await b1.pushChanges({ description: \"schema2\" });\n chai.expect(b1.txns.hasPendingTxns).to.be.false;\n\n\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n await b2.pullChanges();\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n\n\n chai.expect(b3.txns.hasPendingTxns).to.be.false;\n await b3.pullChanges();\n chai.expect(b3.txns.hasPendingTxns).to.be.false;\n } finally {\n b1?.close();\n b2?.close();\n b3?.close();\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\n });\n\n it(\"Pulling profile upgrade before inserting element should pass\", async () => {\n // startup\n HubMock.startup(\"ProfileUpgradeBeforeInsertElement\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname, \"Test\", true);\n\n // inserting and updating elements in one briefcase\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n const briefcase = b1;\n withEditTxn(briefcase, \"profile upgrade before insert\", () => {\n briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n // upgrading schemas in second briefcase\n const props = await BriefcaseManager.downloadBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId });\n const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);\n chai.assert(schemaState === SchemaState.UpgradeRecommended);\n await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });\n await b1.pullChanges();\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 1\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n const subjectId = withEditTxn(b1, \"Inserted Subject\", (txn) => txn.insertElement(subjectProps));\n await b1.pushChanges({ description: \"Inserted Subject\", retainLocks: true });\n\n const existingCode = b1.elements.getElementProps(subjectId).code;\n withEditTxn(b1, \"Updated Subject\", (txn) => {\n txn.updateElement({\n id: subjectId,\n code: { ...existingCode, value: \"code value 2\" },\n });\n });\n await b1.pushChanges({ description: \"Updated Subject\" });\n await b1.locks.releaseAllLocks();\n\n } finally {\n if (b1) {\n await b1.locks.releaseAllLocks().catch(() => { });\n b1.close();\n }\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\n });\n\n it(\"Pulling profile upgrade after inserting element should pass\", async () => {\n // startup\n HubMock.startup(\"ProfileUpgradeAfterInsertElement\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname, \"Test\", true);\n\n // inserting and updating elements in one briefcase\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n const briefcase = b1;\n withEditTxn(briefcase, \"profile upgrade after insert\", () => {\n briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 1\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n const subjectId = withEditTxn(b1, \"Inserted Subject\", (txn) => txn.insertElement(subjectProps));\n await b1.pushChanges({ description: \"Inserted Subject\", retainLocks: true });\n\n const existingCode = b1.elements.getElementProps(subjectId).code;\n withEditTxn(b1, \"Updated Subject\", (txn) => {\n txn.updateElement({\n id: subjectId,\n code: { ...existingCode, value: \"code value 2\" },\n });\n });\n await b1.pushChanges({ description: \"Updated Subject\" });\n await b1.locks.releaseAllLocks();\n\n // upgrading schemas in second briefcase\n const props = await BriefcaseManager.downloadBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId });\n const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);\n chai.assert(schemaState === SchemaState.UpgradeRecommended);\n await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });\n await b1.pullChanges();\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps2: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 3\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n withEditTxn(b1, \"Inserted Subject 2\", (txn) => {\n txn.insertElement(subjectProps2);\n });\n await b1.pushChanges({ description: \"Inserted Subject 2\", retainLocks: true });\n await b1.locks.releaseAllLocks();\n\n } finally {\n if (b1) {\n await b1.locks.releaseAllLocks().catch(() => { });\n b1.close();\n }\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ApplyChangeset.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/ApplyChangeset.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport * as chai from \"chai\";\nimport * as chaiAsPromised from \"chai-as-promised\";\nimport { HubWrappers, IModelTestUtils, KnownTestLocations } from \"..\";\nimport { _nativeDb, BriefcaseDb, BriefcaseManager, ChannelControl, Subject, SubjectOwnsSubjects } from \"../../core-backend\";\nimport { withEditTxn } from \"../../EditTxn\";\nimport { HubMock } from \"../../internal/HubMock\";\nimport { Suite } from \"mocha\";\nimport { IModel, SchemaState, SubjectProps } from \"@itwin/core-common\";\nimport { Guid } from \"@itwin/core-bentley\";\nimport { TestUtils } from \"../TestUtils\";\nchai.use(chaiAsPromised);\n\ndescribe(\"apply changesets\", function (this: Suite) {\n before(async () => {\n await TestUtils.startBackend();\n });\n\n it(\"Apply changeset with no local changes, should not create new local changes\", async () => {\n HubMock.startup(\"PullMergeMethod\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let b2: BriefcaseDb | undefined;\n let b3: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n iModelId = await HubMock.createNewIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelName: \"Test\", description: \"TestSubject\" });\n\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b1Db = b1;\n withEditTxn(b1Db, \"apply changeset b1\", () => {\n b1Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b2Db = b2;\n withEditTxn(b2Db, \"apply changeset b2\", () => {\n b2Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b3Db = b3;\n withEditTxn(b3Db, \"apply changeset b3\", () => {\n b3Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n const schema1 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"a1\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n </ECEntityClass>\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n </ECSchema>`;\n\n await b1.importSchemaStrings([schema1]);\n\n chai.expect(b1.txns.hasPendingTxns).to.be.true;\n await b1.pushChanges({ description: \"schema1\" });\n chai.expect(b1.txns.hasPendingTxns).to.be.false;\n\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n await b2.pullChanges();\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n\n const schema2 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain2\" alias=\"ts1\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"a1\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n </ECEntityClass>\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n </ECSchema>`;\n\n await b1.importSchemaStrings([schema2]);\n\n chai.expect(b1.txns.hasPendingTxns).to.be.true;\n await b1.pushChanges({ description: \"schema2\" });\n chai.expect(b1.txns.hasPendingTxns).to.be.false;\n\n\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n await b2.pullChanges();\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n\n\n chai.expect(b3.txns.hasPendingTxns).to.be.false;\n await b3.pullChanges();\n chai.expect(b3.txns.hasPendingTxns).to.be.false;\n } finally {\n b1?.close();\n b2?.close();\n b3?.close();\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\n });\n\n it(\"Pulling profile upgrade before inserting element should pass\", async () => {\n // startup\n HubMock.startup(\"ProfileUpgradeBeforeInsertElement\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname, \"Test\", true);\n\n // inserting and updating elements in one briefcase\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n const briefcase = b1;\n withEditTxn(briefcase, \"profile upgrade before insert\", () => {\n briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n // upgrading schemas in second briefcase\n const props = await BriefcaseManager.downloadBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId });\n const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);\n chai.assert(schemaState === SchemaState.UpgradeRecommended);\n await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });\n await b1.pullChanges();\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 1\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n const subjectId = withEditTxn(b1, \"Inserted Subject\", (txn) => txn.insertElement(subjectProps));\n await b1.pushChanges({ description: \"Inserted Subject\", retainLocks: true });\n\n // FIXME: We should not need to reacquire this element lock, since we pushed with `retainLocks: true`.\n // See https://github.com/iTwin/itwinjs-core/issues/9302\n await b1.locks.acquireLocks({\n exclusive: subjectId,\n });\n\n const existingCode = b1.elements.getElementProps(subjectId).code;\n withEditTxn(b1, \"Updated Subject\", (txn) => {\n txn.updateElement({\n id: subjectId,\n code: { ...existingCode, value: \"code value 2\" },\n });\n });\n await b1.pushChanges({ description: \"Updated Subject\" });\n await b1.locks.releaseAllLocks();\n\n } finally {\n if (b1) {\n await b1.locks.releaseAllLocks().catch(() => { });\n b1.close();\n }\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\n });\n\n it(\"Pulling profile upgrade after inserting element should pass\", async () => {\n // startup\n HubMock.startup(\"ProfileUpgradeAfterInsertElement\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname, \"Test\", true);\n\n // inserting and updating elements in one briefcase\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n const briefcase = b1;\n withEditTxn(briefcase, \"profile upgrade after insert\", () => {\n briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 1\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n const subjectId = withEditTxn(b1, \"Inserted Subject\", (txn) => txn.insertElement(subjectProps));\n await b1.pushChanges({ description: \"Inserted Subject\", retainLocks: true });\n\n // FIXME: We should not need to reacquire this element lock, since we pushed with `retainLocks: true`.\n // See https://github.com/iTwin/itwinjs-core/issues/9302\n await b1.locks.acquireLocks({\n exclusive: subjectId,\n });\n\n const existingCode = b1.elements.getElementProps(subjectId).code;\n withEditTxn(b1, \"Updated Subject\", (txn) => {\n txn.updateElement({\n id: subjectId,\n code: { ...existingCode, value: \"code value 2\" },\n });\n });\n await b1.pushChanges({ description: \"Updated Subject\" });\n await b1.locks.releaseAllLocks();\n\n // upgrading schemas in second briefcase\n const props = await BriefcaseManager.downloadBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId });\n const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);\n chai.assert(schemaState === SchemaState.UpgradeRecommended);\n await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });\n await b1.pullChanges();\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps2: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 3\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n withEditTxn(b1, \"Inserted Subject 2\", (txn) => {\n txn.insertElement(subjectProps2);\n });\n await b1.pushChanges({ description: \"Inserted Subject 2\", retainLocks: true });\n await b1.locks.releaseAllLocks();\n\n } finally {\n if (b1) {\n await b1.locks.releaseAllLocks().catch(() => { });\n b1.close();\n }\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\n });\n});\n"]}
|
|
@@ -583,6 +583,7 @@ class TestIModel {
|
|
|
583
583
|
*/
|
|
584
584
|
static async queryToMap(briefcase, ecsql) {
|
|
585
585
|
const result = new Map();
|
|
586
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
586
587
|
const reader = briefcase.createQueryReader(ecsql, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });
|
|
587
588
|
for await (const row of reader) {
|
|
588
589
|
const r = row.toRow();
|