appium 3.2.2 → 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 (250) 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} +62 -138
  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/bootstrap/grid-v3-register.js +185 -0
  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 +16 -12
  41. package/build/lib/cli/args.d.ts.map +1 -1
  42. package/build/lib/cli/args.js +20 -40
  43. package/build/lib/cli/args.js.map +1 -1
  44. package/build/lib/cli/driver-command.d.ts +51 -93
  45. package/build/lib/cli/driver-command.d.ts.map +1 -1
  46. package/build/lib/cli/driver-command.js +11 -66
  47. package/build/lib/cli/driver-command.js.map +1 -1
  48. package/build/lib/cli/extension-command.d.ts +173 -377
  49. package/build/lib/cli/extension-command.d.ts.map +1 -1
  50. package/build/lib/cli/extension-command.js +387 -656
  51. package/build/lib/cli/extension-command.js.map +1 -1
  52. package/build/lib/cli/extension.d.ts +10 -15
  53. package/build/lib/cli/extension.d.ts.map +1 -1
  54. package/build/lib/cli/extension.js +15 -33
  55. package/build/lib/cli/extension.js.map +1 -1
  56. package/build/lib/cli/parser.d.ts +37 -66
  57. package/build/lib/cli/parser.d.ts.map +1 -1
  58. package/build/lib/cli/parser.js +69 -104
  59. package/build/lib/cli/parser.js.map +1 -1
  60. package/build/lib/cli/plugin-command.d.ts +50 -90
  61. package/build/lib/cli/plugin-command.d.ts.map +1 -1
  62. package/build/lib/cli/plugin-command.js +11 -63
  63. package/build/lib/cli/plugin-command.js.map +1 -1
  64. package/build/lib/cli/setup-command.d.ts +21 -26
  65. package/build/lib/cli/setup-command.d.ts.map +1 -1
  66. package/build/lib/cli/setup-command.js +19 -61
  67. package/build/lib/cli/setup-command.js.map +1 -1
  68. package/build/lib/cli/utils.d.ts +33 -35
  69. package/build/lib/cli/utils.d.ts.map +1 -1
  70. package/build/lib/cli/utils.js +48 -50
  71. package/build/lib/cli/utils.js.map +1 -1
  72. package/build/lib/constants.d.ts +23 -23
  73. package/build/lib/constants.d.ts.map +1 -1
  74. package/build/lib/constants.js +10 -15
  75. package/build/lib/constants.js.map +1 -1
  76. package/build/lib/doctor/doctor.d.ts +40 -57
  77. package/build/lib/doctor/doctor.d.ts.map +1 -1
  78. package/build/lib/doctor/doctor.js +31 -62
  79. package/build/lib/doctor/doctor.js.map +1 -1
  80. package/build/lib/extension/driver-config.d.ts +18 -77
  81. package/build/lib/extension/driver-config.d.ts.map +1 -1
  82. package/build/lib/extension/driver-config.js +37 -125
  83. package/build/lib/extension/driver-config.js.map +1 -1
  84. package/build/lib/extension/extension-config.d.ts +103 -210
  85. package/build/lib/extension/extension-config.d.ts.map +1 -1
  86. package/build/lib/extension/extension-config.js +180 -342
  87. package/build/lib/extension/extension-config.js.map +1 -1
  88. package/build/lib/extension/index.d.ts +12 -29
  89. package/build/lib/extension/index.d.ts.map +1 -1
  90. package/build/lib/extension/index.js +33 -75
  91. package/build/lib/extension/index.js.map +1 -1
  92. package/build/lib/extension/manifest-migrations.d.ts +3 -20
  93. package/build/lib/extension/manifest-migrations.d.ts.map +1 -1
  94. package/build/lib/extension/manifest-migrations.js +20 -101
  95. package/build/lib/extension/manifest-migrations.js.map +1 -1
  96. package/build/lib/extension/manifest.d.ts +61 -107
  97. package/build/lib/extension/manifest.d.ts.map +1 -1
  98. package/build/lib/extension/manifest.js +181 -356
  99. package/build/lib/extension/manifest.js.map +1 -1
  100. package/build/lib/extension/package-changed.d.ts +1 -3
  101. package/build/lib/extension/package-changed.d.ts.map +1 -1
  102. package/build/lib/extension/package-changed.js +8 -15
  103. package/build/lib/extension/package-changed.js.map +1 -1
  104. package/build/lib/extension/plugin-config.d.ts +10 -52
  105. package/build/lib/extension/plugin-config.d.ts.map +1 -1
  106. package/build/lib/extension/plugin-config.js +11 -63
  107. package/build/lib/extension/plugin-config.js.map +1 -1
  108. package/build/lib/helpers/build.d.ts +22 -0
  109. package/build/lib/helpers/build.d.ts.map +1 -0
  110. package/build/lib/helpers/build.js +109 -0
  111. package/build/lib/helpers/build.js.map +1 -0
  112. package/build/lib/helpers/capability.d.ts +38 -0
  113. package/build/lib/helpers/capability.d.ts.map +1 -0
  114. package/build/lib/helpers/capability.js +128 -0
  115. package/build/lib/helpers/capability.js.map +1 -0
  116. package/build/lib/helpers/network.d.ts +14 -0
  117. package/build/lib/helpers/network.d.ts.map +1 -0
  118. package/build/lib/helpers/network.js +35 -0
  119. package/build/lib/helpers/network.js.map +1 -0
  120. package/build/lib/insecure-features.js +6 -6
  121. package/build/lib/insecure-features.js.map +1 -1
  122. package/build/lib/inspector-commands.d.ts +6 -0
  123. package/build/lib/inspector-commands.d.ts.map +1 -1
  124. package/build/lib/inspector-commands.js +6 -0
  125. package/build/lib/inspector-commands.js.map +1 -1
  126. package/build/lib/logger.d.ts +2 -3
  127. package/build/lib/logger.d.ts.map +1 -1
  128. package/build/lib/logger.js +2 -3
  129. package/build/lib/logger.js.map +1 -1
  130. package/build/lib/logsink.d.ts +13 -22
  131. package/build/lib/logsink.d.ts.map +1 -1
  132. package/build/lib/logsink.js +48 -103
  133. package/build/lib/logsink.js.map +1 -1
  134. package/build/lib/main.d.ts +15 -58
  135. package/build/lib/main.d.ts.map +1 -1
  136. package/build/lib/main.js +25 -425
  137. package/build/lib/main.js.map +1 -1
  138. package/build/lib/schema/arg-spec.d.ts +32 -107
  139. package/build/lib/schema/arg-spec.d.ts.map +1 -1
  140. package/build/lib/schema/arg-spec.js +11 -107
  141. package/build/lib/schema/arg-spec.js.map +1 -1
  142. package/build/lib/schema/cli-args-guards.d.ts +34 -0
  143. package/build/lib/schema/cli-args-guards.d.ts.map +1 -0
  144. package/build/lib/schema/cli-args-guards.js +49 -0
  145. package/build/lib/schema/cli-args-guards.js.map +1 -0
  146. package/build/lib/schema/cli-args.d.ts +3 -15
  147. package/build/lib/schema/cli-args.d.ts.map +1 -1
  148. package/build/lib/schema/cli-args.js +17 -107
  149. package/build/lib/schema/cli-args.js.map +1 -1
  150. package/build/lib/schema/cli-transformers.d.ts +15 -12
  151. package/build/lib/schema/cli-transformers.d.ts.map +1 -1
  152. package/build/lib/schema/cli-transformers.js +15 -45
  153. package/build/lib/schema/cli-transformers.js.map +1 -1
  154. package/build/lib/schema/format-errors.d.ts +28 -0
  155. package/build/lib/schema/format-errors.d.ts.map +1 -0
  156. package/build/lib/schema/format-errors.js +29 -0
  157. package/build/lib/schema/format-errors.js.map +1 -0
  158. package/build/lib/schema/index.d.ts +4 -2
  159. package/build/lib/schema/index.d.ts.map +1 -1
  160. package/build/lib/schema/index.js +2 -0
  161. package/build/lib/schema/index.js.map +1 -1
  162. package/build/lib/schema/keywords.d.ts +12 -20
  163. package/build/lib/schema/keywords.d.ts.map +1 -1
  164. package/build/lib/schema/keywords.js +6 -51
  165. package/build/lib/schema/keywords.js.map +1 -1
  166. package/build/lib/schema/schema.d.ts +106 -231
  167. package/build/lib/schema/schema.d.ts.map +1 -1
  168. package/build/lib/schema/schema.js +88 -358
  169. package/build/lib/schema/schema.js.map +1 -1
  170. package/build/lib/utils.d.ts +7 -267
  171. package/build/lib/utils.d.ts.map +1 -1
  172. package/build/lib/utils.js +10 -409
  173. package/build/lib/utils.js.map +1 -1
  174. package/lib/{appium.js → appium.ts} +297 -341
  175. package/lib/bidi-commands.ts +10 -14
  176. package/lib/bootstrap/appium-initializer.ts +212 -0
  177. package/lib/bootstrap/appium-main-runner.ts +172 -0
  178. package/lib/bootstrap/config-file.ts +178 -0
  179. package/lib/bootstrap/grid-v3-register.ts +250 -0
  180. package/lib/bootstrap/init-types.ts +31 -0
  181. package/lib/bootstrap/main-helpers.ts +223 -0
  182. package/lib/bootstrap/node-helpers.ts +180 -0
  183. package/lib/bootstrap/startup-config.ts +143 -0
  184. package/lib/cli/{args.js → args.ts} +45 -56
  185. package/lib/cli/driver-command.ts +122 -0
  186. package/lib/cli/{extension-command.js → extension-command.ts} +827 -906
  187. package/lib/cli/extension.ts +65 -0
  188. package/lib/cli/{parser.js → parser.ts} +93 -116
  189. package/lib/cli/plugin-command.ts +117 -0
  190. package/lib/cli/{setup-command.js → setup-command.ts} +59 -74
  191. package/lib/cli/utils.ts +97 -0
  192. package/lib/{constants.js → constants.ts} +30 -41
  193. package/lib/doctor/{doctor.js → doctor.ts} +82 -92
  194. package/lib/extension/driver-config.ts +165 -0
  195. package/lib/extension/{extension-config.js → extension-config.ts} +291 -405
  196. package/lib/extension/index.ts +143 -0
  197. package/lib/extension/manifest-migrations.ts +57 -0
  198. package/lib/extension/manifest.ts +369 -0
  199. package/lib/extension/{package-changed.js → package-changed.ts} +9 -18
  200. package/lib/extension/plugin-config.ts +62 -0
  201. package/lib/helpers/build.ts +111 -0
  202. package/lib/helpers/capability.ts +171 -0
  203. package/lib/helpers/network.ts +30 -0
  204. package/lib/insecure-features.ts +1 -1
  205. package/lib/inspector-commands.ts +6 -1
  206. package/lib/{logger.js → logger.ts} +1 -2
  207. package/lib/{logsink.js → logsink.ts} +91 -137
  208. package/lib/main.ts +60 -0
  209. package/lib/schema/arg-spec.ts +131 -0
  210. package/lib/schema/cli-args-guards.ts +67 -0
  211. package/lib/schema/cli-args.ts +171 -0
  212. package/lib/schema/cli-transformers.ts +83 -0
  213. package/lib/schema/format-errors.ts +43 -0
  214. package/lib/schema/index.ts +4 -0
  215. package/lib/schema/keywords.ts +96 -0
  216. package/lib/schema/schema.ts +448 -0
  217. package/lib/utils.ts +73 -0
  218. package/package.json +17 -18
  219. package/scripts/autoinstall-extensions.js +3 -0
  220. package/build/lib/config-file.d.ts +0 -100
  221. package/build/lib/config-file.d.ts.map +0 -1
  222. package/build/lib/config-file.js.map +0 -1
  223. package/build/lib/config.d.ts +0 -70
  224. package/build/lib/config.d.ts.map +0 -1
  225. package/build/lib/config.js +0 -390
  226. package/build/lib/config.js.map +0 -1
  227. package/build/lib/grid-register.d.ts +0 -10
  228. package/build/lib/grid-register.d.ts.map +0 -1
  229. package/build/lib/grid-register.js +0 -134
  230. package/build/lib/grid-register.js.map +0 -1
  231. package/lib/cli/driver-command.js +0 -174
  232. package/lib/cli/extension.js +0 -74
  233. package/lib/cli/plugin-command.js +0 -164
  234. package/lib/cli/utils.js +0 -91
  235. package/lib/config-file.js +0 -228
  236. package/lib/config.js +0 -389
  237. package/lib/extension/driver-config.js +0 -245
  238. package/lib/extension/index.js +0 -169
  239. package/lib/extension/manifest-migrations.js +0 -136
  240. package/lib/extension/manifest.js +0 -550
  241. package/lib/extension/plugin-config.js +0 -112
  242. package/lib/grid-register.js +0 -146
  243. package/lib/main.js +0 -545
  244. package/lib/schema/arg-spec.js +0 -229
  245. package/lib/schema/cli-args.js +0 -254
  246. package/lib/schema/cli-transformers.js +0 -113
  247. package/lib/schema/index.js +0 -2
  248. package/lib/schema/keywords.js +0 -136
  249. package/lib/schema/schema.js +0 -725
  250. package/lib/utils.js +0 -512
@@ -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"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.checkNodeOk = checkNodeOk;
40
+ exports.adjustNodePath = adjustNodePath;
41
+ exports.showDebugInfo = showDebugInfo;
42
+ exports.requireDir = requireDir;
43
+ /* eslint-disable no-console */
44
+ const lodash_1 = __importDefault(require("lodash"));
45
+ const node_path_1 = __importDefault(require("node:path"));
46
+ const node_os_1 = __importDefault(require("node:os"));
47
+ const semver = __importStar(require("semver"));
48
+ const bluebird_1 = __importDefault(require("bluebird"));
49
+ const support_1 = require("@appium/support");
50
+ const logger_1 = require("../logger");
51
+ const utils_1 = require("../utils");
52
+ const build_1 = require("../helpers/build");
53
+ const MIN_NODE_VERSION = utils_1.npmPackage.engines.node;
54
+ /**
55
+ * @throws {Error} If Node version is outside of the supported range
56
+ */
57
+ function checkNodeOk() {
58
+ const version = getNodeVersion();
59
+ if (!semver.satisfies(version, MIN_NODE_VERSION)) {
60
+ throw new Error(`Node version must be at least ${MIN_NODE_VERSION}; current is ${version.version}`);
61
+ }
62
+ }
63
+ /**
64
+ * Adjusts NODE_PATH so CJS drivers/plugins can load peer deps. Does not work with ESM.
65
+ */
66
+ function adjustNodePath() {
67
+ let appiumModuleSearchRoot;
68
+ try {
69
+ appiumModuleSearchRoot = node_path_1.default.dirname((0, utils_1.getAppiumModuleRoot)());
70
+ }
71
+ catch (error) {
72
+ logger_1.log.warn(error.message);
73
+ return;
74
+ }
75
+ const refreshRequirePaths = () => {
76
+ try {
77
+ // Private API; see https://gist.github.com/branneman/8048520#7-the-hack
78
+ require('node:module').Module._initPaths();
79
+ return true;
80
+ }
81
+ catch {
82
+ return false;
83
+ }
84
+ };
85
+ if (!process.env.NODE_PATH) {
86
+ process.env.NODE_PATH = appiumModuleSearchRoot;
87
+ if (refreshRequirePaths()) {
88
+ process.env.APPIUM_OMIT_PEER_DEPS = '1';
89
+ }
90
+ else {
91
+ delete process.env.NODE_PATH;
92
+ }
93
+ return;
94
+ }
95
+ const nodePathParts = process.env.NODE_PATH.split(node_path_1.default.delimiter);
96
+ if (nodePathParts.includes(appiumModuleSearchRoot)) {
97
+ process.env.APPIUM_OMIT_PEER_DEPS = '1';
98
+ return;
99
+ }
100
+ nodePathParts.push(appiumModuleSearchRoot);
101
+ process.env.NODE_PATH = nodePathParts.join(node_path_1.default.delimiter);
102
+ if (refreshRequirePaths()) {
103
+ process.env.APPIUM_OMIT_PEER_DEPS = '1';
104
+ }
105
+ else {
106
+ process.env.NODE_PATH = lodash_1.default.without(nodePathParts, appiumModuleSearchRoot).join(node_path_1.default.delimiter);
107
+ }
108
+ }
109
+ /**
110
+ * Prints JSON debug info (OS, Node/npm, Appium build, installed drivers/plugins) to stdout.
111
+ * Input combines extension config snapshots with the resolved Appium home path.
112
+ */
113
+ async function showDebugInfo({ driverConfig, pluginConfig, appiumHome }) {
114
+ const getNpmVersion = async () => {
115
+ const { stdout } = await support_1.npm.exec('--version', [], { cwd: process.cwd() });
116
+ return lodash_1.default.trim(stdout);
117
+ };
118
+ const findNpmLocation = async () => await support_1.fs.which(support_1.system.isWindows() ? 'npm.cmd' : 'npm');
119
+ const [npmVersion, npmLocation] = await bluebird_1.default.all([
120
+ ...[getNpmVersion, findNpmLocation].map((f) => getSafeResult(f, 'unknown')),
121
+ (0, build_1.updateBuildInfo)(),
122
+ ]);
123
+ const debugInfo = {
124
+ os: {
125
+ platform: node_os_1.default.platform(),
126
+ release: node_os_1.default.release(),
127
+ arch: node_os_1.default.arch(),
128
+ homedir: node_os_1.default.homedir(),
129
+ username: node_os_1.default.userInfo().username,
130
+ },
131
+ node: {
132
+ version: process.version,
133
+ arch: process.arch,
134
+ cwd: process.cwd(),
135
+ argv: process.argv,
136
+ env: process.env,
137
+ npm: {
138
+ location: npmLocation,
139
+ version: npmVersion,
140
+ },
141
+ },
142
+ appium: {
143
+ location: build_1.rootDir,
144
+ homedir: appiumHome,
145
+ build: (0, build_1.getBuildInfo)(),
146
+ drivers: driverConfig.installedExtensions,
147
+ plugins: pluginConfig.installedExtensions,
148
+ },
149
+ };
150
+ console.log(JSON.stringify(debugInfo, null, 2));
151
+ }
152
+ /**
153
+ * Ensures a directory exists and (optionally) is writeable.
154
+ *
155
+ * If the directory does not exist, this attempts to create it recursively.
156
+ *
157
+ * @throws {Error}
158
+ */
159
+ async function requireDir(root, requireWriteable = true, displayName = 'folder path') {
160
+ let stat;
161
+ try {
162
+ stat = await support_1.fs.stat(root);
163
+ }
164
+ catch (e) {
165
+ if (e.code === 'ENOENT') {
166
+ try {
167
+ await support_1.fs.mkdir(root, { recursive: true });
168
+ return;
169
+ }
170
+ catch { }
171
+ }
172
+ throw new Error(`The ${displayName} '${root}' must exist and be a valid directory`);
173
+ }
174
+ if (stat && !stat.isDirectory()) {
175
+ throw new Error(`The ${displayName} '${root}' must be a valid directory`);
176
+ }
177
+ if (requireWriteable) {
178
+ try {
179
+ await support_1.fs.access(root, support_1.fs.constants.W_OK);
180
+ }
181
+ catch {
182
+ throw new Error(`The ${displayName} '${root}' must be writeable for the current user account '${node_os_1.default.userInfo().username}'`);
183
+ }
184
+ }
185
+ }
186
+ function getNodeVersion() {
187
+ return semver.coerce(process.version);
188
+ }
189
+ /**
190
+ * Calculates the result of the given function and return its value
191
+ * or the default one if there was an exception.
192
+ */
193
+ async function getSafeResult(f, defaultValue) {
194
+ try {
195
+ return await f();
196
+ }
197
+ catch {
198
+ return defaultValue;
199
+ }
200
+ }
201
+ //# sourceMappingURL=node-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-helpers.js","sourceRoot":"","sources":["../../../lib/bootstrap/node-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Args } from 'appium/types';
2
+ import type { ReadConfigFileResult } from './config-file';
3
+ /**
4
+ * Returns key/value pairs of server arguments that differ from schema defaults (flattened comparison).
5
+ *
6
+ * @param parsedArgs - Fully merged server args (CLI + config + defaults)
7
+ */
8
+ export declare function getNonDefaultServerArgs(parsedArgs: Args): Args;
9
+ /**
10
+ * Prints a breakdown of configuration: defaults, config file, CLI/programmatic overrides, and final merged args.
11
+ *
12
+ * The actual shape of `nonDefaultPreConfigParsedArgs` and `defaults` does not matter for the purposes of this
13
+ * function, but it's intended to be called with values of type {@link ParsedArgs} and
14
+ * `DefaultValues<true>`, respectively.
15
+ *
16
+ * @param nonDefaultPreConfigParsedArgs - CLI-only (or programmatic) args that differ from defaults
17
+ * @param configResult - Result of {@link readConfigFile}
18
+ * @param defaults - Schema default values
19
+ * @param parsedArgs - Final merged configuration
20
+ */
21
+ export declare function showConfig(nonDefaultPreConfigParsedArgs: Partial<Args>, configResult: ReadConfigFileResult, defaults: Partial<Args>, parsedArgs: Args): void;
22
+ //# sourceMappingURL=startup-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-config.d.ts","sourceRoot":"","sources":["../../../lib/bootstrap/startup-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAOxD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CA0E9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,6BAA6B,EAAE,OAAO,CAAC,IAAI,CAAC,EAC5C,YAAY,EAAE,oBAAoB,EAClC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EACvB,UAAU,EAAE,IAAI,GACf,IAAI,CAmBN"}
@@ -0,0 +1,111 @@
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.getNonDefaultServerArgs = getNonDefaultServerArgs;
7
+ exports.showConfig = showConfig;
8
+ /* eslint-disable no-console */
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ const schema_1 = require("../schema/schema");
11
+ /**
12
+ * Returns key/value pairs of server arguments that differ from schema defaults (flattened comparison).
13
+ *
14
+ * @param parsedArgs - Fully merged server args (CLI + config + defaults)
15
+ */
16
+ function getNonDefaultServerArgs(parsedArgs) {
17
+ /**
18
+ * Flattens parsed args into a single level object for comparison with
19
+ * flattened defaults across server args and extension args.
20
+ */
21
+ const flatten = (args) => {
22
+ const argSpecs = (0, schema_1.getAllArgSpecs)();
23
+ const flattened = lodash_1.default.reduce([...argSpecs.values()], (acc, argSpec) => {
24
+ if (lodash_1.default.has(args, argSpec.dest)) {
25
+ acc[argSpec.dest] = { value: lodash_1.default.get(args, argSpec.dest), argSpec };
26
+ }
27
+ return acc;
28
+ }, {});
29
+ return flattened;
30
+ };
31
+ const args = flatten(parsedArgs);
32
+ // hopefully these function names are descriptive enough
33
+ const typesDiffer = (dest) => typeof args[dest].value !== typeof defaultsFromSchema[dest];
34
+ const defaultValueIsArray = (dest) => lodash_1.default.isArray(defaultsFromSchema[dest]);
35
+ const argsValueIsArray = (dest) => lodash_1.default.isArray(args[dest].value);
36
+ const arraysDiffer = (dest) => lodash_1.default.gt(lodash_1.default.size(lodash_1.default.difference(args[dest].value, defaultsFromSchema[dest])), 0);
37
+ const valuesDiffer = (dest) => args[dest].value !== defaultsFromSchema[dest];
38
+ const defaultIsDefined = (dest) => !lodash_1.default.isUndefined(defaultsFromSchema[dest]);
39
+ // note that `_.overEvery` is like an "AND", and `_.overSome` is like an "OR"
40
+ const argValueNotArrayOrArraysDiffer = lodash_1.default.overSome([lodash_1.default.negate(argsValueIsArray), arraysDiffer]);
41
+ const defaultValueNotArrayAndValuesDiffer = lodash_1.default.overEvery([
42
+ lodash_1.default.negate(defaultValueIsArray),
43
+ valuesDiffer,
44
+ ]);
45
+ /**
46
+ * This used to be a hideous conditional, but it's broken up into a hideous function instead.
47
+ * hopefully this makes things a little more understandable.
48
+ * - checks if the default value is defined
49
+ * - if so, and the default is not an array:
50
+ * - ensures the types are the same
51
+ * - ensures the values are equal
52
+ * - if so, and the default is an array:
53
+ * - ensures the args value is an array
54
+ * - ensures the args values do not differ from the default values
55
+ */
56
+ const isNotDefault = lodash_1.default.overEvery([
57
+ defaultIsDefined,
58
+ lodash_1.default.overSome([
59
+ typesDiffer,
60
+ lodash_1.default.overEvery([defaultValueIsArray, argValueNotArrayOrArraysDiffer]),
61
+ defaultValueNotArrayAndValuesDiffer,
62
+ ]),
63
+ ]);
64
+ const defaultsFromSchema = (0, schema_1.getDefaultsForSchema)(true);
65
+ return lodash_1.default.reduce(lodash_1.default.pickBy(args, (_v, key) => isNotDefault(key)),
66
+ // explodes the flattened object back into nested one
67
+ (acc, { value, argSpec }) => lodash_1.default.set(acc, argSpec.dest, value), {});
68
+ }
69
+ /**
70
+ * Prints a breakdown of configuration: defaults, config file, CLI/programmatic overrides, and final merged args.
71
+ *
72
+ * The actual shape of `nonDefaultPreConfigParsedArgs` and `defaults` does not matter for the purposes of this
73
+ * function, but it's intended to be called with values of type {@link ParsedArgs} and
74
+ * `DefaultValues<true>`, respectively.
75
+ *
76
+ * @param nonDefaultPreConfigParsedArgs - CLI-only (or programmatic) args that differ from defaults
77
+ * @param configResult - Result of {@link readConfigFile}
78
+ * @param defaults - Schema default values
79
+ * @param parsedArgs - Final merged configuration
80
+ */
81
+ function showConfig(nonDefaultPreConfigParsedArgs, configResult, defaults, parsedArgs) {
82
+ console.log('Appium Configuration\n');
83
+ console.log('from defaults:\n');
84
+ console.dir(compactConfig(defaults));
85
+ if (configResult.config) {
86
+ console.log(`\nfrom config file at ${configResult.filepath}:\n`);
87
+ console.dir(compactConfig(configResult.config));
88
+ }
89
+ else {
90
+ console.log(`\n(no configuration file loaded)`);
91
+ }
92
+ const compactedNonDefaultPreConfigArgs = compactConfig(nonDefaultPreConfigParsedArgs);
93
+ if (lodash_1.default.isEmpty(compactedNonDefaultPreConfigArgs)) {
94
+ console.log(`\n(no CLI parameters provided)`);
95
+ }
96
+ else {
97
+ console.log('\nvia CLI or function call:\n');
98
+ console.dir(compactedNonDefaultPreConfigArgs);
99
+ }
100
+ console.log('\nfinal configuration:\n');
101
+ console.dir(compactConfig(parsedArgs));
102
+ }
103
+ /**
104
+ * Compacts an object for {@link showConfig}:
105
+ * 1. Removes `subcommand` key/value
106
+ * 2. Removes `undefined` values
107
+ * 3. Removes empty objects (but not `false` values)
108
+ * Does not operate recursively.
109
+ */
110
+ const compactConfig = lodash_1.default.partial(lodash_1.default.omitBy, lodash_1.default, (value, key) => key === 'subcommand' || lodash_1.default.isUndefined(value) || (lodash_1.default.isObject(value) && lodash_1.default.isEmpty(value)));
111
+ //# sourceMappingURL=startup-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-config.js","sourceRoot":"","sources":["../../../lib/bootstrap/startup-config.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,21 @@
1
- export type ExtensionType = import("@appium/types").ExtensionType;
2
- /**
3
- * A tuple of argument aliases and argument options
4
- */
5
- export type ArgumentDefinitions = Map<[name: string] | [name: string, alias: string], import("argparse").ArgumentOptions>;
1
+ import _ from 'lodash';
2
+ import type { ArgumentOptions } from 'argparse';
3
+ import type { ExtensionType } from '@appium/types';
4
+ import type { CliExtensionSubcommand } from 'appium/types';
5
+ export type ArgumentDefinitions = Map<[
6
+ name: string
7
+ ] | [name: string, alias: string], ArgumentOptions>;
6
8
  /**
7
- * Derives the options for the `server` command from the schema, and adds the arguments
8
- * which are disallowed in the config file.
9
- * @returns {ArgumentDefinitions}
9
+ * Returns CLI argument definitions for extension commands by extension type.
10
+ *
11
+ * The result is memoized because parser setup is static across process lifetime.
10
12
  */
11
- export function getServerArgs(): ArgumentDefinitions;
13
+ export declare const getExtensionArgs: (() => Record<ExtensionType, Record<CliExtensionSubcommand, ArgumentDefinitions>>) & _.MemoizedFunction;
12
14
  /**
13
- * Builds a Record of extension types to a Record of subcommands to their argument definitions
15
+ * Returns CLI argument definitions for the `server` command.
16
+ *
17
+ * This includes schema-derived options and additional CLI-only options which
18
+ * are intentionally disallowed in config files.
14
19
  */
15
- export const getExtensionArgs: (() => Record<ExtensionType, Record<import("appium/types").CliExtensionSubcommand, ArgumentDefinitions>>) & _.MemoizedFunction;
16
- import _ from 'lodash';
20
+ export declare function getServerArgs(): ArgumentDefinitions;
17
21
  //# sourceMappingURL=args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../lib/cli/args.js"],"names":[],"mappings":"4BA4Ta,OAAO,eAAe,EAAE,aAAa;;;;kCAKrC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAC,OAAO,UAAU,EAAE,eAAe,CAAC;AAzEjG;;;;GAIG;AACH,iCAFa,mBAAmB,CAI/B;AAvND;;GAEG;AACH,sCAYoB,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,cAAc,EAAE,sBAAsB,EAAC,mBAAmB,CAAC,CAAC,uBAGjH;cA1DW,QAAQ"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../lib/cli/args.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAgBzD,MAAM,MAAM,mBAAmB,GAAG,GAAG,CACnC;IAAC,IAAI,EAAE,MAAM;CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAC9C,eAAe,CAChB,CAAC;AAwBF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAA0C,MAAM,CAC3E,aAAa,EACb,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CACpD,sBAgBC,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CAEnD"}