@itwin/rpcinterface-full-stack-tests 5.0.0-dev.22 → 5.0.0-dev.23

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\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 await Presentation.initialize();\r\n\r\n const iModelId = testContext.iModelWithChangesets!.iModelId;\r\n const iTwinId = testContext.iModelWithChangesets!.iTwinId;\r\n const accessToken = testContext.adminUserAccessToken;\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 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 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\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 },\r\n arePolymorphic: true,\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":["/*---------------------------------------------------------------------------------------------\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\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 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 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 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\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 },\r\n arePolymorphic: true,\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"]}
@@ -2,8 +2,8 @@ import { AccessToken } from "@itwin/core-bentley";
2
2
  import { Settings } from "../../common/Settings";
3
3
  import { IModelSession } from "./IModelSession";
4
4
  export declare class TestContext {
5
- adminUserAccessToken: AccessToken;
6
5
  clientAccessToken?: AccessToken;
6
+ serviceAuthToken: AccessToken;
7
7
  iModelWithChangesets?: IModelSession;
8
8
  iModelForWrite?: IModelSession;
9
9
  iTwinId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"TestContext.d.ts","sourceRoot":"","sources":["../../../src/frontend/setup/TestContext.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAoB,MAAM,qBAAqB,CAAC;AAQpE,OAAO,EAAoB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,qBAAa,WAAW;IACf,oBAAoB,EAAG,WAAW,CAAC;IACnC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC,oBAAoB,CAAC,EAAE,aAAa,CAAC;IACrC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,EAAE,QAAQ,CAAC;IAE1B,OAAO;IAGP,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAA0B;WAE/B,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAQpD,+EAA+E;IAC/E,OAAO,CAAC,uBAAuB;YAMjB,UAAU;CA2CzB"}
1
+ {"version":3,"file":"TestContext.d.ts","sourceRoot":"","sources":["../../../src/frontend/setup/TestContext.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAoB,MAAM,qBAAqB,CAAC;AAMpE,OAAO,EAAoB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,qBAAa,WAAW;IACf,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,gBAAgB,EAAG,WAAW,CAAC;IAE/B,oBAAoB,CAAC,EAAE,aAAa,CAAC;IACrC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,EAAE,QAAQ,CAAC;IAE1B,OAAO;IAGP,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAA0B;WAE/B,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAQpD,+EAA+E;IAC/E,OAAO,CAAC,uBAAuB;YAMjB,UAAU;CA6CzB"}
@@ -41,15 +41,14 @@ class TestContext {
41
41
  // Configure iTwin.js frontend logging to go to the console
42
42
  core_bentley_1.Logger.initializeToConsole();
43
43
  core_bentley_1.Logger.setLevelDefault(this.settings.logLevel === undefined ? core_bentley_1.LogLevel.Warning : this.settings.logLevel);
44
- if (undefined !== this.settings.oidcClientId) {
45
- this.adminUserAccessToken = await (0, frontend_1.getAccessTokenFromBackend)({
46
- email: this.settings.users[0].email,
47
- password: this.settings.users[0].password,
48
- }, {
49
- clientId: this.settings.oidcClientId,
50
- redirectUri: this.settings.oidcRedirect,
51
- scope: this.settings.oidcScopes,
52
- authority: this.settings.oidcAuthority,
44
+ if (this.settings?.clientConfiguration && this.settings.clientConfiguration.clientId) {
45
+ this.serviceAuthToken = await (0, frontend_1.getServiceAuthTokenFromBackend)({
46
+ clientId: this.settings.clientConfiguration.clientId,
47
+ clientSecret: this.settings.clientConfiguration.clientSecret,
48
+ scope: this.settings.clientConfiguration.scope,
49
+ authority: `https://${process.env.IMJS_URL_PREFIX === "dev-"
50
+ ? "qa-"
51
+ : process.env.IMJS_URL_PREFIX ?? ""}ims.bentley.com`,
53
52
  });
54
53
  }
55
54
  if (undefined !== this.settings.clientConfiguration)
@@ -59,14 +58,13 @@ class TestContext {
59
58
  await core_frontend_1.NoRenderApp.startup({
60
59
  applicationVersion: PACKAGE_VERSION,
61
60
  applicationId: this.settings.gprid,
62
- authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
61
+ authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.serviceAuthToken),
63
62
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
64
63
  });
65
- this.iModelWithChangesets = await IModelSession_1.IModelSession.create(this.adminUserAccessToken, this.settings.iModel);
64
+ this.iModelWithChangesets = await IModelSession_1.IModelSession.create(this.serviceAuthToken, this.settings.iModel);
66
65
  this.iTwinId = this.iModelWithChangesets.iTwinId;
67
66
  if (this.settings.runiModelWriteRpcTests)
68
- this.iModelForWrite = await IModelSession_1.IModelSession.create(this.adminUserAccessToken, this.settings.writeIModel);
69
- console.log("TestSetup: Done");
67
+ this.iModelForWrite = await IModelSession_1.IModelSession.create(this.serviceAuthToken, this.settings.writeIModel);
70
68
  }
71
69
  }
72
70
  exports.TestContext = TestContext;
@@ -1 +1 @@
1
- {"version":3,"file":"TestContext.js","sourceRoot":"","sources":["../../../src/frontend/setup/TestContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { 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 {\r\n getAccessTokenFromBackend, TestBrowserAuthorizationClientConfiguration, TestFrontendAuthorizationClient, TestUserCredentials,\r\n} 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 adminUserAccessToken!: AccessToken;\r\n public clientAccessToken?: 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 (undefined !== this.settings.oidcClientId) {\r\n this.adminUserAccessToken = await getAccessTokenFromBackend({\r\n email: this.settings.users[0].email,\r\n password: this.settings.users[0].password,\r\n } as TestUserCredentials, {\r\n clientId: this.settings.oidcClientId,\r\n redirectUri: this.settings.oidcRedirect,\r\n scope: this.settings.oidcScopes,\r\n authority: this.settings.oidcAuthority,\r\n } as TestBrowserAuthorizationClientConfiguration);\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.adminUserAccessToken),\r\n hubAccess: new FrontendIModelsAccess(iModelClient),\r\n });\r\n\r\n this.iModelWithChangesets = await IModelSession.create(this.adminUserAccessToken, this.settings.iModel);\r\n this.iTwinId = this.iModelWithChangesets.iTwinId;\r\n if (this.settings.runiModelWriteRpcTests)\r\n this.iModelForWrite = await IModelSession.create(this.adminUserAccessToken, this.settings.writeIModel);\r\n\r\n console.log(\"TestSetup: Done\");\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TestContext.js","sourceRoot":"","sources":["../../../src/frontend/setup/TestContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { 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"]}
@@ -16,7 +16,7 @@ describe("Basic Scenarios", async () => {
16
16
  let testContext;
17
17
  before(async () => {
18
18
  testContext = await TestContext_1.TestContext.instance();
19
- const accessToken = testContext.adminUserAccessToken;
19
+ const accessToken = testContext.serviceAuthToken;
20
20
  core_frontend_1.IModelApp.authorizationClient = new frontend_1.TestFrontendAuthorizationClient(accessToken);
21
21
  });
22
22
  async function openIModelAndQueryPage(iTwinId, iModelId) {
@@ -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,oBAAoB,CAAC;QACrD,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.adminUserAccessToken;\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":["/*---------------------------------------------------------------------------------------------\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/rpcinterface-full-stack-tests",
3
- "version": "5.0.0-dev.22",
3
+ "version": "5.0.0-dev.23",
4
4
  "description": "Test the full iTwin.js Core stack (frontend and backend) using standard RPC interfaces",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,7 +24,7 @@
24
24
  "@itwin/imodels-client-authoring": "^5.8.1",
25
25
  "@itwin/imodels-client-management": "^5.8.1",
26
26
  "@itwin/eslint-plugin": "5.0.0-dev.1",
27
- "@itwin/oidc-signin-tool": "^4.3.7",
27
+ "@itwin/oidc-signin-tool": "^4.4.0",
28
28
  "@itwin/service-authorization": "^1.0.0",
29
29
  "chai": "^4.3.10",
30
30
  "chai-as-promised": "^7.1.1",
@@ -32,15 +32,15 @@
32
32
  "dotenv-expand": "^5.1.0",
33
33
  "mocha": "^10.2.0",
34
34
  "openid-client": "^4.7.4",
35
- "@itwin/build-tools": "5.0.0-dev.22",
36
- "@itwin/core-geometry": "5.0.0-dev.22",
37
- "@itwin/core-bentley": "5.0.0-dev.22",
38
- "@itwin/core-frontend": "5.0.0-dev.22",
39
- "@itwin/core-quantity": "5.0.0-dev.22",
40
- "@itwin/core-common": "5.0.0-dev.22",
41
- "@itwin/certa": "5.0.0-dev.22",
42
- "@itwin/presentation-common": "5.0.0-dev.22",
43
- "@itwin/presentation-frontend": "5.0.0-dev.22"
35
+ "@itwin/build-tools": "5.0.0-dev.23",
36
+ "@itwin/core-bentley": "5.0.0-dev.23",
37
+ "@itwin/core-common": "5.0.0-dev.23",
38
+ "@itwin/core-frontend": "5.0.0-dev.23",
39
+ "@itwin/core-geometry": "5.0.0-dev.23",
40
+ "@itwin/core-quantity": "5.0.0-dev.23",
41
+ "@itwin/certa": "5.0.0-dev.23",
42
+ "@itwin/presentation-common": "5.0.0-dev.23",
43
+ "@itwin/presentation-frontend": "5.0.0-dev.23"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@itwin/itwins-client": "^1.2.0",
@@ -63,10 +63,10 @@
63
63
  "typescript": "~5.6.2",
64
64
  "webpack": "^5.97.1",
65
65
  "webpack-cli": "^5.0.1",
66
- "@itwin/core-backend": "5.0.0-dev.22",
67
- "@itwin/express-server": "5.0.0-dev.22",
68
- "@itwin/presentation-backend": "5.0.0-dev.22",
69
- "internal-tools": "3.0.0-dev.69"
66
+ "@itwin/core-backend": "5.0.0-dev.23",
67
+ "internal-tools": "3.0.0-dev.69",
68
+ "@itwin/express-server": "5.0.0-dev.23",
69
+ "@itwin/presentation-backend": "5.0.0-dev.23"
70
70
  },
71
71
  "scripts": {
72
72
  "build": "tsc 1>&2 && npm run -s webpack:test",