@appium/base-plugin 1.7.0 → 1.8.1

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/README.md CHANGED
@@ -24,7 +24,7 @@ Appium plugins are Node.js programs, though of course you can call out to any ot
24
24
  Here the `pluginName` is the name used to activate your plugin by users who have installed it. So if your `pluginName` is `cool-plugin`, they would activate it as follows:
25
25
 
26
26
  ```
27
- appium --plugins=cool-plugin
27
+ appium --use-plugins=cool-plugin
28
28
  ```
29
29
 
30
30
  The same goes for updating and removing the plugin using the CLI.
@@ -93,17 +93,25 @@ You might find yourself in a position where you want to handle *all* commands, i
93
93
  1. `cmdName` - string representing the command being run
94
94
  1. `...args`
95
95
 
96
- There is a bit of a gotcha with handling Appium commands. Appium drivers have the ability to turn on a special 'proxy' mode, wherein the Appium server process takes a look at incoming URLs, and decides whether to forward them on to some upstream WebDriver server. It could happen that a command which a plugin wants to handle is designated as a command which is being proxied to an upstream server. In this case, we run into a problem, because the plugin never gets a chance to handle that command! For this reason, plugins can implement a special member function called `shouldAvoidProxy`, which takes the following parameters:
96
+ ### Adding new routes/commands
97
97
 
98
- 1. `method` - string denoting HTTP method (`GET`, `POST`, etc...)
99
- 2. `route` - string denoting the requested resource, for example `/session/8b3d9aa8-a0ca-47b9-9ab7-446e818ec4fc/source`
100
- 3. `body` - optional value of any type representing the WebDriver request body
98
+ You might decide that you want to add some new routes or commands to the Appium server, which could be called by clients. To do this, you should assign the static `newMethodMap` class variable to an object containing a set of routes and command names and arguments. The format of this object should exactly match the format of the `METHOD_MAP` object in Appium's [routes definition](https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js). Of course, just adding commands here does not implement them: you will also need to check for any new command names in your `handle` method to handle them, since by default there will be no implementation of commands added via `newMethodMap`.
101
99
 
102
- These parameters define an incoming request. If you want to handle a command in your plugin which would normally be proxied directly through a driver, you could disable or 'avoid' proxying the request, and instead have the request fall into the typical Appium command execution flow (and thereby your own command function). To avoid proxying a request, just return `true` from `shouldAvoidProxy`. Some examples of how this method is used are in the [Universal XML plugin](../universal-xml/lib/plugin.js) (where we want to avoid proxying the `getPageSource` command, or in the [Images plugin](../images/lib/plugin.js) (where we want to conditionally avoid proxying any command if it looks like it contains an image element).
100
+ Note that the information about avoiding proxying above also applies to new commands that you've added. But to make life easy, instead of implementing `shouldAvoidProxy` for these cases, you can simply add the `neverProxy: true` field to your command specifier (see examples in the Fake Plugin class).
103
101
 
104
- ### Adding new routes/commands
102
+ ### Unexpected session shutdown
105
103
 
106
- You might decide that you want to add some new routes or commands to the Appium server, which could be called by clients. To do this, you should assign the static `newMethodMap` class variable to an object containing a set of routes and command names and arguments. The format of this object should exactly match the format of the `METHOD_MAP` object in Appium's [routes definition](https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js). Of course, just adding commands here does not implement them: you will also need to check for any new command names in your `handle` method to handle them, since by default there will be no implementation of commands added via `newMethodMap`.
104
+ When developing a plugin you may want to add some cleanup logic by handling `deleteSession`. This works in most cases, except when the session does not finish cleanly. Appium sometimes determines that a session has finished unexpectedly, and in these situations, Appium will look for a method called `onUnexpectedShutdown` in your plugin class, which will be called (passing the current session driver as the first parameter, and the error object representing the cause of the shutdown as the second), giving you an opportunity to take any steps that might be necessary to clean up from the session. For example, keeping in mind that the function is not `await`ed you could implement something like this:
105
+
106
+ ```js
107
+ async onUnexpectedShutdown(driver, cause) {
108
+ try {
109
+ // do some cleanup
110
+ } catch (e) {
111
+ // log any errors; don't allow anything to be thrown as they will be unhandled rejections
112
+ }
113
+ }
114
+ ```
107
115
 
108
116
  ## Tips
109
117
 
package/build/index.js CHANGED
@@ -5,4 +5,4 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const plugin_1 = __importDefault(require("./lib/plugin"));
7
7
  exports.default = plugin_1.default;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQXNDO0FBQ3RDLGtCQUFlLGdCQUFVLENBQUMifQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUFzQztBQUN0QyxrQkFBZSxnQkFBVSxDQUFDIn0=
@@ -1,13 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const appium_support_1 = require("appium-support");
3
+ const support_1 = require("@appium/support");
4
4
  class BasePlugin {
5
5
  constructor(pluginName, opts = {}) {
6
6
  this.name = pluginName;
7
- this.logger = appium_support_1.logger.getLogger(`Plugin [${pluginName}]`);
7
+ this.logger = support_1.logger.getLogger(`Plugin [${pluginName}]`);
8
8
  // allow for args to be used by plugins
9
9
  this.opts = opts;
10
10
  }
11
+ /**
12
+ * Override to return a validator object used to validate CLI args passed into appium as
13
+ * --plugin-args='{"yourPluginName": {"argName": argVal, ...}}'
14
+ */
15
+ static get argsConstraints() {
16
+ return {};
17
+ }
11
18
  }
12
19
  exports.default = BasePlugin;
13
20
  // plugins can define new methods for the Appium server to map to command names, of the same
@@ -20,4 +27,4 @@ exports.default = BasePlugin;
20
27
  // }
21
28
  // }
22
29
  BasePlugin.newMethodMap = {};
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJsaWIvcGx1Z2luLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQXdDO0FBR3hDLE1BQXFCLFVBQVU7SUFhN0IsWUFBYSxVQUFVLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyx1QkFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFFekQsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7O0FBbkJILDZCQW9FQztBQWxFQyw0RkFBNEY7QUFDNUYseUZBQXlGO0FBQ3pGLEVBQUU7QUFDRixJQUFJO0FBQ0osd0NBQXdDO0FBQ3hDLHNDQUFzQztBQUN0QyxnRkFBZ0Y7QUFDaEYsTUFBTTtBQUNOLElBQUk7QUFDRyx1QkFBWSxHQUFHLEVBQUUsQ0FBQyJ9
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3BsdWdpbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUF5QztBQUd6QyxNQUFxQixVQUFVO0lBYTdCLFlBQWEsVUFBVSxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRXpELHVDQUF1QztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsTUFBTSxLQUFLLGVBQWU7UUFDeEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOztBQTVCSCw2QkE2RUM7QUEzRUMsNEZBQTRGO0FBQzVGLHlGQUF5RjtBQUN6RixFQUFFO0FBQ0YsSUFBSTtBQUNKLHdDQUF3QztBQUN4QyxzQ0FBc0M7QUFDdEMsZ0ZBQWdGO0FBQ2hGLE1BQU07QUFDTixJQUFJO0FBQ0csdUJBQVksR0FBRyxFQUFFLENBQUMifQ==
@@ -1,58 +1,57 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
11
5
  Object.defineProperty(exports, "__esModule", { value: true });
12
6
  exports.e2eSetup = void 0;
13
7
  /* eslint-disable no-console */
14
8
  const teen_process_1 = require("teen_process");
15
9
  const appium_1 = require("appium");
10
+ const get_port_1 = __importDefault(require("get-port"));
16
11
  function e2eSetup(opts = {}) {
17
- let { before, after, server, appiumHome, driverSource, driverPackage, driverName, driverSpec, pluginSource, pluginPackage, pluginSpec, pluginName, port, host, } = opts;
18
- before(function () {
12
+ let { before, after, server, serverArgs = {}, driverSource, driverPackage, driverName, driverSpec, pluginSource, pluginPackage, pluginSpec, pluginName, port, host, } = opts;
13
+ before(async function () {
19
14
  var _a, _b;
20
- return __awaiter(this, void 0, void 0, function* () {
21
- console.log('Checking whether driver dep is installed');
22
- let listArgs = ['appium', 'driver', 'list', '--home', appiumHome, '--json'];
23
- let { stdout } = yield teen_process_1.exec('npx', listArgs);
24
- let installed = JSON.parse(stdout);
25
- if (!((_a = installed[driverName]) === null || _a === void 0 ? void 0 : _a.installed)) {
26
- console.log('Not installed, installing...');
27
- const driverArgs = ['appium', 'driver', 'install', '--home', appiumHome, '--source', driverSource, driverSpec];
28
- if (driverPackage) {
29
- driverArgs.push('--package', driverPackage);
30
- }
31
- yield teen_process_1.exec('npx', driverArgs);
15
+ console.log('Checking whether driver dep is installed');
16
+ let listArgs = ['appium', 'driver', 'list', '--json'];
17
+ let { stdout } = await (0, teen_process_1.exec)('npx', listArgs);
18
+ let installed = JSON.parse(stdout);
19
+ if (!((_a = installed[driverName]) === null || _a === void 0 ? void 0 : _a.installed)) {
20
+ console.log('Not installed, installing...');
21
+ const driverArgs = ['appium', 'driver', 'install', '--source', driverSource, driverSpec];
22
+ if (driverPackage) {
23
+ driverArgs.push('--package', driverPackage);
32
24
  }
33
- console.log('Driver dep is installed');
34
- console.log('Checking whether plugin is installed');
35
- listArgs = ['appium', 'plugin', 'list', '--home', appiumHome, '--json'];
36
- ({ stdout } = yield teen_process_1.exec('npx', listArgs));
37
- installed = JSON.parse(stdout);
38
- if (!((_b = installed[pluginName]) === null || _b === void 0 ? void 0 : _b.installed)) {
39
- console.log('Installing the local version of this plugin');
40
- const pluginArgs = ['appium', 'plugin', 'install', '--home', appiumHome, '--source', pluginSource, pluginSpec];
41
- if (pluginPackage) {
42
- pluginArgs.push('--package', pluginPackage);
43
- }
44
- yield teen_process_1.exec('npx', pluginArgs);
25
+ await (0, teen_process_1.exec)('npx', driverArgs);
26
+ }
27
+ console.log('Driver dep is installed');
28
+ console.log('Checking whether plugin is installed');
29
+ listArgs = ['appium', 'plugin', 'list', '--json'];
30
+ ({ stdout } = await (0, teen_process_1.exec)('npx', listArgs));
31
+ installed = JSON.parse(stdout);
32
+ if (!((_b = installed[pluginName]) === null || _b === void 0 ? void 0 : _b.installed)) {
33
+ console.log('Installing the local version of this plugin');
34
+ const pluginArgs = ['appium', 'plugin', 'install', '--source', pluginSource, pluginSpec];
35
+ if (pluginPackage) {
36
+ pluginArgs.push('--package', pluginPackage);
45
37
  }
46
- console.log('This plugin is installed');
47
- const args = { port, host, appiumHome, plugins: [pluginName] };
48
- server = yield appium_1.main(args);
49
- });
38
+ await (0, teen_process_1.exec)('npx', pluginArgs);
39
+ }
40
+ console.log('This plugin is installed');
41
+ if (!port) {
42
+ port = await (0, get_port_1.default)();
43
+ }
44
+ console.log(`Will use port ${port} for Appium server`);
45
+ this.port = port;
46
+ const args = { port, host, usePlugins: [pluginName], useDrivers: [driverName], ...serverArgs };
47
+ server = await (0, appium_1.main)(args);
50
48
  });
51
49
  after(function () {
52
50
  if (server) {
53
51
  server.close();
54
52
  }
55
53
  });
54
+ return port;
56
55
  }
57
56
  exports.e2eSetup = e2eSetup;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsidGVzdC9oZWxwZXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQiwrQ0FBb0M7QUFDcEMsbUNBQThDO0FBRTlDLFNBQVMsUUFBUSxDQUFFLElBQUksR0FBRyxFQUFFO0lBQzFCLElBQUksRUFDRixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osSUFBSSxHQUNMLEdBQUcsSUFBSSxDQUFDO0lBRVQsTUFBTSxDQUFDOzs7WUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzVFLElBQUksRUFBQyxNQUFNLEVBQUMsR0FBRyxNQUFNLG1CQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLENBQUEsTUFBQSxTQUFTLENBQUMsVUFBVSxDQUFDLDBDQUFFLFNBQVMsQ0FBQSxFQUFFO2dCQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7Z0JBQzVDLE1BQU0sVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMvRyxJQUFJLGFBQWEsRUFBRTtvQkFDakIsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7aUJBQzdDO2dCQUNELE1BQU0sbUJBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDL0I7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFFdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQ3BELFFBQVEsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDeEUsQ0FBQyxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sbUJBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN6QyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUvQixJQUFJLENBQUMsQ0FBQSxNQUFBLFNBQVMsQ0FBQyxVQUFVLENBQUMsMENBQUUsU0FBUyxDQUFBLEVBQUU7Z0JBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztnQkFDM0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9HLElBQUksYUFBYSxFQUFFO29CQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztpQkFDN0M7Z0JBQ0QsTUFBTSxtQkFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQzthQUMvQjtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUV4QyxNQUFNLElBQUksR0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUM7WUFDN0QsTUFBTSxHQUFHLE1BQU0sYUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDOztLQUNuQyxDQUFDLENBQUM7SUFFSCxLQUFLLENBQUM7UUFDSixJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVRLDRCQUFRIn0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsK0NBQW9DO0FBQ3BDLG1DQUE4QztBQUM5Qyx3REFBK0I7QUFFL0IsU0FBUyxRQUFRLENBQUUsSUFBSSxHQUFHLEVBQUU7SUFDMUIsSUFBSSxFQUNGLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsR0FBRyxFQUFFLEVBQ2YsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osSUFBSSxHQUNMLEdBQUcsSUFBSSxDQUFDO0lBRVQsTUFBTSxDQUFDLEtBQUs7O1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3hELElBQUksUUFBUSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdEQsSUFBSSxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBQSxtQkFBSSxFQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxDQUFBLE1BQUEsU0FBUyxDQUFDLFVBQVUsQ0FBQywwQ0FBRSxTQUFTLENBQUEsRUFBRTtZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDNUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3pGLElBQUksYUFBYSxFQUFFO2dCQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUM3QztZQUNELE1BQU0sSUFBQSxtQkFBSSxFQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMvQjtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUV2QyxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDcEQsUUFBUSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBQSxtQkFBSSxFQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxDQUFBLE1BQUEsU0FBUyxDQUFDLFVBQVUsQ0FBQywwQ0FBRSxTQUFTLENBQUEsRUFBRTtZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7WUFDM0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3pGLElBQUksYUFBYSxFQUFFO2dCQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUM3QztZQUNELE1BQU0sSUFBQSxtQkFBSSxFQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMvQjtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsSUFBSSxHQUFHLE1BQU0sSUFBQSxrQkFBTyxHQUFFLENBQUM7U0FDeEI7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLG9CQUFvQixDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFFakIsTUFBTSxJQUFJLEdBQUcsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFDLENBQUM7UUFDN0YsTUFBTSxHQUFHLE1BQU0sSUFBQSxhQUFZLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxLQUFLLENBQUM7UUFDSixJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRVEsNEJBQVEifQ==
@@ -27,4 +27,4 @@ describe('base plugin', function () {
27
27
  index_1.default.newMethodMap.should.eql({});
28
28
  });
29
29
  });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWNzLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJ0ZXN0L3VuaXQvcGx1Z2luLXNwZWNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0RBQXFDO0FBQ3JDLGdEQUF3QjtBQUN4Qix3RUFBOEM7QUFFOUMsY0FBSSxDQUFDLEdBQUcsQ0FBQywwQkFBYyxDQUFDLENBQUM7QUFDekIsTUFBTSxNQUFNLEdBQUcsY0FBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBRTdCLFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsRUFBRSxDQUFDLGNBQWMsRUFBRTtRQUNqQixNQUFNLENBQUMsS0FBSyxDQUFDLGVBQVUsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLHdCQUF3QixFQUFFO1FBQzNCLE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyx3QkFBd0IsRUFBRTtRQUMzQixNQUFNLENBQUMsR0FBRyxJQUFJLGVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRTtRQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsZ0RBQWdELEVBQUU7UUFDbkQsZUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3BsdWdpbi1zcGVjcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdEQUFxQztBQUNyQyxnREFBd0I7QUFDeEIsd0VBQThDO0FBRTlDLGNBQUksQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sTUFBTSxHQUFHLGNBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUU3QixRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3RCLEVBQUUsQ0FBQyxjQUFjLEVBQUU7UUFDakIsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFVLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyx3QkFBd0IsRUFBRTtRQUMzQixNQUFNLENBQUMsR0FBRyxJQUFJLGVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsd0JBQXdCLEVBQUU7UUFDM0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxlQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsdUNBQXVDLEVBQUU7UUFDMUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLGdEQUFnRCxFQUFFO1FBQ25ELGVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.full.d.ts","../lib/plugin.js","../index.js","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/get-port/index.d.ts","../test/helpers.js","../node_modules/@types/range-parser/index.d.ts","../node_modules/@types/qs/index.d.ts","../node_modules/@types/express-serve-static-core/index.d.ts","../node_modules/@types/mime/index.d.ts","../node_modules/@types/serve-static/index.d.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/body-parser/index.d.ts","../node_modules/@types/express/index.d.ts","../node_modules/@appium/base-driver/index.d.ts","../index.d.ts","../test/unit/plugin-specs.js","../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"32b8443be144970b813b9dd72dcdba2059fbdfdae4d3a50c4d8a158ed6057bbe","f40aa283e0a0cf8a58f14f3e0e02898525c22eb775fec19e5075d0feb90dc870","eafec70558f3e7190a65f6ebe79b8fd52d10d3a636497bb6eccb2c4372694d76","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"2a801b0322994c3dd7f0ef30265d19b3dd3bae6d793596879166ed6219c3da68","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","bcc8caf03ee65fe8610d258752f255fbdddbb2e4de7b6c5628956a5a0d859ec8","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"c28e5baab1b53377c90d12970e207a2644bc3627840066449e37e2a59125d07e","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"cfe724f7c694aab65a9bdd1acb05997848c504548c9d4c71645c187a091cfa2a","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7","1835259a20b9fa6b1882931375b69ae5978195f2b139b4e0db51ec8319261649","b52cd693219a63dd21282ac99a7bf55f77cbe8a91f097968856419cc2e05f017","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"0b3eba6dca8c6e534d16ef7b7d76cb546cd3cbab616c8f71daa0a151b5412b9e","58ca66ecec099ab769ce4fef62f4cc93718d93c9d0d4b67dfa7ba20c9a7c50ed","95e62a7d0eecdc675c553200e2bf8738d6b8875e94eeb62256ff78f776231efe","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"d2f7baf43dfa349d4010cbd9d64d84cdf3ec26c65fa5f44c8f74f052bedd0b49","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","ca2b0e915cf19c63c1398f6e1c43eba4300186469f12db857bb19d150d1d64de","951da31b03c64b86883e39585ae377374b2e69b5d6d63d16bb6efe262cbd46da","e431f998865d256fdd79bf54145a59c7ae39b374768387f8ac5fbd087ba517c7",{"version":"e8bf92aabac2b11e1bf60a0161039cd6f5f0cd9713863ca2289dd7b10eddece8","affectsGlobalScope":true}],"options":{"declaration":false,"esModuleInterop":true,"inlineSourceMap":true,"module":1,"outDir":"./","target":5},"fileIdsList":[[89],[64,89,106,107],[44,89],[64,89,96,104],[64,89,96],[61,64,89,96,99,100],[89,100,101,103,105],[46,89],[49,89],[50,55,89],[51,61,62,69,78,88,89],[51,52,61,69,89],[53,89],[54,55,62,70,89],[55,78,85,89],[56,58,61,69,89],[57,89],[58,59,89],[60,61,89],[61,89],[61,62,63,78,88,89],[61,62,63,78,89],[64,69,78,88,89],[61,62,64,65,69,78,85,88,89],[64,66,78,85,88,89],[46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],[61,67,89],[68,88,89],[58,61,69,78,89],[70,89],[71,89],[49,72,89],[73,87,89,93],[74,89],[75,89],[61,76,89],[76,77,89,91],[61,78,79,80,89],[78,80,89],[78,79,89],[81,89],[82,89],[61,83,84,89],[83,84,89],[55,69,78,85,89],[86,89],[69,87,89],[50,64,75,88,89],[55,89],[78,89,90],[89,91],[89,92],[50,55,61,63,72,78,88,89,91,93],[78,89,94],[64,89,96,102],[69,89,96],[89,97],[89,108]],"referencedMap":[[110,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[43,1],[29,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[41,1],[37,1],[38,1],[39,1],[40,1],[1,1],[42,1],[11,1],[10,1],[108,2],[45,3],[44,1],[107,1],[105,4],[104,5],[101,6],[106,7],[102,1],[46,8],[47,8],[49,9],[50,10],[51,11],[52,12],[53,13],[54,14],[55,15],[56,16],[57,17],[58,18],[59,18],[60,19],[61,20],[62,21],[63,22],[48,1],[95,1],[64,23],[65,24],[66,25],[96,26],[67,27],[68,28],[69,29],[70,30],[71,31],[72,32],[73,33],[74,34],[75,35],[76,36],[77,37],[78,38],[80,39],[79,40],[81,41],[82,42],[83,43],[84,44],[85,45],[86,46],[87,47],[88,48],[89,49],[90,50],[91,51],[92,52],[93,53],[94,54],[100,1],[99,1],[103,55],[97,56],[98,57],[109,58]],"exportedModulesMap":[[110,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[43,1],[29,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[41,1],[37,1],[38,1],[39,1],[40,1],[1,1],[42,1],[11,1],[10,1],[108,2],[45,3],[44,1],[107,1],[105,4],[104,5],[101,6],[106,7],[102,1],[46,8],[47,8],[49,9],[50,10],[51,11],[52,12],[53,13],[54,14],[55,15],[56,16],[57,17],[58,18],[59,18],[60,19],[61,20],[62,21],[63,22],[48,1],[95,1],[64,23],[65,24],[66,25],[96,26],[67,27],[68,28],[69,29],[70,30],[71,31],[72,32],[73,33],[74,34],[75,35],[76,36],[77,37],[78,38],[80,39],[79,40],[81,41],[82,42],[83,43],[84,44],[85,45],[86,46],[87,47],[88,48],[89,49],[90,50],[91,51],[92,52],[93,53],[94,54],[100,1],[99,1],[103,55],[97,56],[98,57],[109,58]],"semanticDiagnosticsPerFile":[110,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,43,29,30,31,32,6,33,34,35,36,7,41,37,38,39,40,1,42,11,10,108,45,44,107,105,104,101,106,102,46,47,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,48,95,64,65,66,96,67,68,69,70,71,72,73,74,75,76,77,78,80,79,81,82,83,84,85,86,87,88,89,90,91,92,93,94,100,99,103,97,98,109]},"version":"4.5.5"}
package/index.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import type { Server } from 'http';
2
+ import type { Application } from 'express';
3
+ import type { BaseDriver } from '@appium/base-driver';
4
+
5
+ export default class BasePlugin {
6
+ static newMethodMap: {};
7
+ constructor(pluginName: string, opts?: {});
8
+ name: string;
9
+ logger: any;
10
+ opts: {};
11
+
12
+ static updateServer(expressApp: Application, httpServer: Server): Promise<void>;
13
+
14
+ handle(
15
+ next: () => Promise<void>,
16
+ driver: BaseDriver,
17
+ cmdName: string,
18
+ ...args: any[]
19
+ ): Promise<any>;
20
+ }
21
+
22
+ export { BaseDriver };
package/lib/plugin.js CHANGED
@@ -1,4 +1,4 @@
1
- import { logger } from 'appium-support';
1
+ import { logger } from '@appium/support';
2
2
 
3
3
 
4
4
  export default class BasePlugin {
@@ -23,6 +23,15 @@ export default class BasePlugin {
23
23
  }
24
24
 
25
25
 
26
+ /**
27
+ * Override to return a validator object used to validate CLI args passed into appium as
28
+ * --plugin-args='{"yourPluginName": {"argName": argVal, ...}}'
29
+ */
30
+ static get argsConstraints () {
31
+ return {};
32
+ }
33
+
34
+
26
35
  /**
27
36
  * Optionally updates an Appium express app and http server, by calling methods that may mutate
28
37
  * those objects. For example, you could call:
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "tags": [
5
5
  "appium"
6
6
  ],
7
- "version": "1.7.0",
7
+ "version": "1.8.1",
8
8
  "author": "Appium <maintainers@appium.io>",
9
9
  "license": "Apache-2.0",
10
10
  "repository": {
@@ -19,18 +19,24 @@
19
19
  "npm": ">=6"
20
20
  },
21
21
  "main": "./build/index.js",
22
+ "types": "./index.d.ts",
22
23
  "directories": {
23
24
  "lib": "./lib"
24
25
  },
25
26
  "files": [
26
27
  "lib",
27
- "build"
28
+ "build",
29
+ "index.d.ts"
28
30
  ],
29
31
  "dependencies": {
30
- "appium-support": "^2.48.0"
32
+ "@appium/support": "2.55.2"
31
33
  },
32
34
  "scripts": {
33
35
  "test:unit": "mocha ./build/test/unit/*-specs.js"
34
36
  },
35
- "gitHead": "bdbba55f06c918cf8bd259e58d057ef7cff3aa64"
37
+ "gitHead": "5efbd2840a4e5dd078a4646c026472a006ab2211",
38
+ "devDependencies": {
39
+ "@appium/base-driver": "8.2.1",
40
+ "@types/express": "4.17.13"
41
+ }
36
42
  }