@itwin/rpcinterface-full-stack-tests 5.2.0-dev.12 → 5.2.0-dev.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"PresentationRpc.test.js","sourceRoot":"","sources":["../../src/frontend/PresentationRpc.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { expect } from \"chai\";\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\nimport { CheckpointConnection, IModelApp, IModelConnection } from \"@itwin/core-frontend\";\r\nimport { TestFrontendAuthorizationClient } from \"@itwin/oidc-signin-tool/lib/cjs/frontend\";\r\nimport { ChildNodeSpecificationTypes, ContentSpecificationTypes, InstanceKey, KeySet, Ruleset, RuleTypes } from \"@itwin/presentation-common\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { TestContext } from \"./setup/TestContext\";\r\n\r\ndescribe(\"PresentationRpcInterface tests\", () => {\r\n let imodel: IModelConnection;\r\n\r\n before(async function () {\r\n const testContext = await TestContext.instance();\r\n if (!testContext.settings.runPresentationRpcTests) {\r\n this.skip();\r\n }\r\n\r\n await Presentation.initialize();\r\n\r\n const iModelId = testContext.iModelWithChangesets!.iModelId;\r\n const iTwinId = testContext.iModelWithChangesets!.iTwinId;\r\n const accessToken = testContext.serviceAuthToken;\r\n IModelApp.authorizationClient = new TestFrontendAuthorizationClient(accessToken);\r\n imodel = await CheckpointConnection.openRemote(iTwinId, iModelId);\r\n });\r\n\r\n after(() => {\r\n Presentation.terminate();\r\n });\r\n\r\n it(\"getNodes works as expected\", async () => {\r\n const rootNodes = await Presentation.presentation.getNodesIterator({\r\n imodel,\r\n rulesetOrId: createNodesRuleset(),\r\n });\r\n expect(rootNodes).to.not.be.empty;\r\n });\r\n\r\n it(\"getNodesCount works as expected\", async () => {\r\n const count = await Presentation.presentation.getNodesCount({\r\n imodel,\r\n rulesetOrId: createNodesRuleset(),\r\n });\r\n expect(count).to.not.be.undefined;\r\n });\r\n\r\n it(\"getNodePaths works as expected\", async () => {\r\n const result = await Presentation.presentation.getNodePaths({\r\n imodel,\r\n rulesetOrId: createNodesRuleset(),\r\n instancePaths: [[{ id: Id64.fromString(\"0x1\"), className: \"BisCore:RepositoryModel\" }]],\r\n markedIndex: 0,\r\n });\r\n expect(result).to.not.be.undefined;\r\n });\r\n\r\n it(\"getFilteredNodePaths works as expected\", async () => {\r\n const result = await Presentation.presentation.getFilteredNodePaths({\r\n imodel,\r\n rulesetOrId: createNodesRuleset(),\r\n filterText: \"\",\r\n });\r\n expect(result).to.not.be.undefined;\r\n });\r\n\r\n it(\"getContentSources works as expected\", async () => {\r\n const result = await Presentation.presentation.getContentSources({\r\n imodel,\r\n classes: [\"BisCore:Subject\"],\r\n });\r\n expect(result).to.not.be.undefined;\r\n });\r\n\r\n it(\"getContentDescriptor works as expected\", async () => {\r\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\r\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\r\n const keys = new KeySet([key1, key2]);\r\n const descriptor = await Presentation.presentation.getContentDescriptor({\r\n imodel,\r\n rulesetOrId: createContentRuleset(),\r\n displayType: \"Grid\",\r\n keys,\r\n });\r\n expect(descriptor).to.not.be.undefined;\r\n });\r\n\r\n it(\"getContentAndSize works as expected\", async () => {\r\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\r\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\r\n const keys = new KeySet([key1, key2]);\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const contentAndSize = await Presentation.presentation.getContentAndSize({\r\n imodel,\r\n rulesetOrId: createContentRuleset(),\r\n descriptor: {},\r\n keys,\r\n });\r\n expect(contentAndSize).to.not.be.undefined;\r\n });\r\n\r\n it(\"getContent works as expected\", async () => {\r\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\r\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\r\n const keys = new KeySet([key1, key2]);\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const content = await Presentation.presentation.getContent({\r\n imodel,\r\n rulesetOrId: createContentRuleset(),\r\n descriptor: {},\r\n keys,\r\n });\r\n expect(content).to.not.be.undefined;\r\n });\r\n\r\n it(\"getContentSetSize works as expected\", async () => {\r\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\r\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\r\n const keys = new KeySet([key1, key2]);\r\n const contentSetSize = await Presentation.presentation.getContentSetSize({\r\n imodel,\r\n rulesetOrId: createContentRuleset(),\r\n descriptor: {},\r\n keys,\r\n });\r\n expect(contentSetSize).to.not.be.undefined;\r\n });\r\n\r\n it(\"getElementProperties works as expected\", async () => {\r\n const result = await Presentation.presentation.getElementProperties({\r\n imodel,\r\n elementId: \"0x1\",\r\n });\r\n expect(result).to.not.be.undefined;\r\n });\r\n\r\n it(\"getDisplayLabelDefinition works as expected\", async () => {\r\n const displayLabel = await Presentation.presentation.getDisplayLabelDefinition({\r\n imodel,\r\n key: { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" },\r\n });\r\n expect(displayLabel).to.not.be.undefined;\r\n });\r\n\r\n it(\"getDisplayLabelDefinitions works as expected\", async () => {\r\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\r\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\r\n const displayLabels = await Presentation.presentation.getDisplayLabelDefinitionsIterator({\r\n imodel,\r\n keys: [key1, key2],\r\n });\r\n expect(displayLabels).to.not.be.undefined;\r\n });\r\n\r\n it(\"getSelectionScopes works as expected\", async () => {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const scopeIds = await Presentation.selection.scopes.getSelectionScopes(imodel);\r\n expect(scopeIds).to.not.be.undefined;\r\n });\r\n\r\n it(\"computeSelection works as expected\", async () => {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const computedSelections = await Presentation.selection.scopes.computeSelection(imodel, [\"0x1\"], \"element\");\r\n expect(computedSelections).to.not.be.undefined;\r\n });\r\n});\r\n\r\nconst createNodesRuleset = (): Ruleset => ({\r\n id: \"nodes\",\r\n rules: [\r\n {\r\n ruleType: RuleTypes.RootNodes,\r\n specifications: [\r\n {\r\n specType: ChildNodeSpecificationTypes.InstanceNodesOfSpecificClasses,\r\n classes: {\r\n schemaName: \"BisCore\",\r\n classNames: [\"Model\"],\r\n arePolymorphic: true,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n});\r\n\r\nconst createContentRuleset = (): Ruleset => ({\r\n id: \"content\",\r\n rules: [\r\n {\r\n ruleType: RuleTypes.Content,\r\n specifications: [\r\n {\r\n specType: ContentSpecificationTypes.SelectedNodeInstances,\r\n },\r\n ],\r\n },\r\n ],\r\n});\r\n"]}
1
+ {"version":3,"file":"PresentationRpc.test.js","sourceRoot":"","sources":["../../src/frontend/PresentationRpc.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 { CheckpointConnection, IModelApp, IModelConnection } from \"@itwin/core-frontend\";\nimport { TestFrontendAuthorizationClient } from \"@itwin/oidc-signin-tool/lib/cjs/frontend\";\nimport { ChildNodeSpecificationTypes, ContentSpecificationTypes, InstanceKey, KeySet, Ruleset, RuleTypes } from \"@itwin/presentation-common\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { TestContext } from \"./setup/TestContext\";\n\ndescribe(\"PresentationRpcInterface tests\", () => {\n let imodel: IModelConnection;\n\n before(async function () {\n const testContext = await TestContext.instance();\n if (!testContext.settings.runPresentationRpcTests) {\n this.skip();\n }\n\n await Presentation.initialize();\n\n const iModelId = testContext.iModelWithChangesets!.iModelId;\n const iTwinId = testContext.iModelWithChangesets!.iTwinId;\n const accessToken = testContext.serviceAuthToken;\n IModelApp.authorizationClient = new TestFrontendAuthorizationClient(accessToken);\n imodel = await CheckpointConnection.openRemote(iTwinId, iModelId);\n });\n\n after(() => {\n Presentation.terminate();\n });\n\n it(\"getNodes works as expected\", async () => {\n const rootNodes = await Presentation.presentation.getNodesIterator({\n imodel,\n rulesetOrId: createNodesRuleset(),\n });\n expect(rootNodes).to.not.be.empty;\n });\n\n it(\"getNodesCount works as expected\", async () => {\n const count = await Presentation.presentation.getNodesCount({\n imodel,\n rulesetOrId: createNodesRuleset(),\n });\n expect(count).to.not.be.undefined;\n });\n\n it(\"getNodePaths works as expected\", async () => {\n const result = await Presentation.presentation.getNodePaths({\n imodel,\n rulesetOrId: createNodesRuleset(),\n instancePaths: [[{ id: Id64.fromString(\"0x1\"), className: \"BisCore:RepositoryModel\" }]],\n markedIndex: 0,\n });\n expect(result).to.not.be.undefined;\n });\n\n it(\"getFilteredNodePaths works as expected\", async () => {\n const result = await Presentation.presentation.getFilteredNodePaths({\n imodel,\n rulesetOrId: createNodesRuleset(),\n filterText: \"\",\n });\n expect(result).to.not.be.undefined;\n });\n\n it(\"getContentSources works as expected\", async () => {\n const result = await Presentation.presentation.getContentSources({\n imodel,\n classes: [\"BisCore:Subject\"],\n });\n expect(result).to.not.be.undefined;\n });\n\n it(\"getContentDescriptor works as expected\", async () => {\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\n const keys = new KeySet([key1, key2]);\n const descriptor = await Presentation.presentation.getContentDescriptor({\n imodel,\n rulesetOrId: createContentRuleset(),\n displayType: \"Grid\",\n keys,\n });\n expect(descriptor).to.not.be.undefined;\n });\n\n it(\"getContentAndSize works as expected\", async () => {\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\n const keys = new KeySet([key1, key2]);\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const contentAndSize = await Presentation.presentation.getContentAndSize({\n imodel,\n rulesetOrId: createContentRuleset(),\n descriptor: {},\n keys,\n });\n expect(contentAndSize).to.not.be.undefined;\n });\n\n it(\"getContent works as expected\", async () => {\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\n const keys = new KeySet([key1, key2]);\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const content = await Presentation.presentation.getContent({\n imodel,\n rulesetOrId: createContentRuleset(),\n descriptor: {},\n keys,\n });\n expect(content).to.not.be.undefined;\n });\n\n it(\"getContentSetSize works as expected\", async () => {\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\n const keys = new KeySet([key1, key2]);\n const contentSetSize = await Presentation.presentation.getContentSetSize({\n imodel,\n rulesetOrId: createContentRuleset(),\n descriptor: {},\n keys,\n });\n expect(contentSetSize).to.not.be.undefined;\n });\n\n it(\"getElementProperties works as expected\", async () => {\n const result = await Presentation.presentation.getElementProperties({\n imodel,\n elementId: \"0x1\",\n });\n expect(result).to.not.be.undefined;\n });\n\n it(\"getDisplayLabelDefinition works as expected\", async () => {\n const displayLabel = await Presentation.presentation.getDisplayLabelDefinition({\n imodel,\n key: { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" },\n });\n expect(displayLabel).to.not.be.undefined;\n });\n\n it(\"getDisplayLabelDefinitions works as expected\", async () => {\n const key1: InstanceKey = { id: Id64.fromString(\"0x1\"), className: \"BisCore:Subject\" };\n const key2: InstanceKey = { id: Id64.fromString(\"0x17\"), className: \"BisCore:SpatialCategory\" };\n const displayLabels = await Presentation.presentation.getDisplayLabelDefinitionsIterator({\n imodel,\n keys: [key1, key2],\n });\n expect(displayLabels).to.not.be.undefined;\n });\n\n it(\"getSelectionScopes works as expected\", async () => {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const scopeIds = await Presentation.selection.scopes.getSelectionScopes(imodel);\n expect(scopeIds).to.not.be.undefined;\n });\n\n it(\"computeSelection works as expected\", async () => {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const computedSelections = await Presentation.selection.scopes.computeSelection(imodel, [\"0x1\"], \"element\");\n expect(computedSelections).to.not.be.undefined;\n });\n});\n\nconst createNodesRuleset = (): Ruleset => ({\n id: \"nodes\",\n rules: [\n {\n ruleType: RuleTypes.RootNodes,\n specifications: [\n {\n specType: ChildNodeSpecificationTypes.InstanceNodesOfSpecificClasses,\n classes: {\n schemaName: \"BisCore\",\n classNames: [\"Model\"],\n arePolymorphic: true,\n },\n },\n ],\n },\n ],\n});\n\nconst createContentRuleset = (): Ruleset => ({\n id: \"content\",\n rules: [\n {\n ruleType: RuleTypes.Content,\n specifications: [\n {\n specType: ContentSpecificationTypes.SelectedNodeInstances,\n },\n ],\n },\n ],\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Views.test.js","sourceRoot":"","sources":["../../src/frontend/Views.test.ts"],"names":[],"mappings":";;AAAA;;;+FAG+F;AAC/F,6BAA6B;AAC7B,wDAAyF;AACzF,qDAAkD;AAElD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,MAAwB,CAAC;IAC7B,IAAI,KAA6B,CAAC;IAElC,MAAM,CAAC,KAAK;QACV,gCAAgC;QAChC,MAAM,WAAW,GAAG,MAAM,yBAAW,CAAC,QAAQ,EAAE,CAAC;QAEjD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QAED,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAqB,CAAC,aAAa,EAAE,CAAC;QACjE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,gCAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,gCAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAG,CAAC,CAAC;QAEjD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAE1D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as chai from \"chai\";\r\nimport { IModelConnection, SpatialViewState, ViewCreator3d } from \"@itwin/core-frontend\";\r\nimport { TestContext } from \"./setup/TestContext\";\r\n\r\nconst expect = chai.expect;\r\n\r\ndescribe(\"IModel Views\", () => {\r\n let iModel: IModelConnection;\r\n let views: IModelConnection.Views;\r\n\r\n before(async function () {\r\n // Ensure the singleton is setup\r\n const testContext = await TestContext.instance();\r\n\r\n if (!testContext.settings.runiModelReadRpcTests) {\r\n this.skip();\r\n }\r\n\r\n iModel = await testContext.iModelWithChangesets!.getConnection();\r\n views = iModel.views;\r\n });\r\n\r\n it(\"should query ids\", async () => {\r\n const props = await views.queryProps({ from: SpatialViewState.classFullName });\r\n expect(props).to.exist.and.be.not.empty;\r\n });\r\n\r\n it(\"should load\", async () => {\r\n const props = await views.queryProps({ from: SpatialViewState.classFullName });\r\n const viewState = await views.load(props[0].id!);\r\n\r\n expect(viewState).to.exist.and.be.not.empty;\r\n });\r\n\r\n it(\"should create viewstate3d using viewcreator3d\", async () => {\r\n const viewcreator3d = new ViewCreator3d(iModel);\r\n const viewState = await viewcreator3d.createDefaultView();\r\n\r\n expect(viewState).to.exist.and.be.not.empty;\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"Views.test.js","sourceRoot":"","sources":["../../src/frontend/Views.test.ts"],"names":[],"mappings":";;AAAA;;;+FAG+F;AAC/F,6BAA6B;AAC7B,wDAAyF;AACzF,qDAAkD;AAElD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,MAAwB,CAAC;IAC7B,IAAI,KAA6B,CAAC;IAElC,MAAM,CAAC,KAAK;QACV,gCAAgC;QAChC,MAAM,WAAW,GAAG,MAAM,yBAAW,CAAC,QAAQ,EAAE,CAAC;QAEjD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QAED,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAqB,CAAC,aAAa,EAAE,CAAC;QACjE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,gCAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,gCAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAG,CAAC,CAAC;QAEjD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAE1D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9C,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 * as chai from \"chai\";\nimport { IModelConnection, SpatialViewState, ViewCreator3d } from \"@itwin/core-frontend\";\nimport { TestContext } from \"./setup/TestContext\";\n\nconst expect = chai.expect;\n\ndescribe(\"IModel Views\", () => {\n let iModel: IModelConnection;\n let views: IModelConnection.Views;\n\n before(async function () {\n // Ensure the singleton is setup\n const testContext = await TestContext.instance();\n\n if (!testContext.settings.runiModelReadRpcTests) {\n this.skip();\n }\n\n iModel = await testContext.iModelWithChangesets!.getConnection();\n views = iModel.views;\n });\n\n it(\"should query ids\", async () => {\n const props = await views.queryProps({ from: SpatialViewState.classFullName });\n expect(props).to.exist.and.be.not.empty;\n });\n\n it(\"should load\", async () => {\n const props = await views.queryProps({ from: SpatialViewState.classFullName });\n const viewState = await views.load(props[0].id!);\n\n expect(viewState).to.exist.and.be.not.empty;\n });\n\n it(\"should create viewstate3d using viewcreator3d\", async () => {\n const viewcreator3d = new ViewCreator3d(iModel);\n const viewState = await viewcreator3d.createDefaultView();\n\n expect(viewState).to.exist.and.be.not.empty;\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IModelSession.js","sourceRoot":"","sources":["../../../src/frontend/setup/IModelSession.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { expect } from \"chai\";\r\nimport { CheckpointConnection, IModelApp } from \"@itwin/core-frontend\";\r\nimport { ITwin, ITwinsAccessClient, ITwinsAPIResponse, ITwinSubClass } from \"@itwin/itwins-client\";\r\nimport { IModelData } from \"../../common/Settings\";\r\nimport { IModelVersion } from \"@itwin/core-common\";\r\nimport { AccessToken } from \"@itwin/core-bentley\";\r\nimport { IModelsClient } from \"@itwin/imodels-client-management\";\r\nimport { AccessTokenAdapter } from \"@itwin/imodels-access-frontend\";\r\n\r\nexport class IModelSession {\r\n\r\n public iTwinId: string;\r\n public iModelId: string;\r\n public changesetId?: string;\r\n private _imodelVersion: IModelVersion;\r\n\r\n private _iModel?: CheckpointConnection;\r\n\r\n private constructor(iTwinId: string, imodelId: string, changesetId?: string) {\r\n this.iTwinId = iTwinId;\r\n this.iModelId = imodelId;\r\n this.changesetId = changesetId;\r\n\r\n this._imodelVersion = changesetId ? IModelVersion.asOfChangeSet(changesetId) : IModelVersion.latest();\r\n }\r\n\r\n public static async create(requestContext: AccessToken, iModelData: IModelData): Promise<IModelSession> {\r\n let iTwinId;\r\n let imodelId;\r\n\r\n // Turn the iTwin name into an id\r\n if (iModelData.useITwinName) {\r\n if (!iModelData.iTwinName)\r\n throw new Error(`The iModel has no iTwin name, so it cannot get the iTwin.`);\r\n\r\n const client = new ITwinsAccessClient();\r\n const iTwinListResponse: ITwinsAPIResponse<ITwin[]> = await client.queryAsync(requestContext, ITwinSubClass.Project , {\r\n displayName: iModelData.iTwinName,\r\n });\r\n const iTwinList = iTwinListResponse.data;\r\n if (!iTwinList) {\r\n throw new Error(`ITwin ${iModelData.iTwinName} returned with no data when queried.`);\r\n }\r\n if (iTwinList.length === 0)\r\n throw new Error(`ITwin ${iModelData.iTwinName} was not found for the user.`);\r\n else if (iTwinList.length > 1)\r\n throw new Error(`Multiple iTwins named ${iModelData.iTwinName} were found for the user.`);\r\n\r\n iTwinId = iTwinList[0].id ?? iModelData.iTwinId!;\r\n } else\r\n iTwinId = iModelData.iTwinId!;\r\n\r\n if (iModelData.useName) {\r\n const imodelClient = new IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? \"\"}api.bentley.com/imodels`}});\r\n const imodels = imodelClient.iModels.getRepresentationList({\r\n authorization: AccessTokenAdapter.toAuthorizationCallback(await IModelApp.getAccessToken()),\r\n urlParams: {\r\n iTwinId,\r\n name: iModelData.name,\r\n },\r\n });\r\n for await (const iModel of imodels) {\r\n imodelId = iModel.id;\r\n break;\r\n }\r\n if (!imodelId)\r\n throw new Error(`The iModel ${iModelData.name} does not exist in iTwin ${iTwinId}.`);\r\n } else\r\n imodelId = iModelData.id!;\r\n\r\n console.log(`Using iModel { name:${iModelData.name}, id:${iModelData.id}, iTwinId:${iModelData.iTwinId}, changesetId:${iModelData.changeSetId} }`); // eslint-disable-line no-console\r\n\r\n return new IModelSession(iTwinId, imodelId, iModelData.changeSetId);\r\n }\r\n\r\n public async getConnection(): Promise<CheckpointConnection> {\r\n return undefined === this._iModel ? this.open() : this._iModel;\r\n }\r\n\r\n public async open(): Promise<CheckpointConnection> {\r\n try {\r\n // eslint-disable-next-line no-console\r\n console.log(`Environment: ${process.env.IMJS_URL_PREFIX}`);\r\n this._iModel = await CheckpointConnection.openRemote(this.iTwinId, this.iModelId, this._imodelVersion);\r\n expect(this._iModel).to.exist;\r\n } catch (e: any) {\r\n throw new Error(`Failed to open test iModel. Error: ${e.message}`);\r\n }\r\n\r\n return this._iModel;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelSession.js","sourceRoot":"","sources":["../../../src/frontend/setup/IModelSession.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 { CheckpointConnection, IModelApp } from \"@itwin/core-frontend\";\nimport { ITwin, ITwinsAccessClient, ITwinsAPIResponse, ITwinSubClass } from \"@itwin/itwins-client\";\nimport { IModelData } from \"../../common/Settings\";\nimport { IModelVersion } from \"@itwin/core-common\";\nimport { AccessToken } from \"@itwin/core-bentley\";\nimport { IModelsClient } from \"@itwin/imodels-client-management\";\nimport { AccessTokenAdapter } from \"@itwin/imodels-access-frontend\";\n\nexport class IModelSession {\n\n public iTwinId: string;\n public iModelId: string;\n public changesetId?: string;\n private _imodelVersion: IModelVersion;\n\n private _iModel?: CheckpointConnection;\n\n private constructor(iTwinId: string, imodelId: string, changesetId?: string) {\n this.iTwinId = iTwinId;\n this.iModelId = imodelId;\n this.changesetId = changesetId;\n\n this._imodelVersion = changesetId ? IModelVersion.asOfChangeSet(changesetId) : IModelVersion.latest();\n }\n\n public static async create(requestContext: AccessToken, iModelData: IModelData): Promise<IModelSession> {\n let iTwinId;\n let imodelId;\n\n // Turn the iTwin name into an id\n if (iModelData.useITwinName) {\n if (!iModelData.iTwinName)\n throw new Error(`The iModel has no iTwin name, so it cannot get the iTwin.`);\n\n const client = new ITwinsAccessClient();\n const iTwinListResponse: ITwinsAPIResponse<ITwin[]> = await client.queryAsync(requestContext, ITwinSubClass.Project , {\n displayName: iModelData.iTwinName,\n });\n const iTwinList = iTwinListResponse.data;\n if (!iTwinList) {\n throw new Error(`ITwin ${iModelData.iTwinName} returned with no data when queried.`);\n }\n if (iTwinList.length === 0)\n throw new Error(`ITwin ${iModelData.iTwinName} was not found for the user.`);\n else if (iTwinList.length > 1)\n throw new Error(`Multiple iTwins named ${iModelData.iTwinName} were found for the user.`);\n\n iTwinId = iTwinList[0].id ?? iModelData.iTwinId!;\n } else\n iTwinId = iModelData.iTwinId!;\n\n if (iModelData.useName) {\n const imodelClient = new IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? \"\"}api.bentley.com/imodels`}});\n const imodels = imodelClient.iModels.getRepresentationList({\n authorization: AccessTokenAdapter.toAuthorizationCallback(await IModelApp.getAccessToken()),\n urlParams: {\n iTwinId,\n name: iModelData.name,\n },\n });\n for await (const iModel of imodels) {\n imodelId = iModel.id;\n break;\n }\n if (!imodelId)\n throw new Error(`The iModel ${iModelData.name} does not exist in iTwin ${iTwinId}.`);\n } else\n imodelId = iModelData.id!;\n\n console.log(`Using iModel { name:${iModelData.name}, id:${iModelData.id}, iTwinId:${iModelData.iTwinId}, changesetId:${iModelData.changeSetId} }`); // eslint-disable-line no-console\n\n return new IModelSession(iTwinId, imodelId, iModelData.changeSetId);\n }\n\n public async getConnection(): Promise<CheckpointConnection> {\n return undefined === this._iModel ? this.open() : this._iModel;\n }\n\n public async open(): Promise<CheckpointConnection> {\n try {\n // eslint-disable-next-line no-console\n console.log(`Environment: ${process.env.IMJS_URL_PREFIX}`);\n this._iModel = await CheckpointConnection.openRemote(this.iTwinId, this.iModelId, this._imodelVersion);\n expect(this._iModel).to.exist;\n } catch (e: any) {\n throw new Error(`Failed to open test iModel. Error: ${e.message}`);\n }\n\n return this._iModel;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TestContext.js","sourceRoot":"","sources":["../../../src/frontend/setup/TestContext.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,+BAA8B;AAC9B,sDAAoE;AACpE,oDAAyE;AACzE,wDAAmD;AACnD,uEAA2H;AAC3H,4EAAuE;AACvE,gFAAiE;AACjE,oDAAmE;AACnE,4DAAsG;AACtG,mDAAgD;AAIhD,+BAA+B;AAC/B,MAAa,WAAW;IACf,iBAAiB,CAAe;IAChC,gBAAgB,CAAe;IAE/B,oBAAoB,CAAiB;IACrC,cAAc,CAAiB;IAC/B,OAAO,CAAU;IAEjB,QAAQ,CAAW;IAE1B,YAAoB,GAAsB;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IACO,MAAM,CAAC,SAAS,GAAiB,SAAS,CAAC;IAE5C,MAAM,CAAC,KAAK,CAAC,QAAQ;QAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,MAAM,IAAA,uCAAwB,GAAE,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,+EAA+E;IACvE,uBAAuB,CAAC,IAAiB;QAC/C,6BAA6B;QAC7B,MAAM,SAAS,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5E,oCAAsB,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAA,2BAAgB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChG,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAA,aAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sDAAsD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACzJ,IAAA,aAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wDAAwD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,uBAAuB,CAAC,CAAC;QAE/J,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtC,2DAA2D;QAC3D,qBAAM,CAAC,mBAAmB,EAAE,CAAC;QAC7B,qBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzG,IAAI,IAAI,CAAC,QAAQ,EAAE,mBAAmB,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YACrF,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAA,yCAA8B,EAAC;gBAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ;gBACpD,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY;gBAC5D,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK;gBAC9C,SAAS,EAAE,WACT,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM;oBACpC,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EACrC,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,mBAAmB;YACjD,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAA,8CAA+B,GAAE,CAAC;QAEnE,IAAI,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5G,MAAM,YAAY,GAAG,IAAI,yCAAa,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACpI,MAAM,2BAAW,CAAC,OAAO,CAAC;YACxB,kBAAkB,EAAE,eAAe;YACnC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAClC,mBAAmB,EAAE,IAAI,0CAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC/E,SAAS,EAAE,IAAI,+CAAqB,CAAC,YAAY,CAAC;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,MAAM,6BAAa,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;QAEjD,IAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB;YACtC,IAAI,CAAC,cAAc,GAAG,MAAM,6BAAa,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEvG,CAAC;;AA1EH,kCA2EC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { expect } from \"chai\";\r\nimport { AccessToken, Logger, LogLevel } from \"@itwin/core-bentley\";\r\nimport { BentleyCloudRpcManager, OpenAPIInfo } from \"@itwin/core-common\";\r\nimport { NoRenderApp } from \"@itwin/core-frontend\";\r\nimport { getServiceAuthTokenFromBackend, TestFrontendAuthorizationClient } from \"@itwin/oidc-signin-tool/lib/cjs/frontend\";\r\nimport { FrontendIModelsAccess } from \"@itwin/imodels-access-frontend\";\r\nimport { IModelsClient } from \"@itwin/imodels-client-management\";\r\nimport { getRpcInterfaces, Settings } from \"../../common/Settings\";\r\nimport { getClientAccessTokenFromBackend, getProcessEnvFromBackend } from \"../../common/SideChannels\";\r\nimport { IModelSession } from \"./IModelSession\";\r\n\r\ndeclare const PACKAGE_VERSION: string;\r\n\r\n/* eslint-disable no-console */\r\nexport class TestContext {\r\n public clientAccessToken?: AccessToken;\r\n public serviceAuthToken!: AccessToken;\r\n\r\n public iModelWithChangesets?: IModelSession;\r\n public iModelForWrite?: IModelSession;\r\n public iTwinId?: string;\r\n\r\n public settings: Settings;\r\n\r\n private constructor(env: NodeJS.ProcessEnv) {\r\n this.settings = new Settings(env);\r\n }\r\n private static _instance?: TestContext = undefined;\r\n\r\n public static async instance(): Promise<TestContext> {\r\n if (this._instance === undefined) {\r\n this._instance = new TestContext(await getProcessEnvFromBackend());\r\n await this._instance.initialize();\r\n }\r\n return this._instance;\r\n }\r\n\r\n /** Initialize configuration for the rpc interfaces used by the application. */\r\n private initializeRpcInterfaces(info: OpenAPIInfo) { // eslint-disable-line @typescript-eslint/no-deprecated\r\n // Url without trailing slash\r\n const uriPrefix: string = this.settings.Backend.location.replace(/\\/$/, \"\");\r\n BentleyCloudRpcManager.initializeClient({ info, uriPrefix }, getRpcInterfaces(this.settings));\r\n }\r\n\r\n private async initialize() {\r\n expect(this.settings.users.length).to.be.gte(1, `Unexpected number of users found in settings - got ${this.settings.users.length}, expected at least 2`);\r\n expect(this.settings.iModels.length).to.be.gte(1, `Unexpected number of iModels found in settings - got ${this.settings.iModels.length}, expected at least 1`);\r\n\r\n // Print out the configuration\r\n console.log(this.settings.toString());\r\n\r\n // Configure iTwin.js frontend logging to go to the console\r\n Logger.initializeToConsole();\r\n Logger.setLevelDefault(this.settings.logLevel === undefined ? LogLevel.Warning : this.settings.logLevel);\r\n\r\n if (this.settings?.clientConfiguration && this.settings.clientConfiguration.clientId) {\r\n this.serviceAuthToken = await getServiceAuthTokenFromBackend({\r\n clientId: this.settings.clientConfiguration.clientId,\r\n clientSecret: this.settings.clientConfiguration.clientSecret,\r\n scope: this.settings.clientConfiguration.scope,\r\n authority: `https://${\r\n process.env.IMJS_URL_PREFIX === \"dev-\"\r\n ? \"qa-\"\r\n : process.env.IMJS_URL_PREFIX ?? \"\"\r\n }ims.bentley.com`,\r\n });\r\n }\r\n\r\n if (undefined !== this.settings.clientConfiguration)\r\n this.clientAccessToken = await getClientAccessTokenFromBackend();\r\n\r\n this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });\r\n\r\n const iModelClient = new IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? \"\"}api.bentley.com/imodels` } });\r\n await NoRenderApp.startup({\r\n applicationVersion: PACKAGE_VERSION,\r\n applicationId: this.settings.gprid,\r\n authorizationClient: new TestFrontendAuthorizationClient(this.serviceAuthToken),\r\n hubAccess: new FrontendIModelsAccess(iModelClient),\r\n });\r\n\r\n this.iModelWithChangesets = await IModelSession.create(this.serviceAuthToken, this.settings.iModel);\r\n\r\n this.iTwinId = this.iModelWithChangesets.iTwinId;\r\n\r\n if (this.settings.runiModelWriteRpcTests)\r\n this.iModelForWrite = await IModelSession.create(this.serviceAuthToken, this.settings.writeIModel);\r\n\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TestContext.js","sourceRoot":"","sources":["../../../src/frontend/setup/TestContext.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,+BAA8B;AAC9B,sDAAoE;AACpE,oDAAyE;AACzE,wDAAmD;AACnD,uEAA2H;AAC3H,4EAAuE;AACvE,gFAAiE;AACjE,oDAAmE;AACnE,4DAAsG;AACtG,mDAAgD;AAIhD,+BAA+B;AAC/B,MAAa,WAAW;IACf,iBAAiB,CAAe;IAChC,gBAAgB,CAAe;IAE/B,oBAAoB,CAAiB;IACrC,cAAc,CAAiB;IAC/B,OAAO,CAAU;IAEjB,QAAQ,CAAW;IAE1B,YAAoB,GAAsB;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IACO,MAAM,CAAC,SAAS,GAAiB,SAAS,CAAC;IAE5C,MAAM,CAAC,KAAK,CAAC,QAAQ;QAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,MAAM,IAAA,uCAAwB,GAAE,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,+EAA+E;IACvE,uBAAuB,CAAC,IAAiB;QAC/C,6BAA6B;QAC7B,MAAM,SAAS,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5E,oCAAsB,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAA,2BAAgB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChG,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAA,aAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sDAAsD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACzJ,IAAA,aAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wDAAwD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,uBAAuB,CAAC,CAAC;QAE/J,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtC,2DAA2D;QAC3D,qBAAM,CAAC,mBAAmB,EAAE,CAAC;QAC7B,qBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzG,IAAI,IAAI,CAAC,QAAQ,EAAE,mBAAmB,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YACrF,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAA,yCAA8B,EAAC;gBAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ;gBACpD,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY;gBAC5D,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK;gBAC9C,SAAS,EAAE,WACT,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM;oBACpC,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EACrC,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,mBAAmB;YACjD,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAA,8CAA+B,GAAE,CAAC;QAEnE,IAAI,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5G,MAAM,YAAY,GAAG,IAAI,yCAAa,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACpI,MAAM,2BAAW,CAAC,OAAO,CAAC;YACxB,kBAAkB,EAAE,eAAe;YACnC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAClC,mBAAmB,EAAE,IAAI,0CAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC/E,SAAS,EAAE,IAAI,+CAAqB,CAAC,YAAY,CAAC;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,MAAM,6BAAa,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;QAEjD,IAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB;YACtC,IAAI,CAAC,cAAc,GAAG,MAAM,6BAAa,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEvG,CAAC;;AA1EH,kCA2EC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { expect } from \"chai\";\nimport { AccessToken, Logger, LogLevel } from \"@itwin/core-bentley\";\nimport { BentleyCloudRpcManager, OpenAPIInfo } from \"@itwin/core-common\";\nimport { NoRenderApp } from \"@itwin/core-frontend\";\nimport { getServiceAuthTokenFromBackend, TestFrontendAuthorizationClient } from \"@itwin/oidc-signin-tool/lib/cjs/frontend\";\nimport { FrontendIModelsAccess } from \"@itwin/imodels-access-frontend\";\nimport { IModelsClient } from \"@itwin/imodels-client-management\";\nimport { getRpcInterfaces, Settings } from \"../../common/Settings\";\nimport { getClientAccessTokenFromBackend, getProcessEnvFromBackend } from \"../../common/SideChannels\";\nimport { IModelSession } from \"./IModelSession\";\n\ndeclare const PACKAGE_VERSION: string;\n\n/* eslint-disable no-console */\nexport class TestContext {\n public clientAccessToken?: AccessToken;\n public serviceAuthToken!: AccessToken;\n\n public iModelWithChangesets?: IModelSession;\n public iModelForWrite?: IModelSession;\n public iTwinId?: string;\n\n public settings: Settings;\n\n private constructor(env: NodeJS.ProcessEnv) {\n this.settings = new Settings(env);\n }\n private static _instance?: TestContext = undefined;\n\n public static async instance(): Promise<TestContext> {\n if (this._instance === undefined) {\n this._instance = new TestContext(await getProcessEnvFromBackend());\n await this._instance.initialize();\n }\n return this._instance;\n }\n\n /** Initialize configuration for the rpc interfaces used by the application. */\n private initializeRpcInterfaces(info: OpenAPIInfo) { // eslint-disable-line @typescript-eslint/no-deprecated\n // Url without trailing slash\n const uriPrefix: string = this.settings.Backend.location.replace(/\\/$/, \"\");\n BentleyCloudRpcManager.initializeClient({ info, uriPrefix }, getRpcInterfaces(this.settings));\n }\n\n private async initialize() {\n expect(this.settings.users.length).to.be.gte(1, `Unexpected number of users found in settings - got ${this.settings.users.length}, expected at least 2`);\n expect(this.settings.iModels.length).to.be.gte(1, `Unexpected number of iModels found in settings - got ${this.settings.iModels.length}, expected at least 1`);\n\n // Print out the configuration\n console.log(this.settings.toString());\n\n // Configure iTwin.js frontend logging to go to the console\n Logger.initializeToConsole();\n Logger.setLevelDefault(this.settings.logLevel === undefined ? LogLevel.Warning : this.settings.logLevel);\n\n if (this.settings?.clientConfiguration && this.settings.clientConfiguration.clientId) {\n this.serviceAuthToken = await getServiceAuthTokenFromBackend({\n clientId: this.settings.clientConfiguration.clientId,\n clientSecret: this.settings.clientConfiguration.clientSecret,\n scope: this.settings.clientConfiguration.scope,\n authority: `https://${\n process.env.IMJS_URL_PREFIX === \"dev-\"\n ? \"qa-\"\n : process.env.IMJS_URL_PREFIX ?? \"\"\n }ims.bentley.com`,\n });\n }\n\n if (undefined !== this.settings.clientConfiguration)\n this.clientAccessToken = await getClientAccessTokenFromBackend();\n\n this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });\n\n const iModelClient = new IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? \"\"}api.bentley.com/imodels` } });\n await NoRenderApp.startup({\n applicationVersion: PACKAGE_VERSION,\n applicationId: this.settings.gprid,\n authorizationClient: new TestFrontendAuthorizationClient(this.serviceAuthToken),\n hubAccess: new FrontendIModelsAccess(iModelClient),\n });\n\n this.iModelWithChangesets = await IModelSession.create(this.serviceAuthToken, this.settings.iModel);\n\n this.iTwinId = this.iModelWithChangesets.iTwinId;\n\n if (this.settings.runiModelWriteRpcTests)\n this.iModelForWrite = await IModelSession.create(this.serviceAuthToken, this.settings.writeIModel);\n\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BasicScenarios.test.js","sourceRoot":"","sources":["../../../src/frontend/workflows/BasicScenarios.test.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAE/F,6BAA6B;AAC7B,mDAAmD;AACnD,oDAAoD;AACpD,wDAAuE;AACvE,uEAA2F;AAC3F,sDAAmD;AAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzB,QAAQ,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IACrC,IAAI,WAAwB,CAAC;IAE7B,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,WAAW,GAAG,MAAM,yBAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC;QACjD,yBAAS,CAAC,mBAAmB,GAAG,IAAI,0CAA+B,CAAC,WAAW,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,sBAAsB,CAAC,OAAe,EAAE,QAAgB;QACrE,MAAM,MAAM,GAAG,MAAM,oCAAoB,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAEjC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9B,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,EAAE,CAAC,kHAAkH,EAAE,KAAK,IAAI,EAAE;QAChI,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QAEpC,MAAM,QAAQ,GAAG,WAAW,CAAC,oBAAqB,CAAC,QAAQ,CAAC;QAC5D,MAAM,sBAAsB,CAAC,OAAQ,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAqB,CAAC,aAAa,EAAE,CAAC;QAEvE,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,gDAAgD,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,4BAAc,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACnL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjB,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as chai from \"chai\";\r\nimport * as chaiAsPromised from \"chai-as-promised\";\r\nimport { QueryRowFormat } from \"@itwin/core-common\";\r\nimport { CheckpointConnection, IModelApp } from \"@itwin/core-frontend\";\r\nimport { TestFrontendAuthorizationClient } from \"@itwin/oidc-signin-tool/lib/cjs/frontend\";\r\nimport { TestContext } from \"../setup/TestContext\";\r\n\r\nconst expect = chai.expect;\r\n\r\nchai.use(chaiAsPromised);\r\n\r\ndescribe(\"Basic Scenarios\", async () => {\r\n let testContext: TestContext;\r\n\r\n before(async () => {\r\n testContext = await TestContext.instance();\r\n const accessToken = testContext.serviceAuthToken;\r\n IModelApp.authorizationClient = new TestFrontendAuthorizationClient(accessToken);\r\n });\r\n\r\n async function openIModelAndQueryPage(iTwinId: string, iModelId: string) {\r\n const iModel = await CheckpointConnection.openRemote(iTwinId, iModelId);\r\n expect(iModel).to.exist;\r\n expect(iModel.elements).to.exist;\r\n\r\n const elements = iModel.elements;\r\n const elementProps = await elements.getProps(elements.rootSubjectId);\r\n expect(elementProps).to.exist;\r\n expect(elementProps.length).to.equal(1);\r\n }\r\n\r\n it(\"should successfully open a new IModel with changesets for read and Get Properties for an Element TestCase:819342\", async () => {\r\n const iTwinId = testContext.iTwinId;\r\n\r\n const iModelId = testContext.iModelWithChangesets!.iModelId;\r\n await openIModelAndQueryPage(iTwinId!, iModelId);\r\n });\r\n\r\n it(\"should open iModel and Execute Query TestCase:819343\", async () => {\r\n const iModel = await testContext.iModelWithChangesets!.getConnection();\r\n\r\n const rows = [];\r\n for await (const row of iModel.createQueryReader(\"SELECT ECInstanceId AS id FROM BisCore.Element\", undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames, limit: { count: 10 } }))\r\n rows.push(row);\r\n\r\n expect(rows).not.to.be.empty;\r\n });\r\n\r\n});\r\n"]}
1
+ {"version":3,"file":"BasicScenarios.test.js","sourceRoot":"","sources":["../../../src/frontend/workflows/BasicScenarios.test.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAE/F,6BAA6B;AAC7B,mDAAmD;AACnD,oDAAoD;AACpD,wDAAuE;AACvE,uEAA2F;AAC3F,sDAAmD;AAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzB,QAAQ,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IACrC,IAAI,WAAwB,CAAC;IAE7B,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,WAAW,GAAG,MAAM,yBAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC;QACjD,yBAAS,CAAC,mBAAmB,GAAG,IAAI,0CAA+B,CAAC,WAAW,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,sBAAsB,CAAC,OAAe,EAAE,QAAgB;QACrE,MAAM,MAAM,GAAG,MAAM,oCAAoB,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAEjC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9B,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,EAAE,CAAC,kHAAkH,EAAE,KAAK,IAAI,EAAE;QAChI,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QAEpC,MAAM,QAAQ,GAAG,WAAW,CAAC,oBAAqB,CAAC,QAAQ,CAAC;QAC5D,MAAM,sBAAsB,CAAC,OAAQ,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAqB,CAAC,aAAa,EAAE,CAAC;QAEvE,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,gDAAgD,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,4BAAc,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACnL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjB,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,CAAC;AAEL,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*--------------------------------------------------------------------------------------------*/\n\nimport * as chai from \"chai\";\nimport * as chaiAsPromised from \"chai-as-promised\";\nimport { QueryRowFormat } from \"@itwin/core-common\";\nimport { CheckpointConnection, IModelApp } from \"@itwin/core-frontend\";\nimport { TestFrontendAuthorizationClient } from \"@itwin/oidc-signin-tool/lib/cjs/frontend\";\nimport { TestContext } from \"../setup/TestContext\";\n\nconst expect = chai.expect;\n\nchai.use(chaiAsPromised);\n\ndescribe(\"Basic Scenarios\", async () => {\n let testContext: TestContext;\n\n before(async () => {\n testContext = await TestContext.instance();\n const accessToken = testContext.serviceAuthToken;\n IModelApp.authorizationClient = new TestFrontendAuthorizationClient(accessToken);\n });\n\n async function openIModelAndQueryPage(iTwinId: string, iModelId: string) {\n const iModel = await CheckpointConnection.openRemote(iTwinId, iModelId);\n expect(iModel).to.exist;\n expect(iModel.elements).to.exist;\n\n const elements = iModel.elements;\n const elementProps = await elements.getProps(elements.rootSubjectId);\n expect(elementProps).to.exist;\n expect(elementProps.length).to.equal(1);\n }\n\n it(\"should successfully open a new IModel with changesets for read and Get Properties for an Element TestCase:819342\", async () => {\n const iTwinId = testContext.iTwinId;\n\n const iModelId = testContext.iModelWithChangesets!.iModelId;\n await openIModelAndQueryPage(iTwinId!, iModelId);\n });\n\n it(\"should open iModel and Execute Query TestCase:819343\", async () => {\n const iModel = await testContext.iModelWithChangesets!.getConnection();\n\n const rows = [];\n for await (const row of iModel.createQueryReader(\"SELECT ECInstanceId AS id FROM BisCore.Element\", undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames, limit: { count: 10 } }))\n rows.push(row);\n\n expect(rows).not.to.be.empty;\n });\n\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/rpcinterface-full-stack-tests",
3
- "version": "5.2.0-dev.12",
3
+ "version": "5.2.0-dev.14",
4
4
  "description": "Test the full iTwin.js Core stack (frontend and backend) using standard RPC interfaces",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -32,15 +32,15 @@
32
32
  "dotenv-expand": "^5.1.0",
33
33
  "mocha": "^11.1.0",
34
34
  "openid-client": "^4.7.4",
35
- "@itwin/build-tools": "5.2.0-dev.12",
36
- "@itwin/core-bentley": "5.2.0-dev.12",
37
- "@itwin/core-frontend": "5.2.0-dev.12",
38
- "@itwin/core-common": "5.2.0-dev.12",
39
- "@itwin/certa": "5.2.0-dev.12",
40
- "@itwin/core-quantity": "5.2.0-dev.12",
41
- "@itwin/core-geometry": "5.2.0-dev.12",
42
- "@itwin/presentation-common": "5.2.0-dev.12",
43
- "@itwin/presentation-frontend": "5.2.0-dev.12"
35
+ "@itwin/core-bentley": "5.2.0-dev.14",
36
+ "@itwin/build-tools": "5.2.0-dev.14",
37
+ "@itwin/core-frontend": "5.2.0-dev.14",
38
+ "@itwin/core-quantity": "5.2.0-dev.14",
39
+ "@itwin/certa": "5.2.0-dev.14",
40
+ "@itwin/core-common": "5.2.0-dev.14",
41
+ "@itwin/presentation-common": "5.2.0-dev.14",
42
+ "@itwin/core-geometry": "5.2.0-dev.14",
43
+ "@itwin/presentation-frontend": "5.2.0-dev.14"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@itwin/itwins-client": "^1.6.1",
@@ -63,11 +63,11 @@
63
63
  "typescript": "~5.6.2",
64
64
  "webpack": "^5.97.1",
65
65
  "webpack-cli": "^5.0.1",
66
- "@itwin/core-backend": "5.2.0-dev.12",
67
- "@itwin/ecschema-metadata": "5.2.0-dev.12",
68
- "@itwin/express-server": "5.2.0-dev.12",
69
- "@itwin/presentation-backend": "5.2.0-dev.12",
70
- "internal-tools": "3.0.0-dev.69"
66
+ "@itwin/ecschema-metadata": "5.2.0-dev.14",
67
+ "@itwin/core-backend": "5.2.0-dev.14",
68
+ "@itwin/express-server": "5.2.0-dev.14",
69
+ "internal-tools": "3.0.0-dev.69",
70
+ "@itwin/presentation-backend": "5.2.0-dev.14"
71
71
  },
72
72
  "scripts": {
73
73
  "build": "tsc 1>&2 && npm run -s webpack:test",