appium-android-driver 12.6.0 → 12.6.2

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.
@@ -25,48 +25,24 @@ exports.PIN_UNLOCK_KEY_EVENT = 'pinWithKeyEvent';
25
25
  exports.PASSWORD_UNLOCK = 'password';
26
26
  exports.PATTERN_UNLOCK = 'pattern';
27
27
  exports.FINGERPRINT_UNLOCK = 'fingerprint';
28
- const UNLOCK_TYPES = /** @type {const} */ ([
28
+ const UNLOCK_TYPES = [
29
29
  exports.PIN_UNLOCK,
30
30
  exports.PIN_UNLOCK_KEY_EVENT,
31
31
  exports.PASSWORD_UNLOCK,
32
32
  exports.PATTERN_UNLOCK,
33
33
  exports.FINGERPRINT_UNLOCK,
34
- ]);
34
+ ];
35
35
  exports.KEYCODE_NUMPAD_ENTER = 66;
36
36
  exports.UNLOCK_WAIT_TIME = 100;
37
37
  exports.INPUT_KEYS_WAIT_TIME = 100;
38
38
  const NUMBER_ZERO_KEYCODE = 7;
39
39
  const TOUCH_DELAY_MS = 1000;
40
40
  /**
41
+ * Converts an unlock type to a credential type string.
41
42
  *
42
- * @param {any} value
43
- * @returns {value is string}
44
- */
45
- function isNonEmptyString(value) {
46
- return typeof value === 'string' && value !== '';
47
- }
48
- /**
49
- * Wait for the display to be unlocked.
50
- * Some devices automatically accept typed 'pin' and 'password' code
51
- * without pressing the Enter key. But some devices need it.
52
- * This method waits a few seconds first for such automatic acceptance case.
53
- * If the device is still locked, then this method will try to send
54
- * the enter key code.
55
- *
56
- * @param {import('appium-adb').ADB} adb The instance of ADB
57
- */
58
- async function waitForUnlock(adb) {
59
- await (0, asyncbox_1.sleep)(exports.UNLOCK_WAIT_TIME);
60
- if (!(await adb.isScreenLocked())) {
61
- return;
62
- }
63
- await adb.keyevent(exports.KEYCODE_NUMPAD_ENTER);
64
- await (0, asyncbox_1.sleep)(exports.UNLOCK_WAIT_TIME);
65
- }
66
- /**
67
- *
68
- * @param {import('../types').UnlockType} unlockType
69
- * @returns {string}
43
+ * @param unlockType - The unlock type
44
+ * @returns The credential type string
45
+ * @throws {Error} If the unlock type is not known
70
46
  */
71
47
  function toCredentialType(unlockType) {
72
48
  const result = {
@@ -81,9 +57,11 @@ function toCredentialType(unlockType) {
81
57
  throw new Error(`Unlock type '${unlockType}' is not known`);
82
58
  }
83
59
  /**
84
- * @template {AndroidDriverCaps} T
85
- * @param {T} caps
86
- * @returns {T}
60
+ * Validates unlock capabilities and returns them if valid.
61
+ *
62
+ * @param caps - The capabilities to validate
63
+ * @returns The validated capabilities
64
+ * @throws {Error} If the capabilities are invalid
87
65
  */
88
66
  function validateUnlockCapabilities(caps) {
89
67
  const { unlockKey, unlockType } = caps ?? {};
@@ -117,8 +95,9 @@ function validateUnlockCapabilities(caps) {
117
95
  return caps;
118
96
  }
119
97
  /**
120
- * @this {AndroidDriver}
121
- * @param {import('../types').FastUnlockOptions} opts
98
+ * Performs a fast unlock using ADB commands.
99
+ *
100
+ * @param opts - Fast unlock options with credential and credential type
122
101
  */
123
102
  async function fastUnlock(opts) {
124
103
  const { credential, credentialType } = opts;
@@ -143,34 +122,36 @@ async function fastUnlock(opts) {
143
122
  }
144
123
  }
145
124
  /**
125
+ * Encodes a password by replacing spaces with %s.
146
126
  *
147
- * @param {string} key
148
- * @returns {string}
127
+ * @param key - The password key
128
+ * @returns The encoded password
149
129
  */
150
130
  function encodePassword(key) {
151
131
  return `${key}`.replace(/\s/gi, '%s');
152
132
  }
153
133
  /**
134
+ * Converts a string key to an array of characters.
154
135
  *
155
- * @param {string} key
156
- * @returns {string[]}
136
+ * @param key - The key string
137
+ * @returns An array of characters
157
138
  */
158
139
  function stringKeyToArr(key) {
159
140
  return `${key}`.trim().replace(/\s+/g, '').split(/\s*/);
160
141
  }
161
142
  /**
162
- * @this {AndroidDriver}
163
- * @param {AndroidDriverCaps} capabilities
164
- * @returns {Promise<void>}
143
+ * Unlocks the device using fingerprint.
144
+ *
145
+ * @param capabilities - Driver capabilities containing unlockKey
165
146
  */
166
147
  async function fingerprintUnlock(capabilities) {
167
148
  await this.adb.fingerprint(String(capabilities.unlockKey));
168
149
  await (0, asyncbox_1.sleep)(exports.UNLOCK_WAIT_TIME);
169
150
  }
170
151
  /**
171
- * @this {AndroidDriver}
172
- * @param {AndroidDriverCaps} capabilities
173
- * @returns {Promise<void>}
152
+ * Unlocks the device using PIN by clicking on-screen buttons.
153
+ *
154
+ * @param capabilities - Driver capabilities containing unlockKey
174
155
  */
175
156
  async function pinUnlock(capabilities) {
176
157
  this.log.info(`Trying to unlock device using pin ${capabilities.unlockKey}`);
@@ -184,7 +165,9 @@ async function pinUnlock(capabilities) {
184
165
  const pins = {};
185
166
  for (const el of els) {
186
167
  const text = await this.getAttribute('text', support_1.util.unwrapElement(el));
187
- pins[text] = el;
168
+ if (text) {
169
+ pins[text] = el;
170
+ }
188
171
  }
189
172
  for (const pin of keys) {
190
173
  const el = pins[pin];
@@ -193,9 +176,9 @@ async function pinUnlock(capabilities) {
193
176
  await waitForUnlock(this.adb);
194
177
  }
195
178
  /**
196
- * @this {AndroidDriver}
197
- * @param {AndroidDriverCaps} capabilities
198
- * @returns {Promise<void>}
179
+ * Unlocks the device using PIN by sending key events.
180
+ *
181
+ * @param capabilities - Driver capabilities containing unlockKey
199
182
  */
200
183
  async function pinUnlockWithKeyEvent(capabilities) {
201
184
  this.log.info(`Trying to unlock device using pin with keycode ${capabilities.unlockKey}`);
@@ -211,9 +194,9 @@ async function pinUnlockWithKeyEvent(capabilities) {
211
194
  await waitForUnlock(this.adb);
212
195
  }
213
196
  /**
214
- * @this {AndroidDriver}
215
- * @param {AndroidDriverCaps} capabilities
216
- * @returns {Promise<void>}
197
+ * Unlocks the device using password.
198
+ *
199
+ * @param capabilities - Driver capabilities containing unlockKey
217
200
  */
218
201
  async function passwordUnlock(capabilities) {
219
202
  const { unlockKey } = capabilities;
@@ -230,11 +213,12 @@ async function passwordUnlock(capabilities) {
230
213
  await waitForUnlock(this.adb);
231
214
  }
232
215
  /**
216
+ * Calculates the position of a pattern key based on the initial position and piece size.
233
217
  *
234
- * @param {number} key
235
- * @param {import('@appium/types').Position} initPos
236
- * @param {number} piece
237
- * @returns {import('@appium/types').Position}
218
+ * @param key - The pattern key number (1-9)
219
+ * @param initPos - The initial position of the pattern view
220
+ * @param piece - The size of each pattern piece
221
+ * @returns The calculated position for the key
238
222
  */
239
223
  function getPatternKeyPosition(key, initPos, piece) {
240
224
  /*
@@ -253,18 +237,17 @@ function getPatternKeyPosition(key, initPos, piece) {
253
237
  };
254
238
  }
255
239
  /**
256
- * @param {string[]|number[]} keys
257
- * @param {import('@appium/types').Position} initPos
258
- * @param {number} piece
259
- * @returns {import('@appium/types').StringRecord[]}
240
+ * Generates pointer actions for pattern unlock gesture.
241
+ *
242
+ * @param keys - Array of pattern keys (string or number)
243
+ * @param initPos - The initial position of the pattern view
244
+ * @param piece - The size of each pattern piece
245
+ * @returns An array of W3C action objects for pattern unlock
260
246
  */
261
247
  function getPatternActions(keys, initPos, piece) {
262
- /** @type {import('@appium/types').StringRecord[]} */
263
248
  // https://www.w3.org/TR/webdriver2/#actions
264
249
  const pointerActions = [];
265
- /** @type {number[]} */
266
250
  const intKeys = keys.map((key) => (lodash_1.default.isString(key) ? lodash_1.default.parseInt(key) : key));
267
- /** @type {import('@appium/types').Position|undefined} */
268
251
  let lastPos;
269
252
  for (const key of intKeys) {
270
253
  const keyPos = getPatternKeyPosition(key, initPos, piece);
@@ -304,23 +287,27 @@ function getPatternActions(keys, initPos, piece) {
304
287
  type: 'pointerMove',
305
288
  duration: TOUCH_DELAY_MS,
306
289
  x: moveTo.x + lastPos.x,
307
- y: moveTo.y + lastPos.y
290
+ y: moveTo.y + lastPos.y,
308
291
  });
309
292
  lastPos = keyPos;
310
293
  }
311
294
  pointerActions.push({ type: 'pointerUp', button: 0 });
312
- return [{
295
+ return [
296
+ {
313
297
  type: 'pointer',
314
298
  id: 'patternUnlock',
315
299
  parameters: {
316
300
  pointerType: 'touch',
317
301
  },
318
302
  actions: pointerActions,
319
- }];
303
+ },
304
+ ];
320
305
  }
321
306
  /**
322
- * @this {AndroidDriver}
323
- * @param {number?} [timeoutMs=null]
307
+ * Verifies that the device has been unlocked.
308
+ *
309
+ * @param timeoutMs - Optional timeout in milliseconds (default: 2000)
310
+ * @throws {Error} If the device fails to unlock within the timeout
324
311
  */
325
312
  async function verifyUnlock(timeoutMs = null) {
326
313
  try {
@@ -335,8 +322,9 @@ async function verifyUnlock(timeoutMs = null) {
335
322
  this.log.info('The device has been successfully unlocked');
336
323
  }
337
324
  /**
338
- * @this {AndroidDriver}
339
- * @param {AndroidDriverCaps} capabilities
325
+ * Unlocks the device using pattern gesture.
326
+ *
327
+ * @param capabilities - Driver capabilities containing unlockKey
340
328
  */
341
329
  async function patternUnlock(capabilities) {
342
330
  const { unlockKey } = capabilities;
@@ -363,8 +351,30 @@ async function patternUnlock(capabilities) {
363
351
  // Waits a bit for the device to be unlocked
364
352
  await (0, asyncbox_1.sleep)(exports.UNLOCK_WAIT_TIME);
365
353
  }
354
+ // #region Private Functions
366
355
  /**
367
- * @typedef {import('@appium/types').Capabilities<import('../../constraints').AndroidDriverConstraints>} AndroidDriverCaps
368
- * @typedef {import('../../driver').AndroidDriver} AndroidDriver
356
+ * Type guard to check if a value is a non-empty string.
369
357
  */
358
+ function isNonEmptyString(value) {
359
+ return typeof value === 'string' && value !== '';
360
+ }
361
+ /**
362
+ * Waits for the display to be unlocked.
363
+ * Some devices automatically accept typed 'pin' and 'password' code
364
+ * without pressing the Enter key. But some devices need it.
365
+ * This method waits a few seconds first for such automatic acceptance case.
366
+ * If the device is still locked, then this method will try to send
367
+ * the enter key code.
368
+ *
369
+ * @param adb - The instance of ADB
370
+ */
371
+ async function waitForUnlock(adb) {
372
+ await (0, asyncbox_1.sleep)(exports.UNLOCK_WAIT_TIME);
373
+ if (!(await adb.isScreenLocked())) {
374
+ return;
375
+ }
376
+ await adb.keyevent(exports.KEYCODE_NUMPAD_ENTER);
377
+ await (0, asyncbox_1.sleep)(exports.UNLOCK_WAIT_TIME);
378
+ }
379
+ // #endregion
370
380
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../lib/commands/lock/helpers.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../lib/commands/lock/helpers.ts"],"names":[],"mappings":";;;;;;AAiCA,4CAWC;AASD,gEAoCC;AAOD,gCAmBC;AAQD,wCAEC;AAQD,wCAEC;AAOD,8CAMC;AAOD,8BAwBC;AAOD,sDAgBC;AAOD,wCAgBC;AAUD,sDAiBC;AAUD,8CA+DC;AAQD,oCAUC;AAOD,sCA+BC;AA7XD,6CAAqC;AACrC,uCAAiD;AACjD,oDAAuB;AAMV,QAAA,UAAU,GAAG,KAAK,CAAC;AACnB,QAAA,oBAAoB,GAAG,iBAAiB,CAAC;AACzC,QAAA,eAAe,GAAG,UAAU,CAAC;AAC7B,QAAA,cAAc,GAAG,SAAS,CAAC;AAC3B,QAAA,kBAAkB,GAAG,aAAa,CAAC;AAChD,MAAM,YAAY,GAAG;IACnB,kBAAU;IACV,4BAAoB;IACpB,uBAAe;IACf,sBAAc;IACd,0BAAkB;CACV,CAAC;AACE,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAC1B,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACvB,QAAA,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,UAAsB;IACrD,MAAM,MAAM,GAAG;QACb,CAAC,kBAAU,CAAC,EAAE,KAAK;QACnB,CAAC,4BAAoB,CAAC,EAAE,KAAK;QAC7B,CAAC,uBAAe,CAAC,EAAE,UAAU;QAC7B,CAAC,sBAAc,CAAC,EAAE,SAAS;KAC5B,CAAC,UAAU,CAAC,CAAC;IACd,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,gBAAgB,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,0BAA0B,CAA8B,IAAO;IAC7E,MAAM,EAAC,SAAS,EAAE,UAAU,EAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAC,kBAAU,EAAE,4BAAoB,EAAE,0BAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,qBAAqB,SAAS,+BAA+B,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,KAAK,sBAAc,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,qBAAqB,SAAS,2DAA2D,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,CAAC,IAAI,CAAC,gBAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,qBAAqB,SAAS,6DAA6D,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,KAAK,uBAAe,EAAE,CAAC;QAC1C,4EAA4E;QAC5E,YAAY;QACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,mDAAmD,SAAS,mBAAmB,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,wBAAwB,UAAU,KAAK;YACrC,kDAAkD,YAAY,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAsB,IAAuB;IAC3E,MAAM,EAAC,UAAU,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,cAAc,gBAAgB,UAAU,GAAG,CAAC,CAAC;IACjG,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACtD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC/C,6DAA6D;QAC7D,wDAAwD;QACxD,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CAErC,YAA+B;IAE/B,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,MAAM,IAAA,gBAAK,EAAC,wBAAgB,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,SAAS,CAE7B,YAA+B;IAE/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qCAAqC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,oCAAoC,EAAE,IAAI,CAAC,CAAC;IACrF,IAAI,gBAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,iCAAiC;QACjC,OAAO,MAAM,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,IAAI,CAAC,KAAK,CAAC,cAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,qBAAqB,CAEzC,YAA+B;IAE/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kDAAkD,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1F,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5D,8EAA8E;IAC9E,kEAAkE;IAClE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,mCAAmC;QACnC,yDAAyD;QACzD,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAElC,YAA+B;IAE/B,MAAM,EAAC,SAAS,EAAC,GAAG,YAAY,CAAC;IACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;IACjC,+BAA+B;IAC/B,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,8BAA8B;IAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7C,8EAA8E;IAC9E,MAAM,IAAA,gBAAK,EAAC,4BAAoB,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,4BAAoB,CAAC,CAAC,CAAC,CAAC;IAC1E,4CAA4C;IAC5C,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,GAAW,EAAE,OAAiB,EAAE,KAAa;IACjF;;;;;MAKE;IACF,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,KAAa,EAAE,EAAE,CACrD,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,KAAa,EAAE,EAAE,CACrD,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC;QAC9B,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,IAAyB,EACzB,OAAiB,EACjB,KAAa;IAEb,4CAA4C;IAC5C,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,OAA6B,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,cAAc,CAAC,IAAI,CACjB,EAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAC,EACzE,EAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAC,CACjC,CAAC;YACF,OAAO,GAAG,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC;YACjB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC;gBAC5B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC;gBAC5B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC;YACjB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC;gBAC5B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC;gBAC5B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QACD,cAAc,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,cAAc;YACxB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;YACvB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;SACxB,CAAC,CAAC;QACH,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IACpD,OAAO;QACL;YACE,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,eAAe;YACnB,UAAU,EAAE;gBACV,WAAW,EAAE,OAAO;aACrB;YACD,OAAO,EAAE,cAAc;SACxB;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAsB,YAA2B,IAAI;IACrF,IAAI,CAAC;QACH,MAAM,IAAA,2BAAgB,EAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE;YACrE,MAAM,EAAE,SAAS,IAAI,IAAI;YACzB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAEjC,YAA+B;IAE/B,MAAM,EAAC,SAAS,EAAC,GAAG,YAAY,CAAC;IACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;IACpE,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C;;;;;;;;MAQE;IACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAC/B,IAAI,EACJ,eAAe,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,qBAAqB,EAC5E,KAAK,CACN,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,yBAAyB;IACzB,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjE,kBAAkB;IAClB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACnC,4CAA4C;IAC5C,MAAM,IAAA,gBAAK,EAAC,wBAAgB,CAAC,CAAC;AAChC,CAAC;AAED,4BAA4B;AAE5B;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAU;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,aAAa,CAAC,GAAQ;IACnC,MAAM,IAAA,gBAAK,EAAC,wBAAgB,CAAC,CAAC;IAC9B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC,QAAQ,CAAC,4BAAoB,CAAC,CAAC;IACzC,MAAM,IAAA,gBAAK,EAAC,wBAAgB,CAAC,CAAC;AAChC,CAAC;AAED,aAAa"}
@@ -0,0 +1,147 @@
1
+ import B from 'bluebird';
2
+ import {
3
+ validateUnlockCapabilities,
4
+ FINGERPRINT_UNLOCK,
5
+ fastUnlock,
6
+ PIN_UNLOCK,
7
+ pinUnlock,
8
+ PIN_UNLOCK_KEY_EVENT,
9
+ pinUnlockWithKeyEvent,
10
+ PASSWORD_UNLOCK,
11
+ passwordUnlock,
12
+ PATTERN_UNLOCK,
13
+ patternUnlock,
14
+ fingerprintUnlock,
15
+ toCredentialType,
16
+ verifyUnlock,
17
+ } from './helpers';
18
+ import _ from 'lodash';
19
+ import type {AndroidDriver, AndroidDriverCaps} from '../../driver';
20
+ import type {UnlockType} from '../types';
21
+
22
+ /**
23
+ * Locks the device and optionally unlocks it after a specified number of seconds.
24
+ *
25
+ * @param seconds - Optional number of seconds to wait before unlocking. If not provided or invalid, the device remains locked.
26
+ */
27
+ export async function lock(this: AndroidDriver, seconds?: number): Promise<void> {
28
+ await this.adb.lock();
29
+ if (Number.isNaN(seconds ?? NaN)) {
30
+ return;
31
+ }
32
+
33
+ const floatSeconds = parseFloat(String(seconds));
34
+ if (floatSeconds <= 0) {
35
+ return;
36
+ }
37
+ await B.delay(1000 * floatSeconds);
38
+ await this.unlock();
39
+ }
40
+
41
+ /**
42
+ * Checks if the device screen is currently locked.
43
+ *
44
+ * @returns True if the screen is locked, false otherwise
45
+ */
46
+ export async function isLocked(this: AndroidDriver): Promise<boolean> {
47
+ return await this.adb.isScreenLocked();
48
+ }
49
+
50
+ /**
51
+ * Unlocks the device using the unlock options from session capabilities.
52
+ */
53
+ export async function unlock(this: AndroidDriver): Promise<void> {
54
+ await unlockWithOptions.bind(this)();
55
+ }
56
+
57
+ /**
58
+ * Unlocks the device with the specified options.
59
+ *
60
+ * @param key - The unlock key. The value of this key depends on the actual unlock type and
61
+ * could be a pin/password/pattern value or a biometric finger id.
62
+ * If not provided then the corresponding value from session capabilities is used.
63
+ * @param type - The unlock type. If not provided then the corresponding value from session capabilities is used.
64
+ * @param strategy - Setting it to 'uiautomator' will enforce the driver to avoid using special
65
+ * ADB shortcuts in order to speed up the unlock procedure. 'uiautomator' by default.
66
+ * @param timeoutMs - The maximum time in milliseconds to wait until the screen gets unlocked. 2000ms by default.
67
+ */
68
+ export async function mobileUnlock(
69
+ this: AndroidDriver,
70
+ key?: string,
71
+ type?: UnlockType,
72
+ strategy?: string,
73
+ timeoutMs?: number,
74
+ ): Promise<void> {
75
+ if (!key && !type) {
76
+ await this.unlock();
77
+ } else {
78
+ await unlockWithOptions.bind(this)({
79
+ unlockKey: key,
80
+ unlockType: type,
81
+ unlockStrategy: strategy,
82
+ unlockSuccessTimeout: timeoutMs,
83
+ } as AndroidDriverCaps);
84
+ }
85
+ }
86
+
87
+ // #region Internal Helpers
88
+
89
+ /**
90
+ * Unlocks the device with the specified capabilities.
91
+ *
92
+ * @param caps - Optional capabilities to use for unlocking. If not provided, uses session capabilities.
93
+ */
94
+ export async function unlockWithOptions(
95
+ this: AndroidDriver,
96
+ caps: AndroidDriverCaps | null = null,
97
+ ): Promise<void> {
98
+ if (!(await this.adb.isScreenLocked())) {
99
+ this.log.info('Screen already unlocked, doing nothing');
100
+ return;
101
+ }
102
+
103
+ const capabilities = caps ?? this.opts;
104
+ this.log.debug('Screen is locked, trying to unlock');
105
+ if (!capabilities.unlockType && !capabilities.unlockKey) {
106
+ this.log.info(
107
+ `Neither 'unlockType' nor 'unlockKey' capability is provided. ` +
108
+ `Assuming the device is locked with a simple lock screen.`,
109
+ );
110
+ await this.adb.dismissKeyguard();
111
+ return;
112
+ }
113
+
114
+ const validated = validateUnlockCapabilities(capabilities);
115
+ const {unlockType, unlockKey, unlockStrategy, unlockSuccessTimeout} = validated;
116
+ if (!unlockType) {
117
+ throw new Error('unlockType is required after validation');
118
+ }
119
+ if (
120
+ unlockKey &&
121
+ unlockType !== FINGERPRINT_UNLOCK &&
122
+ (_.isNil(unlockStrategy) || _.toLower(unlockStrategy) === 'locksettings') &&
123
+ (await this.adb.isLockManagementSupported())
124
+ ) {
125
+ await fastUnlock.bind(this)({
126
+ credential: unlockKey,
127
+ credentialType: toCredentialType(unlockType as UnlockType),
128
+ });
129
+ } else {
130
+ const unlockMethodMap: Record<string, (this: AndroidDriver, caps: AndroidDriverCaps) => Promise<void>> = {
131
+ [PIN_UNLOCK]: pinUnlock,
132
+ [PIN_UNLOCK_KEY_EVENT]: pinUnlockWithKeyEvent,
133
+ [PASSWORD_UNLOCK]: passwordUnlock,
134
+ [PATTERN_UNLOCK]: patternUnlock,
135
+ [FINGERPRINT_UNLOCK]: fingerprintUnlock,
136
+ };
137
+ const unlockMethod = unlockMethodMap[unlockType];
138
+ if (!unlockMethod) {
139
+ throw new Error(`Unknown unlock type: ${unlockType}`);
140
+ }
141
+ await unlockMethod.bind(this)(capabilities);
142
+ }
143
+ await verifyUnlock.bind(this)(unlockSuccessTimeout);
144
+ }
145
+
146
+ // #endregion
147
+