@appium/execute-driver-plugin 3.0.34 → 3.0.35

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.
@@ -1 +1 @@
1
- {"version":3,"file":"execute-child.d.ts","sourceRoot":"","sources":["../../lib/execute-child.js"],"names":[],"mappings":"AAaA,oEAA+D;AAC/D,4CAA6C;;;;;gBA2J/B,GAAG;;;;YACH,MAAM;;;;eACN,MAAM;;;cAKN,GAAG;;;;aAMH,GAAG;WACH,GAAG;;;YAKH,GAAG;UACH,MAAM"}
1
+ {"version":3,"file":"execute-child.d.ts","sourceRoot":"","sources":["../../lib/execute-child.js"],"names":[],"mappings":"AAaA,oEAA+D;AAC/D,4CAA6C;;;;;gBA8I/B,GAAG;;;;YACH,MAAM;;;;eACN,MAAM;;;cAKN,GAAG;;;;aAMH,GAAG;WACH,GAAG;;;YAKH,GAAG;UACH,MAAM"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MJSONWP_ELEMENT_KEY = exports.W3C_ELEMENT_KEY = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const bluebird_1 = __importDefault(require("bluebird"));
9
- const vm2_1 = require("vm2");
9
+ const node_vm_1 = __importDefault(require("node:vm"));
10
10
  const support_1 = require("appium/support");
11
11
  const log = support_1.logger.getLogger('ExecuteDriver Child');
12
12
  /**
@@ -41,30 +41,15 @@ async function runScript(eventParams) {
41
41
  }
42
42
  const { attach } = await import('webdriverio');
43
43
  const driver = await attach(driverOpts);
44
- const fullScript = buildScript(script);
44
+ const fullScript = `(async () => {${script}})();`;
45
45
  log.info('Running driver script in Node vm');
46
- const vmCtx = new vm2_1.NodeVM({ timeout: timeoutMs });
47
- const vmFn = vmCtx.run(fullScript);
48
46
  // run the driver script, giving user access to the driver object, a fake
49
47
  // console logger, and a promise library
50
- let result = await vmFn(driver, consoleFns, bluebird_1.default);
48
+ let result = await node_vm_1.default.runInNewContext(fullScript, { driver, console: consoleFns, Promise: bluebird_1.default }, { timeout: timeoutMs, breakOnSigint: true });
51
49
  result = coerceScriptResult(result);
52
50
  log.info('Successfully ensured driver script result is appropriate type for return');
53
51
  return { result, logs };
54
52
  }
55
- /**
56
- * Embed a user-generated script inside a method which takes only the
57
- * predetermined objects we specify
58
- *
59
- * @param {string} script - the javascript to execute
60
- *
61
- * @return {string} - the full script to execute
62
- */
63
- function buildScript(script) {
64
- return `module.exports = async function execute (driver, console, Promise) {
65
- ${script}
66
- }`;
67
- }
68
53
  /**
69
54
  * We can get any manner of crazy thing back from a vm executing untrusted
70
55
  * code. We might also get WebdriverIO objects that aren't suitable for JSON
@@ -1 +1 @@
1
- {"version":3,"file":"execute-child.js","sourceRoot":"","sources":["../../lib/execute-child.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-child.js","sourceRoot":"","sources":["../../lib/execute-child.js"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import _ from 'lodash';
2
2
  import B from 'bluebird';
3
- import {NodeVM} from 'vm2';
3
+ import vm from 'node:vm';
4
4
  import {logger, util} from 'appium/support';
5
5
 
6
6
  const log = logger.getLogger('ExecuteDriver Child');
@@ -42,36 +42,23 @@ async function runScript(eventParams) {
42
42
 
43
43
  const driver = await attach(driverOpts);
44
44
 
45
- const fullScript = buildScript(script);
45
+ const fullScript = `(async () => {${script}})();`;
46
46
 
47
47
  log.info('Running driver script in Node vm');
48
48
 
49
- const vmCtx = new NodeVM({timeout: timeoutMs});
50
- const vmFn = vmCtx.run(fullScript);
51
-
52
49
  // run the driver script, giving user access to the driver object, a fake
53
50
  // console logger, and a promise library
54
- let result = await vmFn(driver, consoleFns, B);
51
+ let result = await vm.runInNewContext(
52
+ fullScript,
53
+ {driver, console: consoleFns, Promise: B},
54
+ {timeout: timeoutMs, breakOnSigint: true},
55
+ );
55
56
 
56
57
  result = coerceScriptResult(result);
57
58
  log.info('Successfully ensured driver script result is appropriate type for return');
58
59
  return {result, logs};
59
60
  }
60
61
 
61
- /**
62
- * Embed a user-generated script inside a method which takes only the
63
- * predetermined objects we specify
64
- *
65
- * @param {string} script - the javascript to execute
66
- *
67
- * @return {string} - the full script to execute
68
- */
69
- function buildScript(script) {
70
- return `module.exports = async function execute (driver, console, Promise) {
71
- ${script}
72
- }`;
73
- }
74
-
75
62
  /**
76
63
  * We can get any manner of crazy thing back from a vm executing untrusted
77
64
  * code. We might also get WebdriverIO objects that aren't suitable for JSON
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appium/execute-driver-plugin",
3
- "version": "3.0.34",
3
+ "version": "3.0.35",
4
4
  "description": "Plugin for batching and executing driver commands with Appiums",
5
5
  "keywords": [
6
6
  "automation",
@@ -42,7 +42,6 @@
42
42
  "bluebird": "3.7.2",
43
43
  "lodash": "4.17.21",
44
44
  "source-map-support": "0.5.21",
45
- "vm2": "3.9.19",
46
45
  "webdriverio": "8.40.5"
47
46
  },
48
47
  "peerDependencies": {
@@ -59,5 +58,5 @@
59
58
  "pluginName": "execute-driver",
60
59
  "mainClass": "ExecuteDriverPlugin"
61
60
  },
62
- "gitHead": "a56f0f820a60a5b7fa9809681438230b986c0e5b"
61
+ "gitHead": "122a1863de615ad70130d5ca9bce83b7a03d4d45"
63
62
  }