appium 2.0.0-beta.46 → 2.0.0-beta.48
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.
- package/README.md +145 -44
- package/build/lib/appium.d.ts +3 -103
- package/build/lib/appium.d.ts.map +1 -1
- package/build/lib/appium.js +679 -549
- package/build/lib/appium.js.map +1 -1
- package/build/lib/cli/args.js +247 -127
- package/build/lib/cli/args.js.map +1 -1
- package/build/lib/cli/driver-command.d.ts +24 -5
- package/build/lib/cli/driver-command.d.ts.map +1 -1
- package/build/lib/cli/driver-command.js +78 -88
- package/build/lib/cli/driver-command.js.map +1 -1
- package/build/lib/cli/extension-command.d.ts +33 -24
- package/build/lib/cli/extension-command.d.ts.map +1 -1
- package/build/lib/cli/extension-command.js +729 -512
- package/build/lib/cli/extension-command.js.map +1 -1
- package/build/lib/cli/extension.d.ts +7 -6
- package/build/lib/cli/extension.d.ts.map +1 -1
- package/build/lib/cli/extension.js +68 -65
- package/build/lib/cli/extension.js.map +1 -1
- package/build/lib/cli/parser.d.ts +3 -3
- package/build/lib/cli/parser.d.ts.map +1 -1
- package/build/lib/cli/parser.js +234 -192
- package/build/lib/cli/parser.js.map +1 -1
- package/build/lib/cli/plugin-command.js +58 -87
- package/build/lib/cli/plugin-command.js.map +1 -1
- package/build/lib/cli/utils.js +66 -69
- package/build/lib/cli/utils.js.map +1 -1
- package/build/lib/config-file.d.ts.map +1 -1
- package/build/lib/config-file.js +189 -120
- package/build/lib/config-file.js.map +1 -1
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +254 -213
- package/build/lib/config.js.map +1 -1
- package/build/lib/constants.d.ts +6 -5
- package/build/lib/constants.d.ts.map +1 -1
- package/build/lib/constants.js +65 -59
- package/build/lib/constants.js.map +1 -1
- package/build/lib/extension/driver-config.js +199 -164
- package/build/lib/extension/driver-config.js.map +1 -1
- package/build/lib/extension/extension-config.d.ts +33 -26
- package/build/lib/extension/extension-config.d.ts.map +1 -1
- package/build/lib/extension/extension-config.js +541 -396
- package/build/lib/extension/extension-config.js.map +1 -1
- package/build/lib/extension/index.js +98 -68
- package/build/lib/extension/index.js.map +1 -1
- package/build/lib/extension/manifest-migrations.d.ts +27 -0
- package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
- package/build/lib/extension/manifest-migrations.js +118 -0
- package/build/lib/extension/manifest-migrations.js.map +1 -0
- package/build/lib/extension/manifest.d.ts +35 -63
- package/build/lib/extension/manifest.d.ts.map +1 -1
- package/build/lib/extension/manifest.js +500 -240
- package/build/lib/extension/manifest.js.map +1 -1
- package/build/lib/extension/package-changed.js +57 -61
- package/build/lib/extension/package-changed.js.map +1 -1
- package/build/lib/extension/plugin-config.d.ts +2 -3
- package/build/lib/extension/plugin-config.d.ts.map +1 -1
- package/build/lib/extension/plugin-config.js +94 -70
- package/build/lib/extension/plugin-config.js.map +1 -1
- package/build/lib/grid-register.js +119 -137
- package/build/lib/grid-register.js.map +1 -1
- package/build/lib/logger.d.ts +1 -1
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +5 -15
- package/build/lib/logger.js.map +1 -1
- package/build/lib/logsink.d.ts.map +1 -1
- package/build/lib/logsink.js +189 -183
- package/build/lib/logsink.js.map +1 -1
- package/build/lib/main.d.ts +19 -12
- package/build/lib/main.d.ts.map +1 -1
- package/build/lib/main.js +330 -304
- package/build/lib/main.js.map +1 -1
- package/build/lib/schema/arg-spec.js +153 -108
- package/build/lib/schema/arg-spec.js.map +1 -1
- package/build/lib/schema/cli-args.js +203 -164
- package/build/lib/schema/cli-args.js.map +1 -1
- package/build/lib/schema/cli-transformers.js +117 -72
- package/build/lib/schema/cli-transformers.js.map +1 -1
- package/build/lib/schema/index.js +17 -32
- package/build/lib/schema/index.js.map +1 -1
- package/build/lib/schema/keywords.js +125 -67
- package/build/lib/schema/keywords.js.map +1 -1
- package/build/lib/schema/schema.d.ts.map +1 -1
- package/build/lib/schema/schema.js +582 -417
- package/build/lib/schema/schema.js.map +1 -1
- package/build/lib/utils.d.ts +41 -255
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +342 -193
- package/build/lib/utils.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/cli.d.ts +45 -34
- package/build/types/cli.d.ts.map +1 -1
- package/build/types/cli.js +3 -0
- package/build/types/cli.js.map +1 -0
- package/build/types/index.d.ts +1 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/index.js +19 -0
- package/build/types/index.js.map +1 -0
- package/build/types/manifest/base.d.ts +135 -0
- package/build/types/manifest/base.d.ts.map +1 -0
- package/build/types/manifest/base.js +3 -0
- package/build/types/manifest/base.js.map +1 -0
- package/build/types/manifest/index.d.ts +19 -0
- package/build/types/manifest/index.d.ts.map +1 -0
- package/build/types/manifest/index.js +40 -0
- package/build/types/manifest/index.js.map +1 -0
- package/build/types/manifest/v3.d.ts +139 -0
- package/build/types/manifest/v3.d.ts.map +1 -0
- package/build/types/manifest/v3.js +3 -0
- package/build/types/manifest/v3.js.map +1 -0
- package/lib/appium.js +1 -1
- package/lib/cli/args.js +1 -1
- package/lib/cli/driver-command.js +17 -0
- package/lib/cli/extension-command.js +119 -65
- package/lib/cli/extension.js +9 -8
- package/lib/cli/parser.js +2 -2
- package/lib/config-file.js +2 -3
- package/lib/config.js +3 -2
- package/lib/constants.js +7 -5
- package/lib/extension/extension-config.js +52 -47
- package/lib/extension/manifest-migrations.js +120 -0
- package/lib/extension/manifest.js +184 -103
- package/lib/extension/plugin-config.js +1 -2
- package/lib/logsink.js +26 -5
- package/lib/main.js +58 -50
- package/lib/schema/schema.js +6 -1
- package/lib/utils.js +62 -0
- package/package.json +24 -25
- package/scripts/autoinstall-extensions.js +78 -26
- package/types/cli.ts +81 -42
- package/types/index.ts +1 -2
- package/types/manifest/README.md +30 -0
- package/types/manifest/base.ts +158 -0
- package/types/manifest/index.ts +27 -0
- package/types/manifest/v3.ts +161 -0
- package/build/types/appium-manifest.d.ts +0 -59
- package/build/types/appium-manifest.d.ts.map +0 -1
- package/build/types/extension-manifest.d.ts +0 -55
- package/build/types/extension-manifest.d.ts.map +0 -1
- package/types/appium-manifest.ts +0 -73
- package/types/extension-manifest.ts +0 -64
package/build/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["resolveAppiumHome","env","preflightChecks","args","throwInsteadOfExit","checkNodeOk","checkNpmOk","longStacktrace","require","async_trace_limit","showBuildInfo","process","exit","warnNodeDeprecations","validate","tmpDir","validateTmpDir","err","logger","error","message","red","logNonDefaultArgsWarning","info","inspect","logDefaultCapabilitiesWarning","caps","logStartupInfo","welcome","APPIUM_VER","appiumRev","getGitRev","showArgs","getNonDefaultServerArgs","_","size","isEmpty","defaultCapabilities","logServerPort","address","port","logMessage","getServerUpdaters","driverClasses","pluginClasses","compact","map","keys","getExtraMethodMap","reduce","klass","newMethodMap","areServerCommandArgs","subcommand","SERVER_SUBCOMMAND","init","appiumHome","adjustNodePath","driverConfig","pluginConfig","loadExtensions","parser","getParser","preConfigArgs","parseArgs","configResult","readConfigFile","configFile","errors","Error","filepath","reason","defaults","getDefaultsForSchema","serverArgs","defaultsDeep","config","server","showConfig","logsinkInit","logFilters","issues","rules","logFactory","loadSecureValuesPreprocessingRules","JSON","stringify","warn","util","pluralize","length","appiumDriver","AppiumDriver","parsedArgs","extensionCommandArgs","DRIVER_TYPE","runExtensionCommand","PLUGIN_TYPE","main","getActivePlugins","usePlugins","routeConfiguringFunction","makeRouter","getActiveDrivers","useDrivers","serverUpdaters","extraMethodMap","serverOpts","hostname","allowCors","basePath","cliArgs","keepAliveTimeout","baseServer","debug","stack","nodeconfig","registerNode","close","signal","once","onSignal","deleteAllSessions","force","e","print","values","module","asyncify"],"sources":["../../lib/main.js"],"sourcesContent":["#!/usr/bin/env node\n\nimport {init as logsinkInit} from './logsink'; // this import needs to come first since it sets up global npmlog\nimport logger from './logger'; // logger needs to remain second\n// @ts-ignore\nimport {routeConfiguringFunction as makeRouter, server as baseServer} from '@appium/base-driver';\nimport {logger as logFactory, util, env} from '@appium/support';\nimport {asyncify} from 'asyncbox';\nimport _ from 'lodash';\nimport {AppiumDriver} from './appium';\nimport {runExtensionCommand} from './cli/extension';\nimport {getParser} from './cli/parser';\nimport {\n APPIUM_VER,\n checkNodeOk,\n getGitRev,\n getNonDefaultServerArgs,\n showConfig,\n showBuildInfo,\n validateTmpDir,\n warnNodeDeprecations,\n checkNpmOk,\n} from './config';\nimport {readConfigFile} from './config-file';\nimport {loadExtensions, getActivePlugins, getActiveDrivers} from './extension';\nimport {DRIVER_TYPE, PLUGIN_TYPE, SERVER_SUBCOMMAND} from './constants';\nimport registerNode from './grid-register';\nimport {getDefaultsForSchema, validate} from './schema/schema';\nimport {inspect, adjustNodePath} from './utils';\n\nconst {resolveAppiumHome} = env;\n\n/**\n *\n * @param {ParsedArgs} args\n * @param {boolean} [throwInsteadOfExit]\n */\nasync function preflightChecks(args, throwInsteadOfExit = false) {\n try {\n checkNodeOk();\n await checkNpmOk();\n if (args.longStacktrace) {\n require('longjohn').async_trace_limit = -1;\n }\n if (args.showBuildInfo) {\n await showBuildInfo();\n process.exit(0);\n }\n warnNodeDeprecations();\n\n validate(args);\n\n if (args.tmpDir) {\n await validateTmpDir(args.tmpDir);\n }\n } catch (err) {\n logger.error(err.message.red);\n if (throwInsteadOfExit) {\n throw err;\n }\n\n process.exit(1);\n }\n}\n\n/**\n * @param {Args} args\n */\nfunction logNonDefaultArgsWarning(args) {\n logger.info('Non-default server args:');\n inspect(args);\n}\n\n/**\n * @param {Args['defaultCapabilities']} caps\n */\nfunction logDefaultCapabilitiesWarning(caps) {\n logger.info(\n 'Default capabilities, which will be added to each request ' +\n 'unless overridden by desired capabilities:'\n );\n inspect(caps);\n}\n\n/**\n * @param {ParsedArgs} args\n */\nasync function logStartupInfo(args) {\n let welcome = `Welcome to Appium v${APPIUM_VER}`;\n let appiumRev = await getGitRev();\n if (appiumRev) {\n welcome += ` (REV ${appiumRev})`;\n }\n logger.info(welcome);\n\n let showArgs = getNonDefaultServerArgs(args);\n if (_.size(showArgs)) {\n logNonDefaultArgsWarning(showArgs);\n }\n if (!_.isEmpty(args.defaultCapabilities)) {\n logDefaultCapabilitiesWarning(args.defaultCapabilities);\n }\n // TODO: bring back loglevel reporting below once logger is flushed out\n // logger.info('Console LogLevel: ' + logger.transports.console.level);\n // if (logger.transports.file) {\n // logger.info('File LogLevel: ' + logger.transports.file.level);\n // }\n}\n\n/**\n * Logs the address and port the server is listening on\n * @param {string} address - Address\n * @param {number} port - Port\n * @returns {void}\n */\nfunction logServerPort(address, port) {\n let logMessage = `Appium REST http interface listener started on ` + `${address}:${port}`;\n logger.info(logMessage);\n}\n\n/**\n * Gets a list of `updateServer` functions from all extensions\n * @param {DriverNameMap} driverClasses\n * @param {PluginNameMap} pluginClasses\n * @returns {import('@appium/types').UpdateServerCallback[]}\n */\nfunction getServerUpdaters(driverClasses, pluginClasses) {\n return _.compact(_.map([...driverClasses.keys(), ...pluginClasses.keys()], 'updateServer'));\n}\n\n/**\n * Makes a big `MethodMap` from all the little `MethodMap`s in the extensions\n * @param {DriverNameMap} driverClasses\n * @param {PluginNameMap} pluginClasses\n * @returns {import('@appium/types').MethodMap}\n */\nfunction getExtraMethodMap(driverClasses, pluginClasses) {\n return [...driverClasses.keys(), ...pluginClasses.keys()].reduce(\n (map, klass) => ({\n ...map,\n ...(klass.newMethodMap ?? {}),\n }),\n {}\n );\n}\n\n/**\n * @template [T=WithServerSubcommand]\n * @param {Args<T>} args\n * @returns {args is Args<WithServerSubcommand>}\n */\nfunction areServerCommandArgs(args) {\n return args.subcommand === SERVER_SUBCOMMAND;\n}\n\n/**\n * Initializes Appium, but does not start the server.\n *\n * Use this to get at the configuration schema.\n *\n * If `args` contains a non-empty `subcommand` which is not `server`, this function will return an empty object.\n *\n * @template [T=WithServerSubcommand]\n * @param {Args<T>} [args] - Partial args (progammatic usage only)\n * @returns {Promise<ServerInitResult | ExtCommandInitResult>}\n * @example\n * import {init, getSchema} from 'appium';\n * const options = {}; // config object\n * await init(options);\n * const schema = getSchema(); // entire config schema including plugins and drivers\n */\nasync function init(args) {\n const appiumHome = args?.appiumHome ?? (await resolveAppiumHome());\n\n adjustNodePath();\n\n const {driverConfig, pluginConfig} = await loadExtensions(appiumHome);\n\n const parser = getParser();\n let throwInsteadOfExit = false;\n /** @type {Args<T>} */\n let preConfigArgs;\n\n if (args) {\n // if we have a containing package instead of running as a CLI process,\n // that package might not appreciate us calling 'process.exit' willy-\n // nilly, so give it the option to have us throw instead of exit\n if (args.throwInsteadOfExit) {\n throwInsteadOfExit = true;\n // but remove it since it's not a real server arg per se\n delete args.throwInsteadOfExit;\n }\n preConfigArgs = {...args, subcommand: args.subcommand ?? SERVER_SUBCOMMAND};\n } else {\n // otherwise parse from CLI\n preConfigArgs = /** @type {Args<T>} */ (parser.parseArgs());\n }\n\n const configResult = await readConfigFile(preConfigArgs.configFile);\n\n if (!_.isEmpty(configResult.errors)) {\n throw new Error(\n `Errors in config file ${configResult.filepath}:\\n ${\n configResult.reason ?? configResult.errors\n }`\n );\n }\n\n // merge config and apply defaults.\n // the order of precendece is:\n // 1. command line args\n // 2. config file\n // 3. defaults from config file.\n if (areServerCommandArgs(preConfigArgs)) {\n const defaults = getDefaultsForSchema(false);\n\n /** @type {ParsedArgs} */\n const serverArgs = _.defaultsDeep(preConfigArgs, configResult.config?.server, defaults);\n\n if (preConfigArgs.showConfig) {\n showConfig(getNonDefaultServerArgs(preConfigArgs), configResult, defaults, serverArgs);\n return {};\n }\n\n await logsinkInit(serverArgs);\n\n if (serverArgs.logFilters) {\n const {issues, rules} = await logFactory.loadSecureValuesPreprocessingRules(\n serverArgs.logFilters\n );\n if (!_.isEmpty(issues)) {\n throw new Error(\n `The log filtering rules config '${serverArgs.logFilters}' has issues: ` +\n JSON.stringify(issues, null, 2)\n );\n }\n if (_.isEmpty(rules)) {\n logger.warn(\n `Found no log filtering rules in '${serverArgs.logFilters}'. Is that expected?`\n );\n } else {\n logger.info(\n `Loaded ${util.pluralize('filtering rule', rules.length, true)} from '${\n serverArgs.logFilters\n }'`\n );\n }\n }\n\n const appiumDriver = new AppiumDriver(serverArgs);\n // set the config on the umbrella driver so it can match drivers to caps\n appiumDriver.driverConfig = driverConfig;\n await preflightChecks(serverArgs, throwInsteadOfExit);\n\n return /** @type {ServerInitResult} */ ({\n appiumDriver,\n parsedArgs: serverArgs,\n driverConfig,\n pluginConfig,\n });\n } else {\n const extensionCommandArgs = /** @type {Args<import('appium/types').WithExtSubcommand>} */ (\n preConfigArgs\n );\n // if the user has requested the 'driver' CLI, don't run the normal server,\n // but instead pass control to the driver CLI\n if (preConfigArgs.subcommand === DRIVER_TYPE) {\n await runExtensionCommand(extensionCommandArgs, driverConfig);\n return {};\n }\n if (preConfigArgs.subcommand === PLUGIN_TYPE) {\n await runExtensionCommand(extensionCommandArgs, pluginConfig);\n return {};\n }\n /* istanbul ignore next */\n return {}; // should never happen\n }\n}\n\n/**\n * Initializes Appium's config. Starts server if appropriate and resolves the\n * server instance if so; otherwise resolves w/ `undefined`.\n * @template [T=WithServerSubcommand]\n * @param {Args<T>} [args] - Arguments from CLI or otherwise\n * @returns {Promise<import('@appium/types').AppiumServer|undefined>}\n */\nasync function main(args) {\n const {appiumDriver, parsedArgs, pluginConfig, driverConfig} = /** @type {ServerInitResult} */ (\n await init(args)\n );\n\n if (!appiumDriver || !parsedArgs || !pluginConfig || !driverConfig) {\n // if this branch is taken, we've run a different subcommand, so there's nothing\n // left to do here.\n return;\n }\n\n const pluginClasses = getActivePlugins(pluginConfig, parsedArgs.usePlugins);\n // set the active plugins on the umbrella driver so it can use them for commands\n appiumDriver.pluginClasses = pluginClasses;\n\n await logStartupInfo(parsedArgs);\n let routeConfiguringFunction = makeRouter(appiumDriver);\n\n const driverClasses = getActiveDrivers(driverConfig, parsedArgs.useDrivers);\n const serverUpdaters = getServerUpdaters(driverClasses, pluginClasses);\n const extraMethodMap = getExtraMethodMap(driverClasses, pluginClasses);\n\n /** @type {import('@appium/base-driver').ServerOpts} */\n const serverOpts = {\n routeConfiguringFunction,\n port: parsedArgs.port,\n hostname: parsedArgs.address,\n allowCors: parsedArgs.allowCors,\n basePath: parsedArgs.basePath,\n serverUpdaters,\n extraMethodMap,\n cliArgs: parsedArgs,\n };\n if (parsedArgs.keepAliveTimeout) {\n serverOpts.keepAliveTimeout = parsedArgs.keepAliveTimeout * 1000;\n }\n let server;\n try {\n server = await baseServer(serverOpts);\n } catch (err) {\n logger.error(\n `Could not configure Appium server. It's possible that a driver or plugin tried ` +\n `to update the server and failed. Original error: ${err.message}`\n );\n logger.debug(err.stack);\n return process.exit(1);\n }\n\n if (parsedArgs.allowCors) {\n logger.warn(\n 'You have enabled CORS requests from any host. Be careful not ' +\n 'to visit sites which could maliciously try to start Appium ' +\n 'sessions on your machine'\n );\n }\n appiumDriver.server = server;\n try {\n // configure as node on grid, if necessary\n // falsy values should not cause this to run\n if (parsedArgs.nodeconfig) {\n await registerNode(\n parsedArgs.nodeconfig,\n parsedArgs.address,\n parsedArgs.port,\n parsedArgs.basePath\n );\n }\n } catch (err) {\n await server.close();\n throw err;\n }\n\n for (const signal of ['SIGINT', 'SIGTERM']) {\n process.once(signal, async function onSignal() {\n logger.info(`Received ${signal} - shutting down`);\n try {\n await appiumDriver.deleteAllSessions({\n force: true,\n reason: `The process has received ${signal} signal`,\n });\n await server.close();\n process.exit(0);\n } catch (e) {\n logger.warn(e);\n process.exit(1);\n }\n });\n }\n\n logServerPort(parsedArgs.address, parsedArgs.port);\n driverConfig.print();\n pluginConfig.print([...pluginClasses.values()]);\n\n return server;\n}\n\n// NOTE: this is here for backwards compat for any scripts referencing `main.js` directly\n// (more specifically, `build/lib/main.js`)\n// the executable is now `../index.js`, so that module will typically be `require.main`.\nif (require.main === module) {\n asyncify(main);\n}\n\n// everything below here is intended to be a public API.\nexport {readConfigFile} from './config-file';\nexport {finalizeSchema, getSchema, validate} from './schema/schema';\nexport {main, init, resolveAppiumHome};\n\n/**\n * @typedef {import('@appium/types').DriverType} DriverType\n * @typedef {import('@appium/types').PluginType} PluginType\n * @typedef {import('@appium/types').DriverClass} DriverClass\n * @typedef {import('@appium/types').PluginClass} PluginClass\n * @typedef {import('appium/types').WithServerSubcommand} WithServerSubcommand\n * @typedef {import('./extension').DriverNameMap} DriverNameMap\n * @typedef {import('./extension').PluginNameMap} PluginNameMap\n */\n\n/**\n * Literally an empty object\n * @typedef { {} } ExtCommandInitResult\n */\n\n/**\n * @typedef ServerInitData\n * @property {import('./appium').AppiumDriver} appiumDriver - The Appium driver\n * @property {import('appium/types').ParsedArgs} parsedArgs - The parsed arguments\n */\n\n/**\n * @typedef {ServerInitData & import('./extension').ExtensionConfigs} ServerInitResult\n */\n\n/**\n * @template [T=WithServerSubcommand]\n * @typedef {import('appium/types').Args<T>} Args\n */\n\n/**\n * @template [T=WithServerSubcommand]\n * @typedef {import('appium/types').ParsedArgs<T>} ParsedArgs\n */\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../lib/main.js"],"names":[],"mappings":"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"}
|
|
@@ -1,119 +1,164 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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.ArgSpec = exports.SERVER_PROP_NAME = exports.APPIUM_CONFIG_SCHEMA_ID = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
/**
|
|
9
|
+
* The original ID of the Appium config schema.
|
|
10
|
+
* We use this in the CLI to convert it to `argparse` options.
|
|
11
|
+
*/
|
|
12
|
+
exports.APPIUM_CONFIG_SCHEMA_ID = 'appium.json';
|
|
13
|
+
/**
|
|
14
|
+
* The schema prop containing server-related options. Everything in here
|
|
15
|
+
* is "native" to Appium.
|
|
16
|
+
* Used by {@link flattenSchema} for transforming the schema into CLI args.
|
|
17
|
+
*/
|
|
18
|
+
exports.SERVER_PROP_NAME = 'server';
|
|
19
|
+
/**
|
|
20
|
+
* Used to parse extension info from a schema ID.
|
|
21
|
+
*/
|
|
18
22
|
const SCHEMA_ID_REGEXP = /^(?<extType>.+?)-(?<normalizedExtName>.+)\.json$/;
|
|
23
|
+
/**
|
|
24
|
+
* Avoid typos by using constants!
|
|
25
|
+
*/
|
|
19
26
|
const PROPERTIES = 'properties';
|
|
20
|
-
|
|
27
|
+
/**
|
|
28
|
+
* An `ArgSpec` is a class representing metadata about an argument (or config
|
|
29
|
+
* option) used for cross-referencing.
|
|
30
|
+
*
|
|
31
|
+
* This class has no instance methods, and is basically just a read-only "struct".
|
|
32
|
+
* @template D
|
|
33
|
+
*/
|
|
21
34
|
class ArgSpec {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
extType,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.ref = ref;
|
|
50
|
-
this.rawDest = rawDest;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
static toSchemaRef(name, extType, extName) {
|
|
54
|
-
const baseRef = ArgSpec.toSchemaBaseRef(extType, extName);
|
|
55
|
-
|
|
56
|
-
if (extType && extName) {
|
|
57
|
-
return [`${baseRef}#`, PROPERTIES, name].join('/');
|
|
35
|
+
/**
|
|
36
|
+
* Builds some computed fields and assigns them to the instance.
|
|
37
|
+
*
|
|
38
|
+
* Undefined properties are not assigned.
|
|
39
|
+
*
|
|
40
|
+
* The _constructor_ is private. Use {@link ArgSpec.create} instead.
|
|
41
|
+
* @private
|
|
42
|
+
* @param {string} name
|
|
43
|
+
* @param {ArgSpecOptions<D>} [opts]
|
|
44
|
+
*/
|
|
45
|
+
constructor(name, { extType, extName, dest, defaultValue } = {}) {
|
|
46
|
+
// we must normalize the extension name to fit into our convention for CLI
|
|
47
|
+
// args.
|
|
48
|
+
const arg = ArgSpec.toArg(name, extType, extName);
|
|
49
|
+
const ref = ArgSpec.toSchemaRef(name, extType, extName);
|
|
50
|
+
// if no explicit `dest` provided, just camelCase the name to avoid needing
|
|
51
|
+
// to use bracket syntax when accessing props on the parsed args object.
|
|
52
|
+
const rawDest = lodash_1.default.camelCase(dest ?? name);
|
|
53
|
+
const destKeypath = extType && extName ? [extType, extName, rawDest].join('.') : rawDest;
|
|
54
|
+
this.defaultValue = defaultValue;
|
|
55
|
+
this.name = name;
|
|
56
|
+
this.extType = extType;
|
|
57
|
+
this.extName = extName;
|
|
58
|
+
this.arg = arg;
|
|
59
|
+
this.dest = destKeypath;
|
|
60
|
+
this.ref = ref;
|
|
61
|
+
this.rawDest = rawDest;
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Return the schema ID (`$id`) for the **argument** given the parameters.
|
|
65
|
+
*
|
|
66
|
+
* If you need the "root" or "base" schema ID, use {@link ArgSpec.toSchemaBaseRef} instead.
|
|
67
|
+
* @param {string} name - Argument name
|
|
68
|
+
* @param {ExtensionType} [extType] - Extension type
|
|
69
|
+
* @param {string} [extName] - Extension name
|
|
70
|
+
* @returns {string} Schema ID
|
|
71
|
+
*/
|
|
72
|
+
static toSchemaRef(name, extType, extName) {
|
|
73
|
+
const baseRef = ArgSpec.toSchemaBaseRef(extType, extName);
|
|
74
|
+
if (extType && extName) {
|
|
75
|
+
return [`${baseRef}#`, PROPERTIES, name].join('/');
|
|
76
|
+
}
|
|
77
|
+
return [`${baseRef}#`, PROPERTIES, exports.SERVER_PROP_NAME, PROPERTIES, name].join('/');
|
|
66
78
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Return the schema ID for an extension or the base schema ID.
|
|
81
|
+
* @param {ExtensionType} [extType] - Extension type
|
|
82
|
+
* @param {string} [extName] - Extension name
|
|
83
|
+
*/
|
|
84
|
+
static toSchemaBaseRef(extType, extName) {
|
|
85
|
+
if (extType && extName) {
|
|
86
|
+
return `${extType}-${ArgSpec.toNormalizedExtName(extName)}.json`;
|
|
87
|
+
}
|
|
88
|
+
return exports.APPIUM_CONFIG_SCHEMA_ID;
|
|
76
89
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
extType,
|
|
91
|
-
normalizedExtName
|
|
92
|
-
} = matches.groups;
|
|
93
|
-
return {
|
|
94
|
-
extType,
|
|
95
|
-
normalizedExtName
|
|
96
|
-
};
|
|
90
|
+
/**
|
|
91
|
+
* Return the unique ID for the argument given the parameters.
|
|
92
|
+
* @param {string} name - Argument name
|
|
93
|
+
* @param {ExtensionType} [extType] - Extension type
|
|
94
|
+
* @param {string} [extName] - Extension name
|
|
95
|
+
* @returns {string} Unique ID
|
|
96
|
+
*/
|
|
97
|
+
static toArg(name, extType, extName) {
|
|
98
|
+
const properName = lodash_1.default.kebabCase(name.replace(/^--?/, ''));
|
|
99
|
+
if (extType && extName) {
|
|
100
|
+
return [extType, lodash_1.default.kebabCase(extName), properName].join('-');
|
|
101
|
+
}
|
|
102
|
+
return properName;
|
|
97
103
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
/**
|
|
105
|
+
* Normalizes a raw extension name (not including the type).
|
|
106
|
+
* @param {string} extName - Extension name
|
|
107
|
+
* @returns {string} Normalized extension name
|
|
108
|
+
*/
|
|
109
|
+
static toNormalizedExtName(extName) {
|
|
110
|
+
return lodash_1.default.kebabCase(extName);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* When given the root ID of a schema for an extension (`<extType>-<normalizedExtName>.json`) Returns an object containing the extension type and the _normalized_ extension name.
|
|
114
|
+
* @param {string} schemaId - Root schema ID
|
|
115
|
+
* @returns { {extType?: ExtensionType, normalizedExtName?: string} }
|
|
116
|
+
*/
|
|
117
|
+
static extensionInfoFromRootSchemaId(schemaId) {
|
|
118
|
+
const matches = schemaId.match(SCHEMA_ID_REGEXP);
|
|
119
|
+
if (matches?.groups) {
|
|
120
|
+
const { extType, normalizedExtName } =
|
|
121
|
+
/** @type { {extType: ExtensionType, normalizedExtName: string} } */ (matches.groups);
|
|
122
|
+
return { extType, normalizedExtName };
|
|
123
|
+
}
|
|
124
|
+
return {};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Creates an `ArgSpec`
|
|
128
|
+
*
|
|
129
|
+
* @param {string} name - The canonical name of the argument. Corresponds to a key in a schema's
|
|
130
|
+
* `properties` property.
|
|
131
|
+
* @template D
|
|
132
|
+
* @param {ArgSpecOptions<D>} [opts] - Options
|
|
133
|
+
* @returns {Readonly<ArgSpec>}
|
|
134
|
+
*/
|
|
135
|
+
static create(name, opts) {
|
|
136
|
+
return Object.freeze(new ArgSpec(name, opts));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* String representation, useful for debugging
|
|
140
|
+
* @returns {string}
|
|
141
|
+
*/
|
|
142
|
+
/* istanbul ignore next */
|
|
143
|
+
toString() {
|
|
144
|
+
let str = `[ArgSpec] ${this.name} (${this.ref})`;
|
|
145
|
+
if (this.extType && this.extName) {
|
|
146
|
+
str += ` (ext: ${this.extType}/${this.extName})`;
|
|
147
|
+
}
|
|
148
|
+
return str;
|
|
111
149
|
}
|
|
112
|
-
|
|
113
|
-
return str;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
150
|
}
|
|
117
|
-
|
|
118
151
|
exports.ArgSpec = ArgSpec;
|
|
119
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBUFBJVU1fQ09ORklHX1NDSEVNQV9JRCIsIlNFUlZFUl9QUk9QX05BTUUiLCJTQ0hFTUFfSURfUkVHRVhQIiwiUFJPUEVSVElFUyIsIkFyZ1NwZWMiLCJuYW1lIiwiZXh0VHlwZSIsImV4dE5hbWUiLCJyZWYiLCJhcmciLCJkZXN0IiwicmF3RGVzdCIsImRlZmF1bHRWYWx1ZSIsImNvbnN0cnVjdG9yIiwidG9BcmciLCJ0b1NjaGVtYVJlZiIsIl8iLCJjYW1lbENhc2UiLCJkZXN0S2V5cGF0aCIsImpvaW4iLCJiYXNlUmVmIiwidG9TY2hlbWFCYXNlUmVmIiwidG9Ob3JtYWxpemVkRXh0TmFtZSIsInByb3Blck5hbWUiLCJrZWJhYkNhc2UiLCJyZXBsYWNlIiwiZXh0ZW5zaW9uSW5mb0Zyb21Sb290U2NoZW1hSWQiLCJzY2hlbWFJZCIsIm1hdGNoZXMiLCJtYXRjaCIsImdyb3VwcyIsIm5vcm1hbGl6ZWRFeHROYW1lIiwiY3JlYXRlIiwib3B0cyIsIk9iamVjdCIsImZyZWV6ZSIsInRvU3RyaW5nIiwic3RyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS9hcmctc3BlYy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFRoZSBvcmlnaW5hbCBJRCBvZiB0aGUgQXBwaXVtIGNvbmZpZyBzY2hlbWEuXG4gKiBXZSB1c2UgdGhpcyBpbiB0aGUgQ0xJIHRvIGNvbnZlcnQgaXQgdG8gYGFyZ3BhcnNlYCBvcHRpb25zLlxuICovXG5leHBvcnQgY29uc3QgQVBQSVVNX0NPTkZJR19TQ0hFTUFfSUQgPSAnYXBwaXVtLmpzb24nO1xuXG4vKipcbiAqIFRoZSBzY2hlbWEgcHJvcCBjb250YWluaW5nIHNlcnZlci1yZWxhdGVkIG9wdGlvbnMuIEV2ZXJ5dGhpbmcgaW4gaGVyZVxuICogaXMgXCJuYXRpdmVcIiB0byBBcHBpdW0uXG4gKiBVc2VkIGJ5IHtAbGluayBmbGF0dGVuU2NoZW1hfSBmb3IgdHJhbnNmb3JtaW5nIHRoZSBzY2hlbWEgaW50byBDTEkgYXJncy5cbiAqL1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9QUk9QX05BTUUgPSAnc2VydmVyJztcblxuLyoqXG4gKiBVc2VkIHRvIHBhcnNlIGV4dGVuc2lvbiBpbmZvIGZyb20gYSBzY2hlbWEgSUQuXG4gKi9cbmNvbnN0IFNDSEVNQV9JRF9SRUdFWFAgPSAvXig/PGV4dFR5cGU+Lis/KS0oPzxub3JtYWxpemVkRXh0TmFtZT4uKylcXC5qc29uJC87XG5cbi8qKlxuICogQXZvaWQgdHlwb3MgYnkgdXNpbmcgY29uc3RhbnRzIVxuICovXG5jb25zdCBQUk9QRVJUSUVTID0gJ3Byb3BlcnRpZXMnO1xuXG4vKipcbiAqIEFuIGBBcmdTcGVjYCBpcyBhIGNsYXNzIHJlcHJlc2VudGluZyBtZXRhZGF0YSBhYm91dCBhbiBhcmd1bWVudCAob3IgY29uZmlnXG4gKiBvcHRpb24pIHVzZWQgZm9yIGNyb3NzLXJlZmVyZW5jaW5nLlxuICpcbiAqIFRoaXMgY2xhc3MgaGFzIG5vIGluc3RhbmNlIG1ldGhvZHMsIGFuZCBpcyBiYXNpY2FsbHkganVzdCBhIHJlYWQtb25seSBcInN0cnVjdFwiLlxuICogQHRlbXBsYXRlIERcbiAqL1xuZXhwb3J0IGNsYXNzIEFyZ1NwZWMge1xuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCBuYW1lIG9mIHRoZSBhcmd1bWVudC4gQ29ycmVzcG9uZHMgdG8ga2V5IGluIHNjaGVtYSdzIGBwcm9wZXJ0aWVzYCBwcm9wLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgbmFtZTtcblxuICAvKipcbiAgICogVGhlIGBFeHRlbnNpb25UeXBlYCBvZiB0aGUgYXJndW1lbnQuIFRoaXMgd2lsbCBiZSBzZXQgaWYgdGhlIGFyZyBjYW1lIGZyb20gYW4gZXh0ZW5zaW9uO1xuICAgKiBvdGhlcndpc2UgaXQgd2lsbCBiZSBgdW5kZWZpbmVkYC5cbiAgICogQHR5cGUge0V4dGVuc2lvblR5cGV8dW5kZWZpbmVkfVxuICAgKi9cbiAgZXh0VHlwZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGV4dGVuc2lvbiwgaWYgdGhpcyBhcmd1bWVudCBjYW1lIGZyb20gYW4gZXh0ZW5zaW9uLlxuICAgKlxuICAgKiBPdGhlcndpc2UgYHVuZGVmaW5lZGAuXG4gICAqIEB0eXBlIHtzdHJpbmd8dW5kZWZpbmVkfVxuICAgKi9cbiAgZXh0TmFtZTtcblxuICAvKipcbiAgICogVGhlIHNjaGVtYSBJRCAoYCRpZGApIGZvciB0aGUgYXJndW1lbnQuICBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lZCwgYW5kIGFueSB1c2VyLXByb3ZpZGVkIGAkaWRgcyB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgcmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgQ0xJIGFyZ3VtZW50LCBzYW5zIGxlYWRpbmcgZGFzaGVzLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgYXJnO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzaXJlZCBrZXlwYXRoIGZvciB0aGUgYXJndW1lbnQgYWZ0ZXIgYXJndW1lbnRzIGhhdmUgYmVlbiBwYXJzZWQuXG4gICAqXG4gICAqIFR5cGljYWxseSB0aGlzIGlzIGNhbWVsQ2FzZWQuICBJZiB0aGUgYXJnIGNhbWUgZnJvbSBhbiBleHRlbnNpb24sIGl0IHdpbGwgYmUgcHJlZml4ZWQgd2l0aFxuICAgKiBgPGV4dFR5cGU+LjxleHROYW1lPi5gXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBkZXN0O1xuXG4gIC8qKlxuICAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgQXJnU3BlYy5kZXN0fSBidXQgd2l0aG91dCB0aGUgbGVhZGluZyBgPGV4dFR5cGU+LjxleHROYW1lPi5gIHByZWZpeC5cbiAgICovXG4gIHJhd0Rlc3Q7XG5cbiAgLyoqXG4gICAqIFdoYXRldmVyIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgYXJndW1lbnQgaXMsIGFzIHNwZWNpZmllZCBieSB0aGVcbiAgICogYGRlZmF1bHRgIHByb3BlcnR5IG9mIHRoZSBzY2hlbWEuXG4gICAqIEB0eXBlIHtEfHVuZGVmaW5lZH1cbiAgICovXG4gIGRlZmF1bHRWYWx1ZTtcblxuICAvKipcbiAgICogQnVpbGRzIHNvbWUgY29tcHV0ZWQgZmllbGRzIGFuZCBhc3NpZ25zIHRoZW0gdG8gdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBVbmRlZmluZWQgcHJvcGVydGllcyBhcmUgbm90IGFzc2lnbmVkLlxuICAgKlxuICAgKiBUaGUgX2NvbnN0cnVjdG9yXyBpcyBwcml2YXRlLiBVc2Uge0BsaW5rIEFyZ1NwZWMuY3JlYXRlfSBpbnN0ZWFkLlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0ge0FyZ1NwZWNPcHRpb25zPEQ+fSBbb3B0c11cbiAgICovXG4gIGNvbnN0cnVjdG9yKG5hbWUsIHtleHRUeXBlLCBleHROYW1lLCBkZXN0LCBkZWZhdWx0VmFsdWV9ID0ge30pIHtcbiAgICAvLyB3ZSBtdXN0IG5vcm1hbGl6ZSB0aGUgZXh0ZW5zaW9uIG5hbWUgdG8gZml0IGludG8gb3VyIGNvbnZlbnRpb24gZm9yIENMSVxuICAgIC8vIGFyZ3MuXG4gICAgY29uc3QgYXJnID0gQXJnU3BlYy50b0FyZyhuYW1lLCBleHRUeXBlLCBleHROYW1lKTtcblxuICAgIGNvbnN0IHJlZiA9IEFyZ1NwZWMudG9TY2hlbWFSZWYobmFtZSwgZXh0VHlwZSwgZXh0TmFtZSk7XG5cbiAgICAvLyBpZiBubyBleHBsaWNpdCBgZGVzdGAgcHJvdmlkZWQsIGp1c3QgY2FtZWxDYXNlIHRoZSBuYW1lIHRvIGF2b2lkIG5lZWRpbmdcbiAgICAvLyB0byB1c2UgYnJhY2tldCBzeW50YXggd2hlbiBhY2Nlc3NpbmcgcHJvcHMgb24gdGhlIHBhcnNlZCBhcmdzIG9iamVjdC5cbiAgICBjb25zdCByYXdEZXN0ID0gXy5jYW1lbENhc2UoZGVzdCA/PyBuYW1lKTtcblxuICAgIGNvbnN0IGRlc3RLZXlwYXRoID0gZXh0VHlwZSAmJiBleHROYW1lID8gW2V4dFR5cGUsIGV4dE5hbWUsIHJhd0Rlc3RdLmpvaW4oJy4nKSA6IHJhd0Rlc3Q7XG5cbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuZXh0VHlwZSA9IGV4dFR5cGU7XG4gICAgdGhpcy5leHROYW1lID0gZXh0TmFtZTtcbiAgICB0aGlzLmFyZyA9IGFyZztcbiAgICB0aGlzLmRlc3QgPSBkZXN0S2V5cGF0aDtcbiAgICB0aGlzLnJlZiA9IHJlZjtcbiAgICB0aGlzLnJhd0Rlc3QgPSByYXdEZXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc2NoZW1hIElEIChgJGlkYCkgZm9yIHRoZSAqKmFyZ3VtZW50KiogZ2l2ZW4gdGhlIHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIElmIHlvdSBuZWVkIHRoZSBcInJvb3RcIiBvciBcImJhc2VcIiBzY2hlbWEgSUQsIHVzZSB7QGxpbmsgQXJnU3BlYy50b1NjaGVtYUJhc2VSZWZ9IGluc3RlYWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gQXJndW1lbnQgbmFtZVxuICAgKiBAcGFyYW0ge0V4dGVuc2lvblR5cGV9IFtleHRUeXBlXSAtIEV4dGVuc2lvbiB0eXBlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZXh0TmFtZV0gLSBFeHRlbnNpb24gbmFtZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBTY2hlbWEgSURcbiAgICovXG4gIHN0YXRpYyB0b1NjaGVtYVJlZihuYW1lLCBleHRUeXBlLCBleHROYW1lKSB7XG4gICAgY29uc3QgYmFzZVJlZiA9IEFyZ1NwZWMudG9TY2hlbWFCYXNlUmVmKGV4dFR5cGUsIGV4dE5hbWUpO1xuICAgIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICAgIHJldHVybiBbYCR7YmFzZVJlZn0jYCwgUFJPUEVSVElFUywgbmFtZV0uam9pbignLycpO1xuICAgIH1cbiAgICByZXR1cm4gW2Ake2Jhc2VSZWZ9I2AsIFBST1BFUlRJRVMsIFNFUlZFUl9QUk9QX05BTUUsIFBST1BFUlRJRVMsIG5hbWVdLmpvaW4oJy8nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNjaGVtYSBJRCBmb3IgYW4gZXh0ZW5zaW9uIG9yIHRoZSBiYXNlIHNjaGVtYSBJRC5cbiAgICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSBbZXh0VHlwZV0gLSBFeHRlbnNpb24gdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4dE5hbWVdIC0gRXh0ZW5zaW9uIG5hbWVcbiAgICovXG4gIHN0YXRpYyB0b1NjaGVtYUJhc2VSZWYoZXh0VHlwZSwgZXh0TmFtZSkge1xuICAgIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICAgIHJldHVybiBgJHtleHRUeXBlfS0ke0FyZ1NwZWMudG9Ob3JtYWxpemVkRXh0TmFtZShleHROYW1lKX0uanNvbmA7XG4gICAgfVxuICAgIHJldHVybiBBUFBJVU1fQ09ORklHX1NDSEVNQV9JRDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHVuaXF1ZSBJRCBmb3IgdGhlIGFyZ3VtZW50IGdpdmVuIHRoZSBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIEFyZ3VtZW50IG5hbWVcbiAgICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSBbZXh0VHlwZV0gLSBFeHRlbnNpb24gdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4dE5hbWVdIC0gRXh0ZW5zaW9uIG5hbWVcbiAgICogQHJldHVybnMge3N0cmluZ30gVW5pcXVlIElEXG4gICAqL1xuICBzdGF0aWMgdG9BcmcobmFtZSwgZXh0VHlwZSwgZXh0TmFtZSkge1xuICAgIGNvbnN0IHByb3Blck5hbWUgPSBfLmtlYmFiQ2FzZShuYW1lLnJlcGxhY2UoL14tLT8vLCAnJykpO1xuICAgIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICAgIHJldHVybiBbZXh0VHlwZSwgXy5rZWJhYkNhc2UoZXh0TmFtZSksIHByb3Blck5hbWVdLmpvaW4oJy0nKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3Blck5hbWU7XG4gIH1cblxuICAvKipcbiAgICogTm9ybWFsaXplcyBhIHJhdyBleHRlbnNpb24gbmFtZSAobm90IGluY2x1ZGluZyB0aGUgdHlwZSkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHROYW1lIC0gRXh0ZW5zaW9uIG5hbWVcbiAgICogQHJldHVybnMge3N0cmluZ30gTm9ybWFsaXplZCBleHRlbnNpb24gbmFtZVxuICAgKi9cbiAgc3RhdGljIHRvTm9ybWFsaXplZEV4dE5hbWUoZXh0TmFtZSkge1xuICAgIHJldHVybiBfLmtlYmFiQ2FzZShleHROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGdpdmVuIHRoZSByb290IElEIG9mIGEgc2NoZW1hIGZvciBhbiBleHRlbnNpb24gKGA8ZXh0VHlwZT4tPG5vcm1hbGl6ZWRFeHROYW1lPi5qc29uYCkgUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgZXh0ZW5zaW9uIHR5cGUgYW5kIHRoZSBfbm9ybWFsaXplZF8gZXh0ZW5zaW9uIG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlbWFJZCAtIFJvb3Qgc2NoZW1hIElEXG4gICAqIEByZXR1cm5zIHsge2V4dFR5cGU/OiBFeHRlbnNpb25UeXBlLCBub3JtYWxpemVkRXh0TmFtZT86IHN0cmluZ30gfVxuICAgKi9cbiAgc3RhdGljIGV4dGVuc2lvbkluZm9Gcm9tUm9vdFNjaGVtYUlkKHNjaGVtYUlkKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHNjaGVtYUlkLm1hdGNoKFNDSEVNQV9JRF9SRUdFWFApO1xuICAgIGlmIChtYXRjaGVzPy5ncm91cHMpIHtcbiAgICAgIGNvbnN0IHtleHRUeXBlLCBub3JtYWxpemVkRXh0TmFtZX0gPVxuICAgICAgICAvKiogQHR5cGUgeyB7ZXh0VHlwZTogRXh0ZW5zaW9uVHlwZSwgbm9ybWFsaXplZEV4dE5hbWU6IHN0cmluZ30gfSAqLyAobWF0Y2hlcy5ncm91cHMpO1xuICAgICAgcmV0dXJuIHtleHRUeXBlLCBub3JtYWxpemVkRXh0TmFtZX07XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGBBcmdTcGVjYFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBjYW5vbmljYWwgbmFtZSBvZiB0aGUgYXJndW1lbnQuIENvcnJlc3BvbmRzIHRvIGEga2V5IGluIGEgc2NoZW1hJ3NcbiAgICogYHByb3BlcnRpZXNgIHByb3BlcnR5LlxuICAgKiBAdGVtcGxhdGUgRFxuICAgKiBAcGFyYW0ge0FyZ1NwZWNPcHRpb25zPEQ+fSBbb3B0c10gLSBPcHRpb25zXG4gICAqIEByZXR1cm5zIHtSZWFkb25seTxBcmdTcGVjPn1cbiAgICovXG4gIHN0YXRpYyBjcmVhdGUobmFtZSwgb3B0cykge1xuICAgIHJldHVybiBPYmplY3QuZnJlZXplKG5ldyBBcmdTcGVjKG5hbWUsIG9wdHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJpbmcgcmVwcmVzZW50YXRpb24sIHVzZWZ1bCBmb3IgZGVidWdnaW5nXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICB0b1N0cmluZygpIHtcbiAgICBsZXQgc3RyID0gYFtBcmdTcGVjXSAke3RoaXMubmFtZX0gKCR7dGhpcy5yZWZ9KWA7XG4gICAgaWYgKHRoaXMuZXh0VHlwZSAmJiB0aGlzLmV4dE5hbWUpIHtcbiAgICAgIHN0ciArPSBgIChleHQ6ICR7dGhpcy5leHRUeXBlfS8ke3RoaXMuZXh0TmFtZX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBBcmdTcGVjLmNyZWF0ZX1cbiAqIEB0ZW1wbGF0ZSBEXG4gKiBAdHlwZWRlZiBBcmdTcGVjT3B0aW9uc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtleHROYW1lXVxuICogQHByb3BlcnR5IHtFeHRlbnNpb25UeXBlfSBbZXh0VHlwZV1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGVzdF1cbiAqIEBwcm9wZXJ0eSB7RH0gW2RlZmF1bHRWYWx1ZV1cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FeHRlbnNpb25UeXBlfSBFeHRlbnNpb25UeXBlXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFNTyxNQUFNQSx1QkFBdUIsR0FBRyxhQUFoQzs7QUFPQSxNQUFNQyxnQkFBZ0IsR0FBRyxRQUF6Qjs7QUFLUCxNQUFNQyxnQkFBZ0IsR0FBRyxrREFBekI7QUFLQSxNQUFNQyxVQUFVLEdBQUcsWUFBbkI7O0FBU08sTUFBTUMsT0FBTixDQUFjO0VBS25CQyxJQUFJO0VBT0pDLE9BQU87RUFRUEMsT0FBTztFQU9QQyxHQUFHO0VBTUhDLEdBQUc7RUFTSEMsSUFBSTtFQUtKQyxPQUFPO0VBT1BDLFlBQVk7O0VBWVpDLFdBQVcsQ0FBQ1IsSUFBRCxFQUFPO0lBQUNDLE9BQUQ7SUFBVUMsT0FBVjtJQUFtQkcsSUFBbkI7SUFBeUJFO0VBQXpCLElBQXlDLEVBQWhELEVBQW9EO0lBRzdELE1BQU1ILEdBQUcsR0FBR0wsT0FBTyxDQUFDVSxLQUFSLENBQWNULElBQWQsRUFBb0JDLE9BQXBCLEVBQTZCQyxPQUE3QixDQUFaO0lBRUEsTUFBTUMsR0FBRyxHQUFHSixPQUFPLENBQUNXLFdBQVIsQ0FBb0JWLElBQXBCLEVBQTBCQyxPQUExQixFQUFtQ0MsT0FBbkMsQ0FBWjs7SUFJQSxNQUFNSSxPQUFPLEdBQUdLLGVBQUEsQ0FBRUMsU0FBRixDQUFZUCxJQUFJLElBQUlMLElBQXBCLENBQWhCOztJQUVBLE1BQU1hLFdBQVcsR0FBR1osT0FBTyxJQUFJQyxPQUFYLEdBQXFCLENBQUNELE9BQUQsRUFBVUMsT0FBVixFQUFtQkksT0FBbkIsRUFBNEJRLElBQTVCLENBQWlDLEdBQWpDLENBQXJCLEdBQTZEUixPQUFqRjtJQUVBLEtBQUtDLFlBQUwsR0FBb0JBLFlBQXBCO0lBQ0EsS0FBS1AsSUFBTCxHQUFZQSxJQUFaO0lBQ0EsS0FBS0MsT0FBTCxHQUFlQSxPQUFmO0lBQ0EsS0FBS0MsT0FBTCxHQUFlQSxPQUFmO0lBQ0EsS0FBS0UsR0FBTCxHQUFXQSxHQUFYO0lBQ0EsS0FBS0MsSUFBTCxHQUFZUSxXQUFaO0lBQ0EsS0FBS1YsR0FBTCxHQUFXQSxHQUFYO0lBQ0EsS0FBS0csT0FBTCxHQUFlQSxPQUFmO0VBQ0Q7O0VBV2lCLE9BQVhJLFdBQVcsQ0FBQ1YsSUFBRCxFQUFPQyxPQUFQLEVBQWdCQyxPQUFoQixFQUF5QjtJQUN6QyxNQUFNYSxPQUFPLEdBQUdoQixPQUFPLENBQUNpQixlQUFSLENBQXdCZixPQUF4QixFQUFpQ0MsT0FBakMsQ0FBaEI7O0lBQ0EsSUFBSUQsT0FBTyxJQUFJQyxPQUFmLEVBQXdCO01BQ3RCLE9BQU8sQ0FBRSxHQUFFYSxPQUFRLEdBQVosRUFBZ0JqQixVQUFoQixFQUE0QkUsSUFBNUIsRUFBa0NjLElBQWxDLENBQXVDLEdBQXZDLENBQVA7SUFDRDs7SUFDRCxPQUFPLENBQUUsR0FBRUMsT0FBUSxHQUFaLEVBQWdCakIsVUFBaEIsRUFBNEJGLGdCQUE1QixFQUE4Q0UsVUFBOUMsRUFBMERFLElBQTFELEVBQWdFYyxJQUFoRSxDQUFxRSxHQUFyRSxDQUFQO0VBQ0Q7O0VBT3FCLE9BQWZFLGVBQWUsQ0FBQ2YsT0FBRCxFQUFVQyxPQUFWLEVBQW1CO0lBQ3ZDLElBQUlELE9BQU8sSUFBSUMsT0FBZixFQUF3QjtNQUN0QixPQUFRLEdBQUVELE9BQVEsSUFBR0YsT0FBTyxDQUFDa0IsbUJBQVIsQ0FBNEJmLE9BQTVCLENBQXFDLE9BQTFEO0lBQ0Q7O0lBQ0QsT0FBT1AsdUJBQVA7RUFDRDs7RUFTVyxPQUFMYyxLQUFLLENBQUNULElBQUQsRUFBT0MsT0FBUCxFQUFnQkMsT0FBaEIsRUFBeUI7SUFDbkMsTUFBTWdCLFVBQVUsR0FBR1AsZUFBQSxDQUFFUSxTQUFGLENBQVluQixJQUFJLENBQUNvQixPQUFMLENBQWEsTUFBYixFQUFxQixFQUFyQixDQUFaLENBQW5COztJQUNBLElBQUluQixPQUFPLElBQUlDLE9BQWYsRUFBd0I7TUFDdEIsT0FBTyxDQUFDRCxPQUFELEVBQVVVLGVBQUEsQ0FBRVEsU0FBRixDQUFZakIsT0FBWixDQUFWLEVBQWdDZ0IsVUFBaEMsRUFBNENKLElBQTVDLENBQWlELEdBQWpELENBQVA7SUFDRDs7SUFDRCxPQUFPSSxVQUFQO0VBQ0Q7O0VBT3lCLE9BQW5CRCxtQkFBbUIsQ0FBQ2YsT0FBRCxFQUFVO0lBQ2xDLE9BQU9TLGVBQUEsQ0FBRVEsU0FBRixDQUFZakIsT0FBWixDQUFQO0VBQ0Q7O0VBT21DLE9BQTdCbUIsNkJBQTZCLENBQUNDLFFBQUQsRUFBVztJQUM3QyxNQUFNQyxPQUFPLEdBQUdELFFBQVEsQ0FBQ0UsS0FBVCxDQUFlM0IsZ0JBQWYsQ0FBaEI7O0lBQ0EsSUFBSTBCLE9BQUosYUFBSUEsT0FBSixlQUFJQSxPQUFPLENBQUVFLE1BQWIsRUFBcUI7TUFDbkIsTUFBTTtRQUFDeEIsT0FBRDtRQUFVeUI7TUFBVixJQUNrRUgsT0FBTyxDQUFDRSxNQURoRjtNQUVBLE9BQU87UUFBQ3hCLE9BQUQ7UUFBVXlCO01BQVYsQ0FBUDtJQUNEOztJQUNELE9BQU8sRUFBUDtFQUNEOztFQVdZLE9BQU5DLE1BQU0sQ0FBQzNCLElBQUQsRUFBTzRCLElBQVAsRUFBYTtJQUN4QixPQUFPQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxJQUFJL0IsT0FBSixDQUFZQyxJQUFaLEVBQWtCNEIsSUFBbEIsQ0FBZCxDQUFQO0VBQ0Q7O0VBT0RHLFFBQVEsR0FBRztJQUNULElBQUlDLEdBQUcsR0FBSSxhQUFZLEtBQUtoQyxJQUFLLEtBQUksS0FBS0csR0FBSSxHQUE5Qzs7SUFDQSxJQUFJLEtBQUtGLE9BQUwsSUFBZ0IsS0FBS0MsT0FBekIsRUFBa0M7TUFDaEM4QixHQUFHLElBQUssVUFBUyxLQUFLL0IsT0FBUSxJQUFHLEtBQUtDLE9BQVEsR0FBOUM7SUFDRDs7SUFDRCxPQUFPOEIsR0FBUDtFQUNEOztBQXJMa0IifQ==
|
|
152
|
+
/**
|
|
153
|
+
* Options for {@link ArgSpec.create}
|
|
154
|
+
* @template D
|
|
155
|
+
* @typedef ArgSpecOptions
|
|
156
|
+
* @property {string} [extName]
|
|
157
|
+
* @property {ExtensionType} [extType]
|
|
158
|
+
* @property {string} [dest]
|
|
159
|
+
* @property {D} [defaultValue]
|
|
160
|
+
*/
|
|
161
|
+
/**
|
|
162
|
+
* @typedef {import('@appium/types').ExtensionType} ExtensionType
|
|
163
|
+
*/
|
|
164
|
+
//# sourceMappingURL=arg-spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arg-spec.js","
|
|
1
|
+
{"version":3,"file":"arg-spec.js","sourceRoot":"","sources":["../../../lib/schema/arg-spec.js"],"names":[],"mappings":"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"}
|