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":"manifest.js","names":["CONFIG_SCHEMA_REV","CONFIG_DATA_DRIVER_KEY","DRIVER_TYPE","CONFIG_DATA_PLUGIN_KEY","PLUGIN_TYPE","INITIAL_MANIFEST_DATA","Object","freeze","schemaRev","isExtension","value","_","isPlainObject","appium","isString","name","version","isDriver","get","isArray","isPlugin","Manifest","_data","_appiumHome","_manifestPath","_writing","_reading","constructor","appiumHome","cloneDeep","getInstance","memoize","_getInstance","syncWithInstalledExtensions","didChange","onMatch","filepath","pkg","JSON","parse","fs","readFile","changed","addExtensionFromPackage","queue","path","join","B","resolve","reject","glob","cwd","silent","absolute","err","on","push","all","hasDriver","Boolean","drivers","hasPlugin","plugins","pkgJson","pkgPath","extensionPath","dirname","internal","pkgName","appiumVersion","peerDependencies","installType","INSTALL_TYPE_NPM","installSpec","driverName","addExtension","omit","pluginName","TypeError","extType","extName","extData","data","clone","manifestPath","getExtensionData","read","isNewFile","_setManifestPath","log","debug","yaml","YAML","stringify","code","Error","message","installedExtensionsChanged","env","hasAppiumDependency","packageDidChange","write","undefined","resolveManifestPath","relative","startsWith","mkdirp","writeFile"],"sources":["../../../lib/extension/manifest.js"],"sourcesContent":["/**\n * Module containing {@link Manifest} which handles reading & writing of extension config files.\n */\n\nimport B from 'bluebird';\nimport glob from 'glob';\nimport {env, fs} from '@appium/support';\nimport _ from 'lodash';\nimport path from 'path';\nimport YAML from 'yaml';\nimport {DRIVER_TYPE, PLUGIN_TYPE} from '../constants';\nimport log from '../logger';\nimport {INSTALL_TYPE_NPM} from './extension-config';\nimport {packageDidChange} from './package-changed';\n\n/**\n * Current configuration schema revision!\n */\nconst CONFIG_SCHEMA_REV = 2;\n\n/**\n * The name of the prop (`drivers`) used in `extensions.yaml` for drivers.\n * @type {`${typeof DRIVER_TYPE}s`}\n */\nconst CONFIG_DATA_DRIVER_KEY = `${DRIVER_TYPE}s`;\n\n/**\n * The name of the prop (`plugins`) used in `extensions.yaml` for plugins.\n * @type {`${typeof PLUGIN_TYPE}s`}\n */\nconst CONFIG_DATA_PLUGIN_KEY = `${PLUGIN_TYPE}s`;\n\n/**\n * @type {Readonly<ManifestData>}\n */\nconst INITIAL_MANIFEST_DATA = Object.freeze({\n [CONFIG_DATA_DRIVER_KEY]: Object.freeze({}),\n [CONFIG_DATA_PLUGIN_KEY]: Object.freeze({}),\n schemaRev: CONFIG_SCHEMA_REV,\n});\n\n/**\n * Given a `package.json` return `true` if it represents an Appium Extension (either a driver or plugin).\n *\n * The `package.json` must have an `appium` property which is an object.\n * @param {any} value\n * @returns {value is ExtPackageJson<ExtensionType>}\n */\nfunction isExtension(value) {\n return (\n _.isPlainObject(value) &&\n _.isPlainObject(value.appium) &&\n _.isString(value.name) &&\n _.isString(value.version)\n );\n}\n/**\n * Given a `package.json`, return `true` if it represents an Appium Driver.\n *\n * To be considered a driver, a `package.json` must have a fields\n * `appium.driverName`, `appium.automationName` and `appium.platformNames`.\n * @param {any} value - Value to test\n * @returns {value is ExtPackageJson<DriverType>}\n */\nfunction isDriver(value) {\n return (\n isExtension(value) &&\n _.isString(_.get(value, 'appium.driverName')) &&\n _.isString(_.get(value, 'appium.automationName')) &&\n _.isArray(_.get(value, 'appium.platformNames'))\n );\n}\n\n/**\n * Given a `package.json`, return `true` if it represents an Appium Plugin.\n *\n * To be considered a plugin, a `package.json` must have an `appium.pluginName` field.\n * @param {any} value - Value to test\n * @returns {value is ExtPackageJson<PluginType>}\n */\nfunction isPlugin(value) {\n return isExtension(value) && _.isString(_.get(value, 'appium.pluginName'));\n}\n\n/**\n * Handles reading & writing of extension config files.\n *\n * Only one instance of this class exists per value of `APPIUM_HOME`.\n */\nexport class Manifest {\n /**\n * The entire contents of a parsed YAML extension config file.\n *\n * Contains proxies for automatic persistence on disk\n * @type {ManifestData}\n * @private\n */\n _data;\n\n /**\n * Path to `APPIUM_HOME`.\n * @private\n * @type {Readonly<string>}\n */\n _appiumHome;\n\n /**\n * Path to `extensions.yaml`\n * @type {string}\n * Not set until {@link Manifest.read} is called.\n */\n _manifestPath;\n\n /**\n * Helps avoid writing multiple times.\n *\n * If this is `undefined`, calling {@link Manifest.write} will cause it to be\n * set to a `Promise`. When the call to `write()` is complete, the `Promise`\n * will resolve and then this value will be set to `undefined`. Concurrent calls\n * made while this value is a `Promise` will return the `Promise` itself.\n * @private\n * @type {Promise<boolean>|undefined}\n */\n _writing;\n\n /**\n * Helps avoid reading multiple times.\n *\n * If this is `undefined`, calling {@link Manifest.read} will cause it to be\n * set to a `Promise`. When the call to `read()` is complete, the `Promise`\n * will resolve and then this value will be set to `undefined`. Concurrent calls\n * made while this value is a `Promise` will return the `Promise` itself.\n * @private\n * @type {Promise<void>|undefined}\n */\n _reading;\n\n /**\n * Sets internal data to a fresh clone of {@link INITIAL_MANIFEST_DATA}\n *\n * Use {@link Manifest.getInstance} instead.\n * @param {string} appiumHome\n * @private\n */\n constructor(appiumHome) {\n this._appiumHome = appiumHome;\n this._data = _.cloneDeep(INITIAL_MANIFEST_DATA);\n }\n\n /**\n * Returns a new or existing {@link Manifest} instance, based on the value of `appiumHome`.\n *\n * Maintains one instance per value of `appiumHome`.\n * @param {string} appiumHome - Path to `APPIUM_HOME`\n * @returns {Manifest}\n */\n static getInstance = _.memoize(function _getInstance(appiumHome) {\n return new Manifest(appiumHome);\n });\n\n /**\n * Searches `APPIUM_HOME` for installed extensions and adds them to the manifest.\n * @returns {Promise<boolean>} `true` if any extensions were added, `false` otherwise.\n */\n async syncWithInstalledExtensions() {\n // this could be parallelized, but we can't use fs.walk as an async iterator\n let didChange = false;\n\n /**\n * Listener for the `match` event of a `glob` instance\n * @param {string} filepath - Path to a `package.json`\n * @returns {Promise<void>}\n */\n const onMatch = async (filepath) => {\n try {\n const pkg = JSON.parse(await fs.readFile(filepath, 'utf8'));\n if (isDriver(pkg) || isPlugin(pkg)) {\n const changed = this.addExtensionFromPackage(pkg, filepath);\n didChange = didChange || changed;\n }\n } catch {}\n };\n\n /**\n * A list of `Promise`s which read `package.json` files looking for Appium extensions.\n * @type {Promise<void>[]}\n */\n const queue = [\n // look at `package.json` in `APPIUM_HOME` only\n onMatch(path.join(this._appiumHome, 'package.json')),\n ];\n\n // add dependencies to the queue\n await new B((resolve, reject) => {\n glob(\n 'node_modules/{*,@*/*}/package.json',\n {cwd: this._appiumHome, silent: true, absolute: true},\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n (err) => {\n if (err) {\n reject(err);\n }\n resolve();\n }\n )\n .on('error', reject)\n .on('match', (filepath) => {\n queue.push(onMatch(filepath));\n });\n });\n\n // wait for everything to finish\n await B.all(queue);\n\n return didChange;\n }\n\n /**\n * Returns `true` if driver with name `name` is registered.\n * @param {string} name - Driver name\n * @returns {boolean}\n */\n hasDriver(name) {\n return Boolean(this._data.drivers[name]);\n }\n\n /**\n * Returns `true` if plugin with name `name` is registered.\n * @param {string} name - Plugin name\n * @returns {boolean}\n */\n hasPlugin(name) {\n return Boolean(this._data.plugins[name]);\n }\n\n /**\n * Given a path to a `package.json`, add it as either a driver or plugin to the manifest.\n *\n * Will _not_ overwrite existing entries.\n * @template {ExtensionType} ExtType\n * @param {ExtPackageJson<ExtType>} pkgJson\n * @param {string} pkgPath\n * @returns {boolean} - `true` upon success, `false` if the extension is already registered.\n */\n addExtensionFromPackage(pkgJson, pkgPath) {\n const extensionPath = path.dirname(pkgPath);\n\n /**\n * @type {InternalMetadata}\n */\n const internal = {\n pkgName: pkgJson.name,\n version: pkgJson.version,\n appiumVersion: pkgJson.peerDependencies?.appium,\n installType: INSTALL_TYPE_NPM,\n installSpec: `${pkgJson.name}@${pkgJson.version}`,\n };\n\n if (isDriver(pkgJson)) {\n if (!this.hasDriver(pkgJson.appium.driverName)) {\n this.addExtension(DRIVER_TYPE, pkgJson.appium.driverName, {\n ..._.omit(pkgJson.appium, 'driverName'),\n ...internal,\n });\n return true;\n }\n return false;\n } else if (isPlugin(pkgJson)) {\n if (!this.hasPlugin(pkgJson.appium.pluginName)) {\n this.addExtension(PLUGIN_TYPE, pkgJson.appium.pluginName, {\n ..._.omit(pkgJson.appium, 'pluginName'),\n ...internal,\n });\n return true;\n }\n return false;\n } else {\n throw new TypeError(\n `The extension in ${extensionPath} is neither a valid driver nor a valid plugin.`\n );\n }\n }\n\n /**\n * Adds an extension to the manifest as was installed by the `appium` CLI. The\n * `extData`, `extType`, and `extName` have already been determined.\n *\n * See {@link Manifest.addExtensionFromPackage} for adding an extension from an on-disk package.\n * @template {ExtensionType} ExtType\n * @param {ExtType} extType - `driver` or `plugin`\n * @param {string} extName - Name of extension\n * @param {ExtManifest<ExtType>} extData - Extension metadata\n * @returns {ExtManifest<ExtType>} A clone of `extData`, potentially with a mutated `appiumVersion` field\n */\n addExtension(extType, extName, extData) {\n const data = _.clone(extData);\n this._data[`${extType}s`][extName] = data;\n return data;\n }\n\n /**\n * Returns the APPIUM_HOME path\n */\n get appiumHome() {\n return this._appiumHome;\n }\n\n /**\n * Returns the path to the manifest file\n */\n get manifestPath() {\n return this._manifestPath;\n }\n\n /**\n * Returns extension data for a particular type.\n *\n * @template {ExtensionType} ExtType\n * @param {ExtType} extType\n * @returns {ExtRecord<ExtType>}\n */\n getExtensionData(extType) {\n return this._data[/** @type {string} */ (`${extType}s`)];\n }\n\n /**\n * Reads manifest from disk and _overwrites_ the internal data.\n *\n * If the manifest does not exist on disk, an {@link INITIAL_MANIFEST_DATA \"empty\"} manifest file will be created.\n *\n * If `APPIUM_HOME` contains a `package.json` with an `appium` dependency, then a hash of the `package.json` will be taken. If this hash differs from the last hash, the contents of `APPIUM_HOME/node_modules` will be scanned for extensions that may have been installed outside of the `appium` CLI. Any found extensions will be added to the manifest file, and if so, the manifest file will be written to disk.\n *\n * Only one read operation should happen at a time. This is controlled via the {@link Manifest._reading} property.\n * @returns {Promise<ManifestData>} The data\n */\n async read() {\n if (this._reading) {\n await this._reading;\n return this._data;\n }\n\n this._reading = (async () => {\n /** @type {ManifestData} */\n let data;\n let isNewFile = false;\n await this._setManifestPath();\n try {\n log.debug(`Reading ${this._manifestPath}...`);\n const yaml = await fs.readFile(this._manifestPath, 'utf8');\n data = YAML.parse(yaml);\n log.debug(`Parsed manifest file: ${JSON.stringify(data, null, 2)}`);\n } catch (err) {\n if (err.code === 'ENOENT') {\n data = _.cloneDeep(INITIAL_MANIFEST_DATA);\n isNewFile = true;\n } else {\n if (this._manifestPath) {\n throw new Error(\n `Appium had trouble loading the extension installation ` +\n `cache file (${this._manifestPath}). It may be invalid YAML. Specific error: ${err.message}`\n );\n } else {\n throw new Error(\n `Appium encountered an unknown problem. Specific error: ${err.message}`\n );\n }\n }\n }\n\n this._data = data;\n let installedExtensionsChanged = false;\n if (\n (await env.hasAppiumDependency(this.appiumHome)) &&\n (await packageDidChange(this.appiumHome))\n ) {\n installedExtensionsChanged = await this.syncWithInstalledExtensions();\n }\n\n if (isNewFile || installedExtensionsChanged) {\n await this.write();\n }\n })();\n try {\n await this._reading;\n return this._data;\n } finally {\n this._reading = undefined;\n }\n }\n\n /**\n * Ensures {@link Manifest._manifestPath} is set.\n *\n * Creates the directory if necessary.\n * @private\n * @returns {Promise<string>}\n */\n async _setManifestPath() {\n if (!this._manifestPath) {\n this._manifestPath = await env.resolveManifestPath(this._appiumHome);\n\n /* istanbul ignore if */\n if (path.relative(this._appiumHome, this._manifestPath).startsWith('.')) {\n throw new Error(\n `Mismatch between location of APPIUM_HOME and manifest file. APPIUM_HOME: ${this.appiumHome}, manifest file: ${this._manifestPath}`\n );\n }\n }\n\n return this._manifestPath;\n }\n\n /**\n * Writes the data if it need s writing.\n *\n * If the `schemaRev` prop needs updating, the file will be written.\n *\n * @todo If this becomes too much of a bottleneck, throttle it.\n * @returns {Promise<boolean>} Whether the data was written\n */\n async write() {\n if (this._writing) {\n return this._writing;\n }\n this._writing = (async () => {\n await this._setManifestPath();\n try {\n await fs.mkdirp(path.dirname(this._manifestPath));\n } catch (err) {\n throw new Error(\n `Appium could not create the directory for the manifest file: ${path.dirname(\n this._manifestPath\n )}. Original error: ${err.message}`\n );\n }\n try {\n await fs.writeFile(this._manifestPath, YAML.stringify(this._data), 'utf8');\n return true;\n } catch (err) {\n throw new Error(\n `Appium could not write to manifest at ${this._manifestPath} using APPIUM_HOME ${this._appiumHome}. ` +\n `Please ensure it is writable. Original error: ${err.message}`\n );\n }\n })();\n try {\n return await this._writing;\n } finally {\n this._writing = undefined;\n }\n }\n}\n\n/**\n * Type of the string referring to a driver (typically as a key or type string)\n * @typedef {import('@appium/types').DriverType} DriverType\n */\n\n/**\n * Type of the string referring to a plugin (typically as a key or type string)\n * @typedef {import('@appium/types').PluginType} PluginType\n */\n\n/**\n * @typedef SyncWithInstalledExtensionsOpts\n * @property {number} [depthLimit] - Maximum depth to recurse into subdirectories\n */\n\n/**\n * @typedef {import('appium/types').ManifestData} ManifestData\n * @typedef {import('appium/types').InternalMetadata} InternalMetadata\n */\n\n/**\n * @template T\n * @typedef {import('appium/types').ExtPackageJson<T>} ExtPackageJson\n */\n\n/**\n * @template T\n * @typedef {import('appium/types').ExtManifest<T>} ExtManifest\n */\n\n/**\n * @template T\n * @typedef {import('appium/types').ExtRecord<T>} ExtRecord\n */\n\n/**\n * Either `driver` or `plugin` rn\n * @typedef {import('@appium/types').ExtensionType} ExtensionType\n */\n"],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../lib/extension/manifest.js"],"names":[],"mappings":"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"}
@@ -1,66 +1,62 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.packageDidChange = packageDidChange;
7
-
8
- require("source-map-support/register");
9
-
10
- var _support = require("@appium/support");
11
-
12
- var _packageChanged = require("package-changed");
13
-
14
- var _path = _interopRequireDefault(require("path"));
15
-
16
- var _constants = require("../constants");
17
-
18
- var _logger = _interopRequireDefault(require("../logger"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
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.packageDidChange = void 0;
7
+ const support_1 = require("@appium/support");
8
+ const package_changed_1 = require("package-changed");
9
+ const path_1 = __importDefault(require("path"));
10
+ const constants_1 = require("../constants");
11
+ const logger_1 = __importDefault(require("../logger"));
12
+ /**
13
+ * Determines if extensions have changed, and updates a hash the `package.json` in `appiumHome` if so.
14
+ *
15
+ * If they have, we need to sync them with the `extensions.yaml` manifest.
16
+ *
17
+ * _Warning: this makes a blocking call to `writeFileSync`._
18
+ * @param {string} appiumHome
19
+ * @returns {Promise<boolean>} `true` if `package.json` `appiumHome` changed
20
+ */
22
21
  async function packageDidChange(appiumHome) {
23
- const hashFilename = _path.default.join(appiumHome, _constants.PKG_HASHFILE_RELATIVE_PATH);
24
-
25
- let isChanged;
26
- let writeHash;
27
- let hash;
28
- let oldHash;
29
-
30
- const hashFilenameDir = _path.default.dirname(hashFilename);
31
-
32
- _logger.default.debug(`Creating hash file directory: ${hashFilenameDir}`);
33
-
34
- try {
35
- await _support.fs.mkdirp(hashFilenameDir);
36
- } catch (err) {
37
- throw new Error(`Appium could not create the directory for hash file: ${hashFilenameDir}. Original error: ${err.message}`);
38
- }
39
-
40
- try {
41
- ({
42
- isChanged,
43
- writeHash,
44
- oldHash,
45
- hash
46
- } = await (0, _packageChanged.isPackageChanged)({
47
- cwd: appiumHome,
48
- hashFilename: _constants.PKG_HASHFILE_RELATIVE_PATH
49
- }));
50
- } catch {
51
- return true;
52
- }
53
-
54
- if (isChanged) {
22
+ const hashFilename = path_1.default.join(appiumHome, constants_1.PKG_HASHFILE_RELATIVE_PATH);
23
+ // XXX: the types in `package-changed` seem to be wrong.
24
+ /** @type {boolean} */
25
+ let isChanged;
26
+ /** @type {() => void} */
27
+ let writeHash;
28
+ /** @type {string} */
29
+ let hash;
30
+ /** @type {string|undefined} */
31
+ let oldHash;
32
+ // first mkdirp the target dir.
33
+ const hashFilenameDir = path_1.default.dirname(hashFilename);
34
+ logger_1.default.debug(`Creating hash file directory: ${hashFilenameDir}`);
35
+ try {
36
+ await support_1.fs.mkdirp(hashFilenameDir);
37
+ }
38
+ catch (err) {
39
+ throw new Error(`Appium could not create the directory for hash file: ${hashFilenameDir}. Original error: ${err.message}`);
40
+ }
55
41
  try {
56
- writeHash();
57
-
58
- _logger.default.debug(`Updated hash of ${appiumHome}/package.json from: ${oldHash ?? '(none)'} to: ${hash}`);
59
- } catch (err) {
60
- throw new Error(`Appium could not write hash file: ${hashFilenameDir}. Original error: ${err.message}`);
42
+ ({ isChanged, writeHash, oldHash, hash } = await (0, package_changed_1.isPackageChanged)({
43
+ cwd: appiumHome,
44
+ hashFilename: constants_1.PKG_HASHFILE_RELATIVE_PATH,
45
+ }));
61
46
  }
62
- }
63
-
64
- return isChanged;
47
+ catch {
48
+ return true;
49
+ }
50
+ if (isChanged) {
51
+ try {
52
+ writeHash();
53
+ logger_1.default.debug(`Updated hash of ${appiumHome}/package.json from: ${oldHash ?? '(none)'} to: ${hash}`);
54
+ }
55
+ catch (err) {
56
+ throw new Error(`Appium could not write hash file: ${hashFilenameDir}. Original error: ${err.message}`);
57
+ }
58
+ }
59
+ return isChanged;
65
60
  }
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYWNrYWdlRGlkQ2hhbmdlIiwiYXBwaXVtSG9tZSIsImhhc2hGaWxlbmFtZSIsInBhdGgiLCJqb2luIiwiUEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEgiLCJpc0NoYW5nZWQiLCJ3cml0ZUhhc2giLCJoYXNoIiwib2xkSGFzaCIsImhhc2hGaWxlbmFtZURpciIsImRpcm5hbWUiLCJsb2ciLCJkZWJ1ZyIsImZzIiwibWtkaXJwIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwiaXNQYWNrYWdlQ2hhbmdlZCIsImN3ZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHRlbnNpb24vcGFja2FnZS1jaGFuZ2VkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZnN9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQge2lzUGFja2FnZUNoYW5nZWR9IGZyb20gJ3BhY2thZ2UtY2hhbmdlZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7UEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEh9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBleHRlbnNpb25zIGhhdmUgY2hhbmdlZCwgYW5kIHVwZGF0ZXMgYSBoYXNoIHRoZSBgcGFja2FnZS5qc29uYCBpbiBgYXBwaXVtSG9tZWAgaWYgc28uXG4gKlxuICogSWYgdGhleSBoYXZlLCB3ZSBuZWVkIHRvIHN5bmMgdGhlbSB3aXRoIHRoZSBgZXh0ZW5zaW9ucy55YW1sYCBtYW5pZmVzdC5cbiAqXG4gKiBfV2FybmluZzogdGhpcyBtYWtlcyBhIGJsb2NraW5nIGNhbGwgdG8gYHdyaXRlRmlsZVN5bmNgLl9cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBpdW1Ib21lXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gYHRydWVgIGlmIGBwYWNrYWdlLmpzb25gIGBhcHBpdW1Ib21lYCBjaGFuZ2VkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYWNrYWdlRGlkQ2hhbmdlKGFwcGl1bUhvbWUpIHtcbiAgY29uc3QgaGFzaEZpbGVuYW1lID0gcGF0aC5qb2luKGFwcGl1bUhvbWUsIFBLR19IQVNIRklMRV9SRUxBVElWRV9QQVRIKTtcblxuICAvLyBYWFg6IHRoZSB0eXBlcyBpbiBgcGFja2FnZS1jaGFuZ2VkYCBzZWVtIHRvIGJlIHdyb25nLlxuXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGlzQ2hhbmdlZDtcbiAgLyoqIEB0eXBlIHsoKSA9PiB2b2lkfSAqL1xuICBsZXQgd3JpdGVIYXNoO1xuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGhhc2g7XG4gIC8qKiBAdHlwZSB7c3RyaW5nfHVuZGVmaW5lZH0gKi9cbiAgbGV0IG9sZEhhc2g7XG5cbiAgLy8gZmlyc3QgbWtkaXJwIHRoZSB0YXJnZXQgZGlyLlxuICBjb25zdCBoYXNoRmlsZW5hbWVEaXIgPSBwYXRoLmRpcm5hbWUoaGFzaEZpbGVuYW1lKTtcbiAgbG9nLmRlYnVnKGBDcmVhdGluZyBoYXNoIGZpbGUgZGlyZWN0b3J5OiAke2hhc2hGaWxlbmFtZURpcn1gKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy5ta2RpcnAoaGFzaEZpbGVuYW1lRGlyKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEFwcGl1bSBjb3VsZCBub3QgY3JlYXRlIHRoZSBkaXJlY3RvcnkgZm9yIGhhc2ggZmlsZTogJHtoYXNoRmlsZW5hbWVEaXJ9LiBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gXG4gICAgKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgKHtpc0NoYW5nZWQsIHdyaXRlSGFzaCwgb2xkSGFzaCwgaGFzaH0gPSBhd2FpdCBpc1BhY2thZ2VDaGFuZ2VkKHtcbiAgICAgIGN3ZDogYXBwaXVtSG9tZSxcbiAgICAgIGhhc2hGaWxlbmFtZTogUEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEgsXG4gICAgfSkpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpc0NoYW5nZWQpIHtcbiAgICB0cnkge1xuICAgICAgd3JpdGVIYXNoKCk7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBVcGRhdGVkIGhhc2ggb2YgJHthcHBpdW1Ib21lfS9wYWNrYWdlLmpzb24gZnJvbTogJHtvbGRIYXNoID8/ICcobm9uZSknfSB0bzogJHtoYXNofWBcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBcHBpdW0gY291bGQgbm90IHdyaXRlIGhhc2ggZmlsZTogJHtoYXNoRmlsZW5hbWVEaXJ9LiBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpc0NoYW5nZWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBV08sZUFBZUEsZ0JBQWYsQ0FBZ0NDLFVBQWhDLEVBQTRDO0VBQ2pELE1BQU1DLFlBQVksR0FBR0MsYUFBQSxDQUFLQyxJQUFMLENBQVVILFVBQVYsRUFBc0JJLHFDQUF0QixDQUFyQjs7RUFLQSxJQUFJQyxTQUFKO0VBRUEsSUFBSUMsU0FBSjtFQUVBLElBQUlDLElBQUo7RUFFQSxJQUFJQyxPQUFKOztFQUdBLE1BQU1DLGVBQWUsR0FBR1AsYUFBQSxDQUFLUSxPQUFMLENBQWFULFlBQWIsQ0FBeEI7O0VBQ0FVLGVBQUEsQ0FBSUMsS0FBSixDQUFXLGlDQUFnQ0gsZUFBZ0IsRUFBM0Q7O0VBQ0EsSUFBSTtJQUNGLE1BQU1JLFdBQUEsQ0FBR0MsTUFBSCxDQUFVTCxlQUFWLENBQU47RUFDRCxDQUZELENBRUUsT0FBT00sR0FBUCxFQUFZO0lBQ1osTUFBTSxJQUFJQyxLQUFKLENBQ0gsd0RBQXVEUCxlQUFnQixxQkFBb0JNLEdBQUcsQ0FBQ0UsT0FBUSxFQURwRyxDQUFOO0VBR0Q7O0VBRUQsSUFBSTtJQUNGLENBQUM7TUFBQ1osU0FBRDtNQUFZQyxTQUFaO01BQXVCRSxPQUF2QjtNQUFnQ0Q7SUFBaEMsSUFBd0MsTUFBTSxJQUFBVyxnQ0FBQSxFQUFpQjtNQUM5REMsR0FBRyxFQUFFbkIsVUFEeUQ7TUFFOURDLFlBQVksRUFBRUc7SUFGZ0QsQ0FBakIsQ0FBL0M7RUFJRCxDQUxELENBS0UsTUFBTTtJQUNOLE9BQU8sSUFBUDtFQUNEOztFQUVELElBQUlDLFNBQUosRUFBZTtJQUNiLElBQUk7TUFDRkMsU0FBUzs7TUFDVEssZUFBQSxDQUFJQyxLQUFKLENBQ0csbUJBQWtCWixVQUFXLHVCQUFzQlEsT0FBTyxJQUFJLFFBQVMsUUFBT0QsSUFBSyxFQUR0RjtJQUdELENBTEQsQ0FLRSxPQUFPUSxHQUFQLEVBQVk7TUFDWixNQUFNLElBQUlDLEtBQUosQ0FDSCxxQ0FBb0NQLGVBQWdCLHFCQUFvQk0sR0FBRyxDQUFDRSxPQUFRLEVBRGpGLENBQU47SUFHRDtFQUNGOztFQUVELE9BQU9aLFNBQVA7QUFDRCJ9
61
+ exports.packageDidChange = packageDidChange;
62
+ //# sourceMappingURL=package-changed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-changed.js","names":["packageDidChange","appiumHome","hashFilename","path","join","PKG_HASHFILE_RELATIVE_PATH","isChanged","writeHash","hash","oldHash","hashFilenameDir","dirname","log","debug","fs","mkdirp","err","Error","message","isPackageChanged","cwd"],"sources":["../../../lib/extension/package-changed.js"],"sourcesContent":["import {fs} from '@appium/support';\nimport {isPackageChanged} from 'package-changed';\nimport path from 'path';\nimport {PKG_HASHFILE_RELATIVE_PATH} from '../constants';\nimport log from '../logger';\n\n/**\n * Determines if extensions have changed, and updates a hash the `package.json` in `appiumHome` if so.\n *\n * If they have, we need to sync them with the `extensions.yaml` manifest.\n *\n * _Warning: this makes a blocking call to `writeFileSync`._\n * @param {string} appiumHome\n * @returns {Promise<boolean>} `true` if `package.json` `appiumHome` changed\n */\nexport async function packageDidChange(appiumHome) {\n const hashFilename = path.join(appiumHome, PKG_HASHFILE_RELATIVE_PATH);\n\n // XXX: the types in `package-changed` seem to be wrong.\n\n /** @type {boolean} */\n let isChanged;\n /** @type {() => void} */\n let writeHash;\n /** @type {string} */\n let hash;\n /** @type {string|undefined} */\n let oldHash;\n\n // first mkdirp the target dir.\n const hashFilenameDir = path.dirname(hashFilename);\n log.debug(`Creating hash file directory: ${hashFilenameDir}`);\n try {\n await fs.mkdirp(hashFilenameDir);\n } catch (err) {\n throw new Error(\n `Appium could not create the directory for hash file: ${hashFilenameDir}. Original error: ${err.message}`\n );\n }\n\n try {\n ({isChanged, writeHash, oldHash, hash} = await isPackageChanged({\n cwd: appiumHome,\n hashFilename: PKG_HASHFILE_RELATIVE_PATH,\n }));\n } catch {\n return true;\n }\n\n if (isChanged) {\n try {\n writeHash();\n log.debug(\n `Updated hash of ${appiumHome}/package.json from: ${oldHash ?? '(none)'} to: ${hash}`\n );\n } catch (err) {\n throw new Error(\n `Appium could not write hash file: ${hashFilenameDir}. Original error: ${err.message}`\n );\n }\n }\n\n return isChanged;\n}\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAWO,eAAeA,gBAAf,CAAgCC,UAAhC,EAA4C;EACjD,MAAMC,YAAY,GAAGC,aAAA,CAAKC,IAAL,CAAUH,UAAV,EAAsBI,qCAAtB,CAArB;;EAKA,IAAIC,SAAJ;EAEA,IAAIC,SAAJ;EAEA,IAAIC,IAAJ;EAEA,IAAIC,OAAJ;;EAGA,MAAMC,eAAe,GAAGP,aAAA,CAAKQ,OAAL,CAAaT,YAAb,CAAxB;;EACAU,eAAA,CAAIC,KAAJ,CAAW,iCAAgCH,eAAgB,EAA3D;;EACA,IAAI;IACF,MAAMI,WAAA,CAAGC,MAAH,CAAUL,eAAV,CAAN;EACD,CAFD,CAEE,OAAOM,GAAP,EAAY;IACZ,MAAM,IAAIC,KAAJ,CACH,wDAAuDP,eAAgB,qBAAoBM,GAAG,CAACE,OAAQ,EADpG,CAAN;EAGD;;EAED,IAAI;IACF,CAAC;MAACZ,SAAD;MAAYC,SAAZ;MAAuBE,OAAvB;MAAgCD;IAAhC,IAAwC,MAAM,IAAAW,gCAAA,EAAiB;MAC9DC,GAAG,EAAEnB,UADyD;MAE9DC,YAAY,EAAEG;IAFgD,CAAjB,CAA/C;EAID,CALD,CAKE,MAAM;IACN,OAAO,IAAP;EACD;;EAED,IAAIC,SAAJ,EAAe;IACb,IAAI;MACFC,SAAS;;MACTK,eAAA,CAAIC,KAAJ,CACG,mBAAkBZ,UAAW,uBAAsBQ,OAAO,IAAI,QAAS,QAAOD,IAAK,EADtF;IAGD,CALD,CAKE,OAAOQ,GAAP,EAAY;MACZ,MAAM,IAAIC,KAAJ,CACH,qCAAoCP,eAAgB,qBAAoBM,GAAG,CAACE,OAAQ,EADjF,CAAN;IAGD;EACF;;EAED,OAAOZ,SAAP;AACD"}
1
+ {"version":3,"file":"package-changed.js","sourceRoot":"","sources":["../../../lib/extension/package-changed.js"],"names":[],"mappings":";;;;;;AAAA,6CAAmC;AACnC,qDAAiD;AACjD,gDAAwB;AACxB,4CAAwD;AACxD,uDAA4B;AAE5B;;;;;;;;GAQG;AACI,KAAK,UAAU,gBAAgB,CAAC,UAAU;IAC/C,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sCAA0B,CAAC,CAAC;IAEvE,wDAAwD;IAExD,sBAAsB;IACtB,IAAI,SAAS,CAAC;IACd,yBAAyB;IACzB,IAAI,SAAS,CAAC;IACd,qBAAqB;IACrB,IAAI,IAAI,CAAC;IACT,+BAA+B;IAC/B,IAAI,OAAO,CAAC;IAEZ,+BAA+B;IAC/B,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACnD,gBAAG,CAAC,KAAK,CAAC,iCAAiC,eAAe,EAAE,CAAC,CAAC;IAC9D,IAAI;QACF,MAAM,YAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;KAClC;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,KAAK,CACb,wDAAwD,eAAe,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAC1G,CAAC;KACH;IAED,IAAI;QACF,CAAC,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,MAAM,IAAA,kCAAgB,EAAC;YAC9D,GAAG,EAAE,UAAU;YACf,YAAY,EAAE,sCAA0B;SACzC,CAAC,CAAC,CAAC;KACL;IAAC,MAAM;QACN,OAAO,IAAI,CAAC;KACb;IAED,IAAI,SAAS,EAAE;QACb,IAAI;YACF,SAAS,EAAE,CAAC;YACZ,gBAAG,CAAC,KAAK,CACP,mBAAmB,UAAU,uBAAuB,OAAO,IAAI,QAAQ,QAAQ,IAAI,EAAE,CACtF,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,KAAK,CACb,qCAAqC,eAAe,qBAAqB,GAAG,CAAC,OAAO,EAAE,CACvF,CAAC;SACH;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAhDD,4CAgDC"}
@@ -38,10 +38,10 @@ export class PluginConfig extends ExtensionConfig<"plugin"> {
38
38
  validate(): Promise<import("./extension-config").ExtRecord<"plugin">>;
39
39
  /**
40
40
  *
41
- * @param {(keyof PluginRecord)[]} activeNames
41
+ * @param {(keyof import('appium/types').ExtRecord<PluginType>)[]} activeNames
42
42
  * @returns {void}
43
43
  */
44
- print(activeNames: (keyof PluginRecord)[]): void;
44
+ print(activeNames: (keyof import('appium/types').ExtRecord<PluginType>)[]): void;
45
45
  }
46
46
  export type PluginConfigOptions = {
47
47
  /**
@@ -49,7 +49,6 @@ export type PluginConfigOptions = {
49
49
  */
50
50
  logFn?: import("./extension-config").ExtensionLogFn | undefined;
51
51
  };
52
- export type PluginRecord = import('appium/types').PluginRecord;
53
52
  export type PluginType = import('@appium/types').PluginType;
54
53
  export type PluginMetadata = import('appium/types').ExtMetadata<PluginType>;
55
54
  export type Manifest = import('./manifest').Manifest;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-config.d.ts","sourceRoot":"","sources":["../../../lib/extension/plugin-config.js"],"names":[],"mappings":"AAKA;;GAEG;AACH;IACE;;;;;;;;;OASG;IACH,0BAAkC;IAiBlC;;;;;;OAMG;IACH,wBAJW,QAAQ,GAEN,YAAY,CAWxB;IAED;;;;OAIG;IACH,6BAHW,QAAQ,GACN,YAAY,GAAC,SAAS,CAIlC;IAxCD;;;;;;OAMG;IACH,sBAEC;IAED,sEAEC;IAsCD;;;;OAIG;IACH,mBAHW,CAAC,MAAM,YAAY,CAAC,EAAE,GACpB,IAAI,CAwBhB;CACF;;;;;;;2BAQY,OAAO,cAAc,EAAE,YAAY;yBACnC,OAAO,eAAe,EAAE,UAAU;6BAClC,OAAO,cAAc,EAAE,WAAW,CAAC,UAAU,CAAC;uBAC9C,OAAO,YAAY,EAAE,QAAQ"}
1
+ {"version":3,"file":"plugin-config.d.ts","sourceRoot":"","sources":["../../../lib/extension/plugin-config.js"],"names":[],"mappings":"AAKA;;GAEG;AACH;IACE;;;;;;;;;OASG;IACH,0BAAkC;IAiBlC;;;;;;OAMG;IACH,wBAJW,QAAQ,GAEN,YAAY,CAWxB;IAED;;;;OAIG;IACH,6BAHW,QAAQ,GACN,YAAY,GAAC,SAAS,CAIlC;IAxCD;;;;;;OAMG;IACH,sBAEC;IAED,sEAEC;IAsCD;;;;OAIG;IACH,mBAHW,CAAC,MAAM,OAAO,cAAc,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,GACpD,IAAI,CAwBhB;CACF;;;;;;;yBAQY,OAAO,eAAe,EAAE,UAAU;6BAClC,OAAO,cAAc,EAAE,WAAW,CAAC,UAAU,CAAC;uBAC9C,OAAO,YAAY,EAAE,QAAQ"}
@@ -1,78 +1,102 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
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
6
  exports.PluginConfig = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _lodash = _interopRequireDefault(require("lodash"));
11
-
12
- var _extensionConfig = require("./extension-config");
13
-
14
- var _logger = _interopRequireDefault(require("../logger"));
15
-
16
- var _constants = require("../constants");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- class PluginConfig extends _extensionConfig.ExtensionConfig {
21
- static _instances = new WeakMap();
22
-
23
- constructor(manifest) {
24
- super(_constants.PLUGIN_TYPE, manifest);
25
- }
26
-
27
- async validate() {
28
- return await super._validate(this.manifest.getExtensionData(_constants.PLUGIN_TYPE));
29
- }
30
-
31
- static create(manifest) {
32
- const instance = new PluginConfig(manifest);
33
-
34
- if (PluginConfig.getInstance(manifest)) {
35
- throw new Error(`Manifest with APPIUM_HOME ${manifest.appiumHome} already has a PluginConfig; use PluginConfig.getInstance() to retrieve it.`);
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const extension_config_1 = require("./extension-config");
9
+ const logger_1 = __importDefault(require("../logger"));
10
+ const constants_1 = require("../constants");
11
+ /**
12
+ * @extends {ExtensionConfig<PluginType>}
13
+ */
14
+ class PluginConfig extends extension_config_1.ExtensionConfig {
15
+ /**
16
+ * Call {@link PluginConfig.create} instead.
17
+ *
18
+ * Just calls the superclass' constructor with the correct extension type
19
+ * @private
20
+ * @param {Manifest} manifest - IO object
21
+ */
22
+ constructor(manifest) {
23
+ super(constants_1.PLUGIN_TYPE, manifest);
36
24
  }
37
-
38
- PluginConfig._instances.set(manifest, instance);
39
-
40
- return instance;
41
- }
42
-
43
- static getInstance(manifest) {
44
- return PluginConfig._instances.get(manifest);
45
- }
46
-
47
- extensionDesc(pluginName, {
48
- version
49
- }) {
50
- return `${pluginName}@${version}`;
51
- }
52
-
53
- print(activeNames) {
54
- const pluginNames = Object.keys(this.installedExtensions);
55
-
56
- if (_lodash.default.isEmpty(pluginNames)) {
57
- _logger.default.info(`No plugins have been installed. Use the "appium plugin" ` + 'command to install the one(s) you want to use.');
58
-
59
- return;
25
+ async validate() {
26
+ return await super._validate(this.manifest.getExtensionData(constants_1.PLUGIN_TYPE));
60
27
  }
61
-
62
- _logger.default.info(`Available plugins:`);
63
-
64
- for (const [pluginName, pluginData] of _lodash.default.toPairs(this.installedExtensions)) {
65
- const activeTxt = _lodash.default.includes(activeNames, pluginName) ? ' (ACTIVE)' : '';
66
-
67
- _logger.default.info(` - ${this.extensionDesc(pluginName, pluginData)}${activeTxt}`);
28
+ /**
29
+ * Creates a new {@link PluginConfig} instance for a {@link Manifest} instance.
30
+ *
31
+ * @param {Manifest} manifest
32
+ * @throws If `manifest` already associated with a `PluginConfig`
33
+ * @returns {PluginConfig}
34
+ */
35
+ static create(manifest) {
36
+ const instance = new PluginConfig(manifest);
37
+ if (PluginConfig.getInstance(manifest)) {
38
+ throw new Error(`Manifest with APPIUM_HOME ${manifest.appiumHome} already has a PluginConfig; use PluginConfig.getInstance() to retrieve it.`);
39
+ }
40
+ PluginConfig._instances.set(manifest, instance);
41
+ return instance;
68
42
  }
69
-
70
- if (_lodash.default.isEmpty(activeNames)) {
71
- _logger.default.info('No plugins activated. Use the --use-plugins flag with names of plugins to activate');
43
+ /**
44
+ * Returns a PluginConfig associated with a Manifest
45
+ * @param {Manifest} manifest
46
+ * @returns {PluginConfig|undefined}
47
+ */
48
+ static getInstance(manifest) {
49
+ return PluginConfig._instances.get(manifest);
50
+ }
51
+ /**
52
+ * @param {string} pluginName
53
+ * @param {import('appium/types').ExtManifest<PluginType>} pluginData
54
+ * @returns {string}
55
+ */
56
+ extensionDesc(pluginName, { version }) {
57
+ return `${pluginName}@${version}`;
58
+ }
59
+ /**
60
+ *
61
+ * @param {(keyof import('appium/types').ExtRecord<PluginType>)[]} activeNames
62
+ * @returns {void}
63
+ */
64
+ print(activeNames) {
65
+ const pluginNames = Object.keys(this.installedExtensions);
66
+ if (lodash_1.default.isEmpty(pluginNames)) {
67
+ logger_1.default.info(`No plugins have been installed. Use the "appium plugin" ` +
68
+ 'command to install the one(s) you want to use.');
69
+ return;
70
+ }
71
+ logger_1.default.info(`Available plugins:`);
72
+ for (const [pluginName, pluginData] of lodash_1.default.toPairs(this.installedExtensions)) {
73
+ const activeTxt = lodash_1.default.includes(activeNames, pluginName) ? ' (ACTIVE)' : '';
74
+ logger_1.default.info(` - ${this.extensionDesc(pluginName, pluginData)}${activeTxt}`);
75
+ }
76
+ if (lodash_1.default.isEmpty(activeNames)) {
77
+ logger_1.default.info('No plugins activated. Use the --use-plugins flag with names of plugins to activate');
78
+ }
72
79
  }
73
- }
74
-
75
80
  }
76
-
77
81
  exports.PluginConfig = PluginConfig;
78
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQbHVnaW5Db25maWciLCJFeHRlbnNpb25Db25maWciLCJfaW5zdGFuY2VzIiwiV2Vha01hcCIsImNvbnN0cnVjdG9yIiwibWFuaWZlc3QiLCJQTFVHSU5fVFlQRSIsInZhbGlkYXRlIiwiX3ZhbGlkYXRlIiwiZ2V0RXh0ZW5zaW9uRGF0YSIsImNyZWF0ZSIsImluc3RhbmNlIiwiZ2V0SW5zdGFuY2UiLCJFcnJvciIsImFwcGl1bUhvbWUiLCJzZXQiLCJnZXQiLCJleHRlbnNpb25EZXNjIiwicGx1Z2luTmFtZSIsInZlcnNpb24iLCJwcmludCIsImFjdGl2ZU5hbWVzIiwicGx1Z2luTmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiaW5zdGFsbGVkRXh0ZW5zaW9ucyIsIl8iLCJpc0VtcHR5IiwibG9nIiwiaW5mbyIsInBsdWdpbkRhdGEiLCJ0b1BhaXJzIiwiYWN0aXZlVHh0IiwiaW5jbHVkZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXh0ZW5zaW9uL3BsdWdpbi1jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7RXh0ZW5zaW9uQ29uZmlnfSBmcm9tICcuL2V4dGVuc2lvbi1jb25maWcnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHtQTFVHSU5fVFlQRX0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBAZXh0ZW5kcyB7RXh0ZW5zaW9uQ29uZmlnPFBsdWdpblR5cGU+fVxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luQ29uZmlnIGV4dGVuZHMgRXh0ZW5zaW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIEEgbWFwcGluZyBvZiB7QGxpbmsgTWFuaWZlc3R9IGluc3RhbmNlcyB0byB7QGxpbmsgUGx1Z2luQ29uZmlnfSBpbnN0YW5jZXMuXG4gICAqXG4gICAqIGBNYW5pZmVzdGAgYW5kIHtAbGluayBFeHRlbnNpb25Db25maWd9IGhhdmUgYSBvbmUtdG8tbWFueSByZWxhdGlvbnNoaXA7IGVhY2ggYE1hbmlmZXN0YCBzaG91bGQgYmUgYXNzb2NpYXRlZCB3aXRoIGEgYERyaXZlckNvbmZpZ2AgYW5kIGEgYFBsdWdpbkNvbmZpZ2A7IG5vIG1vcmUsIG5vIGxlc3MuXG4gICAqXG4gICAqIFRoaXMgdmFyaWFibGUgdHJhY2tzIHRoZSBgTWFuaWZlc3RgLXRvLWBQbHVnaW5Db25maWdgIHBvcnRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtXZWFrTWFwPE1hbmlmZXN0LFBsdWdpbkNvbmZpZz59XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBzdGF0aWMgX2luc3RhbmNlcyA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgLyoqXG4gICAqIENhbGwge0BsaW5rIFBsdWdpbkNvbmZpZy5jcmVhdGV9IGluc3RlYWQuXG4gICAqXG4gICAqIEp1c3QgY2FsbHMgdGhlIHN1cGVyY2xhc3MnIGNvbnN0cnVjdG9yIHdpdGggdGhlIGNvcnJlY3QgZXh0ZW5zaW9uIHR5cGVcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtNYW5pZmVzdH0gbWFuaWZlc3QgLSBJTyBvYmplY3RcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1hbmlmZXN0KSB7XG4gICAgc3VwZXIoUExVR0lOX1RZUEUsIG1hbmlmZXN0KTtcbiAgfVxuXG4gIGFzeW5jIHZhbGlkYXRlKCkge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5fdmFsaWRhdGUodGhpcy5tYW5pZmVzdC5nZXRFeHRlbnNpb25EYXRhKFBMVUdJTl9UWVBFKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyB7QGxpbmsgUGx1Z2luQ29uZmlnfSBpbnN0YW5jZSBmb3IgYSB7QGxpbmsgTWFuaWZlc3R9IGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge01hbmlmZXN0fSBtYW5pZmVzdFxuICAgKiBAdGhyb3dzIElmIGBtYW5pZmVzdGAgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggYSBgUGx1Z2luQ29uZmlnYFxuICAgKiBAcmV0dXJucyB7UGx1Z2luQ29uZmlnfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZShtYW5pZmVzdCkge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IFBsdWdpbkNvbmZpZyhtYW5pZmVzdCk7XG4gICAgaWYgKFBsdWdpbkNvbmZpZy5nZXRJbnN0YW5jZShtYW5pZmVzdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE1hbmlmZXN0IHdpdGggQVBQSVVNX0hPTUUgJHttYW5pZmVzdC5hcHBpdW1Ib21lfSBhbHJlYWR5IGhhcyBhIFBsdWdpbkNvbmZpZzsgdXNlIFBsdWdpbkNvbmZpZy5nZXRJbnN0YW5jZSgpIHRvIHJldHJpZXZlIGl0LmBcbiAgICAgICk7XG4gICAgfVxuICAgIFBsdWdpbkNvbmZpZy5faW5zdGFuY2VzLnNldChtYW5pZmVzdCwgaW5zdGFuY2UpO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgUGx1Z2luQ29uZmlnIGFzc29jaWF0ZWQgd2l0aCBhIE1hbmlmZXN0XG4gICAqIEBwYXJhbSB7TWFuaWZlc3R9IG1hbmlmZXN0XG4gICAqIEByZXR1cm5zIHtQbHVnaW5Db25maWd8dW5kZWZpbmVkfVxuICAgKi9cbiAgc3RhdGljIGdldEluc3RhbmNlKG1hbmlmZXN0KSB7XG4gICAgcmV0dXJuIFBsdWdpbkNvbmZpZy5faW5zdGFuY2VzLmdldChtYW5pZmVzdCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBsdWdpbk5hbWVcbiAgICogQHBhcmFtIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLkV4dE1hbmlmZXN0PFBsdWdpblR5cGU+fSBwbHVnaW5EYXRhXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBleHRlbnNpb25EZXNjKHBsdWdpbk5hbWUsIHt2ZXJzaW9ufSkge1xuICAgIHJldHVybiBgJHtwbHVnaW5OYW1lfUAke3ZlcnNpb259YDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0geyhrZXlvZiBQbHVnaW5SZWNvcmQpW119IGFjdGl2ZU5hbWVzXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgcHJpbnQoYWN0aXZlTmFtZXMpIHtcbiAgICBjb25zdCBwbHVnaW5OYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9ucyk7XG5cbiAgICBpZiAoXy5pc0VtcHR5KHBsdWdpbk5hbWVzKSkge1xuICAgICAgbG9nLmluZm8oXG4gICAgICAgIGBObyBwbHVnaW5zIGhhdmUgYmVlbiBpbnN0YWxsZWQuIFVzZSB0aGUgXCJhcHBpdW0gcGx1Z2luXCIgYCArXG4gICAgICAgICAgJ2NvbW1hbmQgdG8gaW5zdGFsbCB0aGUgb25lKHMpIHlvdSB3YW50IHRvIHVzZS4nXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZy5pbmZvKGBBdmFpbGFibGUgcGx1Z2luczpgKTtcbiAgICBmb3IgKGNvbnN0IFtwbHVnaW5OYW1lLCBwbHVnaW5EYXRhXSBvZiBfLnRvUGFpcnModGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zKSkge1xuICAgICAgY29uc3QgYWN0aXZlVHh0ID0gXy5pbmNsdWRlcyhhY3RpdmVOYW1lcywgcGx1Z2luTmFtZSkgPyAnIChBQ1RJVkUpJyA6ICcnO1xuICAgICAgbG9nLmluZm8oYCAgLSAke3RoaXMuZXh0ZW5zaW9uRGVzYyhwbHVnaW5OYW1lLCBwbHVnaW5EYXRhKX0ke2FjdGl2ZVR4dH1gKTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc0VtcHR5KGFjdGl2ZU5hbWVzKSkge1xuICAgICAgbG9nLmluZm8oXG4gICAgICAgICdObyBwbHVnaW5zIGFjdGl2YXRlZC4gVXNlIHRoZSAtLXVzZS1wbHVnaW5zIGZsYWcgd2l0aCBuYW1lcyBvZiBwbHVnaW5zIHRvIGFjdGl2YXRlJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBQbHVnaW5Db25maWdPcHRpb25zXG4gKiBAcHJvcGVydHkge2ltcG9ydCgnLi9leHRlbnNpb24tY29uZmlnJykuRXh0ZW5zaW9uTG9nRm59IFtsb2dGbl0gLSBPcHRpb25hbCBsb2dnaW5nIGZ1bmN0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdhcHBpdW0vdHlwZXMnKS5QbHVnaW5SZWNvcmR9IFBsdWdpblJlY29yZFxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlBsdWdpblR5cGV9IFBsdWdpblR5cGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLkV4dE1ldGFkYXRhPFBsdWdpblR5cGU+fSBQbHVnaW5NZXRhZGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9tYW5pZmVzdCcpLk1hbmlmZXN0fSBNYW5pZmVzdFxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBS08sTUFBTUEsWUFBTixTQUEyQkMsZ0NBQTNCLENBQTJDO0VBVy9CLE9BQVZDLFVBQVUsR0FBRyxJQUFJQyxPQUFKLEVBQUg7O0VBU2pCQyxXQUFXLENBQUNDLFFBQUQsRUFBVztJQUNwQixNQUFNQyxzQkFBTixFQUFtQkQsUUFBbkI7RUFDRDs7RUFFYSxNQUFSRSxRQUFRLEdBQUc7SUFDZixPQUFPLE1BQU0sTUFBTUMsU0FBTixDQUFnQixLQUFLSCxRQUFMLENBQWNJLGdCQUFkLENBQStCSCxzQkFBL0IsQ0FBaEIsQ0FBYjtFQUNEOztFQVNZLE9BQU5JLE1BQU0sQ0FBQ0wsUUFBRCxFQUFXO0lBQ3RCLE1BQU1NLFFBQVEsR0FBRyxJQUFJWCxZQUFKLENBQWlCSyxRQUFqQixDQUFqQjs7SUFDQSxJQUFJTCxZQUFZLENBQUNZLFdBQWIsQ0FBeUJQLFFBQXpCLENBQUosRUFBd0M7TUFDdEMsTUFBTSxJQUFJUSxLQUFKLENBQ0gsNkJBQTRCUixRQUFRLENBQUNTLFVBQVcsNkVBRDdDLENBQU47SUFHRDs7SUFDRGQsWUFBWSxDQUFDRSxVQUFiLENBQXdCYSxHQUF4QixDQUE0QlYsUUFBNUIsRUFBc0NNLFFBQXRDOztJQUNBLE9BQU9BLFFBQVA7RUFDRDs7RUFPaUIsT0FBWEMsV0FBVyxDQUFDUCxRQUFELEVBQVc7SUFDM0IsT0FBT0wsWUFBWSxDQUFDRSxVQUFiLENBQXdCYyxHQUF4QixDQUE0QlgsUUFBNUIsQ0FBUDtFQUNEOztFQU9EWSxhQUFhLENBQUNDLFVBQUQsRUFBYTtJQUFDQztFQUFELENBQWIsRUFBd0I7SUFDbkMsT0FBUSxHQUFFRCxVQUFXLElBQUdDLE9BQVEsRUFBaEM7RUFDRDs7RUFPREMsS0FBSyxDQUFDQyxXQUFELEVBQWM7SUFDakIsTUFBTUMsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxLQUFLQyxtQkFBakIsQ0FBcEI7O0lBRUEsSUFBSUMsZUFBQSxDQUFFQyxPQUFGLENBQVVMLFdBQVYsQ0FBSixFQUE0QjtNQUMxQk0sZUFBQSxDQUFJQyxJQUFKLENBQ0csMERBQUQsR0FDRSxnREFGSjs7TUFJQTtJQUNEOztJQUVERCxlQUFBLENBQUlDLElBQUosQ0FBVSxvQkFBVjs7SUFDQSxLQUFLLE1BQU0sQ0FBQ1gsVUFBRCxFQUFhWSxVQUFiLENBQVgsSUFBdUNKLGVBQUEsQ0FBRUssT0FBRixDQUFVLEtBQUtOLG1CQUFmLENBQXZDLEVBQTRFO01BQzFFLE1BQU1PLFNBQVMsR0FBR04sZUFBQSxDQUFFTyxRQUFGLENBQVdaLFdBQVgsRUFBd0JILFVBQXhCLElBQXNDLFdBQXRDLEdBQW9ELEVBQXRFOztNQUNBVSxlQUFBLENBQUlDLElBQUosQ0FBVSxPQUFNLEtBQUtaLGFBQUwsQ0FBbUJDLFVBQW5CLEVBQStCWSxVQUEvQixDQUEyQyxHQUFFRSxTQUFVLEVBQXZFO0lBQ0Q7O0lBRUQsSUFBSU4sZUFBQSxDQUFFQyxPQUFGLENBQVVOLFdBQVYsQ0FBSixFQUE0QjtNQUMxQk8sZUFBQSxDQUFJQyxJQUFKLENBQ0Usb0ZBREY7SUFHRDtFQUNGOztBQTNGK0MifQ==
82
+ /**
83
+ * A mapping of {@link Manifest} instances to {@link PluginConfig} instances.
84
+ *
85
+ * `Manifest` and {@link ExtensionConfig} have a one-to-many relationship; each `Manifest` should be associated with a `DriverConfig` and a `PluginConfig`; no more, no less.
86
+ *
87
+ * This variable tracks the `Manifest`-to-`PluginConfig` portion.
88
+ *
89
+ * @type {WeakMap<Manifest,PluginConfig>}
90
+ * @private
91
+ */
92
+ PluginConfig._instances = new WeakMap();
93
+ /**
94
+ * @typedef PluginConfigOptions
95
+ * @property {import('./extension-config').ExtensionLogFn} [logFn] - Optional logging function
96
+ */
97
+ /**
98
+ * @typedef {import('@appium/types').PluginType} PluginType
99
+ * @typedef {import('appium/types').ExtMetadata<PluginType>} PluginMetadata
100
+ * @typedef {import('./manifest').Manifest} Manifest
101
+ */
102
+ //# sourceMappingURL=plugin-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-config.js","names":["PluginConfig","ExtensionConfig","_instances","WeakMap","constructor","manifest","PLUGIN_TYPE","validate","_validate","getExtensionData","create","instance","getInstance","Error","appiumHome","set","get","extensionDesc","pluginName","version","print","activeNames","pluginNames","Object","keys","installedExtensions","_","isEmpty","log","info","pluginData","toPairs","activeTxt","includes"],"sources":["../../../lib/extension/plugin-config.js"],"sourcesContent":["import _ from 'lodash';\nimport {ExtensionConfig} from './extension-config';\nimport log from '../logger';\nimport {PLUGIN_TYPE} from '../constants';\n\n/**\n * @extends {ExtensionConfig<PluginType>}\n */\nexport class PluginConfig extends ExtensionConfig {\n /**\n * A mapping of {@link Manifest} instances to {@link PluginConfig} instances.\n *\n * `Manifest` and {@link 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-`PluginConfig` portion.\n *\n * @type {WeakMap<Manifest,PluginConfig>}\n * @private\n */\n static _instances = new WeakMap();\n\n /**\n * Call {@link PluginConfig.create} instead.\n *\n * Just calls the superclass' constructor with the correct extension type\n * @private\n * @param {Manifest} manifest - IO object\n */\n constructor(manifest) {\n super(PLUGIN_TYPE, manifest);\n }\n\n async validate() {\n return await super._validate(this.manifest.getExtensionData(PLUGIN_TYPE));\n }\n\n /**\n * Creates a new {@link PluginConfig} instance for a {@link Manifest} instance.\n *\n * @param {Manifest} manifest\n * @throws If `manifest` already associated with a `PluginConfig`\n * @returns {PluginConfig}\n */\n static create(manifest) {\n const instance = new PluginConfig(manifest);\n if (PluginConfig.getInstance(manifest)) {\n throw new Error(\n `Manifest with APPIUM_HOME ${manifest.appiumHome} already has a PluginConfig; use PluginConfig.getInstance() to retrieve it.`\n );\n }\n PluginConfig._instances.set(manifest, instance);\n return instance;\n }\n\n /**\n * Returns a PluginConfig associated with a Manifest\n * @param {Manifest} manifest\n * @returns {PluginConfig|undefined}\n */\n static getInstance(manifest) {\n return PluginConfig._instances.get(manifest);\n }\n\n /**\n * @param {string} pluginName\n * @param {import('appium/types').ExtManifest<PluginType>} pluginData\n * @returns {string}\n */\n extensionDesc(pluginName, {version}) {\n return `${pluginName}@${version}`;\n }\n\n /**\n *\n * @param {(keyof PluginRecord)[]} activeNames\n * @returns {void}\n */\n print(activeNames) {\n const pluginNames = Object.keys(this.installedExtensions);\n\n if (_.isEmpty(pluginNames)) {\n log.info(\n `No plugins have been installed. Use the \"appium plugin\" ` +\n 'command to install the one(s) you want to use.'\n );\n return;\n }\n\n log.info(`Available plugins:`);\n for (const [pluginName, pluginData] of _.toPairs(this.installedExtensions)) {\n const activeTxt = _.includes(activeNames, pluginName) ? ' (ACTIVE)' : '';\n log.info(` - ${this.extensionDesc(pluginName, pluginData)}${activeTxt}`);\n }\n\n if (_.isEmpty(activeNames)) {\n log.info(\n 'No plugins activated. Use the --use-plugins flag with names of plugins to activate'\n );\n }\n }\n}\n\n/**\n * @typedef PluginConfigOptions\n * @property {import('./extension-config').ExtensionLogFn} [logFn] - Optional logging function\n */\n\n/**\n * @typedef {import('appium/types').PluginRecord} PluginRecord\n * @typedef {import('@appium/types').PluginType} PluginType\n * @typedef {import('appium/types').ExtMetadata<PluginType>} PluginMetadata\n * @typedef {import('./manifest').Manifest} Manifest\n */\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAKO,MAAMA,YAAN,SAA2BC,gCAA3B,CAA2C;EAW/B,OAAVC,UAAU,GAAG,IAAIC,OAAJ,EAAH;;EASjBC,WAAW,CAACC,QAAD,EAAW;IACpB,MAAMC,sBAAN,EAAmBD,QAAnB;EACD;;EAEa,MAARE,QAAQ,GAAG;IACf,OAAO,MAAM,MAAMC,SAAN,CAAgB,KAAKH,QAAL,CAAcI,gBAAd,CAA+BH,sBAA/B,CAAhB,CAAb;EACD;;EASY,OAANI,MAAM,CAACL,QAAD,EAAW;IACtB,MAAMM,QAAQ,GAAG,IAAIX,YAAJ,CAAiBK,QAAjB,CAAjB;;IACA,IAAIL,YAAY,CAACY,WAAb,CAAyBP,QAAzB,CAAJ,EAAwC;MACtC,MAAM,IAAIQ,KAAJ,CACH,6BAA4BR,QAAQ,CAACS,UAAW,6EAD7C,CAAN;IAGD;;IACDd,YAAY,CAACE,UAAb,CAAwBa,GAAxB,CAA4BV,QAA5B,EAAsCM,QAAtC;;IACA,OAAOA,QAAP;EACD;;EAOiB,OAAXC,WAAW,CAACP,QAAD,EAAW;IAC3B,OAAOL,YAAY,CAACE,UAAb,CAAwBc,GAAxB,CAA4BX,QAA5B,CAAP;EACD;;EAODY,aAAa,CAACC,UAAD,EAAa;IAACC;EAAD,CAAb,EAAwB;IACnC,OAAQ,GAAED,UAAW,IAAGC,OAAQ,EAAhC;EACD;;EAODC,KAAK,CAACC,WAAD,EAAc;IACjB,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAP,CAAY,KAAKC,mBAAjB,CAApB;;IAEA,IAAIC,eAAA,CAAEC,OAAF,CAAUL,WAAV,CAAJ,EAA4B;MAC1BM,eAAA,CAAIC,IAAJ,CACG,0DAAD,GACE,gDAFJ;;MAIA;IACD;;IAEDD,eAAA,CAAIC,IAAJ,CAAU,oBAAV;;IACA,KAAK,MAAM,CAACX,UAAD,EAAaY,UAAb,CAAX,IAAuCJ,eAAA,CAAEK,OAAF,CAAU,KAAKN,mBAAf,CAAvC,EAA4E;MAC1E,MAAMO,SAAS,GAAGN,eAAA,CAAEO,QAAF,CAAWZ,WAAX,EAAwBH,UAAxB,IAAsC,WAAtC,GAAoD,EAAtE;;MACAU,eAAA,CAAIC,IAAJ,CAAU,OAAM,KAAKZ,aAAL,CAAmBC,UAAnB,EAA+BY,UAA/B,CAA2C,GAAEE,SAAU,EAAvE;IACD;;IAED,IAAIN,eAAA,CAAEC,OAAF,CAAUN,WAAV,CAAJ,EAA4B;MAC1BO,eAAA,CAAIC,IAAJ,CACE,oFADF;IAGD;EACF;;AA3F+C"}
1
+ {"version":3,"file":"plugin-config.js","sourceRoot":"","sources":["../../../lib/extension/plugin-config.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,yDAAmD;AACnD,uDAA4B;AAC5B,4CAAyC;AAEzC;;GAEG;AACH,MAAa,YAAa,SAAQ,kCAAe;IAa/C;;;;;;OAMG;IACH,YAAY,QAAQ;QAClB,KAAK,CAAC,uBAAW,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,uBAAW,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ;QACpB,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YACtC,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,CAAC,UAAU,6EAA6E,CAC9H,CAAC;SACH;QACD,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ;QACzB,OAAO,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,EAAC,OAAO,EAAC;QACjC,OAAO,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE1D,IAAI,gBAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC1B,gBAAG,CAAC,IAAI,CACN,0DAA0D;gBACxD,gDAAgD,CACnD,CAAC;YACF,OAAO;SACR;QAED,gBAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC/B,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;YAC1E,MAAM,SAAS,GAAG,gBAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,gBAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;SAC3E;QAED,IAAI,gBAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC1B,gBAAG,CAAC,IAAI,CACN,oFAAoF,CACrF,CAAC;SACH;IACH,CAAC;;AA3FH,oCA4FC;AA3FC;;;;;;;;;GASG;AACI,uBAAU,GAAG,IAAI,OAAO,EAAE,CAAC;AAmFpC;;;GAGG;AAEH;;;;GAIG"}