@itwin/ecschema-rpcinterface-tests 3.0.0-extension.1 → 3.1.0-dev.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MIT License
2
2
 
3
- Copyright © 2017-2021 Bentley Systems, Incorporated. All rights reserved.
3
+ Copyright © 2017-2022 Bentley Systems, Incorporated. All rights reserved.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
6
 
@@ -20,11 +20,10 @@ export interface IModelData {
20
20
  export declare function getRpcInterfaces(): (typeof IModelReadRpcInterface | typeof ECSchemaRpcInterface)[];
21
21
  export declare class Settings {
22
22
  private _backend;
23
- env: number;
24
23
  oidcClientId: string;
25
24
  oidcScopes: string;
26
25
  oidcRedirect: string;
27
- imsUrl: string;
26
+ oidcAuthority?: string;
28
27
  discovery: string;
29
28
  gprid?: string;
30
29
  logLevel?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.d.ts","sourceRoot":"","sources":["../../src/common/Settings.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,oEAM/B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAA0B;IACnC,GAAG,EAAE,MAAM,CAAK;IAChB,YAAY,EAAG,MAAM,CAAC;IACtB,UAAU,EAAG,MAAM,CAAC;IACpB,YAAY,EAAG,MAAM,CAAC;IACtB,MAAM,EAAG,MAAM,CAAC;IAChB,SAAS,EAAG,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,mBAAmB,EAAE,CAAM;IAGzC,IAAW,OAAO,IAAI,OAAO,CAA0B;IACvD,IAAW,IAAI,IAAI,mBAAmB,CAA0B;IAEzD,MAAM,EAAE,UAAU,CAAoB;gBAEjC,GAAG,EAAE,MAAM,CAAC,UAAU;IAyBlC;OACG;IACH,OAAO,CAAC,IAAI;IAkEL,QAAQ,IAAI,MAAM;CAO1B"}
1
+ {"version":3,"file":"Settings.d.ts","sourceRoot":"","sources":["../../src/common/Settings.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,oEAM/B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAA0B;IACnC,YAAY,EAAG,MAAM,CAAC;IACtB,UAAU,EAAG,MAAM,CAAC;IACpB,YAAY,EAAG,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAG,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,mBAAmB,EAAE,CAAM;IAGzC,IAAW,OAAO,IAAI,OAAO,CAA0B;IACvD,IAAW,IAAI,IAAI,mBAAmB,CAA0B;IAEzD,MAAM,EAAE,UAAU,CAAoB;gBAEjC,GAAG,EAAE,MAAM,CAAC,UAAU;IAyBlC;OACG;IACH,OAAO,CAAC,IAAI;IA+DL,QAAQ,IAAI,MAAM;CAO1B"}
@@ -18,7 +18,6 @@ exports.getRpcInterfaces = getRpcInterfaces;
18
18
  class Settings {
19
19
  constructor(env) {
20
20
  this._backend = {};
21
- this.env = 0;
22
21
  this.users = [];
23
22
  this.iModel = {};
24
23
  const isFrontend = (typeof (process) === "undefined");
@@ -47,9 +46,6 @@ class Settings {
47
46
  /** Loads the necessary variables from `process.env`.
48
47
  */
49
48
  load() {
50
- // Parse environment
51
- if (undefined !== process.env.ENVIRONMENT)
52
- this.env = parseInt(process.env.ENVIRONMENT, 10);
53
49
  // Parse OIDC
54
50
  if (undefined === process.env.OIDC_CLIENT_ID)
55
51
  throw new Error("Missing the 'OIDC_CLIENT_ID' setting.");
@@ -57,6 +53,8 @@ class Settings {
57
53
  if (undefined === process.env.OIDC_SCOPES)
58
54
  throw new Error("Missing the 'OIDC_SCOPES' setting");
59
55
  this.oidcScopes = process.env.OIDC_SCOPES;
56
+ if (process.env.OIDC_AUTHORITY)
57
+ this.oidcAuthority = process.env.OIDC_AUTHORITY;
60
58
  this.oidcRedirect = (undefined === process.env.OIDC_REDIRECT) ? "http://localhost:5000" : process.env.OIDC_REDIRECT;
61
59
  // Parse GPRId
62
60
  if (undefined !== process.env.GPRID)
@@ -96,7 +94,6 @@ class Settings {
96
94
  email: process.env.USER_WITH_ACCESS_USERNAME || "",
97
95
  password: process.env.USER_WITH_ACCESS_PASSWORD || "",
98
96
  });
99
- // this.users.push([process.env.USER_WITHOUT_ACCESS_USERNAME || "", process.env.USER_WITHOUT_ACCESS_PASSWORD || ""]);
100
97
  }
101
98
  toString() {
102
99
  return `Configurations:
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/common/Settings.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 { LogLevel } from \"@itwin/core-bentley\";\r\nimport { IModelReadRpcInterface } from \"@itwin/core-common\";\r\nimport { TestUserCredentials } from \"@itwin/oidc-signin-tool\";\r\nimport { ECSchemaRpcInterface } from \"@itwin/ecschema-rpcinterface-common\";\r\n\r\nexport interface Backend {\r\n version: string;\r\n location: string;\r\n name: string;\r\n path: string;\r\n}\r\n\r\nexport interface IModelData {\r\n useName: boolean; // Defines whether or not to use the name of the iModel\r\n id?: string; // The iModel Id - This is not required\r\n name?: string; // The name is not required to actually get the iModel, only the id.\r\n useITwinName: boolean;\r\n iTwinId?: string;\r\n iTwinName?: string;\r\n changesetId?: string;\r\n}\r\n\r\nexport function getRpcInterfaces() {\r\n const rpcInterfaces = [];\r\n rpcInterfaces.push(IModelReadRpcInterface);\r\n rpcInterfaces.push(ECSchemaRpcInterface);\r\n\r\n return rpcInterfaces;\r\n}\r\n\r\nexport class Settings {\r\n private _backend: Backend = {} as Backend;\r\n public env: number = 0;\r\n public oidcClientId!: string;\r\n public oidcScopes!: string;\r\n public oidcRedirect!: string;\r\n public imsUrl!: string;\r\n public discovery!: string;\r\n public gprid?: string;\r\n public logLevel?: number;\r\n public users: TestUserCredentials[] = [];\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public get Backend(): Backend { return this._backend; }\r\n public get user(): TestUserCredentials { return this.users[0]; }\r\n\r\n public iModel: IModelData = {} as IModelData;\r\n\r\n constructor(env: NodeJS.ProcessEnv) {\r\n const isFrontend = (typeof (process) === \"undefined\");\r\n if (!isFrontend && undefined === env.TF_BUILD) {\r\n const path = require(\"path\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n const dotenv = require(\"dotenv\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n const dotenvExpand = require(\"dotenv-expand\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n // First check in process.cwd() for the config\r\n let result = dotenv.config();\r\n if (result.error) {\r\n const potential = path.resolve(process.cwd(), \"..\", \"..\", \"..\", \"imodeljs-config\", \".env\");\r\n result = dotenv.config({ path: potential });\r\n if (result.error)\r\n throw result.error;\r\n }\r\n\r\n dotenvExpand(result);\r\n }\r\n\r\n if (isFrontend)\r\n globalThis.process = { browser: true, env } as any;\r\n\r\n // Loads the config out of the environment.\r\n this.load();\r\n }\r\n\r\n /** Loads the necessary variables from `process.env`.\r\n */\r\n private load() {\r\n\r\n // Parse environment\r\n if (undefined !== process.env.ENVIRONMENT)\r\n this.env = parseInt(process.env.ENVIRONMENT, 10);\r\n\r\n // Parse OIDC\r\n if (undefined === process.env.OIDC_CLIENT_ID)\r\n throw new Error(\"Missing the 'OIDC_CLIENT_ID' setting.\");\r\n this.oidcClientId = process.env.OIDC_CLIENT_ID!;\r\n\r\n if (undefined === process.env.OIDC_SCOPES)\r\n throw new Error(\"Missing the 'OIDC_SCOPES' setting\");\r\n this.oidcScopes = process.env.OIDC_SCOPES;\r\n\r\n this.oidcRedirect = (undefined === process.env.OIDC_REDIRECT) ? \"http://localhost:5000\" : process.env.OIDC_REDIRECT;\r\n\r\n // Parse GPRId\r\n if (undefined !== process.env.GPRID)\r\n this.gprid = process.env.GPRID;\r\n\r\n // Parse the iModel variables\r\n if (!process.env.IMODEL_PROJECTID && !process.env.IMODEL_PROJECTNAME)\r\n throw new Error(\"Missing the 'IMODEL_PROJECTID' or 'IMODEL_PROJECTNAME' setting.\");\r\n\r\n if (!process.env.IMODEL_IMODELID && !process.env.IMODEL_IMODELNAME)\r\n throw new Error(\"Missing the 'IMODEL_IMODELID' or 'IMODEL_IMODELNAME' setting.\");\r\n\r\n this.iModel = {\r\n useName: !process.env.IMODEL_IMODELID,\r\n id: process.env.IMODEL_IMODELID,\r\n name: process.env.IMODEL_IMODELNAME,\r\n useITwinName: !process.env.IMODEL_PROJECTID,\r\n iTwinId: process.env.IMODEL_PROJECTID,\r\n iTwinName: process.env.IMODEL_PROJECTNAME,\r\n changesetId: process.env.IMODEL_CHANGESETID,\r\n };\r\n\r\n // Parse logging level\r\n if (undefined !== process.env.LOG_LEVEL) {\r\n const level = parseInt(process.env.LOG_LEVEL, 10);\r\n if (!isNaN(level) && undefined !== LogLevel[level])\r\n this.logLevel = level;\r\n }\r\n\r\n // Get backend data\r\n if (undefined === process.env.BACKEND_LOCATION)\r\n throw new Error(\"Missing the 'BACKEND_LOCATION' setting.\");\r\n this._backend.location = process.env.BACKEND_LOCATION;\r\n\r\n if (undefined === process.env.BACKEND_VERSION)\r\n throw new Error(\"Missing the 'BACKEND_VERSION' setting.\");\r\n this._backend.version = process.env.BACKEND_VERSION;\r\n\r\n if (undefined === process.env.BACKEND_NAME)\r\n throw new Error(\"Missing the 'BACKEND_NAME' setting.\");\r\n this._backend.name = process.env.BACKEND_NAME;\r\n\r\n // Get users\r\n this.users.push({\r\n email: process.env.USER_WITH_ACCESS_USERNAME || \"\",\r\n password: process.env.USER_WITH_ACCESS_PASSWORD || \"\",\r\n });\r\n // this.users.push([process.env.USER_WITHOUT_ACCESS_USERNAME || \"\", process.env.USER_WITHOUT_ACCESS_PASSWORD || \"\"]);\r\n }\r\n\r\n public toString(): string {\r\n return `Configurations:\r\n oidc client id: ${this.oidcClientId},\r\n oidc scopes: ${this.oidcScopes},\r\n applicationId: ${this.gprid},\r\n log level: ${this.logLevel}`;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/common/Settings.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 { LogLevel } from \"@itwin/core-bentley\";\r\nimport { IModelReadRpcInterface } from \"@itwin/core-common\";\r\nimport { TestUserCredentials } from \"@itwin/oidc-signin-tool\";\r\nimport { ECSchemaRpcInterface } from \"@itwin/ecschema-rpcinterface-common\";\r\n\r\nexport interface Backend {\r\n version: string;\r\n location: string;\r\n name: string;\r\n path: string;\r\n}\r\n\r\nexport interface IModelData {\r\n useName: boolean; // Defines whether or not to use the name of the iModel\r\n id?: string; // The iModel Id - This is not required\r\n name?: string; // The name is not required to actually get the iModel, only the id.\r\n useITwinName: boolean;\r\n iTwinId?: string;\r\n iTwinName?: string;\r\n changesetId?: string;\r\n}\r\n\r\nexport function getRpcInterfaces() {\r\n const rpcInterfaces = [];\r\n rpcInterfaces.push(IModelReadRpcInterface);\r\n rpcInterfaces.push(ECSchemaRpcInterface);\r\n\r\n return rpcInterfaces;\r\n}\r\n\r\nexport class Settings {\r\n private _backend: Backend = {} as Backend;\r\n public oidcClientId!: string;\r\n public oidcScopes!: string;\r\n public oidcRedirect!: string;\r\n public oidcAuthority?: string;\r\n public discovery!: string;\r\n public gprid?: string;\r\n public logLevel?: number;\r\n public users: TestUserCredentials[] = [];\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public get Backend(): Backend { return this._backend; }\r\n public get user(): TestUserCredentials { return this.users[0]; }\r\n\r\n public iModel: IModelData = {} as IModelData;\r\n\r\n constructor(env: NodeJS.ProcessEnv) {\r\n const isFrontend = (typeof (process) === \"undefined\");\r\n if (!isFrontend && undefined === env.TF_BUILD) {\r\n const path = require(\"path\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n const dotenv = require(\"dotenv\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n const dotenvExpand = require(\"dotenv-expand\"); // eslint-disable-line @typescript-eslint/no-var-requires\r\n // First check in process.cwd() for the config\r\n let result = dotenv.config();\r\n if (result.error) {\r\n const potential = path.resolve(process.cwd(), \"..\", \"..\", \"..\", \"imodeljs-config\", \".env\");\r\n result = dotenv.config({ path: potential });\r\n if (result.error)\r\n throw result.error;\r\n }\r\n\r\n dotenvExpand(result);\r\n }\r\n\r\n if (isFrontend)\r\n globalThis.process = { browser: true, env } as any;\r\n\r\n // Loads the config out of the environment.\r\n this.load();\r\n }\r\n\r\n /** Loads the necessary variables from `process.env`.\r\n */\r\n private load() {\r\n // Parse OIDC\r\n if (undefined === process.env.OIDC_CLIENT_ID)\r\n throw new Error(\"Missing the 'OIDC_CLIENT_ID' setting.\");\r\n this.oidcClientId = process.env.OIDC_CLIENT_ID!;\r\n\r\n if (undefined === process.env.OIDC_SCOPES)\r\n throw new Error(\"Missing the 'OIDC_SCOPES' setting\");\r\n this.oidcScopes = process.env.OIDC_SCOPES;\r\n\r\n if (process.env.OIDC_AUTHORITY)\r\n this.oidcAuthority = process.env.OIDC_AUTHORITY;\r\n\r\n this.oidcRedirect = (undefined === process.env.OIDC_REDIRECT) ? \"http://localhost:5000\" : process.env.OIDC_REDIRECT;\r\n\r\n // Parse GPRId\r\n if (undefined !== process.env.GPRID)\r\n this.gprid = process.env.GPRID;\r\n\r\n // Parse the iModel variables\r\n if (!process.env.IMODEL_PROJECTID && !process.env.IMODEL_PROJECTNAME)\r\n throw new Error(\"Missing the 'IMODEL_PROJECTID' or 'IMODEL_PROJECTNAME' setting.\");\r\n\r\n if (!process.env.IMODEL_IMODELID && !process.env.IMODEL_IMODELNAME)\r\n throw new Error(\"Missing the 'IMODEL_IMODELID' or 'IMODEL_IMODELNAME' setting.\");\r\n\r\n this.iModel = {\r\n useName: !process.env.IMODEL_IMODELID,\r\n id: process.env.IMODEL_IMODELID,\r\n name: process.env.IMODEL_IMODELNAME,\r\n useITwinName: !process.env.IMODEL_PROJECTID,\r\n iTwinId: process.env.IMODEL_PROJECTID,\r\n iTwinName: process.env.IMODEL_PROJECTNAME,\r\n changesetId: process.env.IMODEL_CHANGESETID,\r\n };\r\n\r\n // Parse logging level\r\n if (undefined !== process.env.LOG_LEVEL) {\r\n const level = parseInt(process.env.LOG_LEVEL, 10);\r\n if (!isNaN(level) && undefined !== LogLevel[level])\r\n this.logLevel = level;\r\n }\r\n\r\n // Get backend data\r\n if (undefined === process.env.BACKEND_LOCATION)\r\n throw new Error(\"Missing the 'BACKEND_LOCATION' setting.\");\r\n this._backend.location = process.env.BACKEND_LOCATION;\r\n\r\n if (undefined === process.env.BACKEND_VERSION)\r\n throw new Error(\"Missing the 'BACKEND_VERSION' setting.\");\r\n this._backend.version = process.env.BACKEND_VERSION;\r\n\r\n if (undefined === process.env.BACKEND_NAME)\r\n throw new Error(\"Missing the 'BACKEND_NAME' setting.\");\r\n this._backend.name = process.env.BACKEND_NAME;\r\n\r\n // Get users\r\n this.users.push({\r\n email: process.env.USER_WITH_ACCESS_USERNAME || \"\",\r\n password: process.env.USER_WITH_ACCESS_PASSWORD || \"\",\r\n });\r\n }\r\n\r\n public toString(): string {\r\n return `Configurations:\r\n oidc client id: ${this.oidcClientId},\r\n oidc scopes: ${this.oidcScopes},\r\n applicationId: ${this.gprid},\r\n log level: ${this.logLevel}`;\r\n }\r\n}\r\n"]}