appium 2.0.0-beta.4 → 2.0.0-beta.42

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