@appium/base-driver 8.3.1 → 8.4.2
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 +80 -0
- package/build/lib/basedriver/capabilities.d.ts.map +1 -0
- package/build/lib/basedriver/capabilities.js +11 -10
- package/build/lib/basedriver/commands/event.d.ts +9 -0
- package/build/lib/basedriver/commands/event.d.ts.map +1 -0
- package/build/lib/basedriver/commands/event.js +21 -21
- package/build/lib/basedriver/commands/find.d.ts +11 -0
- package/build/lib/basedriver/commands/find.d.ts.map +1 -0
- package/build/lib/basedriver/commands/find.js +44 -37
- package/build/lib/basedriver/commands/index.d.ts +8 -0
- package/build/lib/basedriver/commands/index.d.ts.map +1 -0
- package/build/lib/basedriver/commands/index.js +17 -14
- package/build/lib/basedriver/commands/log.d.ts +12 -0
- package/build/lib/basedriver/commands/log.d.ts.map +1 -0
- package/build/lib/basedriver/commands/log.js +24 -26
- package/build/lib/basedriver/commands/session.d.ts +11 -0
- package/build/lib/basedriver/commands/session.d.ts.map +1 -0
- package/build/lib/basedriver/commands/session.js +21 -147
- package/build/lib/basedriver/commands/settings.d.ts +10 -0
- package/build/lib/basedriver/commands/settings.d.ts.map +1 -0
- package/build/lib/basedriver/commands/settings.js +19 -17
- package/build/lib/basedriver/commands/timeout.d.ts +8 -0
- package/build/lib/basedriver/commands/timeout.d.ts.map +1 -0
- package/build/lib/basedriver/commands/timeout.js +118 -137
- package/build/lib/basedriver/core.d.ts +235 -0
- package/build/lib/basedriver/core.d.ts.map +1 -0
- package/build/lib/basedriver/core.js +283 -0
- package/build/lib/basedriver/desired-caps.d.ts +5 -0
- package/build/lib/basedriver/desired-caps.d.ts.map +1 -0
- package/build/lib/basedriver/desired-caps.js +1 -1
- package/build/lib/basedriver/device-settings.d.ts +32 -0
- package/build/lib/basedriver/device-settings.d.ts.map +1 -0
- package/build/lib/basedriver/device-settings.js +19 -11
- package/build/lib/basedriver/driver.d.ts +83 -0
- package/build/lib/basedriver/driver.d.ts.map +1 -0
- package/build/lib/basedriver/driver.js +100 -266
- package/build/lib/basedriver/helpers.d.ts +132 -0
- package/build/lib/basedriver/helpers.d.ts.map +1 -0
- package/build/lib/basedriver/helpers.js +17 -1
- package/build/lib/basedriver/logger.d.ts +3 -0
- package/build/lib/basedriver/logger.d.ts.map +1 -0
- package/build/lib/constants.d.ts +9 -0
- package/build/lib/constants.d.ts.map +1 -0
- package/build/lib/express/crash.d.ts +3 -0
- package/build/lib/express/crash.d.ts.map +1 -0
- package/build/lib/express/express-logging.d.ts +3 -0
- package/build/lib/express/express-logging.d.ts.map +1 -0
- package/build/lib/express/idempotency.d.ts +2 -0
- package/build/lib/express/idempotency.d.ts.map +1 -0
- package/build/lib/express/logger.d.ts +3 -0
- package/build/lib/express/logger.d.ts.map +1 -0
- package/build/lib/express/middleware.d.ts +9 -0
- package/build/lib/express/middleware.d.ts.map +1 -0
- package/build/lib/express/server.d.ts +10 -0
- package/build/lib/express/server.d.ts.map +1 -0
- package/build/lib/express/static.d.ts +6 -0
- package/build/lib/express/static.d.ts.map +1 -0
- package/build/lib/express/websocket.d.ts +64 -0
- package/build/lib/express/websocket.d.ts.map +1 -0
- package/build/lib/express/websocket.js +39 -38
- package/build/lib/helpers/capabilities.d.ts +13 -0
- package/build/lib/helpers/capabilities.d.ts.map +1 -0
- package/build/lib/helpers/capabilities.js +41 -1
- package/build/lib/index.d.ts +183 -0
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/index.js +40 -20
- package/build/lib/jsonwp-proxy/protocol-converter.d.ts +48 -0
- package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -0
- package/build/lib/jsonwp-proxy/proxy.d.ts +41 -0
- package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -0
- package/build/lib/jsonwp-proxy/proxy.js +24 -6
- package/build/lib/jsonwp-status/status.d.ts +159 -0
- package/build/lib/jsonwp-status/status.d.ts.map +1 -0
- package/build/lib/protocol/errors.d.ts +310 -0
- package/build/lib/protocol/errors.d.ts.map +1 -0
- package/build/lib/protocol/errors.js +81 -2
- package/build/lib/protocol/helpers.d.ts +22 -0
- package/build/lib/protocol/helpers.d.ts.map +1 -0
- package/build/lib/protocol/index.d.ts +16 -0
- package/build/lib/protocol/index.d.ts.map +1 -0
- package/build/lib/protocol/index.js +7 -7
- package/build/lib/protocol/protocol.d.ts +11 -0
- package/build/lib/protocol/protocol.d.ts.map +1 -0
- package/build/lib/protocol/protocol.js +2 -6
- package/build/lib/protocol/routes.d.ts +6 -0
- package/build/lib/protocol/routes.d.ts.map +1 -0
- package/build/lib/protocol/routes.js +17 -1
- package/build/lib/protocol/validators.d.ts +8 -0
- package/build/lib/protocol/validators.d.ts.map +1 -0
- package/build/test/basedriver/driver-tests.js +30 -3
- package/build/test/e2e/basedriver/websockets.e2e.spec.js +12 -7
- package/build/test/unit/basedriver/commands/event.spec.js +7 -7
- package/build/test/unit/basedriver/commands/log.spec.js +31 -24
- package/build/test/unit/basedriver/timeout.spec.js +1 -1
- package/build/test/unit/protocol/routes.spec.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -0
- package/lib/basedriver/capabilities.js +49 -10
- package/lib/basedriver/commands/event.js +49 -31
- package/lib/basedriver/commands/find.js +108 -43
- package/lib/basedriver/commands/index.js +25 -19
- package/lib/basedriver/commands/log.js +60 -33
- package/lib/basedriver/commands/session.js +39 -141
- package/lib/basedriver/commands/settings.js +33 -13
- package/lib/basedriver/commands/timeout.js +153 -153
- package/lib/basedriver/core.js +497 -0
- package/lib/basedriver/desired-caps.js +1 -1
- package/lib/basedriver/device-settings.js +47 -12
- package/lib/basedriver/driver.js +273 -395
- package/lib/basedriver/helpers.js +18 -2
- package/lib/express/websocket.js +35 -32
- package/lib/helpers/capabilities.js +60 -1
- package/lib/index.js +16 -12
- package/lib/jsonwp-proxy/proxy.js +26 -6
- package/lib/protocol/errors.js +42 -42
- package/lib/protocol/index.js +4 -4
- package/lib/protocol/protocol.js +1 -3
- package/lib/protocol/routes.js +9 -0
- package/package.json +14 -11
- package/test/basedriver/driver-tests.js +31 -2
- package/index.d.ts +0 -386
|
@@ -15,39 +15,39 @@ require("source-map-support/register");
|
|
|
15
15
|
|
|
16
16
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
17
17
|
|
|
18
|
-
var _url =
|
|
18
|
+
var _url = require("url");
|
|
19
|
+
|
|
20
|
+
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
19
21
|
|
|
20
22
|
const DEFAULT_WS_PATHNAME_PREFIX = '/ws';
|
|
21
23
|
exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
|
|
22
24
|
|
|
23
25
|
async function addWebSocketHandler(handlerPathname, handlerServer) {
|
|
24
|
-
let isUpgradeListenerAssigned = true;
|
|
25
|
-
|
|
26
26
|
if (_lodash.default.isUndefined(this.webSocketsMapping)) {
|
|
27
27
|
this.webSocketsMapping = {};
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
this.on('upgrade', (request, socket, head) => {
|
|
29
|
+
let currentPathname;
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.on('upgrade', (request, socket, head) => {
|
|
38
|
-
const currentPathname = _url.default.parse(request.url).pathname;
|
|
31
|
+
try {
|
|
32
|
+
currentPathname = new _url.URL(request.url).pathname;
|
|
33
|
+
} catch (ign) {
|
|
34
|
+
currentPathname = request.url;
|
|
35
|
+
}
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
for (const [pathname, wsServer] of _lodash.default.toPairs(this.webSocketsMapping)) {
|
|
38
|
+
if (currentPathname === pathname) {
|
|
39
|
+
wsServer.handleUpgrade(request, socket, head, ws => {
|
|
40
|
+
wsServer.emit('connection', ws, request);
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
46
44
|
}
|
|
47
|
-
}
|
|
48
45
|
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
socket.destroy();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
this.webSocketsMapping[handlerPathname] = handlerServer;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
async function getWebSocketHandlers(keysFilter = null) {
|
|
@@ -55,24 +55,31 @@ async function getWebSocketHandlers(keysFilter = null) {
|
|
|
55
55
|
return {};
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
for (const [pathname, wsServer] of _lodash.default.toPairs(this.webSocketsMapping)) {
|
|
58
|
+
return _lodash.default.toPairs(this.webSocketsMapping).reduce((acc, [pathname, wsServer]) => {
|
|
61
59
|
if (!_lodash.default.isString(keysFilter) || pathname.includes(keysFilter)) {
|
|
62
|
-
|
|
60
|
+
acc[pathname] = wsServer;
|
|
63
61
|
}
|
|
64
|
-
}
|
|
65
62
|
|
|
66
|
-
|
|
63
|
+
return acc;
|
|
64
|
+
}, {});
|
|
67
65
|
}
|
|
68
66
|
|
|
69
67
|
async function removeWebSocketHandler(handlerPathname) {
|
|
70
|
-
|
|
68
|
+
var _this$webSocketsMappi;
|
|
69
|
+
|
|
70
|
+
const wsServer = (_this$webSocketsMappi = this.webSocketsMapping) === null || _this$webSocketsMappi === void 0 ? void 0 : _this$webSocketsMappi[handlerPathname];
|
|
71
|
+
|
|
72
|
+
if (!wsServer) {
|
|
71
73
|
return false;
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
try {
|
|
75
|
-
|
|
77
|
+
wsServer.close();
|
|
78
|
+
|
|
79
|
+
for (const client of wsServer.clients || []) {
|
|
80
|
+
client.terminate();
|
|
81
|
+
}
|
|
82
|
+
|
|
76
83
|
return true;
|
|
77
84
|
} catch (ign) {} finally {
|
|
78
85
|
delete this.webSocketsMapping[handlerPathname];
|
|
@@ -86,12 +93,6 @@ async function removeAllWebSocketHandlers() {
|
|
|
86
93
|
return false;
|
|
87
94
|
}
|
|
88
95
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
for (const pathname of _lodash.default.keys(this.webSocketsMapping)) {
|
|
92
|
-
result = result || (await this.removeWebSocketHandler(pathname));
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return result;
|
|
96
|
+
return _lodash.default.some(await _bluebird.default.all(_lodash.default.keys(this.webSocketsMapping).map(pathname => this.removeWebSocketHandler(pathname))));
|
|
96
97
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL3dlYnNvY2tldC5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJoYW5kbGVyUGF0aG5hbWUiLCJoYW5kbGVyU2VydmVyIiwiXyIsImlzVW5kZWZpbmVkIiwid2ViU29ja2V0c01hcHBpbmciLCJvbiIsInJlcXVlc3QiLCJzb2NrZXQiLCJoZWFkIiwiY3VycmVudFBhdGhuYW1lIiwiVVJMIiwidXJsIiwicGF0aG5hbWUiLCJpZ24iLCJ3c1NlcnZlciIsInRvUGFpcnMiLCJoYW5kbGVVcGdyYWRlIiwid3MiLCJlbWl0IiwiZGVzdHJveSIsImdldFdlYlNvY2tldEhhbmRsZXJzIiwia2V5c0ZpbHRlciIsImlzRW1wdHkiLCJyZWR1Y2UiLCJhY2MiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwicmVtb3ZlV2ViU29ja2V0SGFuZGxlciIsImNsb3NlIiwiY2xpZW50IiwiY2xpZW50cyIsInRlcm1pbmF0ZSIsInJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzIiwic29tZSIsIkIiLCJhbGwiLCJrZXlzIiwibWFwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSwwQkFBMEIsR0FBRyxLQUFuQzs7O0FBZ0JBLGVBQWVDLG1CQUFmLENBQW9DQyxlQUFwQyxFQUFxREMsYUFBckQsRUFBb0U7QUFDbEUsTUFBSUMsZ0JBQUVDLFdBQUYsQ0FBYyxLQUFLQyxpQkFBbkIsQ0FBSixFQUEyQztBQUN6QyxTQUFLQSxpQkFBTCxHQUF5QixFQUF6QjtBQUVBLFNBQUtDLEVBQUwsQ0FBUSxTQUFSLEVBQW1CLENBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFrQkMsSUFBbEIsS0FBMkI7QUFDNUMsVUFBSUMsZUFBSjs7QUFDQSxVQUFJO0FBQ0ZBLFFBQUFBLGVBQWUsR0FBSSxJQUFJQyxRQUFKLENBQVFKLE9BQU8sQ0FBQ0ssR0FBaEIsQ0FBRCxDQUF1QkMsUUFBekM7QUFDRCxPQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZO0FBQ1pKLFFBQUFBLGVBQWUsR0FBR0gsT0FBTyxDQUFDSyxHQUExQjtBQUNEOztBQUNELFdBQUssTUFBTSxDQUFDQyxRQUFELEVBQVdFLFFBQVgsQ0FBWCxJQUFtQ1osZ0JBQUVhLE9BQUYsQ0FBVSxLQUFLWCxpQkFBZixDQUFuQyxFQUFzRTtBQUNwRSxZQUFJSyxlQUFlLEtBQUtHLFFBQXhCLEVBQWtDO0FBQ2hDRSxVQUFBQSxRQUFRLENBQUNFLGFBQVQsQ0FBdUJWLE9BQXZCLEVBQWdDQyxNQUFoQyxFQUF3Q0MsSUFBeEMsRUFBK0NTLEVBQUQsSUFBUTtBQUNwREgsWUFBQUEsUUFBUSxDQUFDSSxJQUFULENBQWMsWUFBZCxFQUE0QkQsRUFBNUIsRUFBZ0NYLE9BQWhDO0FBQ0QsV0FGRDtBQUdBO0FBQ0Q7QUFDRjs7QUFDREMsTUFBQUEsTUFBTSxDQUFDWSxPQUFQO0FBQ0QsS0FoQkQ7QUFpQkQ7O0FBQ0QsT0FBS2YsaUJBQUwsQ0FBdUJKLGVBQXZCLElBQTBDQyxhQUExQztBQUNEOztBQWFELGVBQWVtQixvQkFBZixDQUFxQ0MsVUFBVSxHQUFHLElBQWxELEVBQXdEO0FBQ3RELE1BQUluQixnQkFBRW9CLE9BQUYsQ0FBVSxLQUFLbEIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEVBQVA7QUFDRDs7QUFFRCxTQUFPRixnQkFBRWEsT0FBRixDQUFVLEtBQUtYLGlCQUFmLEVBQWtDbUIsTUFBbEMsQ0FBeUMsQ0FBQ0MsR0FBRCxFQUFNLENBQUNaLFFBQUQsRUFBV0UsUUFBWCxDQUFOLEtBQStCO0FBQzdFLFFBQUksQ0FBQ1osZ0JBQUV1QixRQUFGLENBQVdKLFVBQVgsQ0FBRCxJQUEyQlQsUUFBUSxDQUFDYyxRQUFULENBQWtCTCxVQUFsQixDQUEvQixFQUE4RDtBQUM1REcsTUFBQUEsR0FBRyxDQUFDWixRQUFELENBQUgsR0FBZ0JFLFFBQWhCO0FBQ0Q7O0FBQ0QsV0FBT1UsR0FBUDtBQUNELEdBTE0sRUFLSixFQUxJLENBQVA7QUFNRDs7QUFZRCxlQUFlRyxzQkFBZixDQUF1QzNCLGVBQXZDLEVBQXdEO0FBQUE7O0FBQ3RELFFBQU1jLFFBQVEsNEJBQUcsS0FBS1YsaUJBQVIsMERBQUcsc0JBQXlCSixlQUF6QixDQUFqQjs7QUFDQSxNQUFJLENBQUNjLFFBQUwsRUFBZTtBQUNiLFdBQU8sS0FBUDtBQUNEOztBQUVELE1BQUk7QUFDRkEsSUFBQUEsUUFBUSxDQUFDYyxLQUFUOztBQUNBLFNBQUssTUFBTUMsTUFBWCxJQUFzQmYsUUFBUSxDQUFDZ0IsT0FBVCxJQUFvQixFQUExQyxFQUErQztBQUM3Q0QsTUFBQUEsTUFBTSxDQUFDRSxTQUFQO0FBQ0Q7O0FBQ0QsV0FBTyxJQUFQO0FBQ0QsR0FORCxDQU1FLE9BQU9sQixHQUFQLEVBQVksQ0FFYixDQVJELFNBUVU7QUFDUixXQUFPLEtBQUtULGlCQUFMLENBQXVCSixlQUF2QixDQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBU0QsZUFBZWdDLDBCQUFmLEdBQTZDO0FBQzNDLE1BQUk5QixnQkFBRW9CLE9BQUYsQ0FBVSxLQUFLbEIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEtBQVA7QUFDRDs7QUFFRCxTQUFPRixnQkFBRStCLElBQUYsQ0FDTCxNQUFNQyxrQkFBRUMsR0FBRixDQUNKakMsZ0JBQUVrQyxJQUFGLENBQU8sS0FBS2hDLGlCQUFaLEVBQStCaUMsR0FBL0IsQ0FBb0N6QixRQUFELElBQWMsS0FBS2Usc0JBQUwsQ0FBNEJmLFFBQTVCLENBQWpELENBREksQ0FERCxDQUFQO0FBS0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgVVJMIH0gZnJvbSAndXJsJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuY29uc3QgREVGQVVMVF9XU19QQVRITkFNRV9QUkVGSVggPSAnL3dzJztcblxuXG4vKipcbiAqIEFkZHMgd2Vic29ja2V0IGhhbmRsZXIgdG8gZXhwcmVzcyBzZXJ2ZXIgaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gc2VydmVyIC0gQW4gaW5zdGFuY2Ugb2YgZXhwcmVzcyBIVFRQIHNlcnZlci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBoYW5kbGVyUGF0aG5hbWUgLSBXZWIgc29ja2V0IGVuZHBvaW50IHBhdGggc3RhcnRpbmcgd2l0aFxuICogYSBzaW5nbGUgc2xhc2ggY2hhcmFjdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBhbHdheXMgYWRkXG4gKiBERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCB0byBhbGwgd2ViIHNvY2tldCBwYXRobmFtZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gaGFuZGxlclNlcnZlciAtIFdlYlNvY2tldCBzZXJ2ZXIgaW5zdGFuY2UuIFNlZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3dlYnNvY2tldHMvd3MvcHVsbC84ODUgZm9yIG1vcmUgZGV0YWlsc1xuICogb24gaG93IHRvIGNvbmZpZ3VyZSB0aGUgaGFuZGxlciBwcm9wZXJseS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkV2ViU29ja2V0SGFuZGxlciAoaGFuZGxlclBhdGhuYW1lLCBoYW5kbGVyU2VydmVyKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIHRoaXMud2ViU29ja2V0c01hcHBpbmcgPSB7fTtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2Vic29ja2V0cy93cy9wdWxsLzg4NVxuICAgIHRoaXMub24oJ3VwZ3JhZGUnLCAocmVxdWVzdCwgc29ja2V0LCBoZWFkKSA9PiB7XG4gICAgICBsZXQgY3VycmVudFBhdGhuYW1lO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY3VycmVudFBhdGhuYW1lID0gKG5ldyBVUkwocmVxdWVzdC51cmwpKS5wYXRobmFtZTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge1xuICAgICAgICBjdXJyZW50UGF0aG5hbWUgPSByZXF1ZXN0LnVybDtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgW3BhdGhuYW1lLCB3c1NlcnZlcl0gb2YgXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgICAgIGlmIChjdXJyZW50UGF0aG5hbWUgPT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgd3NTZXJ2ZXIuaGFuZGxlVXBncmFkZShyZXF1ZXN0LCBzb2NrZXQsIGhlYWQsICh3cykgPT4ge1xuICAgICAgICAgICAgd3NTZXJ2ZXIuZW1pdCgnY29ubmVjdGlvbicsIHdzLCByZXF1ZXN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cbiAgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdID0gaGFuZGxlclNlcnZlcjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdlYiBzb2NrZXQgaGFuZGxlcnMgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIHNlcnZlclxuICogaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IGtleXNGaWx0ZXIgW251bGxdLSBPbmx5IGluY2x1ZGUgcGF0aG5hbWVzIHdpdGggZ2l2ZW5cbiAqIGBrZXlzRmlsdGVyYCB2YWx1ZSBpZiBzZXQuIEFsbCBwYWlycyB3aWxsIGJlIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBwYXRobmFtZXMgdG8gd2Vic29ja2V0IHNlcnZlciBpc250YW5jZXMgbWFwcGluZ1xuICogbWF0Y2hpbmcgdGhlIHNlYXJjaCBjcml0ZXJpYSBvciBhbiBlbXB0eSBvYmplY3Qgb3RoZXJ3aXNlLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRXZWJTb2NrZXRIYW5kbGVycyAoa2V5c0ZpbHRlciA9IG51bGwpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGlmIChfLmlzRW1wdHkodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpLnJlZHVjZSgoYWNjLCBbcGF0aG5hbWUsIHdzU2VydmVyXSkgPT4ge1xuICAgIGlmICghXy5pc1N0cmluZyhrZXlzRmlsdGVyKSB8fCBwYXRobmFtZS5pbmNsdWRlcyhrZXlzRmlsdGVyKSkge1xuICAgICAgYWNjW3BhdGhuYW1lXSA9IHdzU2VydmVyO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBleGlzdGluZyB3ZWJzb2NrZXQgaGFuZGxlciBmcm9tIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogVGhlIGNhbGwgaXMgaWdub3JlZCBpZiB0aGUgZ2l2ZW4gYGhhbmRsZXJQYXRobmFtZWAgaGFuZGxlclxuICogaXMgbm90IHByZXNlbnQgaW4gdGhlIGhhbmRsZXJzIGxpc3QuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaGFuZGxlclBhdGhuYW1lIC0gV2Vic29ja2V0IGVuZHBvaW50IHBhdGguXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgaGFuZGxlclBhdGhuYW1lIHdhcyBmb3VuZCBhbmQgZGVsZXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiByZW1vdmVXZWJTb2NrZXRIYW5kbGVyIChoYW5kbGVyUGF0aG5hbWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGNvbnN0IHdzU2VydmVyID0gdGhpcy53ZWJTb2NrZXRzTWFwcGluZz8uW2hhbmRsZXJQYXRobmFtZV07XG4gIGlmICghd3NTZXJ2ZXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0cnkge1xuICAgIHdzU2VydmVyLmNsb3NlKCk7XG4gICAgZm9yIChjb25zdCBjbGllbnQgb2YgKHdzU2VydmVyLmNsaWVudHMgfHwgW10pKSB7XG4gICAgICBjbGllbnQudGVybWluYXRlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChpZ24pIHtcbiAgICAvLyBpZ25vcmVcbiAgfSBmaW5hbGx5IHtcbiAgICBkZWxldGUgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBleGlzdGluZyB3ZWJzb2NrZXQgaGFuZGxlciBmcm9tIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgYXQgbGVhc3Qgb25lIGhhbmRsZXIgaGFzIGJlZW4gZGVsZXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyAoKSB7XG4gIGlmIChfLmlzRW1wdHkodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gXy5zb21lKFxuICAgIGF3YWl0IEIuYWxsKFxuICAgICAgXy5rZXlzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpLm1hcCgocGF0aG5hbWUpID0+IHRoaXMucmVtb3ZlV2ViU29ja2V0SGFuZGxlcihwYXRobmFtZSkpXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQge1xuICBhZGRXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyxcbiAgZ2V0V2ViU29ja2V0SGFuZGxlcnMsIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type Capabilities = import('@appium/types').Capabilities;
|
|
2
|
+
export type Constraints = import('@appium/types').Constraints;
|
|
3
|
+
export type AppiumLogger = import('@appium/types').AppiumLogger;
|
|
4
|
+
export function isW3cCaps(caps: any): boolean;
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param {Capabilities} originalCaps
|
|
8
|
+
* @param {Constraints} desiredCapConstraints
|
|
9
|
+
* @param {AppiumLogger} log
|
|
10
|
+
* @returns {Capabilities}
|
|
11
|
+
*/
|
|
12
|
+
export function fixCaps(originalCaps: Capabilities, desiredCapConstraints: Constraints, log: AppiumLogger): Capabilities;
|
|
13
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../lib/helpers/capabilities.js"],"names":[],"mappings":"2BAgFa,OAAO,eAAe,EAAE,YAAY;0BACpC,OAAO,eAAe,EAAE,WAAW;2BACnC,OAAO,eAAe,EAAE,YAAY;AA9EjD,8CAkBC;AAED;;;;;;GAMG;AACH,sCALW,YAAY,yBACZ,WAAW,OACX,YAAY,GACV,YAAY,CA2CxB"}
|
|
@@ -5,6 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.fixCaps = fixCaps;
|
|
8
9
|
exports.isW3cCaps = isW3cCaps;
|
|
9
10
|
|
|
10
11
|
require("source-map-support/register");
|
|
@@ -34,4 +35,43 @@ function isW3cCaps(caps) {
|
|
|
34
35
|
|
|
35
36
|
return false;
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
+
|
|
39
|
+
function fixCaps(originalCaps, desiredCapConstraints, log) {
|
|
40
|
+
let caps = _lodash.default.clone(originalCaps);
|
|
41
|
+
|
|
42
|
+
let booleanCaps = _lodash.default.keys(_lodash.default.pickBy(desiredCapConstraints, k => k.isBoolean === true));
|
|
43
|
+
|
|
44
|
+
for (let cap of booleanCaps) {
|
|
45
|
+
let value = originalCaps[cap];
|
|
46
|
+
|
|
47
|
+
if (_lodash.default.isString(value)) {
|
|
48
|
+
value = value.toLowerCase();
|
|
49
|
+
|
|
50
|
+
if (value === 'true' || value === 'false') {
|
|
51
|
+
log.warn(`Capability '${cap}' changed from string to boolean. This may cause unexpected behavior`);
|
|
52
|
+
caps[cap] = value === 'true';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
let intCaps = _lodash.default.keys(_lodash.default.pickBy(desiredCapConstraints, k => k.isNumber === true));
|
|
58
|
+
|
|
59
|
+
for (let cap of intCaps) {
|
|
60
|
+
let value = originalCaps[cap];
|
|
61
|
+
|
|
62
|
+
if (_lodash.default.isString(value)) {
|
|
63
|
+
value = value.trim();
|
|
64
|
+
let newValue = parseInt(value, 10);
|
|
65
|
+
|
|
66
|
+
if (value !== `${newValue}`) {
|
|
67
|
+
newValue = parseFloat(value);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
log.warn(`Capability '${cap}' changed from string ('${value}') to integer (${newValue}). This may cause unexpected behavior`);
|
|
71
|
+
caps[cap] = newValue;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return caps;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oZWxwZXJzL2NhcGFiaWxpdGllcy5qcyJdLCJuYW1lcyI6WyJpc1czY0NhcHMiLCJjYXBzIiwiXyIsImlzUGxhaW5PYmplY3QiLCJpc0ZpcnN0TWF0Y2hWYWxpZCIsImlzQXJyYXkiLCJmaXJzdE1hdGNoIiwiaXNFbXB0eSIsImV2ZXJ5IiwiaXNBbHdheXNNYXRjaFZhbGlkIiwiYWx3YXlzTWF0Y2giLCJoYXMiLCJmaXhDYXBzIiwib3JpZ2luYWxDYXBzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwibG9nIiwiY2xvbmUiLCJib29sZWFuQ2FwcyIsImtleXMiLCJwaWNrQnkiLCJrIiwiaXNCb29sZWFuIiwiY2FwIiwidmFsdWUiLCJpc1N0cmluZyIsInRvTG93ZXJDYXNlIiwid2FybiIsImludENhcHMiLCJpc051bWJlciIsInRyaW0iLCJuZXdWYWx1ZSIsInBhcnNlSW50IiwicGFyc2VGbG9hdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUE7O0FBRUEsU0FBU0EsU0FBVCxDQUFvQkMsSUFBcEIsRUFBMEI7QUFDeEIsTUFBSSxDQUFDQyxnQkFBRUMsYUFBRixDQUFnQkYsSUFBaEIsQ0FBTCxFQUE0QjtBQUMxQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxRQUFNRyxpQkFBaUIsR0FBRyxNQUFNRixnQkFBRUcsT0FBRixDQUFVSixJQUFJLENBQUNLLFVBQWYsS0FDM0IsQ0FBQ0osZ0JBQUVLLE9BQUYsQ0FBVU4sSUFBSSxDQUFDSyxVQUFmLENBRDBCLElBQ0lKLGdCQUFFTSxLQUFGLENBQVFQLElBQUksQ0FBQ0ssVUFBYixFQUF5QkosZ0JBQUVDLGFBQTNCLENBRHBDOztBQUVBLFFBQU1NLGtCQUFrQixHQUFHLE1BQU1QLGdCQUFFQyxhQUFGLENBQWdCRixJQUFJLENBQUNTLFdBQXJCLENBQWpDOztBQUNBLE1BQUlSLGdCQUFFUyxHQUFGLENBQU1WLElBQU4sRUFBWSxZQUFaLEtBQTZCQyxnQkFBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFqQyxFQUE2RDtBQUMzRCxXQUFPRyxpQkFBaUIsTUFBTUssa0JBQWtCLEVBQWhEO0FBQ0Q7O0FBQ0QsTUFBSVAsZ0JBQUVTLEdBQUYsQ0FBTVYsSUFBTixFQUFZLFlBQVosQ0FBSixFQUErQjtBQUM3QixXQUFPRyxpQkFBaUIsRUFBeEI7QUFDRDs7QUFDRCxNQUFJRixnQkFBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFKLEVBQWdDO0FBQzlCLFdBQU9RLGtCQUFrQixFQUF6QjtBQUNEOztBQUNELFNBQU8sS0FBUDtBQUNEOztBQVNELFNBQVNHLE9BQVQsQ0FBa0JDLFlBQWxCLEVBQWdDQyxxQkFBaEMsRUFBdURDLEdBQXZELEVBQTREO0FBQzFELE1BQUlkLElBQUksR0FBR0MsZ0JBQUVjLEtBQUYsQ0FBUUgsWUFBUixDQUFYOztBQUlBLE1BQUlJLFdBQVcsR0FBR2YsZ0JBQUVnQixJQUFGLENBQ2hCaEIsZ0JBQUVpQixNQUFGLENBQVNMLHFCQUFULEVBQWlDTSxDQUFELElBQU9BLENBQUMsQ0FBQ0MsU0FBRixLQUFnQixJQUF2RCxDQURnQixDQUFsQjs7QUFHQSxPQUFLLElBQUlDLEdBQVQsSUFBZ0JMLFdBQWhCLEVBQTZCO0FBQzNCLFFBQUlNLEtBQUssR0FBR1YsWUFBWSxDQUFDUyxHQUFELENBQXhCOztBQUNBLFFBQUlwQixnQkFBRXNCLFFBQUYsQ0FBV0QsS0FBWCxDQUFKLEVBQXVCO0FBQ3JCQSxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0UsV0FBTixFQUFSOztBQUNBLFVBQUlGLEtBQUssS0FBSyxNQUFWLElBQW9CQSxLQUFLLEtBQUssT0FBbEMsRUFBMkM7QUFDekNSLFFBQUFBLEdBQUcsQ0FBQ1csSUFBSixDQUNHLGVBQWNKLEdBQUksc0VBRHJCO0FBR0FyQixRQUFBQSxJQUFJLENBQUNxQixHQUFELENBQUosR0FBWUMsS0FBSyxLQUFLLE1BQXRCO0FBQ0Q7QUFDRjtBQUNGOztBQUdELE1BQUlJLE9BQU8sR0FBR3pCLGdCQUFFZ0IsSUFBRixDQUNaaEIsZ0JBQUVpQixNQUFGLENBQVNMLHFCQUFULEVBQWlDTSxDQUFELElBQU9BLENBQUMsQ0FBQ1EsUUFBRixLQUFlLElBQXRELENBRFksQ0FBZDs7QUFHQSxPQUFLLElBQUlOLEdBQVQsSUFBZ0JLLE9BQWhCLEVBQXlCO0FBQ3ZCLFFBQUlKLEtBQUssR0FBR1YsWUFBWSxDQUFDUyxHQUFELENBQXhCOztBQUNBLFFBQUlwQixnQkFBRXNCLFFBQUYsQ0FBV0QsS0FBWCxDQUFKLEVBQXVCO0FBQ3JCQSxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ00sSUFBTixFQUFSO0FBQ0EsVUFBSUMsUUFBUSxHQUFHQyxRQUFRLENBQUNSLEtBQUQsRUFBUSxFQUFSLENBQXZCOztBQUNBLFVBQUlBLEtBQUssS0FBTSxHQUFFTyxRQUFTLEVBQTFCLEVBQTZCO0FBQzNCQSxRQUFBQSxRQUFRLEdBQUdFLFVBQVUsQ0FBQ1QsS0FBRCxDQUFyQjtBQUNEOztBQUNEUixNQUFBQSxHQUFHLENBQUNXLElBQUosQ0FDRyxlQUFjSixHQUFJLDJCQUEwQkMsS0FBTSxrQkFBaUJPLFFBQVMsdUNBRC9FO0FBR0E3QixNQUFBQSxJQUFJLENBQUNxQixHQUFELENBQUosR0FBWVEsUUFBWjtBQUNEO0FBQ0Y7O0FBRUQsU0FBTzdCLElBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5mdW5jdGlvbiBpc1czY0NhcHMgKGNhcHMpIHtcbiAgaWYgKCFfLmlzUGxhaW5PYmplY3QoY2FwcykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBpc0ZpcnN0TWF0Y2hWYWxpZCA9ICgpID0+IF8uaXNBcnJheShjYXBzLmZpcnN0TWF0Y2gpXG4gICAgJiYgIV8uaXNFbXB0eShjYXBzLmZpcnN0TWF0Y2gpICYmIF8uZXZlcnkoY2Fwcy5maXJzdE1hdGNoLCBfLmlzUGxhaW5PYmplY3QpO1xuICBjb25zdCBpc0Fsd2F5c01hdGNoVmFsaWQgPSAoKSA9PiBfLmlzUGxhaW5PYmplY3QoY2Fwcy5hbHdheXNNYXRjaCk7XG4gIGlmIChfLmhhcyhjYXBzLCAnZmlyc3RNYXRjaCcpICYmIF8uaGFzKGNhcHMsICdhbHdheXNNYXRjaCcpKSB7XG4gICAgcmV0dXJuIGlzRmlyc3RNYXRjaFZhbGlkKCkgJiYgaXNBbHdheXNNYXRjaFZhbGlkKCk7XG4gIH1cbiAgaWYgKF8uaGFzKGNhcHMsICdmaXJzdE1hdGNoJykpIHtcbiAgICByZXR1cm4gaXNGaXJzdE1hdGNoVmFsaWQoKTtcbiAgfVxuICBpZiAoXy5oYXMoY2FwcywgJ2Fsd2F5c01hdGNoJykpIHtcbiAgICByZXR1cm4gaXNBbHdheXNNYXRjaFZhbGlkKCk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge0NhcGFiaWxpdGllc30gb3JpZ2luYWxDYXBzXG4gKiBAcGFyYW0ge0NvbnN0cmFpbnRzfSBkZXNpcmVkQ2FwQ29uc3RyYWludHNcbiAqIEBwYXJhbSB7QXBwaXVtTG9nZ2VyfSBsb2dcbiAqIEByZXR1cm5zIHtDYXBhYmlsaXRpZXN9XG4gKi9cbmZ1bmN0aW9uIGZpeENhcHMgKG9yaWdpbmFsQ2FwcywgZGVzaXJlZENhcENvbnN0cmFpbnRzLCBsb2cpIHtcbiAgbGV0IGNhcHMgPSBfLmNsb25lKG9yaWdpbmFsQ2Fwcyk7XG5cbiAgLy8gYm9vbGVhbiBjYXBhYmlsaXRpZXMgY2FuIGJlIHBhc3NlZCBpbiBhcyBzdHJpbmdzICdmYWxzZScgYW5kICd0cnVlJ1xuICAvLyB3aGljaCB3ZSB3YW50IHRvIHRyYW5zbGF0ZSBpbnRvIGJvb2xlYW4gdmFsdWVzXG4gIGxldCBib29sZWFuQ2FwcyA9IF8ua2V5cyhcbiAgICBfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzQm9vbGVhbiA9PT0gdHJ1ZSksXG4gICk7XG4gIGZvciAobGV0IGNhcCBvZiBib29sZWFuQ2Fwcykge1xuICAgIGxldCB2YWx1ZSA9IG9yaWdpbmFsQ2Fwc1tjYXBdO1xuICAgIGlmIChfLmlzU3RyaW5nKHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHZhbHVlID09PSAndHJ1ZScgfHwgdmFsdWUgPT09ICdmYWxzZScpIHtcbiAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgYENhcGFiaWxpdHkgJyR7Y2FwfScgY2hhbmdlZCBmcm9tIHN0cmluZyB0byBib29sZWFuLiBUaGlzIG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yYCxcbiAgICAgICAgKTtcbiAgICAgICAgY2Fwc1tjYXBdID0gdmFsdWUgPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpbnQgY2FwYWJpbGl0aWVzIGFyZSBvZnRlbiBzZW50IGluIGFzIHN0cmluZ3MgYnkgZnJhbWV3b3Jrc1xuICBsZXQgaW50Q2FwcyA9IF8ua2V5cyhcbiAgICBfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzTnVtYmVyID09PSB0cnVlKSxcbiAgKTtcbiAgZm9yIChsZXQgY2FwIG9mIGludENhcHMpIHtcbiAgICBsZXQgdmFsdWUgPSBvcmlnaW5hbENhcHNbY2FwXTtcbiAgICBpZiAoXy5pc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xuICAgICAgbGV0IG5ld1ZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gYCR7bmV3VmFsdWV9YCkge1xuICAgICAgICBuZXdWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgfVxuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBDYXBhYmlsaXR5ICcke2NhcH0nIGNoYW5nZWQgZnJvbSBzdHJpbmcgKCcke3ZhbHVlfScpIHRvIGludGVnZXIgKCR7bmV3VmFsdWV9KS4gVGhpcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcmAsXG4gICAgICApO1xuICAgICAgY2Fwc1tjYXBdID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhcHM7XG59XG5cbmV4cG9ydCB7XG4gIGlzVzNjQ2FwcyxcbiAgZml4Q2Fwc1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQ2FwYWJpbGl0aWVzfSBDYXBhYmlsaXRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db25zdHJhaW50c30gQ29uc3RyYWludHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9IEFwcGl1bUxvZ2dlclxuICovXG4iXX0=
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
export { DriverCore } from "./basedriver/core";
|
|
2
|
+
export default BaseDriver;
|
|
3
|
+
import { BaseDriver } from "./basedriver/driver";
|
|
4
|
+
import { DeviceSettings } from "./basedriver/device-settings";
|
|
5
|
+
export const routeConfiguringFunction: typeof protocol.routeConfiguringFunction;
|
|
6
|
+
export const errors: {
|
|
7
|
+
NotYetImplementedError: typeof import("./protocol/errors").NotYetImplementedError;
|
|
8
|
+
NotImplementedError: typeof import("./protocol/errors").NotImplementedError;
|
|
9
|
+
BadParametersError: typeof import("./protocol/errors").BadParametersError;
|
|
10
|
+
InvalidArgumentError: typeof import("./protocol/errors").InvalidArgumentError;
|
|
11
|
+
NoSuchDriverError: typeof import("./protocol/errors").NoSuchDriverError;
|
|
12
|
+
NoSuchElementError: typeof import("./protocol/errors").NoSuchElementError;
|
|
13
|
+
UnknownCommandError: typeof import("./protocol/errors").UnknownCommandError;
|
|
14
|
+
StaleElementReferenceError: typeof import("./protocol/errors").StaleElementReferenceError;
|
|
15
|
+
ElementNotVisibleError: typeof import("./protocol/errors").ElementNotVisibleError;
|
|
16
|
+
InvalidElementStateError: typeof import("./protocol/errors").InvalidElementStateError;
|
|
17
|
+
UnknownError: typeof import("./protocol/errors").UnknownError;
|
|
18
|
+
ElementIsNotSelectableError: typeof import("./protocol/errors").ElementIsNotSelectableError;
|
|
19
|
+
ElementClickInterceptedError: typeof import("./protocol/errors").ElementClickInterceptedError;
|
|
20
|
+
ElementNotInteractableError: typeof import("./protocol/errors").ElementNotInteractableError;
|
|
21
|
+
InsecureCertificateError: typeof import("./protocol/errors").InsecureCertificateError;
|
|
22
|
+
JavaScriptError: typeof import("./protocol/errors").JavaScriptError;
|
|
23
|
+
XPathLookupError: typeof import("./protocol/errors").XPathLookupError;
|
|
24
|
+
TimeoutError: typeof import("./protocol/errors").TimeoutError;
|
|
25
|
+
NoSuchWindowError: typeof import("./protocol/errors").NoSuchWindowError;
|
|
26
|
+
NoSuchCookieError: typeof import("./protocol/errors").NoSuchCookieError;
|
|
27
|
+
InvalidCookieDomainError: typeof import("./protocol/errors").InvalidCookieDomainError;
|
|
28
|
+
InvalidCoordinatesError: typeof import("./protocol/errors").InvalidCoordinatesError;
|
|
29
|
+
UnableToSetCookieError: typeof import("./protocol/errors").UnableToSetCookieError;
|
|
30
|
+
UnexpectedAlertOpenError: typeof import("./protocol/errors").UnexpectedAlertOpenError;
|
|
31
|
+
NoAlertOpenError: typeof import("./protocol/errors").NoAlertOpenError;
|
|
32
|
+
ScriptTimeoutError: typeof import("./protocol/errors").ScriptTimeoutError;
|
|
33
|
+
InvalidElementCoordinatesError: typeof import("./protocol/errors").InvalidElementCoordinatesError;
|
|
34
|
+
IMENotAvailableError: typeof import("./protocol/errors").IMENotAvailableError;
|
|
35
|
+
IMEEngineActivationFailedError: typeof import("./protocol/errors").IMEEngineActivationFailedError;
|
|
36
|
+
InvalidSelectorError: typeof import("./protocol/errors").InvalidSelectorError;
|
|
37
|
+
SessionNotCreatedError: typeof import("./protocol/errors").SessionNotCreatedError;
|
|
38
|
+
MoveTargetOutOfBoundsError: typeof import("./protocol/errors").MoveTargetOutOfBoundsError;
|
|
39
|
+
NoSuchAlertError: typeof import("./protocol/errors").NoSuchAlertError;
|
|
40
|
+
NoSuchContextError: typeof import("./protocol/errors").NoSuchContextError;
|
|
41
|
+
InvalidContextError: typeof import("./protocol/errors").InvalidContextError;
|
|
42
|
+
NoSuchFrameError: typeof import("./protocol/errors").NoSuchFrameError;
|
|
43
|
+
UnableToCaptureScreen: typeof import("./protocol/errors").UnableToCaptureScreen;
|
|
44
|
+
UnknownMethodError: typeof import("./protocol/errors").UnknownMethodError;
|
|
45
|
+
UnsupportedOperationError: typeof import("./protocol/errors").UnsupportedOperationError;
|
|
46
|
+
ProxyRequestError: typeof import("./protocol/errors").ProxyRequestError;
|
|
47
|
+
};
|
|
48
|
+
export const isErrorType: typeof protocol.isErrorType;
|
|
49
|
+
import { PROTOCOLS } from "./constants";
|
|
50
|
+
export const errorFromMJSONWPStatusCode: typeof protocol.errorFromMJSONWPStatusCode;
|
|
51
|
+
export const errorFromW3CJsonCode: typeof protocol.errorFromW3CJsonCode;
|
|
52
|
+
export const determineProtocol: typeof protocol.determineProtocol;
|
|
53
|
+
export const ALL_COMMANDS: any[];
|
|
54
|
+
export const METHOD_MAP: import("@appium/types").MethodMap<import("@appium/types").ExternalDriver>;
|
|
55
|
+
export const routeToCommandName: typeof protocol.routeToCommandName;
|
|
56
|
+
export const NO_SESSION_ID_COMMANDS: string[];
|
|
57
|
+
export const isSessionCommand: typeof protocol.isSessionCommand;
|
|
58
|
+
import { DEFAULT_BASE_PATH } from "./constants";
|
|
59
|
+
export const CREATE_SESSION_COMMAND: "createSession";
|
|
60
|
+
export const DELETE_SESSION_COMMAND: "deleteSession";
|
|
61
|
+
export const GET_STATUS_COMMAND: "getStatus";
|
|
62
|
+
export const STATIC_DIR: string;
|
|
63
|
+
export const server: typeof serverIndex.server;
|
|
64
|
+
export const normalizeBasePath: typeof serverIndex.normalizeBasePath;
|
|
65
|
+
export const JWProxy: typeof proxyIndex.JWProxy;
|
|
66
|
+
export const statusCodes: {
|
|
67
|
+
Success: {
|
|
68
|
+
code: number;
|
|
69
|
+
summary: string;
|
|
70
|
+
};
|
|
71
|
+
NoSuchDriver: {
|
|
72
|
+
code: number;
|
|
73
|
+
summary: string;
|
|
74
|
+
};
|
|
75
|
+
NoSuchElement: {
|
|
76
|
+
code: number;
|
|
77
|
+
summary: string;
|
|
78
|
+
};
|
|
79
|
+
NoSuchFrame: {
|
|
80
|
+
code: number;
|
|
81
|
+
summary: string;
|
|
82
|
+
};
|
|
83
|
+
UnknownCommand: {
|
|
84
|
+
code: number;
|
|
85
|
+
summary: string;
|
|
86
|
+
};
|
|
87
|
+
StaleElementReference: {
|
|
88
|
+
code: number;
|
|
89
|
+
summary: string;
|
|
90
|
+
};
|
|
91
|
+
ElementNotVisible: {
|
|
92
|
+
code: number;
|
|
93
|
+
summary: string;
|
|
94
|
+
};
|
|
95
|
+
InvalidElementState: {
|
|
96
|
+
code: number;
|
|
97
|
+
summary: string;
|
|
98
|
+
};
|
|
99
|
+
UnknownError: {
|
|
100
|
+
code: number;
|
|
101
|
+
summary: string;
|
|
102
|
+
};
|
|
103
|
+
ElementIsNotSelectable: {
|
|
104
|
+
code: number;
|
|
105
|
+
summary: string;
|
|
106
|
+
};
|
|
107
|
+
JavaScriptError: {
|
|
108
|
+
code: number;
|
|
109
|
+
summary: string;
|
|
110
|
+
};
|
|
111
|
+
XPathLookupError: {
|
|
112
|
+
code: number;
|
|
113
|
+
summary: string;
|
|
114
|
+
};
|
|
115
|
+
Timeout: {
|
|
116
|
+
code: number;
|
|
117
|
+
summary: string;
|
|
118
|
+
};
|
|
119
|
+
NoSuchWindow: {
|
|
120
|
+
code: number;
|
|
121
|
+
summary: string;
|
|
122
|
+
};
|
|
123
|
+
InvalidCookieDomain: {
|
|
124
|
+
code: number;
|
|
125
|
+
summary: string;
|
|
126
|
+
};
|
|
127
|
+
UnableToSetCookie: {
|
|
128
|
+
code: number;
|
|
129
|
+
summary: string;
|
|
130
|
+
};
|
|
131
|
+
UnexpectedAlertOpen: {
|
|
132
|
+
code: number;
|
|
133
|
+
summary: string;
|
|
134
|
+
};
|
|
135
|
+
NoAlertOpenError: {
|
|
136
|
+
code: number;
|
|
137
|
+
summary: string;
|
|
138
|
+
};
|
|
139
|
+
ScriptTimeout: {
|
|
140
|
+
code: number;
|
|
141
|
+
summary: string;
|
|
142
|
+
};
|
|
143
|
+
InvalidElementCoordinates: {
|
|
144
|
+
code: number;
|
|
145
|
+
summary: string;
|
|
146
|
+
};
|
|
147
|
+
IMENotAvailable: {
|
|
148
|
+
code: number;
|
|
149
|
+
summary: string;
|
|
150
|
+
};
|
|
151
|
+
IMEEngineActivationFailed: {
|
|
152
|
+
code: number;
|
|
153
|
+
summary: string;
|
|
154
|
+
};
|
|
155
|
+
InvalidSelector: {
|
|
156
|
+
code: number;
|
|
157
|
+
summary: string;
|
|
158
|
+
};
|
|
159
|
+
SessionNotCreatedException: {
|
|
160
|
+
code: number;
|
|
161
|
+
summary: string;
|
|
162
|
+
};
|
|
163
|
+
MoveTargetOutOfBounds: {
|
|
164
|
+
code: number;
|
|
165
|
+
summary: string;
|
|
166
|
+
};
|
|
167
|
+
NoSuchContext: {
|
|
168
|
+
code: number;
|
|
169
|
+
summary: string;
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
export const getSummaryByCode: typeof statusIndex.getSummaryByCode;
|
|
173
|
+
export const processCapabilities: typeof caps.processCapabilities;
|
|
174
|
+
export const isStandardCap: typeof caps.isStandardCap;
|
|
175
|
+
export const validateCaps: typeof caps.validateCaps;
|
|
176
|
+
export const DEFAULT_WS_PATHNAME_PREFIX: "/ws";
|
|
177
|
+
import * as protocol from "./protocol";
|
|
178
|
+
import * as serverIndex from "./express/server";
|
|
179
|
+
import * as proxyIndex from "./jsonwp-proxy/proxy";
|
|
180
|
+
import * as statusIndex from "./jsonwp-status/status";
|
|
181
|
+
import * as caps from "./basedriver/capabilities";
|
|
182
|
+
export { BaseDriver, DeviceSettings, PROTOCOLS, errorFromMJSONWPStatusCode as errorFromCode, DEFAULT_BASE_PATH };
|
|
183
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":""}
|
package/build/lib/index.js
CHANGED
|
@@ -1,29 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.
|
|
8
|
+
exports.ALL_COMMANDS = void 0;
|
|
9
|
+
Object.defineProperty(exports, "BaseDriver", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _driver.BaseDriver;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
exports.CREATE_SESSION_COMMAND = void 0;
|
|
7
16
|
Object.defineProperty(exports, "DEFAULT_BASE_PATH", {
|
|
8
17
|
enumerable: true,
|
|
9
18
|
get: function () {
|
|
10
19
|
return _constants.DEFAULT_BASE_PATH;
|
|
11
20
|
}
|
|
12
21
|
});
|
|
13
|
-
exports.
|
|
22
|
+
exports.DELETE_SESSION_COMMAND = exports.DEFAULT_WS_PATHNAME_PREFIX = void 0;
|
|
23
|
+
Object.defineProperty(exports, "DeviceSettings", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () {
|
|
26
|
+
return _deviceSettings.DeviceSettings;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, "DriverCore", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () {
|
|
32
|
+
return _core.DriverCore;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
exports.NO_SESSION_ID_COMMANDS = exports.METHOD_MAP = exports.JWProxy = exports.GET_STATUS_COMMAND = void 0;
|
|
14
36
|
Object.defineProperty(exports, "PROTOCOLS", {
|
|
15
37
|
enumerable: true,
|
|
16
38
|
get: function () {
|
|
17
39
|
return _constants.PROTOCOLS;
|
|
18
40
|
}
|
|
19
41
|
});
|
|
20
|
-
exports.validateCaps = exports.statusCodes = exports.server = exports.routeToCommandName = exports.routeConfiguringFunction = exports.processCapabilities = exports.normalizeBasePath = exports.isStandardCap = exports.isSessionCommand = exports.isErrorType = exports.getSummaryByCode = exports.errors = exports.errorFromW3CJsonCode = exports.errorFromMJSONWPStatusCode = exports.errorFromCode = exports.determineProtocol = exports.default = exports.STATIC_DIR =
|
|
42
|
+
exports.validateCaps = exports.statusCodes = exports.server = exports.routeToCommandName = exports.routeConfiguringFunction = exports.processCapabilities = exports.normalizeBasePath = exports.isStandardCap = exports.isSessionCommand = exports.isErrorType = exports.getSummaryByCode = exports.errors = exports.errorFromW3CJsonCode = exports.errorFromMJSONWPStatusCode = exports.errorFromCode = exports.determineProtocol = exports.default = exports.STATIC_DIR = void 0;
|
|
21
43
|
|
|
22
44
|
require("source-map-support/register");
|
|
23
45
|
|
|
24
|
-
var
|
|
46
|
+
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
47
|
+
|
|
48
|
+
var _driver = require("./basedriver/driver");
|
|
25
49
|
|
|
26
|
-
var
|
|
50
|
+
var _core = require("./basedriver/core");
|
|
51
|
+
|
|
52
|
+
var _deviceSettings = require("./basedriver/device-settings");
|
|
27
53
|
|
|
28
54
|
var protocol = _interopRequireWildcard(require("./protocol"));
|
|
29
55
|
|
|
@@ -45,18 +71,13 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
45
71
|
|
|
46
72
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
47
73
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
DeviceSettings
|
|
54
|
-
} = deviceSettings;
|
|
55
|
-
exports.DeviceSettings = DeviceSettings;
|
|
56
|
-
var _default = BaseDriver;
|
|
74
|
+
_bluebird.default.config({
|
|
75
|
+
cancellation: true
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
var _default = _driver.BaseDriver;
|
|
57
79
|
exports.default = _default;
|
|
58
80
|
const {
|
|
59
|
-
Protocol,
|
|
60
81
|
routeConfiguringFunction,
|
|
61
82
|
errors,
|
|
62
83
|
isErrorType,
|
|
@@ -67,7 +88,6 @@ const {
|
|
|
67
88
|
routeToCommandName,
|
|
68
89
|
NO_SESSION_ID_COMMANDS,
|
|
69
90
|
isSessionCommand,
|
|
70
|
-
normalizeBasePath,
|
|
71
91
|
determineProtocol,
|
|
72
92
|
CREATE_SESSION_COMMAND,
|
|
73
93
|
DELETE_SESSION_COMMAND,
|
|
@@ -77,7 +97,6 @@ exports.GET_STATUS_COMMAND = GET_STATUS_COMMAND;
|
|
|
77
97
|
exports.DELETE_SESSION_COMMAND = DELETE_SESSION_COMMAND;
|
|
78
98
|
exports.CREATE_SESSION_COMMAND = CREATE_SESSION_COMMAND;
|
|
79
99
|
exports.determineProtocol = determineProtocol;
|
|
80
|
-
exports.normalizeBasePath = normalizeBasePath;
|
|
81
100
|
exports.isSessionCommand = isSessionCommand;
|
|
82
101
|
exports.NO_SESSION_ID_COMMANDS = NO_SESSION_ID_COMMANDS;
|
|
83
102
|
exports.routeToCommandName = routeToCommandName;
|
|
@@ -88,14 +107,15 @@ exports.errorFromCode = exports.errorFromMJSONWPStatusCode = errorFromMJSONWPSta
|
|
|
88
107
|
exports.isErrorType = isErrorType;
|
|
89
108
|
exports.errors = errors;
|
|
90
109
|
exports.routeConfiguringFunction = routeConfiguringFunction;
|
|
91
|
-
exports.Protocol = Protocol;
|
|
92
110
|
const {
|
|
93
111
|
STATIC_DIR
|
|
94
112
|
} = staticIndex;
|
|
95
113
|
exports.STATIC_DIR = STATIC_DIR;
|
|
96
114
|
const {
|
|
97
|
-
server
|
|
115
|
+
server,
|
|
116
|
+
normalizeBasePath
|
|
98
117
|
} = serverIndex;
|
|
118
|
+
exports.normalizeBasePath = normalizeBasePath;
|
|
99
119
|
exports.server = server;
|
|
100
120
|
const {
|
|
101
121
|
JWProxy
|
|
@@ -119,4 +139,4 @@ const {
|
|
|
119
139
|
DEFAULT_WS_PATHNAME_PREFIX
|
|
120
140
|
} = ws;
|
|
121
141
|
exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
|
|
122
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9pbmRleC5qcyJdLCJuYW1lcyI6WyJCIiwiY29uZmlnIiwiY2FuY2VsbGF0aW9uIiwiQmFzZURyaXZlciIsInJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiIsImVycm9ycyIsImlzRXJyb3JUeXBlIiwiZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUiLCJlcnJvckZyb21XM0NKc29uQ29kZSIsIkFMTF9DT01NQU5EUyIsIk1FVEhPRF9NQVAiLCJyb3V0ZVRvQ29tbWFuZE5hbWUiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIiwiaXNTZXNzaW9uQ29tbWFuZCIsImRldGVybWluZVByb3RvY29sIiwiQ1JFQVRFX1NFU1NJT05fQ09NTUFORCIsIkRFTEVURV9TRVNTSU9OX0NPTU1BTkQiLCJHRVRfU1RBVFVTX0NPTU1BTkQiLCJwcm90b2NvbCIsIlNUQVRJQ19ESVIiLCJzdGF0aWNJbmRleCIsInNlcnZlciIsIm5vcm1hbGl6ZUJhc2VQYXRoIiwic2VydmVySW5kZXgiLCJKV1Byb3h5IiwicHJveHlJbmRleCIsImNvZGVzIiwic3RhdHVzQ29kZXMiLCJnZXRTdW1tYXJ5QnlDb2RlIiwic3RhdHVzSW5kZXgiLCJwcm9jZXNzQ2FwYWJpbGl0aWVzIiwiaXNTdGFuZGFyZENhcCIsInZhbGlkYXRlQ2FwcyIsImNhcHMiLCJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsIndzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFPQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFzQkE7O0FBSUE7O0FBS0E7O0FBS0E7O0FBS0E7O0FBS0E7Ozs7OztBQTdEQUEsa0JBQUVDLE1BQUYsQ0FBUztBQUNQQyxFQUFBQSxZQUFZLEVBQUU7QUFEUCxDQUFUOztlQVVlQyxrQjs7QUFTZixNQUFNO0FBQ0pDLEVBQUFBLHdCQURJO0FBQ3NCQyxFQUFBQSxNQUR0QjtBQUM4QkMsRUFBQUEsV0FEOUI7QUFFSkMsRUFBQUEsMEJBRkk7QUFFd0JDLEVBQUFBLG9CQUZ4QjtBQUU4Q0MsRUFBQUEsWUFGOUM7QUFFNERDLEVBQUFBLFVBRjVEO0FBR0pDLEVBQUFBLGtCQUhJO0FBR2dCQyxFQUFBQSxzQkFIaEI7QUFHd0NDLEVBQUFBLGdCQUh4QztBQUlKQyxFQUFBQSxpQkFKSTtBQUllQyxFQUFBQSxzQkFKZjtBQUtKQyxFQUFBQSxzQkFMSTtBQUtvQkMsRUFBQUE7QUFMcEIsSUFNRkMsUUFOSjs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFpQkMsV0FBdkI7O0FBSUEsTUFBTTtBQUFFQyxFQUFBQSxNQUFGO0FBQVVDLEVBQUFBO0FBQVYsSUFBZ0NDLFdBQXRDOzs7QUFLQSxNQUFNO0FBQUVDLEVBQUFBO0FBQUYsSUFBY0MsVUFBcEI7O0FBS0EsTUFBTTtBQUFFQyxFQUFBQSxLQUFLLEVBQUVDLFdBQVQ7QUFBc0JDLEVBQUFBO0FBQXRCLElBQTJDQyxXQUFqRDs7O0FBS0EsTUFBTTtBQUFFQyxFQUFBQSxtQkFBRjtBQUF1QkMsRUFBQUEsYUFBdkI7QUFBc0NDLEVBQUFBO0FBQXRDLElBQXVEQyxJQUE3RDs7OztBQUtBLE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFpQ0MsRUFBdkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG5CLmNvbmZpZyh7XG4gIGNhbmNlbGxhdGlvbjogdHJ1ZSxcbn0pO1xuXG4vLyBCYXNlRHJpdmVyIGV4cG9ydHNcbmltcG9ydCB7IEJhc2VEcml2ZXIgfSBmcm9tICcuL2Jhc2Vkcml2ZXIvZHJpdmVyJztcbmV4cG9ydCB7IERyaXZlckNvcmUgfSBmcm9tICcuL2Jhc2Vkcml2ZXIvY29yZSc7XG5pbXBvcnQgeyBEZXZpY2VTZXR0aW5ncyB9IGZyb20gJy4vYmFzZWRyaXZlci9kZXZpY2Utc2V0dGluZ3MnO1xuXG5leHBvcnQgeyBCYXNlRHJpdmVyLCBEZXZpY2VTZXR0aW5ncyB9O1xuZXhwb3J0IGRlZmF1bHQgQmFzZURyaXZlcjtcblxuXG4vLyBNSlNPTldQIGV4cG9ydHNcbmltcG9ydCAqIGFzIHByb3RvY29sIGZyb20gJy4vcHJvdG9jb2wnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9CQVNFX1BBVEgsIFBST1RPQ09MU1xufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IHtcbiAgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLCBlcnJvcnMsIGlzRXJyb3JUeXBlLFxuICBlcnJvckZyb21NSlNPTldQU3RhdHVzQ29kZSwgZXJyb3JGcm9tVzNDSnNvbkNvZGUsIEFMTF9DT01NQU5EUywgTUVUSE9EX01BUCxcbiAgcm91dGVUb0NvbW1hbmROYW1lLCBOT19TRVNTSU9OX0lEX0NPTU1BTkRTLCBpc1Nlc3Npb25Db21tYW5kLFxuICBkZXRlcm1pbmVQcm90b2NvbCwgQ1JFQVRFX1NFU1NJT05fQ09NTUFORCxcbiAgREVMRVRFX1NFU1NJT05fQ09NTUFORCwgR0VUX1NUQVRVU19DT01NQU5ELFxufSA9IHByb3RvY29sO1xuXG5leHBvcnQge1xuICByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sIGVycm9ycywgaXNFcnJvclR5cGUsIFBST1RPQ09MUyxcbiAgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUsIGVycm9yRnJvbVczQ0pzb25Db2RlLCBkZXRlcm1pbmVQcm90b2NvbCxcbiAgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUgYXMgZXJyb3JGcm9tQ29kZSwgQUxMX0NPTU1BTkRTLCBNRVRIT0RfTUFQLFxuICByb3V0ZVRvQ29tbWFuZE5hbWUsIE5PX1NFU1NJT05fSURfQ09NTUFORFMsIGlzU2Vzc2lvbkNvbW1hbmQsXG4gIERFRkFVTFRfQkFTRV9QQVRILCBDUkVBVEVfU0VTU0lPTl9DT01NQU5ELFxuICBERUxFVEVfU0VTU0lPTl9DT01NQU5ELCBHRVRfU1RBVFVTX0NPTU1BTkQsXG59O1xuXG4vLyBFeHByZXNzIGV4cG9ydHNcbmltcG9ydCAqIGFzIHN0YXRpY0luZGV4IGZyb20gJy4vZXhwcmVzcy9zdGF0aWMnO1xuY29uc3QgeyBTVEFUSUNfRElSIH0gPSBzdGF0aWNJbmRleDtcbmV4cG9ydCB7IFNUQVRJQ19ESVIgfTtcblxuaW1wb3J0ICogYXMgc2VydmVySW5kZXggZnJvbSAnLi9leHByZXNzL3NlcnZlcic7XG5jb25zdCB7IHNlcnZlciwgbm9ybWFsaXplQmFzZVBhdGggfSA9IHNlcnZlckluZGV4O1xuZXhwb3J0IHsgc2VydmVyLCBub3JtYWxpemVCYXNlUGF0aCB9O1xuXG4vLyBqc29ud3AtcHJveHkgZXhwb3J0c1xuaW1wb3J0ICogYXMgcHJveHlJbmRleCBmcm9tICcuL2pzb253cC1wcm94eS9wcm94eSc7XG5jb25zdCB7IEpXUHJveHkgfSA9IHByb3h5SW5kZXg7XG5leHBvcnQgeyBKV1Byb3h5IH07XG5cbi8vIGpzb253cC1zdGF0dXMgZXhwb3J0c1xuaW1wb3J0ICogYXMgc3RhdHVzSW5kZXggZnJvbSAnLi9qc29ud3Atc3RhdHVzL3N0YXR1cyc7XG5jb25zdCB7IGNvZGVzOiBzdGF0dXNDb2RlcywgZ2V0U3VtbWFyeUJ5Q29kZSB9ID0gc3RhdHVzSW5kZXg7XG5leHBvcnQgeyBzdGF0dXNDb2RlcywgZ2V0U3VtbWFyeUJ5Q29kZSB9O1xuXG4vLyBXM0MgY2FwYWJpbGl0aWVzIHBhcnNlclxuaW1wb3J0ICogYXMgY2FwcyBmcm9tICcuL2Jhc2Vkcml2ZXIvY2FwYWJpbGl0aWVzJztcbmNvbnN0IHsgcHJvY2Vzc0NhcGFiaWxpdGllcywgaXNTdGFuZGFyZENhcCwgdmFsaWRhdGVDYXBzIH0gPSBjYXBzO1xuZXhwb3J0IHsgcHJvY2Vzc0NhcGFiaWxpdGllcywgaXNTdGFuZGFyZENhcCwgdmFsaWRhdGVDYXBzIH07XG5cbi8vIFdlYiBzb2NrZXQgaGVscGVyc1xuaW1wb3J0ICogYXMgd3MgZnJvbSAnLi9leHByZXNzL3dlYnNvY2tldCc7XG5jb25zdCB7IERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYIH0gPSB3cztcbmV4cG9ydCB7IERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYIH07XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export const COMMAND_URLS_CONFLICTS: {
|
|
2
|
+
commandNames: string[];
|
|
3
|
+
jsonwpConverter: (url: any) => any;
|
|
4
|
+
w3cConverter: (url: any) => any;
|
|
5
|
+
}[];
|
|
6
|
+
export default ProtocolConverter;
|
|
7
|
+
declare class ProtocolConverter {
|
|
8
|
+
constructor(proxyFunc: any, log?: null);
|
|
9
|
+
proxyFunc: any;
|
|
10
|
+
_downstreamProtocol: any;
|
|
11
|
+
_log: any;
|
|
12
|
+
get log(): any;
|
|
13
|
+
set downstreamProtocol(arg: any);
|
|
14
|
+
get downstreamProtocol(): any;
|
|
15
|
+
/**
|
|
16
|
+
* W3C /timeouts can take as many as 3 timeout types at once, MJSONWP /timeouts only takes one
|
|
17
|
+
* at a time. So if we're using W3C and proxying to MJSONWP and there's more than one timeout type
|
|
18
|
+
* provided in the request, we need to do 3 proxies and combine the result
|
|
19
|
+
*
|
|
20
|
+
* @param {Object} body Request body
|
|
21
|
+
* @return {Array} Array of W3C + MJSONWP compatible timeout objects
|
|
22
|
+
*/
|
|
23
|
+
getTimeoutRequestObjects(body: any): any[];
|
|
24
|
+
/**
|
|
25
|
+
* Proxy an array of timeout objects and merge the result
|
|
26
|
+
* @param {String} url Endpoint url
|
|
27
|
+
* @param {String} method Endpoint method
|
|
28
|
+
* @param {Object} body Request body
|
|
29
|
+
*/
|
|
30
|
+
proxySetTimeouts(url: string, method: string, body: any): Promise<any[]>;
|
|
31
|
+
proxySetWindow(url: any, method: any, body: any): Promise<any>;
|
|
32
|
+
proxySetValue(url: any, method: any, body: any): Promise<any>;
|
|
33
|
+
proxySetFrame(url: any, method: any, body: any): Promise<any>;
|
|
34
|
+
proxyPerformActions(url: any, method: any, body: any): Promise<any>;
|
|
35
|
+
proxyReleaseActions(url: any, method: any): Promise<any>;
|
|
36
|
+
/**
|
|
37
|
+
* Handle "crossing" endpoints for the case
|
|
38
|
+
* when upstream and downstream drivers operate different protocols
|
|
39
|
+
*
|
|
40
|
+
* @param {string} commandName
|
|
41
|
+
* @param {string} url
|
|
42
|
+
* @param {string} method
|
|
43
|
+
* @param {?string|object} body
|
|
44
|
+
* @returns The proxyfying result as [response, responseBody] tuple
|
|
45
|
+
*/
|
|
46
|
+
convertAndProxy(commandName: string, url: string, method: string, body: (string | object) | null): Promise<any>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=protocol-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-converter.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"names":[],"mappings":"AAOA;;;;IAqCE;;AAKF;IACE,wCAIC;IAHC,eAA0B;IAC1B,yBAA+B;IAC/B,UAAe;IAGjB,eAEC;IAED,iCAEC;IAED,8BAEC;IAED;;;;;;;OAOG;IACH,2CAsBC;IAED;;;;;OAKG;IACH,yEAqBC;IAED,+DAoBC;IAED,8DAsBC;IAED,8DAQC;IAED,oEAKC;IAED,yDAEC;IAED;;;;;;;;;OASG;IACH,6BANW,MAAM,OACN,MAAM,UACN,MAAM,SACL,MAAM,GAAC,MAAM,wBA+CxB;CACF"}
|