appium 2.0.0-beta.4 → 2.0.0-beta.40

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