appium 2.0.0-beta.45 → 2.0.0-beta.47

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 (138) hide show
  1. package/README.md +145 -44
  2. package/build/lib/appium.d.ts +3 -103
  3. package/build/lib/appium.d.ts.map +1 -1
  4. package/build/lib/appium.js +679 -549
  5. package/build/lib/appium.js.map +1 -1
  6. package/build/lib/cli/args.js +247 -127
  7. package/build/lib/cli/args.js.map +1 -1
  8. package/build/lib/cli/driver-command.js +63 -88
  9. package/build/lib/cli/driver-command.js.map +1 -1
  10. package/build/lib/cli/extension-command.d.ts +32 -23
  11. package/build/lib/cli/extension-command.d.ts.map +1 -1
  12. package/build/lib/cli/extension-command.js +730 -512
  13. package/build/lib/cli/extension-command.js.map +1 -1
  14. package/build/lib/cli/extension.d.ts +5 -4
  15. package/build/lib/cli/extension.d.ts.map +1 -1
  16. package/build/lib/cli/extension.js +68 -65
  17. package/build/lib/cli/extension.js.map +1 -1
  18. package/build/lib/cli/parser.d.ts +3 -3
  19. package/build/lib/cli/parser.d.ts.map +1 -1
  20. package/build/lib/cli/parser.js +234 -192
  21. package/build/lib/cli/parser.js.map +1 -1
  22. package/build/lib/cli/plugin-command.js +58 -87
  23. package/build/lib/cli/plugin-command.js.map +1 -1
  24. package/build/lib/cli/utils.js +66 -69
  25. package/build/lib/cli/utils.js.map +1 -1
  26. package/build/lib/config-file.d.ts.map +1 -1
  27. package/build/lib/config-file.js +189 -120
  28. package/build/lib/config-file.js.map +1 -1
  29. package/build/lib/config.d.ts.map +1 -1
  30. package/build/lib/config.js +254 -213
  31. package/build/lib/config.js.map +1 -1
  32. package/build/lib/constants.d.ts +5 -5
  33. package/build/lib/constants.d.ts.map +1 -1
  34. package/build/lib/constants.js +64 -59
  35. package/build/lib/constants.js.map +1 -1
  36. package/build/lib/extension/driver-config.js +199 -164
  37. package/build/lib/extension/driver-config.js.map +1 -1
  38. package/build/lib/extension/extension-config.d.ts +18 -16
  39. package/build/lib/extension/extension-config.d.ts.map +1 -1
  40. package/build/lib/extension/extension-config.js +523 -396
  41. package/build/lib/extension/extension-config.js.map +1 -1
  42. package/build/lib/extension/index.js +98 -68
  43. package/build/lib/extension/index.js.map +1 -1
  44. package/build/lib/extension/manifest-migrations.d.ts +27 -0
  45. package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
  46. package/build/lib/extension/manifest-migrations.js +99 -0
  47. package/build/lib/extension/manifest-migrations.js.map +1 -0
  48. package/build/lib/extension/manifest.d.ts +7 -56
  49. package/build/lib/extension/manifest.d.ts.map +1 -1
  50. package/build/lib/extension/manifest.js +432 -240
  51. package/build/lib/extension/manifest.js.map +1 -1
  52. package/build/lib/extension/package-changed.js +57 -61
  53. package/build/lib/extension/package-changed.js.map +1 -1
  54. package/build/lib/extension/plugin-config.d.ts +2 -3
  55. package/build/lib/extension/plugin-config.d.ts.map +1 -1
  56. package/build/lib/extension/plugin-config.js +94 -70
  57. package/build/lib/extension/plugin-config.js.map +1 -1
  58. package/build/lib/grid-register.js +119 -137
  59. package/build/lib/grid-register.js.map +1 -1
  60. package/build/lib/logger.d.ts +1 -1
  61. package/build/lib/logger.d.ts.map +1 -1
  62. package/build/lib/logger.js +5 -15
  63. package/build/lib/logger.js.map +1 -1
  64. package/build/lib/logsink.d.ts.map +1 -1
  65. package/build/lib/logsink.js +189 -183
  66. package/build/lib/logsink.js.map +1 -1
  67. package/build/lib/main.d.ts +19 -12
  68. package/build/lib/main.d.ts.map +1 -1
  69. package/build/lib/main.js +330 -304
  70. package/build/lib/main.js.map +1 -1
  71. package/build/lib/schema/arg-spec.js +153 -108
  72. package/build/lib/schema/arg-spec.js.map +1 -1
  73. package/build/lib/schema/cli-args.js +203 -164
  74. package/build/lib/schema/cli-args.js.map +1 -1
  75. package/build/lib/schema/cli-transformers.js +117 -72
  76. package/build/lib/schema/cli-transformers.js.map +1 -1
  77. package/build/lib/schema/index.js +17 -32
  78. package/build/lib/schema/index.js.map +1 -1
  79. package/build/lib/schema/keywords.js +125 -67
  80. package/build/lib/schema/keywords.js.map +1 -1
  81. package/build/lib/schema/schema.d.ts.map +1 -1
  82. package/build/lib/schema/schema.js +582 -417
  83. package/build/lib/schema/schema.js.map +1 -1
  84. package/build/lib/utils.d.ts +41 -255
  85. package/build/lib/utils.d.ts.map +1 -1
  86. package/build/lib/utils.js +342 -193
  87. package/build/lib/utils.js.map +1 -1
  88. package/build/tsconfig.tsbuildinfo +1 -1
  89. package/build/types/cli.d.ts +45 -34
  90. package/build/types/cli.d.ts.map +1 -1
  91. package/build/types/cli.js +3 -0
  92. package/build/types/cli.js.map +1 -0
  93. package/build/types/index.d.ts +1 -2
  94. package/build/types/index.d.ts.map +1 -1
  95. package/build/types/index.js +19 -0
  96. package/build/types/index.js.map +1 -0
  97. package/build/types/manifest/base.d.ts +135 -0
  98. package/build/types/manifest/base.d.ts.map +1 -0
  99. package/build/types/manifest/base.js +3 -0
  100. package/build/types/manifest/base.js.map +1 -0
  101. package/build/types/manifest/index.d.ts +19 -0
  102. package/build/types/manifest/index.d.ts.map +1 -0
  103. package/build/types/manifest/index.js +40 -0
  104. package/build/types/manifest/index.js.map +1 -0
  105. package/build/types/manifest/v3.d.ts +139 -0
  106. package/build/types/manifest/v3.d.ts.map +1 -0
  107. package/build/types/manifest/v3.js +3 -0
  108. package/build/types/manifest/v3.js.map +1 -0
  109. package/lib/appium.js +1 -1
  110. package/lib/cli/args.js +1 -1
  111. package/lib/cli/extension-command.js +116 -61
  112. package/lib/cli/extension.js +9 -8
  113. package/lib/cli/parser.js +2 -2
  114. package/lib/config-file.js +2 -3
  115. package/lib/config.js +3 -2
  116. package/lib/constants.js +6 -5
  117. package/lib/extension/extension-config.js +24 -25
  118. package/lib/extension/manifest-migrations.js +99 -0
  119. package/lib/extension/manifest.js +79 -72
  120. package/lib/extension/plugin-config.js +1 -2
  121. package/lib/logsink.js +26 -5
  122. package/lib/main.js +58 -50
  123. package/lib/schema/schema.js +6 -1
  124. package/lib/utils.js +62 -0
  125. package/package.json +23 -24
  126. package/scripts/autoinstall-extensions.js +78 -26
  127. package/types/cli.ts +81 -42
  128. package/types/index.ts +1 -2
  129. package/types/manifest/README.md +30 -0
  130. package/types/manifest/base.ts +158 -0
  131. package/types/manifest/index.ts +27 -0
  132. package/types/manifest/v3.ts +161 -0
  133. package/build/types/appium-manifest.d.ts +0 -59
  134. package/build/types/appium-manifest.d.ts.map +0 -1
  135. package/build/types/extension-manifest.d.ts +0 -55
  136. package/build/types/extension-manifest.d.ts.map +0 -1
  137. package/types/appium-manifest.ts +0 -73
  138. package/types/extension-manifest.ts +0 -64
@@ -1 +1 @@
1
- {"version":3,"file":"driver-config.js","names":["DriverConfig","ExtensionConfig","knownAutomationNames","_instances","WeakMap","constructor","manifest","DRIVER_TYPE","Set","create","instance","getInstance","Error","appiumHome","set","get","validate","clear","_validate","getExtensionData","getConfigProblems","extData","problems","platformNames","automationName","_","isArray","push","err","val","isEmpty","pName","isString","has","add","extensionDesc","driverName","version","findMatchingDriver","platformName","log","info","mainClass","_getDriverBySupport","getInstallPath","driver","require","msg","message","matchAutomationName","matchPlatformName","drivers","installedExtensions","driverData","toPairs","aNameMatches","toLowerCase","pNameMatches","includes","map","toLower","JSON","stringify"],"sources":["../../../lib/extension/driver-config.js"],"sourcesContent":["import _ from 'lodash';\nimport {DRIVER_TYPE} from '../constants';\nimport log from '../logger';\nimport {ExtensionConfig} from './extension-config';\n\n/**\n * @extends {ExtensionConfig<DriverType>}\n */\nexport class DriverConfig extends ExtensionConfig {\n /**\n * A set of unique automation names used by drivers.\n * @type {Set<string>}\n */\n knownAutomationNames;\n\n /**\n * A mapping of {@link Manifest} instances to {@link DriverConfig} instances.\n *\n * `Manifest` and `ExtensionConfig` have a one-to-many relationship; each `Manifest` should be associated with a `DriverConfig` and a `PluginConfig`; no more, no less.\n *\n * This variable tracks the `Manifest`-to-`DriverConfig` portion.\n *\n * @type {WeakMap<Manifest,DriverConfig>}\n * @private\n */\n static _instances = new WeakMap();\n\n /**\n * Call {@link DriverConfig.create} instead.\n * @private\n * @param {import('./manifest').Manifest} manifest - Manifest instance\n */\n constructor(manifest) {\n super(DRIVER_TYPE, manifest);\n\n this.knownAutomationNames = new Set();\n }\n\n /**\n * Creates a new {@link DriverConfig} instance for a {@link Manifest} instance.\n *\n * @param {Manifest} manifest\n * @throws If `manifest` already associated with a `DriverConfig`\n * @returns {DriverConfig}\n */\n static create(manifest) {\n const instance = new DriverConfig(manifest);\n if (DriverConfig.getInstance(manifest)) {\n throw new Error(\n `Manifest with APPIUM_HOME ${manifest.appiumHome} already has a DriverConfig; use DriverConfig.getInstance() to retrieve it.`\n );\n }\n DriverConfig._instances.set(manifest, instance);\n return instance;\n }\n\n /**\n * Returns a DriverConfig associated with a Manifest\n * @param {Manifest} manifest\n * @returns {DriverConfig|undefined}\n */\n static getInstance(manifest) {\n return DriverConfig._instances.get(manifest);\n }\n\n /**\n * Checks extensions for problems\n */\n async validate() {\n this.knownAutomationNames.clear();\n return await super._validate(this.manifest.getExtensionData(DRIVER_TYPE));\n }\n\n /**\n * @param {ExtManifest<DriverType>} extData\n * @returns {import('./extension-config').ExtManifestProblem[]}\n */\n getConfigProblems(extData) {\n const problems = [];\n const {platformNames, automationName} = extData;\n\n if (!_.isArray(platformNames)) {\n problems.push({\n err: 'Missing or incorrect supported platformNames list.',\n val: platformNames,\n });\n } else {\n if (_.isEmpty(platformNames)) {\n problems.push({\n err: 'Empty platformNames list.',\n val: platformNames,\n });\n } else {\n for (const pName of platformNames) {\n if (!_.isString(pName)) {\n problems.push({\n err: 'Incorrectly formatted platformName.',\n val: pName,\n });\n }\n }\n }\n }\n\n if (!_.isString(automationName)) {\n problems.push({\n err: 'Missing or incorrect automationName',\n val: automationName,\n });\n }\n\n if (this.knownAutomationNames.has(automationName)) {\n problems.push({\n err: 'Multiple drivers claim support for the same automationName',\n val: automationName,\n });\n }\n\n // should we retain the name at the end of this function, once we've checked there are no problems?\n this.knownAutomationNames.add(automationName);\n\n return problems;\n }\n\n /**\n * @param {ExtName<DriverType>} driverName\n * @param {ExtManifest<DriverType>} extData\n * @returns {string}\n */\n extensionDesc(driverName, {version, automationName}) {\n return `${driverName}@${version} (automationName '${automationName}')`;\n }\n\n /**\n * Given capabilities, find a matching driver within the config. Load its class and return it along with version and driver name.\n * @template {import('@appium/types').StringRecord} C\n * @param {C} caps\n * @returns {MatchedDriver}\n */\n findMatchingDriver({automationName, platformName}) {\n if (!_.isString(platformName)) {\n throw new Error('You must include a platformName capability');\n }\n\n if (!_.isString(automationName)) {\n throw new Error('You must include an automationName capability');\n }\n\n log.info(\n `Attempting to find matching driver for automationName ` +\n `'${automationName}' and platformName '${platformName}'`\n );\n\n try {\n const {driverName, mainClass, version} = this._getDriverBySupport(\n automationName,\n platformName\n );\n log.info(`The '${driverName}' driver was installed and matched caps.`);\n log.info(`Will require it at ${this.getInstallPath(driverName)}`);\n const driver = this.require(driverName);\n if (!driver) {\n throw new Error(\n `Driver '${driverName}' did not export a class with name '${mainClass}'. Contact the author of the driver!`\n );\n }\n return {driver, version, driverName};\n } catch (err) {\n const msg =\n `Could not find a driver for automationName ` +\n `'${automationName}' and platformName ${platformName}'. ` +\n `Have you installed a driver that supports those ` +\n `capabilities? Run 'appium driver list --installed' to see. ` +\n `(Lower-level error: ${err.message})`;\n throw new Error(msg);\n }\n }\n\n /**\n * Given an automation name and platform name, find a suitable driver and return its extension data.\n * @param {string} matchAutomationName\n * @param {string} matchPlatformName\n * @returns {ExtMetadata<DriverType> & import('appium/types').InternalMetadata & import('appium/types').CommonExtMetadata}\n */\n _getDriverBySupport(matchAutomationName, matchPlatformName) {\n const drivers = this.installedExtensions;\n for (const [driverName, driverData] of _.toPairs(drivers)) {\n const {automationName, platformNames} = driverData;\n const aNameMatches = automationName.toLowerCase() === matchAutomationName.toLowerCase();\n const pNameMatches = _.includes(\n platformNames.map(_.toLower),\n matchPlatformName.toLowerCase()\n );\n\n if (aNameMatches && pNameMatches) {\n return {driverName, ...driverData};\n }\n\n if (aNameMatches) {\n throw new Error(\n `Driver '${driverName}' supports automationName ` +\n `'${automationName}', but Appium could not find ` +\n `support for platformName '${matchPlatformName}'. Supported ` +\n `platformNames are: ` +\n JSON.stringify(platformNames)\n );\n }\n }\n\n throw new Error(`Could not find installed driver to support given caps`);\n }\n}\n\n/**\n * @template T\n * @typedef {import('appium/types').ExtMetadata<T>} ExtMetadata\n */\n\n/**\n * @template T\n * @typedef {import('appium/types').ExtManifest<T>} ExtManifest\n */\n\n/**\n * @typedef {import('appium/types').ManifestData} ManifestData\n * @typedef {import('@appium/types').DriverType} DriverType\n * @typedef {import('./manifest').Manifest} Manifest\n */\n\n/**\n * @template T\n * @typedef {import('appium/types').ExtRecord<T>} ExtRecord\n */\n\n/**\n * @template T\n * @typedef {import('appium/types').ExtName<T>} ExtName\n */\n\n/**\n * Return value of {@linkcode DriverConfig.findMatchingDriver}\n * @typedef MatchedDriver\n * @property {import('@appium/types').DriverClass} driver\n * @property {string} version\n * @property {string} driverName\n */\n\n/**\n * @typedef {import('@appium/types').Capabilities} Capabilities\n */\n"],"mappings":"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"}
1
+ {"version":3,"file":"driver-config.js","sourceRoot":"","sources":["../../../lib/extension/driver-config.js"],"names":[],"mappings":"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"}
@@ -140,11 +140,11 @@ export class ExtensionConfig<ExtType extends import("@appium/types").ExtensionTy
140
140
  addExtension(extName: string, extManifest: ExtManifest<ExtType>, { write }?: ExtensionConfigMutationOpts | undefined): Promise<void>;
141
141
  /**
142
142
  * @param {ExtName<ExtType>} extName
143
- * @param {ExtManifest<ExtType>|import('../cli/extension-command').ExtensionFields<ExtType>} extManifest
143
+ * @param {ExtManifest<ExtType>} extManifest
144
144
  * @param {ExtensionConfigMutationOpts} [opts]
145
145
  * @returns {Promise<void>}
146
146
  */
147
- updateExtension(extName: ExtName<ExtType>, extManifest: ExtManifest<ExtType> | import('../cli/extension-command').ExtensionFields<ExtType>, { write }?: ExtensionConfigMutationOpts | undefined): Promise<void>;
147
+ updateExtension(extName: ExtName<ExtType>, extManifest: ExtManifest<ExtType>, { write }?: ExtensionConfigMutationOpts | undefined): Promise<void>;
148
148
  /**
149
149
  * Remove an extension from the list of installed extensions, and optionally avoid a write to the manifest file.
150
150
  *
@@ -167,10 +167,13 @@ export class ExtensionConfig<ExtType extends import("@appium/types").ExtensionTy
167
167
  */
168
168
  extensionDesc(extName: ExtName<ExtType>, extManifest: ExtManifest<ExtType>): string;
169
169
  /**
170
- * @param {string} extName
170
+ * Returns--with reasonable accuracy--the path on disk to the extension.
171
+ *
172
+ * If `installPath` is present in the manifest, then it is used; otherwise we just guess.
173
+ * @param {keyof typeof this.installedExtensions} extName
171
174
  * @returns {string}
172
175
  */
173
- getInstallPath(extName: string): string;
176
+ getInstallPath(extName: keyof typeof this.installedExtensions): string;
174
177
  /**
175
178
  * Loads extension and returns its main class (constructor)
176
179
  * @param {ExtName<ExtType>} extName
@@ -212,12 +215,17 @@ export type ExtManifestProblem = {
212
215
  export type ExtensionLogFn = (...args: any[]) => void;
213
216
  export type ExtensionType = import('@appium/types').ExtensionType;
214
217
  export type Manifest = import('./manifest').Manifest;
215
- export type ExtManifest<T> = import('appium/types').ExtManifest<T>;
216
- export type ExtManifestWithSchema<T> = import('appium/types').ExtManifestWithSchema<T>;
217
- export type ExtName<T> = import('appium/types').ExtName<T>;
218
- export type ExtClass<T> = import('appium/types').ExtClass<T>;
219
- export type ExtRecord<T> = import('appium/types').ExtRecord<T>;
220
- export type ExtCommand<T> = import('../cli/extension').ExtCommand<T>;
218
+ export type ExtensionListData = import('../cli/extension-command').ExtensionListData;
219
+ export type InstalledExtensionListData = import('../cli/extension-command').InstalledExtensionListData;
220
+ export type InstallType = import('appium/types').InstallType;
221
+ export type ExtManifest<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtManifest<ExtType>;
222
+ export type ExtManifestWithSchema<ExtType extends import("@appium/types").ExtensionType> = ExtManifest<ExtType> & {
223
+ schema: NonNullable<ExtManifest<ExtType>['schema']>;
224
+ };
225
+ export type ExtName<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtName<ExtType>;
226
+ export type ExtClass<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtClass<ExtType>;
227
+ export type ExtRecord<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtRecord<ExtType>;
228
+ export type ExtCommand<ExtType extends import("@appium/types").ExtensionType> = import('../cli/extension').ExtCommand<ExtType>;
221
229
  /**
222
230
  * Options for various methods in {@link ExtensionConfig }
223
231
  */
@@ -227,12 +235,6 @@ export type ExtensionConfigMutationOpts = {
227
235
  */
228
236
  write?: boolean | undefined;
229
237
  };
230
- /**
231
- * A valid install type
232
- */
233
- export type InstallType = typeof INSTALL_TYPE_NPM | typeof INSTALL_TYPE_GIT | typeof INSTALL_TYPE_LOCAL | typeof INSTALL_TYPE_GITHUB;
234
- export type ExtensionListData = import('../cli/extension-command').ExtensionListData;
235
- export type InstalledExtensionListData = import('../cli/extension-command').InstalledExtensionListData;
236
238
  export const INSTALL_TYPE_NPM: "npm";
237
239
  export const INSTALL_TYPE_GIT: "git";
238
240
  export const INSTALL_TYPE_LOCAL: "local";
@@ -1 +1 @@
1
- {"version":3,"file":"extension-config.d.ts","sourceRoot":"","sources":["../../../lib/extension/extension-config.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension-config.d.ts","sourceRoot":"","sources":["../../../lib/extension/extension-config.js"],"names":[],"mappings":"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"}