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.
Files changed (141) 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.d.ts +24 -5
  9. package/build/lib/cli/driver-command.d.ts.map +1 -1
  10. package/build/lib/cli/driver-command.js +78 -88
  11. package/build/lib/cli/driver-command.js.map +1 -1
  12. package/build/lib/cli/extension-command.d.ts +33 -24
  13. package/build/lib/cli/extension-command.d.ts.map +1 -1
  14. package/build/lib/cli/extension-command.js +729 -512
  15. package/build/lib/cli/extension-command.js.map +1 -1
  16. package/build/lib/cli/extension.d.ts +7 -6
  17. package/build/lib/cli/extension.d.ts.map +1 -1
  18. package/build/lib/cli/extension.js +68 -65
  19. package/build/lib/cli/extension.js.map +1 -1
  20. package/build/lib/cli/parser.d.ts +3 -3
  21. package/build/lib/cli/parser.d.ts.map +1 -1
  22. package/build/lib/cli/parser.js +234 -192
  23. package/build/lib/cli/parser.js.map +1 -1
  24. package/build/lib/cli/plugin-command.js +58 -87
  25. package/build/lib/cli/plugin-command.js.map +1 -1
  26. package/build/lib/cli/utils.js +66 -69
  27. package/build/lib/cli/utils.js.map +1 -1
  28. package/build/lib/config-file.d.ts.map +1 -1
  29. package/build/lib/config-file.js +189 -120
  30. package/build/lib/config-file.js.map +1 -1
  31. package/build/lib/config.d.ts.map +1 -1
  32. package/build/lib/config.js +254 -213
  33. package/build/lib/config.js.map +1 -1
  34. package/build/lib/constants.d.ts +6 -5
  35. package/build/lib/constants.d.ts.map +1 -1
  36. package/build/lib/constants.js +65 -59
  37. package/build/lib/constants.js.map +1 -1
  38. package/build/lib/extension/driver-config.js +199 -164
  39. package/build/lib/extension/driver-config.js.map +1 -1
  40. package/build/lib/extension/extension-config.d.ts +33 -26
  41. package/build/lib/extension/extension-config.d.ts.map +1 -1
  42. package/build/lib/extension/extension-config.js +541 -396
  43. package/build/lib/extension/extension-config.js.map +1 -1
  44. package/build/lib/extension/index.js +98 -68
  45. package/build/lib/extension/index.js.map +1 -1
  46. package/build/lib/extension/manifest-migrations.d.ts +27 -0
  47. package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
  48. package/build/lib/extension/manifest-migrations.js +118 -0
  49. package/build/lib/extension/manifest-migrations.js.map +1 -0
  50. package/build/lib/extension/manifest.d.ts +35 -63
  51. package/build/lib/extension/manifest.d.ts.map +1 -1
  52. package/build/lib/extension/manifest.js +500 -240
  53. package/build/lib/extension/manifest.js.map +1 -1
  54. package/build/lib/extension/package-changed.js +57 -61
  55. package/build/lib/extension/package-changed.js.map +1 -1
  56. package/build/lib/extension/plugin-config.d.ts +2 -3
  57. package/build/lib/extension/plugin-config.d.ts.map +1 -1
  58. package/build/lib/extension/plugin-config.js +94 -70
  59. package/build/lib/extension/plugin-config.js.map +1 -1
  60. package/build/lib/grid-register.js +119 -137
  61. package/build/lib/grid-register.js.map +1 -1
  62. package/build/lib/logger.d.ts +1 -1
  63. package/build/lib/logger.d.ts.map +1 -1
  64. package/build/lib/logger.js +5 -15
  65. package/build/lib/logger.js.map +1 -1
  66. package/build/lib/logsink.d.ts.map +1 -1
  67. package/build/lib/logsink.js +189 -183
  68. package/build/lib/logsink.js.map +1 -1
  69. package/build/lib/main.d.ts +19 -12
  70. package/build/lib/main.d.ts.map +1 -1
  71. package/build/lib/main.js +330 -304
  72. package/build/lib/main.js.map +1 -1
  73. package/build/lib/schema/arg-spec.js +153 -108
  74. package/build/lib/schema/arg-spec.js.map +1 -1
  75. package/build/lib/schema/cli-args.js +203 -164
  76. package/build/lib/schema/cli-args.js.map +1 -1
  77. package/build/lib/schema/cli-transformers.js +117 -72
  78. package/build/lib/schema/cli-transformers.js.map +1 -1
  79. package/build/lib/schema/index.js +17 -32
  80. package/build/lib/schema/index.js.map +1 -1
  81. package/build/lib/schema/keywords.js +125 -67
  82. package/build/lib/schema/keywords.js.map +1 -1
  83. package/build/lib/schema/schema.d.ts.map +1 -1
  84. package/build/lib/schema/schema.js +582 -417
  85. package/build/lib/schema/schema.js.map +1 -1
  86. package/build/lib/utils.d.ts +41 -255
  87. package/build/lib/utils.d.ts.map +1 -1
  88. package/build/lib/utils.js +342 -193
  89. package/build/lib/utils.js.map +1 -1
  90. package/build/tsconfig.tsbuildinfo +1 -1
  91. package/build/types/cli.d.ts +45 -34
  92. package/build/types/cli.d.ts.map +1 -1
  93. package/build/types/cli.js +3 -0
  94. package/build/types/cli.js.map +1 -0
  95. package/build/types/index.d.ts +1 -2
  96. package/build/types/index.d.ts.map +1 -1
  97. package/build/types/index.js +19 -0
  98. package/build/types/index.js.map +1 -0
  99. package/build/types/manifest/base.d.ts +135 -0
  100. package/build/types/manifest/base.d.ts.map +1 -0
  101. package/build/types/manifest/base.js +3 -0
  102. package/build/types/manifest/base.js.map +1 -0
  103. package/build/types/manifest/index.d.ts +19 -0
  104. package/build/types/manifest/index.d.ts.map +1 -0
  105. package/build/types/manifest/index.js +40 -0
  106. package/build/types/manifest/index.js.map +1 -0
  107. package/build/types/manifest/v3.d.ts +139 -0
  108. package/build/types/manifest/v3.d.ts.map +1 -0
  109. package/build/types/manifest/v3.js +3 -0
  110. package/build/types/manifest/v3.js.map +1 -0
  111. package/lib/appium.js +1 -1
  112. package/lib/cli/args.js +1 -1
  113. package/lib/cli/driver-command.js +17 -0
  114. package/lib/cli/extension-command.js +119 -65
  115. package/lib/cli/extension.js +9 -8
  116. package/lib/cli/parser.js +2 -2
  117. package/lib/config-file.js +2 -3
  118. package/lib/config.js +3 -2
  119. package/lib/constants.js +7 -5
  120. package/lib/extension/extension-config.js +52 -47
  121. package/lib/extension/manifest-migrations.js +120 -0
  122. package/lib/extension/manifest.js +184 -103
  123. package/lib/extension/plugin-config.js +1 -2
  124. package/lib/logsink.js +26 -5
  125. package/lib/main.js +58 -50
  126. package/lib/schema/schema.js +6 -1
  127. package/lib/utils.js +62 -0
  128. package/package.json +24 -25
  129. package/scripts/autoinstall-extensions.js +78 -26
  130. package/types/cli.ts +81 -42
  131. package/types/index.ts +1 -2
  132. package/types/manifest/README.md +30 -0
  133. package/types/manifest/base.ts +158 -0
  134. package/types/manifest/index.ts +27 -0
  135. package/types/manifest/v3.ts +161 -0
  136. package/build/types/appium-manifest.d.ts +0 -59
  137. package/build/types/appium-manifest.d.ts.map +0 -1
  138. package/build/types/extension-manifest.d.ts +0 -55
  139. package/build/types/extension-manifest.d.ts.map +0 -1
  140. package/types/appium-manifest.ts +0 -73
  141. 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":";;;;;;AAAA,oDAAuB;AACvB,4CAAyC;AACzC,uDAA4B;AAC5B,yDAAmD;AAEnD;;GAEG;AACH,MAAa,YAAa,SAAQ,kCAAe;IAmB/C;;;;OAIG;IACH,YAAY,QAAQ;QAClB,KAAK,CAAC,uBAAW,EAAE,QAAQ,CAAC,CAAC;QAE7B,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;IACxC,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;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,uBAAW,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,OAAO;QACvB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,EAAC,aAAa,EAAE,cAAc,EAAC,GAAG,OAAO,CAAC;QAEhD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAC7B,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,oDAAoD;gBACzD,GAAG,EAAE,aAAa;aACnB,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBAC5B,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,2BAA2B;oBAChC,GAAG,EAAE,aAAa;iBACnB,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;oBACjC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;wBACtB,QAAQ,CAAC,IAAI,CAAC;4BACZ,GAAG,EAAE,qCAAqC;4BAC1C,GAAG,EAAE,KAAK;yBACX,CAAC,CAAC;qBACJ;iBACF;aACF;SACF;QAED,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YAC/B,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,qCAAqC;gBAC1C,GAAG,EAAE,cAAc;aACpB,CAAC,CAAC;SACJ;QAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,4DAA4D;gBACjE,GAAG,EAAE,cAAc;aACpB,CAAC,CAAC;SACJ;QAED,mGAAmG;QACnG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,EAAC,OAAO,EAAE,cAAc,EAAC;QACjD,OAAO,GAAG,UAAU,IAAI,OAAO,qBAAqB,cAAc,IAAI,CAAC;IACzE,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,EAAC,cAAc,EAAE,YAAY,EAAC;QAC/C,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QAED,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QAED,gBAAG,CAAC,IAAI,CACN,wDAAwD;YACtD,IAAI,cAAc,uBAAuB,YAAY,GAAG,CAC3D,CAAC;QAEF,IAAI;YACF,MAAM,EAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,mBAAmB,CAC/D,cAAc,EACd,YAAY,CACb,CAAC;YACF,gBAAG,CAAC,IAAI,CAAC,QAAQ,UAAU,0CAA0C,CAAC,CAAC;YACvE,gBAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,uCAAuC,SAAS,sCAAsC,CAC5G,CAAC;aACH;YACD,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,GACP,6CAA6C;gBAC7C,IAAI,cAAc,sBAAsB,YAAY,KAAK;gBACzD,kDAAkD;gBAClD,6DAA6D;gBAC7D,uBAAuB,GAAG,CAAC,OAAO,GAAG,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,mBAAmB,EAAE,iBAAiB;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACzC,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzD,MAAM,EAAC,cAAc,EAAE,aAAa,EAAC,GAAG,UAAU,CAAC;YACnD,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,mBAAmB,CAAC,WAAW,EAAE,CAAC;YACxF,MAAM,YAAY,GAAG,gBAAC,CAAC,QAAQ,CAC7B,aAAa,CAAC,GAAG,CAAC,gBAAC,CAAC,OAAO,CAAC,EAC5B,iBAAiB,CAAC,WAAW,EAAE,CAChC,CAAC;YAEF,IAAI,YAAY,IAAI,YAAY,EAAE;gBAChC,OAAO,EAAC,UAAU,EAAE,GAAG,UAAU,EAAC,CAAC;aACpC;YAED,IAAI,YAAY,EAAE;gBAChB,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,4BAA4B;oBAC/C,IAAI,cAAc,+BAA+B;oBACjD,6BAA6B,iBAAiB,eAAe;oBAC7D,qBAAqB;oBACrB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAChC,CAAC;aACH;SACF;QAED,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;;AA1MH,oCA2MC;AApMC;;;;;;;;;GASG;AACI,uBAAU,GAAG,IAAI,OAAO,EAAE,CAAC;AA4LpC;;;GAGG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AAEH;;GAEG"}
@@ -30,20 +30,22 @@ export class ExtensionConfig<ExtType extends import("@appium/types").ExtensionTy
30
30
  * @param {Manifest} manifest - `Manifest` instance
31
31
  */
32
32
  protected constructor();
33
- /** @type {ExtType} */
33
+ /**
34
+ * The type of extension this class is responsible for.
35
+ * @type {ExtType}
36
+ */
34
37
  extensionType: ExtType;
35
- /** @type {`${ExtType}s`} */
36
- configKey: `${ExtType}s`;
37
- /** @type {ExtRecord<ExtType>} */
38
- installedExtensions: ExtRecord<ExtType>;
38
+ /**
39
+ * Manifest data for the extensions of this type.
40
+ *
41
+ * This data should _not_ be written to by anything but {@linkcode Manifest}.
42
+ * @type {Readonly<ExtRecord<ExtType>>}
43
+ */
44
+ installedExtensions: Readonly<ExtRecord<ExtType>>;
39
45
  /** @type {import('@appium/types').AppiumLogger} */
40
46
  log: import('@appium/types').AppiumLogger;
41
47
  /** @type {Manifest} */
42
48
  manifest: Manifest;
43
- /**
44
- * @type {ExtensionListData}
45
- */
46
- _listDataCache: ExtensionListData;
47
49
  get manifestPath(): string;
48
50
  get appiumHome(): string;
49
51
  /**
@@ -93,7 +95,9 @@ export class ExtensionConfig<ExtType extends import("@appium/types").ExtensionTy
93
95
  protected _validate(exts: ExtRecord<ExtType>): Promise<ExtRecord<ExtType>>;
94
96
  /**
95
97
  * Retrieves listing data for extensions via command class.
96
- * Caches the result in {@linkcode ExtensionConfig._listDataCache}
98
+ *
99
+ * This is an expensive operation, so the result is cached. Currently, there is no
100
+ * use case for invalidating the cache.
97
101
  * @protected
98
102
  * @returns {Promise<ExtensionListData>}
99
103
  */
@@ -140,11 +144,11 @@ export class ExtensionConfig<ExtType extends import("@appium/types").ExtensionTy
140
144
  addExtension(extName: string, extManifest: ExtManifest<ExtType>, { write }?: ExtensionConfigMutationOpts | undefined): Promise<void>;
141
145
  /**
142
146
  * @param {ExtName<ExtType>} extName
143
- * @param {ExtManifest<ExtType>|import('../cli/extension-command').ExtensionFields<ExtType>} extManifest
147
+ * @param {ExtManifest<ExtType>} extManifest
144
148
  * @param {ExtensionConfigMutationOpts} [opts]
145
149
  * @returns {Promise<void>}
146
150
  */
147
- updateExtension(extName: ExtName<ExtType>, extManifest: ExtManifest<ExtType> | import('../cli/extension-command').ExtensionFields<ExtType>, { write }?: ExtensionConfigMutationOpts | undefined): Promise<void>;
151
+ updateExtension(extName: ExtName<ExtType>, extManifest: ExtManifest<ExtType>, { write }?: ExtensionConfigMutationOpts | undefined): Promise<void>;
148
152
  /**
149
153
  * Remove an extension from the list of installed extensions, and optionally avoid a write to the manifest file.
150
154
  *
@@ -167,10 +171,13 @@ export class ExtensionConfig<ExtType extends import("@appium/types").ExtensionTy
167
171
  */
168
172
  extensionDesc(extName: ExtName<ExtType>, extManifest: ExtManifest<ExtType>): string;
169
173
  /**
170
- * @param {string} extName
174
+ * Returns--with reasonable accuracy--the path on disk to the extension.
175
+ *
176
+ * If `installPath` is present in the manifest, then it is used; otherwise we just guess.
177
+ * @param {keyof typeof this.installedExtensions} extName
171
178
  * @returns {string}
172
179
  */
173
- getInstallPath(extName: string): string;
180
+ getInstallPath(extName: keyof typeof this.installedExtensions): string;
174
181
  /**
175
182
  * Loads extension and returns its main class (constructor)
176
183
  * @param {ExtName<ExtType>} extName
@@ -190,6 +197,7 @@ export class ExtensionConfig<ExtType extends import("@appium/types").ExtensionTy
190
197
  * @returns {import('ajv').SchemaObject|undefined}
191
198
  */
192
199
  readExtensionSchema(extName: ExtName<ExtType>, extManifest: ExtManifestWithSchema<ExtType>): import('ajv').SchemaObject | undefined;
200
+ #private;
193
201
  }
194
202
  /**
195
203
  * An issue with the {@linkcode ExtManifest } for a particular extension.
@@ -212,12 +220,17 @@ export type ExtManifestProblem = {
212
220
  export type ExtensionLogFn = (...args: any[]) => void;
213
221
  export type ExtensionType = import('@appium/types').ExtensionType;
214
222
  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>;
223
+ export type ExtensionListData = import('../cli/extension-command').ExtensionListData;
224
+ export type InstalledExtensionListData = import('../cli/extension-command').InstalledExtensionListData;
225
+ export type InstallType = import('appium/types').InstallType;
226
+ export type ExtManifest<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtManifest<ExtType>;
227
+ export type ExtManifestWithSchema<ExtType extends import("@appium/types").ExtensionType> = ExtManifest<ExtType> & {
228
+ schema: NonNullable<ExtManifest<ExtType>['schema']>;
229
+ };
230
+ export type ExtName<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtName<ExtType>;
231
+ export type ExtClass<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtClass<ExtType>;
232
+ export type ExtRecord<ExtType extends import("@appium/types").ExtensionType> = import('appium/types').ExtRecord<ExtType>;
233
+ export type ExtCommand<ExtType extends import("@appium/types").ExtensionType> = import('../cli/extension').ExtCommand<ExtType>;
221
234
  /**
222
235
  * Options for various methods in {@link ExtensionConfig }
223
236
  */
@@ -227,12 +240,6 @@ export type ExtensionConfigMutationOpts = {
227
240
  */
228
241
  write?: boolean | undefined;
229
242
  };
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
243
  export const INSTALL_TYPE_NPM: "npm";
237
244
  export const INSTALL_TYPE_GIT: "git";
238
245
  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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"}