appium-android-driver 5.14.7 → 6.0.1

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 (210) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/build/lib/commands/actions.d.ts +6 -224
  3. package/build/lib/commands/actions.d.ts.map +1 -1
  4. package/build/lib/commands/actions.js +306 -405
  5. package/build/lib/commands/actions.js.map +1 -1
  6. package/build/lib/commands/alert.d.ts +7 -9
  7. package/build/lib/commands/alert.d.ts.map +1 -1
  8. package/build/lib/commands/alert.js +24 -18
  9. package/build/lib/commands/alert.js.map +1 -1
  10. package/build/lib/commands/app-management.d.ts +7 -313
  11. package/build/lib/commands/app-management.d.ts.map +1 -1
  12. package/build/lib/commands/app-management.js +135 -293
  13. package/build/lib/commands/app-management.js.map +1 -1
  14. package/build/lib/commands/context.d.ts +8 -92
  15. package/build/lib/commands/context.d.ts.map +1 -1
  16. package/build/lib/commands/context.js +381 -439
  17. package/build/lib/commands/context.js.map +1 -1
  18. package/build/lib/commands/element.d.ts +8 -35
  19. package/build/lib/commands/element.d.ts.map +1 -1
  20. package/build/lib/commands/element.js +153 -136
  21. package/build/lib/commands/element.js.map +1 -1
  22. package/build/lib/commands/emu-console.d.ts +6 -48
  23. package/build/lib/commands/emu-console.d.ts.map +1 -1
  24. package/build/lib/commands/emu-console.js +19 -34
  25. package/build/lib/commands/emu-console.js.map +1 -1
  26. package/build/lib/commands/execute.d.ts +6 -5
  27. package/build/lib/commands/execute.d.ts.map +1 -1
  28. package/build/lib/commands/execute.js +77 -66
  29. package/build/lib/commands/execute.js.map +1 -1
  30. package/build/lib/commands/file-actions.d.ts +7 -128
  31. package/build/lib/commands/file-actions.d.ts.map +1 -1
  32. package/build/lib/commands/file-actions.js +183 -219
  33. package/build/lib/commands/file-actions.js.map +1 -1
  34. package/build/lib/commands/find.d.ts +8 -12
  35. package/build/lib/commands/find.d.ts.map +1 -1
  36. package/build/lib/commands/find.js +19 -23
  37. package/build/lib/commands/find.js.map +1 -1
  38. package/build/lib/commands/general.d.ts +9 -132
  39. package/build/lib/commands/general.d.ts.map +1 -1
  40. package/build/lib/commands/general.js +281 -312
  41. package/build/lib/commands/general.js.map +1 -1
  42. package/build/lib/commands/ime.d.ts +7 -10
  43. package/build/lib/commands/ime.d.ts.map +1 -1
  44. package/build/lib/commands/ime.js +47 -35
  45. package/build/lib/commands/ime.js.map +1 -1
  46. package/build/lib/commands/index.d.ts +27 -2
  47. package/build/lib/commands/index.d.ts.map +1 -1
  48. package/build/lib/commands/index.js +41 -19
  49. package/build/lib/commands/index.js.map +1 -1
  50. package/build/lib/commands/intent.d.ts +7 -417
  51. package/build/lib/commands/intent.d.ts.map +1 -1
  52. package/build/lib/commands/intent.js +104 -216
  53. package/build/lib/commands/intent.js.map +1 -1
  54. package/build/lib/commands/keyboard.d.ts +6 -5
  55. package/build/lib/commands/keyboard.d.ts.map +1 -1
  56. package/build/lib/commands/keyboard.js +16 -8
  57. package/build/lib/commands/keyboard.js.map +1 -1
  58. package/build/lib/commands/log.d.ts +7 -44
  59. package/build/lib/commands/log.d.ts.map +1 -1
  60. package/build/lib/commands/log.js +146 -108
  61. package/build/lib/commands/log.js.map +1 -1
  62. package/build/lib/commands/media-projection.d.ts +7 -143
  63. package/build/lib/commands/media-projection.d.ts.map +1 -1
  64. package/build/lib/commands/media-projection.js +113 -140
  65. package/build/lib/commands/media-projection.js.map +1 -1
  66. package/build/lib/commands/mixins.d.ts +740 -0
  67. package/build/lib/commands/mixins.d.ts.map +1 -0
  68. package/build/lib/commands/mixins.js +19 -0
  69. package/build/lib/commands/mixins.js.map +1 -0
  70. package/build/lib/commands/network.d.ts +7 -138
  71. package/build/lib/commands/network.d.ts.map +1 -1
  72. package/build/lib/commands/network.js +212 -254
  73. package/build/lib/commands/network.js.map +1 -1
  74. package/build/lib/commands/performance.d.ts +24 -70
  75. package/build/lib/commands/performance.d.ts.map +1 -1
  76. package/build/lib/commands/performance.js +144 -100
  77. package/build/lib/commands/performance.js.map +1 -1
  78. package/build/lib/commands/permissions.d.ts +8 -92
  79. package/build/lib/commands/permissions.d.ts.map +1 -1
  80. package/build/lib/commands/permissions.js +75 -87
  81. package/build/lib/commands/permissions.js.map +1 -1
  82. package/build/lib/commands/recordscreen.d.ts +7 -193
  83. package/build/lib/commands/recordscreen.d.ts.map +1 -1
  84. package/build/lib/commands/recordscreen.js +151 -182
  85. package/build/lib/commands/recordscreen.js.map +1 -1
  86. package/build/lib/commands/shell.d.ts +7 -7
  87. package/build/lib/commands/shell.d.ts.map +1 -1
  88. package/build/lib/commands/shell.js +40 -33
  89. package/build/lib/commands/shell.js.map +1 -1
  90. package/build/lib/commands/streamscreen.d.ts +9 -103
  91. package/build/lib/commands/streamscreen.d.ts.map +1 -1
  92. package/build/lib/commands/streamscreen.js +261 -218
  93. package/build/lib/commands/streamscreen.js.map +1 -1
  94. package/build/lib/commands/system-bars.d.ts +22 -90
  95. package/build/lib/commands/system-bars.d.ts.map +1 -1
  96. package/build/lib/commands/system-bars.js +76 -74
  97. package/build/lib/commands/system-bars.js.map +1 -1
  98. package/build/lib/commands/touch.d.ts +10 -29
  99. package/build/lib/commands/touch.d.ts.map +1 -1
  100. package/build/lib/commands/touch.js +301 -285
  101. package/build/lib/commands/touch.js.map +1 -1
  102. package/build/lib/commands/types.d.ts +978 -0
  103. package/build/lib/commands/types.d.ts.map +1 -0
  104. package/build/lib/commands/types.js +3 -0
  105. package/build/lib/commands/types.js.map +1 -0
  106. package/build/lib/constraints.d.ts +291 -0
  107. package/build/lib/constraints.d.ts.map +1 -0
  108. package/build/lib/{desired-caps.js → constraints.js} +103 -102
  109. package/build/lib/constraints.js.map +1 -0
  110. package/build/lib/driver.d.ts +68 -37
  111. package/build/lib/driver.d.ts.map +1 -1
  112. package/build/lib/driver.js +123 -80
  113. package/build/lib/driver.js.map +1 -1
  114. package/build/lib/helpers/android.d.ts +164 -0
  115. package/build/lib/helpers/android.d.ts.map +1 -0
  116. package/build/lib/helpers/android.js +819 -0
  117. package/build/lib/helpers/android.js.map +1 -0
  118. package/build/lib/helpers/index.d.ts +7 -0
  119. package/build/lib/helpers/index.d.ts.map +1 -0
  120. package/build/lib/helpers/index.js +29 -0
  121. package/build/lib/helpers/index.js.map +1 -0
  122. package/build/lib/helpers/types.d.ts +121 -0
  123. package/build/lib/helpers/types.d.ts.map +1 -0
  124. package/build/lib/helpers/types.js +3 -0
  125. package/build/lib/helpers/types.js.map +1 -0
  126. package/build/lib/helpers/unlock.d.ts +32 -0
  127. package/build/lib/helpers/unlock.d.ts.map +1 -0
  128. package/build/lib/helpers/unlock.js +273 -0
  129. package/build/lib/helpers/unlock.js.map +1 -0
  130. package/build/lib/helpers/webview.d.ts +74 -0
  131. package/build/lib/helpers/webview.d.ts.map +1 -0
  132. package/build/lib/helpers/webview.js +421 -0
  133. package/build/lib/helpers/webview.js.map +1 -0
  134. package/build/lib/index.d.ts +9 -0
  135. package/build/lib/index.d.ts.map +1 -0
  136. package/build/lib/index.js +37 -0
  137. package/build/lib/index.js.map +1 -0
  138. package/build/lib/method-map.d.ts +0 -8
  139. package/build/lib/method-map.d.ts.map +1 -1
  140. package/build/lib/method-map.js +63 -74
  141. package/build/lib/method-map.js.map +1 -1
  142. package/build/lib/stubs.d.ts +0 -1
  143. package/build/lib/stubs.d.ts.map +1 -1
  144. package/build/lib/stubs.js +1 -0
  145. package/build/lib/stubs.js.map +1 -1
  146. package/build/lib/utils.d.ts +1 -1
  147. package/build/lib/utils.d.ts.map +1 -1
  148. package/lib/commands/actions.js +351 -464
  149. package/lib/commands/alert.js +27 -17
  150. package/lib/commands/app-management.js +156 -314
  151. package/lib/commands/context.js +457 -441
  152. package/lib/commands/element.js +201 -157
  153. package/lib/commands/emu-console.js +25 -45
  154. package/lib/commands/execute.js +106 -90
  155. package/lib/commands/file-actions.js +222 -240
  156. package/lib/commands/find.ts +103 -0
  157. package/lib/commands/general.js +327 -339
  158. package/lib/commands/ime.js +50 -34
  159. package/lib/commands/{index.js → index.ts} +20 -24
  160. package/lib/commands/intent.js +108 -249
  161. package/lib/commands/keyboard.js +20 -8
  162. package/lib/commands/log.js +172 -116
  163. package/lib/commands/media-projection.js +134 -161
  164. package/lib/commands/mixins.ts +966 -0
  165. package/lib/commands/network.js +252 -281
  166. package/lib/commands/performance.js +203 -132
  167. package/lib/commands/permissions.js +108 -109
  168. package/lib/commands/recordscreen.js +212 -209
  169. package/lib/commands/shell.js +51 -40
  170. package/lib/commands/streamscreen.js +355 -289
  171. package/lib/commands/system-bars.js +92 -83
  172. package/lib/commands/touch.js +357 -294
  173. package/lib/commands/types.ts +1097 -0
  174. package/lib/{desired-caps.js → constraints.ts} +106 -103
  175. package/lib/{driver.js → driver.ts} +278 -132
  176. package/lib/helpers/android.ts +1143 -0
  177. package/lib/helpers/index.ts +6 -0
  178. package/lib/helpers/types.ts +134 -0
  179. package/lib/helpers/unlock.ts +329 -0
  180. package/lib/helpers/webview.ts +582 -0
  181. package/lib/index.ts +18 -0
  182. package/lib/method-map.js +87 -98
  183. package/lib/stubs.ts +0 -1
  184. package/package.json +26 -19
  185. package/build/index.js +0 -51
  186. package/build/lib/android-helpers.d.ts +0 -136
  187. package/build/lib/android-helpers.d.ts.map +0 -1
  188. package/build/lib/android-helpers.js +0 -855
  189. package/build/lib/android-helpers.js.map +0 -1
  190. package/build/lib/commands/coverage.d.ts +0 -5
  191. package/build/lib/commands/coverage.d.ts.map +0 -1
  192. package/build/lib/commands/coverage.js +0 -19
  193. package/build/lib/commands/coverage.js.map +0 -1
  194. package/build/lib/desired-caps.d.ts +0 -353
  195. package/build/lib/desired-caps.d.ts.map +0 -1
  196. package/build/lib/desired-caps.js.map +0 -1
  197. package/build/lib/unlock-helpers.d.ts +0 -38
  198. package/build/lib/unlock-helpers.d.ts.map +0 -1
  199. package/build/lib/unlock-helpers.js +0 -266
  200. package/build/lib/unlock-helpers.js.map +0 -1
  201. package/build/lib/webview-helpers.d.ts +0 -224
  202. package/build/lib/webview-helpers.d.ts.map +0 -1
  203. package/build/lib/webview-helpers.js +0 -528
  204. package/build/lib/webview-helpers.js.map +0 -1
  205. package/index.js +0 -24
  206. package/lib/android-helpers.js +0 -983
  207. package/lib/commands/coverage.js +0 -18
  208. package/lib/commands/find.js +0 -82
  209. package/lib/unlock-helpers.js +0 -278
  210. package/lib/webview-helpers.js +0 -602
@@ -1,299 +1,300 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.commonCapConstraints = void 0;
4
- let commonCapConstraints = {
3
+ exports.ANDROID_DRIVER_CONSTRAINTS = void 0;
4
+ exports.ANDROID_DRIVER_CONSTRAINTS = {
5
5
  platformName: {
6
6
  isString: true,
7
7
  inclusionCaseInsensitive: ['Android'],
8
- presence: true
8
+ presence: true,
9
9
  },
10
- app: {
11
- isString: true
10
+ deviceName: {
11
+ isString: true,
12
12
  },
13
13
  appActivity: {
14
- isString: true
14
+ isString: true,
15
15
  },
16
16
  appPackage: {
17
- isString: true
17
+ isString: true,
18
18
  },
19
19
  appWaitActivity: {
20
- isString: true
20
+ isString: true,
21
21
  },
22
22
  appWaitPackage: {
23
- isString: true
23
+ isString: true,
24
24
  },
25
25
  appWaitDuration: {
26
- isNumber: true
26
+ isNumber: true,
27
27
  },
28
28
  deviceReadyTimeout: {
29
- isNumber: true
29
+ isNumber: true,
30
30
  },
31
31
  androidCoverage: {
32
- isString: true
32
+ isString: true,
33
33
  },
34
34
  androidDeviceReadyTimeout: {
35
- isNumber: true
35
+ isNumber: true,
36
36
  },
37
37
  androidDeviceSocket: {
38
- isString: true
38
+ isString: true,
39
39
  },
40
40
  androidInstallTimeout: {
41
- isNumber: true
41
+ isNumber: true,
42
42
  },
43
43
  adbPort: {
44
- isNumber: true
44
+ isNumber: true,
45
45
  },
46
46
  remoteAdbHost: {
47
- isString: true
47
+ isString: true,
48
48
  },
49
49
  adbExecTimeout: {
50
- isNumber: true
50
+ isNumber: true,
51
51
  },
52
52
  avd: {
53
- isString: true
53
+ isString: true,
54
54
  },
55
55
  avdLaunchTimeout: {
56
- isNumber: true
56
+ isNumber: true,
57
57
  },
58
58
  avdReadyTimeout: {
59
- isNumber: true
59
+ isNumber: true,
60
60
  },
61
61
  avdArgs: {
62
62
  // could be a string or an array
63
63
  },
64
64
  avdEnv: {
65
- isObject: true
65
+ isObject: true,
66
66
  },
67
67
  useKeystore: {
68
- isBoolean: true
68
+ isBoolean: true,
69
69
  },
70
70
  keystorePath: {
71
- isString: true
71
+ isString: true,
72
72
  },
73
73
  keystorePassword: {
74
- isString: true
74
+ isString: true,
75
75
  },
76
76
  keyAlias: {
77
- isString: true
77
+ isString: true,
78
78
  },
79
79
  keyPassword: {
80
- isString: true
80
+ isString: true,
81
81
  },
82
82
  webviewDevtoolsPort: {
83
- isNumber: true
83
+ isNumber: true,
84
84
  },
85
85
  ensureWebviewsHavePages: {
86
- isBoolean: true
86
+ isBoolean: true,
87
87
  },
88
88
  enableWebviewDetailsCollection: {
89
- isBoolean: true
89
+ isBoolean: true,
90
90
  },
91
91
  // this one is deprecated
92
92
  chromeDriverPort: {
93
- isNumber: true
93
+ isNumber: true,
94
94
  },
95
95
  // duplicate of above with better spelling
96
96
  chromedriverPort: {
97
- isNumber: true
97
+ isNumber: true,
98
98
  },
99
99
  chromedriverPorts: {
100
- isArray: true
100
+ isArray: true,
101
101
  },
102
102
  chromedriverArgs: {
103
103
  isObject: true,
104
104
  },
105
105
  chromedriverExecutable: {
106
- isString: true
106
+ isString: true,
107
107
  },
108
108
  chromedriverExecutableDir: {
109
- isString: true
109
+ isString: true,
110
110
  },
111
111
  chromedriverChromeMappingFile: {
112
- isString: true
112
+ isString: true,
113
113
  },
114
114
  chromedriverUseSystemExecutable: {
115
- isBoolean: true
115
+ isBoolean: true,
116
116
  },
117
117
  chromedriverDisableBuildCheck: {
118
- isBoolean: true
118
+ isBoolean: true,
119
119
  },
120
120
  chromeLoggingPrefs: {
121
- isObject: true
121
+ isObject: true,
122
122
  },
123
123
  autoWebviewTimeout: {
124
- isNumber: true
124
+ isNumber: true,
125
125
  },
126
126
  autoWebviewName: {
127
- isString: true
127
+ isString: true,
128
128
  },
129
129
  intentAction: {
130
- isString: true
130
+ isString: true,
131
131
  },
132
132
  intentCategory: {
133
- isString: true
133
+ isString: true,
134
134
  },
135
135
  intentFlags: {
136
- isString: true
136
+ isString: true,
137
137
  },
138
138
  optionalIntentArguments: {
139
- isString: true
139
+ isString: true,
140
140
  },
141
141
  dontStopAppOnReset: {
142
- isBoolean: true
142
+ isBoolean: true,
143
143
  },
144
144
  unicodeKeyboard: {
145
- isBoolean: true
145
+ isBoolean: true,
146
146
  },
147
147
  resetKeyboard: {
148
- isBoolean: true
148
+ isBoolean: true,
149
149
  },
150
150
  noSign: {
151
- isBoolean: true
151
+ isBoolean: true,
152
152
  },
153
153
  recreateChromeDriverSessions: {
154
- isBoolean: false
154
+ isBoolean: false,
155
155
  },
156
156
  autoLaunch: {
157
- isBoolean: true
157
+ isBoolean: true,
158
158
  },
159
159
  nativeWebScreenshot: {
160
- isBoolean: true
160
+ isBoolean: true,
161
161
  },
162
162
  androidScreenshotPath: {
163
- isString: true
163
+ isString: true,
164
164
  },
165
165
  androidInstallPath: {
166
- isString: true
166
+ isString: true,
167
167
  },
168
168
  clearSystemFiles: {
169
- isBoolean: true
169
+ isBoolean: true,
170
170
  },
171
171
  extractChromeAndroidPackageFromContextName: {
172
- isBoolean: true
172
+ isBoolean: true,
173
173
  },
174
174
  autoGrantPermissions: {
175
- isBoolean: true
175
+ isBoolean: true,
176
176
  },
177
177
  sharedPreferences: {
178
- isObject: true
178
+ isObject: true,
179
179
  },
180
180
  networkSpeed: {
181
- isString: true
181
+ isString: true,
182
182
  },
183
183
  gpsEnabled: {
184
- isBoolean: true
184
+ isBoolean: true,
185
185
  },
186
186
  isHeadless: {
187
- isBoolean: true
187
+ isBoolean: true,
188
188
  },
189
189
  showChromedriverLog: {
190
- isBoolean: true
190
+ isBoolean: true,
191
191
  },
192
192
  skipUnlock: {
193
- isBoolean: true
193
+ isBoolean: true,
194
194
  },
195
195
  clearDeviceLogsOnStart: {
196
- isBoolean: true
196
+ isBoolean: true,
197
197
  },
198
198
  unlockType: {
199
- isString: true
199
+ isString: true,
200
200
  },
201
201
  unlockKey: {
202
- isString: true
202
+ isString: true,
203
203
  },
204
204
  unlockStrategy: {
205
205
  isString: true,
206
206
  inclusionCaseInsensitive: ['locksettings', 'uiautomator'],
207
207
  },
208
208
  otherApps: {
209
- isString: true
209
+ isString: true,
210
210
  },
211
211
  uninstallOtherPackages: {
212
- isString: true
212
+ isString: true,
213
213
  },
214
214
  allowTestPackages: {
215
- isBoolean: true
215
+ isBoolean: true,
216
216
  },
217
217
  pageLoadStrategy: {
218
- isString: true
218
+ isString: true,
219
219
  },
220
220
  localeScript: {
221
- isString: true
221
+ isString: true,
222
222
  },
223
223
  skipDeviceInitialization: {
224
- isBoolean: true
224
+ isBoolean: true,
225
225
  },
226
226
  remoteAppsCacheLimit: {
227
- isNumber: true
227
+ isNumber: true,
228
228
  },
229
229
  buildToolsVersion: {
230
- isString: true
230
+ isString: true,
231
231
  },
232
232
  skipLogcatCapture: {
233
- isBoolean: true
233
+ isBoolean: true,
234
234
  },
235
235
  chromeOptions: {
236
- isObject: true
236
+ isObject: true,
237
237
  },
238
238
  enablePerformanceLogging: {
239
- isBoolean: true
239
+ isBoolean: true,
240
240
  },
241
241
  userProfile: {
242
- isNumber: true
242
+ isNumber: true,
243
243
  },
244
244
  browserName: {
245
- isString: true
245
+ isString: true,
246
246
  },
247
247
  enforceAppInstall: {
248
- isBoolean: true
248
+ isBoolean: true,
249
249
  },
250
250
  suppressKillServer: {
251
- isBoolean: true
251
+ isBoolean: true,
252
252
  },
253
253
  allowOfflineDevices: {
254
- isBoolean: true
254
+ isBoolean: true,
255
255
  },
256
256
  ignoreHiddenApiPolicyError: {
257
- isBoolean: true
257
+ isBoolean: true,
258
258
  },
259
259
  unlockSuccessTimeout: {
260
- isNumber: true
260
+ isNumber: true,
261
261
  },
262
262
  mockLocationApp: {
263
- isString: true
263
+ isString: true,
264
264
  },
265
265
  logcatFormat: {
266
- isString: true
266
+ isString: true,
267
267
  },
268
268
  logcatFilterSpecs: {
269
- isArray: true
269
+ isArray: true,
270
270
  },
271
271
  allowDelayAdb: {
272
- isBoolean: true
273
- }
274
- };
275
- exports.commonCapConstraints = commonCapConstraints;
276
- let uiautomatorCapConstraints = {
272
+ isBoolean: true,
273
+ },
274
+ /*-----------------------------------+
275
+ | UI-AUTOMATOR-SPECIFIC CONSTRAINTS |
276
+ +-----------------------------------+*/
277
277
  ignoreUnimportantViews: {
278
- isBoolean: true
278
+ isBoolean: true,
279
279
  },
280
280
  disableAndroidWatchers: {
281
- isBoolean: true
281
+ isBoolean: true,
282
282
  },
283
283
  acceptSslCerts: {
284
- isBoolean: true
284
+ isBoolean: true,
285
285
  },
286
286
  androidNaturalOrientation: {
287
- isBoolean: true
287
+ isBoolean: true,
288
288
  },
289
289
  disableWindowAnimation: {
290
- isBoolean: true
290
+ isBoolean: true,
291
291
  },
292
292
  bootstrapPort: {
293
- isNumber: true
293
+ isNumber: true,
294
+ },
295
+ appWaitForLaunch: {
296
+ isBoolean: true,
294
297
  },
295
298
  };
296
- let desiredCapConstraints = {};
297
- Object.assign(desiredCapConstraints, commonCapConstraints, uiautomatorCapConstraints);
298
- exports.default = desiredCapConstraints;
299
- //# sourceMappingURL=desired-caps.js.map
299
+ exports.default = exports.ANDROID_DRIVER_CONSTRAINTS;
300
+ //# sourceMappingURL=constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../lib/constraints.ts"],"names":[],"mappings":";;;AAEa,QAAA,0BAA0B,GAAG;IACxC,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,CAAC,SAAS,CAAC;QACrC,QAAQ,EAAE,IAAI;KACf;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,yBAAyB,EAAE;QACzB,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,IAAI;KACf;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;KACf;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,OAAO,EAAE;IACP,gCAAgC;KACjC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,SAAS,EAAE,IAAI;KAChB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,SAAS,EAAE,IAAI;KAChB;IACD,8BAA8B,EAAE;QAC9B,SAAS,EAAE,IAAI;KAChB;IACD,yBAAyB;IACzB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,0CAA0C;IAC1C,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,IAAI;KACd;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,sBAAsB,EAAE;QACtB,QAAQ,EAAE,IAAI;KACf;IACD,yBAAyB,EAAE;QACzB,QAAQ,EAAE,IAAI;KACf;IACD,6BAA6B,EAAE;QAC7B,QAAQ,EAAE,IAAI;KACf;IACD,+BAA+B,EAAE;QAC/B,SAAS,EAAE,IAAI;KAChB;IACD,6BAA6B,EAAE;QAC7B,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,uBAAuB,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE;QACf,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;KAChB;IACD,MAAM,EAAE;QACN,SAAS,EAAE,IAAI;KAChB;IACD,4BAA4B,EAAE;QAC5B,SAAS,EAAE,KAAK;KACjB;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;KAChB;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;KAChB;IACD,0CAA0C,EAAE;QAC1C,SAAS,EAAE,IAAI;KAChB;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;KAChB;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;KAChB;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;KAChB;IACD,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;KAChB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;QACd,wBAAwB,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC;KAC1D;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI;KACf;IACD,sBAAsB,EAAE;QACtB,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;KAChB;IACD,oBAAoB,EAAE;QACpB,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;KACf;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;KAChB;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;KAChB;IACD,0BAA0B,EAAE;QAC1B,SAAS,EAAE,IAAI;KAChB;IACD,oBAAoB,EAAE;QACpB,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,IAAI;KACd;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;KAChB;IAED;;4CAEwC;IAExC,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;KAChB;IACD,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;KAChB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,IAAI;KAChB;IACD,yBAAyB,EAAE;QACzB,SAAS,EAAE,IAAI;KAChB;IACD,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;KAChB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;KACf;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;KAChB;CAC6B,CAAC;AAEjC,kBAAe,kCAA0B,CAAC"}
@@ -1,5 +1,19 @@
1
- export default AndroidDriver;
2
- export class AndroidDriver extends BaseDriver<any, import("@appium/types").StringRecord, import("@appium/types").StringRecord, import("@appium/types").DefaultCreateSessionResult<any>, void, import("@appium/types").StringRecord> {
1
+ import type { DriverCaps, DriverData, DriverOpts, ExternalDriver, InitialOpts, RouteMatcher, StringRecord, W3CDriverCaps } from '@appium/types';
2
+ import ADB from 'appium-adb';
3
+ import type { default as AppiumChromedriver } from 'appium-chromedriver';
4
+ import { BaseDriver } from 'appium/driver';
5
+ import AndroidBootstrap from './bootstrap';
6
+ import { AndroidDriverConstraints } from './constraints';
7
+ import { helpers } from './helpers';
8
+ export type AndroidDriverCaps = DriverCaps<AndroidDriverConstraints>;
9
+ export type W3CAndroidDriverCaps = W3CDriverCaps<AndroidDriverConstraints>;
10
+ export type AndroidDriverOpts = DriverOpts<AndroidDriverConstraints>;
11
+ export interface AndroidSettings {
12
+ ignoreUnimportantViews: boolean;
13
+ }
14
+ export type AndroidDriverCreateResult = [string, AndroidDriverCaps];
15
+ type AndroidExternalDriver = ExternalDriver<AndroidDriverConstraints>;
16
+ declare class AndroidDriver<Settings extends AndroidSettings = AndroidSettings, CreateResult = AndroidDriverCreateResult> extends BaseDriver<AndroidDriverConstraints, StringRecord, Settings, CreateResult> implements ExternalDriver<AndroidDriverConstraints, string, StringRecord, Settings, CreateResult> {
3
17
  static newMethodMap: {
4
18
  readonly '/session/:sessionId/timeouts/implicit_wait': {
5
19
  readonly POST: {
@@ -355,14 +369,6 @@ export class AndroidDriver extends BaseDriver<any, import("@appium/types").Strin
355
369
  };
356
370
  };
357
371
  };
358
- readonly '/session/:sessionId/appium/app/end_test_coverage': {
359
- readonly POST: {
360
- readonly command: "endCoverage";
361
- readonly payloadParams: {
362
- readonly required: readonly ["intent", "path"];
363
- };
364
- };
365
- };
366
372
  readonly '/session/:sessionId/appium/app/strings': {
367
373
  readonly POST: {
368
374
  readonly command: "getStrings";
@@ -388,43 +394,68 @@ export class AndroidDriver extends BaseDriver<any, import("@appium/types").Strin
388
394
  };
389
395
  };
390
396
  };
391
- constructor(opts?: {}, shouldValidateCaps?: boolean);
392
- desiredCapConstraints: {};
393
- sessionChromedrivers: {};
397
+ jwpProxyAvoid: RouteMatcher[];
398
+ bootstrap?: AndroidBootstrap;
399
+ adb?: ADB;
400
+ unlocker: typeof helpers.unlocker;
401
+ apkStrings: StringRecord<StringRecord<string>>;
402
+ proxyReqRes?: (...args: any) => any;
403
+ contexts?: string[];
404
+ sessionChromedrivers: StringRecord<AppiumChromedriver>;
405
+ chromedriver?: AppiumChromedriver;
406
+ proxyCommand?: AndroidExternalDriver['proxyCommand'];
394
407
  jwpProxyActive: boolean;
395
- jwpProxyAvoid: (string | RegExp)[][];
396
- settings: DeviceSettings<{
397
- ignoreUnimportantViews: boolean;
398
- }>;
399
- chromedriver: any;
400
- apkStrings: {};
401
- unlocker: typeof import("./unlock-helpers").helpers;
402
- curContext: any;
403
- createSession(...args: any[]): Promise<(string | import("@appium/types").DriverCaps<any>)[]>;
404
- useUnlockHelperApp: boolean | undefined;
405
- adb: any;
408
+ curContext: string;
409
+ useUnlockHelperApp?: boolean;
410
+ defaultIME?: string;
411
+ _wasWindowAnimationDisabled?: boolean;
412
+ opts: AndroidDriverOpts;
413
+ constructor(opts?: InitialOpts, shouldValidateCaps?: boolean);
414
+ createSession(w3cCaps1: W3CAndroidDriverCaps, w3cCaps2?: W3CAndroidDriverCaps, w3cCaps3?: W3CAndroidDriverCaps, driverData?: DriverData[]): Promise<CreateResult>;
406
415
  isEmulator(): boolean;
407
- setAvdFromCapabilities(caps: any): void;
416
+ setAvdFromCapabilities(caps: AndroidDriverCaps): void;
408
417
  get appOnDevice(): boolean;
409
418
  get isChromeSession(): boolean;
410
- onSettingsUpdate(key: any, value: any): Promise<void>;
411
- startAndroidSession(): Promise<void>;
412
- defaultIME: any;
413
- _wasWindowAnimationDisabled: boolean | undefined;
414
- bootstrap: import("./bootstrap").AndroidBootstrap | null | undefined;
419
+ onSettingsUpdate(key: keyof Settings, value: any): Promise<void>;
420
+ startAndroidSession(opts: AndroidDriverOpts): Promise<void>;
415
421
  initAutoWebview(): Promise<void>;
416
422
  initAUT(): Promise<void>;
417
423
  checkAppPresent(): Promise<void>;
418
424
  checkPackagePresent(): Promise<void>;
425
+ /**
426
+ * Set CompressedLayoutHierarchy on the device
427
+ * @privateRemarks FIXME: unknown param type
428
+ */
419
429
  setCompressedLayoutHierarchy(compress: any): Promise<void>;
420
430
  deleteSession(): Promise<void>;
421
- setSharedPreferences(): Promise<boolean>;
431
+ /**
432
+ *
433
+ * @param {AndroidDriverOpts} [opts]
434
+ */
435
+ setSharedPreferences(opts: AndroidDriverOpts): Promise<boolean>;
422
436
  getPrefsBuilder(): any;
423
- validateDesiredCaps(caps: any): boolean;
424
- proxyActive(sessionId: any): boolean;
425
- getProxyAvoidList(sessionId: any): (string | RegExp)[][];
426
- canProxy(sessionId: any): boolean;
437
+ /**
438
+ *
439
+ * @param {any} caps
440
+ * @returns {caps is AndroidDriverCaps}
441
+ */
442
+ validateDesiredCaps(caps: any): caps is AndroidDriverCaps;
443
+ /**
444
+ *
445
+ * @param {string} sessionId
446
+ */
447
+ proxyActive(sessionId: string): boolean;
448
+ /**
449
+ *
450
+ * @param {string} sessionId
451
+ */
452
+ getProxyAvoidList(sessionId: string): RouteMatcher[];
453
+ /**
454
+ *
455
+ * @param {string} sessionId
456
+ */
457
+ canProxy(sessionId: string): boolean;
427
458
  }
428
- import { BaseDriver } from 'appium/driver';
429
- import { DeviceSettings } from 'appium/driver';
459
+ export { commands as androidCommands } from './commands';
460
+ export { AndroidDriver };
430
461
  //# sourceMappingURL=driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":";AAmCA;IAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAmC;IAEnC,qDA0BC;IAhBC,0BAA+C;IAC/C,yBAA8B;IAC9B,wBAA2B;IAC3B,qCAAsC;IACtC;;OACoE;IACpE,kBAAwB;IACxB,eAAoB;IACpB,oDAAgC;IAOhC,gBAA2C;IAG7C,6FAkIC;IA/FG,wCAA6D;IA8B7D,SASE;IA0DN,sBAEC;IAED,wCAaC;IAED,2BAGC;IAED,+BAEC;IAED,sDAIC;IAED,qCA6EC;IA1EC,gBAA+D;IAoB3D,iDAAuC;IAU3C,qEAA8F;IA8ChG,iCAYC;IAED,yBAwDC;IAED,iCAKC;IAED,qCAKC;IAGD,2DAEC;IAED,+BAwDC;IAED,yCA4BC;IAED,uBAKC;IAED,wCAQC;IAED,qCAIC;IAED,yDAIC;IAED,kCAKC;CACF;2BA9gB0C,eAAe;+BAAf,eAAe"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}