create-wdio 9.32.0-alpha.6 → 9.32.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.
@@ -7,6 +7,18 @@ export declare function runConfigCommand(parsedAnswers: ParsedAnswers, npmTag: s
7
7
  * @param {Function} runConfigCmd runConfig method to be replaceable for unit testing
8
8
  */
9
9
  export declare function missingConfigurationPrompt(command: string, configPath: string, runConfigCmd?: Function): Promise<string>;
10
+ /**
11
+ * Resolve where the generated WDIO TypeScript config should live.
12
+ * Never overwrite an existing root `tsconfig.json` — when that would happen
13
+ * (for example a direct-child spec glob like `e2e/*.ts`), fall back to a
14
+ * dedicated `tsconfig.e2e.json` / `tsconfig.wdio.json`.
15
+ */
16
+ export declare function resolveTsConfigFilePath({ projectRootDir, hasRootTSConfig, specs, runnerShort }: {
17
+ projectRootDir: string;
18
+ hasRootTSConfig: boolean;
19
+ specs?: string;
20
+ runnerShort: string;
21
+ }): string;
10
22
  export declare const parseAnswers: (yes: boolean) => Promise<ParsedAnswers>;
11
23
  /**
12
24
  * Helper utility used in `run` and `install` command to check whether a config file currently exists
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBA+BlF;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAE,QAA2B,mBA+B9H;AAED,eAAO,MAAM,YAAY,GAAmB,KAAK,OAAO,KAAG,OAAO,CAAC,aAAa,CAyF/E,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,qBAAqB,EAAC,MAAM,EAAE,UAAU,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAC,SAAS,CAAC,CAcrH"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAoClF;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAE,QAA2B,mBA+B9H;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,cAAc,EACd,eAAe,EACf,KAAK,EACL,WAAW,EACd,EAAE;IACC,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACtB,UAwBA;AAED,eAAO,MAAM,YAAY,GAAmB,KAAK,OAAO,KAAG,OAAO,CAAC,aAAa,CA2E/E,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,qBAAqB,EAAC,MAAM,EAAE,UAAU,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAC,SAAS,CAAC,CAcrH"}
@@ -291,9 +291,6 @@ async function setupTypeScript(parsedAnswers) {
291
291
  if (!parsedAnswers.isUsingTypeScript) {
292
292
  return;
293
293
  }
294
- if (parsedAnswers.hasRootTSConfig) {
295
- return;
296
- }
297
294
  console.log("Setting up TypeScript...");
298
295
  const frameworkPackage = convertPackageHashToObject(parsedAnswers.rawAnswers.framework);
299
296
  const servicePackages = parsedAnswers.rawAnswers.services.map((service) => convertPackageHashToObject(service));
@@ -360,11 +357,37 @@ async function setupTypeScript(parsedAnswers) {
360
357
  jsxFragmentFactory: "Fragment"
361
358
  } : {}
362
359
  )
363
- },
364
- include: preset === "svelte" ? ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] : preset === "vue" ? ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] : ["test", "wdio.conf.ts"]
360
+ }
361
+ };
362
+ const tsConfigDir = path.dirname(parsedAnswers.tsConfigFilePath);
363
+ const toPosix = (value) => value.replace(/\\/g, "/");
364
+ const getRelativePath = (target) => {
365
+ const relativePath = toPosix(
366
+ path.relative(tsConfigDir, path.resolve(parsedAnswers.projectRootDir, target))
367
+ );
368
+ return relativePath || ".";
365
369
  };
370
+ const toExtendsPath = (target) => {
371
+ const relativePath = getRelativePath(target);
372
+ if (relativePath === "." || relativePath.startsWith("./") || relativePath.startsWith("../") || path.isAbsolute(relativePath)) {
373
+ return relativePath;
374
+ }
375
+ return `./${relativePath}`;
376
+ };
377
+ if (parsedAnswers.hasRootTSConfig) {
378
+ config.extends = toExtendsPath("tsconfig.json");
379
+ }
380
+ const defaultSpecInclude = (parsedAnswers.destSpecRootPath && path.relative(parsedAnswers.projectRootDir, parsedAnswers.destSpecRootPath) || parsedAnswers.specs && path.dirname(
381
+ parsedAnswers.specs.split(/[\\/]/).filter((segment) => !segment.includes("*")).join(path.sep)
382
+ ) || "test").replace(/\\/g, "/");
383
+ const defaultWdioConfigInclude = (parsedAnswers.wdioConfigPath && path.relative(parsedAnswers.projectRootDir, parsedAnswers.wdioConfigPath) || "wdio.conf.ts").replace(/\\/g, "/");
384
+ const baseIncludes = preset === "svelte" ? ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] : preset === "vue" ? ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] : [
385
+ defaultSpecInclude && defaultSpecInclude !== "." ? defaultSpecInclude : "test",
386
+ defaultWdioConfigInclude && defaultWdioConfigInclude !== "." ? defaultWdioConfigInclude : "wdio.conf.ts"
387
+ ];
388
+ Object.assign(config, { include: baseIncludes.map(getRelativePath) });
366
389
  if (parsedAnswers.framework === "cucumber") {
367
- config.include.push("features");
390
+ config.include.push(getRelativePath("features"));
368
391
  }
369
392
  await fs.mkdir(path.dirname(parsedAnswers.tsConfigFilePath), { recursive: true });
370
393
  await fs.writeFile(
@@ -669,7 +692,7 @@ async function formatConfigFilePaths(config) {
669
692
  // package.json
670
693
  var package_default = {
671
694
  name: "create-wdio",
672
- version: "9.31.2",
695
+ version: "9.31.6",
673
696
  description: "Install and setup a WebdriverIO project with all its dependencies in a single run",
674
697
  author: "WebdriverIO Team <mail@webdriver.io>",
675
698
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
@@ -781,7 +804,7 @@ var SUPPORTED_PACKAGES = {
781
804
  runner: [
782
805
  { name: "E2E Testing - of Web or Mobile Applications", value: "@wdio/local-runner$--$local$--$e2e" },
783
806
  { name: "Component or Unit Testing - in the browser\n > https://webdriver.io/docs/component-testing", value: "@wdio/browser-runner$--$browser$--$component" },
784
- { name: "Desktop Testing - of Electron, Tauri, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
807
+ { name: "Desktop Testing - of Electron, Tauri, Dioxus, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
785
808
  { name: "VS Code Extension Testing\n > https://webdriver.io/docs/vscode-extension-testing", value: "@wdio/local-runner$--$local$--$vscode" },
786
809
  { name: "Roku Testing - of OTT apps running on RokuOS\n > https://webdriver.io/docs/wdio-roku-service", value: "@wdio/local-runner$--$local$--$roku" }
787
810
  ],
@@ -835,6 +858,7 @@ var SUPPORTED_PACKAGES = {
835
858
  { name: "electron", value: "@wdio/electron-service$--$electron" },
836
859
  { name: "tauri", value: "@wdio/tauri-service$--$tauri" },
837
860
  { name: "tauri-plugin", value: "@wdio/tauri-plugin$--$tauri-plugin" },
861
+ { name: "dioxus", value: "@wdio/dioxus-service$--$dioxus" },
838
862
  { name: "appium", value: "@wdio/appium-service$--$appium" },
839
863
  // external
840
864
  { name: "camera", value: "wdio-camera-service$--$camera" },
@@ -866,7 +890,8 @@ var SUPPORTED_PACKAGES = {
866
890
  { name: "robonut", value: "wdio-robonut-service$--$robonut" },
867
891
  { name: "qunit", value: "wdio-qunit-service$--$qunit" },
868
892
  { name: "roku", value: "wdio-roku-service$--$roku" },
869
- { name: "obsidian", value: "wdio-obsidian-service$--$obsidian" }
893
+ { name: "obsidian", value: "wdio-obsidian-service$--$obsidian" },
894
+ { name: "null-driver", value: "wdio-null-driver-service$--$null-driver" }
870
895
  ]
871
896
  };
872
897
  var configHelperSuccessMessage = ({ projectRootDir, runScript, extraInfo = "" }) => `
@@ -954,6 +979,40 @@ function buildTauriBanner(driverProvider, useFrontendPlugin) {
954
979
  );
955
980
  return lines.join("\n");
956
981
  }
982
+ function buildDioxusBanner(driverProvider) {
983
+ const lines = [
984
+ "",
985
+ "\u{1F980} Dioxus requires a couple of Rust-side additions before tests can run:",
986
+ "",
987
+ " 1. Add the WebdriverIO bridge crate to your Cargo.toml:",
988
+ "",
989
+ " [dependencies]",
990
+ ' wdio-dioxus-bridge = "1"',
991
+ "",
992
+ " 2. Install it into your desktop config in `src/main.rs` (debug builds only):",
993
+ "",
994
+ " let mut config = dioxus::desktop::Config::new();",
995
+ " #[cfg(debug_assertions)]",
996
+ " {",
997
+ " config = wdio_dioxus_bridge::install(config);",
998
+ " }",
999
+ " dioxus::LaunchBuilder::desktop().with_cfg(config).launch(App);",
1000
+ ""
1001
+ ];
1002
+ if (driverProvider === "External driver via wdio-dioxus-driver (Windows only)" /* External */) {
1003
+ lines.push(
1004
+ " The `external` provider (Windows only) also needs the driver binary:",
1005
+ "",
1006
+ " cargo install wdio-dioxus-driver --locked",
1007
+ ""
1008
+ );
1009
+ }
1010
+ lines.push(
1011
+ "Full Dioxus setup docs:",
1012
+ " \u{1F517} https://webdriver.io/docs/desktop-testing/dioxus"
1013
+ );
1014
+ return lines.join("\n");
1015
+ }
957
1016
  var ProtocolOptions = /* @__PURE__ */ ((ProtocolOptions2) => {
958
1017
  ProtocolOptions2["HTTPS"] = "https";
959
1018
  ProtocolOptions2["HTTP"] = "http";
@@ -982,6 +1041,7 @@ var ElectronBuildToolChoice = /* @__PURE__ */ ((ElectronBuildToolChoice2) => {
982
1041
  var DesktopFrameworkChoice = /* @__PURE__ */ ((DesktopFrameworkChoice2) => {
983
1042
  DesktopFrameworkChoice2["Electron"] = "Electron (https://www.electronjs.org/)";
984
1043
  DesktopFrameworkChoice2["Tauri"] = "Tauri (https://tauri.app/)";
1044
+ DesktopFrameworkChoice2["Dioxus"] = "Dioxus (https://dioxuslabs.com/)";
985
1045
  DesktopFrameworkChoice2["MacOS"] = "Native macOS app";
986
1046
  return DesktopFrameworkChoice2;
987
1047
  })(DesktopFrameworkChoice || {});
@@ -991,6 +1051,11 @@ var TauriDriverProviderChoice = /* @__PURE__ */ ((TauriDriverProviderChoice2) =>
991
1051
  TauriDriverProviderChoice2["Embedded"] = "Embedded driver via tauri-plugin-wdio-webdriver crate";
992
1052
  return TauriDriverProviderChoice2;
993
1053
  })(TauriDriverProviderChoice || {});
1054
+ var DioxusDriverProviderChoice = /* @__PURE__ */ ((DioxusDriverProviderChoice2) => {
1055
+ DioxusDriverProviderChoice2["Embedded"] = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)";
1056
+ DioxusDriverProviderChoice2["External"] = "External driver via wdio-dioxus-driver (Windows only)";
1057
+ return DioxusDriverProviderChoice2;
1058
+ })(DioxusDriverProviderChoice || {});
994
1059
  var SUPPORTED_BROWSER_RUNNER_PRESETS = [
995
1060
  { name: "Lit (https://lit.dev/)", value: "$--$" },
996
1061
  { name: "Vue.js (https://vuejs.org/)", value: "@vitejs/plugin-vue$--$vue" },
@@ -1015,6 +1080,8 @@ function getResolvedPurpose(answers) {
1015
1080
  switch (answers.desktopFramework) {
1016
1081
  case "Tauri (https://tauri.app/)" /* Tauri */:
1017
1082
  return "tauri";
1083
+ case "Dioxus (https://dioxuslabs.com/)" /* Dioxus */:
1084
+ return "dioxus";
1018
1085
  case "Native macOS app" /* MacOS */:
1019
1086
  return "macos";
1020
1087
  case "Electron (https://www.electronjs.org/)" /* Electron */:
@@ -1136,6 +1203,23 @@ var QUESTIONNAIRE = [{
1136
1203
  /* istanbul ignore next */
1137
1204
  (answers) => getResolvedPurpose(answers) === "tauri"
1138
1205
  )
1206
+ }, {
1207
+ type: "list",
1208
+ name: "dioxusDriverProvider",
1209
+ message: "Which WebDriver provider would you like to use for Dioxus?",
1210
+ choices: Object.values(DioxusDriverProviderChoice),
1211
+ when: (
1212
+ /* istanbul ignore next */
1213
+ (answers) => getResolvedPurpose(answers) === "dioxus"
1214
+ )
1215
+ }, {
1216
+ type: "input",
1217
+ name: "dioxusAppBinaryPath",
1218
+ message: "Path to your built Dioxus debug binary (e.g. ./target/debug/my-app)?",
1219
+ when: (
1220
+ /* istanbul ignore next */
1221
+ (answers) => getResolvedPurpose(answers) === "dioxus"
1222
+ )
1139
1223
  }, {
1140
1224
  type: "list",
1141
1225
  name: "backend",
@@ -1336,7 +1420,7 @@ var QUESTIONNAIRE = [{
1336
1420
  if (isBrowserRunner(answers)) {
1337
1421
  return SUPPORTED_PACKAGES.framework.slice(0, 1);
1338
1422
  }
1339
- if (["electron", "tauri"].includes(getResolvedPurpose(answers))) {
1423
+ if (["electron", "tauri", "dioxus"].includes(getResolvedPurpose(answers))) {
1340
1424
  return SUPPORTED_PACKAGES.framework.filter(
1341
1425
  ({ value }) => !value.startsWith("@serenity-js")
1342
1426
  );
@@ -1369,7 +1453,7 @@ var QUESTIONNAIRE = [{
1369
1453
  when: (
1370
1454
  /* istanbul ignore next */
1371
1455
  (answers) => {
1372
- if (["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
1456
+ if (["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
1373
1457
  return false;
1374
1458
  }
1375
1459
  return true;
@@ -1422,7 +1506,7 @@ var QUESTIONNAIRE = [{
1422
1506
  * and also not needed when running VS Code tests since the service comes with
1423
1507
  * its own page object implementation, nor when running Electron or MacOS tests
1424
1508
  */
1425
- !["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && /**
1509
+ !["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && /**
1426
1510
  * Serenity/JS generates Lean Page Objects by default, so there's no need to ask about it
1427
1511
  * See https://serenity-js.org/handbook/web-testing/page-objects-pattern/
1428
1512
  */
@@ -1505,6 +1589,8 @@ var QUESTIONNAIRE = [{
1505
1589
  tauriEntries.push(SUPPORTED_PACKAGES.service.find(({ name }) => name === "tauri-plugin"));
1506
1590
  }
1507
1591
  return tauriEntries;
1592
+ } else if (getResolvedPurpose(answers) === "dioxus") {
1593
+ return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "dioxus")];
1508
1594
  } else if (getResolvedPurpose(answers) === "macos") {
1509
1595
  return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "appium")];
1510
1596
  } else if (getResolvedPurpose(answers) === "roku") {
@@ -1531,6 +1617,8 @@ var QUESTIONNAIRE = [{
1531
1617
  if (answers.tauriUseFrontendPlugin) {
1532
1618
  defaultServices.push("tauri-plugin");
1533
1619
  }
1620
+ } else if (getResolvedPurpose(answers) === "dioxus") {
1621
+ defaultServices.push("dioxus");
1534
1622
  } else if (getResolvedPurpose(answers) === "roku") {
1535
1623
  defaultServices.push("roku");
1536
1624
  }
@@ -1609,6 +1697,11 @@ async function runConfigCommand(parsedAnswers, npmTag) {
1609
1697
  parsedAnswers.rawAnswers.tauriUseFrontendPlugin
1610
1698
  ));
1611
1699
  }
1700
+ if (parsedAnswers.purpose === "dioxus") {
1701
+ extraInfoParts.push(buildDioxusBanner(
1702
+ parsedAnswers.rawAnswers.dioxusDriverProvider
1703
+ ));
1704
+ }
1612
1705
  console.log(
1613
1706
  configHelperSuccessMessage({
1614
1707
  projectRootDir: parsedAnswers.projectRootDir,
@@ -1637,6 +1730,27 @@ async function missingConfigurationPrompt(command2, configPath, runConfigCmd = r
1637
1730
  await runConfigCmd(parsedAnswers, "latest");
1638
1731
  return configPath;
1639
1732
  }
1733
+ function resolveTsConfigFilePath({
1734
+ projectRootDir,
1735
+ hasRootTSConfig,
1736
+ specs,
1737
+ runnerShort
1738
+ }) {
1739
+ const rootTsConfigPath = path3.resolve(projectRootDir, "tsconfig.json");
1740
+ const dedicatedTsConfigPath = path3.resolve(
1741
+ projectRootDir,
1742
+ `tsconfig.${runnerShort === "local" ? "e2e" : "wdio"}.json`
1743
+ );
1744
+ if (!hasRootTSConfig) {
1745
+ return rootTsConfigPath;
1746
+ }
1747
+ if (!specs) {
1748
+ return dedicatedTsConfigPath;
1749
+ }
1750
+ const specPathWithoutGlobs = specs.split(path3.sep).filter((segment) => !segment.includes("*")).join(path3.sep);
1751
+ const candidate = path3.resolve(projectRootDir, path3.dirname(specPathWithoutGlobs), "tsconfig.json");
1752
+ return path3.resolve(candidate) === rootTsConfigPath ? dedicatedTsConfigPath : candidate;
1753
+ }
1640
1754
  var parseAnswers = async function(yes) {
1641
1755
  console.log(CONFIG_HELPER_INTRO);
1642
1756
  const answers = await getAnswers(yes);
@@ -1659,10 +1773,12 @@ var parseAnswers = async function(yes) {
1659
1773
  ...serenityPackages
1660
1774
  ].filter(Boolean);
1661
1775
  const hasRootTSConfig = await fs3.access(path3.resolve(projectRootDir, "tsconfig.json")).then(() => true, () => false);
1662
- const tsConfigFilePath = !hasRootTSConfig ? path3.resolve(projectRootDir, "tsconfig.json") : answers.specs ? path3.resolve(
1663
- path3.dirname(answers.specs.split(path3.sep).filter((s) => !s.includes("*")).join(path3.sep)),
1664
- "tsconfig.json"
1665
- ) : path3.resolve(projectRootDir, `tsconfig.${runnerPackage.short === "local" ? "e2e" : "wdio"}.json`);
1776
+ const tsConfigFilePath = resolveTsConfigFilePath({
1777
+ projectRootDir,
1778
+ hasRootTSConfig,
1779
+ specs: answers.specs,
1780
+ runnerShort: runnerPackage.short
1781
+ });
1666
1782
  const parsedPaths = getPathForFileGeneration(answers, projectRootDir);
1667
1783
  const isUsingTypeScript = answers.isUsingTypeScript;
1668
1784
  const wdioConfigFilename = `wdio.conf.${isUsingTypeScript ? "ts" : "js"}`;
@@ -60,6 +60,11 @@ export declare function usesSerenity(answers: Questionnair): boolean;
60
60
  * but the Rust side (Cargo.toml + plugin registration) needs manual edits.
61
61
  */
62
62
  export declare function buildTauriBanner(driverProvider: TauriDriverProviderChoice | undefined, useFrontendPlugin: boolean | undefined): string;
63
+ /**
64
+ * Build the post-install instructions for Dioxus users. The npm side is auto-installed,
65
+ * but the Rust side (the wdio-dioxus-bridge crate + its registration) needs manual edits.
66
+ */
67
+ export declare function buildDioxusBanner(driverProvider: DioxusDriverProviderChoice | undefined): string;
63
68
  declare enum ProtocolOptions {
64
69
  HTTPS = "https",
65
70
  HTTP = "http"
@@ -84,6 +89,7 @@ export declare enum ElectronBuildToolChoice {
84
89
  export declare enum DesktopFrameworkChoice {
85
90
  Electron = "Electron (https://www.electronjs.org/)",
86
91
  Tauri = "Tauri (https://tauri.app/)",
92
+ Dioxus = "Dioxus (https://dioxuslabs.com/)",
87
93
  MacOS = "Native macOS app"
88
94
  }
89
95
  export declare enum TauriDriverProviderChoice {
@@ -91,6 +97,10 @@ export declare enum TauriDriverProviderChoice {
91
97
  CrabNebula = "CrabNebula tauri-driver (managed cloud / drop-in)",
92
98
  Embedded = "Embedded driver via tauri-plugin-wdio-webdriver crate"
93
99
  }
100
+ export declare enum DioxusDriverProviderChoice {
101
+ Embedded = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)",
102
+ External = "External driver via wdio-dioxus-driver (Windows only)"
103
+ }
94
104
  export declare const SUPPORTED_BROWSER_RUNNER_PRESETS: ({
95
105
  name: string;
96
106
  value: string;
@@ -99,7 +109,7 @@ export declare const SUPPORTED_BROWSER_RUNNER_PRESETS: ({
99
109
  value: null;
100
110
  })[];
101
111
  declare function isBrowserRunner(answers: Questionnair): boolean;
102
- export declare function getResolvedPurpose(answers: Questionnair): "e2e" | "vscode" | "electron" | "tauri" | "roku" | "component" | "macos";
112
+ export declare function getResolvedPurpose(answers: Questionnair): "e2e" | "vscode" | "electron" | "tauri" | "dioxus" | "roku" | "component" | "macos";
103
113
  export declare const TESTING_LIBRARY_PACKAGES: Record<string, string>;
104
114
  export declare const E2E_ENVIRONMENTS: {
105
115
  name: string;
@@ -176,6 +186,13 @@ export declare const QUESTIONNAIRE: ({
176
186
  default: boolean;
177
187
  when: (answers: Questionnair) => boolean;
178
188
  choices?: undefined;
189
+ } | {
190
+ type: string;
191
+ name: string;
192
+ message: string;
193
+ choices: DioxusDriverProviderChoice[];
194
+ when: (answers: Questionnair) => boolean;
195
+ default?: undefined;
179
196
  } | {
180
197
  type: string;
181
198
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -24,7 +24,7 @@ import spawn from "cross-spawn";
24
24
  // package.json
25
25
  var package_default = {
26
26
  name: "create-wdio",
27
- version: "9.31.2",
27
+ version: "9.31.6",
28
28
  description: "Install and setup a WebdriverIO project with all its dependencies in a single run",
29
29
  author: "WebdriverIO Team <mail@webdriver.io>",
30
30
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
@@ -191,7 +191,7 @@ var SUPPORTED_PACKAGES = {
191
191
  runner: [
192
192
  { name: "E2E Testing - of Web or Mobile Applications", value: "@wdio/local-runner$--$local$--$e2e" },
193
193
  { name: "Component or Unit Testing - in the browser\n > https://webdriver.io/docs/component-testing", value: "@wdio/browser-runner$--$browser$--$component" },
194
- { name: "Desktop Testing - of Electron, Tauri, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
194
+ { name: "Desktop Testing - of Electron, Tauri, Dioxus, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
195
195
  { name: "VS Code Extension Testing\n > https://webdriver.io/docs/vscode-extension-testing", value: "@wdio/local-runner$--$local$--$vscode" },
196
196
  { name: "Roku Testing - of OTT apps running on RokuOS\n > https://webdriver.io/docs/wdio-roku-service", value: "@wdio/local-runner$--$local$--$roku" }
197
197
  ],
@@ -245,6 +245,7 @@ var SUPPORTED_PACKAGES = {
245
245
  { name: "electron", value: "@wdio/electron-service$--$electron" },
246
246
  { name: "tauri", value: "@wdio/tauri-service$--$tauri" },
247
247
  { name: "tauri-plugin", value: "@wdio/tauri-plugin$--$tauri-plugin" },
248
+ { name: "dioxus", value: "@wdio/dioxus-service$--$dioxus" },
248
249
  { name: "appium", value: "@wdio/appium-service$--$appium" },
249
250
  // external
250
251
  { name: "camera", value: "wdio-camera-service$--$camera" },
@@ -276,7 +277,8 @@ var SUPPORTED_PACKAGES = {
276
277
  { name: "robonut", value: "wdio-robonut-service$--$robonut" },
277
278
  { name: "qunit", value: "wdio-qunit-service$--$qunit" },
278
279
  { name: "roku", value: "wdio-roku-service$--$roku" },
279
- { name: "obsidian", value: "wdio-obsidian-service$--$obsidian" }
280
+ { name: "obsidian", value: "wdio-obsidian-service$--$obsidian" },
281
+ { name: "null-driver", value: "wdio-null-driver-service$--$null-driver" }
280
282
  ]
281
283
  };
282
284
  var isNuxtProject = [
@@ -323,6 +325,7 @@ var ElectronBuildToolChoice = /* @__PURE__ */ ((ElectronBuildToolChoice2) => {
323
325
  var DesktopFrameworkChoice = /* @__PURE__ */ ((DesktopFrameworkChoice2) => {
324
326
  DesktopFrameworkChoice2["Electron"] = "Electron (https://www.electronjs.org/)";
325
327
  DesktopFrameworkChoice2["Tauri"] = "Tauri (https://tauri.app/)";
328
+ DesktopFrameworkChoice2["Dioxus"] = "Dioxus (https://dioxuslabs.com/)";
326
329
  DesktopFrameworkChoice2["MacOS"] = "Native macOS app";
327
330
  return DesktopFrameworkChoice2;
328
331
  })(DesktopFrameworkChoice || {});
@@ -332,6 +335,11 @@ var TauriDriverProviderChoice = /* @__PURE__ */ ((TauriDriverProviderChoice2) =>
332
335
  TauriDriverProviderChoice2["Embedded"] = "Embedded driver via tauri-plugin-wdio-webdriver crate";
333
336
  return TauriDriverProviderChoice2;
334
337
  })(TauriDriverProviderChoice || {});
338
+ var DioxusDriverProviderChoice = /* @__PURE__ */ ((DioxusDriverProviderChoice2) => {
339
+ DioxusDriverProviderChoice2["Embedded"] = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)";
340
+ DioxusDriverProviderChoice2["External"] = "External driver via wdio-dioxus-driver (Windows only)";
341
+ return DioxusDriverProviderChoice2;
342
+ })(DioxusDriverProviderChoice || {});
335
343
  var SUPPORTED_BROWSER_RUNNER_PRESETS = [
336
344
  { name: "Lit (https://lit.dev/)", value: "$--$" },
337
345
  { name: "Vue.js (https://vuejs.org/)", value: "@vitejs/plugin-vue$--$vue" },
@@ -356,6 +364,8 @@ function getResolvedPurpose(answers) {
356
364
  switch (answers.desktopFramework) {
357
365
  case "Tauri (https://tauri.app/)" /* Tauri */:
358
366
  return "tauri";
367
+ case "Dioxus (https://dioxuslabs.com/)" /* Dioxus */:
368
+ return "dioxus";
359
369
  case "Native macOS app" /* MacOS */:
360
370
  return "macos";
361
371
  case "Electron (https://www.electronjs.org/)" /* Electron */:
@@ -477,6 +487,23 @@ var QUESTIONNAIRE = [{
477
487
  /* istanbul ignore next */
478
488
  (answers) => getResolvedPurpose(answers) === "tauri"
479
489
  )
490
+ }, {
491
+ type: "list",
492
+ name: "dioxusDriverProvider",
493
+ message: "Which WebDriver provider would you like to use for Dioxus?",
494
+ choices: Object.values(DioxusDriverProviderChoice),
495
+ when: (
496
+ /* istanbul ignore next */
497
+ (answers) => getResolvedPurpose(answers) === "dioxus"
498
+ )
499
+ }, {
500
+ type: "input",
501
+ name: "dioxusAppBinaryPath",
502
+ message: "Path to your built Dioxus debug binary (e.g. ./target/debug/my-app)?",
503
+ when: (
504
+ /* istanbul ignore next */
505
+ (answers) => getResolvedPurpose(answers) === "dioxus"
506
+ )
480
507
  }, {
481
508
  type: "list",
482
509
  name: "backend",
@@ -677,7 +704,7 @@ var QUESTIONNAIRE = [{
677
704
  if (isBrowserRunner(answers)) {
678
705
  return SUPPORTED_PACKAGES.framework.slice(0, 1);
679
706
  }
680
- if (["electron", "tauri"].includes(getResolvedPurpose(answers))) {
707
+ if (["electron", "tauri", "dioxus"].includes(getResolvedPurpose(answers))) {
681
708
  return SUPPORTED_PACKAGES.framework.filter(
682
709
  ({ value }) => !value.startsWith("@serenity-js")
683
710
  );
@@ -710,7 +737,7 @@ var QUESTIONNAIRE = [{
710
737
  when: (
711
738
  /* istanbul ignore next */
712
739
  (answers) => {
713
- if (["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
740
+ if (["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
714
741
  return false;
715
742
  }
716
743
  return true;
@@ -763,7 +790,7 @@ var QUESTIONNAIRE = [{
763
790
  * and also not needed when running VS Code tests since the service comes with
764
791
  * its own page object implementation, nor when running Electron or MacOS tests
765
792
  */
766
- !["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && /**
793
+ !["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && /**
767
794
  * Serenity/JS generates Lean Page Objects by default, so there's no need to ask about it
768
795
  * See https://serenity-js.org/handbook/web-testing/page-objects-pattern/
769
796
  */
@@ -846,6 +873,8 @@ var QUESTIONNAIRE = [{
846
873
  tauriEntries.push(SUPPORTED_PACKAGES.service.find(({ name }) => name === "tauri-plugin"));
847
874
  }
848
875
  return tauriEntries;
876
+ } else if (getResolvedPurpose(answers) === "dioxus") {
877
+ return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "dioxus")];
849
878
  } else if (getResolvedPurpose(answers) === "macos") {
850
879
  return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "appium")];
851
880
  } else if (getResolvedPurpose(answers) === "roku") {
@@ -872,6 +901,8 @@ var QUESTIONNAIRE = [{
872
901
  if (answers.tauriUseFrontendPlugin) {
873
902
  defaultServices.push("tauri-plugin");
874
903
  }
904
+ } else if (getResolvedPurpose(answers) === "dioxus") {
905
+ defaultServices.push("dioxus");
875
906
  } else if (getResolvedPurpose(answers) === "roku") {
876
907
  defaultServices.push("roku");
877
908
  }
@@ -85,7 +85,7 @@ import spawn from "cross-spawn";
85
85
  // package.json
86
86
  var package_default = {
87
87
  name: "create-wdio",
88
- version: "9.31.2",
88
+ version: "9.31.6",
89
89
  description: "Install and setup a WebdriverIO project with all its dependencies in a single run",
90
90
  author: "WebdriverIO Team <mail@webdriver.io>",
91
91
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
@@ -197,7 +197,7 @@ var SUPPORTED_PACKAGES = {
197
197
  runner: [
198
198
  { name: "E2E Testing - of Web or Mobile Applications", value: "@wdio/local-runner$--$local$--$e2e" },
199
199
  { name: "Component or Unit Testing - in the browser\n > https://webdriver.io/docs/component-testing", value: "@wdio/browser-runner$--$browser$--$component" },
200
- { name: "Desktop Testing - of Electron, Tauri, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
200
+ { name: "Desktop Testing - of Electron, Tauri, Dioxus, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
201
201
  { name: "VS Code Extension Testing\n > https://webdriver.io/docs/vscode-extension-testing", value: "@wdio/local-runner$--$local$--$vscode" },
202
202
  { name: "Roku Testing - of OTT apps running on RokuOS\n > https://webdriver.io/docs/wdio-roku-service", value: "@wdio/local-runner$--$local$--$roku" }
203
203
  ],
@@ -251,6 +251,7 @@ var SUPPORTED_PACKAGES = {
251
251
  { name: "electron", value: "@wdio/electron-service$--$electron" },
252
252
  { name: "tauri", value: "@wdio/tauri-service$--$tauri" },
253
253
  { name: "tauri-plugin", value: "@wdio/tauri-plugin$--$tauri-plugin" },
254
+ { name: "dioxus", value: "@wdio/dioxus-service$--$dioxus" },
254
255
  { name: "appium", value: "@wdio/appium-service$--$appium" },
255
256
  // external
256
257
  { name: "camera", value: "wdio-camera-service$--$camera" },
@@ -282,7 +283,8 @@ var SUPPORTED_PACKAGES = {
282
283
  { name: "robonut", value: "wdio-robonut-service$--$robonut" },
283
284
  { name: "qunit", value: "wdio-qunit-service$--$qunit" },
284
285
  { name: "roku", value: "wdio-roku-service$--$roku" },
285
- { name: "obsidian", value: "wdio-obsidian-service$--$obsidian" }
286
+ { name: "obsidian", value: "wdio-obsidian-service$--$obsidian" },
287
+ { name: "null-driver", value: "wdio-null-driver-service$--$null-driver" }
286
288
  ]
287
289
  };
288
290
  var configHelperSuccessMessage = ({ projectRootDir, runScript, extraInfo = "" }) => `
@@ -370,6 +372,40 @@ function buildTauriBanner(driverProvider, useFrontendPlugin) {
370
372
  );
371
373
  return lines.join("\n");
372
374
  }
375
+ function buildDioxusBanner(driverProvider) {
376
+ const lines = [
377
+ "",
378
+ "\u{1F980} Dioxus requires a couple of Rust-side additions before tests can run:",
379
+ "",
380
+ " 1. Add the WebdriverIO bridge crate to your Cargo.toml:",
381
+ "",
382
+ " [dependencies]",
383
+ ' wdio-dioxus-bridge = "1"',
384
+ "",
385
+ " 2. Install it into your desktop config in `src/main.rs` (debug builds only):",
386
+ "",
387
+ " let mut config = dioxus::desktop::Config::new();",
388
+ " #[cfg(debug_assertions)]",
389
+ " {",
390
+ " config = wdio_dioxus_bridge::install(config);",
391
+ " }",
392
+ " dioxus::LaunchBuilder::desktop().with_cfg(config).launch(App);",
393
+ ""
394
+ ];
395
+ if (driverProvider === "External driver via wdio-dioxus-driver (Windows only)" /* External */) {
396
+ lines.push(
397
+ " The `external` provider (Windows only) also needs the driver binary:",
398
+ "",
399
+ " cargo install wdio-dioxus-driver --locked",
400
+ ""
401
+ );
402
+ }
403
+ lines.push(
404
+ "Full Dioxus setup docs:",
405
+ " \u{1F517} https://webdriver.io/docs/desktop-testing/dioxus"
406
+ );
407
+ return lines.join("\n");
408
+ }
373
409
  var ProtocolOptions = /* @__PURE__ */ ((ProtocolOptions2) => {
374
410
  ProtocolOptions2["HTTPS"] = "https";
375
411
  ProtocolOptions2["HTTP"] = "http";
@@ -398,6 +434,7 @@ var ElectronBuildToolChoice = /* @__PURE__ */ ((ElectronBuildToolChoice2) => {
398
434
  var DesktopFrameworkChoice = /* @__PURE__ */ ((DesktopFrameworkChoice2) => {
399
435
  DesktopFrameworkChoice2["Electron"] = "Electron (https://www.electronjs.org/)";
400
436
  DesktopFrameworkChoice2["Tauri"] = "Tauri (https://tauri.app/)";
437
+ DesktopFrameworkChoice2["Dioxus"] = "Dioxus (https://dioxuslabs.com/)";
401
438
  DesktopFrameworkChoice2["MacOS"] = "Native macOS app";
402
439
  return DesktopFrameworkChoice2;
403
440
  })(DesktopFrameworkChoice || {});
@@ -407,6 +444,11 @@ var TauriDriverProviderChoice = /* @__PURE__ */ ((TauriDriverProviderChoice2) =>
407
444
  TauriDriverProviderChoice2["Embedded"] = "Embedded driver via tauri-plugin-wdio-webdriver crate";
408
445
  return TauriDriverProviderChoice2;
409
446
  })(TauriDriverProviderChoice || {});
447
+ var DioxusDriverProviderChoice = /* @__PURE__ */ ((DioxusDriverProviderChoice2) => {
448
+ DioxusDriverProviderChoice2["Embedded"] = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)";
449
+ DioxusDriverProviderChoice2["External"] = "External driver via wdio-dioxus-driver (Windows only)";
450
+ return DioxusDriverProviderChoice2;
451
+ })(DioxusDriverProviderChoice || {});
410
452
  var SUPPORTED_BROWSER_RUNNER_PRESETS = [
411
453
  { name: "Lit (https://lit.dev/)", value: "$--$" },
412
454
  { name: "Vue.js (https://vuejs.org/)", value: "@vitejs/plugin-vue$--$vue" },
@@ -431,6 +473,8 @@ function getResolvedPurpose(answers) {
431
473
  switch (answers.desktopFramework) {
432
474
  case "Tauri (https://tauri.app/)" /* Tauri */:
433
475
  return "tauri";
476
+ case "Dioxus (https://dioxuslabs.com/)" /* Dioxus */:
477
+ return "dioxus";
434
478
  case "Native macOS app" /* MacOS */:
435
479
  return "macos";
436
480
  case "Electron (https://www.electronjs.org/)" /* Electron */:
@@ -552,6 +596,23 @@ var QUESTIONNAIRE = [{
552
596
  /* istanbul ignore next */
553
597
  (answers) => getResolvedPurpose(answers) === "tauri"
554
598
  )
599
+ }, {
600
+ type: "list",
601
+ name: "dioxusDriverProvider",
602
+ message: "Which WebDriver provider would you like to use for Dioxus?",
603
+ choices: Object.values(DioxusDriverProviderChoice),
604
+ when: (
605
+ /* istanbul ignore next */
606
+ (answers) => getResolvedPurpose(answers) === "dioxus"
607
+ )
608
+ }, {
609
+ type: "input",
610
+ name: "dioxusAppBinaryPath",
611
+ message: "Path to your built Dioxus debug binary (e.g. ./target/debug/my-app)?",
612
+ when: (
613
+ /* istanbul ignore next */
614
+ (answers) => getResolvedPurpose(answers) === "dioxus"
615
+ )
555
616
  }, {
556
617
  type: "list",
557
618
  name: "backend",
@@ -752,7 +813,7 @@ var QUESTIONNAIRE = [{
752
813
  if (isBrowserRunner(answers)) {
753
814
  return SUPPORTED_PACKAGES.framework.slice(0, 1);
754
815
  }
755
- if (["electron", "tauri"].includes(getResolvedPurpose(answers))) {
816
+ if (["electron", "tauri", "dioxus"].includes(getResolvedPurpose(answers))) {
756
817
  return SUPPORTED_PACKAGES.framework.filter(
757
818
  ({ value }) => !value.startsWith("@serenity-js")
758
819
  );
@@ -785,7 +846,7 @@ var QUESTIONNAIRE = [{
785
846
  when: (
786
847
  /* istanbul ignore next */
787
848
  (answers) => {
788
- if (["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
849
+ if (["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
789
850
  return false;
790
851
  }
791
852
  return true;
@@ -838,7 +899,7 @@ var QUESTIONNAIRE = [{
838
899
  * and also not needed when running VS Code tests since the service comes with
839
900
  * its own page object implementation, nor when running Electron or MacOS tests
840
901
  */
841
- !["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && /**
902
+ !["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && /**
842
903
  * Serenity/JS generates Lean Page Objects by default, so there's no need to ask about it
843
904
  * See https://serenity-js.org/handbook/web-testing/page-objects-pattern/
844
905
  */
@@ -921,6 +982,8 @@ var QUESTIONNAIRE = [{
921
982
  tauriEntries.push(SUPPORTED_PACKAGES.service.find(({ name }) => name === "tauri-plugin"));
922
983
  }
923
984
  return tauriEntries;
985
+ } else if (getResolvedPurpose(answers) === "dioxus") {
986
+ return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "dioxus")];
924
987
  } else if (getResolvedPurpose(answers) === "macos") {
925
988
  return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "appium")];
926
989
  } else if (getResolvedPurpose(answers) === "roku") {
@@ -947,6 +1010,8 @@ var QUESTIONNAIRE = [{
947
1010
  if (answers.tauriUseFrontendPlugin) {
948
1011
  defaultServices.push("tauri-plugin");
949
1012
  }
1013
+ } else if (getResolvedPurpose(answers) === "dioxus") {
1014
+ defaultServices.push("dioxus");
950
1015
  } else if (getResolvedPurpose(answers) === "roku") {
951
1016
  defaultServices.push("roku");
952
1017
  }
@@ -1213,9 +1278,6 @@ async function setupTypeScript(parsedAnswers) {
1213
1278
  if (!parsedAnswers.isUsingTypeScript) {
1214
1279
  return;
1215
1280
  }
1216
- if (parsedAnswers.hasRootTSConfig) {
1217
- return;
1218
- }
1219
1281
  console.log("Setting up TypeScript...");
1220
1282
  const frameworkPackage = convertPackageHashToObject(parsedAnswers.rawAnswers.framework);
1221
1283
  const servicePackages = parsedAnswers.rawAnswers.services.map((service) => convertPackageHashToObject(service));
@@ -1282,11 +1344,37 @@ async function setupTypeScript(parsedAnswers) {
1282
1344
  jsxFragmentFactory: "Fragment"
1283
1345
  } : {}
1284
1346
  )
1285
- },
1286
- include: preset === "svelte" ? ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] : preset === "vue" ? ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] : ["test", "wdio.conf.ts"]
1347
+ }
1348
+ };
1349
+ const tsConfigDir = path2.dirname(parsedAnswers.tsConfigFilePath);
1350
+ const toPosix = (value) => value.replace(/\\/g, "/");
1351
+ const getRelativePath = (target) => {
1352
+ const relativePath = toPosix(
1353
+ path2.relative(tsConfigDir, path2.resolve(parsedAnswers.projectRootDir, target))
1354
+ );
1355
+ return relativePath || ".";
1356
+ };
1357
+ const toExtendsPath = (target) => {
1358
+ const relativePath = getRelativePath(target);
1359
+ if (relativePath === "." || relativePath.startsWith("./") || relativePath.startsWith("../") || path2.isAbsolute(relativePath)) {
1360
+ return relativePath;
1361
+ }
1362
+ return `./${relativePath}`;
1287
1363
  };
1364
+ if (parsedAnswers.hasRootTSConfig) {
1365
+ config.extends = toExtendsPath("tsconfig.json");
1366
+ }
1367
+ const defaultSpecInclude = (parsedAnswers.destSpecRootPath && path2.relative(parsedAnswers.projectRootDir, parsedAnswers.destSpecRootPath) || parsedAnswers.specs && path2.dirname(
1368
+ parsedAnswers.specs.split(/[\\/]/).filter((segment) => !segment.includes("*")).join(path2.sep)
1369
+ ) || "test").replace(/\\/g, "/");
1370
+ const defaultWdioConfigInclude = (parsedAnswers.wdioConfigPath && path2.relative(parsedAnswers.projectRootDir, parsedAnswers.wdioConfigPath) || "wdio.conf.ts").replace(/\\/g, "/");
1371
+ const baseIncludes = preset === "svelte" ? ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] : preset === "vue" ? ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] : [
1372
+ defaultSpecInclude && defaultSpecInclude !== "." ? defaultSpecInclude : "test",
1373
+ defaultWdioConfigInclude && defaultWdioConfigInclude !== "." ? defaultWdioConfigInclude : "wdio.conf.ts"
1374
+ ];
1375
+ Object.assign(config, { include: baseIncludes.map(getRelativePath) });
1288
1376
  if (parsedAnswers.framework === "cucumber") {
1289
- config.include.push("features");
1377
+ config.include.push(getRelativePath("features"));
1290
1378
  }
1291
1379
  await fs2.mkdir(path2.dirname(parsedAnswers.tsConfigFilePath), { recursive: true });
1292
1380
  await fs2.writeFile(
@@ -1642,6 +1730,11 @@ async function runConfigCommand(parsedAnswers, npmTag) {
1642
1730
  parsedAnswers.rawAnswers.tauriUseFrontendPlugin
1643
1731
  ));
1644
1732
  }
1733
+ if (parsedAnswers.purpose === "dioxus") {
1734
+ extraInfoParts.push(buildDioxusBanner(
1735
+ parsedAnswers.rawAnswers.dioxusDriverProvider
1736
+ ));
1737
+ }
1645
1738
  console.log(
1646
1739
  configHelperSuccessMessage({
1647
1740
  projectRootDir: parsedAnswers.projectRootDir,
@@ -1670,6 +1763,27 @@ async function missingConfigurationPrompt(command2, configPath, runConfigCmd = r
1670
1763
  await runConfigCmd(parsedAnswers, "latest");
1671
1764
  return configPath;
1672
1765
  }
1766
+ function resolveTsConfigFilePath({
1767
+ projectRootDir,
1768
+ hasRootTSConfig,
1769
+ specs,
1770
+ runnerShort
1771
+ }) {
1772
+ const rootTsConfigPath = path3.resolve(projectRootDir, "tsconfig.json");
1773
+ const dedicatedTsConfigPath = path3.resolve(
1774
+ projectRootDir,
1775
+ `tsconfig.${runnerShort === "local" ? "e2e" : "wdio"}.json`
1776
+ );
1777
+ if (!hasRootTSConfig) {
1778
+ return rootTsConfigPath;
1779
+ }
1780
+ if (!specs) {
1781
+ return dedicatedTsConfigPath;
1782
+ }
1783
+ const specPathWithoutGlobs = specs.split(path3.sep).filter((segment) => !segment.includes("*")).join(path3.sep);
1784
+ const candidate = path3.resolve(projectRootDir, path3.dirname(specPathWithoutGlobs), "tsconfig.json");
1785
+ return path3.resolve(candidate) === rootTsConfigPath ? dedicatedTsConfigPath : candidate;
1786
+ }
1673
1787
  var parseAnswers = async function(yes) {
1674
1788
  console.log(CONFIG_HELPER_INTRO);
1675
1789
  const answers = await getAnswers(yes);
@@ -1692,10 +1806,12 @@ var parseAnswers = async function(yes) {
1692
1806
  ...serenityPackages
1693
1807
  ].filter(Boolean);
1694
1808
  const hasRootTSConfig = await fs3.access(path3.resolve(projectRootDir, "tsconfig.json")).then(() => true, () => false);
1695
- const tsConfigFilePath = !hasRootTSConfig ? path3.resolve(projectRootDir, "tsconfig.json") : answers.specs ? path3.resolve(
1696
- path3.dirname(answers.specs.split(path3.sep).filter((s) => !s.includes("*")).join(path3.sep)),
1697
- "tsconfig.json"
1698
- ) : path3.resolve(projectRootDir, `tsconfig.${runnerPackage.short === "local" ? "e2e" : "wdio"}.json`);
1809
+ const tsConfigFilePath = resolveTsConfigFilePath({
1810
+ projectRootDir,
1811
+ hasRootTSConfig,
1812
+ specs: answers.specs,
1813
+ runnerShort: runnerPackage.short
1814
+ });
1699
1815
  const parsedPaths = getPathForFileGeneration(answers, projectRootDir);
1700
1816
  const isUsingTypeScript = answers.isUsingTypeScript;
1701
1817
  const wdioConfigFilename = `wdio.conf.${isUsingTypeScript ? "ts" : "js"}`;
@@ -49,6 +49,13 @@ capabilities: [{<%
49
49
  // custom application args
50
50
  appArgs: []
51
51
  }<%
52
+ } else if (answers.purpose === 'dioxus') { %>
53
+ browserName: 'dioxus',
54
+ // path to your built Dioxus debug binary
55
+ // see https://webdriver.io/docs/desktop-testing/dioxus/configuration
56
+ 'dioxus:options': {
57
+ application: <%- JSON.stringify(answers.dioxusAppBinaryPath || './target/debug/my-app') %>
58
+ }<%
52
59
  } else {
53
60
  %>
54
61
  // capabilities for local browser web tests
@@ -20,6 +20,19 @@ services: [<%- answers.services.map((service) => {
20
20
  ]`
21
21
  } else if (service === 'tauri-plugin') {
22
22
  return /*js*/`'tauri-plugin'`
23
+ } else if (service === 'dioxus') {
24
+ const providerMap = {
25
+ 'Embedded in-process driver (recommended — no external driver, all platforms)': 'embedded',
26
+ 'External driver via wdio-dioxus-driver (Windows only)': 'external',
27
+ }
28
+ const provider = providerMap[answers.rawAnswers.dioxusDriverProvider] ?? 'embedded'
29
+ return /*js*/`[
30
+ 'dioxus',
31
+ {
32
+ driverProvider: '${provider}',
33
+ // see https://webdriver.io/docs/desktop-testing/dioxus/configuration for all options
34
+ }
35
+ ]`
23
36
  } else if (service === 'sauce' && answers.useSauceConnect) {
24
37
  return /*js*/`[
25
38
  'sauce',
@@ -7,6 +7,10 @@ if (answers.isUsingTypeScript && answers.purpose === 'tauri') {
7
7
  %>/// <reference types="@wdio/tauri-service" />
8
8
  <% }
9
9
 
10
+ if (answers.isUsingTypeScript && answers.purpose === 'dioxus') {
11
+ %>/// <reference types="@wdio/dioxus-service" />
12
+ <% }
13
+
10
14
  if (answers.isUsingTypeScript && answers.serenityAdapter) {
11
15
  %>import type { WebdriverIOConfig } from '@serenity-js/webdriverio'
12
16
  <% }
package/build/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { BackendChoice, RegionOptions, ElectronBuildToolChoice, DesktopFrameworkChoice, TauriDriverProviderChoice } from './constants.js';
1
+ import type { BackendChoice, RegionOptions, ElectronBuildToolChoice, DesktopFrameworkChoice, TauriDriverProviderChoice, DioxusDriverProviderChoice } from './constants.js';
2
2
  import type { PackageJson as typeFestPackageJson } from 'type-fest';
3
3
  import type { Package as normalizePackage } from 'normalize-package-data';
4
4
  export type NormalizedPackageJson = PackageJson & normalizePackage;
@@ -20,6 +20,8 @@ export interface Questionnair {
20
20
  tauriDriverProvider?: TauriDriverProviderChoice;
21
21
  tauriUseFrontendPlugin?: boolean;
22
22
  tauriAppBinaryPath?: string;
23
+ dioxusDriverProvider?: DioxusDriverProviderChoice;
24
+ dioxusAppBinaryPath?: string;
23
25
  backend?: BackendChoice;
24
26
  hostname?: string;
25
27
  port?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -88,7 +88,7 @@ async function detectCompiler(answers) {
88
88
  // package.json
89
89
  var package_default = {
90
90
  name: "create-wdio",
91
- version: "9.31.2",
91
+ version: "9.31.6",
92
92
  description: "Install and setup a WebdriverIO project with all its dependencies in a single run",
93
93
  author: "WebdriverIO Team <mail@webdriver.io>",
94
94
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
@@ -195,7 +195,7 @@ var SUPPORTED_PACKAGES = {
195
195
  runner: [
196
196
  { name: "E2E Testing - of Web or Mobile Applications", value: "@wdio/local-runner$--$local$--$e2e" },
197
197
  { name: "Component or Unit Testing - in the browser\n > https://webdriver.io/docs/component-testing", value: "@wdio/browser-runner$--$browser$--$component" },
198
- { name: "Desktop Testing - of Electron, Tauri, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
198
+ { name: "Desktop Testing - of Electron, Tauri, Dioxus, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
199
199
  { name: "VS Code Extension Testing\n > https://webdriver.io/docs/vscode-extension-testing", value: "@wdio/local-runner$--$local$--$vscode" },
200
200
  { name: "Roku Testing - of OTT apps running on RokuOS\n > https://webdriver.io/docs/wdio-roku-service", value: "@wdio/local-runner$--$local$--$roku" }
201
201
  ],
@@ -249,6 +249,7 @@ var SUPPORTED_PACKAGES = {
249
249
  { name: "electron", value: "@wdio/electron-service$--$electron" },
250
250
  { name: "tauri", value: "@wdio/tauri-service$--$tauri" },
251
251
  { name: "tauri-plugin", value: "@wdio/tauri-plugin$--$tauri-plugin" },
252
+ { name: "dioxus", value: "@wdio/dioxus-service$--$dioxus" },
252
253
  { name: "appium", value: "@wdio/appium-service$--$appium" },
253
254
  // external
254
255
  { name: "camera", value: "wdio-camera-service$--$camera" },
@@ -280,7 +281,8 @@ var SUPPORTED_PACKAGES = {
280
281
  { name: "robonut", value: "wdio-robonut-service$--$robonut" },
281
282
  { name: "qunit", value: "wdio-qunit-service$--$qunit" },
282
283
  { name: "roku", value: "wdio-roku-service$--$roku" },
283
- { name: "obsidian", value: "wdio-obsidian-service$--$obsidian" }
284
+ { name: "obsidian", value: "wdio-obsidian-service$--$obsidian" },
285
+ { name: "null-driver", value: "wdio-null-driver-service$--$null-driver" }
284
286
  ]
285
287
  };
286
288
  var isNuxtProject = [
@@ -327,6 +329,7 @@ var ElectronBuildToolChoice = /* @__PURE__ */ ((ElectronBuildToolChoice2) => {
327
329
  var DesktopFrameworkChoice = /* @__PURE__ */ ((DesktopFrameworkChoice2) => {
328
330
  DesktopFrameworkChoice2["Electron"] = "Electron (https://www.electronjs.org/)";
329
331
  DesktopFrameworkChoice2["Tauri"] = "Tauri (https://tauri.app/)";
332
+ DesktopFrameworkChoice2["Dioxus"] = "Dioxus (https://dioxuslabs.com/)";
330
333
  DesktopFrameworkChoice2["MacOS"] = "Native macOS app";
331
334
  return DesktopFrameworkChoice2;
332
335
  })(DesktopFrameworkChoice || {});
@@ -336,6 +339,11 @@ var TauriDriverProviderChoice = /* @__PURE__ */ ((TauriDriverProviderChoice2) =>
336
339
  TauriDriverProviderChoice2["Embedded"] = "Embedded driver via tauri-plugin-wdio-webdriver crate";
337
340
  return TauriDriverProviderChoice2;
338
341
  })(TauriDriverProviderChoice || {});
342
+ var DioxusDriverProviderChoice = /* @__PURE__ */ ((DioxusDriverProviderChoice2) => {
343
+ DioxusDriverProviderChoice2["Embedded"] = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)";
344
+ DioxusDriverProviderChoice2["External"] = "External driver via wdio-dioxus-driver (Windows only)";
345
+ return DioxusDriverProviderChoice2;
346
+ })(DioxusDriverProviderChoice || {});
339
347
  var SUPPORTED_BROWSER_RUNNER_PRESETS = [
340
348
  { name: "Lit (https://lit.dev/)", value: "$--$" },
341
349
  { name: "Vue.js (https://vuejs.org/)", value: "@vitejs/plugin-vue$--$vue" },
@@ -360,6 +368,8 @@ function getResolvedPurpose(answers) {
360
368
  switch (answers.desktopFramework) {
361
369
  case "Tauri (https://tauri.app/)" /* Tauri */:
362
370
  return "tauri";
371
+ case "Dioxus (https://dioxuslabs.com/)" /* Dioxus */:
372
+ return "dioxus";
363
373
  case "Native macOS app" /* MacOS */:
364
374
  return "macos";
365
375
  case "Electron (https://www.electronjs.org/)" /* Electron */:
@@ -481,6 +491,23 @@ var QUESTIONNAIRE = [{
481
491
  /* istanbul ignore next */
482
492
  (answers) => getResolvedPurpose(answers) === "tauri"
483
493
  )
494
+ }, {
495
+ type: "list",
496
+ name: "dioxusDriverProvider",
497
+ message: "Which WebDriver provider would you like to use for Dioxus?",
498
+ choices: Object.values(DioxusDriverProviderChoice),
499
+ when: (
500
+ /* istanbul ignore next */
501
+ (answers) => getResolvedPurpose(answers) === "dioxus"
502
+ )
503
+ }, {
504
+ type: "input",
505
+ name: "dioxusAppBinaryPath",
506
+ message: "Path to your built Dioxus debug binary (e.g. ./target/debug/my-app)?",
507
+ when: (
508
+ /* istanbul ignore next */
509
+ (answers) => getResolvedPurpose(answers) === "dioxus"
510
+ )
484
511
  }, {
485
512
  type: "list",
486
513
  name: "backend",
@@ -681,7 +708,7 @@ var QUESTIONNAIRE = [{
681
708
  if (isBrowserRunner(answers)) {
682
709
  return SUPPORTED_PACKAGES.framework.slice(0, 1);
683
710
  }
684
- if (["electron", "tauri"].includes(getResolvedPurpose(answers))) {
711
+ if (["electron", "tauri", "dioxus"].includes(getResolvedPurpose(answers))) {
685
712
  return SUPPORTED_PACKAGES.framework.filter(
686
713
  ({ value }) => !value.startsWith("@serenity-js")
687
714
  );
@@ -714,7 +741,7 @@ var QUESTIONNAIRE = [{
714
741
  when: (
715
742
  /* istanbul ignore next */
716
743
  (answers) => {
717
- if (["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
744
+ if (["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
718
745
  return false;
719
746
  }
720
747
  return true;
@@ -767,7 +794,7 @@ var QUESTIONNAIRE = [{
767
794
  * and also not needed when running VS Code tests since the service comes with
768
795
  * its own page object implementation, nor when running Electron or MacOS tests
769
796
  */
770
- !["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && /**
797
+ !["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && /**
771
798
  * Serenity/JS generates Lean Page Objects by default, so there's no need to ask about it
772
799
  * See https://serenity-js.org/handbook/web-testing/page-objects-pattern/
773
800
  */
@@ -850,6 +877,8 @@ var QUESTIONNAIRE = [{
850
877
  tauriEntries.push(SUPPORTED_PACKAGES.service.find(({ name }) => name === "tauri-plugin"));
851
878
  }
852
879
  return tauriEntries;
880
+ } else if (getResolvedPurpose(answers) === "dioxus") {
881
+ return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "dioxus")];
853
882
  } else if (getResolvedPurpose(answers) === "macos") {
854
883
  return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "appium")];
855
884
  } else if (getResolvedPurpose(answers) === "roku") {
@@ -876,6 +905,8 @@ var QUESTIONNAIRE = [{
876
905
  if (answers.tauriUseFrontendPlugin) {
877
906
  defaultServices.push("tauri-plugin");
878
907
  }
908
+ } else if (getResolvedPurpose(answers) === "dioxus") {
909
+ defaultServices.push("dioxus");
879
910
  } else if (getResolvedPurpose(answers) === "roku") {
880
911
  defaultServices.push("roku");
881
912
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKtD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAkB7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,iBAchF;AAED,wBAAsB,iBAAiB,oBAStC;AAYD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAS,GAAG,gBAAgB,CAGvF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAmFpE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAkB5F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM;;;;;;EA0BrF;AAaD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,YAAY,mBAahE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,8BAgCnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,aAAa,iBAmHjE;AAMD,wBAAsB,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBA0G5E;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,UAAQ,QAmB3F;AAED,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,iBAmBlE;AAED,eAAO,MAAM,UAAU,EAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAGvH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,oBA8BlE;AAGD,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,aAAa;;IAoBpE;AACD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAwCnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,6CASnC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAU3E;AAID;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,oBASzD;AAGD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAelG;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,aAAa,iBAU7D;AA6DD,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,aAAa,iBAiC1E;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM;;;GAMzD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,2BASxD;AAoBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAYvE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKtD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAkB7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,iBAchF;AAED,wBAAsB,iBAAiB,oBAStC;AAYD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAS,GAAG,gBAAgB,CAGvF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAmFpE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAkB5F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM;;;;;;EA0BrF;AAaD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,YAAY,mBAahE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,8BAgCnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,aAAa,iBAwKjE;AAMD,wBAAsB,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBA0G5E;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,UAAQ,QAmB3F;AAED,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,iBAmBlE;AAED,eAAO,MAAM,UAAU,EAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAGvH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,oBA8BlE;AAGD,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,aAAa;;IAoBpE;AACD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAwCnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,6CASnC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAU3E;AAID;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,oBASzD;AAGD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAelG;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,aAAa,iBAU7D;AA6DD,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,aAAa,iBAiC1E;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM;;;GAMzD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,2BASxD;AAoBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAYvE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-wdio",
3
- "version": "9.32.0-alpha.6+3d8818a67",
3
+ "version": "9.32.0",
4
4
  "description": "Install and setup a WebdriverIO project with all its dependencies in a single run",
5
5
  "author": "WebdriverIO Team <mail@webdriver.io>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
@@ -77,5 +77,5 @@
77
77
  "publishConfig": {
78
78
  "access": "public"
79
79
  },
80
- "gitHead": "3d8818a67404f0b5d4b81eda877ffad1f4d317c0"
80
+ "gitHead": "5c2a318d9a5e8424a2f2de95df9374b89bda7936"
81
81
  }