@appium/base-driver 10.5.2 → 10.7.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.
- package/build/lib/basedriver/capabilities.d.ts +1 -1
- package/build/lib/basedriver/capabilities.d.ts.map +1 -1
- package/build/lib/basedriver/capabilities.js +58 -50
- package/build/lib/basedriver/capabilities.js.map +1 -1
- package/build/lib/basedriver/commands/bidi.d.ts.map +1 -1
- package/build/lib/basedriver/commands/bidi.js +10 -14
- package/build/lib/basedriver/commands/bidi.js.map +1 -1
- package/build/lib/basedriver/commands/event.d.ts.map +1 -1
- package/build/lib/basedriver/commands/event.js +4 -7
- package/build/lib/basedriver/commands/event.js.map +1 -1
- package/build/lib/basedriver/commands/execute.js +3 -6
- package/build/lib/basedriver/commands/execute.js.map +1 -1
- package/build/lib/basedriver/commands/find.d.ts.map +1 -1
- package/build/lib/basedriver/commands/find.js +2 -1
- package/build/lib/basedriver/commands/find.js.map +1 -1
- package/build/lib/basedriver/commands/log.d.ts.map +1 -1
- package/build/lib/basedriver/commands/log.js +1 -5
- package/build/lib/basedriver/commands/log.js.map +1 -1
- package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
- package/build/lib/basedriver/commands/timeout.js +9 -13
- package/build/lib/basedriver/commands/timeout.js.map +1 -1
- package/build/lib/basedriver/core.d.ts.map +1 -1
- package/build/lib/basedriver/core.js +17 -14
- package/build/lib/basedriver/core.js.map +1 -1
- package/build/lib/basedriver/device-settings.d.ts.map +1 -1
- package/build/lib/basedriver/device-settings.js +3 -7
- package/build/lib/basedriver/device-settings.js.map +1 -1
- package/build/lib/basedriver/driver.d.ts.map +1 -1
- package/build/lib/basedriver/driver.js +34 -38
- package/build/lib/basedriver/driver.js.map +1 -1
- package/build/lib/basedriver/extension-core.d.ts +4 -1
- package/build/lib/basedriver/extension-core.d.ts.map +1 -1
- package/build/lib/basedriver/extension-core.js +37 -13
- package/build/lib/basedriver/extension-core.js.map +1 -1
- package/build/lib/basedriver/helpers.d.ts.map +1 -1
- package/build/lib/basedriver/helpers.js +47 -33
- package/build/lib/basedriver/helpers.js.map +1 -1
- package/build/lib/basedriver/ipc.d.ts +36 -0
- package/build/lib/basedriver/ipc.d.ts.map +1 -0
- package/build/lib/basedriver/ipc.js +157 -0
- package/build/lib/basedriver/ipc.js.map +1 -0
- package/build/lib/basedriver/validation.d.ts.map +1 -1
- package/build/lib/basedriver/validation.js +27 -29
- package/build/lib/basedriver/validation.js.map +1 -1
- package/build/lib/express/express-logging.d.ts +0 -1
- package/build/lib/express/express-logging.d.ts.map +1 -1
- package/build/lib/express/express-logging.js +11 -11
- package/build/lib/express/express-logging.js.map +1 -1
- package/build/lib/express/idempotency.js +3 -6
- package/build/lib/express/idempotency.js.map +1 -1
- package/build/lib/express/middleware.d.ts.map +1 -1
- package/build/lib/express/middleware.js +6 -10
- package/build/lib/express/middleware.js.map +1 -1
- package/build/lib/express/server.d.ts +1 -1
- package/build/lib/express/server.d.ts.map +1 -1
- package/build/lib/express/server.js +82 -73
- package/build/lib/express/server.js.map +1 -1
- package/build/lib/express/websocket.d.ts.map +1 -1
- package/build/lib/express/websocket.js +6 -9
- package/build/lib/express/websocket.js.map +1 -1
- package/build/lib/helpers/capabilities.d.ts.map +1 -1
- package/build/lib/helpers/capabilities.js +14 -17
- package/build/lib/helpers/capabilities.js.map +1 -1
- package/build/lib/helpers/extension-command-name.js +2 -5
- package/build/lib/helpers/extension-command-name.js.map +1 -1
- package/build/lib/helpers/levenshtein-match.d.ts.map +1 -1
- package/build/lib/helpers/levenshtein-match.js +6 -7
- package/build/lib/helpers/levenshtein-match.js.map +1 -1
- package/build/lib/index.d.ts +2 -1
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/index.js +6 -16
- package/build/lib/index.js.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.js +21 -18
- package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
- package/build/lib/jsonwp-proxy/proxy-request.d.ts +2 -2
- package/build/lib/jsonwp-proxy/proxy-request.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/proxy-request.js +25 -21
- package/build/lib/jsonwp-proxy/proxy-request.js.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.js +45 -36
- package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
- package/build/lib/protocol/errors.d.ts.map +1 -1
- package/build/lib/protocol/errors.js +33 -37
- package/build/lib/protocol/errors.js.map +1 -1
- package/build/lib/protocol/helpers.d.ts.map +1 -1
- package/build/lib/protocol/helpers.js +9 -8
- package/build/lib/protocol/helpers.js.map +1 -1
- package/build/lib/protocol/protocol.d.ts +1 -1
- package/build/lib/protocol/protocol.d.ts.map +1 -1
- package/build/lib/protocol/protocol.js +73 -61
- package/build/lib/protocol/protocol.js.map +1 -1
- package/build/lib/protocol/routes.d.ts +1 -1
- package/build/lib/protocol/routes.d.ts.map +1 -1
- package/build/lib/protocol/routes.js +16 -17
- package/build/lib/protocol/routes.js.map +1 -1
- package/build/lib/protocol/validators.d.ts.map +1 -1
- package/build/lib/protocol/validators.js +1 -5
- package/build/lib/protocol/validators.js.map +1 -1
- package/build/lib/test-pages/crash.d.ts.map +1 -0
- package/build/lib/test-pages/crash.js.map +1 -0
- package/build/lib/test-pages/env.d.ts +5 -0
- package/build/lib/test-pages/env.d.ts.map +1 -0
- package/build/lib/test-pages/env.js +12 -0
- package/build/lib/test-pages/env.js.map +1 -0
- package/build/lib/{express/static.d.ts → test-pages/handlers.d.ts} +1 -2
- package/build/lib/test-pages/handlers.d.ts.map +1 -0
- package/build/lib/{express/static.js → test-pages/handlers.js} +9 -12
- package/build/lib/test-pages/handlers.js.map +1 -0
- package/build/lib/test-pages/index.d.ts +6 -0
- package/build/lib/test-pages/index.d.ts.map +1 -0
- package/build/lib/test-pages/index.js +35 -0
- package/build/lib/test-pages/index.js.map +1 -0
- package/build/lib/test-pages/static-dir.d.ts +8 -0
- package/build/lib/test-pages/static-dir.d.ts.map +1 -0
- package/build/lib/test-pages/static-dir.js +24 -0
- package/build/lib/test-pages/static-dir.js.map +1 -0
- package/build/lib/test-pages/template.d.ts +3 -0
- package/build/lib/test-pages/template.d.ts.map +1 -0
- package/build/lib/test-pages/template.js +19 -0
- package/build/lib/test-pages/template.js.map +1 -0
- package/build/lib/utils.d.ts +14 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +55 -0
- package/build/lib/utils.js.map +1 -0
- package/lib/basedriver/capabilities.ts +126 -115
- package/lib/basedriver/commands/bidi.ts +11 -11
- package/lib/basedriver/commands/event.ts +17 -11
- package/lib/basedriver/commands/execute.ts +15 -12
- package/lib/basedriver/commands/find.ts +20 -12
- package/lib/basedriver/commands/log.ts +4 -3
- package/lib/basedriver/commands/timeout.ts +22 -14
- package/lib/basedriver/core.ts +26 -26
- package/lib/basedriver/device-settings.ts +7 -12
- package/lib/basedriver/driver.ts +62 -50
- package/lib/basedriver/extension-core.ts +60 -18
- package/lib/basedriver/helpers.ts +81 -52
- package/lib/basedriver/ipc.ts +198 -0
- package/lib/basedriver/validation.ts +37 -30
- package/lib/express/express-logging.ts +16 -20
- package/lib/express/idempotency.ts +9 -9
- package/lib/express/middleware.ts +14 -18
- package/lib/express/server.ts +118 -120
- package/lib/express/websocket.ts +11 -15
- package/lib/helpers/capabilities.ts +21 -16
- package/lib/helpers/extension-command-name.ts +3 -3
- package/lib/helpers/levenshtein-match.ts +20 -14
- package/lib/index.js +3 -12
- package/lib/jsonwp-proxy/protocol-converter.ts +58 -35
- package/lib/jsonwp-proxy/proxy-request.ts +26 -26
- package/lib/jsonwp-proxy/proxy.ts +74 -75
- package/lib/protocol/errors.ts +69 -88
- package/lib/protocol/helpers.ts +9 -5
- package/lib/protocol/protocol.ts +149 -107
- package/lib/protocol/routes.ts +17 -17
- package/lib/protocol/validators.ts +1 -3
- package/lib/test-pages/env.ts +9 -0
- package/lib/{express/static.ts → test-pages/handlers.ts} +10 -22
- package/lib/test-pages/index.ts +34 -0
- package/lib/test-pages/static-dir.ts +19 -0
- package/lib/test-pages/template.ts +17 -0
- package/lib/utils.ts +65 -0
- package/package.json +10 -13
- package/tsconfig.json +1 -0
- package/build/lib/express/crash.d.ts.map +0 -1
- package/build/lib/express/crash.js.map +0 -1
- package/build/lib/express/static.d.ts.map +0 -1
- package/build/lib/express/static.js.map +0 -1
- /package/build/lib/{express → test-pages}/crash.d.ts +0 -0
- /package/build/lib/{express → test-pages}/crash.js +0 -0
- /package/lib/{express → test-pages}/crash.ts +0 -0
- /package/{static → test-fixtures/static}/appium.png +0 -0
- /package/{static → test-fixtures/static}/favicon.ico +0 -0
- /package/{static → test-fixtures/static}/js/jquery.min.js +0 -0
- /package/{static → test-fixtures/static}/test/frameset.html +0 -0
- /package/{static → test-fixtures/static}/test/guinea-pig-app-banner.html +0 -0
- /package/{static → test-fixtures/static}/test/guinea-pig-scrollable.html +0 -0
- /package/{static → test-fixtures/static}/test/guinea-pig.html +0 -0
- /package/{static → test-fixtures/static}/test/guinea-pig2.html +0 -0
- /package/{static → test-fixtures/static}/test/guinea-pig3.html +0 -0
- /package/{static → test-fixtures/static}/test/guinea-pig4.html +0 -0
- /package/{static → test-fixtures/static}/test/guinea-pig5.html +0 -0
- /package/{static → test-fixtures/static}/test/iframes.html +0 -0
- /package/{static → test-fixtures/static}/test/shadow-dom.html +0 -0
- /package/{static → test-fixtures/static}/test/subframe1.html +0 -0
- /package/{static → test-fixtures/static}/test/subframe2.html +0 -0
- /package/{static → test-fixtures/static}/test/subframe3.html +0 -0
- /package/{static → test-fixtures/static}/test/touch.html +0 -0
- /package/{static → test-fixtures/static}/test/welcome.html +0 -0
|
@@ -36,7 +36,7 @@ export declare function isStandardCap(cap: string): boolean;
|
|
|
36
36
|
/**
|
|
37
37
|
* Get an array of all the unprefixed caps that are being used in 'alwaysMatch' and all of the 'firstMatch' object
|
|
38
38
|
*/
|
|
39
|
-
export declare function findNonPrefixedCaps<C extends Constraints>({ alwaysMatch, firstMatch }: W3CCapabilities<C>): string[];
|
|
39
|
+
export declare function findNonPrefixedCaps<C extends Constraints>({ alwaysMatch, firstMatch, }: W3CCapabilities<C>): string[];
|
|
40
40
|
/**
|
|
41
41
|
* Parse capabilities
|
|
42
42
|
* @see https://www.w3.org/TR/webdriver/#processing-capabilities
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAc,cAAc,EAAC,MAAM,WAAW,CAAC;AAO3D,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,wBAAwB,mBAAmC,CAAC;AAEzE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,IAAI;IAC9C,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,uBAAuB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4CAA4C;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,WAAW,EACrB,OAAO,SAAS,YAAY,CAAC,CAAC,CAAC,EAC/B,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,EAEjC,OAAO,GAAE,OAAO,GAAG,SAAyB,EAC5C,SAAS,GAAE,SAAS,GAAG,SAA2B,GACjD,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAkBpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,EAChD,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,WAAW,GAAE,CAAC,GAAG,SAAmB,EACpC,IAAI,GAAE,gBAAgB,GAAG,SAAc,GACtC,YAAY,CAAC,CAAC,CAAC,CA2CjB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,2CAezB,CAAC;AAIF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAuDD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,EAAE,EACzD,WAAgB,EAChB,UAAe,GAChB,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAU/B;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAC7C,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EACxB,WAAW,GAAE,CAAC,GAAG,SAAmB,EACpC,kBAAkB,GAAE,OAAO,GAAG,SAAgB,GAC7C,UAAU,CAAC,CAAC,CAAC,CAgGf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,SAAS,eAAe,CAAC,CAAC,CAAC,EAC3F,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,CAAC,GAAG,SAAmB,EACpC,kBAAkB,GAAE,OAAO,GAAG,SAAgB,GAC7C,YAAY,CAAC,CAAC,CAAC,CAmBjB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,WAAW,EACjE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,GACrB,cAAc,CAAC,CAAC,CAAC,CAyDnB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,EACxD,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,GAC/B,eAAe,CAAC,CAAC,CAAC,CAcpB"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.STANDARD_CAPS = exports.PREFIXED_APPIUM_OPTS_CAP = exports.APPIUM_VENDOR_PREFIX = void 0;
|
|
7
4
|
exports.mergeCaps = mergeCaps;
|
|
@@ -13,9 +10,9 @@ exports.parseCaps = parseCaps;
|
|
|
13
10
|
exports.processCapabilities = processCapabilities;
|
|
14
11
|
exports.promoteAppiumOptionsForObject = promoteAppiumOptionsForObject;
|
|
15
12
|
exports.promoteAppiumOptions = promoteAppiumOptions;
|
|
16
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
17
13
|
const validation_1 = require("./validation");
|
|
18
14
|
const support_1 = require("@appium/support");
|
|
15
|
+
const utils_1 = require("../utils");
|
|
19
16
|
const logger_1 = require("./logger");
|
|
20
17
|
const errors_1 = require("../protocol/errors");
|
|
21
18
|
exports.APPIUM_VENDOR_PREFIX = 'appium:';
|
|
@@ -26,12 +23,12 @@ exports.PREFIXED_APPIUM_OPTS_CAP = `${exports.APPIUM_VENDOR_PREFIX}options`;
|
|
|
26
23
|
* @see https://www.w3.org/TR/webdriver/#dfn-merging-capabilities)
|
|
27
24
|
*/
|
|
28
25
|
function mergeCaps(primary = {}, secondary = {}) {
|
|
29
|
-
const result =
|
|
26
|
+
const result = {
|
|
30
27
|
...primary,
|
|
31
|
-
}
|
|
28
|
+
};
|
|
32
29
|
for (const [name, value] of Object.entries(secondary)) {
|
|
33
30
|
// Overwriting is not allowed. Primary and secondary must have different properties (w3c rule 4.4)
|
|
34
|
-
if (
|
|
31
|
+
if (primary[name] !== undefined) {
|
|
35
32
|
throw new errors_1.errors.InvalidArgumentError(`property '${name}' should not exist on both primary (${JSON.stringify(primary)}) and secondary (${JSON.stringify(secondary)}) object`);
|
|
36
33
|
}
|
|
37
34
|
result[name] = value;
|
|
@@ -43,24 +40,29 @@ function mergeCaps(primary = {}, secondary = {}) {
|
|
|
43
40
|
*/
|
|
44
41
|
function validateCaps(caps, constraints = {}, opts = {}) {
|
|
45
42
|
const { skipPresenceConstraint } = opts;
|
|
46
|
-
if (!
|
|
43
|
+
if (!support_1.util.isPlainObject(caps)) {
|
|
47
44
|
throw new errors_1.errors.InvalidArgumentError(`must be a JSON object`);
|
|
48
45
|
}
|
|
49
46
|
// Remove the 'presence' constraint if we're not checking for it
|
|
50
|
-
constraints = (
|
|
51
|
-
|
|
52
|
-
(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
constraints = Object.fromEntries(Object.entries(constraints ?? {}).map(([key, constraint]) => {
|
|
48
|
+
if (skipPresenceConstraint) {
|
|
49
|
+
return [key, (0, utils_1.omit)(constraint, 'presence')];
|
|
50
|
+
}
|
|
51
|
+
if (constraint.presence === true) {
|
|
52
|
+
return [
|
|
53
|
+
key,
|
|
54
|
+
{
|
|
55
|
+
...(0, utils_1.omit)(constraint, 'presence'),
|
|
56
|
+
presence: { allowEmpty: false },
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
return [key, constraint];
|
|
61
|
+
}));
|
|
62
|
+
const validationErrors = validation_1.validator.validate((0, utils_1.pickBy)(caps, (value) => support_1.util.hasValue(value)), constraints);
|
|
61
63
|
if (validationErrors) {
|
|
62
64
|
const message = [];
|
|
63
|
-
for (const [attribute, reasons] of
|
|
65
|
+
for (const [attribute, reasons] of Object.entries(validationErrors)) {
|
|
64
66
|
for (const reason of reasons) {
|
|
65
67
|
message.push(`'${attribute}' ${reason}`);
|
|
66
68
|
}
|
|
@@ -74,7 +76,7 @@ function validateCaps(caps, constraints = {}, opts = {}) {
|
|
|
74
76
|
* Standard, non-prefixed capabilities
|
|
75
77
|
* @see https://www.w3.org/TR/webdriver2/#dfn-table-of-standard-capabilities)
|
|
76
78
|
*/
|
|
77
|
-
exports.STANDARD_CAPS = Object.freeze(new Set(
|
|
79
|
+
exports.STANDARD_CAPS = Object.freeze(new Set([
|
|
78
80
|
'browserName',
|
|
79
81
|
'browserVersion',
|
|
80
82
|
'platformName',
|
|
@@ -87,7 +89,7 @@ exports.STANDARD_CAPS = Object.freeze(new Set(([
|
|
|
87
89
|
'unhandledPromptBehavior',
|
|
88
90
|
'userAgent',
|
|
89
91
|
'webSocketUrl',
|
|
90
|
-
]))
|
|
92
|
+
]));
|
|
91
93
|
const STANDARD_CAPS_LOWER = new Set([...exports.STANDARD_CAPS].map((cap) => cap.toLowerCase()));
|
|
92
94
|
/**
|
|
93
95
|
* @param cap - Capability name (any casing)
|
|
@@ -104,9 +106,11 @@ function isStandardCap(cap) {
|
|
|
104
106
|
function stripAppiumPrefixes(caps) {
|
|
105
107
|
// split into prefixed and non-prefixed.
|
|
106
108
|
// non-prefixed should be standard caps at this point
|
|
107
|
-
const
|
|
109
|
+
const capKeys = Object.keys(caps);
|
|
110
|
+
const prefixedCaps = capKeys.filter((cap) => String(cap).startsWith(exports.APPIUM_VENDOR_PREFIX));
|
|
111
|
+
const nonPrefixedCaps = capKeys.filter((cap) => !String(cap).startsWith(exports.APPIUM_VENDOR_PREFIX));
|
|
108
112
|
// initialize this with the k/v pairs of the non-prefixed caps
|
|
109
|
-
const strippedCaps = (
|
|
113
|
+
const strippedCaps = Object.fromEntries(nonPrefixedCaps.map((cap) => [cap, caps[cap]]));
|
|
110
114
|
const badPrefixedCaps = [];
|
|
111
115
|
// Strip out the 'appium:' prefix
|
|
112
116
|
for (const prefixedCap of prefixedCaps) {
|
|
@@ -114,7 +118,7 @@ function stripAppiumPrefixes(caps) {
|
|
|
114
118
|
// If it's standard capability that was prefixed, add it to an array of incorrectly prefixed capabilities
|
|
115
119
|
if (isStandardCap(strippedCapName)) {
|
|
116
120
|
badPrefixedCaps.push(strippedCapName);
|
|
117
|
-
if (
|
|
121
|
+
if (strippedCaps[strippedCapName] == null) {
|
|
118
122
|
strippedCaps[strippedCapName] = caps[prefixedCap];
|
|
119
123
|
}
|
|
120
124
|
else {
|
|
@@ -135,14 +139,11 @@ function stripAppiumPrefixes(caps) {
|
|
|
135
139
|
/**
|
|
136
140
|
* Get an array of all the unprefixed caps that are being used in 'alwaysMatch' and all of the 'firstMatch' object
|
|
137
141
|
*/
|
|
138
|
-
function findNonPrefixedCaps({ alwaysMatch = {}, firstMatch = [] }) {
|
|
139
|
-
return
|
|
140
|
-
.reduce((unprefixedCaps, caps) => [
|
|
142
|
+
function findNonPrefixedCaps({ alwaysMatch = {}, firstMatch = [], }) {
|
|
143
|
+
return support_1.util.uniq([alwaysMatch, ...firstMatch].reduce((unprefixedCaps, caps) => [
|
|
141
144
|
...unprefixedCaps,
|
|
142
145
|
...Object.keys(caps).filter((cap) => !cap.includes(':') && !isStandardCap(cap)),
|
|
143
|
-
], [])
|
|
144
|
-
.uniq()
|
|
145
|
-
.value();
|
|
146
|
+
], []));
|
|
146
147
|
}
|
|
147
148
|
/**
|
|
148
149
|
* Parse capabilities
|
|
@@ -150,7 +151,7 @@ function findNonPrefixedCaps({ alwaysMatch = {}, firstMatch = [] }) {
|
|
|
150
151
|
*/
|
|
151
152
|
function parseCaps(caps, constraints = {}, shouldValidateCaps = true) {
|
|
152
153
|
// If capabilities request is not an object, return error (#1.1)
|
|
153
|
-
if (!
|
|
154
|
+
if (!support_1.util.isPlainObject(caps)) {
|
|
154
155
|
throw new errors_1.errors.InvalidArgumentError('The capabilities argument was not valid for the following reason(s): "capabilities" must be a JSON object.');
|
|
155
156
|
}
|
|
156
157
|
// Let 'requiredCaps' be property named 'alwaysMatch' from capabilities request (#2)
|
|
@@ -159,7 +160,7 @@ function parseCaps(caps, constraints = {}, shouldValidateCaps = true) {
|
|
|
159
160
|
firstMatch: allFirstMatchCaps = [{}], // If 'firstMatch' is undefined set it to a singleton list with one empty object (#3.1)
|
|
160
161
|
} = caps;
|
|
161
162
|
// Reject 'firstMatch' argument if it's not an array (#3.2)
|
|
162
|
-
if (!
|
|
163
|
+
if (!Array.isArray(allFirstMatchCaps)) {
|
|
163
164
|
throw new errors_1.errors.InvalidArgumentError('The capabilities.firstMatch argument was not valid for the following reason(s): "capabilities.firstMatch" must be a JSON array or undefined');
|
|
164
165
|
}
|
|
165
166
|
// If an empty array as provided, we'll be forgiving and make it an array of one empty object
|
|
@@ -171,7 +172,7 @@ function parseCaps(caps, constraints = {}, shouldValidateCaps = true) {
|
|
|
171
172
|
}
|
|
172
173
|
// Check for non-prefixed, non-standard capabilities and log warnings if they are found
|
|
173
174
|
const nonPrefixedCaps = findNonPrefixedCaps(caps);
|
|
174
|
-
if (!
|
|
175
|
+
if (!support_1.util.isEmpty(nonPrefixedCaps)) {
|
|
175
176
|
throw new errors_1.errors.InvalidArgumentError(`All non-standard capabilities should have a vendor prefix. The following capabilities did not have one: ${nonPrefixedCaps}`);
|
|
176
177
|
}
|
|
177
178
|
// Strip out the 'appium:' prefix from all
|
|
@@ -185,10 +186,11 @@ function parseCaps(caps, constraints = {}, shouldValidateCaps = true) {
|
|
|
185
186
|
}
|
|
186
187
|
// Remove the 'presence' constraint for any keys that are already present in 'requiredCaps'
|
|
187
188
|
// since we know that this constraint has already passed
|
|
188
|
-
const filteredConstraints =
|
|
189
|
+
const filteredConstraints = Object.fromEntries(Object.entries(constraints ?? {}).filter(([key]) => !(key in strippedRequiredCaps)));
|
|
189
190
|
// Validate all of the first match capabilities and return an array with only the valid caps (see spec #5)
|
|
190
191
|
const validationErrors = [];
|
|
191
|
-
const validatedFirstMatchCaps =
|
|
192
|
+
const validatedFirstMatchCaps = strippedAllFirstMatchCaps
|
|
193
|
+
.map((firstMatchCaps) => {
|
|
192
194
|
try {
|
|
193
195
|
// Validate firstMatch caps
|
|
194
196
|
return shouldValidateCaps
|
|
@@ -198,7 +200,8 @@ function parseCaps(caps, constraints = {}, shouldValidateCaps = true) {
|
|
|
198
200
|
catch (e) {
|
|
199
201
|
validationErrors.push(e.message);
|
|
200
202
|
}
|
|
201
|
-
})
|
|
203
|
+
})
|
|
204
|
+
.filter(Boolean);
|
|
202
205
|
/**
|
|
203
206
|
* Try to merge requiredCaps with first match capabilities, break once it finds its first match
|
|
204
207
|
* (see spec #6)
|
|
@@ -232,7 +235,7 @@ function processCapabilities(w3cCaps, constraints = {}, shouldValidateCaps = tru
|
|
|
232
235
|
const { matchedCaps, validationErrors } = parseCaps(w3cCaps, constraints, shouldValidateCaps);
|
|
233
236
|
// If we found an error throw an exception
|
|
234
237
|
if (!support_1.util.hasValue(matchedCaps)) {
|
|
235
|
-
if (
|
|
238
|
+
if (Array.isArray(w3cCaps.firstMatch) && w3cCaps.firstMatch.length > 1) {
|
|
236
239
|
// If there was more than one 'firstMatch' cap, indicate that we couldn't find a matching capabilities set and show all the errors
|
|
237
240
|
throw new errors_1.errors.InvalidArgumentError(`Could not find matching capabilities from ${JSON.stringify(w3cCaps)}:\n ${validationErrors.join('\n')}`);
|
|
238
241
|
}
|
|
@@ -252,10 +255,10 @@ function promoteAppiumOptionsForObject(obj) {
|
|
|
252
255
|
if (!appiumOptions) {
|
|
253
256
|
return obj;
|
|
254
257
|
}
|
|
255
|
-
if (!
|
|
258
|
+
if (!support_1.util.isPlainObject(appiumOptions)) {
|
|
256
259
|
throw new errors_1.errors.SessionNotCreatedError(`The ${exports.PREFIXED_APPIUM_OPTS_CAP} capability must be an object`);
|
|
257
260
|
}
|
|
258
|
-
if (
|
|
261
|
+
if (support_1.util.isEmpty(appiumOptions)) {
|
|
259
262
|
return obj;
|
|
260
263
|
}
|
|
261
264
|
logger_1.log.debug(`Found ${exports.PREFIXED_APPIUM_OPTS_CAP} capability present; will promote items inside to caps`);
|
|
@@ -264,7 +267,7 @@ function promoteAppiumOptionsForObject(obj) {
|
|
|
264
267
|
*/
|
|
265
268
|
const shouldAddVendorPrefix = (capName) => !capName.startsWith(exports.APPIUM_VENDOR_PREFIX);
|
|
266
269
|
const verifyIfAcceptable = (capName) => {
|
|
267
|
-
if (
|
|
270
|
+
if (typeof capName !== 'string') {
|
|
268
271
|
throw new errors_1.errors.SessionNotCreatedError(`Capability names in ${exports.PREFIXED_APPIUM_OPTS_CAP} must be strings. '${capName}' is unexpected`);
|
|
269
272
|
}
|
|
270
273
|
if (isStandardCap(capName)) {
|
|
@@ -272,18 +275,23 @@ function promoteAppiumOptionsForObject(obj) {
|
|
|
272
275
|
}
|
|
273
276
|
return capName;
|
|
274
277
|
};
|
|
275
|
-
const preprocessedOptions =
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
278
|
+
const preprocessedOptions = {};
|
|
279
|
+
for (const [key, value] of Object.entries(appiumOptions)) {
|
|
280
|
+
const verifiedKey = verifyIfAcceptable(key);
|
|
281
|
+
const finalKey = shouldAddVendorPrefix(verifiedKey)
|
|
282
|
+
? `${exports.APPIUM_VENDOR_PREFIX}${verifiedKey}`
|
|
283
|
+
: verifiedKey;
|
|
284
|
+
preprocessedOptions[finalKey] = value;
|
|
285
|
+
}
|
|
279
286
|
// warn if we are going to overwrite any keys on the base caps object
|
|
280
|
-
const overwrittenKeys =
|
|
287
|
+
const overwrittenKeys = Object.keys(obj).filter((key) => key in preprocessedOptions);
|
|
281
288
|
if (overwrittenKeys.length > 0) {
|
|
282
289
|
logger_1.log.warn(`Found capabilities inside ${exports.PREFIXED_APPIUM_OPTS_CAP} that will overwrite ` +
|
|
283
290
|
`capabilities at the top level: ${JSON.stringify(overwrittenKeys)}`);
|
|
284
291
|
}
|
|
285
|
-
|
|
286
|
-
|
|
292
|
+
const restObj = (0, utils_1.omit)(obj, exports.PREFIXED_APPIUM_OPTS_CAP);
|
|
293
|
+
return structuredClone({
|
|
294
|
+
...restObj,
|
|
287
295
|
...preprocessedOptions,
|
|
288
296
|
});
|
|
289
297
|
}
|
|
@@ -294,13 +302,13 @@ function promoteAppiumOptionsForObject(obj) {
|
|
|
294
302
|
function promoteAppiumOptions(originalCaps) {
|
|
295
303
|
const result = {};
|
|
296
304
|
const { alwaysMatch, firstMatch } = originalCaps;
|
|
297
|
-
if (
|
|
305
|
+
if (support_1.util.isPlainObject(alwaysMatch)) {
|
|
298
306
|
result.alwaysMatch = promoteAppiumOptionsForObject(alwaysMatch);
|
|
299
307
|
}
|
|
300
308
|
else if ('alwaysMatch' in originalCaps) {
|
|
301
309
|
result.alwaysMatch = alwaysMatch;
|
|
302
310
|
}
|
|
303
|
-
if (
|
|
311
|
+
if (Array.isArray(firstMatch)) {
|
|
304
312
|
result.firstMatch = firstMatch.map(promoteAppiumOptionsForObject);
|
|
305
313
|
}
|
|
306
314
|
else if ('firstMatch' in originalCaps) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../lib/basedriver/capabilities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../lib/basedriver/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bidi.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/bidi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bidi.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/bidi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,WAAW,EAAgB,aAAa,EAAC,MAAM,eAAe,CAAC;AAI5E,OAAO,QAAQ,WAAW,CAAC;IAEzB,UAAU,UAAU,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,aAAa;KAAG;CACrE"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const support_1 = require("@appium/support");
|
|
6
4
|
const mixin_1 = require("./mixin");
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
5
|
const BidiCommands = {
|
|
9
6
|
async bidiSubscribe(events, contexts = ['']) {
|
|
10
7
|
for (const event of events) {
|
|
@@ -23,16 +20,15 @@ const BidiCommands = {
|
|
|
23
20
|
},
|
|
24
21
|
async bidiStatus() {
|
|
25
22
|
const result = await this.getStatus();
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
}
|
|
23
|
+
const base = support_1.util.isPlainObject(result) ? { ...result } : {};
|
|
24
|
+
return {
|
|
25
|
+
...base,
|
|
26
|
+
ready: 'ready' in base ? base.ready : true,
|
|
27
|
+
message: 'message' in base
|
|
28
|
+
? base.message
|
|
29
|
+
: `${this.constructor.name} is ready to accept commands`,
|
|
30
|
+
};
|
|
31
|
+
},
|
|
36
32
|
};
|
|
37
33
|
(0, mixin_1.mixin)(BidiCommands);
|
|
38
34
|
//# sourceMappingURL=bidi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bidi.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/bidi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bidi.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/bidi.ts"],"names":[],"mappings":";;AAAA,6CAAqC;AAGrC,mCAA8B;AAO9B,MAAM,YAAY,GAAkB;IAClC,KAAK,CAAC,aAAa,CAEjB,MAAgB,EAChB,WAAqB,CAAC,EAAE,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAEnB,MAAgB,EAChB,WAAqB,CAAC,EAAE,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,GAA4B,cAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO;YACL,GAAG,IAAI;YACP,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAiB,CAAC,CAAC,CAAC,IAAI;YACvD,OAAO,EACL,SAAS,IAAI,IAAI;gBACf,CAAC,CAAE,IAAI,CAAC,OAAkB;gBAC1B,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,8BAA8B;SAC7D,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,IAAA,aAAK,EAAC,YAAY,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAgB,cAAc,EAAC,MAAM,eAAe,CAAC;AAK7E,OAAO,QAAQ,WAAW,CAAC;IAEzB,UAAU,UAAU,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,cAAc;KAAG;CACtE"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
3
|
+
const support_1 = require("@appium/support");
|
|
7
4
|
const mixin_1 = require("./mixin");
|
|
8
5
|
const EventCommands = {
|
|
9
6
|
/**
|
|
@@ -23,11 +20,11 @@ const EventCommands = {
|
|
|
23
20
|
* @returns the event history log object
|
|
24
21
|
*/
|
|
25
22
|
async getLogEvents(type) {
|
|
26
|
-
if (
|
|
23
|
+
if (support_1.util.isEmpty(type)) {
|
|
27
24
|
return this.eventHistory;
|
|
28
25
|
}
|
|
29
|
-
const typeList =
|
|
30
|
-
return
|
|
26
|
+
const typeList = Array.isArray(type) ? type : [type];
|
|
27
|
+
return Object.entries(this.eventHistory).reduce((acc, [eventType, eventTimes]) => {
|
|
31
28
|
if (typeList.includes(eventType)) {
|
|
32
29
|
acc[eventType] = eventTimes;
|
|
33
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/event.ts"],"names":[],"mappings":";;AACA,6CAAqC;AAErC,mCAA8B;AAO9B,MAAM,aAAa,GAAmB;IACpC;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAElB,MAAc,EACd,KAAa;QAEb,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAEhB,IAAuB;QAEvB,IAAI,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAErD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;YAC/B,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;YAC9B,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACuB,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,IAAA,aAAK,EAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
3
|
+
const support_1 = require("@appium/support");
|
|
7
4
|
const protocol_1 = require("../../protocol");
|
|
8
5
|
const levenshtein_match_1 = require("../../helpers/levenshtein-match");
|
|
9
6
|
const mixin_1 = require("./mixin");
|
|
@@ -12,8 +9,8 @@ const ExecuteCommands = {
|
|
|
12
9
|
const Driver = this.constructor;
|
|
13
10
|
const commandMetadata = { ...Driver.executeMethodMap?.[script] };
|
|
14
11
|
if (!commandMetadata.command) {
|
|
15
|
-
const availableScripts =
|
|
16
|
-
if (
|
|
12
|
+
const availableScripts = Object.keys(Driver.executeMethodMap ?? {});
|
|
13
|
+
if (support_1.util.isEmpty(availableScripts)) {
|
|
17
14
|
throw new protocol_1.errors.UnsupportedOperationError(`Unsupported execute method '${script}'. ` +
|
|
18
15
|
`Make sure the installed ${Driver.name} is up-to-date. ` +
|
|
19
16
|
`The current driver version does not define any execute methods.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/execute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/execute.ts"],"names":[],"mappings":";;AAAA,6CAAqC;AACrC,6CAAmE;AASnE,uEAA0E;AAC1E,mCAA8B;AAQ9B,MAAM,eAAe,GAAG;IACtB,KAAK,CAAC,aAAa,CAEjB,MAAc,EACd,SAAgE;QAEhE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAqC,CAAC;QAC1D,MAAM,eAAe,GAAG,EAAC,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;YACpE,IAAI,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,iBAAM,CAAC,yBAAyB,CACxC,+BAA+B,MAAM,KAAK;oBACxC,2BAA2B,MAAM,CAAC,IAAI,kBAAkB;oBACxD,iEAAiE,CACpE,CAAC;YACJ,CAAC;YACD,MAAM,EAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAC,GAAG,IAAA,6CAAyB,EACnE,MAAM,EACN,gBAAgB,CACjB,CAAC;YACF,MAAM,IAAI,iBAAM,CAAC,yBAAyB,CACxC,CAAC,UAAU;gBACT,CAAC,CAAC,+BAA+B,MAAM,oBAAoB,UAAU,KAAK;gBAC1E,CAAC,CAAC,+BAA+B,MAAM,KAAK,CAAC;gBAC7C,2BAA2B,MAAM,CAAC,IAAI,kBAAkB;gBACxD,+DAA+D;gBAC/D,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,sCAA2B,EAAC,SAAkB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QACrF,MAAM,WAAW,GAAG,eAAe,CAAC,OAA8B,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAkB,CAAC;QACnD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;CACkB,CAAC;AAEtB,IAAA,aAAK,EAAC,eAAe,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,WAAW,EAAW,aAAa,EAAC,MAAM,eAAe,CAAC;AAKvE,OAAO,QAAQ,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,WAAW,EAAW,aAAa,EAAC,MAAM,eAAe,CAAC;AAKvE,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAU,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,aAAa;KAAG;CACrE"}
|
|
@@ -14,7 +14,8 @@ async function findElOrElsWithProcessing(strategy, selector, mult, context) {
|
|
|
14
14
|
catch (err) {
|
|
15
15
|
if (this.opts.printPageSourceOnFindFailure) {
|
|
16
16
|
const src = await this.getPageSource();
|
|
17
|
-
|
|
17
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
18
|
+
this.log.debug(`Error finding element${mult ? 's' : ''}: ${message}`);
|
|
18
19
|
this.log.debug(`Page source requested through 'printPageSourceOnFindFailure':`);
|
|
19
20
|
this.log.debug(src);
|
|
20
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/find.ts"],"names":[],"mappings":";;AAEA,6CAAsC;AAEtC,mCAA8B;
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/find.ts"],"names":[],"mappings":";;AAEA,6CAAsC;AAEtC,mCAA8B;AAoB9B,KAAK,UAAU,WAAW,CAExB,QAAgB,EAChB,QAAgB,EAChB,IAAa,EACb,OAAa;IAEb,MAAM,IAAI,iBAAM,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;AACxE,CAAC;AAgBD,KAAK,UAAU,yBAAyB,CAEtC,QAAgB,EAChB,QAAgB,EAChB,IAAa,EACb,OAAa;IAEb,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,6EAA6E;QAC7E,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAChF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,gCAAgC;QAChC,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAkB;IAClC,KAAK,CAAC,WAAW,CAEf,QAAgB,EAChB,QAAgB;QAEhB,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,YAAY,CAEhB,QAAgB,EAChB,QAAgB;QAEhB,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAE1B,QAAgB,EAChB,QAAgB,EAChB,SAAiB;QAEjB,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,uBAAuB,CAE3B,QAAgB,EAChB,QAAgB,EAChB,SAAiB;QAEjB,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACnF,CAAC;IAED,WAAW;IAEX,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,iBAAM,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;IACxE,CAAC;IAED,yBAAyB;CAC1B,CAAC;AAEF,IAAA,aAAK,EAAC,YAAY,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAU,YAAY,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAU,YAAY,EAAC,MAAM,eAAe,CAAC;AAIrE,OAAO,QAAQ,WAAW,CAAC;IAEzB,UAAU,UAAU,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,YAAY;KAAG;CACpE"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
7
3
|
const mixin_1 = require("./mixin");
|
|
8
4
|
const LogCommands = {
|
|
9
5
|
supportedLogTypes: {},
|
|
@@ -14,7 +10,7 @@ const LogCommands = {
|
|
|
14
10
|
async getLog(logType) {
|
|
15
11
|
this.log.debug(`Retrieving '${String(logType)}' logs`);
|
|
16
12
|
if (!(logType in this.supportedLogTypes)) {
|
|
17
|
-
const logsTypesWithDescriptions =
|
|
13
|
+
const logsTypesWithDescriptions = Object.fromEntries(Object.entries(this.supportedLogTypes).map(([key, value]) => [key, value.description]));
|
|
18
14
|
throw new Error(`Unsupported log type '${String(logType)}'. ` +
|
|
19
15
|
`Supported types: ${JSON.stringify(logsTypesWithDescriptions)}`);
|
|
20
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../lib/basedriver/commands/log.ts"],"names":[],"mappings":";;AAEA,mCAA8B;AAO9B,MAAM,WAAW,GAAiB;IAChC,iBAAiB,EAAE,EAAE;IAErB,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAyC,OAAe;QAClE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACzC,MAAM,yBAAyB,GAAG,MAAM,CAAC,WAAW,CAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CACvF,CAAC;YACF,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,CAAC,OAAO,CAAC,KAAK;gBAC3C,oBAAoB,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,CAClE,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;CACF,CAAC;AAEF,IAAA,aAAK,EAAC,WAAW,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/timeout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/timeout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAGjE,OAAO,QAAQ,WAAW,CAAC;IAEzB,UAAU,UAAU,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,gBAAgB;KAAG;CACxE"}
|
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
const asyncbox_1 = require("asyncbox");
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
4
|
const support_1 = require("@appium/support");
|
|
9
5
|
const protocol_1 = require("../../protocol");
|
|
10
6
|
const mixin_1 = require("./mixin");
|
|
11
7
|
const MIN_TIMEOUT = 0;
|
|
12
8
|
const TimeoutCommands = {
|
|
13
9
|
async timeouts(type, ms, script, pageLoad, implicit) {
|
|
14
|
-
if (type &&
|
|
10
|
+
if (type && typeof type === 'string' && support_1.util.hasValue(ms)) {
|
|
15
11
|
// legacy stuff with some Appium-specific additions
|
|
16
12
|
this.log.debug(`Timeout arguments: ${JSON.stringify({ type, ms })}}`);
|
|
17
13
|
switch (type) {
|
|
18
14
|
case 'command':
|
|
19
|
-
return void (await this.newCommandTimeout(ms));
|
|
15
|
+
return void (await this.newCommandTimeout(this.parseTimeoutArgument(ms)));
|
|
20
16
|
case 'implicit':
|
|
21
|
-
return void (await this.implicitWaitW3C(ms));
|
|
17
|
+
return void (await this.implicitWaitW3C(this.parseTimeoutArgument(ms)));
|
|
22
18
|
case 'page load':
|
|
23
|
-
return void (await this.pageLoadTimeoutW3C(ms));
|
|
19
|
+
return void (await this.pageLoadTimeoutW3C(this.parseTimeoutArgument(ms)));
|
|
24
20
|
case 'script':
|
|
25
|
-
return void (await this.scriptTimeoutW3C(ms));
|
|
21
|
+
return void (await this.scriptTimeoutW3C(this.parseTimeoutArgument(ms)));
|
|
26
22
|
default:
|
|
27
23
|
throw new Error(`'${type}' type is not supported for the timeout API`);
|
|
28
24
|
}
|
|
29
25
|
}
|
|
30
26
|
this.log.debug(`W3C timeout argument: ${JSON.stringify({ script, pageLoad, implicit })}}`);
|
|
31
|
-
if ([script, pageLoad, implicit].every(
|
|
27
|
+
if ([script, pageLoad, implicit].every((value) => value == null)) {
|
|
32
28
|
throw new protocol_1.errors.InvalidArgumentError('W3C protocol expects any of script, pageLoad or implicit to be set');
|
|
33
29
|
}
|
|
34
30
|
if (support_1.util.hasValue(script)) {
|
|
@@ -71,7 +67,7 @@ const TimeoutCommands = {
|
|
|
71
67
|
if (this.managedDrivers?.length) {
|
|
72
68
|
this.log.debug('Setting implicit wait on managed drivers');
|
|
73
69
|
for (const driver of this.managedDrivers) {
|
|
74
|
-
if (
|
|
70
|
+
if (typeof driver.setImplicitWait === 'function') {
|
|
75
71
|
driver.setImplicitWait(ms);
|
|
76
72
|
}
|
|
77
73
|
}
|
|
@@ -83,7 +79,7 @@ const TimeoutCommands = {
|
|
|
83
79
|
if (this.managedDrivers?.length) {
|
|
84
80
|
this.log.debug('Setting new command timeout on managed drivers');
|
|
85
81
|
for (const driver of this.managedDrivers) {
|
|
86
|
-
if (
|
|
82
|
+
if (typeof driver.setNewCommandTimeout === 'function') {
|
|
87
83
|
driver.setNewCommandTimeout(ms);
|
|
88
84
|
}
|
|
89
85
|
}
|
|
@@ -104,7 +100,7 @@ const TimeoutCommands = {
|
|
|
104
100
|
},
|
|
105
101
|
parseTimeoutArgument(ms) {
|
|
106
102
|
const duration = parseInt(String(ms), 10);
|
|
107
|
-
if (
|
|
103
|
+
if (Number.isNaN(duration) || duration < MIN_TIMEOUT) {
|
|
108
104
|
throw new protocol_1.errors.UnknownError(`Invalid timeout value '${ms}'`);
|
|
109
105
|
}
|
|
110
106
|
return duration;
|