appium 2.0.0-beta.5 → 2.0.0-beta.53

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 (199) hide show
  1. package/README.md +156 -63
  2. package/build/lib/appium.d.ts +226 -0
  3. package/build/lib/appium.d.ts.map +1 -0
  4. package/build/lib/appium.js +694 -439
  5. package/build/lib/appium.js.map +1 -0
  6. package/build/lib/cli/args.d.ts +17 -0
  7. package/build/lib/cli/args.d.ts.map +1 -0
  8. package/build/lib/cli/args.js +253 -319
  9. package/build/lib/cli/args.js.map +1 -0
  10. package/build/lib/cli/driver-command.d.ts +102 -0
  11. package/build/lib/cli/driver-command.d.ts.map +1 -0
  12. package/build/lib/cli/driver-command.js +126 -81
  13. package/build/lib/cli/driver-command.js.map +1 -0
  14. package/build/lib/cli/extension-command.d.ts +385 -0
  15. package/build/lib/cli/extension-command.d.ts.map +1 -0
  16. package/build/lib/cli/extension-command.js +731 -383
  17. package/build/lib/cli/extension-command.js.map +1 -0
  18. package/build/lib/cli/extension.d.ts +23 -0
  19. package/build/lib/cli/extension.d.ts.map +1 -0
  20. package/build/lib/cli/extension.js +71 -54
  21. package/build/lib/cli/extension.js.map +1 -0
  22. package/build/lib/cli/parser.d.ts +84 -0
  23. package/build/lib/cli/parser.d.ts.map +1 -0
  24. package/build/lib/cli/parser.js +240 -128
  25. package/build/lib/cli/parser.js.map +1 -0
  26. package/build/lib/cli/plugin-command.d.ts +99 -0
  27. package/build/lib/cli/plugin-command.d.ts.map +1 -0
  28. package/build/lib/cli/plugin-command.js +120 -81
  29. package/build/lib/cli/plugin-command.js.map +1 -0
  30. package/build/lib/cli/utils.d.ts +29 -0
  31. package/build/lib/cli/utils.d.ts.map +1 -0
  32. package/build/lib/cli/utils.js +72 -51
  33. package/build/lib/cli/utils.js.map +1 -0
  34. package/build/lib/config-file.d.ts +100 -0
  35. package/build/lib/config-file.d.ts.map +1 -0
  36. package/build/lib/config-file.js +207 -0
  37. package/build/lib/config-file.js.map +1 -0
  38. package/build/lib/config.d.ts +49 -0
  39. package/build/lib/config.d.ts.map +1 -0
  40. package/build/lib/config.js +265 -201
  41. package/build/lib/config.js.map +1 -0
  42. package/build/lib/constants.d.ts +49 -0
  43. package/build/lib/constants.d.ts.map +1 -0
  44. package/build/lib/constants.js +66 -0
  45. package/build/lib/constants.js.map +1 -0
  46. package/build/lib/extension/driver-config.d.ts +82 -0
  47. package/build/lib/extension/driver-config.d.ts.map +1 -0
  48. package/build/lib/extension/driver-config.js +212 -0
  49. package/build/lib/extension/driver-config.js.map +1 -0
  50. package/build/lib/extension/extension-config.d.ts +249 -0
  51. package/build/lib/extension/extension-config.d.ts.map +1 -0
  52. package/build/lib/extension/extension-config.js +581 -0
  53. package/build/lib/extension/extension-config.js.map +1 -0
  54. package/build/lib/extension/index.d.ts +48 -0
  55. package/build/lib/extension/index.d.ts.map +1 -0
  56. package/build/lib/extension/index.js +105 -0
  57. package/build/lib/extension/index.js.map +1 -0
  58. package/build/lib/extension/manifest-migrations.d.ts +27 -0
  59. package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
  60. package/build/lib/extension/manifest-migrations.js +118 -0
  61. package/build/lib/extension/manifest-migrations.js.map +1 -0
  62. package/build/lib/extension/manifest.d.ts +145 -0
  63. package/build/lib/extension/manifest.d.ts.map +1 -0
  64. package/build/lib/extension/manifest.js +521 -0
  65. package/build/lib/extension/manifest.js.map +1 -0
  66. package/build/lib/extension/package-changed.d.ts +11 -0
  67. package/build/lib/extension/package-changed.d.ts.map +1 -0
  68. package/build/lib/extension/package-changed.js +62 -0
  69. package/build/lib/extension/package-changed.js.map +1 -0
  70. package/build/lib/extension/plugin-config.d.ts +56 -0
  71. package/build/lib/extension/plugin-config.d.ts.map +1 -0
  72. package/build/lib/extension/plugin-config.js +102 -0
  73. package/build/lib/extension/plugin-config.js.map +1 -0
  74. package/build/lib/grid-register.d.ts +10 -0
  75. package/build/lib/grid-register.d.ts.map +1 -0
  76. package/build/lib/grid-register.js +122 -144
  77. package/build/lib/grid-register.js.map +1 -0
  78. package/build/lib/logger.d.ts +3 -0
  79. package/build/lib/logger.d.ts.map +1 -0
  80. package/build/lib/logger.js +5 -17
  81. package/build/lib/logger.js.map +1 -0
  82. package/build/lib/logsink.d.ts +4 -0
  83. package/build/lib/logsink.d.ts.map +1 -0
  84. package/build/lib/logsink.js +190 -187
  85. package/build/lib/logsink.js.map +1 -0
  86. package/build/lib/main.d.ts +62 -0
  87. package/build/lib/main.d.ts.map +1 -0
  88. package/build/lib/main.js +348 -228
  89. package/build/lib/main.js.map +1 -0
  90. package/build/lib/schema/arg-spec.d.ts +143 -0
  91. package/build/lib/schema/arg-spec.d.ts.map +1 -0
  92. package/build/lib/schema/arg-spec.js +164 -0
  93. package/build/lib/schema/arg-spec.js.map +1 -0
  94. package/build/lib/schema/cli-args.d.ts +19 -0
  95. package/build/lib/schema/cli-args.d.ts.map +1 -0
  96. package/build/lib/schema/cli-args.js +217 -0
  97. package/build/lib/schema/cli-args.js.map +1 -0
  98. package/build/lib/schema/cli-transformers.d.ts +5 -0
  99. package/build/lib/schema/cli-transformers.d.ts.map +1 -0
  100. package/build/lib/schema/cli-transformers.js +124 -0
  101. package/build/lib/schema/cli-transformers.js.map +1 -0
  102. package/build/lib/schema/index.d.ts +3 -0
  103. package/build/lib/schema/index.d.ts.map +1 -0
  104. package/build/lib/schema/index.js +19 -0
  105. package/build/lib/schema/index.js.map +1 -0
  106. package/build/lib/schema/keywords.d.ts +24 -0
  107. package/build/lib/schema/keywords.d.ts.map +1 -0
  108. package/build/lib/schema/keywords.js +128 -0
  109. package/build/lib/schema/keywords.js.map +1 -0
  110. package/build/lib/schema/schema.d.ts +259 -0
  111. package/build/lib/schema/schema.d.ts.map +1 -0
  112. package/build/lib/schema/schema.js +615 -0
  113. package/build/lib/schema/schema.js.map +1 -0
  114. package/build/lib/utils.d.ts +121 -0
  115. package/build/lib/utils.d.ts.map +1 -0
  116. package/build/lib/utils.js +351 -273
  117. package/build/lib/utils.js.map +1 -0
  118. package/build/tsconfig.tsbuildinfo +1 -0
  119. package/build/types/cli.d.ts +134 -0
  120. package/build/types/cli.d.ts.map +1 -0
  121. package/build/types/cli.js +3 -0
  122. package/build/types/cli.js.map +1 -0
  123. package/build/types/index.d.ts +15 -0
  124. package/build/types/index.d.ts.map +1 -0
  125. package/build/types/index.js +19 -0
  126. package/build/types/index.js.map +1 -0
  127. package/build/types/manifest/base.d.ts +135 -0
  128. package/build/types/manifest/base.d.ts.map +1 -0
  129. package/build/types/manifest/base.js +3 -0
  130. package/build/types/manifest/base.js.map +1 -0
  131. package/build/types/manifest/index.d.ts +19 -0
  132. package/build/types/manifest/index.d.ts.map +1 -0
  133. package/build/types/manifest/index.js +40 -0
  134. package/build/types/manifest/index.js.map +1 -0
  135. package/build/types/manifest/v3.d.ts +139 -0
  136. package/build/types/manifest/v3.d.ts.map +1 -0
  137. package/build/types/manifest/v3.js +3 -0
  138. package/build/types/manifest/v3.js.map +1 -0
  139. package/driver.d.ts +1 -0
  140. package/driver.js +14 -0
  141. package/index.js +11 -0
  142. package/lib/appium.js +535 -186
  143. package/lib/cli/args.js +267 -422
  144. package/lib/cli/driver-command.js +126 -23
  145. package/lib/cli/extension-command.js +679 -271
  146. package/lib/cli/extension.js +48 -17
  147. package/lib/cli/parser.js +263 -83
  148. package/lib/cli/plugin-command.js +115 -20
  149. package/lib/cli/utils.js +24 -10
  150. package/lib/config-file.js +220 -0
  151. package/lib/config.js +244 -110
  152. package/lib/constants.js +71 -0
  153. package/lib/extension/driver-config.js +250 -0
  154. package/lib/extension/extension-config.js +682 -0
  155. package/lib/extension/index.js +116 -0
  156. package/lib/extension/manifest-migrations.js +120 -0
  157. package/lib/extension/manifest.js +573 -0
  158. package/lib/extension/package-changed.js +64 -0
  159. package/lib/extension/plugin-config.js +112 -0
  160. package/lib/grid-register.js +49 -35
  161. package/lib/logger.js +1 -2
  162. package/lib/logsink.js +64 -38
  163. package/lib/main.js +321 -101
  164. package/lib/schema/arg-spec.js +229 -0
  165. package/lib/schema/cli-args.js +238 -0
  166. package/lib/schema/cli-transformers.js +119 -0
  167. package/lib/schema/index.js +2 -0
  168. package/lib/schema/keywords.js +136 -0
  169. package/lib/schema/schema.js +722 -0
  170. package/lib/utils.js +291 -167
  171. package/package.json +83 -84
  172. package/plugin.d.ts +1 -0
  173. package/plugin.js +13 -0
  174. package/scripts/autoinstall-extensions.js +237 -0
  175. package/support.d.ts +1 -0
  176. package/support.js +13 -0
  177. package/tsconfig.json +25 -0
  178. package/types/cli.ts +193 -0
  179. package/types/index.ts +20 -0
  180. package/types/manifest/README.md +30 -0
  181. package/types/manifest/base.ts +158 -0
  182. package/types/manifest/index.ts +27 -0
  183. package/types/manifest/v3.ts +161 -0
  184. package/CHANGELOG.md +0 -3515
  185. package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
  186. package/build/lib/cli/npm.js +0 -208
  187. package/build/lib/cli/parser-helpers.js +0 -82
  188. package/build/lib/driver-config.js +0 -77
  189. package/build/lib/drivers.js +0 -96
  190. package/build/lib/extension-config.js +0 -253
  191. package/build/lib/plugin-config.js +0 -59
  192. package/build/lib/plugins.js +0 -14
  193. package/lib/cli/npm.js +0 -184
  194. package/lib/cli/parser-helpers.js +0 -79
  195. package/lib/driver-config.js +0 -46
  196. package/lib/drivers.js +0 -81
  197. package/lib/extension-config.js +0 -209
  198. package/lib/plugin-config.js +0 -34
  199. package/lib/plugins.js +0 -10
@@ -1,45 +1,148 @@
1
1
  import _ from 'lodash';
2
2
  import ExtensionCommand from './extension-command';
3
- import { DRIVER_TYPE } from '../extension-config';
4
- import { KNOWN_DRIVERS } from '../drivers';
3
+ import {KNOWN_DRIVERS} from '../constants';
4
+ import '@colors/colors';
5
5
 
6
6
  const REQ_DRIVER_FIELDS = ['driverName', 'automationName', 'platformNames', 'mainClass'];
7
7
 
8
- export default class DriverCommand extends ExtensionCommand {
8
+ /**
9
+ * @extends {ExtensionCommand<DriverType>}
10
+ */
9
11
 
10
- constructor ({config, json}) {
11
- super({config, json, type: DRIVER_TYPE});
12
+ export default class DriverCommand extends ExtensionCommand {
13
+ /**
14
+ * @param {import('./extension-command').ExtensionCommandOptions<DriverType>} opts
15
+ */
16
+ constructor({config, json}) {
17
+ super({config, json});
12
18
  this.knownExtensions = KNOWN_DRIVERS;
13
19
  }
14
20
 
15
- async install ({driver, installType, packageName}) {
16
- return await super.install({ext: driver, installType, packageName});
21
+ /**
22
+ * Install a driver
23
+ *
24
+ * @param {DriverInstallOpts} opts
25
+ * @return {Promise<ExtRecord<DriverType>>}
26
+ */
27
+ async install({driver, installType, packageName}) {
28
+ return await super._install({
29
+ installSpec: driver,
30
+ installType,
31
+ packageName,
32
+ });
33
+ }
34
+
35
+ /**
36
+ * Uninstall a driver
37
+ *
38
+ * @param {DriverUninstallOpts} opts
39
+ * @return {Promise<ExtRecord<DriverType>>}
40
+ */
41
+ async uninstall({driver}) {
42
+ return await super._uninstall({installSpec: driver});
17
43
  }
18
44
 
19
- async uninstall ({driver}) {
20
- return await super.uninstall({ext: driver});
45
+ /**
46
+ * Update a driver
47
+ *
48
+ * @param {DriverUpdateOpts} opts
49
+ * @return {Promise<import('./extension-command').ExtensionUpdateResult>}
50
+ */
51
+ async update({driver, unsafe}) {
52
+ return await super._update({installSpec: driver, unsafe});
21
53
  }
22
54
 
23
- async update ({driver, unsafe}) {
24
- return await super.update({ext: driver, unsafe});
55
+ /**
56
+ *
57
+ * @param {DriverRunOptions} opts
58
+ * @return {Promise<import('./extension-command').RunOutput>}
59
+ */
60
+ async run({driver, scriptName, extraArgs}) {
61
+ return await super._run({installSpec: driver, scriptName, extraArgs});
25
62
  }
26
63
 
27
- getPostInstallText ({extName, extData}) {
28
- return `Driver ${extName}@${extData.version} successfully installed\n`.green +
29
- `- automationName: ${extData.automationName.green}\n` +
30
- `- platformNames: ${JSON.stringify(extData.platformNames).green}`;
64
+ /**
65
+ *
66
+ * @param {import('./extension-command').ExtensionArgs} opts
67
+ * @returns {string}
68
+ */
69
+ getPostInstallText({extName, extData}) {
70
+ return (
71
+ `Driver ${extName}@${extData.version} successfully installed\n`.green +
72
+ `- automationName: ${extData.automationName.green}\n` +
73
+ `- platformNames: ${JSON.stringify(extData.platformNames).green}`
74
+ );
31
75
  }
32
76
 
33
- validateExtensionFields (appiumPkgData) {
34
- const missingFields = REQ_DRIVER_FIELDS.reduce((acc, field) => (
35
- appiumPkgData[field] ? acc : [...acc, field]
36
- ), []);
77
+ /**
78
+ * Validates fields in `appium` field of `driverMetadata`
79
+ *
80
+ * For any `package.json` fields which a driver requires, validate the type of
81
+ * those fields on the `package.json` data, throwing an error if anything is
82
+ * amiss.
83
+ * @param {import('appium/types').ExtMetadata<DriverType>} driverMetadata
84
+ * @param {string} installSpec
85
+ */
86
+ validateExtensionFields(driverMetadata, installSpec) {
87
+ const missingFields = REQ_DRIVER_FIELDS.reduce(
88
+ (acc, field) => (driverMetadata[field] ? acc : [...acc, field]),
89
+ []
90
+ );
37
91
 
38
92
  if (!_.isEmpty(missingFields)) {
39
- throw new Error(`Installed driver did not expose correct fields for compability ` +
40
- `with Appium. Missing fields: ${JSON.stringify(missingFields)}`);
93
+ throw new Error(
94
+ `Driver "${installSpec}" did not expose correct fields for compability ` +
95
+ `with Appium. Missing fields: ${JSON.stringify(missingFields)}`
96
+ );
41
97
  }
42
-
43
98
  }
44
-
45
99
  }
100
+
101
+ /**
102
+ * @typedef {import('@appium/types').ExtensionType} ExtensionType
103
+ * @typedef {import('@appium/types').DriverType} DriverType
104
+ */
105
+
106
+ /**
107
+ * @template {ExtensionType} ExtType
108
+ * @typedef {import('appium/types').ExtRecord<ExtType>} ExtRecord
109
+ */
110
+
111
+ /**
112
+ * @typedef DriverCommandOptions
113
+ * @property {import('../extension/extension-config').ExtensionConfig<DriverType>} config
114
+ * @property {boolean} json
115
+ */
116
+
117
+ /**
118
+ * Options for {@linkcode DriverCommand.install}
119
+ * @typedef DriverInstallOpts
120
+ * @property {string} driver - the name or spec of a driver to install
121
+ * @property {InstallType} installType - how to install this driver. One of the INSTALL_TYPES
122
+ * @property {string} [packageName] - for git/github installs, the driver node package name
123
+ */
124
+
125
+ /**
126
+ * @typedef {import('appium/types').InstallType} InstallType
127
+ */
128
+
129
+ /**
130
+ * Options for {@linkcode DriverCommand.uninstall}
131
+ * @typedef DriverUninstallOpts
132
+ * @property {string} driver - the name or spec of a driver to uninstall
133
+ */
134
+
135
+ /**
136
+ * Options for {@linkcode DriverCommand.update}
137
+ * @typedef DriverUpdateOpts
138
+ * @property {string} driver - the name of the driver to update
139
+ * @property {boolean} unsafe - if true, will perform unsafe updates past major revision boundaries
140
+ */
141
+
142
+ /**
143
+ * Options for {@linkcode DriverCommand.run}.
144
+ * @typedef DriverRunOptions
145
+ * @property {string} driver - name of the driver to run a script from
146
+ * @property {string} scriptName - name of the script to run
147
+ * @property {string[]} [extraArgs] - arguments to pass to the script
148
+ */