appium 2.0.0-beta.7 → 2.0.0-beta.71

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.
Files changed (206) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +149 -58
  3. package/build/lib/appium.d.ts +229 -0
  4. package/build/lib/appium.d.ts.map +1 -0
  5. package/build/lib/appium.js +678 -439
  6. package/build/lib/appium.js.map +1 -0
  7. package/build/lib/cli/args.d.ts +17 -0
  8. package/build/lib/cli/args.d.ts.map +1 -0
  9. package/build/lib/cli/args.js +263 -300
  10. package/build/lib/cli/args.js.map +1 -0
  11. package/build/lib/cli/driver-command.d.ts +102 -0
  12. package/build/lib/cli/driver-command.d.ts.map +1 -0
  13. package/build/lib/cli/driver-command.js +131 -81
  14. package/build/lib/cli/driver-command.js.map +1 -0
  15. package/build/lib/cli/extension-command.d.ts +402 -0
  16. package/build/lib/cli/extension-command.d.ts.map +1 -0
  17. package/build/lib/cli/extension-command.js +799 -383
  18. package/build/lib/cli/extension-command.js.map +1 -0
  19. package/build/lib/cli/extension.d.ts +23 -0
  20. package/build/lib/cli/extension.d.ts.map +1 -0
  21. package/build/lib/cli/extension.js +71 -60
  22. package/build/lib/cli/extension.js.map +1 -0
  23. package/build/lib/cli/parser.d.ts +84 -0
  24. package/build/lib/cli/parser.d.ts.map +1 -0
  25. package/build/lib/cli/parser.js +252 -148
  26. package/build/lib/cli/parser.js.map +1 -0
  27. package/build/lib/cli/plugin-command.d.ts +99 -0
  28. package/build/lib/cli/plugin-command.d.ts.map +1 -0
  29. package/build/lib/cli/plugin-command.js +125 -81
  30. package/build/lib/cli/plugin-command.js.map +1 -0
  31. package/build/lib/cli/utils.d.ts +29 -0
  32. package/build/lib/cli/utils.d.ts.map +1 -0
  33. package/build/lib/cli/utils.js +72 -51
  34. package/build/lib/cli/utils.js.map +1 -0
  35. package/build/lib/config-file.d.ts +100 -0
  36. package/build/lib/config-file.d.ts.map +1 -0
  37. package/build/lib/config-file.js +207 -0
  38. package/build/lib/config-file.js.map +1 -0
  39. package/build/lib/config.d.ts +49 -0
  40. package/build/lib/config.d.ts.map +1 -0
  41. package/build/lib/config.js +262 -223
  42. package/build/lib/config.js.map +1 -0
  43. package/build/lib/constants.d.ts +56 -0
  44. package/build/lib/constants.d.ts.map +1 -0
  45. package/build/lib/constants.js +73 -0
  46. package/build/lib/constants.js.map +1 -0
  47. package/build/lib/extension/driver-config.d.ts +82 -0
  48. package/build/lib/extension/driver-config.d.ts.map +1 -0
  49. package/build/lib/extension/driver-config.js +210 -0
  50. package/build/lib/extension/driver-config.js.map +1 -0
  51. package/build/lib/extension/extension-config.d.ts +270 -0
  52. package/build/lib/extension/extension-config.d.ts.map +1 -0
  53. package/build/lib/extension/extension-config.js +601 -0
  54. package/build/lib/extension/extension-config.js.map +1 -0
  55. package/build/lib/extension/index.d.ts +48 -0
  56. package/build/lib/extension/index.d.ts.map +1 -0
  57. package/build/lib/extension/index.js +105 -0
  58. package/build/lib/extension/index.js.map +1 -0
  59. package/build/lib/extension/manifest-migrations.d.ts +27 -0
  60. package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
  61. package/build/lib/extension/manifest-migrations.js +134 -0
  62. package/build/lib/extension/manifest-migrations.js.map +1 -0
  63. package/build/lib/extension/manifest.d.ts +145 -0
  64. package/build/lib/extension/manifest.d.ts.map +1 -0
  65. package/build/lib/extension/manifest.js +528 -0
  66. package/build/lib/extension/manifest.js.map +1 -0
  67. package/build/lib/extension/package-changed.d.ts +11 -0
  68. package/build/lib/extension/package-changed.d.ts.map +1 -0
  69. package/build/lib/extension/package-changed.js +62 -0
  70. package/build/lib/extension/package-changed.js.map +1 -0
  71. package/build/lib/extension/plugin-config.d.ts +56 -0
  72. package/build/lib/extension/plugin-config.d.ts.map +1 -0
  73. package/build/lib/extension/plugin-config.js +102 -0
  74. package/build/lib/extension/plugin-config.js.map +1 -0
  75. package/build/lib/grid-register.d.ts +10 -0
  76. package/build/lib/grid-register.d.ts.map +1 -0
  77. package/build/lib/grid-register.js +122 -144
  78. package/build/lib/grid-register.js.map +1 -0
  79. package/build/lib/logger.d.ts +3 -0
  80. package/build/lib/logger.d.ts.map +1 -0
  81. package/build/lib/logger.js +5 -17
  82. package/build/lib/logger.js.map +1 -0
  83. package/build/lib/logsink.d.ts +4 -0
  84. package/build/lib/logsink.d.ts.map +1 -0
  85. package/build/lib/logsink.js +189 -184
  86. package/build/lib/logsink.js.map +1 -0
  87. package/build/lib/main.d.ts +62 -0
  88. package/build/lib/main.d.ts.map +1 -0
  89. package/build/lib/main.js +388 -234
  90. package/build/lib/main.js.map +1 -0
  91. package/build/lib/schema/arg-spec.d.ts +143 -0
  92. package/build/lib/schema/arg-spec.d.ts.map +1 -0
  93. package/build/lib/schema/arg-spec.js +164 -0
  94. package/build/lib/schema/arg-spec.js.map +1 -0
  95. package/build/lib/schema/cli-args.d.ts +19 -0
  96. package/build/lib/schema/cli-args.d.ts.map +1 -0
  97. package/build/lib/schema/cli-args.js +220 -0
  98. package/build/lib/schema/cli-args.js.map +1 -0
  99. package/build/lib/schema/cli-transformers.d.ts +5 -0
  100. package/build/lib/schema/cli-transformers.d.ts.map +1 -0
  101. package/build/lib/schema/cli-transformers.js +124 -0
  102. package/build/lib/schema/cli-transformers.js.map +1 -0
  103. package/build/lib/schema/index.d.ts +3 -0
  104. package/build/lib/schema/index.d.ts.map +1 -0
  105. package/build/lib/schema/index.js +19 -0
  106. package/build/lib/schema/index.js.map +1 -0
  107. package/build/lib/schema/keywords.d.ts +24 -0
  108. package/build/lib/schema/keywords.d.ts.map +1 -0
  109. package/build/lib/schema/keywords.js +128 -0
  110. package/build/lib/schema/keywords.js.map +1 -0
  111. package/build/lib/schema/schema.d.ts +260 -0
  112. package/build/lib/schema/schema.d.ts.map +1 -0
  113. package/build/lib/schema/schema.js +640 -0
  114. package/build/lib/schema/schema.js.map +1 -0
  115. package/build/lib/utils.d.ts +266 -0
  116. package/build/lib/utils.d.ts.map +1 -0
  117. package/build/lib/utils.js +349 -273
  118. package/build/lib/utils.js.map +1 -0
  119. package/build/types/cli.d.ts +134 -0
  120. package/build/types/cli.d.ts.map +1 -0
  121. package/build/types/cli.js +3 -0
  122. package/build/types/cli.js.map +1 -0
  123. package/build/types/index.d.ts +15 -0
  124. package/build/types/index.d.ts.map +1 -0
  125. package/build/types/index.js +19 -0
  126. package/build/types/index.js.map +1 -0
  127. package/build/types/manifest/base.d.ts +135 -0
  128. package/build/types/manifest/base.d.ts.map +1 -0
  129. package/build/types/manifest/base.js +3 -0
  130. package/build/types/manifest/base.js.map +1 -0
  131. package/build/types/manifest/index.d.ts +21 -0
  132. package/build/types/manifest/index.d.ts.map +1 -0
  133. package/build/types/manifest/index.js +42 -0
  134. package/build/types/manifest/index.js.map +1 -0
  135. package/build/types/manifest/v3.d.ts +139 -0
  136. package/build/types/manifest/v3.d.ts.map +1 -0
  137. package/build/types/manifest/v3.js +3 -0
  138. package/build/types/manifest/v3.js.map +1 -0
  139. package/build/types/manifest/v4.d.ts +139 -0
  140. package/build/types/manifest/v4.d.ts.map +1 -0
  141. package/build/types/manifest/v4.js +3 -0
  142. package/build/types/manifest/v4.js.map +1 -0
  143. package/driver.d.ts +1 -0
  144. package/driver.js +14 -0
  145. package/index.js +11 -0
  146. package/lib/appium.js +558 -186
  147. package/lib/cli/args.js +275 -407
  148. package/lib/cli/driver-command.js +132 -24
  149. package/lib/cli/extension-command.js +751 -272
  150. package/lib/cli/extension.js +47 -20
  151. package/lib/cli/parser.js +267 -95
  152. package/lib/cli/plugin-command.js +122 -22
  153. package/lib/cli/utils.js +24 -10
  154. package/lib/config-file.js +220 -0
  155. package/lib/config.js +243 -132
  156. package/lib/constants.js +79 -0
  157. package/lib/extension/driver-config.js +247 -0
  158. package/lib/extension/extension-config.js +709 -0
  159. package/lib/extension/index.js +116 -0
  160. package/lib/extension/manifest-migrations.js +136 -0
  161. package/lib/extension/manifest.js +580 -0
  162. package/lib/extension/package-changed.js +64 -0
  163. package/lib/extension/plugin-config.js +112 -0
  164. package/lib/grid-register.js +49 -35
  165. package/lib/logger.js +1 -2
  166. package/lib/logsink.js +59 -36
  167. package/lib/main.js +369 -104
  168. package/lib/schema/arg-spec.js +229 -0
  169. package/lib/schema/cli-args.js +241 -0
  170. package/lib/schema/cli-transformers.js +119 -0
  171. package/lib/schema/index.js +2 -0
  172. package/lib/schema/keywords.js +136 -0
  173. package/lib/schema/schema.js +725 -0
  174. package/lib/utils.js +289 -167
  175. package/package.json +84 -83
  176. package/plugin.d.ts +1 -0
  177. package/plugin.js +13 -0
  178. package/scripts/autoinstall-extensions.js +243 -0
  179. package/support.d.ts +1 -0
  180. package/support.js +13 -0
  181. package/tsconfig.json +25 -0
  182. package/types/cli.ts +193 -0
  183. package/types/index.ts +20 -0
  184. package/types/manifest/README.md +30 -0
  185. package/types/manifest/base.ts +158 -0
  186. package/types/manifest/index.ts +28 -0
  187. package/types/manifest/v3.ts +161 -0
  188. package/types/manifest/v4.ts +161 -0
  189. package/CHANGELOG.md +0 -3594
  190. package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
  191. package/build/lib/cli/argparse-actions.js +0 -104
  192. package/build/lib/cli/npm.js +0 -200
  193. package/build/lib/cli/parser-helpers.js +0 -93
  194. package/build/lib/driver-config.js +0 -77
  195. package/build/lib/drivers.js +0 -99
  196. package/build/lib/extension-config.js +0 -253
  197. package/build/lib/plugin-config.js +0 -59
  198. package/build/lib/plugins.js +0 -14
  199. package/lib/cli/argparse-actions.js +0 -77
  200. package/lib/cli/npm.js +0 -175
  201. package/lib/cli/parser-helpers.js +0 -91
  202. package/lib/driver-config.js +0 -46
  203. package/lib/drivers.js +0 -84
  204. package/lib/extension-config.js +0 -209
  205. package/lib/plugin-config.js +0 -34
  206. package/lib/plugins.js +0 -10
@@ -1,71 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /* eslint no-console:0 */
4
-
5
- /*
6
- * Small tool, launching and monitoring ios-web-kit-proxy, and relaunching
7
- * on predefined errors.
8
- *
9
- * Usage:
10
- * ./bin/ios-webkit-debug-proxy-launcher.js [args]
11
- * args: ios-webkit-debug-proxy args (they will be passed over)
12
- *
13
- * Example:
14
- * ./bin/ios-webkit-debug-proxy-launcher.js -c <UDID>:27753 -d
15
- *
16
- * Note:
17
- * For iOS8.1 try this first:
18
- * brew install --HEAD ideviceinstaller
19
- */
20
-
21
- 'use strict';
22
-
23
- const spawn = require('child_process').spawn;
24
- const _ = require('lodash');
25
-
26
- const args = process.argv.slice(2);
27
-
28
- const RESTART_ON_MESSAGES = [
29
- 'Invalid message _rpc_applicationUpdated',
30
- 'Invalid message _rpc_applicationSentListing'];
31
-
32
- const PROXY_CMD = 'ios_webkit_debug_proxy';
33
- let proxy;
34
-
35
- const handleKillProcess = function (exitCode) {
36
- console.log('\nKilling proxy process!');
37
- proxy.kill('SIGTERM');
38
- process.exit((exitCode || 0));
39
- };
40
-
41
- const startProxy = function () {
42
- console.log(`RUNNING: ${PROXY_CMD} ${args.join(' ')}`);
43
-
44
- proxy = spawn(PROXY_CMD, args);
45
-
46
- proxy.stdout.on('data', function onStdout (data) {
47
- console.log(`stdout: ${data}`);
48
- });
49
-
50
- proxy.stderr.on('data', function onStderr (data) {
51
- console.log(`stderr: ${data}`);
52
- const restartMessage = _(RESTART_ON_MESSAGES).find(function findMessage (message) {
53
- return ('' + data).indexOf(message) >= 0;
54
- });
55
- if (restartMessage) {
56
- console.log(`Detected error message: ${restartMessage}`);
57
- console.log('Killing proxy!');
58
- proxy.kill('SIGTERM');
59
- process.nextTick(startProxy);
60
- }
61
- });
62
-
63
- proxy.on('close', function onClose (code) {
64
- console.log(`Child process exited with code ${code}`);
65
- });
66
- };
67
-
68
- process.on('SIGINT', handleKillProcess);
69
- process.on('SIGTERM', handleKillProcess);
70
-
71
- startProxy();
@@ -1,104 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DEFAULT_CAPS_ARG = exports.StoreDeprecatedDefaultCapabilityTrueAction = exports.StoreDeprecatedDefaultCapabilityAction = exports.StoreDeprecatedTrueAction = exports.StoreDeprecatedAction = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _argparse = require("argparse");
11
-
12
- const DEFAULT_CAPS_ARG = '--default-capabilities';
13
- exports.DEFAULT_CAPS_ARG = DEFAULT_CAPS_ARG;
14
-
15
- class StoreDeprecatedAction extends _argparse.Action {
16
- constructor(options = {}) {
17
- const opts = Object.assign({}, options);
18
- let helpPrefix = '[DEPRECATED]';
19
-
20
- if (opts.deprecated_for) {
21
- helpPrefix = `[DEPRECATED, use ${opts.deprecated_for} instead]`;
22
- delete opts.deprecated_for;
23
- }
24
-
25
- if (opts.help) {
26
- opts.help = `${helpPrefix} - ${opts.help}`;
27
- } else {
28
- opts.help = helpPrefix;
29
- }
30
-
31
- super(opts);
32
- }
33
-
34
- call(parser, namespace, values) {
35
- namespace[this.dest] = values;
36
- }
37
-
38
- }
39
-
40
- exports.StoreDeprecatedAction = StoreDeprecatedAction;
41
-
42
- class StoreDeprecatedTrueAction extends StoreDeprecatedAction {
43
- constructor(options = {}) {
44
- super(Object.assign({}, options, {
45
- const: true,
46
- nargs: 0
47
- }));
48
- }
49
-
50
- call(parser, namespace) {
51
- namespace[this.dest] = this.const;
52
- }
53
-
54
- }
55
-
56
- exports.StoreDeprecatedTrueAction = StoreDeprecatedTrueAction;
57
-
58
- class StoreDeprecatedDefaultCapabilityAction extends StoreDeprecatedAction {
59
- constructor(options = {}) {
60
- super(Object.assign({}, options, {
61
- deprecated_for: DEFAULT_CAPS_ARG
62
- }));
63
- }
64
-
65
- _writeDefaultCap(namespace, value) {
66
- namespace[this.dest] = value;
67
-
68
- if (value === this.default) {
69
- return;
70
- }
71
-
72
- if (!namespace.defaultCapabilities) {
73
- namespace.defaultCapabilities = {};
74
- }
75
-
76
- namespace.defaultCapabilities[this.dest] = value;
77
- }
78
-
79
- call(parser, namespace, values) {
80
- this._writeDefaultCap(namespace, values);
81
- }
82
-
83
- }
84
-
85
- exports.StoreDeprecatedDefaultCapabilityAction = StoreDeprecatedDefaultCapabilityAction;
86
-
87
- class StoreDeprecatedDefaultCapabilityTrueAction extends StoreDeprecatedDefaultCapabilityAction {
88
- constructor(options = {}) {
89
- super(Object.assign({}, options, {
90
- const: true,
91
- nargs: 0
92
- }));
93
- }
94
-
95
- call(parser, namespace) {
96
- this._writeDefaultCap(namespace, this.const);
97
- }
98
-
99
- }
100
-
101
- exports.StoreDeprecatedDefaultCapabilityTrueAction = StoreDeprecatedDefaultCapabilityTrueAction;require('source-map-support').install();
102
-
103
-
104
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jbGkvYXJncGFyc2UtYWN0aW9ucy5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0NBUFNfQVJHIiwiU3RvcmVEZXByZWNhdGVkQWN0aW9uIiwiQWN0aW9uIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsImhlbHBQcmVmaXgiLCJkZXByZWNhdGVkX2ZvciIsImhlbHAiLCJjYWxsIiwicGFyc2VyIiwibmFtZXNwYWNlIiwidmFsdWVzIiwiZGVzdCIsIlN0b3JlRGVwcmVjYXRlZFRydWVBY3Rpb24iLCJjb25zdCIsIm5hcmdzIiwiU3RvcmVEZXByZWNhdGVkRGVmYXVsdENhcGFiaWxpdHlBY3Rpb24iLCJfd3JpdGVEZWZhdWx0Q2FwIiwidmFsdWUiLCJkZWZhdWx0IiwiZGVmYXVsdENhcGFiaWxpdGllcyIsIlN0b3JlRGVwcmVjYXRlZERlZmF1bHRDYXBhYmlsaXR5VHJ1ZUFjdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBR0EsTUFBTUEsZ0JBQWdCLEdBQUcsd0JBQXpCOzs7QUFHQSxNQUFNQyxxQkFBTixTQUFvQ0MsZ0JBQXBDLENBQTJDO0FBQ3pDQyxFQUFBQSxXQUFXLENBQUVDLE9BQU8sR0FBRyxFQUFaLEVBQWdCO0FBQ3pCLFVBQU1DLElBQUksR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQkgsT0FBbEIsQ0FBYjtBQUNBLFFBQUlJLFVBQVUsR0FBRyxjQUFqQjs7QUFDQSxRQUFJSCxJQUFJLENBQUNJLGNBQVQsRUFBeUI7QUFDdkJELE1BQUFBLFVBQVUsR0FBSSxvQkFBbUJILElBQUksQ0FBQ0ksY0FBZSxXQUFyRDtBQUNBLGFBQU9KLElBQUksQ0FBQ0ksY0FBWjtBQUNEOztBQUNELFFBQUlKLElBQUksQ0FBQ0ssSUFBVCxFQUFlO0FBQ2JMLE1BQUFBLElBQUksQ0FBQ0ssSUFBTCxHQUFhLEdBQUVGLFVBQVcsTUFBS0gsSUFBSSxDQUFDSyxJQUFLLEVBQXpDO0FBQ0QsS0FGRCxNQUVPO0FBQ0xMLE1BQUFBLElBQUksQ0FBQ0ssSUFBTCxHQUFZRixVQUFaO0FBQ0Q7O0FBQ0QsVUFBTUgsSUFBTjtBQUNEOztBQUVETSxFQUFBQSxJQUFJLENBQUVDLE1BQUYsRUFBVUMsU0FBVixFQUFxQkMsTUFBckIsRUFBNkI7QUFDL0JELElBQUFBLFNBQVMsQ0FBQyxLQUFLRSxJQUFOLENBQVQsR0FBdUJELE1BQXZCO0FBQ0Q7O0FBbEJ3Qzs7OztBQXNCM0MsTUFBTUUseUJBQU4sU0FBd0NmLHFCQUF4QyxDQUE4RDtBQUM1REUsRUFBQUEsV0FBVyxDQUFFQyxPQUFPLEdBQUcsRUFBWixFQUFnQjtBQUN6QixVQUFNRSxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCSCxPQUFsQixFQUEyQjtBQUFDYSxNQUFBQSxLQUFLLEVBQUUsSUFBUjtBQUFjQyxNQUFBQSxLQUFLLEVBQUU7QUFBckIsS0FBM0IsQ0FBTjtBQUNEOztBQUVEUCxFQUFBQSxJQUFJLENBQUVDLE1BQUYsRUFBVUMsU0FBVixFQUFxQjtBQUN2QkEsSUFBQUEsU0FBUyxDQUFDLEtBQUtFLElBQU4sQ0FBVCxHQUF1QixLQUFLRSxLQUE1QjtBQUNEOztBQVAyRDs7OztBQVc5RCxNQUFNRSxzQ0FBTixTQUFxRGxCLHFCQUFyRCxDQUEyRTtBQUN6RUUsRUFBQUEsV0FBVyxDQUFFQyxPQUFPLEdBQUcsRUFBWixFQUFnQjtBQUN6QixVQUFNRSxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCSCxPQUFsQixFQUEyQjtBQUFDSyxNQUFBQSxjQUFjLEVBQUVUO0FBQWpCLEtBQTNCLENBQU47QUFDRDs7QUFFRG9CLEVBQUFBLGdCQUFnQixDQUFFUCxTQUFGLEVBQWFRLEtBQWIsRUFBb0I7QUFDbENSLElBQUFBLFNBQVMsQ0FBQyxLQUFLRSxJQUFOLENBQVQsR0FBdUJNLEtBQXZCOztBQUNBLFFBQUlBLEtBQUssS0FBSyxLQUFLQyxPQUFuQixFQUE0QjtBQUMxQjtBQUNEOztBQUVELFFBQUksQ0FBQ1QsU0FBUyxDQUFDVSxtQkFBZixFQUFvQztBQUNsQ1YsTUFBQUEsU0FBUyxDQUFDVSxtQkFBVixHQUFnQyxFQUFoQztBQUNEOztBQUNEVixJQUFBQSxTQUFTLENBQUNVLG1CQUFWLENBQThCLEtBQUtSLElBQW5DLElBQTJDTSxLQUEzQztBQUNEOztBQUVEVixFQUFBQSxJQUFJLENBQUVDLE1BQUYsRUFBVUMsU0FBVixFQUFxQkMsTUFBckIsRUFBNkI7QUFDL0IsU0FBS00sZ0JBQUwsQ0FBc0JQLFNBQXRCLEVBQWlDQyxNQUFqQztBQUNEOztBQW5Cd0U7Ozs7QUF1QjNFLE1BQU1VLDBDQUFOLFNBQXlETCxzQ0FBekQsQ0FBZ0c7QUFDOUZoQixFQUFBQSxXQUFXLENBQUVDLE9BQU8sR0FBRyxFQUFaLEVBQWdCO0FBQ3pCLFVBQU1FLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JILE9BQWxCLEVBQTJCO0FBQUNhLE1BQUFBLEtBQUssRUFBRSxJQUFSO0FBQWNDLE1BQUFBLEtBQUssRUFBRTtBQUFyQixLQUEzQixDQUFOO0FBQ0Q7O0FBRURQLEVBQUFBLElBQUksQ0FBRUMsTUFBRixFQUFVQyxTQUFWLEVBQXFCO0FBQ3ZCLFNBQUtPLGdCQUFMLENBQXNCUCxTQUF0QixFQUFpQyxLQUFLSSxLQUF0QztBQUNEOztBQVA2RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ2FyZ3BhcnNlJztcblxuXG5jb25zdCBERUZBVUxUX0NBUFNfQVJHID0gJy0tZGVmYXVsdC1jYXBhYmlsaXRpZXMnO1xuXG5cbmNsYXNzIFN0b3JlRGVwcmVjYXRlZEFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yIChvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBvcHRzID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XG4gICAgbGV0IGhlbHBQcmVmaXggPSAnW0RFUFJFQ0FURURdJztcbiAgICBpZiAob3B0cy5kZXByZWNhdGVkX2Zvcikge1xuICAgICAgaGVscFByZWZpeCA9IGBbREVQUkVDQVRFRCwgdXNlICR7b3B0cy5kZXByZWNhdGVkX2Zvcn0gaW5zdGVhZF1gO1xuICAgICAgZGVsZXRlIG9wdHMuZGVwcmVjYXRlZF9mb3I7XG4gICAgfVxuICAgIGlmIChvcHRzLmhlbHApIHtcbiAgICAgIG9wdHMuaGVscCA9IGAke2hlbHBQcmVmaXh9IC0gJHtvcHRzLmhlbHB9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0cy5oZWxwID0gaGVscFByZWZpeDtcbiAgICB9XG4gICAgc3VwZXIob3B0cyk7XG4gIH1cblxuICBjYWxsIChwYXJzZXIsIG5hbWVzcGFjZSwgdmFsdWVzKSB7XG4gICAgbmFtZXNwYWNlW3RoaXMuZGVzdF0gPSB2YWx1ZXM7XG4gIH1cbn1cblxuXG5jbGFzcyBTdG9yZURlcHJlY2F0ZWRUcnVlQWN0aW9uIGV4dGVuZHMgU3RvcmVEZXByZWNhdGVkQWN0aW9uIHtcbiAgY29uc3RydWN0b3IgKG9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMsIHtjb25zdDogdHJ1ZSwgbmFyZ3M6IDB9KSk7XG4gIH1cblxuICBjYWxsIChwYXJzZXIsIG5hbWVzcGFjZSkge1xuICAgIG5hbWVzcGFjZVt0aGlzLmRlc3RdID0gdGhpcy5jb25zdDtcbiAgfVxufVxuXG5cbmNsYXNzIFN0b3JlRGVwcmVjYXRlZERlZmF1bHRDYXBhYmlsaXR5QWN0aW9uIGV4dGVuZHMgU3RvcmVEZXByZWNhdGVkQWN0aW9uIHtcbiAgY29uc3RydWN0b3IgKG9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMsIHtkZXByZWNhdGVkX2ZvcjogREVGQVVMVF9DQVBTX0FSR30pKTtcbiAgfVxuXG4gIF93cml0ZURlZmF1bHRDYXAgKG5hbWVzcGFjZSwgdmFsdWUpIHtcbiAgICBuYW1lc3BhY2VbdGhpcy5kZXN0XSA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5kZWZhdWx0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFuYW1lc3BhY2UuZGVmYXVsdENhcGFiaWxpdGllcykge1xuICAgICAgbmFtZXNwYWNlLmRlZmF1bHRDYXBhYmlsaXRpZXMgPSB7fTtcbiAgICB9XG4gICAgbmFtZXNwYWNlLmRlZmF1bHRDYXBhYmlsaXRpZXNbdGhpcy5kZXN0XSA9IHZhbHVlO1xuICB9XG5cbiAgY2FsbCAocGFyc2VyLCBuYW1lc3BhY2UsIHZhbHVlcykge1xuICAgIHRoaXMuX3dyaXRlRGVmYXVsdENhcChuYW1lc3BhY2UsIHZhbHVlcyk7XG4gIH1cbn1cblxuXG5jbGFzcyBTdG9yZURlcHJlY2F0ZWREZWZhdWx0Q2FwYWJpbGl0eVRydWVBY3Rpb24gZXh0ZW5kcyBTdG9yZURlcHJlY2F0ZWREZWZhdWx0Q2FwYWJpbGl0eUFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yIChvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLCB7Y29uc3Q6IHRydWUsIG5hcmdzOiAwfSkpO1xuICB9XG5cbiAgY2FsbCAocGFyc2VyLCBuYW1lc3BhY2UpIHtcbiAgICB0aGlzLl93cml0ZURlZmF1bHRDYXAobmFtZXNwYWNlLCB0aGlzLmNvbnN0KTtcbiAgfVxufVxuXG5leHBvcnQge1xuICBTdG9yZURlcHJlY2F0ZWRBY3Rpb24sIFN0b3JlRGVwcmVjYXRlZFRydWVBY3Rpb24sXG4gIFN0b3JlRGVwcmVjYXRlZERlZmF1bHRDYXBhYmlsaXR5QWN0aW9uLCBTdG9yZURlcHJlY2F0ZWREZWZhdWx0Q2FwYWJpbGl0eVRydWVBY3Rpb24sXG4gIERFRkFVTFRfQ0FQU19BUkcsXG59O1xuIl0sImZpbGUiOiJsaWIvY2xpL2FyZ3BhcnNlLWFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -1,200 +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.default = void 0;
9
-
10
- require("source-map-support/register");
11
-
12
- var _path = _interopRequireDefault(require("path"));
13
-
14
- var _semver = _interopRequireDefault(require("semver"));
15
-
16
- var _teen_process = require("teen_process");
17
-
18
- var _appiumSupport = require("appium-support");
19
-
20
- const INSTALL_LOCKFILE = '.appium.install.lock';
21
- const LINK_LOCKFILE = '.appium.link.lock';
22
-
23
- class NPM {
24
- constructor(appiumHome) {
25
- this.appiumHome = appiumHome;
26
- }
27
-
28
- async exec(cmd, args, opts, execOpts = {}) {
29
- let {
30
- cwd,
31
- json,
32
- lockFile
33
- } = opts;
34
-
35
- if (!cwd) {
36
- cwd = this.appiumHome;
37
- }
38
-
39
- await (0, _appiumSupport.mkdirp)(cwd);
40
- execOpts = { ...execOpts,
41
- cwd
42
- };
43
- args.unshift(cmd);
44
-
45
- if (json) {
46
- args.push('-json');
47
- }
48
-
49
- const npmCmd = _appiumSupport.system.isWindows() ? 'npm.cmd' : 'npm';
50
-
51
- let runner = async () => await (0, _teen_process.exec)(npmCmd, args, execOpts);
52
-
53
- if (lockFile) {
54
- const acquireLock = _appiumSupport.util.getLockFileGuard(_path.default.resolve(cwd, lockFile));
55
-
56
- const _runner = runner;
57
-
58
- runner = async () => await acquireLock(_runner);
59
- }
60
-
61
- const {
62
- stdout,
63
- stderr,
64
- code
65
- } = await runner();
66
- const ret = {
67
- stdout,
68
- stderr,
69
- code,
70
- json: null
71
- };
72
-
73
- if (json) {
74
- try {
75
- ret.json = JSON.parse(stdout);
76
- } catch (ign) {}
77
- }
78
-
79
- return ret;
80
- }
81
-
82
- async getLatestVersion(pkg) {
83
- return (await this.exec('view', [pkg, 'dist-tags'], {
84
- json: true
85
- })).json.latest;
86
- }
87
-
88
- async getLatestSafeUpgradeVersion(pkg, curVersion) {
89
- const allVersions = (await this.exec('view', [pkg, 'versions'], {
90
- json: true
91
- })).json;
92
- return this.getLatestSafeUpgradeFromVersions(curVersion, allVersions);
93
- }
94
-
95
- getLatestSafeUpgradeFromVersions(curVersion, allVersions) {
96
- let safeUpgradeVer = null;
97
-
98
- const curSemver = _semver.default.parse(curVersion);
99
-
100
- if (curSemver === null) {
101
- throw new Error(`Could not parse current version '${curVersion}'`);
102
- }
103
-
104
- for (const testVer of allVersions) {
105
- const testSemver = _semver.default.parse(testVer);
106
-
107
- if (testSemver === null) {
108
- throw new Error(`Could not parse version to test against: '${testVer}'`);
109
- }
110
-
111
- if (testSemver.prerelease.length > 0) {
112
- continue;
113
- }
114
-
115
- if (curSemver.compare(testSemver) === 1) {
116
- continue;
117
- }
118
-
119
- if (testSemver.major > curSemver.major) {
120
- continue;
121
- }
122
-
123
- if (safeUpgradeVer === null || testSemver.compare(safeUpgradeVer) === 1) {
124
- safeUpgradeVer = testSemver;
125
- }
126
- }
127
-
128
- if (safeUpgradeVer) {
129
- safeUpgradeVer = safeUpgradeVer.format();
130
- }
131
-
132
- return safeUpgradeVer;
133
- }
134
-
135
- async installPackage({
136
- pkgDir,
137
- pkgName,
138
- pkgVer
139
- }) {
140
- const res = await this.exec('install', ['--no-save', '--no-package-lock', pkgVer ? `${pkgName}@${pkgVer}` : pkgName], {
141
- cwd: pkgDir,
142
- json: true,
143
- lockFile: INSTALL_LOCKFILE
144
- });
145
-
146
- if (res.json) {
147
- if (res.json.error) {
148
- throw new Error(res.json.error);
149
- }
150
- }
151
-
152
- const pkgJson = _path.default.resolve(pkgDir, 'node_modules', pkgName, 'package.json');
153
-
154
- try {
155
- return require(pkgJson);
156
- } catch {
157
- throw new Error('The package was not downloaded correctly; its package.json ' + 'did not exist or was unreadable. We looked for it at ' + pkgJson);
158
- }
159
- }
160
-
161
- async linkPackage(pkgPath) {
162
- let pkgName;
163
-
164
- try {
165
- pkgName = require(_path.default.resolve(pkgPath, 'package.json')).name;
166
- } catch {
167
- throw new Error('Could not find package.json inside the package path ' + `provided: ${pkgPath}`);
168
- }
169
-
170
- const pkgHome = _path.default.resolve(this.appiumHome, pkgName);
171
-
172
- const res = await this.exec('link', [pkgPath], {
173
- cwd: pkgHome,
174
- lockFile: LINK_LOCKFILE
175
- });
176
-
177
- if (res.json && res.json.error) {
178
- throw new Error(res.json.error);
179
- }
180
-
181
- try {
182
- return require(_path.default.resolve(pkgHome, 'node_modules', pkgName, 'package.json'));
183
- } catch {
184
- throw new Error('The package was not linked correctly; its package.json ' + 'did not exist or was unreadable');
185
- }
186
- }
187
-
188
- async uninstallPackage(pkgDir, pkg) {
189
- await this.exec('uninstall', [pkg], {
190
- cwd: pkgDir,
191
- lockFile: INSTALL_LOCKFILE
192
- });
193
- }
194
-
195
- }
196
-
197
- exports.default = NPM;require('source-map-support').install();
198
-
199
-
200
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jbGkvbnBtLmpzIl0sIm5hbWVzIjpbIklOU1RBTExfTE9DS0ZJTEUiLCJMSU5LX0xPQ0tGSUxFIiwiTlBNIiwiY29uc3RydWN0b3IiLCJhcHBpdW1Ib21lIiwiZXhlYyIsImNtZCIsImFyZ3MiLCJvcHRzIiwiZXhlY09wdHMiLCJjd2QiLCJqc29uIiwibG9ja0ZpbGUiLCJ1bnNoaWZ0IiwicHVzaCIsIm5wbUNtZCIsInN5c3RlbSIsImlzV2luZG93cyIsInJ1bm5lciIsImFjcXVpcmVMb2NrIiwidXRpbCIsImdldExvY2tGaWxlR3VhcmQiLCJwYXRoIiwicmVzb2x2ZSIsIl9ydW5uZXIiLCJzdGRvdXQiLCJzdGRlcnIiLCJjb2RlIiwicmV0IiwiSlNPTiIsInBhcnNlIiwiaWduIiwiZ2V0TGF0ZXN0VmVyc2lvbiIsInBrZyIsImxhdGVzdCIsImdldExhdGVzdFNhZmVVcGdyYWRlVmVyc2lvbiIsImN1clZlcnNpb24iLCJhbGxWZXJzaW9ucyIsImdldExhdGVzdFNhZmVVcGdyYWRlRnJvbVZlcnNpb25zIiwic2FmZVVwZ3JhZGVWZXIiLCJjdXJTZW12ZXIiLCJzZW12ZXIiLCJFcnJvciIsInRlc3RWZXIiLCJ0ZXN0U2VtdmVyIiwicHJlcmVsZWFzZSIsImxlbmd0aCIsImNvbXBhcmUiLCJtYWpvciIsImZvcm1hdCIsImluc3RhbGxQYWNrYWdlIiwicGtnRGlyIiwicGtnTmFtZSIsInBrZ1ZlciIsInJlcyIsImVycm9yIiwicGtnSnNvbiIsInJlcXVpcmUiLCJsaW5rUGFja2FnZSIsInBrZ1BhdGgiLCJuYW1lIiwicGtnSG9tZSIsInVuaW5zdGFsbFBhY2thZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsZ0JBQWdCLEdBQUcsc0JBQXpCO0FBQ0EsTUFBTUMsYUFBYSxHQUFHLG1CQUF0Qjs7QUFFZSxNQUFNQyxHQUFOLENBQVU7QUFFdkJDLEVBQUFBLFdBQVcsQ0FBRUMsVUFBRixFQUFj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R0FBRyxDQUFDM0MsSUFBSixJQUFZMkMsR0FBRyxDQUFDM0MsSUFBSixDQUFTNEMsS0FBekIsRUFBZ0M7QUFDOUIsWUFBTSxJQUFJYixLQUFKLENBQVVZLEdBQUcsQ0FBQzNDLElBQUosQ0FBUzRDLEtBQW5CLENBQU47QUFDRDs7QUFHRCxRQUFJO0FBQ0YsYUFBT0UsT0FBTyxDQUFDbkMsY0FBS0MsT0FBTCxDQUFhc0MsT0FBYixFQUFzQixjQUF0QixFQUFzQ1QsT0FBdEMsRUFBK0MsY0FBL0MsQ0FBRCxDQUFkO0FBQ0QsS0FGRCxDQUVFLE1BQU07QUFDTixZQUFNLElBQUlWLEtBQUosQ0FBVSw0REFDQSxpQ0FEVixDQUFOO0FBRUQ7QUFDRjs7QUFFRCxRQUFNb0IsZ0JBQU4sQ0FBd0JYLE1BQXhCLEVBQWdDbEIsR0FBaEMsRUFBcUM7QUFDbkMsVUFBTSxLQUFLNUIsSUFBTCxDQUFVLFdBQVYsRUFBdUIsQ0FBQzRCLEdBQUQsQ0FBdkIsRUFBOEI7QUFDbEN2QixNQUFBQSxHQUFHLEVBQUV5QyxNQUQ2QjtBQUVsQ3ZDLE1BQUFBLFFBQVEsRUFBRVo7QUFGd0IsS0FBOUIsQ0FBTjtBQUlEOztBQXJLc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgbWtkaXJwLCB1dGlsLCBzeXN0ZW0gfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5cbmNvbnN0IElOU1RBTExfTE9DS0ZJTEUgPSAnLmFwcGl1bS5pbnN0YWxsLmxvY2snO1xuY29uc3QgTElOS19MT0NLRklMRSA9ICcuYXBwaXVtLmxpbmsubG9jayc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5QTSB7XG5cbiAgY29uc3RydWN0b3IgKGFwcGl1bUhvbWUpIHtcbiAgICB0aGlzLmFwcGl1bUhvbWUgPSBhcHBpdW1Ib21lO1xuICB9XG5cbiAgYXN5bmMgZXhlYyAoY21kLCBhcmdzLCBvcHRzLCBleGVjT3B0cyA9IHt9KSB7XG4gICAgbGV0IHsgY3dkLCBqc29uLCBsb2NrRmlsZSB9ID0gb3B0cztcbiAgICBpZiAoIWN3ZCkge1xuICAgICAgY3dkID0gdGhpcy5hcHBpdW1Ib21lO1xuICAgIH1cbiAgICAvLyBlbnN1cmUgdGhlIGRpcmVjdG9yeSB3ZSB3YW50IHRvIGluc3RhbGwgaW5zaWRlIG9mIGV4aXN0c1xuICAgIGF3YWl0IG1rZGlycChjd2QpO1xuXG4gICAgLy8gbWFrZSBzdXJlIHdlIHBlcmZvcm0gdGhlIGN1cnJlbnQgb3BlcmF0aW9uIGluIGN3ZFxuICAgIGV4ZWNPcHRzID0gey4uLmV4ZWNPcHRzLCBjd2R9O1xuXG4gICAgYXJncy51bnNoaWZ0KGNtZCk7XG4gICAgaWYgKGpzb24pIHtcbiAgICAgIGFyZ3MucHVzaCgnLWpzb24nKTtcbiAgICB9XG4gICAgY29uc3QgbnBtQ21kID0gc3lzdGVtLmlzV2luZG93cygpID8gJ25wbS5jbWQnIDogJ25wbSc7XG4gICAgbGV0IHJ1bm5lciA9IGFzeW5jICgpID0+IGF3YWl0IGV4ZWMobnBtQ21kLCBhcmdzLCBleGVjT3B0cyk7XG4gICAgaWYgKGxvY2tGaWxlKSB7XG4gICAgICBjb25zdCBhY3F1aXJlTG9jayA9IHV0aWwuZ2V0TG9ja0ZpbGVHdWFyZChwYXRoLnJlc29sdmUoY3dkLCBsb2NrRmlsZSkpO1xuICAgICAgY29uc3QgX3J1bm5lciA9IHJ1bm5lcjtcbiAgICAgIHJ1bm5lciA9IGFzeW5jICgpID0+IGF3YWl0IGFjcXVpcmVMb2NrKF9ydW5uZXIpO1xuICAgIH1cbiAgICBjb25zdCB7c3Rkb3V0LCBzdGRlcnIsIGNvZGV9ID0gYXdhaXQgcnVubmVyKCk7XG4gICAgY29uc3QgcmV0ID0ge3N0ZG91dCwgc3RkZXJyLCBjb2RlLCBqc29uOiBudWxsfTtcblxuICAgIGlmIChqc29uKSB7XG4gICAgICAvLyBpZiBwb3NzaWJsZSwgcGFyc2UgTlBNJ3MganNvbiBvdXRwdXQuIER1cmluZyBOUE0gaW5zdGFsbCAzcmQtcGFydHlcbiAgICAgIC8vIHBhY2thZ2VzIGNhbiB3cml0ZSB0byBzdGRvdXQsIHNvIHNvbWV0aW1lcyB0aGUganNvbiBvdXRwdXQgY2FuJ3QgYmVcbiAgICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgcGFyc2VhYmxlXG4gICAgICB0cnkge1xuICAgICAgICByZXQuanNvbiA9IEpTT04ucGFyc2Uoc3Rkb3V0KTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgYXN5bmMgZ2V0TGF0ZXN0VmVyc2lvbiAocGtnKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmV4ZWMoJ3ZpZXcnLCBbcGtnLCAnZGlzdC10YWdzJ10sIHtcbiAgICAgIGpzb246IHRydWVcbiAgICB9KSkuanNvbi5sYXRlc3Q7XG4gIH1cblxuICBhc3luYyBnZXRMYXRlc3RTYWZlVXBncmFkZVZlcnNpb24gKHBrZywgY3VyVmVyc2lvbikge1xuICAgIGNvbnN0IGFsbFZlcnNpb25zID0gKGF3YWl0IHRoaXMuZXhlYygndmlldycsIFtwa2csICd2ZXJzaW9ucyddLCB7XG4gICAgICBqc29uOiB0cnVlXG4gICAgfSkpLmpzb247XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVGcm9tVmVyc2lvbnMoY3VyVmVyc2lvbiwgYWxsVmVyc2lvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgY3VycmVudCB2ZXJzaW9uIGFuZCBhIGxpc3Qgb2YgYWxsIHZlcnNpb25zIGZvciBhIHBhY2thZ2UsIHJldHVybiB0aGUgdmVyc2lvbiB3aGljaCBpc1xuICAgKiB0aGUgaGlnaGVzdCBzYWZlbHktdXBncmFkYWJsZSB2ZXJzaW9uIChtZWFuaW5nIG5vdCBjcm9zc2luZyBhbnkgbWFqb3IgcmV2aXNpb24gYm91bmRhcmllcywgYW5kXG4gICAqIG5vdCBpbmNsdWRpbmcgYW55IGFscGhhL2JldGEvcmMgdmVyc2lvbnMpXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjdXJWZXJzaW9uIC0gdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBhIHBhY2thZ2VcbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBhbGxWZXJzaW9ucyAtIGEgbGlzdCBvZiB2ZXJzaW9uIHN0cmluZ3NcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfG51bGx9IC0gdGhlIGhpZ2hlc3Qgc2FmZWx5LXVwZ3JhZGFibGUgdmVyc2lvbiwgb3IgbnVsbCBpZiB0aGVyZSBpc24ndCBvbmVcbiAgICovXG4gIGdldExhdGVzdFNhZmVVcGdyYWRlRnJvbVZlcnNpb25zIChjdXJWZXJzaW9uLCBhbGxWZXJzaW9ucykge1xuICAgIGxldCBzYWZlVXBncmFkZVZlciA9IG51bGw7XG4gICAgY29uc3QgY3VyU2VtdmVyID0gc2VtdmVyLnBhcnNlKGN1clZlcnNpb24pO1xuICAgIGlmIChjdXJTZW12ZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHBhcnNlIGN1cnJlbnQgdmVyc2lvbiAnJHtjdXJWZXJzaW9ufSdgKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB0ZXN0VmVyIG9mIGFsbFZlcnNpb25zKSB7XG4gICAgICBjb25zdCB0ZXN0U2VtdmVyID0gc2VtdmVyLnBhcnNlKHRlc3RWZXIpO1xuICAgICAgaWYgKHRlc3RTZW12ZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgcGFyc2UgdmVyc2lvbiB0byB0ZXN0IGFnYWluc3Q6ICcke3Rlc3RWZXJ9J2ApO1xuICAgICAgfVxuICAgICAgLy8gaWYgdGhlIHRlc3QgdmVyc2lvbiBpcyBhIHByZXJlbGVhc2UsIGlnbm9yZSBpdFxuICAgICAgaWYgKHRlc3RTZW12ZXIucHJlcmVsZWFzZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgdmVyc2lvbiBpcyBsYXRlciB0aGFuIHRoZSB0ZXN0IHZlcnNpb24sIHNraXAgdGhpcyB0ZXN0IHZlcnNpb25cbiAgICAgIGlmIChjdXJTZW12ZXIuY29tcGFyZSh0ZXN0U2VtdmVyKSA9PT0gMSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSB0ZXN0IHZlcnNpb24gaXMgbmV3ZXIsIGJ1dCBjcm9zc2VzIGEgbWFqb3IgcmV2aXNpb24gYm91bmRhcnksIGFsc28gc2tpcCBpdFxuICAgICAgaWYgKHRlc3RTZW12ZXIubWFqb3IgPiBjdXJTZW12ZXIubWFqb3IpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBvdGhlcndpc2UgdGhpcyB2ZXJzaW9uIGlzIHNhZmUgdG8gdXBncmFkZSB0by4gQnV0IHRoZXJlIG1pZ2h0IGJlIG11bHRpcGxlIG9uZXMgb2YgdGhpc1xuICAgICAgLy8ga2luZCwgc28ga2VlcCBpdGVyYXRpbmcgYW5kIGtlZXBpbmcgdGhlIGhpZ2hlc3RcbiAgICAgIGlmIChzYWZlVXBncmFkZVZlciA9PT0gbnVsbCB8fCB0ZXN0U2VtdmVyLmNvbXBhcmUoc2FmZVVwZ3JhZGVWZXIpID09PSAxKSB7XG4gICAgICAgIHNhZmVVcGdyYWRlVmVyID0gdGVzdFNlbXZlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHNhZmVVcGdyYWRlVmVyKSB7XG4gICAgICBzYWZlVXBncmFkZVZlciA9IHNhZmVVcGdyYWRlVmVyLmZvcm1hdCgpO1xuICAgIH1cbiAgICByZXR1cm4gc2FmZVVwZ3JhZGVWZXI7XG4gIH1cblxuICBhc3luYyBpbnN0YWxsUGFja2FnZSAoe3BrZ0RpciwgcGtnTmFtZSwgcGtnVmVyfSkge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZXhlYygnaW5zdGFsbCcsIFtcbiAgICAgICctLW5vLXNhdmUnLFxuICAgICAgJy0tbm8tcGFja2FnZS1sb2NrJyxcbiAgICAgIHBrZ1ZlciA/IGAke3BrZ05hbWV9QCR7cGtnVmVyfWAgOiBwa2dOYW1lXG4gICAgXSwge1xuICAgICAgY3dkOiBwa2dEaXIsXG4gICAgICBqc29uOiB0cnVlLFxuICAgICAgbG9ja0ZpbGU6IElOU1RBTExfTE9DS0ZJTEVcbiAgICB9KTtcblxuICAgIGlmIChyZXMuanNvbikge1xuICAgICAgLy8gd2UgcGFyc2VkIGEgdmFsaWQganNvbiByZXNwb25zZSwgc28gaWYgd2UgZ290IGFuIGVycm9yIGhlcmUsIHJldHVybiB0aGF0XG4gICAgICAvLyBtZXNzYWdlIHN0cmFpZ2h0YXdheVxuICAgICAgaWYgKHJlcy5qc29uLmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMuanNvbi5lcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm93IHJlYWQgcGFja2FnZSBkYXRhIGZyb20gdGhlIGluc3RhbGxlZCBwYWNrYWdlIHRvIHJldHVybiwgYW5kIG1ha2Ugc3VyZVxuICAgIC8vIGV2ZXJ5dGhpbmcgZ290IGluc3RhbGxlZCBvay4gUmVtZW1iZXIsIHBrZ05hbWUgbWlnaHQgZW5kIHVwIHdpdGggYSAvIGluIGl0IGR1ZSB0byBhbiBucG1cbiAgICAvLyBvcmcsIHNvIGlmIHNvLCB0aGF0IHdpbGwgZ2V0IGNvcnJlY3RseSBleHBsb2RlZCBpbnRvIG11bHRpcGxlIGRpcmVjdG9yaWVzLCBieSBwYXRoLnJlc29sdmUgaGVyZVxuICAgIC8vIChldmVuIG9uIFdpbmRvd3MhKVxuICAgIGNvbnN0IHBrZ0pzb24gPSBwYXRoLnJlc29sdmUocGtnRGlyLCAnbm9kZV9tb2R1bGVzJywgcGtnTmFtZSwgJ3BhY2thZ2UuanNvbicpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcmVxdWlyZShwa2dKc29uKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHBhY2thZ2Ugd2FzIG5vdCBkb3dubG9hZGVkIGNvcnJlY3RseTsgaXRzIHBhY2thZ2UuanNvbiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAnZGlkIG5vdCBleGlzdCBvciB3YXMgdW5yZWFkYWJsZS4gV2UgbG9va2VkIGZvciBpdCBhdCAnICtcbiAgICAgICAgICAgICAgICAgICAgICBwa2dKc29uKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsaW5rUGFja2FnZSAocGtnUGF0aCkge1xuICAgIC8vIGZyb20gdGhlIHBhdGggYWxvbmUgd2UgZG9uJ3Qga25vdyB0aGUgbnBtIHBhY2thZ2UgbmFtZSwgc28gd2UgbmVlZCB0b1xuICAgIC8vIGxvb2sgaW4gcGFja2FnZS5qc29uXG4gICAgbGV0IHBrZ05hbWU7XG4gICAgdHJ5IHtcbiAgICAgIHBrZ05hbWUgPSByZXF1aXJlKHBhdGgucmVzb2x2ZShwa2dQYXRoLCAncGFja2FnZS5qc29uJykpLm5hbWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHBhY2thZ2UuanNvbiBpbnNpZGUgdGhlIHBhY2thZ2UgcGF0aCAnICtcbiAgICAgICAgICAgICAgICAgICAgICBgcHJvdmlkZWQ6ICR7cGtnUGF0aH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBwa2dIb21lID0gcGF0aC5yZXNvbHZlKHRoaXMuYXBwaXVtSG9tZSwgcGtnTmFtZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5leGVjKCdsaW5rJywgW3BrZ1BhdGhdLCB7Y3dkOiBwa2dIb21lLCBsb2NrRmlsZTogTElOS19MT0NLRklMRX0pO1xuICAgIGlmIChyZXMuanNvbiAmJiByZXMuanNvbi5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHJlcy5qc29uLmVycm9yKTtcbiAgICB9XG5cbiAgICAvLyBub3cgZW5zdXJlIGl0IHdhcyBsaW5rZWQgdG8gdGhlIGNvcnJlY3QgcGxhY2VcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlcXVpcmUocGF0aC5yZXNvbHZlKHBrZ0hvbWUsICdub2RlX21vZHVsZXMnLCBwa2dOYW1lLCAncGFja2FnZS5qc29uJykpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgcGFja2FnZSB3YXMgbm90IGxpbmtlZCBjb3JyZWN0bHk7IGl0cyBwYWNrYWdlLmpzb24gJyArXG4gICAgICAgICAgICAgICAgICAgICAgJ2RpZCBub3QgZXhpc3Qgb3Igd2FzIHVucmVhZGFibGUnKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1bmluc3RhbGxQYWNrYWdlIChwa2dEaXIsIHBrZykge1xuICAgIGF3YWl0IHRoaXMuZXhlYygndW5pbnN0YWxsJywgW3BrZ10sIHtcbiAgICAgIGN3ZDogcGtnRGlyLFxuICAgICAgbG9ja0ZpbGU6IElOU1RBTExfTE9DS0ZJTEVcbiAgICB9KTtcbiAgfVxufVxuIl0sImZpbGUiOiJsaWIvY2xpL25wbS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
@@ -1,93 +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.parseSecurityFeatures = parseSecurityFeatures;
9
- exports.parseDefaultCaps = parseDefaultCaps;
10
- exports.parseInstallTypes = parseInstallTypes;
11
- exports.parsePluginNames = parsePluginNames;
12
-
13
- require("source-map-support/register");
14
-
15
- var _fs = _interopRequireDefault(require("fs"));
16
-
17
- var _lodash = _interopRequireDefault(require("lodash"));
18
-
19
- var _extensionConfig = require("../extension-config");
20
-
21
- function parseSecurityFeatures(features) {
22
- const splitter = (splitOn, str) => `${str}`.split(splitOn).map(s => s.trim()).filter(Boolean);
23
-
24
- let parsedFeatures;
25
-
26
- try {
27
- parsedFeatures = splitter(',', features);
28
- } catch (err) {
29
- throw new TypeError('Could not parse value of --allow/deny-insecure. Should be ' + 'a list of strings separated by commas, or a path to a file ' + 'listing one feature name per line.');
30
- }
31
-
32
- if (parsedFeatures.length === 1 && _fs.default.existsSync(parsedFeatures[0])) {
33
- try {
34
- const fileFeatures = _fs.default.readFileSync(parsedFeatures[0], 'utf8');
35
-
36
- parsedFeatures = splitter('\n', fileFeatures);
37
- } catch (err) {
38
- throw new TypeError(`Attempted to read --allow/deny-insecure feature names ` + `from file ${parsedFeatures[0]} but got error: ${err.message}`);
39
- }
40
- }
41
-
42
- return parsedFeatures;
43
- }
44
-
45
- function parsePluginNames(names) {
46
- if (!_lodash.default.isString(names)) {
47
- throw new TypeError('To parse plugin names, names must be a CSV string');
48
- }
49
-
50
- try {
51
- return names.split(',').map(s => s.trim()).filter(Boolean);
52
- } catch (err) {
53
- throw new TypeError('Could not parse value of --plugins. Should be a list of plugin names ' + 'separated by commas. Plugin names are those found when running `appium ' + 'plugin list`');
54
- }
55
- }
56
-
57
- function parseDefaultCaps(capsOrPath) {
58
- let caps = capsOrPath;
59
- let loadedFromFile = false;
60
-
61
- try {
62
- if (_lodash.default.isString(capsOrPath) && _fs.default.statSync(capsOrPath).isFile()) {
63
- caps = _fs.default.readFileSync(capsOrPath, 'utf8');
64
- loadedFromFile = true;
65
- }
66
- } catch (err) {}
67
-
68
- try {
69
- const result = JSON.parse(caps);
70
-
71
- if (!_lodash.default.isPlainObject(result)) {
72
- throw new Error(`'${_lodash.default.truncate(result, {
73
- length: 100
74
- })}' is not an object`);
75
- }
76
-
77
- return result;
78
- } catch (e) {
79
- const msg = loadedFromFile ? `Default capabilities in '${capsOrPath}' must be a valid JSON` : `Default capabilities must be a valid JSON`;
80
- throw new TypeError(`${msg}. Original error: ${e.message}`);
81
- }
82
- }
83
-
84
- function parseInstallTypes(source) {
85
- if (!_lodash.default.includes(_extensionConfig.INSTALL_TYPES, source)) {
86
- throw `Argument to --source was '${source}', which is not a valid ` + `driver source type. It must be one of ${JSON.stringify(_extensionConfig.INSTALL_TYPES)}`;
87
- }
88
-
89
- return source;
90
- }require('source-map-support').install();
91
-
92
-
93
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jbGkvcGFyc2VyLWhlbHBlcnMuanMiXSwibmFtZXMiOlsicGFyc2VTZWN1cml0eUZlYXR1cmVzIiwiZmVhdHVyZXMiLCJzcGxpdHRlciIsInNwbGl0T24iLCJzdHIiLCJzcGxpdCIsIm1hcCIsInMiLCJ0cmltIiwiZmlsdGVyIiwiQm9vbGVhbiIsInBhcnNlZEZlYXR1cmVzIiwiZXJyIiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiZnMiLCJleGlzdHNTeW5jIiwiZmlsZUZlYXR1cmVzIiwicmVhZEZpbGVTeW5jIiwibWVzc2FnZSIsInBhcnNlUGx1Z2luTmFtZXMiLCJuYW1lcyIsIl8iLCJpc1N0cmluZyIsInBhcnNlRGVmYXVsdENhcHMiLCJjYXBzT3JQYXRoIiwiY2FwcyIsImxvYWRlZEZyb21GaWxlIiwic3RhdFN5bmMiLCJpc0ZpbGUiLCJyZXN1bHQiLCJKU09OIiwicGFyc2UiLCJpc1BsYWluT2JqZWN0IiwiRXJyb3IiLCJ0cnVuY2F0ZSIsImUiLCJtc2ciLCJwYXJzZUluc3RhbGxUeXBlcyIsInNvdXJjZSIsImluY2x1ZGVzIiwiSU5TVEFMTF9UWVBFUyIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxTQUFTQSxxQkFBVCxDQUFnQ0MsUUFBaEMsRUFBMEM7QUFDeEMsUUFBTUMsUUFBUSxHQUFHLENBQUNDLE9BQUQsRUFBVUMsR0FBVixLQUFtQixHQUFFQSxHQUFJLEVBQVAsQ0FBU0MsS0FBVCxDQUFlRixPQUFmLEVBQ2hDRyxHQURnQyxDQUMzQkMsQ0FBRCxJQUFPQSxDQUFDLENBQUNDLElBQUYsRUFEcUIsRUFFaENDLE1BRmdDLENBRXpCQyxPQUZ5QixDQUFuQzs7QUFHQSxNQUFJQyxjQUFKOztBQUNBLE1BQUk7QUFDRkEsSUFBQUEsY0FBYyxHQUFHVCxRQUFRLENBQUMsR0FBRCxFQUFNRCxRQUFOLENBQXpCO0FBQ0QsR0FGRCxDQUVFLE9BQU9XLEdBQVAsRUFBWTtBQUNaLFVB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJTlNUQUxMX1RZUEVTIH0gZnJvbSAnLi4vZXh0ZW5zaW9uLWNvbmZpZyc7XG5cbi8vIHNlcnZlckFyZ3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUgYHNlcnZlcmAgKGRlZmF1bHQpIHN1YmNvbW1hbmRcbmZ1bmN0aW9uIHBhcnNlU2VjdXJpdHlGZWF0dXJlcyAoZmVhdHVyZXMpIHtcbiAgY29uc3Qgc3BsaXR0ZXIgPSAoc3BsaXRPbiwgc3RyKSA9PiBgJHtzdHJ9YC5zcGxpdChzcGxpdE9uKVxuICAgIC5tYXAoKHMpID0+IHMudHJpbSgpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gIGxldCBwYXJzZWRGZWF0dXJlcztcbiAgdHJ5IHtcbiAgICBwYXJzZWRGZWF0dXJlcyA9IHNwbGl0dGVyKCcsJywgZmVhdHVyZXMpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDb3VsZCBub3QgcGFyc2UgdmFsdWUgb2YgLS1hbGxvdy9kZW55LWluc2VjdXJlLiBTaG91bGQgYmUgJyArXG4gICAgICAnYSBsaXN0IG9mIHN0cmluZ3Mgc2VwYXJhdGVkIGJ5IGNvbW1hcywgb3IgYSBwYXRoIHRvIGEgZmlsZSAnICtcbiAgICAgICdsaXN0aW5nIG9uZSBmZWF0dXJlIG5hbWUgcGVyIGxpbmUuJyk7XG4gIH1cblxuICBpZiAocGFyc2VkRmVhdHVyZXMubGVuZ3RoID09PSAxICYmIGZzLmV4aXN0c1N5bmMocGFyc2VkRmVhdHVyZXNbMF0pKSB7XG4gICAgLy8gd2UgbWlnaHQgaGF2ZSBhIGZpbGUgd2hpY2ggaXMgYSBsaXN0IG9mIGZlYXR1cmVzXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpbGVGZWF0dXJlcyA9IGZzLnJlYWRGaWxlU3luYyhwYXJzZWRGZWF0dXJlc1swXSwgJ3V0ZjgnKTtcbiAgICAgIHBhcnNlZEZlYXR1cmVzID0gc3BsaXR0ZXIoJ1xcbicsIGZpbGVGZWF0dXJlcyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBBdHRlbXB0ZWQgdG8gcmVhZCAtLWFsbG93L2RlbnktaW5zZWN1cmUgZmVhdHVyZSBuYW1lcyBgICtcbiAgICAgICAgYGZyb20gZmlsZSAke3BhcnNlZEZlYXR1cmVzWzBdfSBidXQgZ290IGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJzZWRGZWF0dXJlcztcbn1cblxuZnVuY3Rpb24gcGFyc2VQbHVnaW5OYW1lcyAobmFtZXMpIHtcbiAgaWYgKCFfLmlzU3RyaW5nKG5hbWVzKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RvIHBhcnNlIHBsdWdpbiBuYW1lcywgbmFtZXMgbXVzdCBiZSBhIENTViBzdHJpbmcnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIG5hbWVzLnNwbGl0KCcsJykubWFwKChzKSA9PiBzLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDb3VsZCBub3QgcGFyc2UgdmFsdWUgb2YgLS1wbHVnaW5zLiBTaG91bGQgYmUgYSBsaXN0IG9mIHBsdWdpbiBuYW1lcyAnICtcbiAgICAgICAgICAgICAgICAgICAgJ3NlcGFyYXRlZCBieSBjb21tYXMuIFBsdWdpbiBuYW1lcyBhcmUgdGhvc2UgZm91bmQgd2hlbiBydW5uaW5nIGBhcHBpdW0gJyArXG4gICAgICAgICAgICAgICAgICAgICdwbHVnaW4gbGlzdGAnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZURlZmF1bHRDYXBzIChjYXBzT3JQYXRoKSB7XG4gIGxldCBjYXBzID0gY2Fwc09yUGF0aDtcbiAgbGV0IGxvYWRlZEZyb21GaWxlID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgLy8gdXNlIHN5bmNocm9ub3VzIGZpbGUgYWNjZXNzLCBhcyBgYXJncGFyc2VgIHByb3ZpZGVzIG5vIHdheSBvZiBlaXRoZXJcbiAgICAvLyBhd2FpdGluZyBvciB1c2luZyBjYWxsYmFja3MuIFRoaXMgc3RlcCBoYXBwZW5zIGluIHN0YXJ0dXAsIGluIHdoYXQgaXNcbiAgICAvLyBlZmZlY3RpdmVseSBjb21tYW5kLWxpbmUgY29kZSwgc28gbm90aGluZyBpcyBibG9ja2VkIGluIHRlcm1zIG9mXG4gICAgLy8gc2Vzc2lvbnMsIHNvIGhvbGRpbmcgdXAgdGhlIGV2ZW50IGxvb3AgZG9lcyBub3QgaW5jdXIgdGhlIHVzdWFsXG4gICAgLy8gZHJhd2JhY2tzLlxuICAgIGlmIChfLmlzU3RyaW5nKGNhcHNPclBhdGgpICYmIGZzLnN0YXRTeW5jKGNhcHNPclBhdGgpLmlzRmlsZSgpKSB7XG4gICAgICBjYXBzID0gZnMucmVhZEZpbGVTeW5jKGNhcHNPclBhdGgsICd1dGY4Jyk7XG4gICAgICBsb2FkZWRGcm9tRmlsZSA9IHRydWU7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBub3QgYSBmaWxlLCBvciBub3QgcmVhZGFibGVcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IEpTT04ucGFyc2UoY2Fwcyk7XG4gICAgaWYgKCFfLmlzUGxhaW5PYmplY3QocmVzdWx0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtfLnRydW5jYXRlKHJlc3VsdCwge2xlbmd0aDogMTAwfSl9JyBpcyBub3QgYW4gb2JqZWN0YCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zdCBtc2cgPSBsb2FkZWRGcm9tRmlsZVxuICAgICAgPyBgRGVmYXVsdCBjYXBhYmlsaXRpZXMgaW4gJyR7Y2Fwc09yUGF0aH0nIG11c3QgYmUgYSB2YWxpZCBKU09OYFxuICAgICAgOiBgRGVmYXVsdCBjYXBhYmlsaXRpZXMgbXVzdCBiZSBhIHZhbGlkIEpTT05gO1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCR7bXNnfS4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlSW5zdGFsbFR5cGVzIChzb3VyY2UpIHtcbiAgaWYgKCFfLmluY2x1ZGVzKElOU1RBTExfVFlQRVMsIHNvdXJjZSkpIHtcbiAgICB0aHJvdyBgQXJndW1lbnQgdG8gLS1zb3VyY2Ugd2FzICcke3NvdXJjZX0nLCB3aGljaCBpcyBub3QgYSB2YWxpZCBgICtcbiAgICAgICAgICBgZHJpdmVyIHNvdXJjZSB0eXBlLiBJdCBtdXN0IGJlIG9uZSBvZiAke0pTT04uc3RyaW5naWZ5KElOU1RBTExfVFlQRVMpfWA7XG4gIH1cblxuICByZXR1cm4gc291cmNlO1xufVxuXG5leHBvcnQge1xuICBwYXJzZVNlY3VyaXR5RmVhdHVyZXMsXG4gIHBhcnNlRGVmYXVsdENhcHMsXG4gIHBhcnNlSW5zdGFsbFR5cGVzLFxuICBwYXJzZVBsdWdpbk5hbWVzLFxufTtcbiJdLCJmaWxlIjoibGliL2NsaS9wYXJzZXItaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
@@ -1,77 +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
- class DriverConfig extends _extensionConfig.default {
19
- constructor(appiumHome, logFn = null) {
20
- super(appiumHome, _extensionConfig.DRIVER_TYPE, logFn);
21
- }
22
-
23
- getConfigProblems(driver) {
24
- const problems = [];
25
- const automationNames = [];
26
- const {
27
- platformNames,
28
- automationName
29
- } = driver;
30
-
31
- if (!_lodash.default.isArray(platformNames)) {
32
- problems.push({
33
- err: 'Missing or incorrect supported platformName list.',
34
- val: platformNames
35
- });
36
- } else {
37
- for (const pName of platformNames) {
38
- if (!_lodash.default.isString(pName)) {
39
- problems.push({
40
- err: 'Incorrectly formatted platformName.',
41
- val: pName
42
- });
43
- }
44
- }
45
- }
46
-
47
- if (!_lodash.default.isString(automationName)) {
48
- problems.push({
49
- err: 'Missing or incorrect automationName',
50
- val: automationName
51
- });
52
- }
53
-
54
- if (_lodash.default.includes(automationNames, automationName)) {
55
- problems.push({
56
- err: 'Multiple drivers claim support for the same automationName',
57
- val: automationName
58
- });
59
- }
60
-
61
- automationNames.push(automationName);
62
- return problems;
63
- }
64
-
65
- extensionDesc(driverName, {
66
- version,
67
- automationName
68
- }) {
69
- return `${driverName}@${version} (automationName '${automationName}')`;
70
- }
71
-
72
- }
73
-
74
- exports.default = DriverConfig;require('source-map-support').install();
75
-
76
-
77
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kcml2ZXItY29uZmlnLmpzIl0sIm5hbWVzIjpbIkRyaXZlckNvbmZpZyIsIkV4dGVuc2lvbkNvbmZpZyIsImNvbnN0cnVjdG9yIiwiYXBwaXVtSG9tZSIsImxvZ0ZuIiwiRFJJVkVSX1RZUEUiLCJnZXRDb25maWdQcm9ibGVtcyIsImRyaXZlciIsInByb2JsZW1zIiwiYXV0b21hdGlvbk5hbWVzIiwicGxhdGZvcm1OYW1lcyIsImF1dG9tYXRpb25OYW1lIiwiXyIsImlzQXJyYXkiLCJwdXNoIiwiZXJyIiwidmFsIiwicE5hbWUiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwiZXh0ZW5zaW9uRGVzYyIsImRyaXZlck5hbWUiLCJ2ZXJzaW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRWUsTUFBTUEsWUFBTixTQUEyQkMsd0JBQTNCLENBQTJDO0FBQ3hEQyxFQUFBQSxXQUFXLENBQUVDLFVBQUYsRUFBY0MsS0FBSyxHQUFHLElBQXRCLEVBQTRCO0FBQ3JDLFVBQU1ELFVBQU4sRUFBa0JFLDRCQUFsQixFQUErQkQsS0FBL0I7QUFDRDs7QUFFREUsRUFBQUEsaUJBQWlCLENBQUVDLE1BQUYsRUFBVTtBQUN6QixVQUFNQyxRQUFRLEdBQUcsRUFBakI7QUFDQSxVQUFNQyxlQUFlLEdBQUcsRUFBeEI7QUFDQSxVQUFNO0FBQUNDLE1BQUFBLGFBQUQ7QUFBZ0JDLE1BQUFBO0FBQWhCLFFBQWtDSixNQUF4Qzs7QUFFQSxRQUFJLENBQUNLLGdCQUFFQyxPQUFGLENBQVVILGFBQVYsQ0FBTCxFQUErQjtBQUM3QkYsTUFBQUEsUUFBUSxDQUFDTSxJQUFULENBQWM7QUFDWkMsUUFBQUEsR0FBRyxFQUFFLG1EQURPO0FBRVpDLFFBQUFBLEdBQUcsRUFBRU47QUFGTyxPQUFkO0FBSUQsS0FMRCxNQUtPO0FBQ0wsV0FBSyxNQUFNTyxLQUFYLElBQW9CUCxhQUFwQixFQUFtQztBQUNqQyxZQUFJLENBQUNFLGdCQUFFTSxRQUFGLENBQVdELEtBQVgsQ0FBTCxFQUF3QjtBQUN0QlQsVUFBQUEsUUFBUSxDQUFDTSxJQUFULENBQWM7QUFBQ0MsWUFBQUEsR0FBRyxFQUFFLHFDQUFOO0FBQTZDQyxZQUFBQSxHQUFHLEVBQUVDO0FBQWxELFdBQWQ7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsUUFBSSxDQUFDTCxnQkFBRU0sUUFBRixDQUFXUCxjQUFYLENBQUwsRUFBaUM7QUFDL0JILE1BQUFBLFFBQVEsQ0FBQ00sSUFBVCxDQUFjO0FBQUNDLFFBQUFBLEdBQUcsRUFBRSxxQ0FBTjtBQUE2Q0MsUUFBQUEsR0FBRyxFQUFFTDtBQUFsRCxPQUFkO0FBQ0Q7O0FBRUQsUUFBSUMsZ0JBQUVPLFFBQUYsQ0FBV1YsZUFBWCxFQUE0QkUsY0FBNUIsQ0FBSixFQUFpRDtBQUMvQ0gsTUFBQUEsUUFBUSxDQUFDTSxJQUFULENBQWM7QUFDWkMsUUFBQUEsR0FBRyxFQUFFLDREQURPO0FBRVpDLFFBQUFBLEdBQUcsRUFBRUw7QUFGTyxPQUFkO0FBSUQ7O0FBQ0RGLElBQUFBLGVBQWUsQ0FBQ0ssSUFBaEIsQ0FBcUJILGNBQXJCO0FBRUEsV0FBT0gsUUFBUDtBQUNEOztBQUVEWSxFQUFBQSxhQUFhLENBQUVDLFVBQUYsRUFBYztBQUFDQyxJQUFBQSxPQUFEO0FBQVVYLElBQUFBO0FBQVYsR0FBZCxFQUF5QztBQUNwRCxXQUFRLEdBQUVVLFVBQVcsSUFBR0MsT0FBUSxxQkFBb0JYLGNBQWUsSUFBbkU7QUFDRDs7QUF4Q3VEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBFeHRlbnNpb25Db25maWcsIHsgRFJJVkVSX1RZUEUgfSBmcm9tICcuL2V4dGVuc2lvbi1jb25maWcnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcml2ZXJDb25maWcgZXh0ZW5kcyBFeHRlbnNpb25Db25maWcge1xuICBjb25zdHJ1Y3RvciAoYXBwaXVtSG9tZSwgbG9nRm4gPSBudWxsKSB7XG4gICAgc3VwZXIoYXBwaXVtSG9tZSwgRFJJVkVSX1RZUEUsIGxvZ0ZuKTtcbiAgfVxuXG4gIGdldENvbmZpZ1Byb2JsZW1zIChkcml2ZXIpIHtcbiAgICBjb25zdCBwcm9ibGVtcyA9IFtdO1xuICAgIGNvbnN0IGF1dG9tYXRpb25OYW1lcyA9IFtdO1xuICAgIGNvbnN0IHtwbGF0Zm9ybU5hbWVzLCBhdXRvbWF0aW9uTmFtZX0gPSBkcml2ZXI7XG5cbiAgICBpZiAoIV8uaXNBcnJheShwbGF0Zm9ybU5hbWVzKSkge1xuICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgIGVycjogJ01pc3Npbmcgb3IgaW5jb3JyZWN0IHN1cHBvcnRlZCBwbGF0Zm9ybU5hbWUgbGlzdC4nLFxuICAgICAgICB2YWw6IHBsYXRmb3JtTmFtZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IHBOYW1lIG9mIHBsYXRmb3JtTmFtZXMpIHtcbiAgICAgICAgaWYgKCFfLmlzU3RyaW5nKHBOYW1lKSkge1xuICAgICAgICAgIHByb2JsZW1zLnB1c2goe2VycjogJ0luY29ycmVjdGx5IGZvcm1hdHRlZCBwbGF0Zm9ybU5hbWUuJywgdmFsOiBwTmFtZX0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzU3RyaW5nKGF1dG9tYXRpb25OYW1lKSkge1xuICAgICAgcHJvYmxlbXMucHVzaCh7ZXJyOiAnTWlzc2luZyBvciBpbmNvcnJlY3QgYXV0b21hdGlvbk5hbWUnLCB2YWw6IGF1dG9tYXRpb25OYW1lfSk7XG4gICAgfVxuXG4gICAgaWYgKF8uaW5jbHVkZXMoYXV0b21hdGlvbk5hbWVzLCBhdXRvbWF0aW9uTmFtZSkpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICBlcnI6ICdNdWx0aXBsZSBkcml2ZXJzIGNsYWltIHN1cHBvcnQgZm9yIHRoZSBzYW1lIGF1dG9tYXRpb25OYW1lJyxcbiAgICAgICAgdmFsOiBhdXRvbWF0aW9uTmFtZVxuICAgICAgfSk7XG4gICAgfVxuICAgIGF1dG9tYXRpb25OYW1lcy5wdXNoKGF1dG9tYXRpb25OYW1lKTtcblxuICAgIHJldHVybiBwcm9ibGVtcztcbiAgfVxuXG4gIGV4dGVuc2lvbkRlc2MgKGRyaXZlck5hbWUsIHt2ZXJzaW9uLCBhdXRvbWF0aW9uTmFtZX0pIHtcbiAgICByZXR1cm4gYCR7ZHJpdmVyTmFtZX1AJHt2ZXJzaW9ufSAoYXV0b21hdGlvbk5hbWUgJyR7YXV0b21hdGlvbk5hbWV9JylgO1xuICB9XG59XG5cbiJdLCJmaWxlIjoibGliL2RyaXZlci1jb25maWcuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==