appium 2.0.0-beta.4 → 2.0.0-beta.40
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 +10 -11
- package/build/lib/appium.d.ts +204 -0
- package/build/lib/appium.d.ts.map +1 -0
- package/build/lib/appium.js +257 -131
- package/build/lib/cli/args.d.ts +20 -0
- package/build/lib/cli/args.d.ts.map +1 -0
- package/build/lib/cli/args.js +96 -282
- package/build/lib/cli/driver-command.d.ts +36 -0
- package/build/lib/cli/driver-command.d.ts.map +1 -0
- package/build/lib/cli/driver-command.js +25 -18
- package/build/lib/cli/extension-command.d.ts +372 -0
- package/build/lib/cli/extension-command.d.ts.map +1 -0
- package/build/lib/cli/extension-command.js +286 -156
- package/build/lib/cli/extension.d.ts +18 -0
- package/build/lib/cli/extension.d.ts.map +1 -0
- package/build/lib/cli/extension.js +30 -17
- package/build/lib/cli/parser.d.ts +80 -0
- package/build/lib/cli/parser.d.ts.map +1 -0
- package/build/lib/cli/parser.js +152 -95
- package/build/lib/cli/plugin-command.d.ts +33 -0
- package/build/lib/cli/plugin-command.d.ts.map +1 -0
- package/build/lib/cli/plugin-command.js +24 -19
- 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 +27 -3
- 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 +136 -0
- package/build/lib/config.d.ts +41 -0
- package/build/lib/config.d.ts.map +1 -0
- package/build/lib/config.js +92 -67
- package/build/lib/constants.d.ts +48 -0
- package/build/lib/constants.d.ts.map +1 -0
- package/build/lib/constants.js +60 -0
- package/build/lib/extension/driver-config.d.ts +81 -0
- package/build/lib/extension/driver-config.d.ts.map +1 -0
- package/build/lib/extension/driver-config.js +177 -0
- package/build/lib/extension/extension-config.d.ts +242 -0
- package/build/lib/extension/extension-config.d.ts.map +1 -0
- package/build/lib/extension/extension-config.js +436 -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 +74 -0
- package/build/lib/extension/manifest.d.ts +174 -0
- package/build/lib/extension/manifest.d.ts.map +1 -0
- package/build/lib/extension/manifest.js +256 -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 +68 -0
- package/build/lib/extension/plugin-config.d.ts +57 -0
- package/build/lib/extension/plugin-config.d.ts.map +1 -0
- package/build/lib/extension/plugin-config.js +78 -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 +21 -25
- package/build/lib/logger.d.ts +3 -0
- package/build/lib/logger.d.ts.map +1 -0
- package/build/lib/logger.js +4 -6
- package/build/lib/logsink.d.ts +4 -0
- package/build/lib/logsink.d.ts.map +1 -0
- package/build/lib/logsink.js +14 -17
- package/build/lib/main.d.ts +55 -0
- package/build/lib/main.d.ts.map +1 -0
- package/build/lib/main.js +189 -90
- 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 +119 -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 +180 -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 +74 -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 +34 -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 +70 -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 +452 -0
- package/build/lib/utils.d.ts +66 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +35 -139
- package/build/tsconfig.tsbuildinfo +1 -0
- package/build/types/appium-manifest.d.ts +59 -0
- package/build/types/appium-manifest.d.ts.map +1 -0
- package/build/types/cli.d.ts +112 -0
- package/build/types/cli.d.ts.map +1 -0
- package/build/types/extension-manifest.d.ts +55 -0
- package/build/types/extension-manifest.d.ts.map +1 -0
- package/build/types/index.d.ts +16 -0
- package/build/types/index.d.ts.map +1 -0
- package/driver.d.ts +1 -0
- package/driver.js +14 -0
- package/index.js +11 -0
- package/lib/appium.js +517 -186
- package/lib/cli/args.js +269 -422
- package/lib/cli/driver-command.js +58 -23
- package/lib/cli/extension-command.js +612 -260
- package/lib/cli/extension.js +34 -16
- package/lib/cli/parser.js +241 -83
- package/lib/cli/plugin-command.js +48 -20
- package/lib/cli/utils.js +24 -10
- package/lib/config-file.js +219 -0
- package/lib/config.js +210 -91
- package/lib/constants.js +69 -0
- package/lib/extension/driver-config.js +249 -0
- package/lib/extension/extension-config.js +679 -0
- package/lib/extension/index.js +116 -0
- package/lib/extension/manifest.js +475 -0
- package/lib/extension/package-changed.js +64 -0
- package/lib/extension/plugin-config.js +113 -0
- package/lib/grid-register.js +49 -35
- package/lib/logger.js +1 -2
- package/lib/logsink.js +38 -33
- package/lib/main.js +303 -100
- package/lib/schema/arg-spec.js +229 -0
- package/lib/schema/cli-args.js +238 -0
- package/lib/schema/cli-transformers.js +115 -0
- package/lib/schema/index.js +2 -0
- package/lib/schema/keywords.js +136 -0
- package/lib/schema/schema.js +717 -0
- package/lib/utils.js +121 -140
- package/package.json +75 -85
- package/plugin.d.ts +1 -0
- package/plugin.js +13 -0
- package/scripts/autoinstall-extensions.js +177 -0
- package/support.d.ts +1 -0
- package/support.js +13 -0
- package/types/appium-manifest.ts +73 -0
- package/types/cli.ts +146 -0
- package/types/extension-manifest.ts +64 -0
- package/types/index.ts +21 -0
- package/CHANGELOG.md +0 -3515
- package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
- package/build/lib/cli/npm.js +0 -206
- 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 -183
- 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
|
@@ -13,9 +13,9 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
13
13
|
|
|
14
14
|
var _extensionCommand = _interopRequireDefault(require("./extension-command"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _constants = require("../constants");
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
require("@colors/colors");
|
|
19
19
|
|
|
20
20
|
const REQ_DRIVER_FIELDS = ['driverName', 'automationName', 'platformNames', 'mainClass'];
|
|
21
21
|
|
|
@@ -26,10 +26,9 @@ class DriverCommand extends _extensionCommand.default {
|
|
|
26
26
|
}) {
|
|
27
27
|
super({
|
|
28
28
|
config,
|
|
29
|
-
json
|
|
30
|
-
type: _extensionConfig.DRIVER_TYPE
|
|
29
|
+
json
|
|
31
30
|
});
|
|
32
|
-
this.knownExtensions =
|
|
31
|
+
this.knownExtensions = _constants.KNOWN_DRIVERS;
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
async install({
|
|
@@ -37,8 +36,8 @@ class DriverCommand extends _extensionCommand.default {
|
|
|
37
36
|
installType,
|
|
38
37
|
packageName
|
|
39
38
|
}) {
|
|
40
|
-
return await super.
|
|
41
|
-
|
|
39
|
+
return await super._install({
|
|
40
|
+
installSpec: driver,
|
|
42
41
|
installType,
|
|
43
42
|
packageName
|
|
44
43
|
});
|
|
@@ -47,8 +46,8 @@ class DriverCommand extends _extensionCommand.default {
|
|
|
47
46
|
async uninstall({
|
|
48
47
|
driver
|
|
49
48
|
}) {
|
|
50
|
-
return await super.
|
|
51
|
-
|
|
49
|
+
return await super._uninstall({
|
|
50
|
+
installSpec: driver
|
|
52
51
|
});
|
|
53
52
|
}
|
|
54
53
|
|
|
@@ -56,12 +55,22 @@ class DriverCommand extends _extensionCommand.default {
|
|
|
56
55
|
driver,
|
|
57
56
|
unsafe
|
|
58
57
|
}) {
|
|
59
|
-
return await super.
|
|
60
|
-
|
|
58
|
+
return await super._update({
|
|
59
|
+
installSpec: driver,
|
|
61
60
|
unsafe
|
|
62
61
|
});
|
|
63
62
|
}
|
|
64
63
|
|
|
64
|
+
async run({
|
|
65
|
+
driver,
|
|
66
|
+
scriptName
|
|
67
|
+
}) {
|
|
68
|
+
return await super._run({
|
|
69
|
+
installSpec: driver,
|
|
70
|
+
scriptName
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
65
74
|
getPostInstallText({
|
|
66
75
|
extName,
|
|
67
76
|
extData
|
|
@@ -69,17 +78,15 @@ class DriverCommand extends _extensionCommand.default {
|
|
|
69
78
|
return `Driver ${extName}@${extData.version} successfully installed\n`.green + `- automationName: ${extData.automationName.green}\n` + `- platformNames: ${JSON.stringify(extData.platformNames).green}`;
|
|
70
79
|
}
|
|
71
80
|
|
|
72
|
-
validateExtensionFields(
|
|
73
|
-
const missingFields = REQ_DRIVER_FIELDS.reduce((acc, field) =>
|
|
81
|
+
validateExtensionFields(driverMetadata, installSpec) {
|
|
82
|
+
const missingFields = REQ_DRIVER_FIELDS.reduce((acc, field) => driverMetadata[field] ? acc : [...acc, field], []);
|
|
74
83
|
|
|
75
84
|
if (!_lodash.default.isEmpty(missingFields)) {
|
|
76
|
-
throw new Error(`
|
|
85
|
+
throw new Error(`Driver "${installSpec}" did not expose correct fields for compability ` + `with Appium. Missing fields: ${JSON.stringify(missingFields)}`);
|
|
77
86
|
}
|
|
78
87
|
}
|
|
79
88
|
|
|
80
89
|
}
|
|
81
90
|
|
|
82
|
-
exports.default = DriverCommand;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jbGkvZHJpdmVyLWNvbW1hbmQuanMiXSwibmFtZXMiOlsiUkVRX0RSSVZFUl9GSUVMRFMiLCJEcml2ZXJDb21tYW5kIiwiRXh0ZW5zaW9uQ29tbWFuZCIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwianNvbiIsInR5cGUiLCJEUklWRVJfVFlQRSIsImtub3duRXh0ZW5zaW9ucyIsIktOT1dOX0RSSVZFUlMiLCJpbnN0YWxsIiwiZHJpdmVyIiwiaW5zdGFsbFR5cGUiLCJwYWNrYWdlTmFtZSIsImV4dCIsInVuaW5zdGFsbCIsInVwZGF0ZSIsInVuc2FmZSIsImdldFBvc3RJbnN0YWxsVGV4dCIsImV4dE5hbWUiLCJleHREYXRhIiwidmVyc2lvbiIsImdyZWVuIiwiYXV0b21hdGlvbk5hbWUiLCJKU09OIiwic3RyaW5naWZ5IiwicGxhdGZvcm1OYW1lcyIsInZhbGlkYXRlRXh0ZW5zaW9uRmllbGRzIiwiYXBwaXVtUGtnRGF0YSIsIm1pc3NpbmdGaWVsZHMiLCJyZWR1Y2UiLCJhY2MiLCJmaWVsZCIsIl8iLCJpc0VtcHR5IiwiRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsaUJBQWlCLEdBQUcsQ0FBQyxZQUFELEVBQWUsZ0JBQWYsRUFBaUMsZUFBakMsRUFBa0QsV0FBbEQsQ0FBMUI7O0FBRWUsTUFBTUMsYUFBTixTQUE0QkMseUJBQTVCLENBQTZDO0FBRTFEQyxFQUFBQSxXQUFXLENBQUU7QUFBQ0MsSUFBQUEsTUFBRDtBQUFTQyxJQUFBQTtBQUFULEdBQUYsRUFBa0I7QUFDM0IsVUFBTTtBQUFDRCxNQUFBQSxNQUFEO0FBQVNDLE1BQUFBLElBQVQ7QUFBZUMsTUFBQUEsSUFBSSxFQUFFQztBQUFyQixLQUFOO0FBQ0EsU0FBS0MsZUFBTCxHQUF1QkMsc0JBQXZCO0FBQ0Q7O0FBRUQsUUFBTUMsT0FBTixDQUFlO0FBQUNDLElBQUFBLE1BQUQ7QUFBU0MsSUFBQUEsV0FBVDtBQUFzQkMsSUFBQUE7QUFBdEIsR0FBZixFQUFtRDtBQUNqRCxXQUFPLE1BQU0sTUFBTUgsT0FBTixDQUFjO0FBQUNJLE1BQUFBLEdBQUcsRUFBRUgsTUFBTjtBQUFjQyxNQUFBQSxXQUFkO0FBQTJCQyxNQUFBQTtBQUEzQixLQUFkLENBQWI7QUFDRDs7QUFFRCxRQUFNRSxTQUFOLENBQWlCO0FBQUNKLElBQUFBO0FBQUQsR0FBakIsRUFBMkI7QUFDekIsV0FBTyxNQUFNLE1BQU1JLFNBQU4sQ0FBZ0I7QUFBQ0QsTUFBQUEsR0FBRyxFQUFFSDtBQUFOLEtBQWhCLENBQWI7QUFDRDs7QUFFRCxRQUFNSyxNQUFOLENBQWM7QUFBQ0wsSUFBQUEsTUFBRDtBQUFTTSxJQUFBQTtBQUFULEdBQWQsRUFBZ0M7QUFDOUIsV0FBTyxNQUFNLE1BQU1ELE1BQU4sQ0FBYTtBQUFDRixNQUFBQSxHQUFHLEVBQUVILE1BQU47QUFBY00sTUFBQUE7QUFBZCxLQUFiLENBQWI7QUFDRDs7QUFFREMsRUFBQUEsa0JBQWtCLENBQUU7QUFBQ0MsSUFBQUEsT0FBRDtBQUFVQyxJQUFBQTtBQUFWLEdBQUYsRUFBc0I7QUFDdEMsV0FBUSxVQUFTRCxPQUFRLElBQUdDLE9BQU8sQ0FBQ0MsT0FBUSwyQkFBckMsQ0FBZ0VDLEtBQWhFLEdBQ0MscUJBQW9CRixPQUFPLENBQUNHLGNBQVIsQ0FBdUJELEtBQU0sSUFEbEQsR0FFQyxvQkFBbUJFLElBQUksQ0FBQ0MsU0FBTCxDQUFlTCxPQUFPLENBQUNNLGFBQXZCLEVBQXNDSixLQUFNLEVBRnZFO0FBR0Q7O0FBRURLLEVBQUFBLHVCQUF1QixDQUFFQyxhQUFGLEVBQWlCO0FBQ3RDLFVBQU1DLGFBQWEsR0FBRzdCLGlCQUFpQixDQUFDOEIsTUFBbEIsQ0FBeUIsQ0FBQ0MsR0FBRCxFQUFNQyxLQUFOLEtBQzdDSixhQUFhLENBQUNJLEtBQUQsQ0FBYixHQUF1QkQsR0FBdkIsR0FBNkIsQ0FBQyxHQUFHQSxHQUFKLEVBQVNDLEtBQVQsQ0FEVCxFQUVuQixFQUZtQixDQUF0Qjs7QUFJQSxRQUFJLENBQUNDLGdCQUFFQyxPQUFGLENBQVVMLGFBQVYsQ0FBTCxFQUErQjtBQUM3QixZQUFNLElBQUlNLEtBQUosQ0FBVyxpRUFBRCxHQUNDLGdDQUErQlgsSUFBSSxDQUFDQyxTQUFMLENBQWVJLGFBQWYsQ0FBOEIsRUFEeEUsQ0FBTjtBQUVEO0FBRUY7O0FBbkN5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgRXh0ZW5zaW9uQ29tbWFuZCBmcm9tICcuL2V4dGVuc2lvbi1jb21tYW5kJztcbmltcG9ydCB7IERSSVZFUl9UWVBFIH0gZnJvbSAnLi4vZXh0ZW5zaW9uLWNvbmZpZyc7XG5pbXBvcnQgeyBLTk9XTl9EUklWRVJTIH0gZnJvbSAnLi4vZHJpdmVycyc7XG5cbmNvbnN0IFJFUV9EUklWRVJfRklFTERTID0gWydkcml2ZXJOYW1lJywgJ2F1dG9tYXRpb25OYW1lJywgJ3BsYXRmb3JtTmFtZXMnLCAnbWFpbkNsYXNzJ107XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyaXZlckNvbW1hbmQgZXh0ZW5kcyBFeHRlbnNpb25Db21tYW5kIHtcblxuICBjb25zdHJ1Y3RvciAoe2NvbmZpZywganNvbn0pIHtcbiAgICBzdXBlcih7Y29uZmlnLCBqc29uLCB0eXBlOiBEUklWRVJfVFlQRX0pO1xuICAgIHRoaXMua25vd25FeHRlbnNpb25zID0gS05PV05fRFJJVkVSUztcbiAgfVxuXG4gIGFzeW5jIGluc3RhbGwgKHtkcml2ZXIsIGluc3RhbGxUeXBlLCBwYWNrYWdlTmFtZX0pIHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuaW5zdGFsbCh7ZXh0OiBkcml2ZXIsIGluc3RhbGxUeXBlLCBwYWNrYWdlTmFtZX0pO1xuICB9XG5cbiAgYXN5bmMgdW5pbnN0YWxsICh7ZHJpdmVyfSkge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci51bmluc3RhbGwoe2V4dDogZHJpdmVyfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGUgKHtkcml2ZXIsIHVuc2FmZX0pIHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIudXBkYXRlKHtleHQ6IGRyaXZlciwgdW5zYWZlfSk7XG4gIH1cblxuICBnZXRQb3N0SW5zdGFsbFRleHQgKHtleHROYW1lLCBleHREYXRhfSkge1xuICAgIHJldHVybiBgRHJpdmVyICR7ZXh0TmFtZX1AJHtleHREYXRhLnZlcnNpb259IHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWRcXG5gLmdyZWVuICtcbiAgICAgICAgICAgYC0gYXV0b21hdGlvbk5hbWU6ICR7ZXh0RGF0YS5hdXRvbWF0aW9uTmFtZS5ncmVlbn1cXG5gICtcbiAgICAgICAgICAgYC0gcGxhdGZvcm1OYW1lczogJHtKU09OLnN0cmluZ2lmeShleHREYXRhLnBsYXRmb3JtTmFtZXMpLmdyZWVufWA7XG4gIH1cblxuICB2YWxpZGF0ZUV4dGVuc2lvbkZpZWxkcyAoYXBwaXVtUGtnRGF0YSkge1xuICAgIGNvbnN0IG1pc3NpbmdGaWVsZHMgPSBSRVFfRFJJVkVSX0ZJRUxEUy5yZWR1Y2UoKGFjYywgZmllbGQpID0+IChcbiAgICAgIGFwcGl1bVBrZ0RhdGFbZmllbGRdID8gYWNjIDogWy4uLmFjYywgZmllbGRdXG4gICAgKSwgW10pO1xuXG4gICAgaWYgKCFfLmlzRW1wdHkobWlzc2luZ0ZpZWxkcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5zdGFsbGVkIGRyaXZlciBkaWQgbm90IGV4cG9zZSBjb3JyZWN0IGZpZWxkcyBmb3IgY29tcGFiaWxpdHkgYCArXG4gICAgICAgICAgICAgICAgICAgICAgYHdpdGggQXBwaXVtLiBNaXNzaW5nIGZpZWxkczogJHtKU09OLnN0cmluZ2lmeShtaXNzaW5nRmllbGRzKX1gKTtcbiAgICB9XG5cbiAgfVxuXG59XG4iXSwiZmlsZSI6ImxpYi9jbGkvZHJpdmVyLWNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
91
|
+
exports.default = DriverCommand;
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSRVFfRFJJVkVSX0ZJRUxEUyIsIkRyaXZlckNvbW1hbmQiLCJFeHRlbnNpb25Db21tYW5kIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJqc29uIiwia25vd25FeHRlbnNpb25zIiwiS05PV05fRFJJVkVSUyIsImluc3RhbGwiLCJkcml2ZXIiLCJpbnN0YWxsVHlwZSIsInBhY2thZ2VOYW1lIiwiX2luc3RhbGwiLCJpbnN0YWxsU3BlYyIsInVuaW5zdGFsbCIsIl91bmluc3RhbGwiLCJ1cGRhdGUiLCJ1bnNhZmUiLCJfdXBkYXRlIiwicnVuIiwic2NyaXB0TmFtZSIsIl9ydW4iLCJnZXRQb3N0SW5zdGFsbFRleHQiLCJleHROYW1lIiwiZXh0RGF0YSIsInZlcnNpb24iLCJncmVlbiIsImF1dG9tYXRpb25OYW1lIiwiSlNPTiIsInN0cmluZ2lmeSIsInBsYXRmb3JtTmFtZXMiLCJ2YWxpZGF0ZUV4dGVuc2lvbkZpZWxkcyIsImRyaXZlck1ldGFkYXRhIiwibWlzc2luZ0ZpZWxkcyIsInJlZHVjZSIsImFjYyIsImZpZWxkIiwiXyIsImlzRW1wdHkiLCJFcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jbGkvZHJpdmVyLWNvbW1hbmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBFeHRlbnNpb25Db21tYW5kIGZyb20gJy4vZXh0ZW5zaW9uLWNvbW1hbmQnO1xuaW1wb3J0IHtLTk9XTl9EUklWRVJTfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0ICdAY29sb3JzL2NvbG9ycyc7XG5cbmNvbnN0IFJFUV9EUklWRVJfRklFTERTID0gWydkcml2ZXJOYW1lJywgJ2F1dG9tYXRpb25OYW1lJywgJ3BsYXRmb3JtTmFtZXMnLCAnbWFpbkNsYXNzJ107XG5cbi8qKlxuICogQGV4dGVuZHMge0V4dGVuc2lvbkNvbW1hbmQ8RHJpdmVyVHlwZT59XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyaXZlckNvbW1hbmQgZXh0ZW5kcyBFeHRlbnNpb25Db21tYW5kIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KCcuL2V4dGVuc2lvbi1jb21tYW5kJykuRXh0ZW5zaW9uQ29tbWFuZE9wdGlvbnM8RHJpdmVyVHlwZT59IG9wdHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWcsIGpzb259KSB7XG4gICAgc3VwZXIoe2NvbmZpZywganNvbn0pO1xuICAgIHRoaXMua25vd25FeHRlbnNpb25zID0gS05PV05fRFJJVkVSUztcbiAgfVxuXG4gIGFzeW5jIGluc3RhbGwoe2RyaXZlciwgaW5zdGFsbFR5cGUsIHBhY2thZ2VOYW1lfSkge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5faW5zdGFsbCh7XG4gICAgICBpbnN0YWxsU3BlYzogZHJpdmVyLFxuICAgICAgaW5zdGFsbFR5cGUsXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVuaW5zdGFsbCh7ZHJpdmVyfSkge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5fdW5pbnN0YWxsKHtpbnN0YWxsU3BlYzogZHJpdmVyfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoe2RyaXZlciwgdW5zYWZlfSkge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5fdXBkYXRlKHtpbnN0YWxsU3BlYzogZHJpdmVyLCB1bnNhZmV9KTtcbiAgfVxuXG4gIGFzeW5jIHJ1bih7ZHJpdmVyLCBzY3JpcHROYW1lfSkge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5fcnVuKHtpbnN0YWxsU3BlYzogZHJpdmVyLCBzY3JpcHROYW1lfSk7XG4gIH1cblxuICBnZXRQb3N0SW5zdGFsbFRleHQoe2V4dE5hbWUsIGV4dERhdGF9KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGBEcml2ZXIgJHtleHROYW1lfUAke2V4dERhdGEudmVyc2lvbn0gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZFxcbmAuZ3JlZW4gK1xuICAgICAgYC0gYXV0b21hdGlvbk5hbWU6ICR7ZXh0RGF0YS5hdXRvbWF0aW9uTmFtZS5ncmVlbn1cXG5gICtcbiAgICAgIGAtIHBsYXRmb3JtTmFtZXM6ICR7SlNPTi5zdHJpbmdpZnkoZXh0RGF0YS5wbGF0Zm9ybU5hbWVzKS5ncmVlbn1gXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgZmllbGRzIGluIGBhcHBpdW1gIGZpZWxkIG9mIGBkcml2ZXJNZXRhZGF0YWBcbiAgICpcbiAgICogRm9yIGFueSBgcGFja2FnZS5qc29uYCBmaWVsZHMgd2hpY2ggYSBkcml2ZXIgcmVxdWlyZXMsIHZhbGlkYXRlIHRoZSB0eXBlIG9mXG4gICAqIHRob3NlIGZpZWxkcyBvbiB0aGUgYHBhY2thZ2UuanNvbmAgZGF0YSwgdGhyb3dpbmcgYW4gZXJyb3IgaWYgYW55dGhpbmcgaXNcbiAgICogYW1pc3MuXG4gICAqIEBwYXJhbSB7aW1wb3J0KCdhcHBpdW0vdHlwZXMnKS5FeHRNZXRhZGF0YTxEcml2ZXJUeXBlPn0gZHJpdmVyTWV0YWRhdGFcbiAgICogQHBhcmFtIHtzdHJpbmd9IGluc3RhbGxTcGVjXG4gICAqL1xuICB2YWxpZGF0ZUV4dGVuc2lvbkZpZWxkcyhkcml2ZXJNZXRhZGF0YSwgaW5zdGFsbFNwZWMpIHtcbiAgICBjb25zdCBtaXNzaW5nRmllbGRzID0gUkVRX0RSSVZFUl9GSUVMRFMucmVkdWNlKFxuICAgICAgKGFjYywgZmllbGQpID0+IChkcml2ZXJNZXRhZGF0YVtmaWVsZF0gPyBhY2MgOiBbLi4uYWNjLCBmaWVsZF0pLFxuICAgICAgW11cbiAgICApO1xuXG4gICAgaWYgKCFfLmlzRW1wdHkobWlzc2luZ0ZpZWxkcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYERyaXZlciBcIiR7aW5zdGFsbFNwZWN9XCIgZGlkIG5vdCBleHBvc2UgY29ycmVjdCBmaWVsZHMgZm9yIGNvbXBhYmlsaXR5IGAgK1xuICAgICAgICAgIGB3aXRoIEFwcGl1bS4gTWlzc2luZyBmaWVsZHM6ICR7SlNPTi5zdHJpbmdpZnkobWlzc2luZ0ZpZWxkcyl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBEcml2ZXJDb21tYW5kT3B0aW9uc1xuICogQHByb3BlcnR5IHtpbXBvcnQoJy4uL2V4dGVuc2lvbi9leHRlbnNpb24tY29uZmlnJykuRXh0ZW5zaW9uQ29uZmlnPERyaXZlclR5cGU+fSBjb25maWdcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0ganNvblxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkRyaXZlclR5cGV9IERyaXZlclR5cGVcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLENBQUMsWUFBRCxFQUFlLGdCQUFmLEVBQWlDLGVBQWpDLEVBQWtELFdBQWxELENBQTFCOztBQUtlLE1BQU1DLGFBQU4sU0FBNEJDLHlCQUE1QixDQUE2QztFQUkxREMsV0FBVyxDQUFDO0lBQUNDLE1BQUQ7SUFBU0M7RUFBVCxDQUFELEVBQWlCO0lBQzFCLE1BQU07TUFBQ0QsTUFBRDtNQUFTQztJQUFULENBQU47SUFDQSxLQUFLQyxlQUFMLEdBQXVCQyx3QkFBdkI7RUFDRDs7RUFFWSxNQUFQQyxPQUFPLENBQUM7SUFBQ0MsTUFBRDtJQUFTQyxXQUFUO0lBQXNCQztFQUF0QixDQUFELEVBQXFDO0lBQ2hELE9BQU8sTUFBTSxNQUFNQyxRQUFOLENBQWU7TUFDMUJDLFdBQVcsRUFBRUosTUFEYTtNQUUxQkMsV0FGMEI7TUFHMUJDO0lBSDBCLENBQWYsQ0FBYjtFQUtEOztFQUVjLE1BQVRHLFNBQVMsQ0FBQztJQUFDTDtFQUFELENBQUQsRUFBVztJQUN4QixPQUFPLE1BQU0sTUFBTU0sVUFBTixDQUFpQjtNQUFDRixXQUFXLEVBQUVKO0lBQWQsQ0FBakIsQ0FBYjtFQUNEOztFQUVXLE1BQU5PLE1BQU0sQ0FBQztJQUFDUCxNQUFEO0lBQVNRO0VBQVQsQ0FBRCxFQUFtQjtJQUM3QixPQUFPLE1BQU0sTUFBTUMsT0FBTixDQUFjO01BQUNMLFdBQVcsRUFBRUosTUFBZDtNQUFzQlE7SUFBdEIsQ0FBZCxDQUFiO0VBQ0Q7O0VBRVEsTUFBSEUsR0FBRyxDQUFDO0lBQUNWLE1BQUQ7SUFBU1c7RUFBVCxDQUFELEVBQXVCO0lBQzlCLE9BQU8sTUFBTSxNQUFNQyxJQUFOLENBQVc7TUFBQ1IsV0FBVyxFQUFFSixNQUFkO01BQXNCVztJQUF0QixDQUFYLENBQWI7RUFDRDs7RUFFREUsa0JBQWtCLENBQUM7SUFBQ0MsT0FBRDtJQUFVQztFQUFWLENBQUQsRUFBcUI7SUFDckMsT0FDRyxVQUFTRCxPQUFRLElBQUdDLE9BQU8sQ0FBQ0MsT0FBUSwyQkFBckMsQ0FBZ0VDLEtBQWhFLEdBQ0MscUJBQW9CRixPQUFPLENBQUNHLGNBQVIsQ0FBdUJELEtBQU0sSUFEbEQsR0FFQyxvQkFBbUJFLElBQUksQ0FBQ0MsU0FBTCxDQUFlTCxPQUFPLENBQUNNLGFBQXZCLEVBQXNDSixLQUFNLEVBSGxFO0VBS0Q7O0VBV0RLLHVCQUF1QixDQUFDQyxjQUFELEVBQWlCbkIsV0FBakIsRUFBOEI7SUFDbkQsTUFBTW9CLGFBQWEsR0FBR2pDLGlCQUFpQixDQUFDa0MsTUFBbEIsQ0FDcEIsQ0FBQ0MsR0FBRCxFQUFNQyxLQUFOLEtBQWlCSixjQUFjLENBQUNJLEtBQUQsQ0FBZCxHQUF3QkQsR0FBeEIsR0FBOEIsQ0FBQyxHQUFHQSxHQUFKLEVBQVNDLEtBQVQsQ0FEM0IsRUFFcEIsRUFGb0IsQ0FBdEI7O0lBS0EsSUFBSSxDQUFDQyxlQUFBLENBQUVDLE9BQUYsQ0FBVUwsYUFBVixDQUFMLEVBQStCO01BQzdCLE1BQU0sSUFBSU0sS0FBSixDQUNILFdBQVUxQixXQUFZLGtEQUF2QixHQUNHLGdDQUErQmUsSUFBSSxDQUFDQyxTQUFMLENBQWVJLGFBQWYsQ0FBOEIsRUFGNUQsQ0FBTjtJQUlEO0VBQ0Y7O0FBMUR5RCJ9
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
export default ExtensionCommand;
|
|
2
|
+
/**
|
|
3
|
+
* Options for the {@linkcode ExtensionCommand } constructor
|
|
4
|
+
*/
|
|
5
|
+
export type ExtensionCommandOptions<ExtType extends import("@appium/types").ExtensionType> = {
|
|
6
|
+
/**
|
|
7
|
+
* - the `DriverConfig` or `PluginConfig` instance used for this command
|
|
8
|
+
*/
|
|
9
|
+
config: ExtensionConfig<ExtType>;
|
|
10
|
+
/**
|
|
11
|
+
* - whether the output of this command should be JSON or text
|
|
12
|
+
*/
|
|
13
|
+
json: boolean;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Extra stuff about extensions; used indirectly by {@linkcode ExtensionCommand.list }.
|
|
17
|
+
*/
|
|
18
|
+
export type ExtensionMetadata = {
|
|
19
|
+
/**
|
|
20
|
+
* - If `true`, the extension is installed
|
|
21
|
+
*/
|
|
22
|
+
installed: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* - If the extension is installed, the version it can be updated to
|
|
25
|
+
*/
|
|
26
|
+
updateVersion: string | null;
|
|
27
|
+
/**
|
|
28
|
+
* - Same as above, but a major version bump
|
|
29
|
+
*/
|
|
30
|
+
unsafeUpdateVersion: string | null;
|
|
31
|
+
/**
|
|
32
|
+
* - If the extension is installed and the latest
|
|
33
|
+
*/
|
|
34
|
+
upToDate: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type ExtensionType = import('@appium/types').ExtensionType;
|
|
37
|
+
export type DriverType = import('@appium/types').DriverType;
|
|
38
|
+
export type PluginType = import('@appium/types').PluginType;
|
|
39
|
+
export type ExtRecord<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtRecord<ExtType>;
|
|
40
|
+
export type ExtensionConfig<ExtType extends import("@appium/types").ExtensionType> = import('../extension/extension-config').ExtensionConfig<ExtType>;
|
|
41
|
+
export type ExtMetadata<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtMetadata<ExtType>;
|
|
42
|
+
export type ExtManifest<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtManifest<ExtType>;
|
|
43
|
+
export type ExtPackageJson<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtPackageJson<ExtType>;
|
|
44
|
+
/**
|
|
45
|
+
* Possible return value for {@linkcode ExtensionCommand.list }
|
|
46
|
+
*/
|
|
47
|
+
export type UninstalledExtensionListData = {
|
|
48
|
+
pkgName: string;
|
|
49
|
+
installed: false;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Possible return value for {@linkcode ExtensionCommand.list }
|
|
53
|
+
*/
|
|
54
|
+
export type InstalledExtensionListData = import('appium/types').InternalMetadata & ExtensionMetadata;
|
|
55
|
+
/**
|
|
56
|
+
* Return value of {@linkcode ExtensionCommand.list }.
|
|
57
|
+
*/
|
|
58
|
+
export type ExtensionListData = Record<string, InstalledExtensionListData | UninstalledExtensionListData>;
|
|
59
|
+
/**
|
|
60
|
+
* Options for {@linkcode ExtensionCommand._run }.
|
|
61
|
+
*/
|
|
62
|
+
export type RunOptions = {
|
|
63
|
+
/**
|
|
64
|
+
* - name of the extension to run a script from
|
|
65
|
+
*/
|
|
66
|
+
installSpec: string;
|
|
67
|
+
/**
|
|
68
|
+
* - name of the script to run
|
|
69
|
+
*/
|
|
70
|
+
scriptName: string;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Return value of {@linkcode ExtensionCommand._run }
|
|
74
|
+
*/
|
|
75
|
+
export type RunOutput = {
|
|
76
|
+
/**
|
|
77
|
+
* - error message if script ran unsuccessfully, otherwise undefined
|
|
78
|
+
*/
|
|
79
|
+
error?: string | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* - script output
|
|
82
|
+
*/
|
|
83
|
+
output: string[];
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Options for {@linkcode ExtensionCommand._update }.
|
|
87
|
+
*/
|
|
88
|
+
export type ExtensionUpdateOpts = {
|
|
89
|
+
/**
|
|
90
|
+
* - the name of the extension to update
|
|
91
|
+
*/
|
|
92
|
+
installSpec: string;
|
|
93
|
+
/**
|
|
94
|
+
* - if true, will perform unsafe updates past major revision boundaries
|
|
95
|
+
*/
|
|
96
|
+
unsafe: boolean;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Return value of {@linkcode ExtensionCommand._update }.
|
|
100
|
+
*/
|
|
101
|
+
export type ExtensionUpdateResult = {
|
|
102
|
+
/**
|
|
103
|
+
* - map of ext names to error objects
|
|
104
|
+
*/
|
|
105
|
+
errors: Record<string, Error>;
|
|
106
|
+
/**
|
|
107
|
+
* - map of ext names to {@linkcode UpdateReport }s
|
|
108
|
+
*/
|
|
109
|
+
updates: Record<string, UpdateReport>;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Part of result of {@linkcode ExtensionCommand._update }.
|
|
113
|
+
*/
|
|
114
|
+
export type UpdateReport = {
|
|
115
|
+
/**
|
|
116
|
+
* - version the extension was updated from
|
|
117
|
+
*/
|
|
118
|
+
from: string;
|
|
119
|
+
/**
|
|
120
|
+
* - version the extension was updated to
|
|
121
|
+
*/
|
|
122
|
+
to: string;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Options for {@linkcode ExtensionCommand._uninstall }.
|
|
126
|
+
*/
|
|
127
|
+
export type UninstallOpts = {
|
|
128
|
+
/**
|
|
129
|
+
* - the name or spec of an extension to uninstall
|
|
130
|
+
*/
|
|
131
|
+
installSpec: string;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Used by {@linkcode ExtensionCommand.getPostInstallText }
|
|
135
|
+
*/
|
|
136
|
+
export type ExtensionArgs = {
|
|
137
|
+
/**
|
|
138
|
+
* - the name of an extension
|
|
139
|
+
*/
|
|
140
|
+
extName: string;
|
|
141
|
+
/**
|
|
142
|
+
* - the data for an installed extension
|
|
143
|
+
*/
|
|
144
|
+
extData: object;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Options for {@linkcode ExtensionCommand.installViaNpm }
|
|
148
|
+
*/
|
|
149
|
+
export type InstallViaNpmArgs = {
|
|
150
|
+
/**
|
|
151
|
+
* - the name or spec of an extension to install
|
|
152
|
+
*/
|
|
153
|
+
installSpec: string;
|
|
154
|
+
/**
|
|
155
|
+
* - the NPM package name of the extension
|
|
156
|
+
*/
|
|
157
|
+
pkgName: string;
|
|
158
|
+
/**
|
|
159
|
+
* - the specific version of the NPM package
|
|
160
|
+
*/
|
|
161
|
+
pkgVer?: string | undefined;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Object returned by {@linkcode ExtensionCommand.checkForExtensionUpdate }
|
|
165
|
+
*/
|
|
166
|
+
export type PossibleUpdates = {
|
|
167
|
+
/**
|
|
168
|
+
* - current version
|
|
169
|
+
*/
|
|
170
|
+
current: string;
|
|
171
|
+
/**
|
|
172
|
+
* - version we can safely update to if it exists, or null
|
|
173
|
+
*/
|
|
174
|
+
safeUpdate: string | null;
|
|
175
|
+
/**
|
|
176
|
+
* - version we can unsafely update to if it exists, or null
|
|
177
|
+
*/
|
|
178
|
+
unsafeUpdate: string | null;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Options for {@linkcode ExtensionCommand._install }
|
|
182
|
+
*/
|
|
183
|
+
export type InstallArgs = {
|
|
184
|
+
/**
|
|
185
|
+
* - the name or spec of an extension to install
|
|
186
|
+
*/
|
|
187
|
+
installSpec: string;
|
|
188
|
+
/**
|
|
189
|
+
* - how to install this extension. One of the INSTALL_TYPES
|
|
190
|
+
*/
|
|
191
|
+
installType: import('appium/types').InstallType;
|
|
192
|
+
/**
|
|
193
|
+
* - for git/github installs, the extension node package name
|
|
194
|
+
*/
|
|
195
|
+
packageName?: string | undefined;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Returned by {@linkcode ExtensionCommand.getExtensionFields }
|
|
199
|
+
*/
|
|
200
|
+
export type ExtensionFields<ExtType extends import("@appium/types").ExtensionType> = ExtMetadata<ExtType> & {
|
|
201
|
+
pkgName: string;
|
|
202
|
+
version: string;
|
|
203
|
+
appiumVersion: string;
|
|
204
|
+
} & import('appium/types').CommonExtMetadata;
|
|
205
|
+
export type KnownExtensions<ExtType extends import("@appium/types").ExtensionType> = ExtType extends DriverType ? typeof import('../constants').KNOWN_DRIVERS : ExtType extends PluginType ? typeof import('../constants').KNOWN_PLUGINS : never;
|
|
206
|
+
export type ListOptions = {
|
|
207
|
+
/**
|
|
208
|
+
* - whether should show only installed extensions
|
|
209
|
+
*/
|
|
210
|
+
showInstalled: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* - whether should show available updates
|
|
213
|
+
*/
|
|
214
|
+
showUpdates: boolean;
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* @template {ExtensionType} ExtType
|
|
218
|
+
*/
|
|
219
|
+
export class ExtensionCommand<ExtType extends import("@appium/types").ExtensionType> {
|
|
220
|
+
/**
|
|
221
|
+
* Build an ExtensionCommand
|
|
222
|
+
* @param {ExtensionCommandOptions<ExtType>} opts
|
|
223
|
+
*/
|
|
224
|
+
constructor({ config, json }: ExtensionCommandOptions<ExtType>);
|
|
225
|
+
/**
|
|
226
|
+
* This is the `DriverConfig` or `PluginConfig`, depending on `ExtType`.
|
|
227
|
+
* @type {ExtensionConfig<ExtType>}
|
|
228
|
+
*/
|
|
229
|
+
config: ExtensionConfig<ExtType>;
|
|
230
|
+
/**
|
|
231
|
+
* {@linkcode Record} of official plugins or drivers.
|
|
232
|
+
* @type {KnownExtensions<ExtType>}
|
|
233
|
+
*/
|
|
234
|
+
knownExtensions: KnownExtensions<ExtType>;
|
|
235
|
+
/**
|
|
236
|
+
* If `true`, command output has been requested as JSON.
|
|
237
|
+
* @type {boolean}
|
|
238
|
+
*/
|
|
239
|
+
isJsonOutput: boolean;
|
|
240
|
+
log: console.CliConsole;
|
|
241
|
+
/**
|
|
242
|
+
* `driver` or `plugin`, depending on the `ExtensionConfig`.
|
|
243
|
+
*/
|
|
244
|
+
get type(): ExtType;
|
|
245
|
+
/**
|
|
246
|
+
* Logs a message and returns an {@linkcode Error} to throw.
|
|
247
|
+
*
|
|
248
|
+
* For TS to understand that a function throws an exception, it must actually throw an exception--
|
|
249
|
+
* in other words, _calling_ a function which is guaranteed to throw an exception is not enough--
|
|
250
|
+
* nor is something like `@returns {never}` which does not imply a thrown exception.
|
|
251
|
+
* @param {string} message
|
|
252
|
+
* @protected
|
|
253
|
+
* @returns {Error}
|
|
254
|
+
*/
|
|
255
|
+
protected _createFatalError(message: string): Error;
|
|
256
|
+
/**
|
|
257
|
+
* Take a CLI parse and run an extension command based on its type
|
|
258
|
+
*
|
|
259
|
+
* @param {object} args - a key/value object with CLI flags and values
|
|
260
|
+
* @return {Promise<object>} the result of the specific command which is executed
|
|
261
|
+
*/
|
|
262
|
+
execute(args: object): Promise<object>;
|
|
263
|
+
/**
|
|
264
|
+
* List extensions
|
|
265
|
+
*
|
|
266
|
+
* @param {ListOptions} opts
|
|
267
|
+
* @return {Promise<ExtensionListData>} map of extension names to extension data
|
|
268
|
+
*/
|
|
269
|
+
list({ showInstalled, showUpdates }: ListOptions): Promise<ExtensionListData>;
|
|
270
|
+
/**
|
|
271
|
+
* Install an extension
|
|
272
|
+
*
|
|
273
|
+
* @param {InstallArgs} args
|
|
274
|
+
* @return {Promise<ExtRecord<ExtType>>} map of all installed extension names to extension data
|
|
275
|
+
*/
|
|
276
|
+
_install({ installSpec, installType, packageName }: InstallArgs): Promise<ExtRecord<ExtType>>;
|
|
277
|
+
/**
|
|
278
|
+
* Install an extension via NPM
|
|
279
|
+
*
|
|
280
|
+
* @param {InstallViaNpmArgs} args
|
|
281
|
+
*/
|
|
282
|
+
installViaNpm({ installSpec, pkgName, pkgVer }: InstallViaNpmArgs): Promise<ExtensionFields<ExtType>>;
|
|
283
|
+
/**
|
|
284
|
+
* Get the text which should be displayed to the user after an extension has been installed. This
|
|
285
|
+
* is designed to be overridden by drivers/plugins with their own particular text.
|
|
286
|
+
*
|
|
287
|
+
* @param {ExtensionArgs} args
|
|
288
|
+
* @returns {string}
|
|
289
|
+
*/
|
|
290
|
+
getPostInstallText(args: ExtensionArgs): string;
|
|
291
|
+
/**
|
|
292
|
+
* Take an NPM module's package.json and extract Appium driver information from a special
|
|
293
|
+
* 'appium' field in the JSON data. We need this information to e.g. determine which class to
|
|
294
|
+
* load as the main driver class, or to be able to detect incompatibilities between driver and
|
|
295
|
+
* appium versions.
|
|
296
|
+
*
|
|
297
|
+
* @param {ExtPackageJson<ExtType>} pkgJson - the package.json data for a driver module, as if it had been straightforwardly 'require'd
|
|
298
|
+
* @returns {ExtensionFields<ExtType>}
|
|
299
|
+
*/
|
|
300
|
+
getExtensionFields(pkgJson: ExtPackageJson<ExtType>): ExtensionFields<ExtType>;
|
|
301
|
+
/**
|
|
302
|
+
* Validates the _required_ root fields of an extension's `package.json` file.
|
|
303
|
+
*
|
|
304
|
+
* These required fields are:
|
|
305
|
+
* - `name`
|
|
306
|
+
* - `version`
|
|
307
|
+
* - `appium`
|
|
308
|
+
* @param {import('type-fest').PackageJson} pkgJson - `package.json` of extension
|
|
309
|
+
* @param {string} installSpec - Extension name/spec
|
|
310
|
+
* @throws {ReferenceError} If `package.json` has a missing or invalid field
|
|
311
|
+
* @returns {pkgJson is ExtPackageJson<ExtType>}
|
|
312
|
+
*/
|
|
313
|
+
validatePackageJson(pkgJson: import('type-fest').PackageJson, installSpec: string): pkgJson is ExtPackageJson<ExtType>;
|
|
314
|
+
/**
|
|
315
|
+
* For any `package.json` fields which a particular type of extension requires, validate the
|
|
316
|
+
* presence and form of those fields on the `package.json` data, throwing an error if anything is
|
|
317
|
+
* amiss.
|
|
318
|
+
*
|
|
319
|
+
* @param {ExtMetadata<ExtType>} extMetadata - the data in the "appium" field of `package.json` for an extension
|
|
320
|
+
* @param {string} installSpec - Extension name/spec
|
|
321
|
+
*/
|
|
322
|
+
validateExtensionFields(extMetadata: ExtMetadata<ExtType>, installSpec: string): void;
|
|
323
|
+
/**
|
|
324
|
+
* Uninstall an extension.
|
|
325
|
+
*
|
|
326
|
+
* First tries to do this via `npm uninstall`, but if that fails, just `rm -rf`'s the extension dir.
|
|
327
|
+
*
|
|
328
|
+
* Will only remove the extension from the manifest if it has been successfully removed.
|
|
329
|
+
*
|
|
330
|
+
* @param {UninstallOpts} opts
|
|
331
|
+
* @return {Promise<ExtRecord<ExtType>>} map of all installed extension names to extension data (without the extension just uninstalled)
|
|
332
|
+
*/
|
|
333
|
+
_uninstall({ installSpec }: UninstallOpts): Promise<ExtRecord<ExtType>>;
|
|
334
|
+
/**
|
|
335
|
+
* Attempt to update one or more drivers using NPM
|
|
336
|
+
*
|
|
337
|
+
* @param {ExtensionUpdateOpts} updateSpec
|
|
338
|
+
* @return {Promise<ExtensionUpdateResult>}
|
|
339
|
+
*/
|
|
340
|
+
_update({ installSpec, unsafe }: ExtensionUpdateOpts): Promise<ExtensionUpdateResult>;
|
|
341
|
+
/**
|
|
342
|
+
* Given an extension name, figure out what its highest possible version upgrade is, and also the
|
|
343
|
+
* highest possible safe upgrade.
|
|
344
|
+
*
|
|
345
|
+
* @param {string} ext - name of extension
|
|
346
|
+
* @return {Promise<PossibleUpdates>}
|
|
347
|
+
*/
|
|
348
|
+
checkForExtensionUpdate(ext: string): Promise<PossibleUpdates>;
|
|
349
|
+
/**
|
|
350
|
+
* Actually update an extension installed by NPM, using the NPM cli. And update the installation
|
|
351
|
+
* manifest.
|
|
352
|
+
*
|
|
353
|
+
* @param {string} installSpec - name of extension to update
|
|
354
|
+
* @param {string} version - version string identifier to update extension to
|
|
355
|
+
* @returns {Promise<void>}
|
|
356
|
+
*/
|
|
357
|
+
updateExtension(installSpec: string, version: string): Promise<void>;
|
|
358
|
+
/**
|
|
359
|
+
* Runs a script cached inside the "scripts" field under "appium"
|
|
360
|
+
* inside of the driver/plugins "package.json" file. Will throw
|
|
361
|
+
* an error if the driver/plugin does not contain a "scripts" field
|
|
362
|
+
* underneath the "appium" field in its package.json, if the
|
|
363
|
+
* "scripts" field is not a plain object, or if the scriptName is
|
|
364
|
+
* not found within "scripts" object.
|
|
365
|
+
*
|
|
366
|
+
* @param {RunOptions} opts
|
|
367
|
+
* @return {Promise<RunOutput>}
|
|
368
|
+
*/
|
|
369
|
+
_run({ installSpec, scriptName }: RunOptions): Promise<RunOutput>;
|
|
370
|
+
}
|
|
371
|
+
import { console } from "@appium/support";
|
|
372
|
+
//# sourceMappingURL=extension-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-command.d.ts","sourceRoot":"","sources":["../../../lib/cli/extension-command.js"],"names":[],"mappings":"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"}
|