@appium/execute-driver-plugin 1.0.1 → 1.0.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/LICENSE CHANGED
@@ -178,7 +178,7 @@
178
178
  APPENDIX: How to apply the Apache License to your work.
179
179
 
180
180
  To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "[]"
181
+ boilerplate notice, with the fields enclosed by brackets "{}"
182
182
  replaced with your own identifying information. (Don't include
183
183
  the brackets!) The text should be enclosed in the appropriate
184
184
  comment syntax for the file format. We also recommend that a
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright 2021 OpenJS Foundation
189
+ Copyright JS Foundation and other contributors, https://js.foundation
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
@@ -0,0 +1,3 @@
1
+ export const W3C_ELEMENT_KEY: "element-6066-11e4-a52e-4f735466cecf";
2
+ export const MJSONWP_ELEMENT_KEY: "ELEMENT";
3
+ //# sourceMappingURL=execute-child.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-child.d.ts","sourceRoot":"","sources":["../../lib/execute-child.js"],"names":[],"mappings":"AAWA,oEAA+D;AAC/D,4CAA6C"}
@@ -1,129 +1,139 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MJSONWP_ELEMENT_KEY = exports.W3C_ELEMENT_KEY = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const bluebird_1 = __importDefault(require("bluebird"));
9
- const vm2_1 = require("vm2");
10
- const support_1 = require("@appium/support");
11
- const webdriverio_1 = require("webdriverio");
12
- const log = support_1.logger.getLogger('ExecuteDriver Child');
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.W3C_ELEMENT_KEY = exports.MJSONWP_ELEMENT_KEY = void 0;
9
+
10
+ require("source-map-support/register");
11
+
12
+ var _lodash = _interopRequireDefault(require("lodash"));
13
+
14
+ var _bluebird = _interopRequireDefault(require("bluebird"));
15
+
16
+ var _vm = require("vm2");
17
+
18
+ var _support = require("@appium/support");
19
+
20
+ var _webdriverio = require("webdriverio");
21
+
22
+ const log = _support.logger.getLogger('ExecuteDriver Child');
23
+
13
24
  let send;
14
- // duplicate defining these keys here so we don't need to re-load a huge appium
15
- // dependency tree into memory just to run a wdio script
16
- exports.W3C_ELEMENT_KEY = support_1.util.W3C_WEB_ELEMENT_IDENTIFIER;
17
- exports.MJSONWP_ELEMENT_KEY = 'ELEMENT';
25
+ const W3C_ELEMENT_KEY = _support.util.W3C_WEB_ELEMENT_IDENTIFIER;
26
+ exports.W3C_ELEMENT_KEY = W3C_ELEMENT_KEY;
27
+ const MJSONWP_ELEMENT_KEY = 'ELEMENT';
28
+ exports.MJSONWP_ELEMENT_KEY = MJSONWP_ELEMENT_KEY;
29
+
18
30
  async function runScript(driverOpts, script, timeoutMs) {
19
- if (!lodash_1.default.isNumber(timeoutMs)) {
20
- throw new TypeError('Timeout parameter must be a number');
21
- }
22
- // set up fake logger
23
- const logLevels = ['error', 'warn', 'log'];
24
- const logs = {};
25
- const consoleFns = {};
26
- for (const level of logLevels) {
27
- logs[level] = [];
28
- consoleFns[level] = (...logMsgs) => logs[level].push(...logMsgs);
29
- }
30
- const driver = await (0, webdriverio_1.attach)(driverOpts);
31
- const fullScript = buildScript(script);
32
- log.info('Running driver script in Node vm');
33
- const vmCtx = new vm2_1.NodeVM({ timeout: timeoutMs });
34
- const vmFn = vmCtx.run(fullScript);
35
- // run the driver script, giving user access to the driver object, a fake
36
- // console logger, and a promise library
37
- let result = await vmFn(driver, consoleFns, bluebird_1.default);
38
- result = coerceScriptResult(result);
39
- log.info('Successfully ensured driver script result is appropriate type for return');
40
- return { result, logs };
31
+ if (!_lodash.default.isNumber(timeoutMs)) {
32
+ throw new TypeError('Timeout parameter must be a number');
33
+ }
34
+
35
+ const logLevels = ['error', 'warn', 'log'];
36
+ const logs = {};
37
+ const consoleFns = {};
38
+
39
+ for (const level of logLevels) {
40
+ logs[level] = [];
41
+
42
+ consoleFns[level] = (...logMsgs) => logs[level].push(...logMsgs);
43
+ }
44
+
45
+ const driver = await (0, _webdriverio.attach)(driverOpts);
46
+ const fullScript = buildScript(script);
47
+ log.info('Running driver script in Node vm');
48
+ const vmCtx = new _vm.NodeVM({
49
+ timeout: timeoutMs
50
+ });
51
+ const vmFn = vmCtx.run(fullScript);
52
+ let result = await vmFn(driver, consoleFns, _bluebird.default);
53
+ result = coerceScriptResult(result);
54
+ log.info('Successfully ensured driver script result is appropriate type for return');
55
+ return {
56
+ result,
57
+ logs
58
+ };
41
59
  }
42
- /**
43
- * Embed a user-generated script inside a method which takes only the
44
- * predetermined objects we specify
45
- *
46
- * @param {string} script - the javascript to execute
47
- *
48
- * @return {string} - the full script to execute
49
- */
60
+
50
61
  function buildScript(script) {
51
- return `module.exports = async function execute (driver, console, Promise) {
62
+ return `module.exports = async function execute (driver, console, Promise) {
52
63
  ${script}
53
64
  }`;
54
65
  }
55
- /**
56
- * We can get any manner of crazy thing back from a vm executing untrusted
57
- * code. We might also get WebdriverIO objects that aren't suitable for JSON
58
- * response. So make sure we convert the things we know about to their
59
- * appropriate response format, and squash other weird things.
60
- *
61
- * @param {Object} obj - object to convert and sanitize
62
- *
63
- * @return {Object} - safely converted object
64
- */
66
+
65
67
  function coerceScriptResult(obj) {
66
- // first ensure obj is of a type that can be JSON encoded safely. This will
67
- // get rid of custom objects, functions, etc... and turn them into POJOs
68
- try {
69
- obj = JSON.parse(JSON.stringify(obj));
70
- }
71
- catch (e) {
72
- log.warn('Could not convert executeDriverScript to safe response!' +
73
- `Result was: ${JSON.stringify(obj)}. Will make it null`);
74
- return null;
68
+ try {
69
+ obj = JSON.parse(JSON.stringify(obj));
70
+ } catch (e) {
71
+ log.warn('Could not convert executeDriverScript to safe response!' + `Result was: ${JSON.stringify(obj)}. Will make it null`);
72
+ return null;
73
+ }
74
+
75
+ let res;
76
+
77
+ if (_lodash.default.isPlainObject(obj)) {
78
+ res = {};
79
+
80
+ if (obj[MJSONWP_ELEMENT_KEY] || obj[W3C_ELEMENT_KEY]) {
81
+ if (obj[MJSONWP_ELEMENT_KEY]) {
82
+ res[MJSONWP_ELEMENT_KEY] = obj[MJSONWP_ELEMENT_KEY];
83
+ }
84
+
85
+ if (obj[W3C_ELEMENT_KEY]) {
86
+ res[W3C_ELEMENT_KEY] = obj[W3C_ELEMENT_KEY];
87
+ }
88
+
89
+ return res;
75
90
  }
76
- let res;
77
- // now we begin our recursive case options
78
- if (lodash_1.default.isPlainObject(obj)) {
79
- // if we have an object, it's either an element object or something else
80
- // webdriverio has no monadic object types other than element and driver,
81
- // and we don't want to allow special casing return of driver
82
- res = {};
83
- if (obj[exports.MJSONWP_ELEMENT_KEY] || obj[exports.W3C_ELEMENT_KEY]) {
84
- // if it's an element object, clear out anything that's not the key, and then return the
85
- // object. Note that if the element object contains only one element key type (MJSONWP or
86
- // W3C), keep it that way in our response. But if the element contains both key types
87
- // (because the client is being backwards compatible) then keep both keys in our response as
88
- // well.
89
- if (obj[exports.MJSONWP_ELEMENT_KEY]) {
90
- res[exports.MJSONWP_ELEMENT_KEY] = obj[exports.MJSONWP_ELEMENT_KEY];
91
- }
92
- if (obj[exports.W3C_ELEMENT_KEY]) {
93
- res[exports.W3C_ELEMENT_KEY] = obj[exports.W3C_ELEMENT_KEY];
94
- }
95
- return res;
96
- }
97
- // otherwise, recurse into the object
98
- for (const key of Object.keys(obj)) {
99
- res[key] = coerceScriptResult(obj[key]);
100
- }
101
- return res;
91
+
92
+ for (const key of Object.keys(obj)) {
93
+ res[key] = coerceScriptResult(obj[key]);
102
94
  }
103
- // also handle arrays
104
- if (lodash_1.default.isArray(obj)) {
105
- return obj.map(coerceScriptResult);
106
- }
107
- // base case, if it's not an object or array, return straightaway
108
- return obj;
95
+
96
+ return res;
97
+ }
98
+
99
+ if (_lodash.default.isArray(obj)) {
100
+ return obj.map(coerceScriptResult);
101
+ }
102
+
103
+ return obj;
109
104
  }
105
+
110
106
  async function main(driverOpts, script, timeoutMs) {
111
- let res;
112
- try {
113
- res = { success: await runScript(driverOpts, script, timeoutMs) };
114
- }
115
- catch (error) {
116
- res = { error: { message: error.message, stack: error.stack } };
117
- }
118
- await send(res);
107
+ let res;
108
+
109
+ try {
110
+ res = {
111
+ success: await runScript(driverOpts, script, timeoutMs)
112
+ };
113
+ } catch (error) {
114
+ res = {
115
+ error: {
116
+ message: error.message,
117
+ stack: error.stack
118
+ }
119
+ };
120
+ }
121
+
122
+ await send(res);
119
123
  }
120
- // ensure we're running this script in IPC mode
121
- if (require.main === module && lodash_1.default.isFunction(process.send)) {
122
- send = bluebird_1.default.promisify(process.send, { context: process });
123
- log.info('Running driver execution in child process');
124
- process.on('message', ({ driverOpts, script, timeoutMs }) => {
125
- log.info('Parameters received from parent process');
126
- main(driverOpts, script, timeoutMs);
127
- });
124
+
125
+ if (require.main === module && _lodash.default.isFunction(process.send)) {
126
+ send = _bluebird.default.promisify(process.send, {
127
+ context: process
128
+ });
129
+ log.info('Running driver execution in child process');
130
+ process.on('message', ({
131
+ driverOpts,
132
+ script,
133
+ timeoutMs
134
+ }) => {
135
+ log.info('Parameters received from parent process');
136
+ main(driverOpts, script, timeoutMs);
137
+ });
128
138
  }
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1jaGlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leGVjdXRlLWNoaWxkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUF1QjtBQUN2Qix3REFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQUErQztBQUMvQyw2Q0FBcUM7QUFFckMsTUFBTSxHQUFHLEdBQUcsZ0JBQU0sQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNwRCxJQUFJLElBQUksQ0FBQztBQUVULCtFQUErRTtBQUMvRSx3REFBd0Q7QUFDM0MsUUFBQSxlQUFlLEdBQUcsY0FBSSxDQUFDLDBCQUEwQixDQUFDO0FBQ2xELFFBQUEsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBRTdDLEtBQUssVUFBVSxTQUFTLENBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTO0lBQ3JELElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUMxQixNQUFNLElBQUksU0FBUyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7S0FDM0Q7SUFFRCxxQkFBcUI7SUFDckIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLEVBQUU7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqQixVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLG9CQUFNLEVBQUMsVUFB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
139
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9leGVjdXRlLWNoaWxkLmpzIl0sIm5hbWVzIjpbImxvZyIsImxvZ2dlciIsImdldExvZ2dlciIsInNlbmQiLCJXM0NfRUxFTUVOVF9LRVkiLCJ1dGlsIiwiVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVIiLCJNSlNPTldQX0VMRU1FTlRfS0VZIiwicnVuU2NyaXB0IiwiZHJpdmVyT3B0cyIsInNjcmlwdCIsInRpbWVvdXRNcyIsIl8iLCJpc051bWJlciIsIlR5cGVFcnJvciIsImxvZ0xldmVscyIsImxvZ3MiLCJjb25zb2xlRm5zIiwibGV2ZWwiLCJsb2dNc2dzIiwicHVzaCIsImRyaXZlciIsImZ1bGxTY3JpcHQiLCJidWlsZFNjcmlwdCIsImluZm8iLCJ2bUN0eCIsIk5vZGVWTSIsInRpbWVvdXQiLCJ2bUZuIiwicnVuIiwicmVzdWx0IiwiQiIsImNvZXJjZVNjcmlwdFJlc3VsdCIsIm9iaiIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImUiLCJ3YXJuIiwicmVzIiwiaXNQbGFpbk9iamVjdCIsImtleSIsIk9iamVjdCIsImtleXMiLCJpc0FycmF5IiwibWFwIiwibWFpbiIsInN1Y2Nlc3MiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsInJlcXVpcmUiLCJtb2R1bGUiLCJpc0Z1bmN0aW9uIiwicHJvY2VzcyIsInByb21pc2lmeSIsImNvbnRleHQiLCJvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLHFCQUFqQixDQUFaOztBQUNBLElBQUlDLElBQUo7QUFJTyxNQUFNQyxlQUFlLEdBQUdDLGNBQUtDLDBCQUE3Qjs7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyxTQUE1Qjs7O0FBRVAsZUFBZUMsU0FBZixDQUEwQkMsVUFBMUIsRUFBc0NDLE1BQXRDLEVBQThDQyxTQUE5QyxFQUF5RDtBQUN2RCxNQUFJLENB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RCxLQUFxQztBQUN6RFgsSUFBQUEsR0FBRyxDQUFDd0IsSUFBSixDQUFTLHlDQUFUO0FBQ0FzQixJQUFBQSxJQUFJLENBQUNyQyxVQUFELEVBQWFDLE1BQWIsRUFBcUJDLFNBQXJCLENBQUo7QUFDRCxHQUhEO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgTm9kZVZNIH0gZnJvbSAndm0yJztcbmltcG9ydCB7IGxvZ2dlciwgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBhdHRhY2ggfSBmcm9tICd3ZWJkcml2ZXJpbyc7XG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ0V4ZWN1dGVEcml2ZXIgQ2hpbGQnKTtcbmxldCBzZW5kO1xuXG4vLyBkdXBsaWNhdGUgZGVmaW5pbmcgdGhlc2Uga2V5cyBoZXJlIHNvIHdlIGRvbid0IG5lZWQgdG8gcmUtbG9hZCBhIGh1Z2UgYXBwaXVtXG4vLyBkZXBlbmRlbmN5IHRyZWUgaW50byBtZW1vcnkganVzdCB0byBydW4gYSB3ZGlvIHNjcmlwdFxuZXhwb3J0IGNvbnN0IFczQ19FTEVNRU5UX0tFWSA9IHV0aWwuVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVI7XG5leHBvcnQgY29uc3QgTUpTT05XUF9FTEVNRU5UX0tFWSA9ICdFTEVNRU5UJztcblxuYXN5bmMgZnVuY3Rpb24gcnVuU2NyaXB0IChkcml2ZXJPcHRzLCBzY3JpcHQsIHRpbWVvdXRNcykge1xuICBpZiAoIV8uaXNOdW1iZXIodGltZW91dE1zKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RpbWVvdXQgcGFyYW1ldGVyIG11c3QgYmUgYSBudW1iZXInKTtcbiAgfVxuXG4gIC8vIHNldCB1cCBmYWtlIGxvZ2dlclxuICBjb25zdCBsb2dMZXZlbHMgPSBbJ2Vycm9yJywgJ3dhcm4nLCAnbG9nJ107XG4gIGNvbnN0IGxvZ3MgPSB7fTtcbiAgY29uc3QgY29uc29sZUZucyA9IHt9O1xuICBmb3IgKGNvbnN0IGxldmVsIG9mIGxvZ0xldmVscykge1xuICAgIGxvZ3NbbGV2ZWxdID0gW107XG4gICAgY29uc29sZUZuc1tsZXZlbF0gPSAoLi4ubG9nTXNncykgPT4gbG9nc1tsZXZlbF0ucHVzaCguLi5sb2dNc2dzKTtcbiAgfVxuXG4gIGNvbnN0IGRyaXZlciA9IGF3YWl0IGF0dGFjaChkcml2ZXJPcHRzKTtcblxuICBjb25zdCBmdWxsU2NyaXB0ID0gYnVpbGRTY3JpcHQoc2NyaXB0KTtcblxuICBsb2cuaW5mbygnUnVubmluZyBkcml2ZXIgc2NyaXB0IGluIE5vZGUgdm0nKTtcblxuICBjb25zdCB2bUN0eCA9IG5ldyBOb2RlVk0oe3RpbWVvdXQ6IHRpbWVvdXRNc30pO1xuICBjb25zdCB2bUZuID0gdm1DdHgucnVuKGZ1bGxTY3JpcHQpO1xuXG4gIC8vIHJ1biB0aGUgZHJpdmVyIHNjcmlwdCwgZ2l2aW5nIHVzZXIgYWNjZXNzIHRvIHRoZSBkcml2ZXIgb2JqZWN0LCBhIGZha2VcbiAgLy8gY29uc29sZSBsb2dnZXIsIGFuZCBhIHByb21pc2UgbGlicmFyeVxuICBsZXQgcmVzdWx0ID0gYXdhaXQgdm1Gbihkcml2ZXIsIGNvbnNvbGVGbnMsIEIpO1xuXG4gIHJlc3VsdCA9IGNvZXJjZVNjcmlwdFJlc3VsdChyZXN1bHQpO1xuICBsb2cuaW5mbygnU3VjY2Vzc2Z1bGx5IGVuc3VyZWQgZHJpdmVyIHNjcmlwdCByZXN1bHQgaXMgYXBwcm9wcmlhdGUgdHlwZSBmb3IgcmV0dXJuJyk7XG4gIHJldHVybiB7cmVzdWx0LCBsb2dzfTtcbn1cblxuLyoqXG4gKiBFbWJlZCBhIHVzZXItZ2VuZXJhdGVkIHNjcmlwdCBpbnNpZGUgYSBtZXRob2Qgd2hpY2ggdGFrZXMgb25seSB0aGVcbiAqIHByZWRldGVybWluZWQgb2JqZWN0cyB3ZSBzcGVjaWZ5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHNjcmlwdCAtIHRoZSBqYXZhc2NyaXB0IHRvIGV4ZWN1dGVcbiAqXG4gKiBAcmV0dXJuIHtzdHJpbmd9IC0gdGhlIGZ1bGwgc2NyaXB0IHRvIGV4ZWN1dGVcbiAqL1xuZnVuY3Rpb24gYnVpbGRTY3JpcHQgKHNjcmlwdCkge1xuICByZXR1cm4gYG1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZSAoZHJpdmVyLCBjb25zb2xlLCBQcm9taXNlKSB7XG4gICAgJHtzY3JpcHR9XG4gIH1gO1xufVxuXG4vKipcbiAqIFdlIGNhbiBnZXQgYW55IG1hbm5lciBvZiBjcmF6eSB0aGluZyBiYWNrIGZyb20gYSB2bSBleGVjdXRpbmcgdW50cnVzdGVkXG4gKiBjb2RlLiBXZSBtaWdodCBhbHNvIGdldCBXZWJkcml2ZXJJTyBvYmplY3RzIHRoYXQgYXJlbid0IHN1aXRhYmxlIGZvciBKU09OXG4gKiByZXNwb25zZS4gU28gbWFrZSBzdXJlIHdlIGNvbnZlcnQgdGhlIHRoaW5ncyB3ZSBrbm93IGFib3V0IHRvIHRoZWlyXG4gKiBhcHByb3ByaWF0ZSByZXNwb25zZSBmb3JtYXQsIGFuZCBzcXVhc2ggb3RoZXIgd2VpcmQgdGhpbmdzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSBvYmplY3QgdG8gY29udmVydCBhbmQgc2FuaXRpemVcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9IC0gc2FmZWx5IGNvbnZlcnRlZCBvYmplY3RcbiAqL1xuZnVuY3Rpb24gY29lcmNlU2NyaXB0UmVzdWx0IChvYmopIHtcbiAgLy8gZmlyc3QgZW5zdXJlIG9iaiBpcyBvZiBhIHR5cGUgdGhhdCBjYW4gYmUgSlNPTiBlbmNvZGVkIHNhZmVseS4gVGhpcyB3aWxsXG4gIC8vIGdldCByaWQgb2YgY3VzdG9tIG9iamVjdHMsIGZ1bmN0aW9ucywgZXRjLi4uIGFuZCB0dXJuIHRoZW0gaW50byBQT0pPc1xuICB0cnkge1xuICAgIG9iaiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2cud2FybignQ291bGQgbm90IGNvbnZlcnQgZXhlY3V0ZURyaXZlclNjcmlwdCB0byBzYWZlIHJlc3BvbnNlIScgK1xuICAgICAgICAgICAgIGBSZXN1bHQgd2FzOiAke0pTT04uc3RyaW5naWZ5KG9iail9LiBXaWxsIG1ha2UgaXQgbnVsbGApO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IHJlcztcblxuICAvLyBub3cgd2UgYmVnaW4gb3VyIHJlY3Vyc2l2ZSBjYXNlIG9wdGlvbnNcbiAgaWYgKF8uaXNQbGFpbk9iamVjdChvYmopKSB7XG4gICAgLy8gaWYgd2UgaGF2ZSBhbiBvYmplY3QsIGl0J3MgZWl0aGVyIGFuIGVsZW1lbnQgb2JqZWN0IG9yIHNvbWV0aGluZyBlbHNlXG4gICAgLy8gd2ViZHJpdmVyaW8gaGFzIG5vIG1vbmFkaWMgb2JqZWN0IHR5cGVzIG90aGVyIHRoYW4gZWxlbWVudCBhbmQgZHJpdmVyLFxuICAgIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIGFsbG93IHNwZWNpYWwgY2FzaW5nIHJldHVybiBvZiBkcml2ZXJcbiAgICByZXMgPSB7fTtcblxuICAgIGlmIChvYmpbTUpTT05XUF9FTEVNRU5UX0tFWV0gfHwgb2JqW1czQ19FTEVNRU5UX0tFWV0pIHtcbiAgICAgIC8vIGlmIGl0J3MgYW4gZWxlbWVudCBvYmplY3QsIGNsZWFyIG91dCBhbnl0aGluZyB0aGF0J3Mgbm90IHRoZSBrZXksIGFuZCB0aGVuIHJldHVybiB0aGVcbiAgICAgIC8vIG9iamVjdC4gTm90ZSB0aGF0IGlmIHRoZSBlbGVtZW50IG9iamVjdCBjb250YWlucyBvbmx5IG9uZSBlbGVtZW50IGtleSB0eXBlIChNSlNPTldQIG9yXG4gICAgICAvLyBXM0MpLCBrZWVwIGl0IHRoYXQgd2F5IGluIG91ciByZXNwb25zZS4gQnV0IGlmIHRoZSBlbGVtZW50IGNvbnRhaW5zIGJvdGgga2V5IHR5cGVzXG4gICAgICAvLyAoYmVjYXVzZSB0aGUgY2xpZW50IGlzIGJlaW5nIGJhY2t3YXJkcyBjb21wYXRpYmxlKSB0aGVuIGtlZXAgYm90aCBrZXlzIGluIG91ciByZXNwb25zZSBhc1xuICAgICAgLy8gd2VsbC5cbiAgICAgIGlmIChvYmpbTUpTT05XUF9FTEVNRU5UX0tFWV0pIHtcbiAgICAgICAgcmVzW01KU09OV1BfRUxFTUVOVF9LRVldID0gb2JqW01KU09OV1BfRUxFTUVOVF9LRVldO1xuICAgICAgfVxuXG4gICAgICBpZiAob2JqW1czQ19FTEVNRU5UX0tFWV0pIHtcbiAgICAgICAgcmVzW1czQ19FTEVNRU5UX0tFWV0gPSBvYmpbVzNDX0VMRU1FTlRfS0VZXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgLy8gb3RoZXJ3aXNlLCByZWN1cnNlIGludG8gdGhlIG9iamVjdFxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICAgIHJlc1trZXldID0gY29lcmNlU2NyaXB0UmVzdWx0KG9ialtrZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8vIGFsc28gaGFuZGxlIGFycmF5c1xuICBpZiAoXy5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLm1hcChjb2VyY2VTY3JpcHRSZXN1bHQpO1xuICB9XG5cbiAgLy8gYmFzZSBjYXNlLCBpZiBpdCdzIG5vdCBhbiBvYmplY3Qgb3IgYXJyYXksIHJldHVybiBzdHJhaWdodGF3YXlcbiAgcmV0dXJuIG9iajtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbiAoZHJpdmVyT3B0cywgc2NyaXB0LCB0aW1lb3V0TXMpIHtcbiAgbGV0IHJlcztcbiAgdHJ5IHtcbiAgICByZXMgPSB7c3VjY2VzczogYXdhaXQgcnVuU2NyaXB0KGRyaXZlck9wdHMsIHNjcmlwdCwgdGltZW91dE1zKX07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVzID0ge2Vycm9yOiB7bWVzc2FnZTogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrfX07XG4gIH1cbiAgYXdhaXQgc2VuZChyZXMpO1xufVxuXG4vLyBlbnN1cmUgd2UncmUgcnVubmluZyB0aGlzIHNjcmlwdCBpbiBJUEMgbW9kZVxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlICYmIF8uaXNGdW5jdGlvbihwcm9jZXNzLnNlbmQpKSB7XG4gIHNlbmQgPSBCLnByb21pc2lmeShwcm9jZXNzLnNlbmQsIHtjb250ZXh0OiBwcm9jZXNzfSk7XG4gIGxvZy5pbmZvKCdSdW5uaW5nIGRyaXZlciBleGVjdXRpb24gaW4gY2hpbGQgcHJvY2VzcycpO1xuICBwcm9jZXNzLm9uKCdtZXNzYWdlJywgKHtkcml2ZXJPcHRzLCBzY3JpcHQsIHRpbWVvdXRNc30pID0+IHtcbiAgICBsb2cuaW5mbygnUGFyYW1ldGVycyByZWNlaXZlZCBmcm9tIHBhcmVudCBwcm9jZXNzJyk7XG4gICAgbWFpbihkcml2ZXJPcHRzLCBzY3JpcHQsIHRpbWVvdXRNcyk7XG4gIH0pO1xufVxuIl19
@@ -0,0 +1,31 @@
1
+ export default class ExecuteDriverPlugin extends BasePlugin {
2
+ static newMethodMap: {
3
+ '/session/:sessionId/appium/execute_driver': {
4
+ POST: {
5
+ command: string;
6
+ payloadParams: {
7
+ required: string[];
8
+ optional: string[];
9
+ };
10
+ };
11
+ };
12
+ };
13
+ /**
14
+ * This method takes a string which is executed as javascript in the context of
15
+ * a new nodejs VM, and which has available a webdriverio driver object, having
16
+ * already been attached to the currently running session.
17
+ *
18
+ * @param {function} next - standard behaviour for executeDriverScript
19
+ * @param {BaseDriver} driver - Appium driver handling this command
20
+ * @param {string} script - the string representing the driver script to run
21
+ * @param {string} [scriptType='webdriverio'] - the name of the driver script
22
+ * library (currently only webdriverio is supported)
23
+ * @param {number} [timeoutMs=3600000] - timeout for the script process
24
+ *
25
+ * @returns {Object} - a JSONifiable object representing the return value of
26
+ * the script
27
+ */
28
+ executeDriverScript(next: Function, driver: BaseDriver, script: string, scriptType?: string | undefined, timeoutMs?: number | undefined): any;
29
+ }
30
+ import BasePlugin from "@appium/base-plugin";
31
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"AAUA;IAEE;;;;;;;;;;MAOE;IAEF;;;;;;;;;;;;;;OAcG;IACH,gEARW,MAAM,wEAmHhB;CACF"}