@appium/execute-driver-plugin 6.0.2 → 6.0.4
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/execute-child.d.ts.map +1 -1
- package/build/lib/execute-child.js +5 -6
- package/build/lib/execute-child.js.map +1 -1
- package/build/lib/plugin.d.ts.map +1 -1
- package/build/lib/plugin.js +3 -4
- package/build/lib/plugin.js.map +1 -1
- package/lib/execute-child.ts +6 -7
- package/lib/plugin.ts +3 -4
- package/package.json +4 -4
- package/tsconfig.json +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-child.d.ts","sourceRoot":"","sources":["../../lib/execute-child.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute-child.d.ts","sourceRoot":"","sources":["../../lib/execute-child.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe,wCAAkC,CAAC;AAC/D,eAAO,MAAM,mBAAmB,YAAY,CAAC"}
|
|
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.MJSONWP_ELEMENT_KEY = exports.W3C_ELEMENT_KEY = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
7
|
const node_vm_1 = __importDefault(require("node:vm"));
|
|
9
8
|
const node_util_1 = require("node:util");
|
|
10
|
-
const support_1 = require("appium/support");
|
|
9
|
+
const support_1 = require("@appium/support");
|
|
11
10
|
const vm_host_binding_1 = require("./vm-host-binding");
|
|
12
11
|
const log = support_1.logger.getLogger('ExecuteDriver Child');
|
|
13
12
|
let send;
|
|
@@ -23,7 +22,7 @@ exports.MJSONWP_ELEMENT_KEY = 'ELEMENT';
|
|
|
23
22
|
*/
|
|
24
23
|
async function runScript(eventParams) {
|
|
25
24
|
const { driverOpts, script, timeoutMs } = eventParams;
|
|
26
|
-
if (
|
|
25
|
+
if (typeof timeoutMs !== 'number' || Number.isNaN(timeoutMs)) {
|
|
27
26
|
throw new TypeError('Timeout parameter must be a number');
|
|
28
27
|
}
|
|
29
28
|
/**
|
|
@@ -82,7 +81,7 @@ function coerceScriptResult(obj) {
|
|
|
82
81
|
}
|
|
83
82
|
let res;
|
|
84
83
|
// now we begin our recursive case options
|
|
85
|
-
if (
|
|
84
|
+
if (support_1.util.isPlainObject(obj)) {
|
|
86
85
|
// if we have an object, it's either an element object or something else
|
|
87
86
|
// webdriverio has no monadic object types other than element and driver,
|
|
88
87
|
// and we don't want to allow special casing return of driver
|
|
@@ -108,7 +107,7 @@ function coerceScriptResult(obj) {
|
|
|
108
107
|
return res;
|
|
109
108
|
}
|
|
110
109
|
// also handle arrays
|
|
111
|
-
if (
|
|
110
|
+
if (Array.isArray(obj)) {
|
|
112
111
|
return obj.map(coerceScriptResult);
|
|
113
112
|
}
|
|
114
113
|
// base case, if it's not an object or array, return straightaway
|
|
@@ -135,7 +134,7 @@ async function main(eventParams) {
|
|
|
135
134
|
await send(res);
|
|
136
135
|
}
|
|
137
136
|
// ensure we're running this script in IPC mode
|
|
138
|
-
if (require.main === module &&
|
|
137
|
+
if (require.main === module && typeof process.send === 'function') {
|
|
139
138
|
send = (0, node_util_1.promisify)(process.send).bind(process);
|
|
140
139
|
log.info('Running driver execution in child process');
|
|
141
140
|
process.on('message', main);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-child.js","sourceRoot":"","sources":["../../lib/execute-child.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"execute-child.js","sourceRoot":"","sources":["../../lib/execute-child.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAGzC,OAAO,KAAK,EAAC,cAAc,EAAsB,SAAS,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AAMhG,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAOxC;IAEX;;;;;;;;;;;;OAYG;IACH,mBAAmB,EAAE,aAAa,CAChC,cAAc,EACd;QAAC,MAAM,EAAE,MAAM;QAAE,UAAU,CAAC,EAAE,MAAM;QAAE,SAAS,CAAC,EAAE,MAAM;KAAC,EACzD,GAAG,CACJ,CA2HC;CACH"}
|
package/build/lib/plugin.js
CHANGED
|
@@ -5,9 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ExecuteDriverPlugin = void 0;
|
|
7
7
|
const plugin_1 = require("appium/plugin");
|
|
8
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
9
8
|
const node_child_process_1 = __importDefault(require("node:child_process"));
|
|
10
|
-
const support_1 = require("appium/support");
|
|
9
|
+
const support_1 = require("@appium/support");
|
|
11
10
|
const FEAT_FLAG = 'execute_driver_script';
|
|
12
11
|
const DEFAULT_SCRIPT_TIMEOUT_MS = 1000 * 60 * 60; // default to 1 hour timeout
|
|
13
12
|
const SCRIPT_TYPE_WDIO = 'webdriverio';
|
|
@@ -47,7 +46,7 @@ class ExecuteDriverPlugin extends plugin_1.BasePlugin {
|
|
|
47
46
|
throw new Error('Address or port of running server were not defined; this ' +
|
|
48
47
|
'is required. This is probably a programming error in the driver');
|
|
49
48
|
}
|
|
50
|
-
if (
|
|
49
|
+
if (typeof timeoutMs !== 'number' || Number.isNaN(timeoutMs)) {
|
|
51
50
|
throw new TypeError('Timeout parameter must be a number');
|
|
52
51
|
}
|
|
53
52
|
const driverOpts = {
|
|
@@ -107,7 +106,7 @@ class ExecuteDriverPlugin extends plugin_1.BasePlugin {
|
|
|
107
106
|
return await Promise.race([waitForResult(), waitForTimeout()]);
|
|
108
107
|
}
|
|
109
108
|
catch (err) {
|
|
110
|
-
throw new Error(`Could not execute driver script. Original error was: ${err}
|
|
109
|
+
throw new Error(`Could not execute driver script. Original error was: ${err}`, { cause: err });
|
|
111
110
|
}
|
|
112
111
|
finally {
|
|
113
112
|
// ensure we always cancel the timeout so that the timeout promise stops
|
package/build/lib/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":";;;;;;AAAA,0CAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"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"}
|
package/lib/execute-child.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
1
|
import vm from 'node:vm';
|
|
3
2
|
import {promisify} from 'node:util';
|
|
4
|
-
import {logger, util} from 'appium/support';
|
|
3
|
+
import {logger, util} from '@appium/support';
|
|
5
4
|
import type {DriverScriptMessageEvent, ScriptResult, RunScriptResult} from './types';
|
|
6
5
|
import {wrapHostBindingForVmContext} from './vm-host-binding';
|
|
7
6
|
|
|
@@ -21,7 +20,7 @@ export const MJSONWP_ELEMENT_KEY = 'ELEMENT';
|
|
|
21
20
|
*/
|
|
22
21
|
async function runScript(eventParams: DriverScriptMessageEvent): Promise<RunScriptResult> {
|
|
23
22
|
const {driverOpts, script, timeoutMs} = eventParams;
|
|
24
|
-
if (
|
|
23
|
+
if (typeof timeoutMs !== 'number' || Number.isNaN(timeoutMs)) {
|
|
25
24
|
throw new TypeError('Timeout parameter must be a number');
|
|
26
25
|
}
|
|
27
26
|
|
|
@@ -95,7 +94,7 @@ function coerceScriptResult(obj: any): any {
|
|
|
95
94
|
let res: any;
|
|
96
95
|
|
|
97
96
|
// now we begin our recursive case options
|
|
98
|
-
if (
|
|
97
|
+
if (util.isPlainObject(obj)) {
|
|
99
98
|
// if we have an object, it's either an element object or something else
|
|
100
99
|
// webdriverio has no monadic object types other than element and driver,
|
|
101
100
|
// and we don't want to allow special casing return of driver
|
|
@@ -125,7 +124,7 @@ function coerceScriptResult(obj: any): any {
|
|
|
125
124
|
}
|
|
126
125
|
|
|
127
126
|
// also handle arrays
|
|
128
|
-
if (
|
|
127
|
+
if (Array.isArray(obj)) {
|
|
129
128
|
return obj.map(coerceScriptResult);
|
|
130
129
|
}
|
|
131
130
|
|
|
@@ -154,8 +153,8 @@ async function main(eventParams: DriverScriptMessageEvent): Promise<void> {
|
|
|
154
153
|
}
|
|
155
154
|
|
|
156
155
|
// ensure we're running this script in IPC mode
|
|
157
|
-
if (require.main === module &&
|
|
158
|
-
send = promisify(process.send).bind(process)
|
|
156
|
+
if (require.main === module && typeof process.send === 'function') {
|
|
157
|
+
send = promisify(process.send).bind(process) as (res: ScriptResult) => Promise<void>;
|
|
159
158
|
log.info('Running driver execution in child process');
|
|
160
159
|
process.on('message', main);
|
|
161
160
|
}
|
package/lib/plugin.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {BasePlugin} from 'appium/plugin';
|
|
2
|
-
import _ from 'lodash';
|
|
3
2
|
import cp from 'node:child_process';
|
|
4
|
-
import {timing} from 'appium/support';
|
|
3
|
+
import {timing} from '@appium/support';
|
|
5
4
|
import type {ExternalDriver, NextPluginCallback, MethodMap, PluginCommand} from '@appium/types';
|
|
6
5
|
|
|
7
6
|
const FEAT_FLAG = 'execute_driver_script';
|
|
@@ -62,7 +61,7 @@ export class ExecuteDriverPlugin extends BasePlugin {
|
|
|
62
61
|
);
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
if (
|
|
64
|
+
if (typeof timeoutMs !== 'number' || Number.isNaN(timeoutMs)) {
|
|
66
65
|
throw new TypeError('Timeout parameter must be a number');
|
|
67
66
|
}
|
|
68
67
|
|
|
@@ -140,7 +139,7 @@ export class ExecuteDriverPlugin extends BasePlugin {
|
|
|
140
139
|
// and set up a race between the response from the child and the timeout
|
|
141
140
|
return await Promise.race([waitForResult(), waitForTimeout()]);
|
|
142
141
|
} catch (err: any) {
|
|
143
|
-
throw new Error(`Could not execute driver script. Original error was: ${err}
|
|
142
|
+
throw new Error(`Could not execute driver script. Original error was: ${err}`, {cause: err});
|
|
144
143
|
} finally {
|
|
145
144
|
// ensure we always cancel the timeout so that the timeout promise stops
|
|
146
145
|
// spinning and allows this process to die gracefully
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/execute-driver-plugin",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.4",
|
|
4
4
|
"description": "Plugin for batching and executing Appium driver commands",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"test:unit": "mocha \"./test/unit/**/*.spec.ts\""
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"
|
|
43
|
-
"webdriverio": "9.27.
|
|
42
|
+
"@appium/support": "7.2.3",
|
|
43
|
+
"webdriverio": "9.27.2"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"appium": "^3.0.0-beta.0"
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"pluginName": "execute-driver",
|
|
57
57
|
"mainClass": "ExecuteDriverPlugin"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "8018f8b70ecc975fa115e19072ef337b8473865d"
|
|
60
60
|
}
|