webdriver 9.23.0 → 9.23.1

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 CHANGED
@@ -1055,6 +1055,25 @@ var BidiHandler = class extends BidiCore {
1055
1055
  // src/utils.ts
1056
1056
  var log2 = logger2("webdriver");
1057
1057
  var deepmerge = deepmergeCustom({ mergeArrays: false });
1058
+ function deepEqual(a, b) {
1059
+ if (a === b) {
1060
+ return true;
1061
+ }
1062
+ if (typeof a !== "object" || a === null || typeof b !== "object" || b === null) {
1063
+ return false;
1064
+ }
1065
+ const keysA = Object.keys(a);
1066
+ const keysB = Object.keys(b);
1067
+ if (keysA.length !== keysB.length) {
1068
+ return false;
1069
+ }
1070
+ for (const key of keysA) {
1071
+ if (!keysB.includes(key) || !deepEqual(a[key], b[key])) {
1072
+ return false;
1073
+ }
1074
+ }
1075
+ return true;
1076
+ }
1058
1077
  var BROWSER_DRIVER_ERRORS = [
1059
1078
  "unknown command: wd/hub/session",
1060
1079
  // chromedriver
@@ -1080,6 +1099,29 @@ async function startWebDriverSession(params) {
1080
1099
  capabilities.alwaysMatch.unhandledPromptBehavior = "ignore";
1081
1100
  }
1082
1101
  validateCapabilities(capabilities.alwaysMatch);
1102
+ const keysToNormalize = Object.keys(capabilities.alwaysMatch);
1103
+ if (capabilities.firstMatch) {
1104
+ for (const key of keysToNormalize) {
1105
+ const alwaysVal = capabilities.alwaysMatch[key];
1106
+ const hasConflict = capabilities.firstMatch.some(
1107
+ (match) => key in match && !deepEqual(match[key], alwaysVal)
1108
+ );
1109
+ if (hasConflict) {
1110
+ delete capabilities.alwaysMatch[key];
1111
+ capabilities.firstMatch.forEach((match) => {
1112
+ if (!(key in match)) {
1113
+ match[key] = alwaysVal;
1114
+ }
1115
+ });
1116
+ } else {
1117
+ capabilities.firstMatch.forEach((match) => {
1118
+ if (key in match) {
1119
+ delete match[key];
1120
+ }
1121
+ });
1122
+ }
1123
+ }
1124
+ }
1083
1125
  const sessionRequest = new environment.value.Request(
1084
1126
  "POST",
1085
1127
  "/session",
@@ -1796,7 +1838,7 @@ var WebDriverResponseError = class _WebDriverResponseError extends WebDriverErro
1796
1838
  // package.json
1797
1839
  var package_default = {
1798
1840
  name: "webdriver",
1799
- version: "9.22.0",
1841
+ version: "9.23.0",
1800
1842
  description: "A Node.js bindings implementation for the W3C WebDriver and Mobile JSONWire Protocol",
1801
1843
  author: "Christian Bromann <mail@bromann.dev>",
1802
1844
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/webdriver",
package/build/node.js CHANGED
@@ -1027,6 +1027,25 @@ var BidiHandler = class extends BidiCore {
1027
1027
  // src/utils.ts
1028
1028
  var log2 = logger2("webdriver");
1029
1029
  var deepmerge = deepmergeCustom({ mergeArrays: false });
1030
+ function deepEqual(a, b) {
1031
+ if (a === b) {
1032
+ return true;
1033
+ }
1034
+ if (typeof a !== "object" || a === null || typeof b !== "object" || b === null) {
1035
+ return false;
1036
+ }
1037
+ const keysA = Object.keys(a);
1038
+ const keysB = Object.keys(b);
1039
+ if (keysA.length !== keysB.length) {
1040
+ return false;
1041
+ }
1042
+ for (const key of keysA) {
1043
+ if (!keysB.includes(key) || !deepEqual(a[key], b[key])) {
1044
+ return false;
1045
+ }
1046
+ }
1047
+ return true;
1048
+ }
1030
1049
  var BROWSER_DRIVER_ERRORS = [
1031
1050
  "unknown command: wd/hub/session",
1032
1051
  // chromedriver
@@ -1052,6 +1071,29 @@ async function startWebDriverSession(params) {
1052
1071
  capabilities.alwaysMatch.unhandledPromptBehavior = "ignore";
1053
1072
  }
1054
1073
  validateCapabilities(capabilities.alwaysMatch);
1074
+ const keysToNormalize = Object.keys(capabilities.alwaysMatch);
1075
+ if (capabilities.firstMatch) {
1076
+ for (const key of keysToNormalize) {
1077
+ const alwaysVal = capabilities.alwaysMatch[key];
1078
+ const hasConflict = capabilities.firstMatch.some(
1079
+ (match) => key in match && !deepEqual(match[key], alwaysVal)
1080
+ );
1081
+ if (hasConflict) {
1082
+ delete capabilities.alwaysMatch[key];
1083
+ capabilities.firstMatch.forEach((match) => {
1084
+ if (!(key in match)) {
1085
+ match[key] = alwaysVal;
1086
+ }
1087
+ });
1088
+ } else {
1089
+ capabilities.firstMatch.forEach((match) => {
1090
+ if (key in match) {
1091
+ delete match[key];
1092
+ }
1093
+ });
1094
+ }
1095
+ }
1096
+ }
1055
1097
  const sessionRequest = new environment.value.Request(
1056
1098
  "POST",
1057
1099
  "/session",
@@ -1727,7 +1769,7 @@ var WebDriverResponseError = class _WebDriverResponseError extends WebDriverErro
1727
1769
  // package.json
1728
1770
  var package_default = {
1729
1771
  name: "webdriver",
1730
- version: "9.22.0",
1772
+ version: "9.23.0",
1731
1773
  description: "A Node.js bindings implementation for the W3C WebDriver and Mobile JSONWire Protocol",
1732
1774
  author: "Christian Bromann <mail@bromann.dev>",
1733
1775
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/webdriver",
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/C,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,iBAAiB,CAAA;AAMhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAM1C,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAoB/G;;GAEG;AACH,wBAAsB,qBAAqB,CAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAA;CAAE,CAAC,CAgEzI;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAE,YAAY,EAAE,WAAW,CAAC,YAAY,QAiC3E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,WAkExE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,sCAiD7H;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,qBAAqB,CAuBpM;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,QAgBhD;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,kBAAkB,EAAE,SAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,CAAM,WAmD/F,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,OAAc,EACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,qBAAqB,CA6CvB;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,QAWtE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;;;;EA8BhI"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/C,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,iBAAiB,CAAA;AAMhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAM1C,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAwC/G;;GAEG;AACH,wBAAsB,qBAAqB,CAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAA;CAAE,CAAC,CAuGzI;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAE,YAAY,EAAE,WAAW,CAAC,YAAY,QAiC3E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,WAkExE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,sCAiD7H;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,qBAAqB,CAuBpM;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,QAgBhD;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,kBAAkB,EAAE,SAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,CAAM,WAmD/F,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,OAAc,EACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,qBAAqB,CA6CvB;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,QAWtE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;;;;EA8BhI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webdriver",
3
- "version": "9.23.0",
3
+ "version": "9.23.1",
4
4
  "description": "A Node.js bindings implementation for the W3C WebDriver and Mobile JSONWire Protocol",
5
5
  "author": "Christian Bromann <mail@bromann.dev>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/webdriver",
@@ -38,15 +38,15 @@
38
38
  "dependencies": {
39
39
  "@types/node": "^20.1.0",
40
40
  "@types/ws": "^8.5.3",
41
- "@wdio/config": "9.23.0",
41
+ "@wdio/config": "9.23.1",
42
42
  "@wdio/logger": "9.18.0",
43
- "@wdio/protocols": "9.16.2",
44
- "@wdio/types": "9.20.0",
45
- "@wdio/utils": "9.23.0",
43
+ "@wdio/protocols": "9.23.1",
44
+ "@wdio/types": "9.23.1",
45
+ "@wdio/utils": "9.23.1",
46
46
  "deepmerge-ts": "^7.0.3",
47
47
  "https-proxy-agent": "^7.0.6",
48
48
  "undici": "^6.21.3",
49
49
  "ws": "^8.8.0"
50
50
  },
51
- "gitHead": "5b35e4e2b94e3ac5247ec2bf27f2f5e41ef00372"
51
+ "gitHead": "19ac2c1dd86f3bdd967bc6c22c5bcdd78907b988"
52
52
  }