@wdio/config 9.4.2 → 9.4.4
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/build/index.js +0 -1
- package/build/node/ConfigParser.d.ts.map +1 -1
- package/build/node/index.js +21 -62
- package/build/node/utils.d.ts +0 -1
- package/build/node/utils.d.ts.map +1 -1
- package/build/utils.d.ts +1 -2
- package/build/utils.d.ts.map +1 -1
- package/package.json +5 -6
package/build/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigParser.d.ts","sourceRoot":"","sources":["../../src/node/ConfigParser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAa,QAAQ,EAAE,MAAM,aAAa,CAAA;AAO7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAM9C,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;AAK7B,UAAU,+BAAgC,SAAQ,OAAO,CAAC,UAAU;IAChE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,YAAY,CAAC,sBAAsB,CAAA;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,WAAY,SAAQ,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7F,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;;IAQzB;;;OAGG;IACH,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IAVxB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,aAAa,CAAC,CAA0C;gBAG5D,cAAc,EAAE,MAAM;IACtB;;;OAGG;IACK,cAAc,GAAE,OAAO,CAAC,+BAA+B,CAAM,EAC7D,YAAY,GAAE,WAAyC;IAmBnE;;OAEG;IACG,UAAU,CAAC,MAAM,GAAE,WAAgB;
|
|
1
|
+
{"version":3,"file":"ConfigParser.d.ts","sourceRoot":"","sources":["../../src/node/ConfigParser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAa,QAAQ,EAAE,MAAM,aAAa,CAAA;AAO7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAM9C,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;AAK7B,UAAU,+BAAgC,SAAQ,OAAO,CAAC,UAAU;IAChE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,YAAY,CAAC,sBAAsB,CAAA;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,WAAY,SAAQ,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7F,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;;IAQzB;;;OAGG;IACH,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IAVxB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,aAAa,CAAC,CAA0C;gBAG5D,cAAc,EAAE,MAAM;IACtB;;;OAGG;IACK,cAAc,GAAE,OAAO,CAAC,+BAA+B,CAAM,EAC7D,YAAY,GAAE,WAAyC;IAmBnE;;OAEG;IACG,UAAU,CAAC,MAAM,GAAE,WAAgB;IAgCzC;;;OAGG;YACW,aAAa;IA2D3B;;;;OAIG;IACH,OAAO,CAAC,KAAK;IA4Eb;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK;IAkClC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE;IA4D/C;;;;;;;;OAQG;IACH,0BAA0B,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IA8ClE;;OAEG;IACH,SAAS,IAIkB,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;IAGvD;;OAEG;IACH,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,sBAAsB,GAAG,YAAY,CAAC,+BAA+B;IAY/G;;;;;;;;OAQG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyC,EAAE,cAAc,CAAC,EAAE,MAAM;IAkDtI;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;IAyBhD,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;CAWtB"}
|
package/build/node/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/node/ConfigParser.ts
|
|
2
2
|
import path3 from "node:path";
|
|
3
|
-
import
|
|
3
|
+
import logger from "@wdio/logger";
|
|
4
4
|
import { deepmerge, deepmergeCustom } from "deepmerge-ts";
|
|
5
5
|
|
|
6
6
|
// src/node/FileSystemPathService.ts
|
|
@@ -60,12 +60,21 @@ var FileSystemPathService = class {
|
|
|
60
60
|
// src/node/utils.ts
|
|
61
61
|
import url2 from "node:url";
|
|
62
62
|
import path2 from "node:path";
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
function makeRelativeToCWD(files = []) {
|
|
64
|
+
const returnFiles = [];
|
|
65
|
+
for (const file of files) {
|
|
66
|
+
if (Array.isArray(file)) {
|
|
67
|
+
returnFiles.push(makeRelativeToCWD(file));
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
returnFiles.push(
|
|
71
|
+
file.startsWith("file:///") ? url2.fileURLToPath(file) : file.includes("/") ? path2.resolve(process.cwd(), file) : file
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
return returnFiles;
|
|
75
|
+
}
|
|
66
76
|
|
|
67
77
|
// src/utils.ts
|
|
68
|
-
import decamelize from "decamelize";
|
|
69
78
|
var validObjectOrArray = (object) => Array.isArray(object) && object.length > 0 || typeof object === "object" && Object.keys(object).length > 0;
|
|
70
79
|
function removeLineNumbers(filePath) {
|
|
71
80
|
const matcher = filePath.match(/:\d+(:\d+$|$)/);
|
|
@@ -78,56 +87,6 @@ function isCucumberFeatureWithLineNumber(spec) {
|
|
|
78
87
|
const specs = Array.isArray(spec) ? spec : [spec];
|
|
79
88
|
return specs.some((s) => s.match(/:\d+(:\d+$|$)/));
|
|
80
89
|
}
|
|
81
|
-
function objectToEnv(params) {
|
|
82
|
-
for (const [key, value] of Object.entries(params || {})) {
|
|
83
|
-
const envKey = decamelize(key).toUpperCase();
|
|
84
|
-
if (Array.isArray(value)) {
|
|
85
|
-
process.env[envKey] = value.join(",");
|
|
86
|
-
} else if (typeof value === "boolean" && value) {
|
|
87
|
-
process.env[envKey] = "1";
|
|
88
|
-
} else if (value instanceof RegExp) {
|
|
89
|
-
process.env[envKey] = value.toString();
|
|
90
|
-
} else if (typeof value === "object") {
|
|
91
|
-
process.env[envKey] = JSON.stringify(value);
|
|
92
|
-
} else if (value && typeof value.toString === "function") {
|
|
93
|
-
process.env[envKey] = value.toString();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// src/node/utils.ts
|
|
99
|
-
var log = logger("@wdio/config:utils");
|
|
100
|
-
async function loadTypeScriptCompiler(tsConfigPath) {
|
|
101
|
-
if (process.env.WDIO_WORKER_ID) {
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
try {
|
|
105
|
-
if (process.env.WDIO_UNIT_TESTS && process.env.THROW_TSX_RESOLVE) {
|
|
106
|
-
throw new Error("test fail");
|
|
107
|
-
}
|
|
108
|
-
const loaderPath = await resolve("tsx", import.meta.url);
|
|
109
|
-
await access(new URL(loaderPath));
|
|
110
|
-
process.env.WDIO_LOAD_TSX = "1";
|
|
111
|
-
objectToEnv({ tsConfigPath });
|
|
112
|
-
return true;
|
|
113
|
-
} catch (err) {
|
|
114
|
-
log.debug(`Failed loading TSX: ${err.message}`);
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
function makeRelativeToCWD(files = []) {
|
|
119
|
-
const returnFiles = [];
|
|
120
|
-
for (const file of files) {
|
|
121
|
-
if (Array.isArray(file)) {
|
|
122
|
-
returnFiles.push(makeRelativeToCWD(file));
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
returnFiles.push(
|
|
126
|
-
file.startsWith("file:///") ? url2.fileURLToPath(file) : file.includes("/") ? path2.resolve(process.cwd(), file) : file
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
return returnFiles;
|
|
130
|
-
}
|
|
131
90
|
|
|
132
91
|
// src/constants.ts
|
|
133
92
|
var DEFAULT_TIMEOUT = 1e4;
|
|
@@ -252,7 +211,7 @@ var SUPPORTED_FILE_EXTENSIONS = [
|
|
|
252
211
|
var NO_NAMED_CONFIG_EXPORT = 'No named export object called "config" found. Make sure you export the config object via `export.config = { ... }` when using CommonJS or `export const config = { ... }` when using ESM. Read more on this on https://webdriver.io/docs/configurationfile !';
|
|
253
212
|
|
|
254
213
|
// src/node/ConfigParser.ts
|
|
255
|
-
var
|
|
214
|
+
var log = logger("@wdio/config:ConfigParser");
|
|
256
215
|
var MERGE_DUPLICATION = ["services", "reporters", "capabilities"];
|
|
257
216
|
var ConfigParser = class _ConfigParser {
|
|
258
217
|
constructor(configFilePath, _initialConfig = {}, _pathService = new FileSystemPathService()) {
|
|
@@ -277,7 +236,6 @@ var ConfigParser = class _ConfigParser {
|
|
|
277
236
|
*/
|
|
278
237
|
async initialize(object = {}) {
|
|
279
238
|
if (!this.#isInitialised) {
|
|
280
|
-
await loadTypeScriptCompiler(this._config.tsConfigPath);
|
|
281
239
|
await this.addConfigFile(this.#configFilePath);
|
|
282
240
|
}
|
|
283
241
|
this.merge({ ...object });
|
|
@@ -288,6 +246,7 @@ var ConfigParser = class _ConfigParser {
|
|
|
288
246
|
}];
|
|
289
247
|
} else if (Array.isArray(this._config.runner) && this._config.runner[0] === "browser") {
|
|
290
248
|
this._config.runner[1].coverage = {
|
|
249
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
291
250
|
...this._config.runner[1].coverage,
|
|
292
251
|
enabled: this._initialConfig.coverage
|
|
293
252
|
};
|
|
@@ -325,7 +284,7 @@ var ConfigParser = class _ConfigParser {
|
|
|
325
284
|
this._config = deepmerge(this._config, fileConfig);
|
|
326
285
|
delete this._config.watch;
|
|
327
286
|
} catch (e) {
|
|
328
|
-
|
|
287
|
+
log.error(`Failed loading configuration file: ${filePath}:`, e.message);
|
|
329
288
|
throw e;
|
|
330
289
|
}
|
|
331
290
|
}
|
|
@@ -426,7 +385,7 @@ var ConfigParser = class _ConfigParser {
|
|
|
426
385
|
for (const suiteName of suites) {
|
|
427
386
|
const suite = this._config.suites?.[suiteName];
|
|
428
387
|
if (!suite) {
|
|
429
|
-
|
|
388
|
+
log.warn(`No suite was found with name "${suiteName}"`);
|
|
430
389
|
}
|
|
431
390
|
if (Array.isArray(suite)) {
|
|
432
391
|
suiteSpecs = suiteSpecs.concat(_ConfigParser.getFilePaths(suite, this._config.rootDir, this._pathService));
|
|
@@ -489,7 +448,7 @@ var ConfigParser = class _ConfigParser {
|
|
|
489
448
|
}
|
|
490
449
|
});
|
|
491
450
|
} else {
|
|
492
|
-
|
|
451
|
+
log.warn("Unexpected entry in specs that is neither string nor array: ", file);
|
|
493
452
|
}
|
|
494
453
|
});
|
|
495
454
|
}
|
|
@@ -549,7 +508,7 @@ var ConfigParser = class _ConfigParser {
|
|
|
549
508
|
groupedFiles = _ConfigParser.getFilePaths(pattern, rootDir, findAndGlob, 1);
|
|
550
509
|
files.push(groupedFiles);
|
|
551
510
|
} else if (Array.isArray(pattern) && hierarchyDepth) {
|
|
552
|
-
|
|
511
|
+
log.error("Unexpected depth of hierarchical arrays");
|
|
553
512
|
} else if (pattern.startsWith("file://")) {
|
|
554
513
|
files.push(pattern);
|
|
555
514
|
} else {
|
|
@@ -562,7 +521,7 @@ var ConfigParser = class _ConfigParser {
|
|
|
562
521
|
);
|
|
563
522
|
filenames = filenames.map((filename) => findAndGlob.ensureAbsolutePath(filename, rootDir));
|
|
564
523
|
if (filenames.length === 0) {
|
|
565
|
-
|
|
524
|
+
log.warn("pattern", pattern, "did not match any file");
|
|
566
525
|
}
|
|
567
526
|
files = [...files, ...new Set(filenames)];
|
|
568
527
|
}
|
package/build/node/utils.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/node/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/node/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAAE,KAAK,GAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAO,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAkB3F"}
|
package/build/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Options } from '@wdio/types';
|
|
2
|
-
export declare const validObjectOrArray: (object:
|
|
2
|
+
export declare const validObjectOrArray: (object: object) => object is object | Array<unknown>;
|
|
3
3
|
/**
|
|
4
4
|
* remove line numbers from file path, ex:
|
|
5
5
|
* `/foo:9` or `c:\bar:14:5`
|
|
@@ -21,5 +21,4 @@ export declare function isCloudCapability(caps: WebdriverIO.Capabilities): boole
|
|
|
21
21
|
* @return {Object} validated config enriched with default values
|
|
22
22
|
*/
|
|
23
23
|
export declare function validateConfig<T>(defaults: Options.Definition<T>, options: T, keysToKeep?: (keyof T)[]): T;
|
|
24
|
-
export declare function objectToEnv(params?: Record<string, any>): void;
|
|
25
24
|
//# sourceMappingURL=utils.d.ts.map
|
package/build/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,kBAAkB,WAAY,MAAM,KAAG,MAAM,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAClB,CAAA;AAElE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,UAMjD;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,WAGtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,WAE/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,GAAS,CAAC,MAAM,CAAC,CAAC,EAAE,KA+C5G"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/config",
|
|
3
|
-
"version": "9.4.
|
|
3
|
+
"version": "9.4.4",
|
|
4
4
|
"description": "A helper utility to parse and validate WebdriverIO options",
|
|
5
5
|
"author": "Christian Bromann <mail@bromann.dev>",
|
|
6
6
|
"homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-config",
|
|
@@ -36,10 +36,9 @@
|
|
|
36
36
|
"url": "https://github.com/webdriverio/webdriverio/issues"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@wdio/logger": "9.
|
|
40
|
-
"@wdio/types": "9.4.
|
|
41
|
-
"@wdio/utils": "9.4.
|
|
42
|
-
"decamelize": "^6.0.0",
|
|
39
|
+
"@wdio/logger": "9.4.4",
|
|
40
|
+
"@wdio/types": "9.4.4",
|
|
41
|
+
"@wdio/utils": "9.4.4",
|
|
43
42
|
"deepmerge-ts": "^7.0.3",
|
|
44
43
|
"glob": "^10.2.2",
|
|
45
44
|
"import-meta-resolve": "^4.0.0"
|
|
@@ -50,5 +49,5 @@
|
|
|
50
49
|
"devDependencies": {
|
|
51
50
|
"minimatch": "^9.0.0"
|
|
52
51
|
},
|
|
53
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "d327d86e07d16eaa0ecdf0656c1868ba73261393"
|
|
54
53
|
}
|