appium 2.0.0-beta.3 → 2.0.0-beta.30

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