appium 2.2.3 → 2.4.0

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 (90) hide show
  1. package/README.md +131 -158
  2. package/build/lib/appium.d.ts +76 -4
  3. package/build/lib/appium.d.ts.map +1 -1
  4. package/build/lib/appium.js +327 -1
  5. package/build/lib/appium.js.map +1 -1
  6. package/build/lib/cli/args.d.ts.map +1 -1
  7. package/build/lib/cli/args.js +24 -2
  8. package/build/lib/cli/args.js.map +1 -1
  9. package/build/lib/cli/driver-command.d.ts +16 -0
  10. package/build/lib/cli/driver-command.d.ts.map +1 -1
  11. package/build/lib/cli/driver-command.js +16 -0
  12. package/build/lib/cli/driver-command.js.map +1 -1
  13. package/build/lib/cli/extension-command.d.ts +26 -2
  14. package/build/lib/cli/extension-command.d.ts.map +1 -1
  15. package/build/lib/cli/extension-command.js +135 -4
  16. package/build/lib/cli/extension-command.js.map +1 -1
  17. package/build/lib/cli/parser.d.ts.map +1 -1
  18. package/build/lib/cli/parser.js +11 -7
  19. package/build/lib/cli/parser.js.map +1 -1
  20. package/build/lib/cli/plugin-command.d.ts +16 -0
  21. package/build/lib/cli/plugin-command.d.ts.map +1 -1
  22. package/build/lib/cli/plugin-command.js +16 -0
  23. package/build/lib/cli/plugin-command.js.map +1 -1
  24. package/build/lib/cli/utils.d.ts.map +1 -1
  25. package/build/lib/cli/utils.js +3 -4
  26. package/build/lib/cli/utils.js.map +1 -1
  27. package/build/lib/config-file.d.ts +1 -1
  28. package/build/lib/config.d.ts +8 -7
  29. package/build/lib/config.d.ts.map +1 -1
  30. package/build/lib/config.js +54 -64
  31. package/build/lib/config.js.map +1 -1
  32. package/build/lib/constants.d.ts +10 -0
  33. package/build/lib/constants.d.ts.map +1 -1
  34. package/build/lib/constants.js +11 -1
  35. package/build/lib/constants.js.map +1 -1
  36. package/build/lib/doctor/doctor.d.ts +55 -0
  37. package/build/lib/doctor/doctor.d.ts.map +1 -0
  38. package/build/lib/doctor/doctor.js +201 -0
  39. package/build/lib/doctor/doctor.js.map +1 -0
  40. package/build/lib/extension/driver-config.d.ts +2 -2
  41. package/build/lib/extension/driver-config.d.ts.map +1 -1
  42. package/build/lib/extension/driver-config.js +4 -4
  43. package/build/lib/extension/driver-config.js.map +1 -1
  44. package/build/lib/extension/extension-config.d.ts +10 -3
  45. package/build/lib/extension/extension-config.d.ts.map +1 -1
  46. package/build/lib/extension/extension-config.js +32 -14
  47. package/build/lib/extension/extension-config.js.map +1 -1
  48. package/build/lib/extension/index.d.ts +6 -4
  49. package/build/lib/extension/index.d.ts.map +1 -1
  50. package/build/lib/extension/index.js +74 -32
  51. package/build/lib/extension/index.js.map +1 -1
  52. package/build/lib/extension/manifest.js +1 -1
  53. package/build/lib/extension/manifest.js.map +1 -1
  54. package/build/lib/extension/plugin-config.js +1 -1
  55. package/build/lib/extension/plugin-config.js.map +1 -1
  56. package/build/lib/grid-register.d.ts.map +1 -1
  57. package/build/lib/grid-register.js +1 -2
  58. package/build/lib/grid-register.js.map +1 -1
  59. package/build/lib/main.d.ts +4 -0
  60. package/build/lib/main.d.ts.map +1 -1
  61. package/build/lib/main.js +31 -52
  62. package/build/lib/main.js.map +1 -1
  63. package/build/lib/schema/schema.d.ts +5 -0
  64. package/build/lib/schema/schema.d.ts.map +1 -1
  65. package/build/lib/schema/schema.js +7 -7
  66. package/build/lib/schema/schema.js.map +1 -1
  67. package/build/lib/utils.d.ts +3 -0
  68. package/build/lib/utils.d.ts.map +1 -1
  69. package/build/lib/utils.js +2 -1
  70. package/build/lib/utils.js.map +1 -1
  71. package/build/types/cli.d.ts +1 -1
  72. package/build/types/cli.d.ts.map +1 -1
  73. package/lib/appium.js +388 -2
  74. package/lib/cli/args.js +27 -2
  75. package/lib/cli/driver-command.js +18 -0
  76. package/lib/cli/extension-command.js +160 -9
  77. package/lib/cli/parser.js +22 -8
  78. package/lib/cli/plugin-command.js +18 -0
  79. package/lib/cli/utils.js +5 -7
  80. package/lib/config.js +46 -65
  81. package/lib/constants.js +12 -0
  82. package/lib/doctor/doctor.js +209 -0
  83. package/lib/extension/driver-config.js +3 -3
  84. package/lib/extension/extension-config.js +33 -15
  85. package/lib/extension/index.js +80 -43
  86. package/lib/grid-register.js +1 -2
  87. package/lib/main.js +42 -61
  88. package/lib/utils.js +2 -1
  89. package/package.json +15 -18
  90. package/types/cli.ts +1 -1
@@ -1,4 +1,11 @@
1
- export function checkNpmOk(): Promise<void>;
1
+ /**
2
+ * @param {string} root
3
+ * @param {boolean} [requireWriteable=true]
4
+ * @param {string} [displayName='folder path']
5
+ * @throws {Error}
6
+ */
7
+ export function requireDir(root: string, requireWriteable?: boolean | undefined, displayName?: string | undefined): Promise<void>;
8
+ export const APPIUM_VER: string;
2
9
  export type ParsedArgs = import('appium/types').ParsedArgs;
3
10
  export type Args = import('appium/types').Args;
4
11
  export type ArgSpec = import("./schema/arg-spec").ArgSpec<any>;
@@ -12,11 +19,6 @@ export type ArgSpec = import("./schema/arg-spec").ArgSpec<any>;
12
19
  export function getBuildInfo(): import('appium/types').BuildInfo;
13
20
  export function checkNodeOk(): void;
14
21
  export function showBuildInfo(): Promise<void>;
15
- export function warnNodeDeprecations(): void;
16
- /**
17
- * @param {string} tmpDir
18
- */
19
- export function validateTmpDir(tmpDir: string): Promise<void>;
20
22
  /**
21
23
  * Returns k/v pairs of server arguments which are _not_ the defaults.
22
24
  * @param {Args} parsedArgs
@@ -28,7 +30,6 @@ export function getNonDefaultServerArgs(parsedArgs: Args): Args;
28
30
  * @returns {Promise<string?>}
29
31
  */
30
32
  export function getGitRev(useGithubApiFallback?: boolean | undefined): Promise<string | null>;
31
- export const APPIUM_VER: string;
32
33
  /**
33
34
  * @param {boolean} [useGithubApiFallback]
34
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.js"],"names":[],"mappings":"AAuJA,4CAOC;yBAyLY,OAAO,cAAc,EAAE,UAAU;mBACjC,OAAO,cAAc,EAAE,IAAI;;AArNxC;;;;;;GAMG;AACH,gCAFa,OAAO,cAAc,EAAE,SAAS,CAI5C;AAED,oCAOC;AAwBD,+CAGC;AAhBD,6CAWC;AA6ID;;GAEG;AACH,uCAFW,MAAM,iBAWhB;AAlJD;;;;GAIG;AACH,oDAHW,IAAI,GACF,IAAI,CAmFhB;AAtMD;;;GAGG;AACH,uEAFa,QAAQ,MAAM,QAAE,CA6B5B;AAtFD,gCAAsC;AA6BtC;;GAEG;AACH,2FAUC;AAmOD;;;;;;;;;;GAUG;AACH,0DALW,QAAQ,UAAU,CAAC,gBACnB,OAAO,eAAe,EAAE,oBAAoB,YAC5C,QAAQ,UAAU,CAAC,cACnB,UAAU,QAqBpB;AAgBD,6BAAuC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.js"],"names":[],"mappings":"AAoRA;;;;;GAKG;AACH,iCALW,MAAM,2FA+BhB;AA1SD,gCAA6C;yBA0ThC,OAAO,cAAc,EAAE,UAAU;mBACjC,OAAO,cAAc,EAAE,IAAI;;AAhNxC;;;;;;GAMG;AACH,gCAFa,OAAO,cAAc,EAAE,SAAS,CAI5C;AAED,oCAOC;AAED,+CAGC;AAED;;;;GAIG;AACH,oDAHW,IAAI,GACF,IAAI,CAmFhB;AAhLD;;;GAGG;AACH,uEAFa,QAAQ,MAAM,QAAE,CA6B5B;AAvDD;;GAEG;AACH,2FAUC;AA2MD;;;;;;;;;;GAUG;AACH,0DALW,QAAQ,UAAU,CAAC,gBACnB,OAAO,eAAe,EAAE,oBAAoB,YAC5C,QAAQ,UAAU,CAAC,cACnB,UAAU,QAqBpB;AAoCD,6BAAuC"}
@@ -3,41 +3,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.rootDir = exports.showConfig = exports.updateBuildInfo = exports.APPIUM_VER = exports.getGitRev = exports.getNonDefaultServerArgs = exports.validateTmpDir = exports.warnNodeDeprecations = exports.showBuildInfo = exports.checkNodeOk = exports.getBuildInfo = exports.checkNpmOk = void 0;
6
+ exports.rootDir = exports.showConfig = exports.updateBuildInfo = exports.getGitRev = exports.getNonDefaultServerArgs = exports.showBuildInfo = exports.checkNodeOk = exports.getBuildInfo = exports.requireDir = exports.APPIUM_VER = void 0;
7
7
  /* eslint-disable no-console */
8
8
  const lodash_1 = __importDefault(require("lodash"));
9
9
  const support_1 = require("@appium/support");
10
10
  const axios_1 = __importDefault(require("axios"));
11
11
  const teen_process_1 = require("teen_process");
12
12
  const semver_1 = __importDefault(require("semver"));
13
- const find_up_1 = __importDefault(require("find-up"));
13
+ const node_os_1 = __importDefault(require("node:os"));
14
+ const utils_1 = require("./utils");
14
15
  const schema_1 = require("./schema/schema");
15
- const npmPackage = support_1.fs.readPackageJsonFrom(__dirname);
16
- const APPIUM_VER = npmPackage.version;
17
- exports.APPIUM_VER = APPIUM_VER;
18
- const ENGINES = /** @type {Record<string,string>} */ (npmPackage.engines);
16
+ exports.APPIUM_VER = utils_1.npmPackage.version;
17
+ const ENGINES = /** @type {Record<string,string>} */ (utils_1.npmPackage.engines);
19
18
  const MIN_NODE_VERSION = ENGINES.node;
20
- const MIN_NPM_VERSION = ENGINES.npm;
21
- const GIT_META_ROOT = '.git';
22
19
  const GIT_BINARY = `git${support_1.system.isWindows() ? '.exe' : ''}`;
23
20
  const GITHUB_API = 'https://api.github.com/repos/appium/appium';
24
21
  /**
25
22
  * @type {import('appium/types').BuildInfo}
26
23
  */
27
24
  const BUILD_INFO = {
28
- version: APPIUM_VER,
25
+ version: exports.APPIUM_VER,
29
26
  };
30
27
  function getNodeVersion() {
31
28
  return /** @type {import('semver').SemVer} */ (semver_1.default.coerce(process.version));
32
29
  }
33
- /**
34
- * Returns version of `npm`
35
- * @returns {Promise<string>}
36
- */
37
- async function getNpmVersion() {
38
- const { stdout } = await (0, teen_process_1.exec)(support_1.system.isWindows() ? 'npm.cmd' : 'npm', ['--version']);
39
- return stdout.trim();
40
- }
41
30
  /**
42
31
  * @param {boolean} [useGithubApiFallback]
43
32
  */
@@ -53,26 +42,25 @@ async function updateBuildInfo(useGithubApiFallback = false) {
53
42
  }
54
43
  }
55
44
  exports.updateBuildInfo = updateBuildInfo;
56
- /**
57
- * Finds the Git metadata dir (see `GIT_META_ROOT`)
58
- *
59
- * This is needed because Appium cannot assume `package.json` and `.git` are in the same
60
- * directory. Monorepos, see?
61
- * @returns {Promise<string|undefined>} Path to dir or `undefined` if not found
62
- */
63
- async function findGitRoot() {
64
- return await (0, find_up_1.default)(GIT_META_ROOT, { cwd: rootDir, type: 'directory' });
65
- }
45
+ /** @type {() => Promise<string?>} */
46
+ const getFullGitPath = lodash_1.default.memoize(async function getFullGitPath() {
47
+ try {
48
+ return await support_1.fs.which(GIT_BINARY);
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ });
66
54
  /**
67
55
  * @param {boolean} [useGithubApiFallback]
68
56
  * @returns {Promise<string?>}
69
57
  */
70
58
  async function getGitRev(useGithubApiFallback = false) {
71
- const gitRoot = await findGitRoot();
72
- if (gitRoot) {
59
+ const fullGitPath = await getFullGitPath();
60
+ if (fullGitPath) {
73
61
  try {
74
- const { stdout } = await (0, teen_process_1.exec)(GIT_BINARY, ['rev-parse', 'HEAD'], {
75
- cwd: gitRoot,
62
+ const { stdout } = await (0, teen_process_1.exec)(fullGitPath, ['rev-parse', 'HEAD'], {
63
+ cwd: __dirname,
76
64
  });
77
65
  return stdout.trim();
78
66
  }
@@ -84,9 +72,9 @@ async function getGitRev(useGithubApiFallback = false) {
84
72
  // If the package folder is not a valid git repository
85
73
  // then fetch the corresponding tag info from GitHub
86
74
  try {
87
- return (await axios_1.default.get(`${GITHUB_API}/git/refs/tags/appium@${APPIUM_VER}`, {
75
+ return (await axios_1.default.get(`${GITHUB_API}/git/refs/tags/appium@${exports.APPIUM_VER}`, {
88
76
  headers: {
89
- 'User-Agent': `Appium ${APPIUM_VER}`,
77
+ 'User-Agent': `Appium ${exports.APPIUM_VER}`,
90
78
  },
91
79
  })).data?.object?.sha;
92
80
  }
@@ -100,11 +88,11 @@ exports.getGitRev = getGitRev;
100
88
  * @returns {Promise<string?>}
101
89
  */
102
90
  async function getGitTimestamp(commitSha, useGithubApiFallback = false) {
103
- const gitRoot = await findGitRoot();
104
- if (gitRoot) {
91
+ const fullGitPath = await getFullGitPath();
92
+ if (fullGitPath) {
105
93
  try {
106
- const { stdout } = await (0, teen_process_1.exec)(GIT_BINARY, ['show', '-s', '--format=%ci', commitSha], {
107
- cwd: gitRoot,
94
+ const { stdout } = await (0, teen_process_1.exec)(fullGitPath, ['show', '-s', '--format=%ci', commitSha], {
95
+ cwd: __dirname,
108
96
  });
109
97
  return stdout.trim();
110
98
  }
@@ -116,7 +104,7 @@ async function getGitTimestamp(commitSha, useGithubApiFallback = false) {
116
104
  try {
117
105
  return (await axios_1.default.get(`${GITHUB_API}/git/tags/${commitSha}`, {
118
106
  headers: {
119
- 'User-Agent': `Appium ${APPIUM_VER}`,
107
+ 'User-Agent': `Appium ${exports.APPIUM_VER}`,
120
108
  },
121
109
  })).data?.tagger?.date;
122
110
  }
@@ -141,26 +129,6 @@ function checkNodeOk() {
141
129
  }
142
130
  }
143
131
  exports.checkNodeOk = checkNodeOk;
144
- async function checkNpmOk() {
145
- const npmVersion = await getNpmVersion();
146
- if (!semver_1.default.satisfies(npmVersion, MIN_NPM_VERSION)) {
147
- throw new Error(`npm version must be at least ${MIN_NPM_VERSION}; current is ${npmVersion}. Run "npm install -g npm" to upgrade.`);
148
- }
149
- }
150
- exports.checkNpmOk = checkNpmOk;
151
- function warnNodeDeprecations() {
152
- /**
153
- * Uncomment this section to get node version deprecation warnings
154
- * Also add test cases to config-specs.js to cover the cases added
155
- **/
156
- // const version = getNodeVersion();
157
- // if (version.major < 8) {
158
- // logger.warn(`Appium support for versions of node < ${version.major} has been ` +
159
- // 'deprecated and will be removed in a future version. Please ' +
160
- // 'upgrade!');
161
- // }
162
- }
163
- exports.warnNodeDeprecations = warnNodeDeprecations;
164
132
  async function showBuildInfo() {
165
133
  await updateBuildInfo(true);
166
134
  console.log(JSON.stringify(getBuildInfo())); // eslint-disable-line no-console
@@ -273,18 +241,40 @@ function showConfig(nonDefaultPreConfigParsedArgs, configResult, defaults, parse
273
241
  }
274
242
  exports.showConfig = showConfig;
275
243
  /**
276
- * @param {string} tmpDir
244
+ * @param {string} root
245
+ * @param {boolean} [requireWriteable=true]
246
+ * @param {string} [displayName='folder path']
247
+ * @throws {Error}
277
248
  */
278
- async function validateTmpDir(tmpDir) {
249
+ async function requireDir(root, requireWriteable = true, displayName = 'folder path') {
250
+ let stat;
279
251
  try {
280
- await support_1.fs.mkdirp(tmpDir);
252
+ stat = await support_1.fs.stat(root);
281
253
  }
282
254
  catch (e) {
283
- throw new Error(`We could not ensure that the temp dir you specified ` +
284
- `(${tmpDir}) exists. Please make sure it's writeable.`);
255
+ if (e.code === 'ENOENT') {
256
+ try {
257
+ await support_1.fs.mkdir(root, { recursive: true });
258
+ return;
259
+ }
260
+ catch { }
261
+ }
262
+ throw new Error(`The ${displayName} '${root}' must exist and be a valid directory`);
263
+ }
264
+ if (stat && !stat.isDirectory()) {
265
+ throw new Error(`The ${displayName} '${root}' must be a valid directory`);
266
+ }
267
+ if (requireWriteable) {
268
+ try {
269
+ await support_1.fs.access(root, support_1.fs.constants.W_OK);
270
+ }
271
+ catch (e) {
272
+ throw new Error(`The ${displayName} '${root}' must be ` +
273
+ `writeable for the current user account '${node_os_1.default.userInfo().username}'`);
274
+ }
285
275
  }
286
276
  }
287
- exports.validateTmpDir = validateTmpDir;
277
+ exports.requireDir = requireDir;
288
278
  const rootDir = support_1.fs.findRoot(__dirname);
289
279
  exports.rootDir = rootDir;
290
280
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.js"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ export const EXT_SUBCOMMAND_INSTALL: "install";
42
42
  export const EXT_SUBCOMMAND_UNINSTALL: "uninstall";
43
43
  export const EXT_SUBCOMMAND_UPDATE: "update";
44
44
  export const EXT_SUBCOMMAND_RUN: "run";
45
+ export const EXT_SUBCOMMAND_DOCTOR: "doctor";
45
46
  /**
46
47
  * Current revision of the manifest (`extensions.yaml`) schema
47
48
  */
@@ -53,4 +54,13 @@ export const CURRENT_SCHEMA_REV: 4;
53
54
  * memory usage, perf, and/or log output, and higher limits may be difficult to scan.
54
55
  */
55
56
  export const LONG_STACKTRACE_LIMIT: 100;
57
+ /**
58
+ * Where should the bidi websocket handler live on the server?
59
+ */
60
+ export const BIDI_BASE_PATH: "/bidi";
61
+ /**
62
+ * The name of the event for drivers to emit when they want to send bidi events to a client over
63
+ * a bidi socket
64
+ */
65
+ export const BIDI_EVENT_NAME: "bidiEvent";
56
66
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,mCAAoC;AAEpC;;GAEG;AACH,mCAAoC;AAEpC;;GAEG;AACH,yCAA0C;AAE1C;;GAEG;AACH,oCAAqC;AAMrC;;;;;GAOE;AAMF;;;;;;;;GAUE;AAEF;;GAEG;AACH,6CAAqF;AAErF;;GAEG;AACH,gDAA6F;AAE7F,yCAA0C;AAC1C,+CAAgD;AAChD,mDAAoD;AACpD,6CAA8C;AAC9C,uCAAwC;AAExC;;GAEG;AACH,mCAAoC;AAEpC;;;;;GAKG;AACH,wCAAyC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,mCAAoC;AAEpC;;GAEG;AACH,mCAAoC;AAEpC;;GAEG;AACH,yCAA0C;AAE1C;;GAEG;AACH,oCAAqC;AAMrC;;;;;GAOE;AAMF;;;;;;;;GAUE;AAEF;;GAEG;AACH,6CAAqF;AAErF;;GAEG;AACH,gDAA6F;AAE7F,yCAA0C;AAC1C,+CAAgD;AAChD,mDAAoD;AACpD,6CAA8C;AAC9C,uCAAwC;AACxC,6CAA8C;AAE9C;;GAEG;AACH,mCAAoC;AAEpC;;;;;GAKG;AACH,wCAAyC;AAEzC;;GAEG;AACH,qCAAsC;AAEtC;;;GAGG;AACH,0CAA2C"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.LONG_STACKTRACE_LIMIT = exports.CURRENT_SCHEMA_REV = exports.EXT_SUBCOMMAND_RUN = exports.EXT_SUBCOMMAND_UPDATE = exports.EXT_SUBCOMMAND_UNINSTALL = exports.EXT_SUBCOMMAND_INSTALL = exports.EXT_SUBCOMMAND_LIST = exports.PKG_HASHFILE_RELATIVE_PATH = exports.CACHE_DIR_RELATIVE_PATH = exports.KNOWN_DRIVERS = exports.KNOWN_PLUGINS = exports.USE_ALL_PLUGINS = exports.SERVER_SUBCOMMAND = exports.PLUGIN_TYPE = exports.DRIVER_TYPE = void 0;
6
+ exports.BIDI_EVENT_NAME = exports.BIDI_BASE_PATH = exports.LONG_STACKTRACE_LIMIT = exports.CURRENT_SCHEMA_REV = exports.EXT_SUBCOMMAND_DOCTOR = exports.EXT_SUBCOMMAND_RUN = exports.EXT_SUBCOMMAND_UPDATE = exports.EXT_SUBCOMMAND_UNINSTALL = exports.EXT_SUBCOMMAND_INSTALL = exports.EXT_SUBCOMMAND_LIST = exports.PKG_HASHFILE_RELATIVE_PATH = exports.CACHE_DIR_RELATIVE_PATH = exports.KNOWN_DRIVERS = exports.KNOWN_PLUGINS = exports.USE_ALL_PLUGINS = exports.SERVER_SUBCOMMAND = exports.PLUGIN_TYPE = exports.DRIVER_TYPE = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  /**
9
9
  * The name of the extension type for drivers
@@ -59,6 +59,7 @@ exports.EXT_SUBCOMMAND_INSTALL = 'install';
59
59
  exports.EXT_SUBCOMMAND_UNINSTALL = 'uninstall';
60
60
  exports.EXT_SUBCOMMAND_UPDATE = 'update';
61
61
  exports.EXT_SUBCOMMAND_RUN = 'run';
62
+ exports.EXT_SUBCOMMAND_DOCTOR = 'doctor';
62
63
  /**
63
64
  * Current revision of the manifest (`extensions.yaml`) schema
64
65
  */
@@ -70,4 +71,13 @@ exports.CURRENT_SCHEMA_REV = 4;
70
71
  * memory usage, perf, and/or log output, and higher limits may be difficult to scan.
71
72
  */
72
73
  exports.LONG_STACKTRACE_LIMIT = 100;
74
+ /**
75
+ * Where should the bidi websocket handler live on the server?
76
+ */
77
+ exports.BIDI_BASE_PATH = '/bidi';
78
+ /**
79
+ * The name of the event for drivers to emit when they want to send bidi events to a client over
80
+ * a bidi socket
81
+ */
82
+ exports.BIDI_EVENT_NAME = 'bidiEvent';
73
83
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/constants.js"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB;;GAEG;AACU,QAAA,WAAW,GAAG,QAAQ,CAAC;AAEpC;;GAEG;AACU,QAAA,WAAW,GAAG,QAAQ,CAAC;AAEpC;;GAEG;AACU,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAE1C;;GAEG;AACU,QAAA,eAAe,GAAG,KAAK,CAAC;AAErC,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,kEAAkE;AACrD,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM;AACxC,oBAAoB,CAAC,CAAC;IACpB,MAAM,EAAE,uBAAuB;IAC/B,gBAAgB,EAAE,+BAA+B;IACjD,cAAc,EAAE,6BAA6B;IAC7C,eAAe,EAAE,8BAA8B;CAChD,CAAC,CACH,CAAC;AAEF,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,kEAAkE;AACrD,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM;AACxC,oBAAoB,CAAC,CAAC;IACpB,YAAY,EAAE,4BAA4B;IAC1C,QAAQ,EAAE,wBAAwB;IAClC,IAAI,EAAE,oBAAoB;IAC1B,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,oBAAoB;IAC3B,QAAQ,EAAE,wBAAwB;CACnC,CAAC,CACH,CAAC;AAEF;;GAEG;AACU,QAAA,uBAAuB,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAErF;;GAEG;AACU,QAAA,0BAA0B,GAAG,cAAI,CAAC,IAAI,CAAC,+BAAuB,EAAE,cAAc,CAAC,CAAC;AAEhF,QAAA,mBAAmB,GAAG,MAAM,CAAC;AAC7B,QAAA,sBAAsB,GAAG,SAAS,CAAC;AACnC,QAAA,wBAAwB,GAAG,WAAW,CAAC;AACvC,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACjC,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAExC;;GAEG;AACU,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/constants.js"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB;;GAEG;AACU,QAAA,WAAW,GAAG,QAAQ,CAAC;AAEpC;;GAEG;AACU,QAAA,WAAW,GAAG,QAAQ,CAAC;AAEpC;;GAEG;AACU,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAE1C;;GAEG;AACU,QAAA,eAAe,GAAG,KAAK,CAAC;AAErC,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,kEAAkE;AACrD,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM;AACxC,oBAAoB,CAAC,CAAC;IACpB,MAAM,EAAE,uBAAuB;IAC/B,gBAAgB,EAAE,+BAA+B;IACjD,cAAc,EAAE,6BAA6B;IAC7C,eAAe,EAAE,8BAA8B;CAChD,CAAC,CACH,CAAC;AAEF,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,kEAAkE;AACrD,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM;AACxC,oBAAoB,CAAC,CAAC;IACpB,YAAY,EAAE,4BAA4B;IAC1C,QAAQ,EAAE,wBAAwB;IAClC,IAAI,EAAE,oBAAoB;IAC1B,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,oBAAoB;IAC3B,QAAQ,EAAE,wBAAwB;CACnC,CAAC,CACH,CAAC;AAEF;;GAEG;AACU,QAAA,uBAAuB,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAErF;;GAEG;AACU,QAAA,0BAA0B,GAAG,cAAI,CAAC,IAAI,CAAC,+BAAuB,EAAE,cAAc,CAAC,CAAC;AAEhF,QAAA,mBAAmB,GAAG,MAAM,CAAC;AAC7B,QAAA,sBAAsB,GAAG,SAAS,CAAC;AACnC,QAAA,wBAAwB,GAAG,WAAW,CAAC;AACvC,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACjC,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAC3B,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AAE9C;;GAEG;AACU,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAEzC;;GAEG;AACU,QAAA,cAAc,GAAG,OAAO,CAAC;AAEtC;;;GAGG;AACU,QAAA,eAAe,GAAG,WAAW,CAAC"}
@@ -0,0 +1,55 @@
1
+ export class Doctor {
2
+ /**
3
+ * @param {DoctorCheck[]} [checks=[]]
4
+ */
5
+ constructor(checks?: import("@appium/types").IDoctorCheck[] | undefined);
6
+ log: import("@appium/types").AppiumLogger;
7
+ /** @type {DoctorCheck[]} */
8
+ checks: DoctorCheck[];
9
+ /** @type {DoctorIssue[]} */
10
+ foundIssues: DoctorIssue[];
11
+ /**
12
+ * @returns {DoctorIssue[]}
13
+ */
14
+ get issuesRequiredToFix(): DoctorIssue[];
15
+ /**
16
+ * @returns {DoctorIssue[]}
17
+ */
18
+ get issuesOptionalToFix(): DoctorIssue[];
19
+ /**
20
+ * The doctor shows the report
21
+ */
22
+ diagnose(): Promise<void>;
23
+ /**
24
+ * @returns {Promise<boolean>}
25
+ */
26
+ reportManualIssues(): Promise<boolean>;
27
+ /**
28
+ * @param {DoctorIssue} f
29
+ */
30
+ runAutoFix(f: DoctorIssue): Promise<void>;
31
+ runAutoFixes(): Promise<void>;
32
+ run(): Promise<void>;
33
+ /**
34
+ * @param {DoctorCheckResult} result
35
+ * @param {DoctorCheck} check
36
+ * @returns {DoctorIssue?}
37
+ */
38
+ toIssue(result: DoctorCheckResult, check: DoctorCheck): DoctorIssue | null;
39
+ /**
40
+ * @returns {string}
41
+ */
42
+ buildFixMessage(): string;
43
+ /**
44
+ * @returns {boolean}
45
+ */
46
+ reportSuccess(): boolean;
47
+ }
48
+ export type DoctorIssue = {
49
+ check: DoctorCheck;
50
+ error: string;
51
+ fixed?: boolean | undefined;
52
+ };
53
+ export type DoctorCheck = import('@appium/types').IDoctorCheck;
54
+ export type DoctorCheckResult = import('@appium/types').DoctorCheckResult;
55
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../lib/doctor/doctor.js"],"names":[],"mappings":"AAIA;IACE;;OAEG;IACH,yEASC;IARC,0CAAqC;IACrC,4BAA4B;IAC5B,QADW,WAAW,EAAE,CACJ;IAIpB,4BAA4B;IAC5B,aADW,WAAW,EAAE,CACH;IAGvB;;OAEG;IACH,yCAEC;IAED;;OAEG;IACH,yCAEC;IAED;;OAEG;IACH,0BAcC;IAED;;OAEG;IACH,sBAFa,QAAQ,OAAO,CAAC,CA6C5B;IAED;;OAEG;IACH,cAFW,WAAW,iBA0BrB;IAED,8BAcC;IAED,qBASC;IAED;;;;OAIG;IACH,gBAJW,iBAAiB,SACjB,WAAW,GACT,WAAW,QAgBvB;IAED;;OAEG;IACH,mBAFa,MAAM,CAKlB;IAED;;OAEG;IACH,iBAFa,OAAO,CASnB;CACF;;WAIa,WAAW;WACX,MAAM;;;0BAKP,OAAO,eAAe,EAAE,YAAY;gCACpC,OAAO,eAAe,EAAE,iBAAiB"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Doctor = void 0;
7
+ require("@colors/colors");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const support_1 = require("@appium/support");
10
+ class Doctor {
11
+ /**
12
+ * @param {DoctorCheck[]} [checks=[]]
13
+ */
14
+ constructor(checks = []) {
15
+ this.log = support_1.logger.getLogger('Doctor');
16
+ /** @type {DoctorCheck[]} */
17
+ this.checks = checks;
18
+ this.checks
19
+ .filter((c) => lodash_1.default.isNil(c.log))
20
+ .forEach((c) => { c.log = this.log; });
21
+ /** @type {DoctorIssue[]} */
22
+ this.foundIssues = [];
23
+ }
24
+ /**
25
+ * @returns {DoctorIssue[]}
26
+ */
27
+ get issuesRequiredToFix() {
28
+ return this.foundIssues.filter((f) => !f.check.isOptional());
29
+ }
30
+ /**
31
+ * @returns {DoctorIssue[]}
32
+ */
33
+ get issuesOptionalToFix() {
34
+ return this.foundIssues.filter((f) => f.check.isOptional());
35
+ }
36
+ /**
37
+ * The doctor shows the report
38
+ */
39
+ async diagnose() {
40
+ this.log.info(`### Starting doctor diagnostics ###`);
41
+ this.foundIssues = [];
42
+ for (const check of this.checks) {
43
+ const res = await check.diagnose();
44
+ const issue = this.toIssue(res, check);
45
+ if (issue) {
46
+ this.foundIssues.push(issue);
47
+ }
48
+ }
49
+ this.log.info(`### Diagnostic completed, ${this.buildFixMessage()}. ###`);
50
+ this.log.info('');
51
+ }
52
+ /**
53
+ * @returns {Promise<boolean>}
54
+ */
55
+ async reportManualIssues() {
56
+ const manualIssues = lodash_1.default.filter(this.issuesRequiredToFix, (f) => !f.check.hasAutofix());
57
+ const manualIssuesOptional = lodash_1.default.filter(this.issuesOptionalToFix, (f) => !f.check.hasAutofix());
58
+ const handleIssues = async (headerLogs, issues) => {
59
+ if (lodash_1.default.isEmpty(issues)) {
60
+ return;
61
+ }
62
+ for (const logMsg of headerLogs) {
63
+ this.log.info(logMsg);
64
+ }
65
+ /** @type {string[]} */
66
+ const fixMessages = [];
67
+ for (const issue of issues) {
68
+ const message = await issue.check.fix();
69
+ if (message) {
70
+ fixMessages.push(message);
71
+ }
72
+ }
73
+ for (const m of lodash_1.default.uniq(fixMessages)) {
74
+ this.log.warn(` \u279C ${m}`);
75
+ }
76
+ this.log.info('');
77
+ };
78
+ await handleIssues([
79
+ '### Manual Fixes Needed ###',
80
+ 'The configuration cannot be automatically fixed, please do the following first:',
81
+ ], manualIssues);
82
+ await handleIssues([
83
+ '### Optional Manual Fixes ###',
84
+ 'To fix these optional issues, please do the following manually:',
85
+ ], manualIssuesOptional);
86
+ if (manualIssues.length > 0) {
87
+ this.log.info('###');
88
+ this.log.info('');
89
+ this.log.info('Bye! Run doctor again when all manual fixes have been applied!');
90
+ this.log.info('');
91
+ return true;
92
+ }
93
+ return false;
94
+ }
95
+ /**
96
+ * @param {DoctorIssue} f
97
+ */
98
+ async runAutoFix(f) {
99
+ this.log.info(`### Fixing: ${f.error} ###`);
100
+ try {
101
+ await f.check.fix();
102
+ }
103
+ catch (err) {
104
+ if (err.constructor.name === support_1.doctor.FixSkippedError.name) {
105
+ this.log.info(`### Skipped fix ###`);
106
+ return;
107
+ }
108
+ else {
109
+ this.log.warn(`${err}`.replace(/\n$/g, ''));
110
+ this.log.info(`### Fix did not succeed ###`);
111
+ return;
112
+ }
113
+ }
114
+ this.log.info('Checking if this was fixed:');
115
+ const res = await f.check.diagnose();
116
+ if (res.ok) {
117
+ f.fixed = true;
118
+ this.log.info(` ${'\u2714'.green} ${res.message}`);
119
+ this.log.info(`### Fix was successfully applied ###`);
120
+ }
121
+ else {
122
+ this.log.info(` ${'\u2716'.red} ${res.message}`);
123
+ this.log.info(`### Fix was applied but issue remains ###`);
124
+ }
125
+ }
126
+ async runAutoFixes() {
127
+ const autoFixes = lodash_1.default.filter(this.foundIssues, (f) => f.check.hasAutofix());
128
+ for (const f of autoFixes) {
129
+ await this.runAutoFix(f);
130
+ this.log.info('');
131
+ }
132
+ if (lodash_1.default.find(autoFixes, (f) => !f.fixed)) {
133
+ // a few issues remain.
134
+ this.log.info('Bye! A few issues remain, fix manually and/or rerun doctor!');
135
+ }
136
+ else {
137
+ // nothing left to fix.
138
+ this.log.info('Bye! All issues have been fixed!');
139
+ }
140
+ this.log.info('');
141
+ }
142
+ async run() {
143
+ await this.diagnose();
144
+ if (this.reportSuccess()) {
145
+ return;
146
+ }
147
+ if (await this.reportManualIssues()) {
148
+ return;
149
+ }
150
+ await this.runAutoFixes();
151
+ }
152
+ /**
153
+ * @param {DoctorCheckResult} result
154
+ * @param {DoctorCheck} check
155
+ * @returns {DoctorIssue?}
156
+ */
157
+ toIssue(result, check) {
158
+ if (result.ok) {
159
+ this.log.info(` ${'\u2714'.green} ${result.message}`);
160
+ return null;
161
+ }
162
+ const errorMessage = result.optional
163
+ ? ` ${'\u2716'.yellow} ${result.message}`
164
+ : ` ${'\u2716'.red} ${result.message}`;
165
+ this.log.warn(errorMessage);
166
+ return {
167
+ error: errorMessage,
168
+ check,
169
+ };
170
+ }
171
+ /**
172
+ * @returns {string}
173
+ */
174
+ buildFixMessage() {
175
+ return `${support_1.util.pluralize('required fix', this.issuesRequiredToFix.length, true)} needed, ` +
176
+ `${support_1.util.pluralize('optional fix', this.issuesOptionalToFix.length, true)} possible`;
177
+ }
178
+ /**
179
+ * @returns {boolean}
180
+ */
181
+ reportSuccess() {
182
+ if (this.issuesRequiredToFix.length === 0 && this.issuesOptionalToFix.length === 0) {
183
+ this.log.info('Everything looks good, bye!');
184
+ this.log.info('');
185
+ return true;
186
+ }
187
+ return false;
188
+ }
189
+ }
190
+ exports.Doctor = Doctor;
191
+ /**
192
+ * @typedef DoctorIssue
193
+ * @property {DoctorCheck} check
194
+ * @property {string} error
195
+ * @property {boolean} [fixed]
196
+ */
197
+ /**
198
+ * @typedef {import('@appium/types').IDoctorCheck} DoctorCheck
199
+ * @typedef {import('@appium/types').DoctorCheckResult} DoctorCheckResult
200
+ */
201
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../lib/doctor/doctor.js"],"names":[],"mappings":";;;;;;AAAA,0BAAwB;AACxB,oDAAuB;AACvB,6CAAuD;AAEvD,MAAa,MAAM;IACjB;;OAEG;IACH,YAAY,MAAM,GAAG,EAAE;QACrB,IAAI,CAAC,GAAG,GAAG,gBAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtC,4BAA4B;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM;aACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aAC7B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,4BAA4B;QAC5B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,6BAA6B,IAAI,CAAC,eAAe,EAAE,OAAO,CAC3D,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,YAAY,GAAG,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACtF,MAAM,oBAAoB,GAAG,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAE9F,MAAM,YAAY,GAAG,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;YAChD,IAAI,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACrB,OAAO;aACR;YAED,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvB;YACD,uBAAuB;YACvB,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACxC,IAAI,OAAO,EAAE;oBACX,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC3B;aACF;YACD,KAAK,MAAM,CAAC,IAAI,gBAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;aAC/B;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,MAAM,YAAY,CAAC;YACjB,6BAA6B;YAC7B,iFAAiF;SAClF,EAAE,YAAY,CAAC,CAAC;QACjB,MAAM,YAAY,CAAC;YACjB,gCAAgC;YAChC,iEAAiE;SAClE,EAAE,oBAAoB,CAAC,CAAC;QAEzB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAChF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QAC5C,IAAI;YACF,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACrB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,gBAAM,CAAC,eAAe,CAAC,IAAI,EAAE;gBACxD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACrC,OAAO;aACR;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,OAAO;aACR;SACF;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,EAAE,EAAE;YACV,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;SACvD;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;SAC5D;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,SAAS,GAAG,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;YACzB,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnB;QACD,IAAI,gBAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YACtC,uBAAuB;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;SAC9E;aAAM;YACL,uBAAuB;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;SACnD;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,OAAO;SACR;QACD,IAAI,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE;YACnC,OAAO;SACR;QACD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,KAAK;QACnB,IAAI,MAAM,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;SACb;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ;YAClC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YACzC,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,GAAG,cAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW;YACxF,GAAG,cAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;YAClF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhMD,wBAgMC;AAED;;;;;GAKG;AAEH;;;GAGG"}
@@ -51,9 +51,9 @@ export class DriverConfig extends ExtensionConfig<"driver"> {
51
51
  * Given capabilities, find a matching driver within the config. Load its class and return it along with version and driver name.
52
52
  * @template {import('@appium/types').StringRecord} C
53
53
  * @param {C} caps
54
- * @returns {MatchedDriver}
54
+ * @returns {Promise<MatchedDriver>}
55
55
  */
56
- findMatchingDriver<C extends import("@appium/types").StringRecord<any>>({ automationName, platformName }: C): MatchedDriver;
56
+ findMatchingDriver<C extends import("@appium/types").StringRecord<any>>({ automationName, platformName }: C): Promise<MatchedDriver>;
57
57
  /**
58
58
  * Given an automation name and platform name, find a suitable driver and return its extension data.
59
59
  * @param {string} matchAutomationName
@@ -1 +1 @@
1
- {"version":3,"file":"driver-config.d.ts","sourceRoot":"","sources":["../../../lib/extension/driver-config.js"],"names":[],"mappings":"AAKA;;GAEG;AACH;IAOE;;;;;;;;;OASG;IACH,0BAAkC;IAalC;;;;;;OAMG;IACH,wBAJW,QAAQ,GAEN,YAAY,CAWxB;IAED;;;;OAIG;IACH,6BAHW,QAAQ,GACN,YAAY,GAAC,SAAS,CAIlC;IApCD;;;;OAIG;IACH,sBAIC;IA3BD;;;OAGG;IACH,sBAFU,IAAI,MAAM,CAAC,CAEA;IAoDrB;;OAEG;IACH,sEAGC;IAED;;;OAGG;IACH,2BAHW,YAAY,UAAU,CAAC,GACrB,OAAO,oBAAoB,EAAE,kBAAkB,EAAE,CA+C7D;IAWD;;;;;OAKG;IACH,8GAFa,aAAa,CAuCzB;IAED;;;;;OAKG;IACH,yCAJW,MAAM,qBACN,MAAM,GACJ,YAAY,UAAU,CAAC,GAAG,OAAO,cAAc,EAAE,gBAAgB,GAAG,OAAO,cAAc,EAAE,iBAAiB,CA4BxH;CACF;2EAIY,OAAO,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;2EAKrC,OAAO,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;4BAIrC,OAAO,eAAe,EAAE,aAAa;2BACrC,OAAO,cAAc,EAAE,YAAY;yBACnC,OAAO,eAAe,EAAE,UAAU;uBAClC,OAAO,YAAY,EAAE,QAAQ;yEAK7B,OAAO,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;uEAKnC,OAAO,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;;;;;YAMhC,OAAO,eAAe,EAAE,WAAW;aACnC,MAAM;gBACN,MAAM;;gCAlPU,oBAAoB"}
1
+ {"version":3,"file":"driver-config.d.ts","sourceRoot":"","sources":["../../../lib/extension/driver-config.js"],"names":[],"mappings":"AAKA;;GAEG;AACH;IAOE;;;;;;;;;OASG;IACH,0BAAkC;IAalC;;;;;;OAMG;IACH,wBAJW,QAAQ,GAEN,YAAY,CAWxB;IAED;;;;OAIG;IACH,6BAHW,QAAQ,GACN,YAAY,GAAC,SAAS,CAIlC;IApCD;;;;OAIG;IACH,sBAIC;IA3BD;;;OAGG;IACH,sBAFU,IAAI,MAAM,CAAC,CAEA;IAoDrB;;OAEG;IACH,sEAGC;IAED;;;OAGG;IACH,2BAHW,YAAY,UAAU,CAAC,GACrB,OAAO,oBAAoB,EAAE,kBAAkB,EAAE,CA+C7D;IAWD;;;;;OAKG;IACH,8GAFa,QAAQ,aAAa,CAAC,CAuClC;IAED;;;;;OAKG;IACH,yCAJW,MAAM,qBACN,MAAM,GACJ,YAAY,UAAU,CAAC,GAAG,OAAO,cAAc,EAAE,gBAAgB,GAAG,OAAO,cAAc,EAAE,iBAAiB,CA4BxH;CACF;2EAIY,OAAO,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;2EAKrC,OAAO,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;4BAIrC,OAAO,eAAe,EAAE,aAAa;2BACrC,OAAO,cAAc,EAAE,YAAY;yBACnC,OAAO,eAAe,EAAE,UAAU;uBAClC,OAAO,YAAY,EAAE,QAAQ;yEAK7B,OAAO,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;uEAKnC,OAAO,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;;;;;YAMhC,OAAO,eAAe,EAAE,WAAW;aACnC,MAAM;gBACN,MAAM;;gCAlPU,oBAAoB"}