appium-uiautomator2-driver 3.9.2 → 3.9.4

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.
@@ -69,7 +69,7 @@ export async function mobilePressKey(opts) {
69
69
  export async function mobileType(opts) {
70
70
  const {text} = opts;
71
71
  if (_.isUndefined(text)) {
72
- throw this.log.errorAndThrow(`The 'text' argument is mandatory`);
72
+ throw this.log.errorWithException(`The 'text' argument is mandatory`);
73
73
  }
74
74
  return await this.settingsApp.typeUnicode(String(text));
75
75
  }
@@ -93,7 +93,7 @@ export interface DeepLinkOpts {
93
93
  /**
94
94
  * The name of the package to start the URI with.
95
95
  */
96
- package: string;
96
+ package?: string;
97
97
  /**
98
98
  * If `false` then adb won't wait for the started activity to return the control.
99
99
  * @defaultValue true
package/lib/driver.ts CHANGED
@@ -462,7 +462,7 @@ class AndroidUiautomator2Driver
462
462
  `Forwarding UiAutomator2 Server port ${DEVICE_PORT} to local port ${localPort}`
463
463
  );
464
464
  if ((await checkPortStatus(localPort, LOCALHOST_IP4)) === 'open') {
465
- throw this.log.errorAndThrow(
465
+ throw this.log.errorWithException(
466
466
  `UiAutomator2 Server cannot start because the local port #${localPort} is busy. ` +
467
467
  `Make sure the port you provide via 'systemPort' capability is not occupied. ` +
468
468
  `This situation might often be a result of an inaccurate sessions management, e.g. ` +
@@ -482,7 +482,7 @@ class AndroidUiautomator2Driver
482
482
  try {
483
483
  this.systemPort = await findAPortNotInUse(startPort, endPort);
484
484
  } catch (e) {
485
- throw this.log.errorAndThrow(
485
+ throw this.log.errorWithException(
486
486
  `Cannot find any free port in range ${startPort}..${endPort}}. ` +
487
487
  `Please set the available port number by providing the systemPort capability or ` +
488
488
  `double check the processes that are locking ports within this range and terminate ` +
@@ -528,7 +528,7 @@ class AndroidUiautomator2Driver
528
528
  async performSessionPreExecSetup(): Promise<StringRecord|undefined> {
529
529
  const apiLevel = await this.adb.getApiLevel();
530
530
  if (apiLevel < 21) {
531
- throw this.log.errorAndThrow(
531
+ throw this.log.errorWithException(
532
532
  'UIAutomator2 is only supported since Android 5.0 (Lollipop). ' +
533
533
  'You could still use other supported backends in order to automate older Android versions.'
534
534
  );
@@ -542,7 +542,7 @@ class AndroidUiautomator2Driver
542
542
  try {
543
543
  await this.adb.setHiddenApiPolicy('1', !!this.opts.ignoreHiddenApiPolicyError);
544
544
  } catch (err) {
545
- throw this.log.errorAndThrow(
545
+ throw this.log.errorWithException(
546
546
  'Hidden API policy (https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces) cannot be enabled. ' +
547
547
  'This might be happening because the device under test is not configured properly. ' +
548
548
  'Please check https://github.com/appium/appium/issues/13802 for more details. ' +
@@ -697,13 +697,10 @@ class AndroidUiautomator2Driver
697
697
  const uiautomator2Opts = {
698
698
  // @ts-expect-error FIXME: maybe `address` instead of `host`?
699
699
  host: this.opts.remoteAdbHost || this.opts.host || LOCALHOST_IP4,
700
- systemPort: this.systemPort,
700
+ systemPort: this.systemPort as number,
701
701
  devicePort: DEVICE_PORT,
702
702
  adb: this.adb,
703
- apk: this.opts.app,
704
- tmpDir: this.opts.tmpDir,
705
- appPackage: this.opts.appPackage,
706
- appActivity: this.opts.appActivity,
703
+ tmpDir: this.opts.tmpDir as string,
707
704
  disableWindowAnimation: !!this.opts.disableWindowAnimation,
708
705
  disableSuppressAccessibilityService: this.opts.disableSuppressAccessibilityService,
709
706
  readTimeout: this.opts.uiautomator2ServerReadTimeout,
@@ -753,7 +750,9 @@ class AndroidUiautomator2Driver
753
750
  try {
754
751
  otherApps = utils.parseArray(this.opts.otherApps);
755
752
  } catch (e) {
756
- throw this.log.errorAndThrow(`Could not parse "otherApps" capability: ${(e as Error).message}`);
753
+ throw this.log.errorWithException(
754
+ `Could not parse "otherApps" capability: ${(e as Error).message}`
755
+ );
757
756
  }
758
757
  otherApps = await B.all(
759
758
  otherApps.map((app) => this.helpers.configureApp(app, [APK_EXTENSION, APKS_EXTENSION]))
@@ -785,7 +784,7 @@ class AndroidUiautomator2Driver
785
784
  }
786
785
  } else {
787
786
  if (this.opts.fullReset) {
788
- throw this.log.errorAndThrow(
787
+ throw this.log.errorWithException(
789
788
  'Full reset requires an app capability, use fastReset if app is not provided'
790
789
  );
791
790
  }
@@ -946,7 +945,7 @@ class AndroidUiautomator2Driver
946
945
  async checkAppPresent() {
947
946
  this.log.debug('Checking whether app is actually present');
948
947
  if (!this.opts.app || !(await fs.exists(this.opts.app))) {
949
- throw this.log.errorAndThrow(`Could not find app apk at '${this.opts.app}'`);
948
+ throw this.log.errorWithException(`Could not find app apk at '${this.opts.app}'`);
950
949
  }
951
950
  }
952
951
 
@@ -22,6 +22,9 @@ class UIA2Proxy extends JWProxy {
22
22
  /** @type {boolean} */
23
23
  didInstrumentationExit;
24
24
 
25
+ /**
26
+ * @override
27
+ */
25
28
  async proxyCommand (url, method, body = null) {
26
29
  if (this.didInstrumentationExit) {
27
30
  throw new errors.InvalidContextError(
@@ -52,7 +55,12 @@ class UiAutomator2Server {
52
55
  /** @type {import('teen_process').SubProcess|null} */
53
56
  instrumentationProcess;
54
57
 
55
- constructor (log, opts = {}) {
58
+ /**
59
+ *
60
+ * @param {import('@appium/types').AppiumLogger} log
61
+ * @param {UiAutomator2ServerOptions} opts
62
+ */
63
+ constructor (log, opts) {
56
64
  for (let req of REQD_PARAMS) {
57
65
  if (!opts || !util.hasValue(opts[req])) {
58
66
  throw new Error(`Option '${req}' is required!`);
@@ -277,9 +285,11 @@ class UiAutomator2Server {
277
285
  intervalMs: 1000,
278
286
  });
279
287
  } catch (err) {
280
- this.log.errorAndThrow(`The instrumentation process cannot be initialized within ${timeout}ms timeout. `
288
+ throw this.log.errorWithException(
289
+ `The instrumentation process cannot be initialized within ${timeout}ms timeout. `
281
290
  + 'Make sure the application under test does not crash and investigate the logcat output. '
282
- + `You could also try to increase the value of 'uiautomator2ServerLaunchTimeout' capability`);
291
+ + `You could also try to increase the value of 'uiautomator2ServerLaunchTimeout' capability`
292
+ );
283
293
  }
284
294
  }
285
295
  if (!this.jwproxy.didInstrumentationExit) {
@@ -288,8 +298,10 @@ class UiAutomator2Server {
288
298
 
289
299
  retries++;
290
300
  if (retries >= maxRetries) {
291
- this.log.errorAndThrow('The instrumentation process cannot be initialized. '
292
- + 'Make sure the application under test does not crash and investigate the logcat output.');
301
+ throw this.log.errorWithException(
302
+ 'The instrumentation process cannot be initialized. '
303
+ + 'Make sure the application under test does not crash and investigate the logcat output.'
304
+ );
293
305
  }
294
306
  this.log.warn(`The instrumentation process has been unexpectedly terminated. `
295
307
  + `Retrying UiAutomator2 startup (#${retries} of ${maxRetries - 1})`);
@@ -430,3 +442,16 @@ class UiAutomator2Server {
430
442
 
431
443
  export { UiAutomator2Server, INSTRUMENTATION_TARGET, SERVER_PACKAGE_ID, SERVER_TEST_PACKAGE_ID };
432
444
  export default UiAutomator2Server;
445
+
446
+ /**
447
+ * @typedef {Object} UiAutomator2ServerOptions
448
+ * @property {import('appium-adb').ADB} adb
449
+ * @property {string} tmpDir
450
+ * @property {string} host
451
+ * @property {number} systemPort
452
+ * @property {number} devicePort
453
+ * @property {boolean} disableWindowAnimation
454
+ * @property {number} [readTimeout]
455
+ * @property {boolean} [disableSuppressAccessibilityService]
456
+ * @property {string} [apk]
457
+ */
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "appium-uiautomator2-driver",
3
- "version": "3.9.2",
3
+ "version": "3.9.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-uiautomator2-driver",
9
- "version": "3.9.2",
9
+ "version": "3.9.4",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
- "appium-adb": "^12.7.0",
12
+ "appium-adb": "^12.7.3",
13
13
  "appium-android-driver": "^9.14.2",
14
14
  "appium-uiautomator2-server": "^7.0.24",
15
15
  "asyncbox": "^3.0.0",
@@ -107,6 +107,18 @@
107
107
  "spdy": "4.0.2"
108
108
  }
109
109
  },
110
+ "node_modules/@appium/base-driver/node_modules/type-fest": {
111
+ "version": "4.30.0",
112
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz",
113
+ "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==",
114
+ "license": "(MIT OR CC0-1.0)",
115
+ "engines": {
116
+ "node": ">=16"
117
+ },
118
+ "funding": {
119
+ "url": "https://github.com/sponsors/sindresorhus"
120
+ }
121
+ },
110
122
  "node_modules/@appium/base-plugin": {
111
123
  "version": "2.2.50",
112
124
  "resolved": "https://registry.npmjs.org/@appium/base-plugin/-/base-plugin-2.2.50.tgz",
@@ -156,6 +168,18 @@
156
168
  "npm": ">=8"
157
169
  }
158
170
  },
171
+ "node_modules/@appium/docutils/node_modules/type-fest": {
172
+ "version": "4.30.0",
173
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz",
174
+ "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==",
175
+ "license": "(MIT OR CC0-1.0)",
176
+ "engines": {
177
+ "node": ">=16"
178
+ },
179
+ "funding": {
180
+ "url": "https://github.com/sponsors/sindresorhus"
181
+ }
182
+ },
159
183
  "node_modules/@appium/logger": {
160
184
  "version": "1.6.1",
161
185
  "resolved": "https://registry.npmjs.org/@appium/logger/-/logger-1.6.1.tgz",
@@ -254,6 +278,18 @@
254
278
  "sharp": "0.33.5"
255
279
  }
256
280
  },
281
+ "node_modules/@appium/support/node_modules/type-fest": {
282
+ "version": "4.30.0",
283
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz",
284
+ "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==",
285
+ "license": "(MIT OR CC0-1.0)",
286
+ "engines": {
287
+ "node": ">=16"
288
+ },
289
+ "funding": {
290
+ "url": "https://github.com/sponsors/sindresorhus"
291
+ }
292
+ },
257
293
  "node_modules/@appium/tsconfig": {
258
294
  "version": "0.3.3",
259
295
  "resolved": "https://registry.npmjs.org/@appium/tsconfig/-/tsconfig-0.3.3.tgz",
@@ -285,6 +321,18 @@
285
321
  "npm": ">=8"
286
322
  }
287
323
  },
324
+ "node_modules/@appium/types/node_modules/type-fest": {
325
+ "version": "4.30.0",
326
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz",
327
+ "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==",
328
+ "license": "(MIT OR CC0-1.0)",
329
+ "engines": {
330
+ "node": ">=16"
331
+ },
332
+ "funding": {
333
+ "url": "https://github.com/sponsors/sindresorhus"
334
+ }
335
+ },
288
336
  "node_modules/@babel/code-frame": {
289
337
  "version": "7.26.2",
290
338
  "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
@@ -631,9 +679,9 @@
631
679
  }
632
680
  },
633
681
  "node_modules/@types/node": {
634
- "version": "22.10.1",
635
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz",
636
- "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==",
682
+ "version": "22.10.2",
683
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz",
684
+ "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==",
637
685
  "license": "MIT",
638
686
  "dependencies": {
639
687
  "undici-types": "~6.20.0"
@@ -908,9 +956,9 @@
908
956
  }
909
957
  },
910
958
  "node_modules/appium-adb": {
911
- "version": "12.7.2",
912
- "resolved": "https://registry.npmjs.org/appium-adb/-/appium-adb-12.7.2.tgz",
913
- "integrity": "sha512-Sor/PuRzu6Z1mC9kG+MbY+iGIwcPjJeHEz7qZvoNz/W44gpPSlpPzH6V8jAiEDtC0nd8vrA5D6Fuh4sNiVJYzQ==",
959
+ "version": "12.7.4",
960
+ "resolved": "https://registry.npmjs.org/appium-adb/-/appium-adb-12.7.4.tgz",
961
+ "integrity": "sha512-qn5fdfV8voJs/0P8SuMjZIaPBtwF/n9YS93ibsV1Ljp0vk4xjcikwFd/bkVvT7YBfdS3UO1XKZSeFeQaWGUWDQ==",
914
962
  "license": "Apache-2.0",
915
963
  "dependencies": {
916
964
  "@appium/support": "^6.0.0",
@@ -930,9 +978,9 @@
930
978
  }
931
979
  },
932
980
  "node_modules/appium-android-driver": {
933
- "version": "9.14.5",
934
- "resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-9.14.5.tgz",
935
- "integrity": "sha512-M1jsES1juhZFtPUifDlOSEl9cbOYL+jPZwZwDprcV0Z7dYXa+lRoOIV68OQWmpXg0G39+TDz1fP7W0vhUzp3iA==",
981
+ "version": "9.14.6",
982
+ "resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-9.14.6.tgz",
983
+ "integrity": "sha512-JqHsB8ddUKopbqgvNyaP71TvbFGycmhRGEGDPZ6NvpgsUpcpM+tDPOOi3QQWpCkbc65w6RHNUP1bqAP95RFYBw==",
936
984
  "license": "Apache-2.0",
937
985
  "dependencies": {
938
986
  "@appium/support": "^6.0.0",
@@ -963,9 +1011,9 @@
963
1011
  }
964
1012
  },
965
1013
  "node_modules/appium-chromedriver": {
966
- "version": "6.1.9",
967
- "resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-6.1.9.tgz",
968
- "integrity": "sha512-PXl6/qmZM5KMnK+6hbJf/dFX2C4bsOLE1BErA+njyg++9QyQBzXsOIGId41Gx68rhalFoctU66qnuEe8HnYPTQ==",
1014
+ "version": "6.1.11",
1015
+ "resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-6.1.11.tgz",
1016
+ "integrity": "sha512-oXWCzkHznZ/K9RHGtGV/HS3KPqqsNqs3xyHuIeYaCgAPLqz9qNuAjpA/kp0n0PAlj6c65lODpUtT/oe9qLpISw==",
969
1017
  "license": "Apache-2.0",
970
1018
  "dependencies": {
971
1019
  "@appium/base-driver": "^9.1.0",
@@ -997,6 +1045,18 @@
997
1045
  "npm": ">=8"
998
1046
  }
999
1047
  },
1048
+ "node_modules/appium/node_modules/type-fest": {
1049
+ "version": "4.30.0",
1050
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz",
1051
+ "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==",
1052
+ "license": "(MIT OR CC0-1.0)",
1053
+ "engines": {
1054
+ "node": ">=16"
1055
+ },
1056
+ "funding": {
1057
+ "url": "https://github.com/sponsors/sindresorhus"
1058
+ }
1059
+ },
1000
1060
  "node_modules/archiver": {
1001
1061
  "version": "7.0.1",
1002
1062
  "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz",
@@ -1333,9 +1393,9 @@
1333
1393
  }
1334
1394
  },
1335
1395
  "node_modules/call-bind-apply-helpers": {
1336
- "version": "1.0.0",
1337
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.0.tgz",
1338
- "integrity": "sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==",
1396
+ "version": "1.0.1",
1397
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
1398
+ "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
1339
1399
  "license": "MIT",
1340
1400
  "dependencies": {
1341
1401
  "es-errors": "^1.3.0",
@@ -1345,6 +1405,22 @@
1345
1405
  "node": ">= 0.4"
1346
1406
  }
1347
1407
  },
1408
+ "node_modules/call-bound": {
1409
+ "version": "1.0.2",
1410
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.2.tgz",
1411
+ "integrity": "sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==",
1412
+ "license": "MIT",
1413
+ "dependencies": {
1414
+ "call-bind": "^1.0.8",
1415
+ "get-intrinsic": "^1.2.5"
1416
+ },
1417
+ "engines": {
1418
+ "node": ">= 0.4"
1419
+ },
1420
+ "funding": {
1421
+ "url": "https://github.com/sponsors/ljharb"
1422
+ }
1423
+ },
1348
1424
  "node_modules/chalk": {
1349
1425
  "version": "4.1.2",
1350
1426
  "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -1904,6 +1980,18 @@
1904
1980
  "node": ">= 0.4"
1905
1981
  }
1906
1982
  },
1983
+ "node_modules/es-object-atoms": {
1984
+ "version": "1.0.0",
1985
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
1986
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
1987
+ "license": "MIT",
1988
+ "dependencies": {
1989
+ "es-errors": "^1.3.0"
1990
+ },
1991
+ "engines": {
1992
+ "node": ">= 0.4"
1993
+ }
1994
+ },
1907
1995
  "node_modules/escalade": {
1908
1996
  "version": "3.2.0",
1909
1997
  "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -2222,19 +2310,21 @@
2222
2310
  }
2223
2311
  },
2224
2312
  "node_modules/get-intrinsic": {
2225
- "version": "1.2.5",
2226
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.5.tgz",
2227
- "integrity": "sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==",
2313
+ "version": "1.2.6",
2314
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz",
2315
+ "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==",
2228
2316
  "license": "MIT",
2229
2317
  "dependencies": {
2230
- "call-bind-apply-helpers": "^1.0.0",
2318
+ "call-bind-apply-helpers": "^1.0.1",
2231
2319
  "dunder-proto": "^1.0.0",
2232
2320
  "es-define-property": "^1.0.1",
2233
2321
  "es-errors": "^1.3.0",
2322
+ "es-object-atoms": "^1.0.0",
2234
2323
  "function-bind": "^1.1.2",
2235
2324
  "gopd": "^1.2.0",
2236
2325
  "has-symbols": "^1.1.0",
2237
- "hasown": "^2.0.2"
2326
+ "hasown": "^2.0.2",
2327
+ "math-intrinsics": "^1.0.0"
2238
2328
  },
2239
2329
  "engines": {
2240
2330
  "node": ">= 0.4"
@@ -2854,6 +2944,15 @@
2854
2944
  "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
2855
2945
  "license": "ISC"
2856
2946
  },
2947
+ "node_modules/math-intrinsics": {
2948
+ "version": "1.0.0",
2949
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz",
2950
+ "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==",
2951
+ "license": "MIT",
2952
+ "engines": {
2953
+ "node": ">= 0.4"
2954
+ }
2955
+ },
2857
2956
  "node_modules/media-typer": {
2858
2957
  "version": "0.3.0",
2859
2958
  "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -3989,15 +4088,69 @@
3989
4088
  }
3990
4089
  },
3991
4090
  "node_modules/side-channel": {
3992
- "version": "1.0.6",
3993
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
3994
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
4091
+ "version": "1.1.0",
4092
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
4093
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
3995
4094
  "license": "MIT",
3996
4095
  "dependencies": {
3997
- "call-bind": "^1.0.7",
3998
4096
  "es-errors": "^1.3.0",
3999
- "get-intrinsic": "^1.2.4",
4000
- "object-inspect": "^1.13.1"
4097
+ "object-inspect": "^1.13.3",
4098
+ "side-channel-list": "^1.0.0",
4099
+ "side-channel-map": "^1.0.1",
4100
+ "side-channel-weakmap": "^1.0.2"
4101
+ },
4102
+ "engines": {
4103
+ "node": ">= 0.4"
4104
+ },
4105
+ "funding": {
4106
+ "url": "https://github.com/sponsors/ljharb"
4107
+ }
4108
+ },
4109
+ "node_modules/side-channel-list": {
4110
+ "version": "1.0.0",
4111
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
4112
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
4113
+ "license": "MIT",
4114
+ "dependencies": {
4115
+ "es-errors": "^1.3.0",
4116
+ "object-inspect": "^1.13.3"
4117
+ },
4118
+ "engines": {
4119
+ "node": ">= 0.4"
4120
+ },
4121
+ "funding": {
4122
+ "url": "https://github.com/sponsors/ljharb"
4123
+ }
4124
+ },
4125
+ "node_modules/side-channel-map": {
4126
+ "version": "1.0.1",
4127
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
4128
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
4129
+ "license": "MIT",
4130
+ "dependencies": {
4131
+ "call-bound": "^1.0.2",
4132
+ "es-errors": "^1.3.0",
4133
+ "get-intrinsic": "^1.2.5",
4134
+ "object-inspect": "^1.13.3"
4135
+ },
4136
+ "engines": {
4137
+ "node": ">= 0.4"
4138
+ },
4139
+ "funding": {
4140
+ "url": "https://github.com/sponsors/ljharb"
4141
+ }
4142
+ },
4143
+ "node_modules/side-channel-weakmap": {
4144
+ "version": "1.0.2",
4145
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
4146
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
4147
+ "license": "MIT",
4148
+ "dependencies": {
4149
+ "call-bound": "^1.0.2",
4150
+ "es-errors": "^1.3.0",
4151
+ "get-intrinsic": "^1.2.5",
4152
+ "object-inspect": "^1.13.3",
4153
+ "side-channel-map": "^1.0.1"
4001
4154
  },
4002
4155
  "engines": {
4003
4156
  "node": ">= 0.4"
@@ -4163,9 +4316,9 @@
4163
4316
  }
4164
4317
  },
4165
4318
  "node_modules/streamx": {
4166
- "version": "2.21.0",
4167
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.0.tgz",
4168
- "integrity": "sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==",
4319
+ "version": "2.21.1",
4320
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz",
4321
+ "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==",
4169
4322
  "license": "MIT",
4170
4323
  "dependencies": {
4171
4324
  "fast-fifo": "^1.3.2",
@@ -4390,9 +4543,9 @@
4390
4543
  "license": "0BSD"
4391
4544
  },
4392
4545
  "node_modules/type-fest": {
4393
- "version": "4.30.0",
4394
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz",
4395
- "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==",
4546
+ "version": "4.30.1",
4547
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.1.tgz",
4548
+ "integrity": "sha512-ojFL7eDMX2NF0xMbDwPZJ8sb7ckqtlAi1GsmgsFXvErT9kFTk1r0DuQKvrCh73M6D4nngeHJmvogF9OluXs7Hw==",
4396
4549
  "license": "(MIT OR CC0-1.0)",
4397
4550
  "engines": {
4398
4551
  "node": ">=16"
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "automated testing",
8
8
  "android"
9
9
  ],
10
- "version": "3.9.2",
10
+ "version": "3.9.4",
11
11
  "bugs": {
12
12
  "url": "https://github.com/appium/appium-uiautomator2-driver/issues"
13
13
  },
@@ -56,7 +56,7 @@
56
56
  "singleQuote": true
57
57
  },
58
58
  "dependencies": {
59
- "appium-adb": "^12.7.0",
59
+ "appium-adb": "^12.7.3",
60
60
  "appium-android-driver": "^9.14.2",
61
61
  "appium-uiautomator2-server": "^7.0.24",
62
62
  "asyncbox": "^3.0.0",