appium 3.3.0 → 3.3.1

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 (196) hide show
  1. package/build/lib/appium.d.ts +147 -205
  2. package/build/lib/appium.d.ts.map +1 -1
  3. package/build/lib/appium.js +169 -282
  4. package/build/lib/appium.js.map +1 -1
  5. package/build/lib/bidi-commands.d.ts.map +1 -1
  6. package/build/lib/bidi-commands.js +11 -11
  7. package/build/lib/bidi-commands.js.map +1 -1
  8. package/build/lib/bootstrap/appium-initializer.d.ts +21 -0
  9. package/build/lib/bootstrap/appium-initializer.d.ts.map +1 -0
  10. package/build/lib/bootstrap/appium-initializer.js +146 -0
  11. package/build/lib/bootstrap/appium-initializer.js.map +1 -0
  12. package/build/lib/bootstrap/appium-main-runner.d.ts +22 -0
  13. package/build/lib/bootstrap/appium-main-runner.d.ts.map +1 -0
  14. package/build/lib/bootstrap/appium-main-runner.js +109 -0
  15. package/build/lib/bootstrap/appium-main-runner.js.map +1 -0
  16. package/build/lib/bootstrap/config-file.d.ts +37 -0
  17. package/build/lib/bootstrap/config-file.d.ts.map +1 -0
  18. package/build/lib/{config-file.js → bootstrap/config-file.js} +9 -26
  19. package/build/lib/bootstrap/config-file.js.map +1 -0
  20. package/build/lib/bootstrap/grid-v3-register.d.ts +20 -0
  21. package/build/lib/bootstrap/grid-v3-register.d.ts.map +1 -0
  22. package/build/lib/{grid-register.js → bootstrap/grid-v3-register.js} +28 -13
  23. package/build/lib/bootstrap/grid-v3-register.js.map +1 -0
  24. package/build/lib/bootstrap/init-types.d.ts +16 -0
  25. package/build/lib/bootstrap/init-types.d.ts.map +1 -0
  26. package/build/lib/bootstrap/init-types.js +3 -0
  27. package/build/lib/bootstrap/init-types.js.map +1 -0
  28. package/build/lib/bootstrap/main-helpers.d.ts +55 -0
  29. package/build/lib/bootstrap/main-helpers.d.ts.map +1 -0
  30. package/build/lib/bootstrap/main-helpers.js +187 -0
  31. package/build/lib/bootstrap/main-helpers.js.map +1 -0
  32. package/build/lib/bootstrap/node-helpers.d.ts +32 -0
  33. package/build/lib/bootstrap/node-helpers.d.ts.map +1 -0
  34. package/build/lib/bootstrap/node-helpers.js +201 -0
  35. package/build/lib/bootstrap/node-helpers.js.map +1 -0
  36. package/build/lib/bootstrap/startup-config.d.ts +22 -0
  37. package/build/lib/bootstrap/startup-config.d.ts.map +1 -0
  38. package/build/lib/bootstrap/startup-config.js +111 -0
  39. package/build/lib/bootstrap/startup-config.js.map +1 -0
  40. package/build/lib/cli/args.d.ts.map +1 -1
  41. package/build/lib/cli/args.js +9 -9
  42. package/build/lib/cli/args.js.map +1 -1
  43. package/build/lib/cli/extension-command.d.ts +95 -95
  44. package/build/lib/cli/extension-command.d.ts.map +1 -1
  45. package/build/lib/cli/extension-command.js +18 -18
  46. package/build/lib/cli/extension-command.js.map +1 -1
  47. package/build/lib/cli/extension.d.ts +1 -1
  48. package/build/lib/cli/extension.d.ts.map +1 -1
  49. package/build/lib/cli/extension.js +5 -5
  50. package/build/lib/cli/extension.js.map +1 -1
  51. package/build/lib/cli/parser.d.ts +8 -8
  52. package/build/lib/cli/parser.d.ts.map +1 -1
  53. package/build/lib/cli/parser.js +49 -49
  54. package/build/lib/cli/parser.js.map +1 -1
  55. package/build/lib/cli/setup-command.js +6 -6
  56. package/build/lib/cli/setup-command.js.map +1 -1
  57. package/build/lib/cli/utils.d.ts +17 -17
  58. package/build/lib/cli/utils.d.ts.map +1 -1
  59. package/build/lib/cli/utils.js +29 -29
  60. package/build/lib/cli/utils.js.map +1 -1
  61. package/build/lib/doctor/doctor.d.ts +2 -2
  62. package/build/lib/doctor/doctor.d.ts.map +1 -1
  63. package/build/lib/doctor/doctor.js +6 -6
  64. package/build/lib/doctor/doctor.js.map +1 -1
  65. package/build/lib/extension/driver-config.d.ts +18 -77
  66. package/build/lib/extension/driver-config.d.ts.map +1 -1
  67. package/build/lib/extension/driver-config.js +37 -125
  68. package/build/lib/extension/driver-config.js.map +1 -1
  69. package/build/lib/extension/extension-config.d.ts +103 -210
  70. package/build/lib/extension/extension-config.d.ts.map +1 -1
  71. package/build/lib/extension/extension-config.js +180 -342
  72. package/build/lib/extension/extension-config.js.map +1 -1
  73. package/build/lib/extension/index.d.ts +12 -29
  74. package/build/lib/extension/index.d.ts.map +1 -1
  75. package/build/lib/extension/index.js +33 -75
  76. package/build/lib/extension/index.js.map +1 -1
  77. package/build/lib/extension/manifest-migrations.d.ts +3 -20
  78. package/build/lib/extension/manifest-migrations.d.ts.map +1 -1
  79. package/build/lib/extension/manifest-migrations.js +20 -101
  80. package/build/lib/extension/manifest-migrations.js.map +1 -1
  81. package/build/lib/extension/manifest.d.ts +61 -107
  82. package/build/lib/extension/manifest.d.ts.map +1 -1
  83. package/build/lib/extension/manifest.js +181 -356
  84. package/build/lib/extension/manifest.js.map +1 -1
  85. package/build/lib/extension/package-changed.d.ts +1 -3
  86. package/build/lib/extension/package-changed.d.ts.map +1 -1
  87. package/build/lib/extension/package-changed.js +8 -15
  88. package/build/lib/extension/package-changed.js.map +1 -1
  89. package/build/lib/extension/plugin-config.d.ts +10 -52
  90. package/build/lib/extension/plugin-config.d.ts.map +1 -1
  91. package/build/lib/extension/plugin-config.js +11 -63
  92. package/build/lib/extension/plugin-config.js.map +1 -1
  93. package/build/lib/helpers/build.d.ts +22 -0
  94. package/build/lib/helpers/build.d.ts.map +1 -0
  95. package/build/lib/helpers/build.js +109 -0
  96. package/build/lib/helpers/build.js.map +1 -0
  97. package/build/lib/helpers/capability.d.ts +38 -0
  98. package/build/lib/helpers/capability.d.ts.map +1 -0
  99. package/build/lib/helpers/capability.js +128 -0
  100. package/build/lib/helpers/capability.js.map +1 -0
  101. package/build/lib/helpers/network.d.ts +14 -0
  102. package/build/lib/helpers/network.d.ts.map +1 -0
  103. package/build/lib/helpers/network.js +35 -0
  104. package/build/lib/helpers/network.js.map +1 -0
  105. package/build/lib/insecure-features.js +6 -6
  106. package/build/lib/insecure-features.js.map +1 -1
  107. package/build/lib/inspector-commands.d.ts +6 -0
  108. package/build/lib/inspector-commands.d.ts.map +1 -1
  109. package/build/lib/inspector-commands.js +6 -0
  110. package/build/lib/inspector-commands.js.map +1 -1
  111. package/build/lib/logger.d.ts +2 -3
  112. package/build/lib/logger.d.ts.map +1 -1
  113. package/build/lib/logger.js +2 -3
  114. package/build/lib/logger.js.map +1 -1
  115. package/build/lib/main.d.ts +15 -58
  116. package/build/lib/main.d.ts.map +1 -1
  117. package/build/lib/main.js +25 -425
  118. package/build/lib/main.js.map +1 -1
  119. package/build/lib/schema/cli-args-guards.d.ts +34 -0
  120. package/build/lib/schema/cli-args-guards.d.ts.map +1 -0
  121. package/build/lib/schema/cli-args-guards.js +49 -0
  122. package/build/lib/schema/cli-args-guards.js.map +1 -0
  123. package/build/lib/schema/cli-args.js +2 -2
  124. package/build/lib/schema/cli-args.js.map +1 -1
  125. package/build/lib/schema/format-errors.d.ts +28 -0
  126. package/build/lib/schema/format-errors.d.ts.map +1 -0
  127. package/build/lib/schema/format-errors.js +29 -0
  128. package/build/lib/schema/format-errors.js.map +1 -0
  129. package/build/lib/schema/index.d.ts +2 -0
  130. package/build/lib/schema/index.d.ts.map +1 -1
  131. package/build/lib/schema/index.js +2 -0
  132. package/build/lib/schema/index.js.map +1 -1
  133. package/build/lib/schema/schema.d.ts +15 -15
  134. package/build/lib/schema/schema.d.ts.map +1 -1
  135. package/build/lib/schema/schema.js +37 -37
  136. package/build/lib/schema/schema.js.map +1 -1
  137. package/build/lib/utils.d.ts +0 -81
  138. package/build/lib/utils.d.ts.map +1 -1
  139. package/build/lib/utils.js +1 -248
  140. package/build/lib/utils.js.map +1 -1
  141. package/lib/{appium.js → appium.ts} +297 -341
  142. package/lib/bidi-commands.ts +10 -14
  143. package/lib/bootstrap/appium-initializer.ts +212 -0
  144. package/lib/bootstrap/appium-main-runner.ts +172 -0
  145. package/lib/{config-file.ts → bootstrap/config-file.ts} +29 -63
  146. package/lib/{grid-register.ts → bootstrap/grid-v3-register.ts} +35 -35
  147. package/lib/bootstrap/init-types.ts +31 -0
  148. package/lib/bootstrap/main-helpers.ts +223 -0
  149. package/lib/bootstrap/node-helpers.ts +180 -0
  150. package/lib/bootstrap/startup-config.ts +143 -0
  151. package/lib/cli/args.ts +10 -10
  152. package/lib/cli/extension-command.ts +132 -132
  153. package/lib/cli/extension.ts +7 -7
  154. package/lib/cli/parser.ts +50 -50
  155. package/lib/cli/setup-command.ts +2 -2
  156. package/lib/cli/utils.ts +33 -33
  157. package/lib/doctor/doctor.ts +8 -8
  158. package/lib/extension/driver-config.ts +165 -0
  159. package/lib/extension/{extension-config.js → extension-config.ts} +291 -405
  160. package/lib/extension/index.ts +143 -0
  161. package/lib/extension/manifest-migrations.ts +57 -0
  162. package/lib/extension/manifest.ts +369 -0
  163. package/lib/extension/{package-changed.js → package-changed.ts} +9 -18
  164. package/lib/extension/plugin-config.ts +62 -0
  165. package/lib/helpers/build.ts +111 -0
  166. package/lib/helpers/capability.ts +171 -0
  167. package/lib/helpers/network.ts +30 -0
  168. package/lib/insecure-features.ts +1 -1
  169. package/lib/inspector-commands.ts +6 -1
  170. package/lib/{logger.js → logger.ts} +1 -2
  171. package/lib/main.ts +60 -0
  172. package/lib/schema/cli-args-guards.ts +67 -0
  173. package/lib/schema/cli-args.ts +1 -1
  174. package/lib/schema/format-errors.ts +43 -0
  175. package/lib/schema/index.ts +2 -0
  176. package/lib/schema/schema.ts +51 -52
  177. package/lib/utils.ts +0 -331
  178. package/package.json +12 -13
  179. package/scripts/autoinstall-extensions.js +3 -0
  180. package/build/lib/config-file.d.ts +0 -57
  181. package/build/lib/config-file.d.ts.map +0 -1
  182. package/build/lib/config-file.js.map +0 -1
  183. package/build/lib/config.d.ts +0 -68
  184. package/build/lib/config.d.ts.map +0 -1
  185. package/build/lib/config.js +0 -358
  186. package/build/lib/config.js.map +0 -1
  187. package/build/lib/grid-register.d.ts +0 -35
  188. package/build/lib/grid-register.d.ts.map +0 -1
  189. package/build/lib/grid-register.js.map +0 -1
  190. package/lib/config.ts +0 -377
  191. package/lib/extension/driver-config.js +0 -245
  192. package/lib/extension/index.js +0 -169
  193. package/lib/extension/manifest-migrations.js +0 -136
  194. package/lib/extension/manifest.js +0 -550
  195. package/lib/extension/plugin-config.js +0 -112
  196. package/lib/main.js +0 -545
@@ -36,45 +36,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.formatErrors = formatErrors;
40
39
  exports.readConfigFile = readConfigFile;
41
40
  exports.normalizeConfig = normalizeConfig;
42
- const better_ajv_errors_1 = __importDefault(require("@sidvind/better-ajv-errors"));
43
41
  const lilconfig_1 = require("lilconfig");
44
42
  const lodash_1 = __importDefault(require("lodash"));
45
43
  const yaml = __importStar(require("yaml"));
46
- const schema_1 = require("./schema/schema");
44
+ const schema_1 = require("../schema/schema");
45
+ const format_errors_1 = require("../schema/format-errors");
47
46
  /**
48
47
  * A cache of the raw config file (a JSON string) at a filepath.
49
48
  * This is used for better error reporting.
50
49
  * Note that config files needn't be JSON, but it helps if they are.
51
50
  */
52
51
  const rawConfig = new Map();
53
- /**
54
- * Given an array of errors and the result of loading a config file, generate a
55
- * helpful string for the user.
56
- *
57
- * - If `opts` contains a `json` property, this should be the original JSON
58
- * _string_ of the config file. This is only applicable if the config file
59
- * was in JSON format. If present, it will associate line numbers with errors.
60
- * - If `errors` happens to be empty, this will throw.
61
- *
62
- * @throws {TypeError} If `errors` is empty
63
- */
64
- function formatErrors(errors = [], config = {}, opts = {}) {
65
- if (errors && !errors.length) {
66
- throw new TypeError('Array of errors must be non-empty');
67
- }
68
- return (0, better_ajv_errors_1.default)((0, schema_1.getSchema)(opts.schemaId), config, errors, {
69
- json: opts.json,
70
- format: opts.pretty === false ? 'js' : 'cli',
71
- });
72
- }
73
52
  /**
74
53
  * Given an optional path, read a config file. Validates the config file.
75
54
  *
76
55
  * Call {@link validate} if you already have a config object.
77
56
  * @public
57
+ * @param filepath - Explicit config path; when omitted, searches with lilconfig
58
+ * @param opts - e.g. `pretty` for formatted validation errors
78
59
  * @returns Contains config and filepath, if found, and any errors
79
60
  */
80
61
  async function readConfigFile(filepath, opts = {}) {
@@ -97,7 +78,7 @@ async function readConfigFile(filepath, opts = {}) {
97
78
  configResult = { ...result, errors };
98
79
  }
99
80
  else {
100
- const reason = formatErrors(errors, result.config, {
81
+ const reason = (0, format_errors_1.formatErrors)(errors, result.config, {
101
82
  json: rawConfig.get(result.filepath),
102
83
  pretty,
103
84
  });
@@ -115,8 +96,10 @@ async function readConfigFile(filepath, opts = {}) {
115
96
  return result ?? {};
116
97
  }
117
98
  /**
118
- * Convert schema property names to either a) the value of the `appiumCliDest` property, if any; or b) camel-case
119
- * @returns New object with camel-cased keys (or `dest` keys).
99
+ * Converts schema property names to either the `appiumCliDest` value, if any, or camelCase.
100
+ *
101
+ * @param config - Raw config object as parsed from file
102
+ * @returns New object with camel-cased keys (or CLI `dest` keys).
120
103
  */
121
104
  function normalizeConfig(config) {
122
105
  const schema = (0, schema_1.getSchema)();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../../lib/bootstrap/config-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { StringRecord } from '@appium/types';
2
+ interface Grid3HubConfiguration {
3
+ hubProtocol?: string;
4
+ hubHost?: string;
5
+ hubPort?: number;
6
+ url?: string;
7
+ host?: string;
8
+ port?: number;
9
+ id?: string;
10
+ register?: boolean;
11
+ registerCycle?: number;
12
+ }
13
+ interface Grid3NodeConfig extends StringRecord {
14
+ configuration?: Grid3HubConfiguration;
15
+ capabilities?: unknown;
16
+ }
17
+ export default function registerNode(data: string, addr: string, port: number, basePath: string): Promise<void>;
18
+ export default function registerNode(data: Grid3NodeConfig, addr?: string, port?: number, basePath?: string): Promise<void>;
19
+ export {};
20
+ //# sourceMappingURL=grid-v3-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-v3-register.d.ts","sourceRoot":"","sources":["../../../lib/bootstrap/grid-v3-register.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAkBhD,UAAU,qBAAqB;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC5C,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD,wBAA8B,YAAY,CACxC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAAC;AACjB,wBAA8B,YAAY,CACxC,IAAI,EAAE,eAAe,EACrB,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -7,7 +7,7 @@ exports.default = registerNode;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const support_1 = require("@appium/support");
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
- const logger_1 = __importDefault(require("./logger"));
10
+ const logger_1 = require("../logger");
11
11
  /**
12
12
  * Selenium **Grid 3** (legacy hub) node integration.
13
13
  *
@@ -20,14 +20,29 @@ const logger_1 = __importDefault(require("./logger"));
20
20
  /** REST paths exposed by a Selenium Grid 3 hub. */
21
21
  const GRID_V3_REGISTER_PATH = '/grid/register';
22
22
  const GRID_V3_PROXY_API_PATH = '/grid/api/proxy';
23
+ /**
24
+ * Registers this server as a node with a **Selenium Grid 3** hub.
25
+ *
26
+ * When `data` is a path to a JSON config file, `addr`, `port`, and `basePath` are required (they define
27
+ * how the hub reaches this Appium server). When `data` is an inline config object, those parameters are
28
+ * optional and only used to fill missing node URL fields in the config.
29
+ *
30
+ * @deprecated Selenium Grid 3 registration is legacy and slated for removal.
31
+ * Use Selenium Grid 4 integration (node relay) instead.
32
+ *
33
+ * @param data - Path to a JSON file or an inline parsed config object
34
+ * @param addr - Bind to this address
35
+ * @param port - Bind to this port
36
+ * @param basePath - Base path for the Appium server (used in the node URL sent to the hub; may be `''`)
37
+ */
23
38
  async function registerNode(data, addr, port, basePath) {
24
39
  if (typeof data === 'string') {
25
40
  if (addr === undefined || port === undefined || basePath === undefined) {
26
- throw logger_1.default.errorWithException('When the first argument is a Selenium Grid 3 node config file path, address, port, and basePath ' +
41
+ throw logger_1.log.errorWithException('When the first argument is a Selenium Grid 3 node config file path, address, port, and basePath ' +
27
42
  'are required (e.g. match your Appium `--address`, `--port`, and base path).');
28
43
  }
29
44
  if (typeof port !== 'number' || !Number.isFinite(port)) {
30
- throw logger_1.default.errorWithException('When registering from a node config file path, port must be a finite number.');
45
+ throw logger_1.log.errorWithException('When registering from a node config file path, port must be a finite number.');
31
46
  }
32
47
  }
33
48
  let configHolder;
@@ -38,7 +53,7 @@ async function registerNode(data, addr, port, basePath) {
38
53
  fileContent = await support_1.fs.readFile(data, 'utf-8');
39
54
  }
40
55
  catch (err) {
41
- logger_1.default.error(`Unable to load Selenium Grid 3 node configuration file ${configFilePath} to ` +
56
+ logger_1.log.error(`Unable to load Selenium Grid 3 node configuration file ${configFilePath} to ` +
42
57
  `register with the hub: ${err.message}`);
43
58
  return;
44
59
  }
@@ -46,7 +61,7 @@ async function registerNode(data, addr, port, basePath) {
46
61
  configHolder = JSON.parse(fileContent);
47
62
  }
48
63
  catch (err) {
49
- throw logger_1.default.errorWithException(`Syntax error in Selenium Grid 3 node configuration file ${configFilePath}: ` +
64
+ throw logger_1.log.errorWithException(`Syntax error in Selenium Grid 3 node configuration file ${configFilePath}: ` +
50
65
  err.message);
51
66
  }
52
67
  }
@@ -71,10 +86,10 @@ async function registerToGrid(postOptions, configHolder) {
71
86
  if (status !== 200) {
72
87
  throw new Error(`Request failed with code ${status}`);
73
88
  }
74
- logger_1.default.debug(`Appium successfully registered with the Selenium Grid 3 hub at ` + hubUri(hubCfg));
89
+ logger_1.log.debug(`Appium successfully registered with the Selenium Grid 3 hub at ` + hubUri(hubCfg));
75
90
  }
76
91
  catch (err) {
77
- logger_1.default.error(`An attempt to register with the Selenium Grid 3 hub was unsuccessful: ` +
92
+ logger_1.log.error(`An attempt to register with the Selenium Grid 3 hub was unsuccessful: ` +
78
93
  err.message);
79
94
  }
80
95
  }
@@ -116,18 +131,18 @@ function postRequest(configHolder, addr, port, basePath) {
116
131
  data: configHolder,
117
132
  };
118
133
  if (cfg.register !== true) {
119
- logger_1.default.debug(`No Selenium Grid 3 hub registration sent (${cfg.register} = false)`);
134
+ logger_1.log.debug(`No Selenium Grid 3 hub registration sent (${cfg.register} = false)`);
120
135
  return;
121
136
  }
122
137
  const registerCycleInterval = cfg.registerCycle;
123
138
  if (registerCycleInterval === undefined || isNaN(registerCycleInterval) || registerCycleInterval <= 0) {
124
- logger_1.default.warn(`'registerCycle' is not a valid positive number. ` +
139
+ logger_1.log.warn(`'registerCycle' is not a valid positive number. ` +
125
140
  `No registration request will be sent to the Selenium Grid 3 hub.`);
126
141
  return;
127
142
  }
128
143
  // initiate a new Thread
129
144
  let first = true;
130
- logger_1.default.debug(`Starting auto-register thread for Selenium Grid 3. ` +
145
+ logger_1.log.debug(`Starting auto-register thread for Selenium Grid 3. ` +
131
146
  `Will try to register every ${registerCycleInterval} ms.`);
132
147
  setInterval(async function registerRetry() {
133
148
  if (first) {
@@ -159,12 +174,12 @@ async function isAlreadyRegistered(configHolder) {
159
174
  }
160
175
  if (!data.success) {
161
176
  // if register fail, print the debug msg
162
- logger_1.default.debug(`Selenium Grid 3 hub registration check: ${data.msg}`);
177
+ logger_1.log.debug(`Selenium Grid 3 hub registration check: ${data.msg}`);
163
178
  }
164
179
  return data.success;
165
180
  }
166
181
  catch (err) {
167
- logger_1.default.debug(`Selenium Grid 3 hub down or not responding: ${err.message}`);
182
+ logger_1.log.debug(`Selenium Grid 3 hub down or not responding: ${err.message}`);
168
183
  }
169
184
  }
170
- //# sourceMappingURL=grid-register.js.map
185
+ //# sourceMappingURL=grid-v3-register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-v3-register.js","sourceRoot":"","sources":["../../../lib/bootstrap/grid-v3-register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { AppiumDriver } from '../appium';
2
+ import type { Args, CliCommand, CliCommandServer, CliCommandSetupSubcommand, CliExtensionSubcommand, ParsedArgs } from 'appium/types';
3
+ import type { ExtensionConfigs } from '../extension';
4
+ /** Empty object returned when `init` completes for non-server CLI flows (extension/setup). */
5
+ export type ExtCommandInitResult = Record<string, never>;
6
+ /** Driver/plugin config plus server instance and merged server args after successful server `init`. */
7
+ export type ServerInitData = ExtensionConfigs & {
8
+ appiumDriver: AppiumDriver;
9
+ parsedArgs: ParsedArgs<CliCommandServer>;
10
+ appiumHome: string;
11
+ };
12
+ /** Discriminated by CLI command: server subcommand yields {@link ServerInitData}; otherwise {@link ExtCommandInitResult}. */
13
+ export type InitResult<Cmd extends CliCommand = CliCommandServer> = Cmd extends CliCommandServer ? ServerInitData : ExtCommandInitResult;
14
+ /** CLI + programmatic args before `init` narrows by `subcommand`. */
15
+ export type PreConfigArgs = Args<CliCommand, CliExtensionSubcommand | CliCommandSetupSubcommand | void>;
16
+ //# sourceMappingURL=init-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-types.d.ts","sourceRoot":"","sources":["../../../lib/bootstrap/init-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAEnD,8FAA8F;AAC9F,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEzD,uGAAuG;AACvG,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG;IAC9C,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,6HAA6H;AAC7H,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,UAAU,GAAG,gBAAgB,IAAI,GAAG,SAAS,gBAAgB,GAC5F,cAAc,GACd,oBAAoB,CAAC;AAEzB,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,UAAU,EACV,sBAAsB,GAAG,yBAAyB,GAAG,IAAI,CAC1D,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=init-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-types.js","sourceRoot":"","sources":["../../../lib/bootstrap/init-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ import { type ServerOpts } from '@appium/base-driver';
2
+ import type { AppiumServer, Driver, MethodMap, UpdateServerCallback } from '@appium/types';
3
+ import type { AppiumDriver } from '../appium';
4
+ import type { ParsedArgs, CliCommandServer } from 'appium/types';
5
+ import type { DriverNameMap, PluginNameMap } from '../extension';
6
+ /**
7
+ * Logs a value to the console using the info logger (with util.inspect formatting).
8
+ */
9
+ export declare const inspect: (t1: unknown) => void;
10
+ /**
11
+ * Prints the current build info JSON to stdout.
12
+ *
13
+ * This updates build metadata first (using GitHub fallback) and then logs the
14
+ * resulting {@link BuildInfo} object.
15
+ */
16
+ export declare function showBuildInfo(): Promise<void>;
17
+ /**
18
+ * Human-readable label for where Appium resolved `APPIUM_HOME` from (CLI, env, or autodetect).
19
+ */
20
+ export declare function determineAppiumHomeSource(appiumHomeFromArgs?: string | null): string;
21
+ /**
22
+ * Logs the REST listener URL; if the bind address is a broadcast address, lists concrete interface URLs.
23
+ */
24
+ export declare function logServerAddress(url: string): void;
25
+ /**
26
+ * Validates Node version, optional long stack traces, schema, tmp dir, and `--build-info` early exit.
27
+ *
28
+ * @param args - Parsed server CLI args
29
+ * @param throwInsteadOfExit - When true, rethrows failures instead of calling `process.exit(1)`
30
+ */
31
+ export declare function preflightChecks(args: ParsedArgs<CliCommandServer>, throwInsteadOfExit?: boolean): Promise<void>;
32
+ /**
33
+ * Prints welcome line (version + optional git rev), non-default server args, and default capabilities.
34
+ */
35
+ export declare function logStartupInfo(args: ParsedArgs<CliCommandServer>): Promise<void>;
36
+ /**
37
+ * Collects `updateServer` hooks from active driver and plugin classes for HTTP server customization.
38
+ */
39
+ export declare function getServerUpdaters(driverClasses: DriverNameMap, pluginClasses: PluginNameMap): UpdateServerCallback[];
40
+ /**
41
+ * Merges `newMethodMap` contributions from all active drivers and plugins into one method map.
42
+ */
43
+ export declare function getExtraMethodMap(driverClasses: DriverNameMap, pluginClasses: PluginNameMap): MethodMap<Driver>;
44
+ /**
45
+ * Builds {@link ServerOpts} and normalized base path for the Appium HTTP server from CLI args and extensions.
46
+ */
47
+ export declare function buildServerOpts(appiumDriver: AppiumDriver, parsedArgs: ParsedArgs<CliCommandServer>, driverClasses: DriverNameMap, pluginClasses: PluginNameMap): {
48
+ serverOpts: ServerOpts;
49
+ normalizedBasePath: string;
50
+ };
51
+ /**
52
+ * Creates the Appium HTTP server and attaches WebSocket handlers for BiDi under the normalized base path.
53
+ */
54
+ export declare function createAppiumServer(serverOpts: ServerOpts, appiumDriver: AppiumDriver, normalizedBasePath: string): Promise<AppiumServer>;
55
+ //# sourceMappingURL=main-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-helpers.d.ts","sourceRoot":"","sources":["../../../lib/bootstrap/main-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAGzF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAO5C,OAAO,KAAK,EAAO,UAAU,EAAE,gBAAgB,EAAC,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,OAAO,uBASnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAInD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQpF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAiBlD;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAClC,kBAAkB,UAAQ,GACzB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAetF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,GAC3B,oBAAoB,EAAE,CAExB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAQ/G;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,CAAC,gBAAgB,CAAC,EACxC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,GAC3B;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAC,CAmBtD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,YAAY,CAAC,CASvB"}
@@ -0,0 +1,187 @@
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.inspect = void 0;
7
+ exports.showBuildInfo = showBuildInfo;
8
+ exports.determineAppiumHomeSource = determineAppiumHomeSource;
9
+ exports.logServerAddress = logServerAddress;
10
+ exports.preflightChecks = preflightChecks;
11
+ exports.logStartupInfo = logStartupInfo;
12
+ exports.getServerUpdaters = getServerUpdaters;
13
+ exports.getExtraMethodMap = getExtraMethodMap;
14
+ exports.buildServerOpts = buildServerOpts;
15
+ exports.createAppiumServer = createAppiumServer;
16
+ const node_util_1 = require("node:util");
17
+ const logger_1 = require("../logger");
18
+ const base_driver_1 = require("@appium/base-driver");
19
+ const lodash_1 = __importDefault(require("lodash"));
20
+ const ws_1 = require("ws");
21
+ const build_1 = require("../helpers/build");
22
+ const node_helpers_1 = require("./node-helpers");
23
+ const startup_config_1 = require("./startup-config");
24
+ const schema_1 = require("../schema/schema");
25
+ const network_1 = require("../helpers/network");
26
+ const constants_1 = require("../constants");
27
+ const isStdoutTTY = process.stdout.isTTY;
28
+ /**
29
+ * Logs a value to the console using the info logger (with util.inspect formatting).
30
+ */
31
+ exports.inspect = lodash_1.default.flow(lodash_1.default.partialRight(node_util_1.inspect, {
32
+ colors: true,
33
+ depth: null,
34
+ compact: !isStdoutTTY,
35
+ }), (...args) => {
36
+ logger_1.log.info(...args);
37
+ });
38
+ /**
39
+ * Prints the current build info JSON to stdout.
40
+ *
41
+ * This updates build metadata first (using GitHub fallback) and then logs the
42
+ * resulting {@link BuildInfo} object.
43
+ */
44
+ async function showBuildInfo() {
45
+ await (0, build_1.updateBuildInfo)(true);
46
+ // eslint-disable-next-line no-console -- CLI output for --build-info
47
+ console.log(JSON.stringify((0, build_1.getBuildInfo)()));
48
+ }
49
+ /**
50
+ * Human-readable label for where Appium resolved `APPIUM_HOME` from (CLI, env, or autodetect).
51
+ */
52
+ function determineAppiumHomeSource(appiumHomeFromArgs) {
53
+ if (!lodash_1.default.isNil(appiumHomeFromArgs)) {
54
+ return 'appiumHome config value';
55
+ }
56
+ if (process.env.APPIUM_HOME) {
57
+ return 'APPIUM_HOME environment variable';
58
+ }
59
+ return 'autodetected Appium home path';
60
+ }
61
+ /**
62
+ * Logs the REST listener URL; if the bind address is a broadcast address, lists concrete interface URLs.
63
+ */
64
+ function logServerAddress(url) {
65
+ const urlObj = new URL(url);
66
+ logger_1.log.info(`Appium REST http interface listener started on ${url}`);
67
+ if (!(0, network_1.isBroadcastIp)(urlObj.hostname)) {
68
+ return;
69
+ }
70
+ const interfaces = (0, network_1.fetchInterfaces)(urlObj.hostname === network_1.V4_BROADCAST_IP ? 4 : 6);
71
+ const toLabel = (iface) => {
72
+ const href = urlObj.href.replace(urlObj.hostname, iface.address);
73
+ return iface.internal ? `${href} (only accessible from the same host)` : href;
74
+ };
75
+ logger_1.log.info(`You can provide the following ${interfaces.length === 1 ? 'URL' : 'URLs'} ` +
76
+ `in your client code to connect to this server:\n` +
77
+ interfaces.map((iface) => `\t${toLabel(iface)}`).join('\n'));
78
+ }
79
+ /**
80
+ * Validates Node version, optional long stack traces, schema, tmp dir, and `--build-info` early exit.
81
+ *
82
+ * @param args - Parsed server CLI args
83
+ * @param throwInsteadOfExit - When true, rethrows failures instead of calling `process.exit(1)`
84
+ */
85
+ async function preflightChecks(args, throwInsteadOfExit = false) {
86
+ try {
87
+ (0, node_helpers_1.checkNodeOk)();
88
+ if (args.longStacktrace) {
89
+ Error.stackTraceLimit = constants_1.LONG_STACKTRACE_LIMIT;
90
+ }
91
+ if (args.showBuildInfo) {
92
+ await showBuildInfo();
93
+ process.exit(0);
94
+ }
95
+ (0, schema_1.validate)(args);
96
+ if (args.tmpDir) {
97
+ await (0, node_helpers_1.requireDir)(args.tmpDir, !args.noPermsCheck, 'tmpDir argument value');
98
+ }
99
+ }
100
+ catch (err) {
101
+ const message = err instanceof Error ? err.message : String(err);
102
+ logger_1.log.error(message.red);
103
+ if (throwInsteadOfExit) {
104
+ throw err;
105
+ }
106
+ process.exit(1);
107
+ }
108
+ }
109
+ /**
110
+ * Prints welcome line (version + optional git rev), non-default server args, and default capabilities.
111
+ */
112
+ async function logStartupInfo(args) {
113
+ let welcome = `Welcome to Appium v${build_1.APPIUM_VER}`;
114
+ const appiumRev = await (0, build_1.getGitRev)();
115
+ if (appiumRev) {
116
+ welcome += ` (REV ${appiumRev})`;
117
+ }
118
+ logger_1.log.info(welcome);
119
+ const showArgs = (0, startup_config_1.getNonDefaultServerArgs)(args);
120
+ if (lodash_1.default.size(showArgs)) {
121
+ logNonDefaultArgsWarning(showArgs);
122
+ }
123
+ if (!lodash_1.default.isEmpty(args.defaultCapabilities)) {
124
+ logDefaultCapabilitiesWarning(args.defaultCapabilities);
125
+ }
126
+ }
127
+ /**
128
+ * Collects `updateServer` hooks from active driver and plugin classes for HTTP server customization.
129
+ */
130
+ function getServerUpdaters(driverClasses, pluginClasses) {
131
+ return lodash_1.default.compact(lodash_1.default.map([...driverClasses.keys(), ...pluginClasses.keys()], 'updateServer'));
132
+ }
133
+ /**
134
+ * Merges `newMethodMap` contributions from all active drivers and plugins into one method map.
135
+ */
136
+ function getExtraMethodMap(driverClasses, pluginClasses) {
137
+ return [...driverClasses.keys(), ...pluginClasses.keys()].reduce((map, klass) => ({
138
+ ...map,
139
+ ...(klass.newMethodMap ?? {}),
140
+ }), {});
141
+ }
142
+ /**
143
+ * Builds {@link ServerOpts} and normalized base path for the Appium HTTP server from CLI args and extensions.
144
+ */
145
+ function buildServerOpts(appiumDriver, parsedArgs, driverClasses, pluginClasses) {
146
+ const routeConfiguringFunction = (0, base_driver_1.routeConfiguringFunction)(appiumDriver);
147
+ const serverOpts = {
148
+ routeConfiguringFunction,
149
+ port: parsedArgs.port,
150
+ hostname: parsedArgs.address,
151
+ allowCors: parsedArgs.allowCors,
152
+ basePath: parsedArgs.basePath,
153
+ serverUpdaters: getServerUpdaters(driverClasses, pluginClasses),
154
+ extraMethodMap: getExtraMethodMap(driverClasses, pluginClasses),
155
+ cliArgs: parsedArgs,
156
+ };
157
+ const normalizedBasePath = (0, base_driver_1.normalizeBasePath)(parsedArgs.basePath);
158
+ for (const timeoutArgName of ['keepAliveTimeout', 'requestTimeout']) {
159
+ if (lodash_1.default.isInteger(parsedArgs[timeoutArgName])) {
160
+ serverOpts[timeoutArgName] = parsedArgs[timeoutArgName] * 1000;
161
+ }
162
+ }
163
+ return { serverOpts, normalizedBasePath };
164
+ }
165
+ /**
166
+ * Creates the Appium HTTP server and attaches WebSocket handlers for BiDi under the normalized base path.
167
+ */
168
+ async function createAppiumServer(serverOpts, appiumDriver, normalizedBasePath) {
169
+ const bidiServer = new ws_1.WebSocketServer({ noServer: true });
170
+ bidiServer.on('connection', appiumDriver.onBidiConnection.bind(appiumDriver));
171
+ bidiServer.on('error', appiumDriver.onBidiServerError.bind(appiumDriver));
172
+ const server = await (0, base_driver_1.server)(serverOpts);
173
+ const bidiBasePath = `${normalizedBasePath}${constants_1.BIDI_BASE_PATH}`;
174
+ await server.addWebSocketHandler(bidiBasePath, bidiServer);
175
+ await server.addWebSocketHandler(`${bidiBasePath}/:sessionId`, bidiServer);
176
+ return server;
177
+ }
178
+ function logNonDefaultArgsWarning(args) {
179
+ logger_1.log.info('Non-default server args:');
180
+ (0, exports.inspect)(args);
181
+ }
182
+ function logDefaultCapabilitiesWarning(caps) {
183
+ logger_1.log.info('Default capabilities, which will be added to each request ' +
184
+ 'unless overridden by desired capabilities:');
185
+ (0, exports.inspect)(caps);
186
+ }
187
+ //# sourceMappingURL=main-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-helpers.js","sourceRoot":"","sources":["../../../lib/bootstrap/main-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ interface DebugInfoInput {
2
+ driverConfig: {
3
+ installedExtensions: unknown;
4
+ };
5
+ pluginConfig: {
6
+ installedExtensions: unknown;
7
+ };
8
+ appiumHome: string;
9
+ }
10
+ /**
11
+ * @throws {Error} If Node version is outside of the supported range
12
+ */
13
+ export declare function checkNodeOk(): void;
14
+ /**
15
+ * Adjusts NODE_PATH so CJS drivers/plugins can load peer deps. Does not work with ESM.
16
+ */
17
+ export declare function adjustNodePath(): void;
18
+ /**
19
+ * Prints JSON debug info (OS, Node/npm, Appium build, installed drivers/plugins) to stdout.
20
+ * Input combines extension config snapshots with the resolved Appium home path.
21
+ */
22
+ export declare function showDebugInfo({ driverConfig, pluginConfig, appiumHome }: DebugInfoInput): Promise<void>;
23
+ /**
24
+ * Ensures a directory exists and (optionally) is writeable.
25
+ *
26
+ * If the directory does not exist, this attempts to create it recursively.
27
+ *
28
+ * @throws {Error}
29
+ */
30
+ export declare function requireDir(root: string, requireWriteable?: boolean, displayName?: string): Promise<void>;
31
+ export {};
32
+ //# sourceMappingURL=node-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-helpers.d.ts","sourceRoot":"","sources":["../../../lib/bootstrap/node-helpers.ts"],"names":[],"mappings":"AAiBA,UAAU,cAAc;IACtB,YAAY,EAAE;QAAC,mBAAmB,EAAE,OAAO,CAAA;KAAC,CAAC;IAC7C,YAAY,EAAE;QAAC,mBAAmB,EAAE,OAAO,CAAA;KAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAKlC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA0CrC;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,EAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC3G;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,gBAAgB,UAAO,EACvB,WAAW,SAAgB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAyBf"}