@sap_oss/wdio-qmate-service 2.12.2 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/index.js +5 -2
  2. package/lib/index.js.map +1 -1
  3. package/lib/scripts/hooks/onComplete.d.ts +1 -1
  4. package/lib/scripts/hooks/onComplete.js +14 -1
  5. package/lib/scripts/hooks/onComplete.js.map +1 -1
  6. package/lib/scripts/hooks/onPrepare.d.ts +1 -1
  7. package/lib/scripts/hooks/onPrepare.js +20 -1
  8. package/lib/scripts/hooks/onPrepare.js.map +1 -1
  9. package/lib/scripts/stats/createUsage.d.ts +10 -0
  10. package/lib/scripts/stats/createUsage.js +34 -0
  11. package/lib/scripts/stats/createUsage.js.map +1 -0
  12. package/lib/scripts/stats/getConfigurationInformation.d.ts +1 -0
  13. package/lib/scripts/stats/getConfigurationInformation.js +57 -0
  14. package/lib/scripts/stats/getConfigurationInformation.js.map +1 -0
  15. package/lib/scripts/stats/getEnvironment.d.ts +1 -0
  16. package/lib/scripts/stats/getEnvironment.js +8 -0
  17. package/lib/scripts/stats/getEnvironment.js.map +1 -0
  18. package/lib/scripts/stats/getOperatingSystem.d.ts +3 -0
  19. package/lib/scripts/stats/getOperatingSystem.js +39 -0
  20. package/lib/scripts/stats/getOperatingSystem.js.map +1 -0
  21. package/lib/scripts/stats/getRepositoryInformation.d.ts +1 -0
  22. package/lib/scripts/stats/getRepositoryInformation.js +49 -0
  23. package/lib/scripts/stats/getRepositoryInformation.js.map +1 -0
  24. package/lib/scripts/stats/getUserId.d.ts +1 -0
  25. package/lib/scripts/stats/getUserId.js +76 -0
  26. package/lib/scripts/stats/getUserId.js.map +1 -0
  27. package/lib/scripts/stats/getVersion.d.ts +1 -0
  28. package/lib/scripts/stats/getVersion.js +7 -0
  29. package/lib/scripts/stats/getVersion.js.map +1 -0
  30. package/lib/scripts/stats/stats.d.ts +2 -0
  31. package/lib/scripts/stats/stats.js +40 -0
  32. package/lib/scripts/stats/stats.js.map +1 -0
  33. package/lib/scripts/stats/updateUsage.d.ts +3 -0
  34. package/lib/scripts/stats/updateUsage.js +29 -0
  35. package/lib/scripts/stats/updateUsage.js.map +1 -0
  36. package/package.json +9 -4
package/lib/index.js CHANGED
@@ -24,6 +24,7 @@ module.exports = class CustomWorkerService {
24
24
  */
25
25
  // @ts-ignore
26
26
  constructor(serviceOptions, capabilities, config) {
27
+ this._statsUsageId = null;
27
28
  this.config = config;
28
29
  }
29
30
  /**
@@ -42,7 +43,9 @@ module.exports = class CustomWorkerService {
42
43
  `;
43
44
  console.log(logo);
44
45
  try {
45
- await (0, onPrepare_1.default)(config, capabilities);
46
+ await (0, onPrepare_1.default)(config, capabilities, (statsUsageId) => {
47
+ this._statsUsageId = statsUsageId;
48
+ });
46
49
  }
47
50
  catch (e) {
48
51
  console.error(`onPrepare hook failed: ${e}`);
@@ -147,7 +150,7 @@ module.exports = class CustomWorkerService {
147
150
  */
148
151
  async onComplete(exitCode, config, capabilities, results) {
149
152
  try {
150
- await (0, onComplete_1.default)(exitCode, config, capabilities, results);
153
+ await (0, onComplete_1.default)(exitCode, config, capabilities, results, this._statsUsageId);
151
154
  }
152
155
  catch (e) {
153
156
  util.console.error(`onComplete hook failed: ${e}`);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,4 @@
6
6
  * @param {Array.<Object>} capabilities list of capabilities details
7
7
  * @param {<Object>} results object containing test results
8
8
  */
9
- export default function (exitCode: any, config: any, capabilities: any, results: any): Promise<void>;
9
+ export default function (exitCode: any, config: any, capabilities: any, results: any, statsUsageId: string | null): Promise<void>;
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = default_1;
7
7
  const dataExchangeCommands_1 = __importDefault(require("./utils/dataExchangeCommands"));
8
+ const stats_1 = require("../stats/stats");
8
9
  /**
9
10
  * Gets executed after all workers got shut down and the process is about to exit. An error
10
11
  * thrown in the onComplete hook will result in the test run failing.
@@ -13,8 +14,20 @@ const dataExchangeCommands_1 = __importDefault(require("./utils/dataExchangeComm
13
14
  * @param {Array.<Object>} capabilities list of capabilities details
14
15
  * @param {<Object>} results object containing test results
15
16
  */
16
- async function default_1(exitCode, config, capabilities, results) {
17
+ async function default_1(exitCode, config, capabilities, results, statsUsageId) {
17
18
  await dataExchangeCommands_1.default.writeExportData();
19
+ if (statsUsageId !== null) {
20
+ if (config.params && config.params.qmateStatsOptions) {
21
+ if (!config.params.qmateStatsOptions.optOut) {
22
+ if (exitCode === 0) {
23
+ (0, stats_1.updateUsageRequests)(statsUsageId, 'success');
24
+ }
25
+ else if (exitCode === 1) {
26
+ (0, stats_1.updateUsageRequests)(statsUsageId, 'fail');
27
+ }
28
+ }
29
+ }
30
+ }
18
31
  }
19
32
  ;
20
33
  //# sourceMappingURL=onComplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onComplete.js","sourceRoot":"","sources":["../../../src/scripts/hooks/onComplete.ts"],"names":[],"mappings":";;;;;AAWA,4BAEC;AAbD,wFAAgE;AAEhE;;;;;;;GAOG;AAEY,KAAK,oBAAW,QAAa,EAAE,MAAW,EAAE,YAAiB,EAAE,OAAY;IACxF,MAAM,8BAAoB,CAAC,eAAe,EAAE,CAAC;AAC/C,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"onComplete.js","sourceRoot":"","sources":["../../../src/scripts/hooks/onComplete.ts"],"names":[],"mappings":";;;;;AAYA,4BAcC;AA1BD,wFAAgE;AAChE,0CAAqD;AAErD;;;;;;;GAOG;AAEY,KAAK,oBAAW,QAAa,EAAE,MAAW,EAAE,YAAiB,EAAE,OAAY,EAAE,YAA2B;IACrH,MAAM,8BAAoB,CAAC,eAAe,EAAE,CAAC;IAE7C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC5C,IAAI,QAAQ,KAAK,CAAC,EAAC,CAAC;oBAClB,IAAA,2BAAmB,EAAC,YAAY,EAAG,SAAS,CAAC,CAAC;gBAChD,CAAC;qBAAM,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC1B,IAAA,2BAAmB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAAA,CAAC"}
@@ -3,4 +3,4 @@
3
3
  * @param {Object} config wdio configuration object
4
4
  * @param {Array.<Object>} capabilities list of capabilities details
5
5
  */
6
- export default function (config: any, capabilities: Array<object>): Promise<void>;
6
+ export default function (config: any, capabilities: Array<object>, callbackStatsUsageId: (statsUsageId: string) => void): Promise<void>;
@@ -5,20 +5,39 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = default_1;
7
7
  const path = require("path");
8
+ const stats_1 = require("../stats/stats");
8
9
  const dataExchangeCommands_1 = __importDefault(require("./utils/dataExchangeCommands"));
9
10
  /**
10
11
  * Gets executed once before all workers get launched.
11
12
  * @param {Object} config wdio configuration object
12
13
  * @param {Array.<Object>} capabilities list of capabilities details
13
14
  */
14
- async function default_1(config, capabilities) {
15
+ async function default_1(config, capabilities, callbackStatsUsageId) {
16
+ // Set the CONFIG_PATH environment variable to the directory of the config file
15
17
  if (!process.env.CONFIG_PATH) {
16
18
  process.env.CONFIG_PATH = path.dirname(config._[0]);
17
19
  }
20
+ // Send usage requests
21
+ if (config.params && config.params.qmateStatsOptions) {
22
+ if (!config.params.qmateStatsOptions.optOut) {
23
+ try {
24
+ (0, stats_1.sendUsageRequests)().then((res) => {
25
+ if (res != null) {
26
+ callbackStatsUsageId(res);
27
+ }
28
+ });
29
+ }
30
+ catch (error) {
31
+ // Intentionally left empty -> call only succeeds when done SAP internally
32
+ }
33
+ }
34
+ }
35
+ // Set Qmate custom timeouts
18
36
  if (config.params && config.params.qmateCustomTimeout) {
19
37
  process.env.QMATE_CUSTOM_TIMEOUT = config.params.qmateCustomTimeout;
20
38
  process.env.LOAD_PROPERTY_TIMEOUT = config.params.loadPropertyTimeout;
21
39
  }
40
+ // Create a temporary data folder
22
41
  await dataExchangeCommands_1.default.createTmpDataFolder();
23
42
  }
24
43
  ;
@@ -1 +1 @@
1
- {"version":3,"file":"onPrepare.js","sourceRoot":"","sources":["../../../src/scripts/hooks/onPrepare.ts"],"names":[],"mappings":";;;;;AAQA,4BAUC;AAlBD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,wFAAgE;AAEhE;;;;GAIG;AACY,KAAK,oBAAW,MAAW,EAAE,YAA2B;IACrE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAExE,CAAC;IACD,MAAM,8BAAoB,CAAC,mBAAmB,EAAE,CAAC;AACnD,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"onPrepare.js","sourceRoot":"","sources":["../../../src/scripts/hooks/onPrepare.ts"],"names":[],"mappings":";;;;;AASA,4BA8BC;AAvCD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,0CAAmD;AACnD,wFAAgE;AAEhE;;;;GAIG;AACY,KAAK,oBAAW,MAAW,EAAE,YAA2B,EAAE,oBAAoD;IAC3H,+EAA+E;IAC/E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,IAAA,yBAAiB,GAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChB,oBAAoB,CAAC,GAAG,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,0EAA0E;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAExE,CAAC;IAED,iCAAiC;IACjC,MAAM,8BAAoB,CAAC,mBAAmB,EAAE,CAAC;AACnD,CAAC;AAAA,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare function createUsage(usageData: {
2
+ userId: string;
3
+ version: string;
4
+ osType: string;
5
+ osRelease: string;
6
+ osVersion: string;
7
+ environment: string[];
8
+ configHash: string;
9
+ repoHash: string | null;
10
+ }): Promise<string | null>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createUsage = createUsage;
4
+ const undici_1 = require("undici");
5
+ async function createUsage(usageData) {
6
+ const urlUsage = "https://stats.qmate.proc.only.sap/api/usage/qmate";
7
+ try {
8
+ const response = await (0, undici_1.fetch)(urlUsage, {
9
+ method: "POST",
10
+ headers: {
11
+ "Content-Type": "application/json",
12
+ },
13
+ body: JSON.stringify(usageData),
14
+ dispatcher: new undici_1.Agent({
15
+ connect: {
16
+ rejectUnauthorized: false,
17
+ // ca: process.env.SAP_GLOBAL_ROOT_CA
18
+ }
19
+ })
20
+ });
21
+ if (!response.ok) {
22
+ return null;
23
+ }
24
+ else {
25
+ const responseText = await response.text();
26
+ const responseData = JSON.parse(responseText);
27
+ return responseData.id;
28
+ }
29
+ }
30
+ catch (error) {
31
+ return null;
32
+ }
33
+ }
34
+ //# sourceMappingURL=createUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createUsage.js","sourceRoot":"","sources":["../../../src/scripts/stats/createUsage.ts"],"names":[],"mappings":";;AAEA,kCAoCC;AAtCD,mCAAsC;AAE/B,KAAK,UAAU,WAAW,CAAC,SASjC;IACC,MAAM,QAAQ,GAAG,mDAAmD,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAC/B,UAAU,EAAE,IAAI,cAAK,CAAC;gBACpB,OAAO,EAAE;oBACP,kBAAkB,EAAE,KAAK;oBACzB,qCAAqC;iBACtC;aACF,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC9C,OAAO,YAAY,CAAC,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getConfigurationHash(): string;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getConfigurationHash = getConfigurationHash;
7
+ const child_process_1 = require("child_process");
8
+ const sha_js_1 = __importDefault(require("sha.js"));
9
+ const path_1 = __importDefault(require("path"));
10
+ function azureGetGitRoot() {
11
+ if (process.env.BUILD_REPOSITORY_LOCALPATH) {
12
+ return process.env.BUILD_REPOSITORY_LOCALPATH;
13
+ }
14
+ else {
15
+ throw Error();
16
+ }
17
+ }
18
+ function getGitRoot() {
19
+ try {
20
+ return (0, child_process_1.execSync)("git rev-parse --show-toplevel").toString().trim();
21
+ }
22
+ catch (error) {
23
+ // Intentionally left blank
24
+ }
25
+ try {
26
+ return azureGetGitRoot();
27
+ }
28
+ catch (error) {
29
+ // Intentionally left blank
30
+ }
31
+ throw Error();
32
+ }
33
+ function getConfigurationHash() {
34
+ const FALLBACK_NO_CONFIG_HASH = "FALLBACK_NO_CONFIG_HASH";
35
+ const FALLBACK_NO_GIT_PATH = "FALLBACK_NO_GIT_PATH";
36
+ const FALLBACK_HASHING_FAILED = "FALLBACK_HASHING_FAILED";
37
+ if (process.env.CONFIG_PATH) {
38
+ const configPath = process.env.CONFIG_PATH;
39
+ try {
40
+ const gitRoot = getGitRoot();
41
+ const relativePath = path_1.default.relative(gitRoot, configPath);
42
+ try {
43
+ return (0, sha_js_1.default)("sha256").update(relativePath).digest("hex");
44
+ }
45
+ catch (error) {
46
+ return FALLBACK_HASHING_FAILED;
47
+ }
48
+ }
49
+ catch (error) {
50
+ return FALLBACK_NO_GIT_PATH;
51
+ }
52
+ }
53
+ else {
54
+ return FALLBACK_NO_CONFIG_HASH;
55
+ }
56
+ }
57
+ //# sourceMappingURL=getConfigurationInformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConfigurationInformation.js","sourceRoot":"","sources":["../../../src/scripts/stats/getConfigurationInformation.ts"],"names":[],"mappings":";;;;;AA4BA,oDAqBC;AAjDD,iDAAyC;AACzC,oDAA2B;AAC3B,gDAAwB;AAExB,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAA;IAC/C,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,OAAO,IAAA,wBAAQ,EAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2BAA2B;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,OAAO,eAAe,EAAE,CAAA;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2BAA2B;IAC7B,CAAC;IAED,MAAM,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,oBAAoB;IAClC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;IAC1D,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;IACpD,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;IAE1D,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACxD,IAAI,CAAC;gBACH,OAAO,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,oBAAoB,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,uBAAuB,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getEnvironmentVariables(): string[];
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEnvironmentVariables = getEnvironmentVariables;
4
+ const ENVIRONMENT_VARIABLES = ["JENKINS_URL", "GITHUB_ACTIONS", "TF_BUILD", "QMATE_EXEC_CONFIG"];
5
+ function getEnvironmentVariables() {
6
+ return ENVIRONMENT_VARIABLES.filter((variableName) => process.env[variableName] !== undefined);
7
+ }
8
+ //# sourceMappingURL=getEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEnvironment.js","sourceRoot":"","sources":["../../../src/scripts/stats/getEnvironment.ts"],"names":[],"mappings":";;AAEA,0DAEC;AAJD,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAEjG,SAAgB,uBAAuB;IACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC;AACjG,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function getOperatingSystemType(): string;
2
+ export declare function getOperatingSystemRelease(): string;
3
+ export declare function getOperatingSystemVersion(): string;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getOperatingSystemType = getOperatingSystemType;
27
+ exports.getOperatingSystemRelease = getOperatingSystemRelease;
28
+ exports.getOperatingSystemVersion = getOperatingSystemVersion;
29
+ const os = __importStar(require("os"));
30
+ function getOperatingSystemType() {
31
+ return os.type();
32
+ }
33
+ function getOperatingSystemRelease() {
34
+ return os.release();
35
+ }
36
+ function getOperatingSystemVersion() {
37
+ return os.version();
38
+ }
39
+ //# sourceMappingURL=getOperatingSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOperatingSystem.js","sourceRoot":"","sources":["../../../src/scripts/stats/getOperatingSystem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wDAEC;AAED,8DAEC;AAED,8DAEC;AAZD,uCAAyB;AAEzB,SAAgB,sBAAsB;IAClC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC;AAED,SAAgB,yBAAyB;IACrC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED,SAAgB,yBAAyB;IACrC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getCwdGitRemoteUrlHash(): string;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getCwdGitRemoteUrlHash = getCwdGitRemoteUrlHash;
7
+ const child_process_1 = require("child_process");
8
+ const sha_js_1 = __importDefault(require("sha.js"));
9
+ function azureGetGitRemoteUrl() {
10
+ if (process.env.BUILD_REPOSITORY_URI) {
11
+ return process.env.BUILD_REPOSITORY_URI;
12
+ }
13
+ else {
14
+ throw Error();
15
+ }
16
+ }
17
+ function getGitRemoteUrl() {
18
+ try {
19
+ return (0, child_process_1.execSync)("git config --get remote.origin.url").toString().trim();
20
+ }
21
+ catch (error) {
22
+ // Intentionally left blank
23
+ }
24
+ try {
25
+ return azureGetGitRemoteUrl();
26
+ }
27
+ catch (error) {
28
+ // Intentionally left blank
29
+ }
30
+ throw Error();
31
+ }
32
+ function getCwdGitRemoteUrlHash() {
33
+ const FALLBACK_NO_GIT_ORIGIN_REMOTE = "FALLBACK_NO_GIT_ORIGIN_REMOTE";
34
+ const FALLBACK_HASHING_FAILED = "FALLBACK_HASHING_FAILED";
35
+ try {
36
+ const remoteUrl = getGitRemoteUrl();
37
+ try {
38
+ const remoteUrlHash = (0, sha_js_1.default)("sha256").update(remoteUrl).digest("hex");
39
+ return remoteUrlHash;
40
+ }
41
+ catch (error) {
42
+ return FALLBACK_HASHING_FAILED;
43
+ }
44
+ }
45
+ catch (error) {
46
+ return FALLBACK_NO_GIT_ORIGIN_REMOTE;
47
+ }
48
+ }
49
+ //# sourceMappingURL=getRepositoryInformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRepositoryInformation.js","sourceRoot":"","sources":["../../../src/scripts/stats/getRepositoryInformation.ts"],"names":[],"mappings":";;;;;AA2BA,wDAeC;AA1CD,iDAAyC;AACzC,oDAA2B;AAE3B,SAAS,oBAAoB;IAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA;IACzC,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,OAAO,IAAA,wBAAQ,EAAC,oCAAoC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2BAA2B;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,OAAO,oBAAoB,EAAE,CAAA;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2BAA2B;IAC7B,CAAC;IAED,MAAM,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,sBAAsB;IACpC,MAAM,6BAA6B,GAAG,+BAA+B,CAAC;IACtE,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,uBAAuB,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,6BAA6B,CAAA;IACtC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getUserId(): Promise<string | null>;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.getUserId = getUserId;
30
+ const os = __importStar(require("os"));
31
+ const path_1 = __importDefault(require("path"));
32
+ const node_localstorage_1 = require("node-localstorage");
33
+ const undici_1 = require("undici");
34
+ const localStorage = new node_localstorage_1.LocalStorage(path_1.default.join(os.homedir(), '.qmate-userId'));
35
+ async function getUserId() {
36
+ const urlUser = "https://stats.qmate.proc.only.sap/api/user";
37
+ if (isUserIdStored()) {
38
+ return getUserIdFromStore();
39
+ }
40
+ else {
41
+ try {
42
+ const response = await (0, undici_1.fetch)(urlUser, {
43
+ method: "POST",
44
+ dispatcher: new undici_1.Agent({
45
+ connect: {
46
+ rejectUnauthorized: false,
47
+ // ca: process.env.SAP_GLOBAL_ROOT_CA
48
+ }
49
+ })
50
+ });
51
+ if (!response.ok) {
52
+ console.log(`Failed to create Qmate Stats User: ${response.status} ${response.statusText}`);
53
+ return null;
54
+ }
55
+ else {
56
+ const responseText = await response.text();
57
+ const responseData = JSON.parse(responseText);
58
+ saveUserIdToStore(responseData.id);
59
+ return responseData.id;
60
+ }
61
+ }
62
+ catch (error) {
63
+ return null;
64
+ }
65
+ }
66
+ }
67
+ function isUserIdStored() {
68
+ return localStorage.getItem("UserId") !== null;
69
+ }
70
+ function saveUserIdToStore(userId) {
71
+ localStorage.setItem("UserId", userId);
72
+ }
73
+ function getUserIdFromStore() {
74
+ return localStorage.getItem("UserId");
75
+ }
76
+ //# sourceMappingURL=getUserId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUserId.js","sourceRoot":"","sources":["../../../src/scripts/stats/getUserId.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,8BA4BC;AAnCD,uCAAyB;AACzB,gDAAwB;AACxB,yDAAiD;AACjD,mCAAsC;AAEtC,MAAM,YAAY,GAAG,IAAI,gCAAY,CAAC,cAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;AAEzE,KAAK,UAAU,SAAS;IAC7B,MAAM,OAAO,GAAG,4CAA4C,CAAC;IAC7D,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,OAAO,EAAE;gBACpC,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,IAAI,cAAK,CAAC;oBACpB,OAAO,EAAE;wBACP,kBAAkB,EAAE,KAAK;wBACzB,qCAAqC;qBACtC;iBACF,CAAC;aACH,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,sCAAsC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC5F,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC9C,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACnC,OAAO,YAAY,CAAC,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getVersion(): string;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVersion = getVersion;
4
+ function getVersion() {
5
+ return process.env.QMATE_VERSION;
6
+ }
7
+ //# sourceMappingURL=getVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVersion.js","sourceRoot":"","sources":["../../../src/scripts/stats/getVersion.ts"],"names":[],"mappings":";;AAAA,gCAEC;AAFD,SAAgB,UAAU;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function sendUsageRequests(): Promise<string | null>;
2
+ export declare function updateUsageRequests(usageId: string, result: string): Promise<void>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendUsageRequests = sendUsageRequests;
4
+ exports.updateUsageRequests = updateUsageRequests;
5
+ const createUsage_1 = require("./createUsage");
6
+ const getConfigurationInformation_1 = require("./getConfigurationInformation");
7
+ const getEnvironment_1 = require("./getEnvironment");
8
+ const getOperatingSystem_1 = require("./getOperatingSystem");
9
+ const getRepositoryInformation_1 = require("./getRepositoryInformation");
10
+ const getUserId_1 = require("./getUserId");
11
+ const getVersion_1 = require("./getVersion");
12
+ const updateUsage_1 = require("./updateUsage");
13
+ async function sendUsageRequests() {
14
+ const user = await (0, getUserId_1.getUserId)();
15
+ if (user === null) {
16
+ return null;
17
+ }
18
+ const usageData = {
19
+ "userId": user,
20
+ "version": (0, getVersion_1.getVersion)(),
21
+ "osType": (0, getOperatingSystem_1.getOperatingSystemType)(),
22
+ "osRelease": (0, getOperatingSystem_1.getOperatingSystemRelease)(),
23
+ "osVersion": (0, getOperatingSystem_1.getOperatingSystemVersion)(),
24
+ "environment": (0, getEnvironment_1.getEnvironmentVariables)(),
25
+ "configHash": (0, getConfigurationInformation_1.getConfigurationHash)(),
26
+ "repoHash": (0, getRepositoryInformation_1.getCwdGitRemoteUrlHash)(),
27
+ };
28
+ const usageId = await (0, createUsage_1.createUsage)(usageData);
29
+ if (usageId === null) {
30
+ return null;
31
+ }
32
+ return usageId;
33
+ }
34
+ async function updateUsageRequests(usageId, result) {
35
+ const usageData = {
36
+ "result": result
37
+ };
38
+ (0, updateUsage_1.updateQmateUsage)(usageId, usageData);
39
+ }
40
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/scripts/stats/stats.ts"],"names":[],"mappings":";;AASA,8CAsBC;AAED,kDAMC;AAvCD,+CAA4C;AAC5C,+EAAqE;AACrE,qDAA2D;AAC3D,6DAAoH;AACpH,yEAAoE;AACpE,2CAAwC;AACxC,6CAA0C;AAC1C,+CAAiD;AAE1C,KAAK,UAAU,iBAAiB;IACrC,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAS,GAAE,CAAC;IAC/B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAA,uBAAU,GAAE;QACvB,QAAQ,EAAE,IAAA,2CAAsB,GAAE;QAClC,WAAW,EAAE,IAAA,8CAAyB,GAAE;QACxC,WAAW,EAAE,IAAA,8CAAyB,GAAE;QACxC,aAAa,EAAE,IAAA,wCAAuB,GAAE;QACxC,YAAY,EAAE,IAAA,kDAAoB,GAAE;QACpC,UAAU,EAAE,IAAA,iDAAsB,GAAE;KACrC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,MAAc;IACvE,MAAM,SAAS,GAAG;QAChB,QAAQ,EAAE,MAAM;KACjB,CAAA;IAED,IAAA,8BAAgB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function updateQmateUsage(id: string, usageData: {
2
+ result: string;
3
+ }): Promise<void>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateQmateUsage = updateQmateUsage;
4
+ const undici_1 = require("undici");
5
+ async function updateQmateUsage(id, usageData) {
6
+ const urlUsage = `https://stats.qmate.proc.only.sap/api/usage/qmate/${id}`;
7
+ try {
8
+ const response = await (0, undici_1.fetch)(urlUsage, {
9
+ method: "PUT",
10
+ headers: {
11
+ "Content-Type": "application/json",
12
+ },
13
+ body: JSON.stringify(usageData),
14
+ dispatcher: new undici_1.Agent({
15
+ connect: {
16
+ rejectUnauthorized: false,
17
+ // ca: process.env.SAP_GLOBAL_ROOT_CA
18
+ }
19
+ })
20
+ });
21
+ if (!response.ok) {
22
+ // Intentionally ignore
23
+ }
24
+ }
25
+ catch (error) {
26
+ // Intentionally ignore
27
+ }
28
+ }
29
+ //# sourceMappingURL=updateUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateUsage.js","sourceRoot":"","sources":["../../../src/scripts/stats/updateUsage.ts"],"names":[],"mappings":";;AAEA,4CAuBC;AAzBD,mCAAsC;AAE/B,KAAK,UAAU,gBAAgB,CAAC,EAAU,EAAE,SAA6B;IAC9E,MAAM,QAAQ,GAAG,qDAAqD,EAAE,EAAE,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAC/B,UAAU,EAAE,IAAI,cAAK,CAAC;gBACpB,OAAO,EAAE;oBACP,kBAAkB,EAAE,KAAK;oBACzB,qCAAqC;iBACtC;aACF,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,uBAAuB;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACd,uBAAuB;IAC1B,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap_oss/wdio-qmate-service",
3
- "version": "2.12.2",
3
+ "version": "2.13.0",
4
4
  "author": "SAP SE",
5
5
  "types": "./@types/index.d.ts",
6
6
  "main": "./lib/index.js",
@@ -135,23 +135,28 @@
135
135
  "axios": "^1.7.7",
136
136
  "deepmerge": "^4.2.2",
137
137
  "fs-extra": "^10.0.0",
138
+ "node-localstorage": "^3.0.5",
138
139
  "path": "^0.12.7",
139
140
  "pdf-parse": "^1.1.1",
140
141
  "query-string": "^7.1.0",
142
+ "sha.js": "^2.4.11",
141
143
  "supertest": "^7.0.0",
144
+ "undici": "^7.1.0",
142
145
  "xlsx": "^0.18.5",
143
146
  "xml2js": "^0.6.0",
144
147
  "yargs": "^17.1.1"
145
148
  },
146
149
  "devDependencies": {
147
150
  "@types/fs-extra": "^11.0.1",
151
+ "@types/node-localstorage": "^1.3.3",
148
152
  "@types/pdf-parse": "^1.1.1",
153
+ "@types/sha.js": "^2.4.4",
149
154
  "@types/xml2js": "^0.4.11",
155
+ "@wdio/appium-service": "^8.39.1",
150
156
  "@wdio/cli": "^8.29.7",
151
157
  "@wdio/local-runner": "^8.29.7",
152
158
  "@wdio/mocha-framework": "^8.29.3",
153
159
  "@wdio/sauce-service": "^8.27.0",
154
- "@wdio/appium-service": "^8.39.1",
155
160
  "@wdio/shared-store-service": "^8.29.7",
156
161
  "@wdio/spec-reporter": "^8.29.7",
157
162
  "@wdio/static-server-service": "^8.29.1",
@@ -159,7 +164,6 @@
159
164
  "appium": "2.12.0",
160
165
  "appium-uiautomator2-driver": "^3.7.4",
161
166
  "appium-xcuitest-driver": "^7.24.3",
162
- "wdio-chromedriver-service": "^8.0.0",
163
167
  "chai": "^4.3.4",
164
168
  "chromedriver": "^120.0.1",
165
169
  "concurrently": "^7.6.0",
@@ -173,7 +177,8 @@
173
177
  "prettier": "^2.8.1",
174
178
  "rimraf": "^3.0.2",
175
179
  "ts-node": "^10.9.2",
176
- "typescript": "^5.3.3"
180
+ "typescript": "^5.3.3",
181
+ "wdio-chromedriver-service": "^8.0.0"
177
182
  },
178
183
  "overrides": {
179
184
  "got": "^11.8.5"