appium 2.0.0-beta.9 → 2.0.0-rc.2
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/LICENSE +1 -1
- package/README.md +149 -58
- package/build/lib/appium.d.ts +229 -0
- package/build/lib/appium.d.ts.map +1 -0
- package/build/lib/appium.js +677 -449
- 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 +263 -300
- 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 +131 -81
- package/build/lib/cli/driver-command.js.map +1 -0
- package/build/lib/cli/extension-command.d.ts +402 -0
- package/build/lib/cli/extension-command.d.ts.map +1 -0
- package/build/lib/cli/extension-command.js +799 -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 +70 -68
- 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 +252 -148
- 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 +125 -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 +262 -223
- package/build/lib/config.js.map +1 -0
- package/build/lib/constants.d.ts +56 -0
- package/build/lib/constants.d.ts.map +1 -0
- package/build/lib/constants.js +73 -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 +210 -0
- package/build/lib/extension/driver-config.js.map +1 -0
- package/build/lib/extension/extension-config.d.ts +270 -0
- package/build/lib/extension/extension-config.d.ts.map +1 -0
- package/build/lib/extension/extension-config.js +601 -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 +134 -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 +528 -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 +189 -184
- 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 +406 -234
- 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 +220 -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 +260 -0
- package/build/lib/schema/schema.d.ts.map +1 -0
- package/build/lib/schema/schema.js +640 -0
- package/build/lib/schema/schema.js.map +1 -0
- package/build/lib/utils.d.ts +276 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +372 -192
- package/build/lib/utils.js.map +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 +21 -0
- package/build/types/manifest/index.d.ts.map +1 -0
- package/build/types/manifest/index.js +42 -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/build/types/manifest/v4.d.ts +139 -0
- package/build/types/manifest/v4.d.ts.map +1 -0
- package/build/types/manifest/v4.js +3 -0
- package/build/types/manifest/v4.js.map +1 -0
- package/driver.d.ts +1 -0
- package/driver.js +14 -0
- package/index.js +11 -0
- package/lib/appium.js +545 -188
- package/lib/cli/args.js +275 -407
- package/lib/cli/driver-command.js +132 -24
- package/lib/cli/extension-command.js +751 -272
- package/lib/cli/extension.js +38 -19
- package/lib/cli/parser.js +267 -95
- package/lib/cli/plugin-command.js +122 -22
- package/lib/cli/utils.js +24 -10
- package/lib/config-file.js +220 -0
- package/lib/config.js +243 -132
- package/lib/constants.js +79 -0
- package/lib/extension/driver-config.js +247 -0
- package/lib/extension/extension-config.js +709 -0
- package/lib/extension/index.js +116 -0
- package/lib/extension/manifest-migrations.js +136 -0
- package/lib/extension/manifest.js +580 -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 +59 -36
- package/lib/main.js +392 -104
- package/lib/schema/arg-spec.js +229 -0
- package/lib/schema/cli-args.js +241 -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 +725 -0
- package/lib/utils.js +310 -89
- package/package.json +84 -84
- package/plugin.d.ts +1 -0
- package/plugin.js +13 -0
- package/scripts/autoinstall-extensions.js +243 -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 +28 -0
- package/types/manifest/v3.ts +161 -0
- package/types/manifest/v4.ts +161 -0
- package/CHANGELOG.md +0 -3669
- package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
- package/build/lib/cli/argparse-actions.js +0 -104
- package/build/lib/cli/npm.js +0 -207
- package/build/lib/cli/parser-helpers.js +0 -93
- package/build/lib/driver-config.js +0 -77
- package/build/lib/drivers.js +0 -99
- package/build/lib/extension-config.js +0 -253
- package/build/lib/plugin-config.js +0 -59
- package/build/lib/plugins.js +0 -16
- package/build/postinstall.js +0 -90
- package/lib/cli/argparse-actions.js +0 -77
- package/lib/cli/npm.js +0 -183
- package/lib/cli/parser-helpers.js +0 -91
- package/lib/driver-config.js +0 -46
- package/lib/drivers.js +0 -84
- package/lib/extension-config.js +0 -209
- package/lib/plugin-config.js +0 -34
- package/lib/plugins.js +0 -11
- package/postinstall.js +0 -71
package/build/lib/drivers.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.findMatchingDriver = findMatchingDriver;
|
|
9
|
-
exports.KNOWN_DRIVERS = void 0;
|
|
10
|
-
|
|
11
|
-
require("source-map-support/register");
|
|
12
|
-
|
|
13
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
14
|
-
|
|
15
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
16
|
-
|
|
17
|
-
const KNOWN_DRIVERS = {
|
|
18
|
-
uiautomator2: 'appium-uiautomator2-driver',
|
|
19
|
-
xcuitest: 'appium-xcuitest-driver',
|
|
20
|
-
youiengine: 'appium-youiengine-driver',
|
|
21
|
-
windows: 'appium-windows-driver',
|
|
22
|
-
mac: 'appium-mac-driver',
|
|
23
|
-
mac2: 'appium-mac2-driver',
|
|
24
|
-
espresso: 'appium-espresso-driver',
|
|
25
|
-
tizen: 'appium-tizen-driver',
|
|
26
|
-
flutter: 'appium-flutter-driver',
|
|
27
|
-
safari: 'appium-safari-driver',
|
|
28
|
-
gecko: 'appium-geckodriver'
|
|
29
|
-
};
|
|
30
|
-
exports.KNOWN_DRIVERS = KNOWN_DRIVERS;
|
|
31
|
-
|
|
32
|
-
function getDriverBySupport(drivers, matchAutomationName, matchPlatformName) {
|
|
33
|
-
for (const [driverName, driverData] of _lodash.default.toPairs(drivers)) {
|
|
34
|
-
const {
|
|
35
|
-
automationName,
|
|
36
|
-
platformNames
|
|
37
|
-
} = driverData;
|
|
38
|
-
const aNameMatches = automationName.toLowerCase() === matchAutomationName.toLowerCase();
|
|
39
|
-
|
|
40
|
-
const pNameMatches = _lodash.default.includes(platformNames.map(_lodash.default.toLower), matchPlatformName.toLowerCase());
|
|
41
|
-
|
|
42
|
-
if (aNameMatches && pNameMatches) {
|
|
43
|
-
return {
|
|
44
|
-
driverName,
|
|
45
|
-
...driverData
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (aNameMatches) {
|
|
50
|
-
throw new Error(`Driver '${driverName}' supports automationName ` + `'${automationName}', but Appium could not find ` + `support for platformName '${matchPlatformName}'. Supported ` + `platformNames are: ` + JSON.stringify(platformNames));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
throw new Error(`Could not find installed driver to support given caps`);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function findMatchingDriver(config, {
|
|
58
|
-
automationName,
|
|
59
|
-
platformName
|
|
60
|
-
}) {
|
|
61
|
-
if (!_lodash.default.isString(platformName)) {
|
|
62
|
-
throw new Error('You must include a platformName capability');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (!_lodash.default.isString(automationName)) {
|
|
66
|
-
throw new Error('You must include an automationName capability');
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
_logger.default.info(`Attempting to find matching driver for automationName ` + `'${automationName}' and platformName '${platformName}'`);
|
|
70
|
-
|
|
71
|
-
try {
|
|
72
|
-
const {
|
|
73
|
-
driverName,
|
|
74
|
-
mainClass,
|
|
75
|
-
version
|
|
76
|
-
} = getDriverBySupport(config.installedExtensions, automationName, platformName);
|
|
77
|
-
|
|
78
|
-
_logger.default.info(`The '${driverName}' driver was installed and matched caps.`);
|
|
79
|
-
|
|
80
|
-
_logger.default.info(`Will require it at ${config.getExtensionRequirePath(driverName)}`);
|
|
81
|
-
|
|
82
|
-
const driver = config.require(driverName);
|
|
83
|
-
|
|
84
|
-
if (!driver) {
|
|
85
|
-
throw new Error(`MainClass ${mainClass} did not result in a driver object`);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return {
|
|
89
|
-
driver,
|
|
90
|
-
version
|
|
91
|
-
};
|
|
92
|
-
} catch (err) {
|
|
93
|
-
const msg = `Could not find a driver for automationName ` + `'${automationName}' and platformName ${platformName}'. ` + `Have you installed a driver that supports those ` + `capabilities? Run 'appium driver list --installed' to see. ` + `(Lower-level error: ${err.message})`;
|
|
94
|
-
throw new Error(msg);
|
|
95
|
-
}
|
|
96
|
-
}require('source-map-support').install();
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kcml2ZXJzLmpzIl0sIm5hbWVzIjpbIktOT1dOX0RSSVZFUlMiLCJ1aWF1dG9tYXRvcjIiLCJ4Y3VpdGVzdCIsInlvdWllbmdpbmUiLCJ3aW5kb3dzIiwibWFjIiwibWFjMiIsImVzcHJlc3NvIiwidGl6ZW4iLCJmbHV0dGVyIiwic2FmYXJpIiwiZ2Vja28iLCJnZXREcml2ZXJCeVN1cHBvcnQiLCJkcml2ZXJzIiwibWF0Y2hBdXRvbWF0aW9uTmFtZSIsIm1hdGNoUGxhdGZvcm1OYW1lIiwiZHJpdmVyTmFtZSIsImRyaXZlckRhdGEiLCJfIiwidG9QYWlycyIsImF1dG9tYXRpb25OYW1lIiwicGxhdGZvcm1OYW1lcyIsImFOYW1lTWF0Y2hlcyIsInRvTG93ZXJDYXNlIiwicE5hbWVNYXRjaGVzIiwiaW5jbHVkZXMiLCJtYXAiLCJ0b0xvd2VyIiwiRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiZmluZE1hdGNoaW5nRHJpdmVyIiwiY29uZmlnIiwicGxhdGZvcm1OYW1lIiwiaXNTdHJpbmciLCJsb2ciLCJpbmZvIiwibWFpbkNsYXNzIiwidmVyc2lvbiIsImluc3RhbGxlZEV4dGVuc2lvbnMiLCJnZXRFeHRlbnNpb25SZXF1aXJlUGF0aCIsImRyaXZlciIsInJlcXVpcmUiLCJlcnIiLCJtc2ciLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFPQSxNQUFNQSxhQUFhLEdBQUc7QUFDcEJDLEVBQUFBLFlBQVksRUFBRSw0QkFETTtBQUVwQkMsRUFBQUEsUUFBUSxFQUFFLHdCQUZVO0FBR3BCQyxFQUFBQSxVQUFVLEVBQUUsMEJBSFE7QUFJcEJDLEVBQUFBLE9BQU8sRUFBRSx1QkFKVztBQUtwQkMsRUFBQUEsR0FBRyxFQUFFLG1CQUxlO0FBTXBCQyxFQUFBQSxJQUFJLEVBQUUsb0JBTmM7QUFPcEJDLEVBQUFBLFFBQVEsRUFBRSx3QkFQVTtBQVFwQkMsRUFBQUEsS0FBSyxFQUFFLHFCQVJhO0FBU3BCQyxFQUFB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dGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5cblxuLy8gVGhpcyBpcyBhIG1hcCBvZiBkcml2ZXIgbmFtZXMgdG8gbnBtIHBhY2thZ2VzIHJlcHJlc2VudGluZyB0aG9zZSBkcml2ZXJzLlxuLy8gVGhlIGRyaXZlcnMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgYXZhaWxhYmxlIHRvIHRoZSBDTEkgc28gdXNlcnMgY2FuIGp1c3Rcbi8vIHR5cGUgJ2FwcGl1bSBkcml2ZXIgaW5zdGFsbCAnbmFtZScnLCByYXRoZXIgdGhhbiBoYXZpbmcgdG8gc3BlY2lmeSB0aGUgZnVsbFxuLy8gbnBtIHBhY2thZ2UuIEkuZS4sIHRoZXNlIGFyZSB0aGUgb2ZmaWNpYWxseSByZWNvZ25pemVkIGRyaXZlcnMuXG5jb25zdCBLTk9XTl9EUklWRVJTID0ge1xuICB1aWF1dG9tYXRvcjI6ICdhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcicsXG4gIHhjdWl0ZXN0OiAnYXBwaXVtLXhjdWl0ZXN0LWRyaXZlcicsXG4gIHlvdWllbmdpbmU6ICdhcHBpdW0teW91aWVuZ2luZS1kcml2ZXInLFxuICB3aW5kb3dzOiAnYXBwaXVtLXdpbmRvd3MtZHJpdmVyJyxcbiAgbWFjOiAnYXBwaXVtLW1hYy1kcml2ZXInLFxuICBtYWMyOiAnYXBwaXVtLW1hYzItZHJpdmVyJyxcbiAgZXNwcmVzc286ICdhcHBpdW0tZXNwcmVzc28tZHJpdmVyJyxcbiAgdGl6ZW46ICdhcHBpdW0tdGl6ZW4tZHJpdmVyJyxcbiAgZmx1dHRlcjogJ2FwcGl1bS1mbHV0dGVyLWRyaXZlcicsXG4gIHNhZmFyaTogJ2FwcGl1bS1zYWZhcmktZHJpdmVyJyxcbiAgZ2Vja286ICdhcHBpdW0tZ2Vja29kcml2ZXInLFxufTtcblxuZnVuY3Rpb24gZ2V0RHJpdmVyQnlTdXBwb3J0IChkcml2ZXJzLCBtYXRjaEF1dG9tYXRpb25OYW1lLCBtYXRjaFBsYXRmb3JtTmFtZSkge1xuICBmb3IgKGNvbnN0IFtkcml2ZXJOYW1lLCBkcml2ZXJEYXRhXSBvZiBfLnRvUGFpcnMoZHJpdmVycykpIHtcbiAgICBjb25zdCB7YXV0b21hdGlvbk5hbWUsIHBsYXRmb3JtTmFtZXN9ID0gZHJpdmVyRGF0YTtcbiAgICBjb25zdCBhTmFtZU1hdGNoZXMgPSBhdXRvbWF0aW9uTmFtZS50b0xvd2VyQ2FzZSgpID09PSBtYXRjaEF1dG9tYXRpb25OYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgcE5hbWVNYXRjaGVzID0gXy5pbmNsdWRlcyhwbGF0Zm9ybU5hbWVzLm1hcChfLnRvTG93ZXIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hQbGF0Zm9ybU5hbWUudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBpZiAoYU5hbWVNYXRjaGVzICYmIHBOYW1lTWF0Y2hlcykge1xuICAgICAgcmV0dXJuIHtkcml2ZXJOYW1lLCAuLi5kcml2ZXJEYXRhfTtcbiAgICB9XG5cbiAgICBpZiAoYU5hbWVNYXRjaGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERyaXZlciAnJHtkcml2ZXJOYW1lfScgc3VwcG9ydHMgYXV0b21hdGlvbk5hbWUgYCArXG4gICAgICAgICAgICAgICAgICAgICAgYCcke2F1dG9tYXRpb25OYW1lfScsIGJ1dCBBcHBpdW0gY291bGQgbm90IGZpbmQgYCArXG4gICAgICAgICAgICAgICAgICAgICAgYHN1cHBvcnQgZm9yIHBsYXRmb3JtTmFtZSAnJHttYXRjaFBsYXRmb3JtTmFtZX0nLiBTdXBwb3J0ZWQgYCArXG4gICAgICAgICAgICAgICAgICAgICAgYHBsYXRmb3JtTmFtZXMgYXJlOiBgICtcbiAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShwbGF0Zm9ybU5hbWVzKSk7XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBpbnN0YWxsZWQgZHJpdmVyIHRvIHN1cHBvcnQgZ2l2ZW4gY2Fwc2ApO1xufVxuXG5mdW5jdGlvbiBmaW5kTWF0Y2hpbmdEcml2ZXIgKGNvbmZpZywge2F1dG9tYXRpb25OYW1lLCBwbGF0Zm9ybU5hbWV9KSB7XG4gIGlmICghXy5pc1N0cmluZyhwbGF0Zm9ybU5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBpbmNsdWRlIGEgcGxhdGZvcm1OYW1lIGNhcGFiaWxpdHknKTtcbiAgfVxuXG4gIGlmICghXy5pc1N0cmluZyhhdXRvbWF0aW9uTmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBtdXN0IGluY2x1ZGUgYW4gYXV0b21hdGlvbk5hbWUgY2FwYWJpbGl0eScpO1xuICB9XG5cbiAgbG9nLmluZm8oYEF0dGVtcHRpbmcgdG8gZmluZCBtYXRjaGluZyBkcml2ZXIgZm9yIGF1dG9tYXRpb25OYW1lIGAgK1xuICAgICAgICAgICBgJyR7YXV0b21hdGlvbk5hbWV9JyBhbmQgcGxhdGZvcm1OYW1lICcke3BsYXRmb3JtTmFtZX0nYCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7XG4gICAgICBkcml2ZXJOYW1lLFxuICAgICAgbWFpbkNsYXNzLFxuICAgICAgdmVyc2lvbixcbiAgICB9ID0gZ2V0RHJpdmVyQnlTdXBwb3J0KGNvbmZpZy5pbnN0YWxsZWRFeHRlbnNpb25zLCBhdXRvbWF0aW9uTmFtZSwgcGxhdGZvcm1OYW1lKTtcbiAgICBsb2cuaW5mbyhgVGhlICcke2RyaXZlck5hbWV9JyBkcml2ZXIgd2FzIGluc3RhbGxlZCBhbmQgbWF0Y2hlZCBjYXBzLmApO1xuICAgIGxvZy5pbmZvKGBXaWxsIHJlcXVpcmUgaXQgYXQgJHtjb25maWcuZ2V0RXh0ZW5zaW9uUmVxdWlyZVBhdGgoZHJpdmVyTmFtZSl9YCk7XG4gICAgY29uc3QgZHJpdmVyID0gY29uZmlnLnJlcXVpcmUoZHJpdmVyTmFtZSk7XG4gICAgaWYgKCFkcml2ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWFpbkNsYXNzICR7bWFpbkNsYXNzfSBkaWQgbm90IHJlc3VsdCBpbiBhIGRyaXZlciBvYmplY3RgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtkcml2ZXIsIHZlcnNpb259O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zdCBtc2cgPSBgQ291bGQgbm90IGZpbmQgYSBkcml2ZXIgZm9yIGF1dG9tYXRpb25OYW1lIGAgK1xuICAgICAgICAgICAgICAgIGAnJHthdXRvbWF0aW9uTmFtZX0nIGFuZCBwbGF0Zm9ybU5hbWUgJHtwbGF0Zm9ybU5hbWV9Jy4gYCArXG4gICAgICAgICAgICAgICAgYEhhdmUgeW91IGluc3RhbGxlZCBhIGRyaXZlciB0aGF0IHN1cHBvcnRzIHRob3NlIGAgK1xuICAgICAgICAgICAgICAgIGBjYXBhYmlsaXRpZXM/IFJ1biAnYXBwaXVtIGRyaXZlciBsaXN0IC0taW5zdGFsbGVkJyB0byBzZWUuIGAgK1xuICAgICAgICAgICAgICAgIGAoTG93ZXItbGV2ZWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9KWA7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgZmluZE1hdGNoaW5nRHJpdmVyLFxuICBLTk9XTl9EUklWRVJTLFxufTtcbiJdLCJmaWxlIjoibGliL2RyaXZlcnMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.PLUGIN_TYPE = exports.DRIVER_TYPE = exports.DEFAULT_APPIUM_HOME = exports.INSTALL_TYPES = exports.INSTALL_TYPE_GITHUB = exports.INSTALL_TYPE_LOCAL = exports.INSTALL_TYPE_GIT = exports.INSTALL_TYPE_NPM = exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
require("source-map-support/register");
|
|
11
|
-
|
|
12
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
|
-
|
|
14
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
15
|
-
|
|
16
|
-
var _appiumSupport = require("appium-support");
|
|
17
|
-
|
|
18
|
-
var _path = _interopRequireDefault(require("path"));
|
|
19
|
-
|
|
20
|
-
var _os = _interopRequireDefault(require("os"));
|
|
21
|
-
|
|
22
|
-
var _yaml = _interopRequireDefault(require("yaml"));
|
|
23
|
-
|
|
24
|
-
const DRIVER_TYPE = 'driver';
|
|
25
|
-
exports.DRIVER_TYPE = DRIVER_TYPE;
|
|
26
|
-
const PLUGIN_TYPE = 'plugin';
|
|
27
|
-
exports.PLUGIN_TYPE = PLUGIN_TYPE;
|
|
28
|
-
|
|
29
|
-
const DEFAULT_APPIUM_HOME = _path.default.resolve(_os.default.homedir(), '.appium');
|
|
30
|
-
|
|
31
|
-
exports.DEFAULT_APPIUM_HOME = DEFAULT_APPIUM_HOME;
|
|
32
|
-
const CONFIG_FILE_NAME = 'extensions.yaml';
|
|
33
|
-
const CONFIG_SCHEMA_REV = 2;
|
|
34
|
-
const INSTALL_TYPE_NPM = 'npm';
|
|
35
|
-
exports.INSTALL_TYPE_NPM = INSTALL_TYPE_NPM;
|
|
36
|
-
const INSTALL_TYPE_LOCAL = 'local';
|
|
37
|
-
exports.INSTALL_TYPE_LOCAL = INSTALL_TYPE_LOCAL;
|
|
38
|
-
const INSTALL_TYPE_GITHUB = 'github';
|
|
39
|
-
exports.INSTALL_TYPE_GITHUB = INSTALL_TYPE_GITHUB;
|
|
40
|
-
const INSTALL_TYPE_GIT = 'git';
|
|
41
|
-
exports.INSTALL_TYPE_GIT = INSTALL_TYPE_GIT;
|
|
42
|
-
const INSTALL_TYPES = [INSTALL_TYPE_GIT, INSTALL_TYPE_GITHUB, INSTALL_TYPE_LOCAL, INSTALL_TYPE_NPM];
|
|
43
|
-
exports.INSTALL_TYPES = INSTALL_TYPES;
|
|
44
|
-
|
|
45
|
-
class ExtensionConfig {
|
|
46
|
-
constructor(appiumHome, extensionType, logFn = null) {
|
|
47
|
-
if (logFn === null) {
|
|
48
|
-
logFn = _logger.default.error.bind(_logger.default);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
this.appiumHome = appiumHome;
|
|
52
|
-
this.configFile = _path.default.resolve(this.appiumHome, CONFIG_FILE_NAME);
|
|
53
|
-
this.installedExtensions = {};
|
|
54
|
-
this.extensionType = extensionType;
|
|
55
|
-
this.configKey = `${extensionType}s`;
|
|
56
|
-
this.yamlData = {
|
|
57
|
-
[`${DRIVER_TYPE}s`]: {},
|
|
58
|
-
[`${PLUGIN_TYPE}s`]: {}
|
|
59
|
-
};
|
|
60
|
-
this.log = logFn;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
validate(exts) {
|
|
64
|
-
const foundProblems = {};
|
|
65
|
-
|
|
66
|
-
for (const [extName, extData] of _lodash.default.toPairs(exts)) {
|
|
67
|
-
foundProblems[extName] = [...this.getGenericConfigProblems(extData), ...this.getConfigProblems(extData)];
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const problemSummaries = [];
|
|
71
|
-
|
|
72
|
-
for (const [extName, problems] of _lodash.default.toPairs(foundProblems)) {
|
|
73
|
-
if (_lodash.default.isEmpty(problems)) {
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
delete exts[extName];
|
|
78
|
-
problemSummaries.push(`${this.extensionType} ${extName} had errors and will not ` + `be available. Errors:`);
|
|
79
|
-
|
|
80
|
-
for (const problem of problems) {
|
|
81
|
-
problemSummaries.push(` - ${problem.err} (Actual value: ` + `${JSON.stringify(problem.val)})`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (!_lodash.default.isEmpty(problemSummaries)) {
|
|
86
|
-
this.log(`Appium encountered one or more errors while validating ` + `the ${this.configKey} extension file (${this.configFile}):`);
|
|
87
|
-
|
|
88
|
-
for (const summary of problemSummaries) {
|
|
89
|
-
this.log(summary);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return exts;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
getGenericConfigProblems(ext) {
|
|
97
|
-
const {
|
|
98
|
-
version,
|
|
99
|
-
pkgName,
|
|
100
|
-
installSpec,
|
|
101
|
-
installType,
|
|
102
|
-
installPath,
|
|
103
|
-
mainClass
|
|
104
|
-
} = ext;
|
|
105
|
-
const problems = [];
|
|
106
|
-
|
|
107
|
-
if (!_lodash.default.isString(version)) {
|
|
108
|
-
problems.push({
|
|
109
|
-
err: 'Missing or incorrect version',
|
|
110
|
-
val: version
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if (!_lodash.default.isString(pkgName)) {
|
|
115
|
-
problems.push({
|
|
116
|
-
err: 'Missing or incorrect NPM package name',
|
|
117
|
-
val: pkgName
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
if (!_lodash.default.isString(installSpec)) {
|
|
122
|
-
problems.push({
|
|
123
|
-
err: 'Missing or incorrect installation spec',
|
|
124
|
-
val: installSpec
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (!_lodash.default.includes(INSTALL_TYPES, installType)) {
|
|
129
|
-
problems.push({
|
|
130
|
-
err: 'Missing or incorrect install type',
|
|
131
|
-
val: installType
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
if (!_lodash.default.isString(installPath)) {
|
|
136
|
-
problems.push({
|
|
137
|
-
err: 'Missing or incorrect installation path',
|
|
138
|
-
val: installPath
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (!_lodash.default.isString(mainClass)) {
|
|
143
|
-
problems.push({
|
|
144
|
-
err: 'Missing or incorrect driver class name',
|
|
145
|
-
val: mainClass
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
return problems;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
getConfigProblems() {
|
|
153
|
-
return [];
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
applySchemaMigrations() {
|
|
157
|
-
if (this.yamlData.schemaRev < 2 && _lodash.default.isUndefined(this.yamlData[PLUGIN_TYPE])) {
|
|
158
|
-
this.yamlData[PLUGIN_TYPE] = {};
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
async read() {
|
|
163
|
-
await (0, _appiumSupport.mkdirp)(this.appiumHome);
|
|
164
|
-
|
|
165
|
-
try {
|
|
166
|
-
this.yamlData = _yaml.default.parse(await _appiumSupport.fs.readFile(this.configFile, 'utf8'));
|
|
167
|
-
this.applySchemaMigrations();
|
|
168
|
-
this.installedExtensions = this.validate(this.yamlData[this.configKey]);
|
|
169
|
-
} catch (err) {
|
|
170
|
-
if (await _appiumSupport.fs.exists(this.configFile)) {
|
|
171
|
-
throw new Error(`Appium had trouble loading the extension installation ` + `cache file (${this.configFile}). Ensure it exists and is ` + `readable. Specific error: ${err.message}`);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
try {
|
|
175
|
-
await this.write();
|
|
176
|
-
} catch {
|
|
177
|
-
throw new Error(`Appium could not read or write from the Appium Home directory ` + `(${this.appiumHome}). Please ensure it is writable.`);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
return this.installedExtensions;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
async write() {
|
|
185
|
-
const newYamlData = { ...this.yamlData,
|
|
186
|
-
schemaRev: CONFIG_SCHEMA_REV,
|
|
187
|
-
[this.configKey]: this.installedExtensions
|
|
188
|
-
};
|
|
189
|
-
await _appiumSupport.fs.writeFile(this.configFile, _yaml.default.stringify(newYamlData), 'utf8');
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
async addExtension(extName, extData) {
|
|
193
|
-
this.installedExtensions[extName] = extData;
|
|
194
|
-
await this.write();
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
async removeExtension(extName) {
|
|
198
|
-
delete this.installedExtensions[extName];
|
|
199
|
-
await this.write();
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
print() {
|
|
203
|
-
const extNames = Object.keys(this.installedExtensions);
|
|
204
|
-
|
|
205
|
-
if (_lodash.default.isEmpty(extNames)) {
|
|
206
|
-
_logger.default.info(`No ${this.configKey} have been installed. Use the "appium ${this.extensionType}" ` + 'command to install the one(s) you want to use.');
|
|
207
|
-
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
_logger.default.info(`Available ${this.configKey}:`);
|
|
212
|
-
|
|
213
|
-
for (const [extName, extData] of _lodash.default.toPairs(this.installedExtensions)) {
|
|
214
|
-
_logger.default.info(` - ${this.extensionDesc(extName, extData)}`);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
extensionDesc() {
|
|
219
|
-
throw new Error('This must be implemented in a final class');
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
getExtensionRequirePath(extName) {
|
|
223
|
-
const {
|
|
224
|
-
pkgName,
|
|
225
|
-
installPath
|
|
226
|
-
} = this.installedExtensions[extName];
|
|
227
|
-
return _path.default.resolve(this.appiumHome, installPath, 'node_modules', pkgName);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
getInstallPath(extName) {
|
|
231
|
-
const {
|
|
232
|
-
installPath
|
|
233
|
-
} = this.installedExtensions[extName];
|
|
234
|
-
return _path.default.resolve(this.appiumHome, installPath);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
require(extName) {
|
|
238
|
-
const {
|
|
239
|
-
mainClass
|
|
240
|
-
} = this.installedExtensions[extName];
|
|
241
|
-
return require(this.getExtensionRequirePath(extName))[mainClass];
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
isInstalled(extName) {
|
|
245
|
-
return _lodash.default.includes(Object.keys(this.installedExtensions), extName);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
exports.default = ExtensionConfig;require('source-map-support').install();
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHRlbnNpb24tY29uZmlnLmpzIl0sIm5hbWVzIjpbIkRSSVZFUl9UWVBFIiwiUExVR0lOX1RZUEUiLCJERUZBVUxUX0FQUElVTV9IT01FIiwicGF0aCIsInJlc29sdmUiLCJvcyIsImhvbWVkaXIiLCJDT05GSUdfRklMRV9OQU1FIiwiQ09ORklHX1NDSEVNQV9SRVYiLCJJTlNUQUxMX1RZUEVfTlBNIiwiSU5TVEFMTF9UWVBFX0xPQ0FMIiwiSU5TVEFMTF9UWVBFX0dJVEhVQiIsIklOU1RBTExfVFlQRV9HSVQiLCJJTlNUQUxMX1RZUEVTIiwiRXh0ZW5zaW9uQ29uZmlnIiwiY29uc3RydWN0b3IiLCJhcHBpdW1Ib21lIiwiZXh0ZW5zaW9uVHlwZSIsImxvZ0ZuIiwibG9nIiwiZXJyb3IiLCJiaW5kIiwiY29uZmlnRmlsZSIsImluc3RhbGxlZEV4dGVuc2lvbnMiLCJjb25maWdLZXkiLCJ5YW1sRGF0YSIsInZhbGlkYXRlIiwiZXh0cyIsImZvdW5kUHJvYmxlbXMiLCJleHROYW1lIiwiZXh0RGF0YSIsIl8iLCJ0b1BhaXJzIiwiZ2V0R2VuZXJpY0NvbmZpZ1Byb2JsZW1zIiwiZ2V0Q29uZmlnUHJvYmxlbXMiLCJwcm9ibGVtU3VtbWFyaWVzIiwicHJvYmxlbXMiLCJpc0VtcHR5IiwicHVzaCIsInByb2JsZW0iLCJlcnIiLCJKU09OIiwic3RyaW5naWZ5IiwidmFsIiwic3VtbWFyeSIsImV4dCIsInZlcnNpb24iLCJwa2dOYW1lIiwiaW5zdGFsbFNwZWMiLCJpbnN0YWxsVHlwZSIsImluc3RhbGxQYXRoIiwibWFpbkNsYXNzIiwiaXNTdHJpbmciLCJpbmNsdWRlcyIsImFwcGx5U2NoZW1hTWlncmF0aW9ucyIsInNjaGVtYVJldiIsImlzVW5kZWZpbmVkIiwicmVhZCIsIllBTUwiLCJwYXJzZSIsImZzIiwicmVhZEZpbGUiLCJleGlzdHMiLCJFcnJvciIsIm1lc3NhZ2UiLCJ3cml0ZSIsIm5ld1lhbWxEYXRhIiwid3JpdGVGaWxlIiwiYWRkRXh0ZW5zaW9uIiwicmVtb3ZlRXh0ZW5zaW9uIiwicHJpbnQiLCJleHROYW1lcyIsIk9iamVjdCIsImtleXMiLCJpbmZvIiwiZXh0ZW5zaW9uRGVzYyIsImdldEV4dGVuc2lvblJlcXVpcmVQYXRoIiwiZ2V0SW5zdGFsbFBhdGgiLCJyZXF1aXJlIiwiaXNJbnN0YWxsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsV0FBVyxHQUFHLFFBQXBCOztBQUNBLE1BQU1DLFdBQVcsR0FBRyxRQUFwQjs7O0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUdDLGNBQUtDLE9BQUwsQ0FBYUMsWUFBR0MsT0FBSCxFQUFiLEVBQTJCLFNBQTNCLENBQTVCOzs7QUFFQSxNQUFNQyxnQkFBZ0IsR0FBRyxpQkFBekI7QUFDQSxNQUFNQyxpQkFBaUIsR0FBRyxDQUExQjtBQUVBLE1BQU1DLGdCQUFnQixHQUFHLEtBQXpCOztBQUNBLE1BQU1DLGtCQUFrQixHQUFHLE9BQTNCOztBQUNBLE1BQU1DLG1CQUFtQixHQUFHLFFBQTVCOztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLEtBQXpCOztBQUNBLE1BQU1DLGFBQWEsR0FBRyxDQUNwQkQsZ0JBRG9CLEVBRXBCRCxtQkFGb0IsRUFHcEJELGtCQUhvQixFQUlwQkQsZ0JBSm9CLENBQXRCOzs7QUFRZSxNQUFNSyxlQUFOLENBQXNCO0FBQ25DQyxFQUFBQSxXQUFXLENBQUVDLFVBQUYsRUFBY0MsYUFBZCxFQUE2QkMsS0FBSyxHQUFHLElBQXJDLEVBQTJDO0FBQ3BELFFBQUlBLEtBQUssS0FBSyxJQUFkLEVBQW9CO0FBQ2xCQSxNQUFBQSxLQUFLLEdBQUdDLGdCQUFJQyxLQUFKLENBQVVDLElBQVYsQ0FBZUYsZUFBZixDQUFSO0FBQ0Q7O0FBQ0QsU0FBS0gsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxTQUFLTSxVQUFMLEdBQWtCbkIsY0FBS0MsT0FBTCxDQUFhLEtBQUtZLFVBQWxCLEVBQThCVCxnQkFBOUIsQ0FBbEI7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TTtBQUFDcUIsTUFBQUE7QUFBRCxRQUFnQixLQUFLM0IsbUJBQUwsQ0FBeUJNLE9BQXpCLENBQXRCO0FBQ0EsV0FBTzFCLGNBQUtDLE9BQUwsQ0FBYSxLQUFLWSxVQUFsQixFQUE4QmtDLFdBQTlCLENBQVA7QUFDRDs7QUFFRDRCLEVBQUFBLE9BQU8sQ0FBRWpELE9BQUYsRUFBVztBQUNoQixVQUFNO0FBQUNzQixNQUFBQTtBQUFELFFBQWMsS0FBSzVCLG1CQUFMLENBQXlCTSxPQUF6QixDQUFwQjtBQUNBLFdBQU9pRCxPQUFPLENBQUMsS0FBS0YsdUJBQUwsQ0FBNkIvQyxPQUE3QixDQUFELENBQVAsQ0FBK0NzQixTQUEvQyxDQUFQO0FBQ0Q7O0FBRUQ0QixFQUFBQSxXQUFXLENBQUVsRCxPQUFGLEVBQVc7QUFDcEIsV0FBT0UsZ0JBQUVzQixRQUFGLENBQVdtQixNQUFNLENBQUNDLElBQVAsQ0FBWSxLQUFLbEQsbUJBQWpCLENBQVgsRUFBa0RNLE9BQWxELENBQVA7QUFDRDs7QUFoTGtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgZnMsIG1rZGlycCB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBZQU1MIGZyb20gJ3lhbWwnO1xuXG5jb25zdCBEUklWRVJfVFlQRSA9ICdkcml2ZXInO1xuY29uc3QgUExVR0lOX1RZUEUgPSAncGx1Z2luJztcbmNvbnN0IERFRkFVTFRfQVBQSVVNX0hPTUUgPSBwYXRoLnJlc29sdmUob3MuaG9tZWRpcigpLCAnLmFwcGl1bScpO1xuXG5jb25zdCBDT05GSUdfRklMRV9OQU1FID0gJ2V4dGVuc2lvbnMueWFtbCc7XG5jb25zdCBDT05GSUdfU0NIRU1BX1JFViA9IDI7XG5cbmNvbnN0IElOU1RBTExfVFlQRV9OUE0gPSAnbnBtJztcbmNvbnN0IElOU1RBTExfVFlQRV9MT0NBTCA9ICdsb2NhbCc7XG5jb25zdCBJTlNUQUxMX1RZUEVfR0lUSFVCID0gJ2dpdGh1Yic7XG5jb25zdCBJTlNUQUxMX1RZUEVfR0lUID0gJ2dpdCc7XG5jb25zdCBJTlNUQUxMX1RZUEVTID0gW1xuICBJTlNUQUxMX1RZUEVfR0lULFxuICBJTlNUQUxMX1RZUEVfR0lUSFVCLFxuICBJTlNUQUxMX1RZUEVfTE9DQUwsXG4gIElOU1RBTExfVFlQRV9OUE1cbl07XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXh0ZW5zaW9uQ29uZmlnIHtcbiAgY29uc3RydWN0b3IgKGFwcGl1bUhvbWUsIGV4dGVuc2lvblR5cGUsIGxvZ0ZuID0gbnVsbCkge1xuICAgIGlmIChsb2dGbiA9PT0gbnVsbCkge1xuICAgICAgbG9nRm4gPSBsb2cuZXJyb3IuYmluZChsb2cpO1xuICAgIH1cbiAgICB0aGlzLmFwcGl1bUhvbWUgPSBhcHBpdW1Ib21lO1xuICAgIHRoaXMuY29uZmlnRmlsZSA9IHBhdGgucmVzb2x2ZSh0aGlzLmFwcGl1bUhvbWUsIENPTkZJR19GSUxFX05BTUUpO1xuICAgIHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9ucyA9IHt9O1xuICAgIHRoaXMuZXh0ZW5zaW9uVHlwZSA9IGV4dGVuc2lvblR5cGU7XG4gICAgdGhpcy5jb25maWdLZXkgPSBgJHtleHRlbnNpb25UeXBlfXNgO1xuICAgIHRoaXMueWFtbERhdGEgPSB7W2Ake0RSSVZFUl9UWVBFfXNgXToge30sIFtgJHtQTFVHSU5fVFlQRX1zYF06IHt9fTtcbiAgICB0aGlzLmxvZyA9IGxvZ0ZuO1xuICB9XG5cbiAgdmFsaWRhdGUgKGV4dHMpIHtcbiAgICBjb25zdCBmb3VuZFByb2JsZW1zID0ge307XG4gICAgZm9yIChjb25zdCBbZXh0TmFtZSwgZXh0RGF0YV0gb2YgXy50b1BhaXJzKGV4dHMpKSB7XG4gICAgICBmb3VuZFByb2JsZW1zW2V4dE5hbWVdID0gW1xuICAgICAgICAuLi50aGlzLmdldEdlbmVyaWNDb25maWdQcm9ibGVtcyhleHREYXRhKSxcbiAgICAgICAgLi4udGhpcy5nZXRDb25maWdQcm9ibGVtcyhleHREYXRhKVxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9ibGVtU3VtbWFyaWVzID0gW107XG4gICAgZm9yIChjb25zdCBbZXh0TmFtZSwgcHJvYmxlbXNdIG9mIF8udG9QYWlycyhmb3VuZFByb2JsZW1zKSkge1xuICAgICAgaWYgKF8uaXNFbXB0eShwcm9ibGVtcykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyByZW1vdmUgdGhpcyBleHRlbnNpb24gZnJvbSB0aGUgbGlzdCBzaW5jZSBpdCdzIG5vdCB2YWxpZFxuICAgICAgZGVsZXRlIGV4dHNbZXh0TmFtZV07XG4gICAgICBwcm9ibGVtU3VtbWFyaWVzLnB1c2goYCR7dGhpcy5leHRlbnNpb25UeXBlfSAke2V4dE5hbWV9IGhhZCBlcnJvcnMgYW5kIHdpbGwgbm90IGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBiZSBhdmFpbGFibGUuIEVycm9yczpgKTtcbiAgICAgIGZvciAoY29uc3QgcHJvYmxlbSBvZiBwcm9ibGVtcykge1xuICAgICAgICBwcm9ibGVtU3VtbWFyaWVzLnB1c2goYCAgLSAke3Byb2JsZW0uZXJyfSAoQWN0dWFsIHZhbHVlOiBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke0pTT04uc3RyaW5naWZ5KHByb2JsZW0udmFsKX0pYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzRW1wdHkocHJvYmxlbVN1bW1hcmllcykpIHtcbiAgICAgIHRoaXMubG9nKGBBcHBpdW0gZW5jb3VudGVyZWQgb25lIG9yIG1vcmUgZXJyb3JzIHdoaWxlIHZhbGlkYXRpbmcgYCArXG4gICAgICAgICAgICAgICBgdGhlICR7dGhpcy5jb25maWdLZXl9IGV4dGVuc2lvbiBmaWxlICgke3RoaXMuY29uZmlnRmlsZX0pOmApO1xuICAgICAgZm9yIChjb25zdCBzdW1tYXJ5IG9mIHByb2JsZW1TdW1tYXJpZXMpIHtcbiAgICAgICAgdGhpcy5sb2coc3VtbWFyeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4dHM7XG4gIH1cblxuICBnZXRHZW5lcmljQ29uZmlnUHJvYmxlbXMgKGV4dCkge1xuICAgIGNvbnN0IHt2ZXJzaW9uLCBwa2dOYW1lLCBpbnN0YWxsU3BlYywgaW5zdGFsbFR5cGUsIGluc3RhbGxQYXRoLCBtYWluQ2xhc3N9ID0gZXh0O1xuICAgIGNvbnN0IHByb2JsZW1zID0gW107XG5cbiAgICBpZiAoIV8uaXNTdHJpbmcodmVyc2lvbikpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goe2VycjogJ01pc3Npbmcgb3IgaW5jb3JyZWN0IHZlcnNpb24nLCB2YWw6IHZlcnNpb259KTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNTdHJpbmcocGtnTmFtZSkpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goe2VycjogJ01pc3Npbmcgb3IgaW5jb3JyZWN0IE5QTSBwYWNrYWdlIG5hbWUnLCB2YWw6IHBrZ05hbWV9KTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNTdHJpbmcoaW5zdGFsbFNwZWMpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKHtlcnI6ICdNaXNzaW5nIG9yIGluY29ycmVjdCBpbnN0YWxsYXRpb24gc3BlYycsIHZhbDogaW5zdGFsbFNwZWN9KTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaW5jbHVkZXMoSU5TVEFMTF9UWVBFUywgaW5zdGFsbFR5cGUpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKHtlcnI6ICdNaXNzaW5nIG9yIGluY29ycmVjdCBpbnN0YWxsIHR5cGUnLCB2YWw6IGluc3RhbGxUeXBlfSk7XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzU3RyaW5nKGluc3RhbGxQYXRoKSkge1xuICAgICAgcHJvYmxlbXMucHVzaCh7ZXJyOiAnTWlzc2luZyBvciBpbmNvcnJlY3QgaW5zdGFsbGF0aW9uIHBhdGgnLCB2YWw6IGluc3RhbGxQYXRofSk7XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzU3RyaW5nKG1haW5DbGFzcykpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goe2VycjogJ01pc3Npbmcgb3IgaW5jb3JyZWN0IGRyaXZlciBjbGFzcyBuYW1lJywgdmFsOiBtYWluQ2xhc3N9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvYmxlbXM7XG4gIH1cblxuICBnZXRDb25maWdQcm9ibGVtcyAoLypleHQqLykge1xuICAgIC8vIHNob3VkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIGlmIHNwZWNpYWwgdmFsaWRhdGlvbiBpcyBuZWNlc3NhcnkgZm9yIHRoaXMgZXh0ZW5zaW9uIHR5cGVcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBhcHBseVNjaGVtYU1pZ3JhdGlvbnMgKCkge1xuICAgIGlmICh0aGlzLnlhbWxEYXRhLnNjaGVtYVJldiA8IDIgJiYgXy5pc1VuZGVmaW5lZCh0aGlzLnlhbWxEYXRhW1BMVUdJTl9UWVBFXSkpIHtcbiAgICAgIC8vIGF0IHNjaGVtYSByZXZpc2lvbiAyLCB3ZSBzdGFydGVkIGluY2x1ZGluZyBwbHVnaW5zIGFzIHdlbGwgYXMgZHJpdmVycyBpbiB0aGUgZmlsZSxcbiAgICAgIC8vIHNvIG1ha2Ugc3VyZSB3ZSBhdCBsZWFzdCBoYXZlIGFuIGVtcHR5IHNlY3Rpb24gZm9yIGl0XG4gICAgICB0aGlzLnlhbWxEYXRhW1BMVUdJTl9UWVBFXSA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlYWQgKCkge1xuICAgIGF3YWl0IG1rZGlycCh0aGlzLmFwcGl1bUhvbWUpOyAvLyBlbnN1cmUgYXBwaXVtIGhvbWUgZXhpc3RzXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMueWFtbERhdGEgPSBZQU1MLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHRoaXMuY29uZmlnRmlsZSwgJ3V0ZjgnKSk7XG4gICAgICB0aGlzLmFwcGx5U2NoZW1hTWlncmF0aW9ucygpO1xuXG4gICAgICAvLyBzZXQgdGhlIGxpc3Qgb2YgZHJpdmVycyB0aGUgdXNlciBoYXMgaW5zdGFsbGVkXG4gICAgICB0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnMgPSB0aGlzLnZhbGlkYXRlKHRoaXMueWFtbERhdGFbdGhpcy5jb25maWdLZXldKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChhd2FpdCBmcy5leGlzdHModGhpcy5jb25maWdGaWxlKSkge1xuICAgICAgICAvLyBpZiB0aGUgZmlsZSBleGlzdHMgYW5kIHdlIGNvdWxkbid0IHBhcnNlIGl0LCB0aGF0J3MgYSBwcm9ibGVtXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXBwaXVtIGhhZCB0cm91YmxlIGxvYWRpbmcgdGhlIGV4dGVuc2lvbiBpbnN0YWxsYXRpb24gYCArXG4gICAgICAgICAgICAgICAgICAgICAgICBgY2FjaGUgZmlsZSAoJHt0aGlzLmNvbmZpZ0ZpbGV9KS4gRW5zdXJlIGl0IGV4aXN0cyBhbmQgaXMgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICBgcmVhZGFibGUuIFNwZWNpZmljIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiB0aGUgY29uZmlnIGZpbGUgZG9lc24ndCBleGlzdCwgdHJ5IHRvIHdyaXRlIGFuIGVtcHR5IG9uZSwgdG8gbWFrZVxuICAgICAgLy8gc3VyZSB3ZSBhY3R1YWxseSBoYXZlIHdyaXRlIHByaXZpbGVnZXMsIGFuZCBjb21wbGFpbiBpZiB3ZSBkb24ndFxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy53cml0ZSgpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXBwaXVtIGNvdWxkIG5vdCByZWFkIG9yIHdyaXRlIGZyb20gdGhlIEFwcGl1bSBIb21lIGRpcmVjdG9yeSBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGAoJHt0aGlzLmFwcGl1bUhvbWV9KS4gUGxlYXNlIGVuc3VyZSBpdCBpcyB3cml0YWJsZS5gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9ucztcbiAgfVxuXG5cbiAgYXN5bmMgd3JpdGUgKCkge1xuICAgIGNvbnN0IG5ld1lhbWxEYXRhID0ge1xuICAgICAgLi4udGhpcy55YW1sRGF0YSxcbiAgICAgIHNjaGVtYVJldjogQ09ORklHX1NDSEVNQV9SRVYsXG4gICAgICBbdGhpcy5jb25maWdLZXldOiB0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnNcbiAgICB9O1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0aGlzLmNvbmZpZ0ZpbGUsIFlBTUwuc3RyaW5naWZ5KG5ld1lhbWxEYXRhKSwgJ3V0ZjgnKTtcbiAgfVxuXG4gIGFzeW5jIGFkZEV4dGVuc2lvbiAoZXh0TmFtZSwgZXh0RGF0YSkge1xuICAgIHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9uc1tleHROYW1lXSA9IGV4dERhdGE7XG4gICAgYXdhaXQgdGhpcy53cml0ZSgpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlRXh0ZW5zaW9uIChleHROYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9uc1tleHROYW1lXTtcbiAgICBhd2FpdCB0aGlzLndyaXRlKCk7XG4gIH1cblxuICBwcmludCAoKSB7XG4gICAgY29uc3QgZXh0TmFtZXMgPSBPYmplY3Qua2V5cyh0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnMpO1xuICAgIGlmIChfLmlzRW1wdHkoZXh0TmFtZXMpKSB7XG4gICAgICBsb2cuaW5mbyhgTm8gJHt0aGlzLmNvbmZpZ0tleX0gaGF2ZSBiZWVuIGluc3RhbGxlZC4gVXNlIHRoZSBcImFwcGl1bSAke3RoaXMuZXh0ZW5zaW9uVHlwZX1cIiBgICtcbiAgICAgICAgICAgICAgICdjb21tYW5kIHRvIGluc3RhbGwgdGhlIG9uZShzKSB5b3Ugd2FudCB0byB1c2UuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9nLmluZm8oYEF2YWlsYWJsZSAke3RoaXMuY29uZmlnS2V5fTpgKTtcbiAgICBmb3IgKGNvbnN0IFtleHROYW1lLCBleHREYXRhXSBvZiBfLnRvUGFpcnModGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zKSkge1xuICAgICAgbG9nLmluZm8oYCAgLSAke3RoaXMuZXh0ZW5zaW9uRGVzYyhleHROYW1lLCBleHREYXRhKX1gKTtcbiAgICB9XG4gIH1cblxuICBleHRlbnNpb25EZXNjICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBhIGZpbmFsIGNsYXNzJyk7XG4gIH1cblxuICBnZXRFeHRlbnNpb25SZXF1aXJlUGF0aCAoZXh0TmFtZSkge1xuICAgIGNvbnN0IHtwa2dOYW1lLCBpbnN0YWxsUGF0aH0gPSB0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnNbZXh0TmFtZV07XG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZSh0aGlzLmFwcGl1bUhvbWUsIGluc3RhbGxQYXRoLCAnbm9kZV9tb2R1bGVzJywgcGtnTmFtZSk7XG4gIH1cblxuICBnZXRJbnN0YWxsUGF0aCAoZXh0TmFtZSkge1xuICAgIGNvbnN0IHtpbnN0YWxsUGF0aH0gPSB0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnNbZXh0TmFtZV07XG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZSh0aGlzLmFwcGl1bUhvbWUsIGluc3RhbGxQYXRoKTtcbiAgfVxuXG4gIHJlcXVpcmUgKGV4dE5hbWUpIHtcbiAgICBjb25zdCB7bWFpbkNsYXNzfSA9IHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9uc1tleHROYW1lXTtcbiAgICByZXR1cm4gcmVxdWlyZSh0aGlzLmdldEV4dGVuc2lvblJlcXVpcmVQYXRoKGV4dE5hbWUpKVttYWluQ2xhc3NdO1xuICB9XG5cbiAgaXNJbnN0YWxsZWQgKGV4dE5hbWUpIHtcbiAgICByZXR1cm4gXy5pbmNsdWRlcyhPYmplY3Qua2V5cyh0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnMpLCBleHROYW1lKTtcbiAgfVxufVxuXG5leHBvcnQge1xuICBJTlNUQUxMX1RZUEVfTlBNLCBJTlNUQUxMX1RZUEVfR0lULCBJTlNUQUxMX1RZUEVfTE9DQUwsIElOU1RBTExfVFlQRV9HSVRIVUIsXG4gIElOU1RBTExfVFlQRVMsIERFRkFVTFRfQVBQSVVNX0hPTUUsIERSSVZFUl9UWVBFLCBQTFVHSU5fVFlQRSxcbn07XG4iXSwiZmlsZSI6ImxpYi9leHRlbnNpb24tY29uZmlnLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.default = void 0;
|
|
11
|
-
|
|
12
|
-
require("source-map-support/register");
|
|
13
|
-
|
|
14
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
15
|
-
|
|
16
|
-
var _extensionConfig = _interopRequireWildcard(require("./extension-config"));
|
|
17
|
-
|
|
18
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
19
|
-
|
|
20
|
-
class PluginConfig extends _extensionConfig.default {
|
|
21
|
-
constructor(appiumHome, logFn = null) {
|
|
22
|
-
super(appiumHome, _extensionConfig.PLUGIN_TYPE, logFn);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
extensionDesc(pluginName, {
|
|
26
|
-
version
|
|
27
|
-
}) {
|
|
28
|
-
return `${pluginName}@${version}`;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
print(activePlugins) {
|
|
32
|
-
const pluginNames = Object.keys(this.installedExtensions);
|
|
33
|
-
const activeNames = activePlugins.map(p => p.name);
|
|
34
|
-
|
|
35
|
-
if (_lodash.default.isEmpty(pluginNames)) {
|
|
36
|
-
_logger.default.info(`No plugins have been installed. Use the "appium plugin" ` + 'command to install the one(s) you want to use.');
|
|
37
|
-
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
_logger.default.info(`Available plugins:`);
|
|
42
|
-
|
|
43
|
-
for (const [pluginName, pluginData] of _lodash.default.toPairs(this.installedExtensions)) {
|
|
44
|
-
const activeTxt = _lodash.default.includes(activeNames, pluginName) ? ' (ACTIVE)' : '';
|
|
45
|
-
|
|
46
|
-
_logger.default.info(` - ${this.extensionDesc(pluginName, pluginData)}${activeTxt}`);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (_lodash.default.isEmpty(activePlugins)) {
|
|
50
|
-
_logger.default.info('No plugins activated. Use the --plugins flag with names of plugins to activate');
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
exports.default = PluginConfig;require('source-map-support').install();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9wbHVnaW4tY29uZmlnLmpzIl0sIm5hbWVzIjpbIlBsdWdpbkNvbmZpZyIsIkV4dGVuc2lvbkNvbmZpZyIsImNvbnN0cnVjdG9yIiwiYXBwaXVtSG9tZSIsImxvZ0ZuIiwiUExVR0lOX1RZUEUiLCJleHRlbnNpb25EZXNjIiwicGx1Z2luTmFtZSIsInZlcnNpb24iLCJwcmludCIsImFjdGl2ZVBsdWdpbnMiLCJwbHVnaW5OYW1lcyIsIk9iamVjdCIsImtleXMiLCJpbnN0YWxsZWRFeHRlbnNpb25zIiwiYWN0aXZlTmFtZXMiLCJtYXAiLCJwIiwibmFtZSIsIl8iLCJpc0VtcHR5IiwibG9nIiwiaW5mbyIsInBsdWdpbkRhdGEiLCJ0b1BhaXJzIiwiYWN0aXZlVHh0IiwiaW5jbHVkZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFZSxNQUFNQSxZQUFOLFNBQTJCQyx3QkFBM0IsQ0FBMkM7QUFDeERDLEVBQUFBLFdBQVcsQ0FBRUMsVUFBRixFQUFjQyxLQUFLLEdBQUcsSUFBdEIsRUFBNEI7QUFDckMsVUFBTUQsVUFBTixFQUFrQkUsNEJBQWxCLEVBQStCRCxLQUEvQjtBQUNEOztBQUVERSxFQUFBQSxhQUFhLENBQUVDLFVBQUYsRUFBYztBQUFDQyxJQUFBQTtBQUFELEdBQWQsRUFBeUI7QUFDcEMsV0FBUSxHQUFFRCxVQUFXLElBQUdDLE9BQVEsRUFBaEM7QUFDRDs7QUFFREMsRUFBQUEsS0FBSyxDQUFFQyxhQUFGLEVBQWlCO0FBQ3BCLFVBQU1DLFdBQVcsR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVksS0FBS0MsbUJBQWpCLENBQXBCO0FBQ0EsVUFBTUMsV0FBVyxHQUFHTCxhQUFhLENBQUNNLEdBQWQsQ0FBbUJDLENBQUQsSUFBT0EsQ0FBQyxDQUFDQyxJQUEzQixDQUFwQjs7QUFFQSxRQUFJQyxnQkFBRUMsT0FBRixDQUFVVCxXQUFWLENBQUosRUFBNEI7QUFDMUJVLHNCQUFJQyxJQUFKLENBQVUsMERBQUQsR0FDQSxnREFEVDs7QUFFQTtBQUNEOztBQUVERCxvQkFBSUMsSUFBSixDQUFVLG9CQUFWOztBQUNBLFNBQUssTUFBTSxDQUFDZixVQUFELEVBQWFnQixVQUFiLENBQVgsSUFBdUNKLGdCQUFFSyxPQUFGLENBQVUsS0FBS1YsbUJBQWYsQ0FBdkMsRUFBNEU7QUFDMUUsWUFBTVcsU0FBUyxHQUFHTixnQkFBRU8sUUFBRixDQUFXWCxXQUFYLEVBQXdCUixVQUF4QixJQUFzQyxXQUF0QyxHQUFvRCxFQUF0RTs7QUFDQWMsc0JBQUlDLElBQUosQ0FBVSxPQUFNLEtBQUtoQixhQUFMLENBQW1CQyxVQUFuQixFQUErQmdCLFVBQS9CLENBQTJDLEdBQUVFLFNBQVUsRUFBdkU7QUFDRDs7QUFFRCxRQUFJTixnQkFBRUMsT0FBRixDQUFVVixhQUFWLENBQUosRUFBOEI7QUFDNUJXLHNCQUFJQyxJQUFKLENBQVMsZ0ZBQVQ7QUFDRDtBQUNGOztBQTVCdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEV4dGVuc2lvbkNvbmZpZywgeyBQTFVHSU5fVFlQRSB9IGZyb20gJy4vZXh0ZW5zaW9uLWNvbmZpZyc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGx1Z2luQ29uZmlnIGV4dGVuZHMgRXh0ZW5zaW9uQ29uZmlnIHtcbiAgY29uc3RydWN0b3IgKGFwcGl1bUhvbWUsIGxvZ0ZuID0gbnVsbCkge1xuICAgIHN1cGVyKGFwcGl1bUhvbWUsIFBMVUdJTl9UWVBFLCBsb2dGbik7XG4gIH1cblxuICBleHRlbnNpb25EZXNjIChwbHVnaW5OYW1lLCB7dmVyc2lvbn0pIHtcbiAgICByZXR1cm4gYCR7cGx1Z2luTmFtZX1AJHt2ZXJzaW9ufWA7XG4gIH1cblxuICBwcmludCAoYWN0aXZlUGx1Z2lucykge1xuICAgIGNvbnN0IHBsdWdpbk5hbWVzID0gT2JqZWN0LmtleXModGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zKTtcbiAgICBjb25zdCBhY3RpdmVOYW1lcyA9IGFjdGl2ZVBsdWdpbnMubWFwKChwKSA9PiBwLm5hbWUpO1xuXG4gICAgaWYgKF8uaXNFbXB0eShwbHVnaW5OYW1lcykpIHtcbiAgICAgIGxvZy5pbmZvKGBObyBwbHVnaW5zIGhhdmUgYmVlbiBpbnN0YWxsZWQuIFVzZSB0aGUgXCJhcHBpdW0gcGx1Z2luXCIgYCArXG4gICAgICAgICAgICAgICAnY29tbWFuZCB0byBpbnN0YWxsIHRoZSBvbmUocykgeW91IHdhbnQgdG8gdXNlLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZy5pbmZvKGBBdmFpbGFibGUgcGx1Z2luczpgKTtcbiAgICBmb3IgKGNvbnN0IFtwbHVnaW5OYW1lLCBwbHVnaW5EYXRhXSBvZiBfLnRvUGFpcnModGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zKSkge1xuICAgICAgY29uc3QgYWN0aXZlVHh0ID0gXy5pbmNsdWRlcyhhY3RpdmVOYW1lcywgcGx1Z2luTmFtZSkgPyAnIChBQ1RJVkUpJyA6ICcnO1xuICAgICAgbG9nLmluZm8oYCAgLSAke3RoaXMuZXh0ZW5zaW9uRGVzYyhwbHVnaW5OYW1lLCBwbHVnaW5EYXRhKX0ke2FjdGl2ZVR4dH1gKTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc0VtcHR5KGFjdGl2ZVBsdWdpbnMpKSB7XG4gICAgICBsb2cuaW5mbygnTm8gcGx1Z2lucyBhY3RpdmF0ZWQuIFVzZSB0aGUgLS1wbHVnaW5zIGZsYWcgd2l0aCBuYW1lcyBvZiBwbHVnaW5zIHRvIGFjdGl2YXRlJyk7XG4gICAgfVxuICB9XG59XG4iXSwiZmlsZSI6ImxpYi9wbHVnaW4tY29uZmlnLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
package/build/lib/plugins.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.KNOWN_PLUGINS = void 0;
|
|
7
|
-
|
|
8
|
-
require("source-map-support/register");
|
|
9
|
-
|
|
10
|
-
const KNOWN_PLUGINS = {
|
|
11
|
-
images: '@appium/images-plugin'
|
|
12
|
-
};
|
|
13
|
-
exports.KNOWN_PLUGINS = KNOWN_PLUGINS;require('source-map-support').install();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9wbHVnaW5zLmpzIl0sIm5hbWVzIjpbIktOT1dOX1BMVUdJTlMiLCJpbWFnZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUlBLE1BQU1BLGFBQWEsR0FBRztBQUNwQkMsRUFBQUEsTUFBTSxFQUFFO0FBRFksQ0FBdEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGlzIGEgbWFwIG9mIHBsdWdpbiBuYW1lcyB0byBucG0gcGFja2FnZXMgcmVwcmVzZW50aW5nIHRob3NlIHBsdWdpbnMuXG4vLyBUaGUgcGx1Z2lucyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBhdmFpbGFibGUgdG8gdGhlIENMSSBzbyB1c2VycyBjYW4ganVzdFxuLy8gdHlwZSAnYXBwaXVtIHBsdWdpbiBpbnN0YWxsICduYW1lJycsIHJhdGhlciB0aGFuIGhhdmluZyB0byBzcGVjaWZ5IHRoZSBmdWxsXG4vLyBucG0gcGFja2FnZS4gSS5lLiwgdGhlc2UgYXJlIHRoZSBvZmZpY2lhbGx5IHJlY29nbml6ZWQgcGx1Z2lucy5cbmNvbnN0IEtOT1dOX1BMVUdJTlMgPSB7XG4gIGltYWdlczogJ0BhcHBpdW0vaW1hZ2VzLXBsdWdpbicsXG59O1xuXG5leHBvcnQge1xuICBLTk9XTl9QTFVHSU5TLFxufTtcbiJdLCJmaWxlIjoibGliL3BsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
package/build/postinstall.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
require("source-map-support/register");
|
|
5
|
-
|
|
6
|
-
async function main() {
|
|
7
|
-
const driverEnv = process.env.npm_config_drivers;
|
|
8
|
-
const pluginEnv = process.env.npm_config_plugins;
|
|
9
|
-
|
|
10
|
-
if (!driverEnv && !pluginEnv) {
|
|
11
|
-
console.log('Not auto-installing any drivers or plugins');
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
let extension;
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
extension = require('./build/lib/cli/extension');
|
|
19
|
-
} catch (e) {
|
|
20
|
-
throw new Error(`Could not load extension CLI file; has the project been transpiled? ` + `(${e.message})`);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const {
|
|
24
|
-
DEFAULT_APPIUM_HOME,
|
|
25
|
-
DRIVER_TYPE,
|
|
26
|
-
PLUGIN_TYPE
|
|
27
|
-
} = require('./build/lib/extension-config');
|
|
28
|
-
|
|
29
|
-
const {
|
|
30
|
-
runExtensionCommand
|
|
31
|
-
} = extension;
|
|
32
|
-
const appiumHome = process.env.npm_config_appium_home || DEFAULT_APPIUM_HOME;
|
|
33
|
-
const specs = [[DRIVER_TYPE, driverEnv], [PLUGIN_TYPE, pluginEnv]];
|
|
34
|
-
|
|
35
|
-
for (const [type, extEnv] of specs) {
|
|
36
|
-
if (extEnv) {
|
|
37
|
-
for (const ext of extEnv.split(',')) {
|
|
38
|
-
try {
|
|
39
|
-
await checkAndInstallExtension({
|
|
40
|
-
runExtensionCommand,
|
|
41
|
-
appiumHome,
|
|
42
|
-
type,
|
|
43
|
-
ext
|
|
44
|
-
});
|
|
45
|
-
} catch (e) {
|
|
46
|
-
console.log(`There was an error checking and installing ${type} ${ext}: ${e.message}`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
async function checkAndInstallExtension({
|
|
54
|
-
runExtensionCommand,
|
|
55
|
-
appiumHome,
|
|
56
|
-
type,
|
|
57
|
-
ext
|
|
58
|
-
}) {
|
|
59
|
-
const extList = await runExtensionCommand({
|
|
60
|
-
appiumHome,
|
|
61
|
-
[`${type}Command`]: 'list',
|
|
62
|
-
showInstalled: true,
|
|
63
|
-
suppressOutput: true
|
|
64
|
-
}, type);
|
|
65
|
-
|
|
66
|
-
if (extList[ext]) {
|
|
67
|
-
console.log(`The ${type} ${ext} was already installed, skipping...`);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
console.log(`Installing the ${type} ${ext}...`);
|
|
72
|
-
await runExtensionCommand({
|
|
73
|
-
appiumHome,
|
|
74
|
-
[`${type}Command`]: 'install',
|
|
75
|
-
[type]: ext,
|
|
76
|
-
suppressOutput: true
|
|
77
|
-
}, type);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (require.main === module) {
|
|
81
|
-
main().then(() => {
|
|
82
|
-
process.exit(0);
|
|
83
|
-
}).catch(e => {
|
|
84
|
-
console.error(e);
|
|
85
|
-
process.exit(1);
|
|
86
|
-
});
|
|
87
|
-
}require('source-map-support').install();
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBvc3RpbnN0YWxsLmpzIl0sIm5hbWVzIjpbIm1haW4iLCJkcml2ZXJFbnYiLCJwcm9jZXNzIiwiZW52IiwibnBtX2NvbmZpZ19kcml2ZXJzIiwicGx1Z2luRW52IiwibnBtX2NvbmZpZ19wbHVnaW5zIiwiY29uc29sZSIsImxvZyIsImV4dGVuc2lvbiIsInJlcXVpcmUiLCJlIiwiRXJyb3IiLCJtZXNzYWdlIiwiREVGQVVMVF9BUFBJVU1fSE9NRSIsIkRSSVZFUl9UWVBFIiwiUExVR0lOX1RZUEUiLCJydW5FeHRlbnNpb25Db21tYW5kIiwiYXBwaXVtSG9tZSIsIm5wbV9jb25maWdfYXBwaXVtX2hvbWUiLCJzcGVjcyIsInR5cGUiLCJleHRFbnYiLCJleHQiLCJzcGxpdCIsImNoZWNrQW5kSW5zdGFsbEV4dGVuc2lvbiIsImV4dExpc3QiLCJzaG93SW5zdGFsbGVkIiwic3VwcHJlc3NPdXRwdXQiLCJtb2R1bGUiLCJ0aGVuIiwiZXhpdCIsImNhdGNoIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBOzs7OztBQUdBLGVBQWVBLElBQWYsR0FBdUI7QUFDckIsUUFBTUMsU0FBUyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsa0JBQTlCO0FBQ0EsUUFBTUMsU0FBUyxHQUFHSCxPQUFPLENBQUNDLEdBQVIsQ0FBWUcsa0JBQTlCOztBQUVBLE1BQUksQ0FBQ0wsU0FBRCxJQUFjLENBQUNJLFNBQW5CLEVBQThCO0FBQzVCRSxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSw0Q0FBWjtBQUNBO0FBQ0Q7O0FBRUQsTUFBSUMsU0FBSjs7QUFDQSxNQUFJO0FBQ0ZBLElBQUFBLFNBQVMsR0FBR0MsT0FBTyxDQUFDLDJCQUFELENBQW5CO0FBQ0QsR0FGRCxDQUVFLE9BQU9DLENBQVAsRUFBVTtBQUNWLFVBQU0sSUFBSUMsS0FBSixDQUFXLHNFQUFELEdBQ0MsSUFBR0QsQ0FBQyxDQUFDRSxPQUFRLEdBRHhCLENBQU47QUFFRDs7QUFFRCxRQUFNO0FBQUNDLElBQUFBLG1CQUFEO0FBQXNCQyxJQUFBQSxXQUF0QjtBQUFtQ0MsSUFBQUE7QUFBbkMsTUFBa0ROLE9BQU8sQ0FBQyw4QkFBRCxDQUEvRDs7QUFDQSxRQUFNO0FBQUNPLElBQUFBO0FBQUQsTUFBd0JSLFNBQTlCO0FBQ0EsUUFBTVMsVUFBVSxHQUFHaEIsT0FBTyxDQUFDQyxHQUFSLENBQVlnQixzQkFBWixJQUFzQ0wsbUJBQXpEO0FBQ0EsUUFBTU0sS0FBSyxHQUFHLENBQUMsQ0FBQ0wsV0FBRCxFQUFjZCxTQUFkLENBQUQsRUFBMkIsQ0FBQ2UsV0FBRCxFQUFjWCxTQUFkLENBQTNCLENBQWQ7O0FBRUEsT0FBSyxNQUFNLENBQUNnQixJQUFELEVBQU9DLE1BQVAsQ0FBWCxJQUE2QkYsS0FBN0IsRUFBb0M7QUFDbEMsUUFBSUUsTUFBSixFQUFZO0FBQ1YsV0FBSyxNQUFNQyxHQUFYLElBQWtCRCxNQUFNLENBQUNFLEtBQVAsQ0FBYSxHQUFiLENBQWxCLEVBQXFDO0FBQ25DLFlBQUk7QUFDRixnQkFBTUMsd0JBQXdCLENBQUM7QUFBQ1IsWUFBQUEsbUJBQUQ7QUFBc0JDLFlBQUFBLFVBQXRCO0FBQWtDRyxZQUFBQSxJQUFsQztBQUF3Q0UsWUFBQUE7QUFBeEMsV0FBRCxDQUE5QjtBQUNELFNBRkQsQ0FFRSxPQUFPWixDQUFQLEVBQVU7QUFDVkosVUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQWEsOENBQTZDYSxJQUFLLElBQUdFLEdBQUksS0FBSVosQ0FBQyxDQUFDRSxPQUFRLEVBQXBGO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7QUFDRjs7QUFFRCxlQUFlWSx3QkFBZixDQUF5QztBQUN2Q1IsRUFBQUEsbUJBRHVDO0FBRXZDQyxFQUFBQSxVQUZ1QztBQUd2Q0csRUFBQUEsSUFIdUM7QUFJdkNFLEVBQUFBO0FBSnVDLENBQXpDLEVBS0c7QUFDRCxRQUFNRyxPQUFPLEdBQUcsTUFBTVQsbUJBQW1CLENBQUM7QUFDeENDLElBQUFBLFVBRHdDO0FBRXhDLEtBQUUsR0FBRUcsSUFBSyxTQUFULEdBQW9CLE1BRm9CO0FBR3hDTSxJQUFBQSxhQUFhLEVBQUUsSUFIeUI7QUFJeENDLElBQUFBLGNBQWMsRUFBRTtBQUp3QixHQUFELEVBS3RDUCxJQUxzQyxDQUF6Qzs7QUFNQSxNQUFJSyxPQUFPLENBQUNILEdBQUQsQ0FBWCxFQUFrQjtBQUNoQmhCLElBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFhLE9BQU1hLElBQUssSUFBR0UsR0FBSSxxQ0FBL0I7QUFDQTtBQUNEOztBQUNEaEIsRUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQWEsa0JBQWlCYSxJQUFLLElBQUdFLEdBQUksS0FBMUM7QUFDQSxRQUFNTixtQkFBbUIsQ0FBQztBQUN4QkMsSUFBQUEsVUFEd0I7QUFFeEIsS0FBRSxHQUFFRyxJQUFLLFNBQVQsR0FBb0IsU0FGSTtBQUd4QixLQUFDQSxJQUFELEdBQVFFLEdBSGdCO0FBSXhCSyxJQUFBQSxjQUFjLEVBQUU7QUFKUSxHQUFELEVBS3RCUCxJQUxzQixDQUF6QjtBQU1EOztBQUVELElBQUlYLE9BQU8sQ0FBQ1YsSUFBUixLQUFpQjZCLE1BQXJCLEVBQTZCO0FBQzNCN0IsRUFBQUEsSUFBSSxHQUFHOEIsSUFBUCxDQUFZLE1BQU07QUFDaEI1QixJQUFBQSxPQUFPLENBQUM2QixJQUFSLENBQWEsQ0FBYjtBQUNELEdBRkQsRUFFR0MsS0FGSCxDQUVVckIsQ0FBRCxJQUFPO0FBQ2RKLElBQUFBLE9BQU8sQ0FBQzBCLEtBQVIsQ0FBY3RCLENBQWQ7QUFDQVQsSUFBQUEsT0FBTyxDQUFDNkIsSUFBUixDQUFhLENBQWI7QUFDRCxHQUxEO0FBTUQiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlLCBwcm9taXNlL3ByZWZlci1hd2FpdC10by10aGVuICovXG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4gKCkge1xuICBjb25zdCBkcml2ZXJFbnYgPSBwcm9jZXNzLmVudi5ucG1fY29uZmlnX2RyaXZlcnM7XG4gIGNvbnN0IHBsdWdpbkVudiA9IHByb2Nlc3MuZW52Lm5wbV9jb25maWdfcGx1Z2lucztcblxuICBpZiAoIWRyaXZlckVudiAmJiAhcGx1Z2luRW52KSB7XG4gICAgY29uc29sZS5sb2coJ05vdCBhdXRvLWluc3RhbGxpbmcgYW55IGRyaXZlcnMgb3IgcGx1Z2lucycpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBleHRlbnNpb247XG4gIHRyeSB7XG4gICAgZXh0ZW5zaW9uID0gcmVxdWlyZSgnLi9idWlsZC9saWIvY2xpL2V4dGVuc2lvbicpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgbG9hZCBleHRlbnNpb24gQ0xJIGZpbGU7IGhhcyB0aGUgcHJvamVjdCBiZWVuIHRyYW5zcGlsZWQ/IGAgK1xuICAgICAgICAgICAgICAgICAgICBgKCR7ZS5tZXNzYWdlfSlgKTtcbiAgfVxuXG4gIGNvbnN0IHtERUZBVUxUX0FQUElVTV9IT01FLCBEUklWRVJfVFlQRSwgUExVR0lOX1RZUEV9ID0gcmVxdWlyZSgnLi9idWlsZC9saWIvZXh0ZW5zaW9uLWNvbmZpZycpO1xuICBjb25zdCB7cnVuRXh0ZW5zaW9uQ29tbWFuZH0gPSBleHRlbnNpb247XG4gIGNvbnN0IGFwcGl1bUhvbWUgPSBwcm9jZXNzLmVudi5ucG1fY29uZmlnX2FwcGl1bV9ob21lIHx8IERFRkFVTFRfQVBQSVVNX0hPTUU7XG4gIGNvbnN0IHNwZWNzID0gW1tEUklWRVJfVFlQRSwgZHJpdmVyRW52XSwgW1BMVUdJTl9UWVBFLCBwbHVnaW5FbnZdXTtcblxuICBmb3IgKGNvbnN0IFt0eXBlLCBleHRFbnZdIG9mIHNwZWNzKSB7XG4gICAgaWYgKGV4dEVudikge1xuICAgICAgZm9yIChjb25zdCBleHQgb2YgZXh0RW52LnNwbGl0KCcsJykpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBjaGVja0FuZEluc3RhbGxFeHRlbnNpb24oe3J1bkV4dGVuc2lvbkNvbW1hbmQsIGFwcGl1bUhvbWUsIHR5cGUsIGV4dH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFRoZXJlIHdhcyBhbiBlcnJvciBjaGVja2luZyBhbmQgaW5zdGFsbGluZyAke3R5cGV9ICR7ZXh0fTogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2hlY2tBbmRJbnN0YWxsRXh0ZW5zaW9uICh7XG4gIHJ1bkV4dGVuc2lvbkNvbW1hbmQsXG4gIGFwcGl1bUhvbWUsXG4gIHR5cGUsXG4gIGV4dCxcbn0pIHtcbiAgY29uc3QgZXh0TGlzdCA9IGF3YWl0IHJ1bkV4dGVuc2lvbkNvbW1hbmQoe1xuICAgIGFwcGl1bUhvbWUsXG4gICAgW2Ake3R5cGV9Q29tbWFuZGBdOiAnbGlzdCcsXG4gICAgc2hvd0luc3RhbGxlZDogdHJ1ZSxcbiAgICBzdXBwcmVzc091dHB1dDogdHJ1ZSxcbiAgfSwgdHlwZSk7XG4gIGlmIChleHRMaXN0W2V4dF0pIHtcbiAgICBjb25zb2xlLmxvZyhgVGhlICR7dHlwZX0gJHtleHR9IHdhcyBhbHJlYWR5IGluc3RhbGxlZCwgc2tpcHBpbmcuLi5gKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc29sZS5sb2coYEluc3RhbGxpbmcgdGhlICR7dHlwZX0gJHtleHR9Li4uYCk7XG4gIGF3YWl0IHJ1bkV4dGVuc2lvbkNvbW1hbmQoe1xuICAgIGFwcGl1bUhvbWUsXG4gICAgW2Ake3R5cGV9Q29tbWFuZGBdOiAnaW5zdGFsbCcsXG4gICAgW3R5cGVdOiBleHQsXG4gICAgc3VwcHJlc3NPdXRwdXQ6IHRydWUsXG4gIH0sIHR5cGUpO1xufVxuXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgbWFpbigpLnRoZW4oKCkgPT4ge1xuICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfSk7XG59XG4iXSwiZmlsZSI6InBvc3RpbnN0YWxsLmpzIiwic291cmNlUm9vdCI6Ii4uIn0=
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { Action } from 'argparse';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const DEFAULT_CAPS_ARG = '--default-capabilities';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class StoreDeprecatedAction extends Action {
|
|
8
|
-
constructor (options = {}) {
|
|
9
|
-
const opts = Object.assign({}, options);
|
|
10
|
-
let helpPrefix = '[DEPRECATED]';
|
|
11
|
-
if (opts.deprecated_for) {
|
|
12
|
-
helpPrefix = `[DEPRECATED, use ${opts.deprecated_for} instead]`;
|
|
13
|
-
delete opts.deprecated_for;
|
|
14
|
-
}
|
|
15
|
-
if (opts.help) {
|
|
16
|
-
opts.help = `${helpPrefix} - ${opts.help}`;
|
|
17
|
-
} else {
|
|
18
|
-
opts.help = helpPrefix;
|
|
19
|
-
}
|
|
20
|
-
super(opts);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
call (parser, namespace, values) {
|
|
24
|
-
namespace[this.dest] = values;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
class StoreDeprecatedTrueAction extends StoreDeprecatedAction {
|
|
30
|
-
constructor (options = {}) {
|
|
31
|
-
super(Object.assign({}, options, {const: true, nargs: 0}));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
call (parser, namespace) {
|
|
35
|
-
namespace[this.dest] = this.const;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class StoreDeprecatedDefaultCapabilityAction extends StoreDeprecatedAction {
|
|
41
|
-
constructor (options = {}) {
|
|
42
|
-
super(Object.assign({}, options, {deprecated_for: DEFAULT_CAPS_ARG}));
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
_writeDefaultCap (namespace, value) {
|
|
46
|
-
namespace[this.dest] = value;
|
|
47
|
-
if (value === this.default) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (!namespace.defaultCapabilities) {
|
|
52
|
-
namespace.defaultCapabilities = {};
|
|
53
|
-
}
|
|
54
|
-
namespace.defaultCapabilities[this.dest] = value;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
call (parser, namespace, values) {
|
|
58
|
-
this._writeDefaultCap(namespace, values);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
class StoreDeprecatedDefaultCapabilityTrueAction extends StoreDeprecatedDefaultCapabilityAction {
|
|
64
|
-
constructor (options = {}) {
|
|
65
|
-
super(Object.assign({}, options, {const: true, nargs: 0}));
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
call (parser, namespace) {
|
|
69
|
-
this._writeDefaultCap(namespace, this.const);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export {
|
|
74
|
-
StoreDeprecatedAction, StoreDeprecatedTrueAction,
|
|
75
|
-
StoreDeprecatedDefaultCapabilityAction, StoreDeprecatedDefaultCapabilityTrueAction,
|
|
76
|
-
DEFAULT_CAPS_ARG,
|
|
77
|
-
};
|