appium 2.0.0-beta.5 → 2.0.0-beta.53
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 +156 -63
- package/build/lib/appium.d.ts +226 -0
- package/build/lib/appium.d.ts.map +1 -0
- package/build/lib/appium.js +694 -439
- package/build/lib/appium.js.map +1 -0
- package/build/lib/cli/args.d.ts +17 -0
- package/build/lib/cli/args.d.ts.map +1 -0
- package/build/lib/cli/args.js +253 -319
- package/build/lib/cli/args.js.map +1 -0
- package/build/lib/cli/driver-command.d.ts +102 -0
- package/build/lib/cli/driver-command.d.ts.map +1 -0
- package/build/lib/cli/driver-command.js +126 -81
- package/build/lib/cli/driver-command.js.map +1 -0
- package/build/lib/cli/extension-command.d.ts +385 -0
- package/build/lib/cli/extension-command.d.ts.map +1 -0
- package/build/lib/cli/extension-command.js +731 -383
- package/build/lib/cli/extension-command.js.map +1 -0
- package/build/lib/cli/extension.d.ts +23 -0
- package/build/lib/cli/extension.d.ts.map +1 -0
- package/build/lib/cli/extension.js +71 -54
- package/build/lib/cli/extension.js.map +1 -0
- package/build/lib/cli/parser.d.ts +84 -0
- package/build/lib/cli/parser.d.ts.map +1 -0
- package/build/lib/cli/parser.js +240 -128
- package/build/lib/cli/parser.js.map +1 -0
- package/build/lib/cli/plugin-command.d.ts +99 -0
- package/build/lib/cli/plugin-command.d.ts.map +1 -0
- package/build/lib/cli/plugin-command.js +120 -81
- package/build/lib/cli/plugin-command.js.map +1 -0
- package/build/lib/cli/utils.d.ts +29 -0
- package/build/lib/cli/utils.d.ts.map +1 -0
- package/build/lib/cli/utils.js +72 -51
- package/build/lib/cli/utils.js.map +1 -0
- package/build/lib/config-file.d.ts +100 -0
- package/build/lib/config-file.d.ts.map +1 -0
- package/build/lib/config-file.js +207 -0
- package/build/lib/config-file.js.map +1 -0
- package/build/lib/config.d.ts +49 -0
- package/build/lib/config.d.ts.map +1 -0
- package/build/lib/config.js +265 -201
- package/build/lib/config.js.map +1 -0
- package/build/lib/constants.d.ts +49 -0
- package/build/lib/constants.d.ts.map +1 -0
- package/build/lib/constants.js +66 -0
- package/build/lib/constants.js.map +1 -0
- package/build/lib/extension/driver-config.d.ts +82 -0
- package/build/lib/extension/driver-config.d.ts.map +1 -0
- package/build/lib/extension/driver-config.js +212 -0
- package/build/lib/extension/driver-config.js.map +1 -0
- package/build/lib/extension/extension-config.d.ts +249 -0
- package/build/lib/extension/extension-config.d.ts.map +1 -0
- package/build/lib/extension/extension-config.js +581 -0
- package/build/lib/extension/extension-config.js.map +1 -0
- package/build/lib/extension/index.d.ts +48 -0
- package/build/lib/extension/index.d.ts.map +1 -0
- package/build/lib/extension/index.js +105 -0
- package/build/lib/extension/index.js.map +1 -0
- package/build/lib/extension/manifest-migrations.d.ts +27 -0
- package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
- package/build/lib/extension/manifest-migrations.js +118 -0
- package/build/lib/extension/manifest-migrations.js.map +1 -0
- package/build/lib/extension/manifest.d.ts +145 -0
- package/build/lib/extension/manifest.d.ts.map +1 -0
- package/build/lib/extension/manifest.js +521 -0
- package/build/lib/extension/manifest.js.map +1 -0
- package/build/lib/extension/package-changed.d.ts +11 -0
- package/build/lib/extension/package-changed.d.ts.map +1 -0
- package/build/lib/extension/package-changed.js +62 -0
- package/build/lib/extension/package-changed.js.map +1 -0
- package/build/lib/extension/plugin-config.d.ts +56 -0
- package/build/lib/extension/plugin-config.d.ts.map +1 -0
- package/build/lib/extension/plugin-config.js +102 -0
- package/build/lib/extension/plugin-config.js.map +1 -0
- package/build/lib/grid-register.d.ts +10 -0
- package/build/lib/grid-register.d.ts.map +1 -0
- package/build/lib/grid-register.js +122 -144
- package/build/lib/grid-register.js.map +1 -0
- package/build/lib/logger.d.ts +3 -0
- package/build/lib/logger.d.ts.map +1 -0
- package/build/lib/logger.js +5 -17
- package/build/lib/logger.js.map +1 -0
- package/build/lib/logsink.d.ts +4 -0
- package/build/lib/logsink.d.ts.map +1 -0
- package/build/lib/logsink.js +190 -187
- package/build/lib/logsink.js.map +1 -0
- package/build/lib/main.d.ts +62 -0
- package/build/lib/main.d.ts.map +1 -0
- package/build/lib/main.js +348 -228
- package/build/lib/main.js.map +1 -0
- package/build/lib/schema/arg-spec.d.ts +143 -0
- package/build/lib/schema/arg-spec.d.ts.map +1 -0
- package/build/lib/schema/arg-spec.js +164 -0
- package/build/lib/schema/arg-spec.js.map +1 -0
- package/build/lib/schema/cli-args.d.ts +19 -0
- package/build/lib/schema/cli-args.d.ts.map +1 -0
- package/build/lib/schema/cli-args.js +217 -0
- package/build/lib/schema/cli-args.js.map +1 -0
- package/build/lib/schema/cli-transformers.d.ts +5 -0
- package/build/lib/schema/cli-transformers.d.ts.map +1 -0
- package/build/lib/schema/cli-transformers.js +124 -0
- package/build/lib/schema/cli-transformers.js.map +1 -0
- package/build/lib/schema/index.d.ts +3 -0
- package/build/lib/schema/index.d.ts.map +1 -0
- package/build/lib/schema/index.js +19 -0
- package/build/lib/schema/index.js.map +1 -0
- package/build/lib/schema/keywords.d.ts +24 -0
- package/build/lib/schema/keywords.d.ts.map +1 -0
- package/build/lib/schema/keywords.js +128 -0
- package/build/lib/schema/keywords.js.map +1 -0
- package/build/lib/schema/schema.d.ts +259 -0
- package/build/lib/schema/schema.d.ts.map +1 -0
- package/build/lib/schema/schema.js +615 -0
- package/build/lib/schema/schema.js.map +1 -0
- package/build/lib/utils.d.ts +121 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +351 -273
- package/build/lib/utils.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/build/types/cli.d.ts +134 -0
- package/build/types/cli.d.ts.map +1 -0
- package/build/types/cli.js +3 -0
- package/build/types/cli.js.map +1 -0
- package/build/types/index.d.ts +15 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +19 -0
- package/build/types/index.js.map +1 -0
- package/build/types/manifest/base.d.ts +135 -0
- package/build/types/manifest/base.d.ts.map +1 -0
- package/build/types/manifest/base.js +3 -0
- package/build/types/manifest/base.js.map +1 -0
- package/build/types/manifest/index.d.ts +19 -0
- package/build/types/manifest/index.d.ts.map +1 -0
- package/build/types/manifest/index.js +40 -0
- package/build/types/manifest/index.js.map +1 -0
- package/build/types/manifest/v3.d.ts +139 -0
- package/build/types/manifest/v3.d.ts.map +1 -0
- package/build/types/manifest/v3.js +3 -0
- package/build/types/manifest/v3.js.map +1 -0
- package/driver.d.ts +1 -0
- package/driver.js +14 -0
- package/index.js +11 -0
- package/lib/appium.js +535 -186
- package/lib/cli/args.js +267 -422
- package/lib/cli/driver-command.js +126 -23
- package/lib/cli/extension-command.js +679 -271
- package/lib/cli/extension.js +48 -17
- package/lib/cli/parser.js +263 -83
- package/lib/cli/plugin-command.js +115 -20
- package/lib/cli/utils.js +24 -10
- package/lib/config-file.js +220 -0
- package/lib/config.js +244 -110
- package/lib/constants.js +71 -0
- package/lib/extension/driver-config.js +250 -0
- package/lib/extension/extension-config.js +682 -0
- package/lib/extension/index.js +116 -0
- package/lib/extension/manifest-migrations.js +120 -0
- package/lib/extension/manifest.js +573 -0
- package/lib/extension/package-changed.js +64 -0
- package/lib/extension/plugin-config.js +112 -0
- package/lib/grid-register.js +49 -35
- package/lib/logger.js +1 -2
- package/lib/logsink.js +64 -38
- package/lib/main.js +321 -101
- package/lib/schema/arg-spec.js +229 -0
- package/lib/schema/cli-args.js +238 -0
- package/lib/schema/cli-transformers.js +119 -0
- package/lib/schema/index.js +2 -0
- package/lib/schema/keywords.js +136 -0
- package/lib/schema/schema.js +722 -0
- package/lib/utils.js +291 -167
- package/package.json +83 -84
- package/plugin.d.ts +1 -0
- package/plugin.js +13 -0
- package/scripts/autoinstall-extensions.js +237 -0
- package/support.d.ts +1 -0
- package/support.js +13 -0
- package/tsconfig.json +25 -0
- package/types/cli.ts +193 -0
- package/types/index.ts +20 -0
- package/types/manifest/README.md +30 -0
- package/types/manifest/base.ts +158 -0
- package/types/manifest/index.ts +27 -0
- package/types/manifest/v3.ts +161 -0
- package/CHANGELOG.md +0 -3515
- package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
- package/build/lib/cli/npm.js +0 -208
- package/build/lib/cli/parser-helpers.js +0 -82
- package/build/lib/driver-config.js +0 -77
- package/build/lib/drivers.js +0 -96
- package/build/lib/extension-config.js +0 -253
- package/build/lib/plugin-config.js +0 -59
- package/build/lib/plugins.js +0 -14
- package/lib/cli/npm.js +0 -184
- package/lib/cli/parser-helpers.js +0 -79
- package/lib/driver-config.js +0 -46
- package/lib/drivers.js +0 -81
- package/lib/extension-config.js +0 -209
- package/lib/plugin-config.js +0 -34
- package/lib/plugins.js +0 -10
package/build/lib/cli/parser.js
CHANGED
|
@@ -1,134 +1,246 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
require("
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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.ArgParser = exports.getParser = exports.EXTRA_ARGS = void 0;
|
|
7
|
+
const support_1 = require("@appium/support");
|
|
8
|
+
const argparse_1 = require("argparse");
|
|
9
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const constants_1 = require("../constants");
|
|
12
|
+
const schema_1 = require("../schema");
|
|
13
|
+
const config_1 = require("../config");
|
|
14
|
+
const args_1 = require("./args");
|
|
15
|
+
exports.EXTRA_ARGS = 'extraArgs';
|
|
16
|
+
/**
|
|
17
|
+
* If the parsed args do not contain any of these values, then we
|
|
18
|
+
* will automatially inject the `server` subcommand.
|
|
19
|
+
*/
|
|
20
|
+
const NON_SERVER_ARGS = Object.freeze(new Set([constants_1.DRIVER_TYPE, constants_1.PLUGIN_TYPE, constants_1.SERVER_SUBCOMMAND, '-h', '--help', '-v', '--version']));
|
|
21
|
+
const version = support_1.fs.readPackageJsonFrom(config_1.rootDir).version;
|
|
22
|
+
/**
|
|
23
|
+
* A wrapper around `argparse`
|
|
24
|
+
*
|
|
25
|
+
* - Handles instantiation, configuration, and monkeypatching of an
|
|
26
|
+
* `ArgumentParser` instance for Appium server and its extensions
|
|
27
|
+
* - Handles error conditions, messages, and exit behavior
|
|
28
|
+
*/
|
|
29
|
+
class ArgParser {
|
|
30
|
+
/**
|
|
31
|
+
* @param {boolean} [debug] - If true, throw instead of exit on error.
|
|
32
|
+
*/
|
|
33
|
+
constructor(debug = false) {
|
|
34
|
+
const prog = process.argv[1] ? path_1.default.basename(process.argv[1]) : 'appium';
|
|
35
|
+
const parser = new argparse_1.ArgumentParser({
|
|
36
|
+
add_help: true,
|
|
37
|
+
description: 'A webdriver-compatible server that facilitates automation of web, mobile, and other types of apps across various platforms.',
|
|
38
|
+
prog,
|
|
39
|
+
});
|
|
40
|
+
ArgParser._patchExit(parser);
|
|
41
|
+
/**
|
|
42
|
+
* Program name (typically `appium`)
|
|
43
|
+
* @type {string}
|
|
44
|
+
*/
|
|
45
|
+
this.prog = prog;
|
|
46
|
+
/**
|
|
47
|
+
* If `true`, throw an error on parse failure instead of printing help
|
|
48
|
+
* @type {boolean}
|
|
49
|
+
*/
|
|
50
|
+
this.debug = debug;
|
|
51
|
+
/**
|
|
52
|
+
* Wrapped `ArgumentParser` instance
|
|
53
|
+
* @type {ArgumentParser}
|
|
54
|
+
*/
|
|
55
|
+
this.parser = parser;
|
|
56
|
+
parser.add_argument('-v', '--version', {
|
|
57
|
+
action: 'version',
|
|
58
|
+
version,
|
|
59
|
+
});
|
|
60
|
+
const subParsers = parser.add_subparsers({ dest: 'subcommand' });
|
|
61
|
+
// add the 'server' subcommand, and store the raw arguments on the parser
|
|
62
|
+
// object as a way for other parts of the code to work with the arguments
|
|
63
|
+
// conceptually rather than just through argparse
|
|
64
|
+
const serverArgs = ArgParser._addServerToParser(subParsers);
|
|
65
|
+
this.rawArgs = serverArgs;
|
|
66
|
+
// add the 'driver' and 'plugin' subcommands
|
|
67
|
+
ArgParser._addExtensionCommandsToParser(subParsers);
|
|
68
|
+
// backwards compatibility / drop-in wrapper
|
|
69
|
+
/**
|
|
70
|
+
* @type {ArgParser['parseArgs']}
|
|
71
|
+
*/
|
|
72
|
+
this.parse_args = this.parseArgs;
|
|
46
73
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Parse arguments from the command line.
|
|
76
|
+
*
|
|
77
|
+
* If no subcommand is passed in, this method will inject the `server` subcommand.
|
|
78
|
+
*
|
|
79
|
+
* `ArgParser.prototype.parse_args` is an alias of this method.
|
|
80
|
+
* @template {import('appium/types').CliCommand} [Cmd=import('appium/types').CliCommandServer]
|
|
81
|
+
* @param {string[]} [args] - Array of arguments, ostensibly from `process.argv`. Gathers args from `process.argv` if not provided.
|
|
82
|
+
* @returns {import('appium/types').Args<Cmd>} - The parsed arguments
|
|
83
|
+
*/
|
|
84
|
+
parseArgs(args = process.argv.slice(2)) {
|
|
85
|
+
if (!NON_SERVER_ARGS.has(args[0])) {
|
|
86
|
+
args.unshift(constants_1.SERVER_SUBCOMMAND);
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
const parsed = this.parser.parse_known_args(args);
|
|
90
|
+
const [knownArgs, unknownArgs] = parsed;
|
|
91
|
+
if (unknownArgs?.length &&
|
|
92
|
+
(knownArgs.driverCommand === 'run' || knownArgs.pluginCommand === 'run')) {
|
|
93
|
+
return ArgParser._transformParsedArgs(knownArgs, unknownArgs);
|
|
94
|
+
}
|
|
95
|
+
else if (unknownArgs?.length) {
|
|
96
|
+
throw new Error(`[ERROR] Unrecognized arguments: ${unknownArgs.join(' ')}`);
|
|
97
|
+
}
|
|
98
|
+
return ArgParser._transformParsedArgs(knownArgs);
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
if (this.debug) {
|
|
102
|
+
throw err;
|
|
103
|
+
}
|
|
104
|
+
// this isn't tested via unit tests (we use `debug: true`) so may escape coverage.
|
|
105
|
+
/* istanbul ignore next */
|
|
106
|
+
{
|
|
107
|
+
// eslint-disable-next-line no-console
|
|
108
|
+
console.error(); // need an extra space since argparse prints usage.
|
|
109
|
+
// eslint-disable-next-line no-console
|
|
110
|
+
console.error(err.message);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
50
114
|
}
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
help: `List available and installed ${type}s`
|
|
98
|
-
}, {
|
|
99
|
-
command: 'install',
|
|
100
|
-
args: _args.extensionArgs[type].install,
|
|
101
|
-
help: `Install a ${type}`
|
|
102
|
-
}, {
|
|
103
|
-
command: 'uninstall',
|
|
104
|
-
args: _args.extensionArgs[type].uninstall,
|
|
105
|
-
help: `Uninstall a ${type}`
|
|
106
|
-
}, {
|
|
107
|
-
command: 'update',
|
|
108
|
-
args: _args.extensionArgs[type].update,
|
|
109
|
-
help: `Update installed ${type}s to the latest version`
|
|
110
|
-
}];
|
|
111
|
-
|
|
112
|
-
for (const {
|
|
113
|
-
command,
|
|
114
|
-
args,
|
|
115
|
-
help
|
|
116
|
-
} of parserSpecs) {
|
|
117
|
-
const parser = extSubParsers.addParser(command, {
|
|
118
|
-
help,
|
|
119
|
-
debug
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
for (const [flags, opts] of [...sharedArgs, ...args]) {
|
|
123
|
-
parser.addArgument([...flags], { ...opts
|
|
115
|
+
/**
|
|
116
|
+
* Given an object full of arguments as returned by `argparser.parse_args`,
|
|
117
|
+
* expand the ones for extensions into a nested object structure and rename
|
|
118
|
+
* keys to match the intended destination.
|
|
119
|
+
*
|
|
120
|
+
* E.g., `{'driver-foo-bar': baz}` becomes `{driver: {foo: {bar: 'baz'}}}`
|
|
121
|
+
* @param {object} args
|
|
122
|
+
* @param {string[]} [unknownArgs]
|
|
123
|
+
* @returns {object}
|
|
124
|
+
*/
|
|
125
|
+
static _transformParsedArgs(args, unknownArgs = []) {
|
|
126
|
+
const result = lodash_1.default.reduce(args, (unpacked, value, key) => {
|
|
127
|
+
if (!lodash_1.default.isUndefined(value) && (0, schema_1.hasArgSpec)(key)) {
|
|
128
|
+
const { dest } = /** @type {import('../schema/arg-spec').ArgSpec} */ ((0, schema_1.getArgSpec)(key));
|
|
129
|
+
lodash_1.default.set(unpacked, dest, value);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// this could be anything that _isn't_ a server arg
|
|
133
|
+
unpacked[key] = value;
|
|
134
|
+
}
|
|
135
|
+
return unpacked;
|
|
136
|
+
}, {});
|
|
137
|
+
result[exports.EXTRA_ARGS] = unknownArgs;
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Patches the `exit()` method of the parser to throw an error, so we can handle it manually.
|
|
142
|
+
* @param {ArgumentParser} parser
|
|
143
|
+
*/
|
|
144
|
+
static _patchExit(parser) {
|
|
145
|
+
parser.exit = (code, msg) => {
|
|
146
|
+
if (code) {
|
|
147
|
+
throw new Error(msg);
|
|
148
|
+
}
|
|
149
|
+
process.exit();
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
*
|
|
154
|
+
* @param {import('argparse').SubParser} subParser
|
|
155
|
+
* @returns {import('./args').ArgumentDefinitions}
|
|
156
|
+
*/
|
|
157
|
+
static _addServerToParser(subParser) {
|
|
158
|
+
const serverParser = subParser.add_parser('server', {
|
|
159
|
+
add_help: true,
|
|
160
|
+
help: 'Run an Appium server',
|
|
124
161
|
});
|
|
125
|
-
|
|
162
|
+
ArgParser._patchExit(serverParser);
|
|
163
|
+
const serverArgs = (0, args_1.getServerArgs)();
|
|
164
|
+
for (const [flagsOrNames, opts] of serverArgs) {
|
|
165
|
+
// TS doesn't like the spread operator here.
|
|
166
|
+
// @ts-ignore
|
|
167
|
+
serverParser.add_argument(...flagsOrNames, { ...opts });
|
|
168
|
+
}
|
|
169
|
+
return serverArgs;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Adds extension sub-sub-commands to `driver`/`plugin` subcommands
|
|
173
|
+
* @param {import('argparse').SubParser} subParsers
|
|
174
|
+
*/
|
|
175
|
+
static _addExtensionCommandsToParser(subParsers) {
|
|
176
|
+
for (const type of /** @type {[DriverType, PluginType]} */ ([constants_1.DRIVER_TYPE, constants_1.PLUGIN_TYPE])) {
|
|
177
|
+
const extParser = subParsers.add_parser(type, {
|
|
178
|
+
add_help: true,
|
|
179
|
+
help: `Access the ${type} management CLI commands`,
|
|
180
|
+
});
|
|
181
|
+
ArgParser._patchExit(extParser);
|
|
182
|
+
const extSubParsers = extParser.add_subparsers({
|
|
183
|
+
dest: `${type}Command`,
|
|
184
|
+
});
|
|
185
|
+
const extensionArgs = (0, args_1.getExtensionArgs)();
|
|
186
|
+
/**
|
|
187
|
+
* @type { {command: import('appium/types').CliExtensionSubcommand, args: import('./args').ArgumentDefinitions, help: string}[] }
|
|
188
|
+
*/
|
|
189
|
+
const parserSpecs = [
|
|
190
|
+
{
|
|
191
|
+
command: 'list',
|
|
192
|
+
args: extensionArgs[type].list,
|
|
193
|
+
help: `List available and installed ${type}s`,
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
command: 'install',
|
|
197
|
+
args: extensionArgs[type].install,
|
|
198
|
+
help: `Install a ${type}`,
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
command: 'uninstall',
|
|
202
|
+
args: extensionArgs[type].uninstall,
|
|
203
|
+
help: `Uninstall a ${type}`,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
command: 'update',
|
|
207
|
+
args: extensionArgs[type].update,
|
|
208
|
+
help: `Update installed ${type}s to the latest version`,
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
command: 'run',
|
|
212
|
+
args: extensionArgs[type].run,
|
|
213
|
+
help: `Run a script (defined inside the ${type}'s package.json under the ` +
|
|
214
|
+
`“scripts” field inside the “appium” field) from an installed ${type}`,
|
|
215
|
+
},
|
|
216
|
+
];
|
|
217
|
+
for (const { command, args, help } of parserSpecs) {
|
|
218
|
+
const parser = extSubParsers.add_parser(command, { help });
|
|
219
|
+
ArgParser._patchExit(parser);
|
|
220
|
+
for (const [flagsOrNames, opts] of args) {
|
|
221
|
+
// add_argument mutates params so make sure to send in copies instead
|
|
222
|
+
// @ts-ignore
|
|
223
|
+
parser.add_argument(...flagsOrNames, { ...opts });
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
126
227
|
}
|
|
127
|
-
}
|
|
128
228
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jbGkvcGFyc2VyLmpzIl0sIm5hbWVzIjpbImdldFBhcnNlciIsImRlYnVnIiwicGFyc2VyIiwiQXJndW1lbnRQYXJzZXIiLCJ2ZXJzaW9uIiwicmVxdWlyZSIsInBhdGgiLCJyZXNvbHZlIiwicm9vdERpciIsImFkZEhlbHAiLCJkZXNjcmlwdGlvbiIsInByb2ciLCJwcm9jZXNzIiwiYXJndiIsImJhc2VuYW1lIiwic3ViUGFyc2VycyIsImFkZFN1YnBhcnNlcnMiLCJkZXN0Iiwic2VydmVyQXJncyIsImFkZFNlcnZlclRvUGFyc2VyIiwic2hhcmVkQXJncyIsInJhd0FyZ3MiLCJhZGRFeHRlbnNpb25zVG9QYXJzZXIiLCJfcGFyc2VBcmdzIiwicGFyc2VBcmdzIiwiYXJncyIsIm5hbWVzcGFjZSIsIl8iLCJpc1VuZGVmaW5lZCIsInNsaWNlIiwiaW5jbHVkZXMiLCJEUklWRVJfVFlQRSIsIlBMVUdJTl9UWVBFIiwic3BsaWNlIiwiYmluZCIsInNlcnZlclBhcnNlciIsImFkZFBhcnNlciIsImhlbHAiLCJmbGFncyIsIm9wdHMiLCJhZGRBcmd1bWVudCIsImdldERlZmF1bHRTZXJ2ZXJBcmdzIiwiZGVmYXVsdHMiLCJhcmciLCJkZWZhdWx0VmFsdWUiLCJ0eXBlIiwiZXh0UGFyc2VyIiwiZXh0U3ViUGFyc2VycyIsInBhcnNlclNwZWNzIiwiY29tbWFuZCIsImV4dGVuc2lvbkFyZ3MiLCJsaXN0IiwiaW5zdGFsbCIsInVuaW5zdGFsbCIsInVwZGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLFNBQVNBLFNBQVQsQ0FBb0JDLEtBQUssR0FBRyxLQUE1QixFQUFtQztBQUNqQyxRQUFNQyxNQUFNLEdBQUcsSUFBSUMsd0JBQUosQ0FBbUI7QUFDaENDLElBQUFBLE9BQU8sRUFBRUMsT0FBTyxDQUFDQyxjQUFLQyxPQUFMLENBQWFDLGNBQWIsRUFBc0IsY0FBdEIsQ0FBRCxD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RDtBQUFVeEIsTUFBQUEsSUFBVjtBQUFnQlksTUFBQUE7QUFBaEIsS0FBWCxJQUFvQ1csV0FBcEMsRUFBaUQ7QUFDL0MsWUFBTTlDLE1BQU0sR0FBRzZDLGFBQWEsQ0FBQ1gsU0FBZCxDQUF3QmEsT0FBeEIsRUFBaUM7QUFBQ1osUUFBQUEsSUFBRDtBQUFPcEMsUUFBQUE7QUFBUCxPQUFqQyxDQUFmOztBQUNBLFdBQUssTUFBTSxDQUFDcUMsS0FBRCxFQUFRQyxJQUFSLENBQVgsSUFBNEIsQ0FBQyxHQUFHbkIsVUFBSixFQUFnQixHQUFHSyxJQUFuQixDQUE1QixFQUFzRDtBQUVwRHZCLFFBQUFBLE1BQU0sQ0FBQ3NDLFdBQVAsQ0FBbUIsQ0FBQyxHQUFHRixLQUFKLENBQW5CLEVBQStCLEVBQUMsR0FBR0M7QUFBSixTQUEvQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGOztlQUVjdkMsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEFyZ3VtZW50UGFyc2VyIH0gZnJvbSAnYXJncGFyc2UnO1xuaW1wb3J0IHsgc2hhcmVkQXJncywgc2VydmVyQXJncywgZXh0ZW5zaW9uQXJncyB9IGZyb20gJy4vYXJncyc7XG5pbXBvcnQgeyBEUklWRVJfVFlQRSwgUExVR0lOX1RZUEUgfSBmcm9tICcuLi9leHRlbnNpb24tY29uZmlnJztcbmltcG9ydCB7IHJvb3REaXIgfSBmcm9tICcuLi91dGlscyc7XG5cbmZ1bmN0aW9uIGdldFBhcnNlciAoZGVidWcgPSBmYWxzZSkge1xuICBjb25zdCBwYXJzZXIgPSBuZXcgQXJndW1lbnRQYXJzZXIoe1xuICAgIHZlcnNpb246IHJlcXVpcmUocGF0aC5yZXNvbHZlKHJvb3REaXIsICdwYWNrYWdlLmpzb24nKSkudmVyc2lvbixcbiAgICBhZGRIZWxwOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiAnQSB3ZWJkcml2ZXItY29tcGF0aWJsZSBzZXJ2ZXIgZm9yIHVzZSB3aXRoIG5hdGl2ZSBhbmQgaHlicmlkIGlPUyBhbmQgQW5kcm9pZCBhcHBsaWNhdGlvbnMuJyxcbiAgICBwcm9nOiBwcm9jZXNzLmFyZ3ZbMV0gPyBwYXRoLmJhc2VuYW1lKHByb2Nlc3MuYXJndlsxXSkgOiAnYXBwaXVtJyxcbiAgICBkZWJ1Z1xuICB9KTtcbiAgY29uc3Qgc3ViUGFyc2VycyA9IHBhcnNlci5hZGRTdWJwYXJzZXJzKHtkZXN0OiAnc3ViY29tbWFuZCcsIGRlYnVnfSk7XG5cbiAgLy8gYWRkIHRoZSAnc2VydmVyJyBzdWJjb21tYW5kLCBhbmQgc3RvcmUgdGhlIHJhdyBhcmd1bWVudHMgb24gdGhlIHBhcnNlclxuICAvLyBvYmplY3QgYXMgYSB3YXkgZm9yIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlIHRvIHdvcmsgd2l0aCB0aGUgYXJndW1lbnRzXG4gIC8vIGNvbmNlcHR1YWxseSByYXRoZXIgdGhhbiBqdXN0IHRocm91Z2ggYXJncGFyc2VcbiAgY29uc3Qgc2VydmVyQXJncyA9IGFkZFNlcnZlclRvUGFyc2VyKHNoYXJlZEFyZ3MsIHN1YlBhcnNlcnMsIGRlYnVnKTtcbiAgcGFyc2VyLnJhd0FyZ3MgPSBzZXJ2ZXJBcmdzO1xuXG4gIC8vIGFkZCB0aGUgJ2RyaXZlcicgYW5kICdwbHVnaW4nIHN1YmNvbW1hbmRzXG4gIGFkZEV4dGVuc2lvbnNUb1BhcnNlcihzaGFyZWRBcmdzLCBzdWJQYXJzZXJzLCBkZWJ1Zyk7XG5cbiAgLy8gbW9kaWZ5IHRoZSBwYXJzZUFyZ3MgZnVuY3Rpb24gdG8gaW5zZXJ0IHRoZSAnc2VydmVyJyBzdWJjb21tYW5kIGlmIHRoZVxuICAvLyB1c2VyIGhhc24ndCBzcGVjaWZpZWQgYSBzdWJjb21tYW5kIG9yIHRoZSBnbG9iYWwgaGVscCBjb21tYW5kXG4gIHBhcnNlci5fcGFyc2VBcmdzID0gcGFyc2VyLnBhcnNlQXJncztcbiAgcGFyc2VyLnBhcnNlQXJncyA9IGZ1bmN0aW9uIChhcmdzLCBuYW1lc3BhY2UpIHtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZChhcmdzKSkge1xuICAgICAgYXJncyA9IFsuLi5wcm9jZXNzLmFyZ3Yuc2xpY2UoMildO1xuICAgIH1cbiAgICBpZiAoIV8uaW5jbHVkZXMoW0RSSVZFUl9UWVBFLCBQTFVHSU5fVFlQRSwgJ3NlcnZlcicsICctaCddLCBhcmdzWzBdKSkge1xuICAgICAgYXJncy5zcGxpY2UoMCwgMCwgJ3NlcnZlcicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGFyc2VBcmdzKGFyZ3MsIG5hbWVzcGFjZSk7XG4gIH0uYmluZChwYXJzZXIpO1xuICByZXR1cm4gcGFyc2VyO1xufVxuXG5mdW5jdGlvbiBhZGRTZXJ2ZXJUb1BhcnNlciAoc2hhcmVkQXJncywgc3ViUGFyc2VycywgZGVidWcpIHtcbiAgY29uc3Qgc2VydmVyUGFyc2VyID0gc3ViUGFyc2Vycy5hZGRQYXJzZXIoJ3NlcnZlcicsIHtcbiAgICBhZGRIZWxwOiB0cnVlLFxuICAgIGhlbHA6ICdSdW4gYW4gQXBwaXVtIHNlcnZlcicsXG4gICAgZGVidWdcbiAgfSk7XG5cbiAgZm9yIChjb25zdCBbZmxhZ3MsIG9wdHNdIG9mIFsuLi5zaGFyZWRBcmdzLCAuLi5zZXJ2ZXJBcmdzXSkge1xuICAgIC8vIGFkZEFyZ3VtZW50IG11dGF0ZXMgYXJndW1lbnRzIHNvIG1ha2UgY29waWVzXG4gICAgc2VydmVyUGFyc2VyLmFkZEFyZ3VtZW50KFsuLi5mbGFnc10sIHsuLi5vcHRzfSk7XG4gIH1cblxuICByZXR1cm4gc2VydmVyQXJncztcbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdFNlcnZlckFyZ3MgKCkge1xuICBsZXQgZGVmYXVsdHMgPSB7fTtcbiAgZm9yIChsZXQgWywgYXJnXSBvZiBzZXJ2ZXJBcmdzKSB7XG4gICAgZGVmYXVsdHNbYXJnLmRlc3RdID0gYXJnLmRlZmF1bHRWYWx1ZTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG5cbmZ1bmN0aW9uIGFkZEV4dGVuc2lvbnNUb1BhcnNlciAoc2hhcmVkQXJncywgc3ViUGFyc2VycywgZGVidWcpIHtcbiAgZm9yIChjb25zdCB0eXBlIG9mIFtEUklWRVJfVFlQRSwgUExVR0lOX1RZUEVdKSB7XG4gICAgY29uc3QgZXh0UGFyc2VyID0gc3ViUGFyc2Vycy5hZGRQYXJzZXIodHlwZSwge1xuICAgICAgYWRkSGVscDogdHJ1ZSxcbiAgICAgIGhlbHA6IGBBY2Nlc3MgdGhlICR7dHlwZX0gbWFuYWdlbWVudCBDTEkgY29tbWFuZHNgLFxuICAgICAgZGVidWdcbiAgICB9KTtcbiAgICBjb25zdCBleHRTdWJQYXJzZXJzID0gZXh0UGFyc2VyLmFkZFN1YnBhcnNlcnMoe1xuICAgICAgZGVzdDogYCR7dHlwZX1Db21tYW5kYCxcbiAgICAgIGRlYnVnXG4gICAgfSk7XG4gICAgY29uc3QgcGFyc2VyU3BlY3MgPSBbXG4gICAgICB7Y29tbWFuZDogJ2xpc3QnLCBhcmdzOiBleHRlbnNpb25BcmdzW3R5cGVdLmxpc3QsXG4gICAgICAgaGVscDogYExpc3QgYXZhaWxhYmxlIGFuZCBpbnN0YWxsZWQgJHt0eXBlfXNgfSxcbiAgICAgIHtjb21tYW5kOiAnaW5zdGFsbCcsIGFyZ3M6IGV4dGVuc2lvbkFyZ3NbdHlwZV0uaW5zdGFsbCxcbiAgICAgICBoZWxwOiBgSW5zdGFsbCBhICR7dHlwZX1gfSxcbiAgICAgIHtjb21tYW5kOiAndW5pbnN0YWxsJywgYXJnczogZXh0ZW5zaW9uQXJnc1t0eXBlXS51bmluc3RhbGwsXG4gICAgICAgaGVscDogYFVuaW5zdGFsbCBhICR7dHlwZX1gfSxcbiAgICAgIHtjb21tYW5kOiAndXBkYXRlJywgYXJnczogZXh0ZW5zaW9uQXJnc1t0eXBlXS51cGRhdGUsXG4gICAgICAgaGVscDogYFVwZGF0ZSBpbnN0YWxsZWQgJHt0eXBlfXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uYH0sXG4gICAgXTtcblxuICAgIGZvciAoY29uc3Qge2NvbW1hbmQsIGFyZ3MsIGhlbHB9IG9mIHBhcnNlclNwZWNzKSB7XG4gICAgICBjb25zdCBwYXJzZXIgPSBleHRTdWJQYXJzZXJzLmFkZFBhcnNlcihjb21tYW5kLCB7aGVscCwgZGVidWd9KTtcbiAgICAgIGZvciAoY29uc3QgW2ZsYWdzLCBvcHRzXSBvZiBbLi4uc2hhcmVkQXJncywgLi4uYXJnc10pIHtcbiAgICAgICAgLy8gYWRkQXJndW1lbnQgbXV0YXRlcyBwYXJhbXMgc28gbWFrZSBzdXJlIHRvIHNlbmQgaW4gY29waWVzIGluc3RlYWRcbiAgICAgICAgcGFyc2VyLmFkZEFyZ3VtZW50KFsuLi5mbGFnc10sIHsuLi5vcHRzfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFBhcnNlcjtcbmV4cG9ydCB7IGdldFBhcnNlciwgZ2V0RGVmYXVsdFNlcnZlckFyZ3MgfTtcbiJdLCJmaWxlIjoibGliL2NsaS9wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
229
|
+
exports.ArgParser = ArgParser;
|
|
230
|
+
/**
|
|
231
|
+
* Creates a {@link ArgParser} instance; finalizes the config schema.
|
|
232
|
+
*
|
|
233
|
+
* @constructs ArgParser
|
|
234
|
+
* @param {boolean} [debug] - If `true`, throw instead of exit upon parsing error
|
|
235
|
+
* @returns {ArgParser}
|
|
236
|
+
*/
|
|
237
|
+
function getParser(debug) {
|
|
238
|
+
(0, schema_1.finalizeSchema)();
|
|
239
|
+
return new ArgParser(debug);
|
|
240
|
+
}
|
|
241
|
+
exports.getParser = getParser;
|
|
242
|
+
/**
|
|
243
|
+
* @typedef {import('@appium/types').DriverType} DriverType
|
|
244
|
+
* @typedef {import('@appium/types').PluginType} PluginType
|
|
245
|
+
*/
|
|
246
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../lib/cli/parser.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @extends {ExtensionCommand<PluginType>}
|
|
3
|
+
*/
|
|
4
|
+
export default class PluginCommand extends ExtensionCommand<"plugin"> {
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param {import('./extension-command').ExtensionCommandOptions<PluginType>} opts
|
|
8
|
+
*/
|
|
9
|
+
constructor({ config, json }: import('./extension-command').ExtensionCommandOptions<PluginType>);
|
|
10
|
+
/**
|
|
11
|
+
* Install a plugin
|
|
12
|
+
*
|
|
13
|
+
* @param {PluginInstallOpts} opts
|
|
14
|
+
* @returns {Promise<ExtRecord<PluginType>>}
|
|
15
|
+
*/
|
|
16
|
+
install({ plugin, installType, packageName }: PluginInstallOpts): Promise<ExtRecord<PluginType>>;
|
|
17
|
+
/**
|
|
18
|
+
* Uninstall a plugin
|
|
19
|
+
*
|
|
20
|
+
* @param {PluginUninstallOpts} opts
|
|
21
|
+
* @returns {Promise<ExtRecord<PluginType>>}
|
|
22
|
+
*/
|
|
23
|
+
uninstall({ plugin }: PluginUninstallOpts): Promise<ExtRecord<PluginType>>;
|
|
24
|
+
/**
|
|
25
|
+
* Update a plugin
|
|
26
|
+
*
|
|
27
|
+
* @param {PluginUpdateOpts} opts
|
|
28
|
+
* @returns {Promise<import('./extension-command').ExtensionUpdateResult>}
|
|
29
|
+
*/
|
|
30
|
+
update({ plugin, unsafe }: PluginUpdateOpts): Promise<import('./extension-command').ExtensionUpdateResult>;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @param {PluginRunOptions} opts
|
|
34
|
+
* @returns {Promise<import('./extension-command').RunOutput>}
|
|
35
|
+
*/
|
|
36
|
+
run({ plugin, scriptName, extraArgs }: PluginRunOptions): Promise<import('./extension-command').RunOutput>;
|
|
37
|
+
}
|
|
38
|
+
export type ExtensionType = import('@appium/types').ExtensionType;
|
|
39
|
+
export type PluginType = import('@appium/types').PluginType;
|
|
40
|
+
export type ExtRecord<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtRecord<ExtType>;
|
|
41
|
+
/**
|
|
42
|
+
* Options for {@linkcode PluginCommand.install }
|
|
43
|
+
*/
|
|
44
|
+
export type PluginInstallOpts = {
|
|
45
|
+
/**
|
|
46
|
+
* - the name or spec of a plugin to install
|
|
47
|
+
*/
|
|
48
|
+
plugin: string;
|
|
49
|
+
/**
|
|
50
|
+
* - how to install this plugin. One of the INSTALL_TYPES
|
|
51
|
+
*/
|
|
52
|
+
installType: InstallType;
|
|
53
|
+
/**
|
|
54
|
+
* - for git/github installs, the plugin node package name
|
|
55
|
+
*/
|
|
56
|
+
packageName?: string | undefined;
|
|
57
|
+
};
|
|
58
|
+
export type InstallType = import('appium/types').InstallType;
|
|
59
|
+
/**
|
|
60
|
+
* Options for {@linkcode PluginCommand.uninstall }
|
|
61
|
+
*/
|
|
62
|
+
export type PluginUninstallOpts = {
|
|
63
|
+
/**
|
|
64
|
+
* - the name or spec of a plugin to uninstall
|
|
65
|
+
*/
|
|
66
|
+
plugin: string;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Options for {@linkcode PluginCommand.update }
|
|
70
|
+
*/
|
|
71
|
+
export type PluginUpdateOpts = {
|
|
72
|
+
/**
|
|
73
|
+
* - the name of the plugin to update
|
|
74
|
+
*/
|
|
75
|
+
plugin: string;
|
|
76
|
+
/**
|
|
77
|
+
* - if true, will perform unsafe updates past major revision boundaries
|
|
78
|
+
*/
|
|
79
|
+
unsafe: boolean;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Options for {@linkcode PluginCommand.run }.
|
|
83
|
+
*/
|
|
84
|
+
export type PluginRunOptions = {
|
|
85
|
+
/**
|
|
86
|
+
* - name of the plugin to run a script from
|
|
87
|
+
*/
|
|
88
|
+
plugin: string;
|
|
89
|
+
/**
|
|
90
|
+
* - name of the script to run
|
|
91
|
+
*/
|
|
92
|
+
scriptName: string;
|
|
93
|
+
/**
|
|
94
|
+
* - arguments to pass to the script
|
|
95
|
+
*/
|
|
96
|
+
extraArgs?: string[] | undefined;
|
|
97
|
+
};
|
|
98
|
+
import ExtensionCommand from "./extension-command";
|
|
99
|
+
//# sourceMappingURL=plugin-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-command.d.ts","sourceRoot":"","sources":["../../../lib/cli/plugin-command.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IACE;;;OAGG;IACH,8BAFW,OAAO,qBAAqB,EAAE,uBAAuB,CAAC,UAAU,CAAC,EAK3E;IAED;;;;;OAKG;IACH,8CAHW,iBAAiB,GACf,QAAQ,UAAU,UAAU,CAAC,CAAC,CAQ1C;IAED;;;;;OAKG;IACH,sBAHW,mBAAmB,GACjB,QAAQ,UAAU,UAAU,CAAC,CAAC,CAI1C;IAED;;;;;OAKG;IACH,2BAHW,gBAAgB,GACd,QAAQ,OAAO,qBAAqB,EAAE,qBAAqB,CAAC,CAIxE;IAED;;;;OAIG;IACH,uCAHW,gBAAgB,GACd,QAAQ,OAAO,qBAAqB,EAAE,SAAS,CAAC,CAI5D;CAkCF;4BAGY,OAAO,eAAe,EAAE,aAAa;yBACrC,OAAO,eAAe,EAAE,UAAU;+EAKlC,OAAO,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC;;;;;;;;YAMxC,MAAM;;;;iBACN,WAAW;;;;;;0BAKZ,OAAO,cAAc,EAAE,WAAW;;;;;;;;YAMjC,MAAM;;;;;;;;;YAMN,MAAM;;;;YACN,OAAO;;;;;;;;;YAMP,MAAM;;;;gBACN,MAAM"}
|