appium-uiautomator2-driver 2.43.4 → 2.44.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.
- package/CHANGELOG.md +14 -0
- package/build/lib/commands/screenshot.d.ts.map +1 -1
- package/build/lib/commands/screenshot.js +2 -1
- package/build/lib/commands/screenshot.js.map +1 -1
- package/build/lib/driver.d.ts +3 -0
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +105 -85
- package/build/lib/driver.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/commands/screenshot.js +2 -1
- package/lib/driver.ts +113 -97
- package/npm-shrinkwrap.json +60 -43
- package/package.json +2 -2
|
@@ -83,7 +83,8 @@ export async function mobileScreenshots(opts = {}) {
|
|
|
83
83
|
);
|
|
84
84
|
|
|
85
85
|
const {displayId} = opts;
|
|
86
|
-
|
|
86
|
+
// @ts-ignore isNaN works properly here
|
|
87
|
+
const displayIdStr = isNaN(displayId) ? null : `${displayId}`;
|
|
87
88
|
if (displayIdStr) {
|
|
88
89
|
if (!infos[displayIdStr]) {
|
|
89
90
|
throw new Error(
|
package/lib/driver.ts
CHANGED
|
@@ -520,129 +520,103 @@ class AndroidUiautomator2Driver
|
|
|
520
520
|
}
|
|
521
521
|
}
|
|
522
522
|
|
|
523
|
-
async
|
|
524
|
-
caps: Uiautomator2StartSessionOpts
|
|
525
|
-
): Promise<Uiautomator2SessionCaps> {
|
|
526
|
-
// get device udid for this session
|
|
527
|
-
const {udid, emPort} = await this.getDeviceInfoFromCaps();
|
|
528
|
-
this.opts.udid = udid;
|
|
529
|
-
// @ts-expect-error do not put random stuff on opts
|
|
530
|
-
this.opts.emPort = emPort;
|
|
531
|
-
|
|
532
|
-
// now that we know our java version and device info, we can create our
|
|
533
|
-
// ADB instance
|
|
534
|
-
this.adb = await this.createADB();
|
|
535
|
-
|
|
523
|
+
async performSessionPreExecSetup(): Promise<StringRecord|undefined> {
|
|
536
524
|
const apiLevel = await this.adb.getApiLevel();
|
|
537
|
-
|
|
538
525
|
if (apiLevel < 21) {
|
|
539
|
-
this.log.errorAndThrow(
|
|
526
|
+
throw this.log.errorAndThrow(
|
|
540
527
|
'UIAutomator2 is only supported since Android 5.0 (Lollipop). ' +
|
|
541
528
|
'You could still use other supported backends in order to automate older Android versions.'
|
|
542
529
|
);
|
|
543
530
|
}
|
|
544
531
|
|
|
532
|
+
const preflightPromises: Promise<any>[] = [];
|
|
545
533
|
if (apiLevel >= 28) {
|
|
546
534
|
// Android P
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
'
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
535
|
+
preflightPromises.push((async () => {
|
|
536
|
+
this.log.info('Relaxing hidden api policy');
|
|
537
|
+
try {
|
|
538
|
+
await this.adb.setHiddenApiPolicy('1', !!this.opts.ignoreHiddenApiPolicyError);
|
|
539
|
+
} catch (err) {
|
|
540
|
+
throw this.log.errorAndThrow(
|
|
541
|
+
'Hidden API policy (https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces) cannot be enabled. ' +
|
|
542
|
+
'This might be happening because the device under test is not configured properly. ' +
|
|
543
|
+
'Please check https://github.com/appium/appium/issues/13802 for more details. ' +
|
|
544
|
+
'You could also set the "appium:ignoreHiddenApiPolicyError" capability to true in order to ' +
|
|
545
|
+
'ignore this error, which might later lead to unexpected crashes or behavior of ' +
|
|
546
|
+
`the automation server. Original error: ${err.message}`
|
|
547
|
+
);
|
|
548
|
+
}
|
|
549
|
+
})());
|
|
560
550
|
}
|
|
561
|
-
|
|
562
|
-
// check if we have to enable/disable gps before running the application
|
|
563
551
|
if (util.hasValue(this.opts.gpsEnabled)) {
|
|
564
|
-
|
|
552
|
+
preflightPromises.push((async () => {
|
|
565
553
|
this.log.info(
|
|
566
554
|
`Trying to ${this.opts.gpsEnabled ? 'enable' : 'disable'} gps location provider`
|
|
567
555
|
);
|
|
568
|
-
await this.adb.toggleGPSLocationProvider(this.opts.gpsEnabled);
|
|
569
|
-
}
|
|
570
|
-
this.log.warn(`Sorry! 'gpsEnabled' capability is only available for emulators`);
|
|
571
|
-
}
|
|
556
|
+
await this.adb.toggleGPSLocationProvider(Boolean(this.opts.gpsEnabled));
|
|
557
|
+
})());
|
|
572
558
|
}
|
|
573
|
-
|
|
574
|
-
// get appPackage et al from manifest if necessary
|
|
575
|
-
const appInfo = await this.getLaunchInfo();
|
|
576
|
-
// and get it onto our 'opts' object so we use it from now on
|
|
577
|
-
this.opts = {...this.opts, ...(appInfo ?? {})};
|
|
578
|
-
|
|
579
|
-
// set actual device name, udid, platform version, screen size, screen density, model and manufacturer details
|
|
580
|
-
const sessionInfo: Uiautomator2SessionInfo = {
|
|
581
|
-
deviceName: this.adb.curDeviceId!,
|
|
582
|
-
deviceUDID: this.opts.udid!,
|
|
583
|
-
};
|
|
584
|
-
|
|
585
|
-
const capsWithSessionInfo = {
|
|
586
|
-
...caps,
|
|
587
|
-
...sessionInfo,
|
|
588
|
-
};
|
|
589
|
-
|
|
590
|
-
// start an avd, set the language/locale, pick an emulator, etc...
|
|
591
559
|
if (this.opts.hideKeyboard) {
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
// Prepare the device by forwarding the UiAutomator2 port
|
|
597
|
-
// This call mutates this.systemPort if it is not set explicitly
|
|
598
|
-
await this.allocateSystemPort();
|
|
599
|
-
|
|
600
|
-
// Prepare the device by forwarding the UiAutomator2 MJPEG server port (if
|
|
601
|
-
// applicable)
|
|
602
|
-
await this.allocateMjpegServerPort();
|
|
603
|
-
|
|
604
|
-
// set up the modified UiAutomator2 server etc
|
|
605
|
-
const uiautomator2 = await this.initUiAutomator2Server();
|
|
606
|
-
|
|
607
|
-
// Should be after installing io.appium.settings in helpers.initDevice
|
|
608
|
-
if (this.opts.disableWindowAnimation && (await this.adb.getApiLevel()) < 26) {
|
|
609
|
-
// API level 26 is Android 8.0.
|
|
610
|
-
// Granting android.permission.SET_ANIMATION_SCALE is necessary to handle animations under API level 26
|
|
611
|
-
// Read https://github.com/appium/appium/pull/11640#issuecomment-438260477
|
|
612
|
-
// `--no-window-animation` works over Android 8 to disable all of animations
|
|
613
|
-
if (await this.adb.isAnimationOn()) {
|
|
614
|
-
this.log.info('Disabling animation via io.appium.settings');
|
|
615
|
-
await this.settingsApp.setAnimationState(false);
|
|
616
|
-
this._wasWindowAnimationDisabled = true;
|
|
617
|
-
} else {
|
|
618
|
-
this.log.info('Window animation is already disabled');
|
|
619
|
-
}
|
|
560
|
+
preflightPromises.push((async () => {
|
|
561
|
+
this._originalIme = await this.adb.defaultIME();
|
|
562
|
+
})());
|
|
620
563
|
}
|
|
564
|
+
let appInfo;
|
|
565
|
+
preflightPromises.push((async () => {
|
|
566
|
+
// get appPackage et al from manifest if necessary
|
|
567
|
+
appInfo = await this.getLaunchInfo();
|
|
568
|
+
})());
|
|
569
|
+
// start settings app, set the language/locale, start logcat etc...
|
|
570
|
+
preflightPromises.push(this.initDevice());
|
|
621
571
|
|
|
622
|
-
|
|
623
|
-
// prepare our actual AUT, get it on the device, etc...
|
|
624
|
-
await this.initAUT();
|
|
572
|
+
await B.all(preflightPromises);
|
|
625
573
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
574
|
+
this.opts = {...this.opts, ...(appInfo ?? {})};
|
|
575
|
+
return appInfo;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
async performSessionExecution(capsWithSessionInfo: StringRecord): Promise<void> {
|
|
579
|
+
await B.all([
|
|
580
|
+
// Prepare the device by forwarding the UiAutomator2 port
|
|
581
|
+
// This call mutates this.systemPort if it is not set explicitly
|
|
582
|
+
this.allocateSystemPort(),
|
|
583
|
+
// Prepare the device by forwarding the UiAutomator2 MJPEG server port (if
|
|
584
|
+
// applicable)
|
|
585
|
+
this.allocateMjpegServerPort(),
|
|
586
|
+
]);
|
|
587
|
+
|
|
588
|
+
const [uiautomator2,] = await B.all([
|
|
589
|
+
// set up the modified UiAutomator2 server etc
|
|
590
|
+
this.initUiAutomator2Server(),
|
|
591
|
+
(async () => {
|
|
592
|
+
// Should be after installing io.appium.settings
|
|
593
|
+
if (this.opts.disableWindowAnimation && await this.adb.getApiLevel() < 26) {
|
|
594
|
+
// API level 26 is Android 8.0.
|
|
595
|
+
// Granting android.permission.SET_ANIMATION_SCALE is necessary to handle animations under API level 26
|
|
596
|
+
// Read https://github.com/appium/appium/pull/11640#issuecomment-438260477
|
|
597
|
+
// `--no-window-animation` works over Android 8 to disable all of animations
|
|
598
|
+
if (await this.adb.isAnimationOn()) {
|
|
599
|
+
this.log.info('Disabling animation via io.appium.settings');
|
|
600
|
+
await this.settingsApp.setAnimationState(false);
|
|
601
|
+
this._wasWindowAnimationDisabled = true;
|
|
602
|
+
} else {
|
|
603
|
+
this.log.info('Window animation is already disabled');
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
})(),
|
|
607
|
+
// set up app under test
|
|
608
|
+
// prepare our actual AUT, get it on the device, etc...
|
|
609
|
+
this.initAUT(),
|
|
610
|
+
]);
|
|
630
611
|
|
|
631
612
|
// launch UiAutomator2 and wait till its online and we have a session
|
|
632
613
|
await uiautomator2.startSession(capsWithSessionInfo);
|
|
633
614
|
// now that everything has started successfully, turn on proxying so all
|
|
634
615
|
// subsequent session requests go straight to/from uiautomator2
|
|
635
616
|
this.jwpProxyActive = true;
|
|
617
|
+
}
|
|
636
618
|
|
|
637
|
-
|
|
638
|
-
try {
|
|
639
|
-
return await this.getDeviceDetails();
|
|
640
|
-
} catch (e) {
|
|
641
|
-
this.log.warn(`Cannot fetch device details. Original error: ${e.message}`);
|
|
642
|
-
return {};
|
|
643
|
-
}
|
|
644
|
-
})();
|
|
645
|
-
|
|
619
|
+
async performSessionPostExecSetup(): Promise<void> {
|
|
646
620
|
// Unlock the device after the session is started.
|
|
647
621
|
if (!this.opts.skipUnlock) {
|
|
648
622
|
// unlock the device to prepare it for testing
|
|
@@ -672,6 +646,48 @@ class AndroidUiautomator2Driver
|
|
|
672
646
|
this.log.info(`Setting auto webview to context '${viewName}' with timeout ${timeout}ms`);
|
|
673
647
|
await retryInterval(timeout / 500, 500, this.setContext.bind(this), viewName);
|
|
674
648
|
}
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
async startUiAutomator2Session(
|
|
652
|
+
caps: Uiautomator2StartSessionOpts
|
|
653
|
+
): Promise<Uiautomator2SessionCaps> {
|
|
654
|
+
// get device udid for this session
|
|
655
|
+
const {udid, emPort} = await this.getDeviceInfoFromCaps();
|
|
656
|
+
this.opts.udid = udid;
|
|
657
|
+
// @ts-expect-error do not put random stuff on opts
|
|
658
|
+
this.opts.emPort = emPort;
|
|
659
|
+
|
|
660
|
+
// now that we know our java version and device info, we can create our
|
|
661
|
+
// ADB instance
|
|
662
|
+
this.adb = await this.createADB();
|
|
663
|
+
|
|
664
|
+
const appInfo = await this.performSessionPreExecSetup();
|
|
665
|
+
// set actual device name, udid, platform version, screen size, screen density, model and manufacturer details
|
|
666
|
+
const sessionInfo: Uiautomator2SessionInfo = {
|
|
667
|
+
deviceName: this.adb.curDeviceId!,
|
|
668
|
+
deviceUDID: this.opts.udid!,
|
|
669
|
+
};
|
|
670
|
+
const capsWithSessionInfo = {
|
|
671
|
+
...caps,
|
|
672
|
+
...sessionInfo,
|
|
673
|
+
};
|
|
674
|
+
// Adding AUT package name in the capabilities if package name not exist in caps
|
|
675
|
+
if (!capsWithSessionInfo.appPackage && appInfo) {
|
|
676
|
+
capsWithSessionInfo.appPackage = appInfo.appPackage;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
await this.performSessionExecution(capsWithSessionInfo);
|
|
680
|
+
|
|
681
|
+
const deviceInfoPromise: Promise<Uiautomator2DeviceDetails|EmptyObject> = (async () => {
|
|
682
|
+
try {
|
|
683
|
+
return await this.getDeviceDetails();
|
|
684
|
+
} catch (e) {
|
|
685
|
+
this.log.warn(`Cannot fetch device details. Original error: ${e.message}`);
|
|
686
|
+
return {};
|
|
687
|
+
}
|
|
688
|
+
})();
|
|
689
|
+
|
|
690
|
+
await this.performSessionPostExecSetup();
|
|
675
691
|
|
|
676
692
|
return {...capsWithSessionInfo, ...(await deviceInfoPromise)};
|
|
677
693
|
}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-uiautomator2-driver",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.44.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "appium-uiautomator2-driver",
|
|
9
|
-
"version": "2.
|
|
9
|
+
"version": "2.44.1",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"appium-adb": "^12.0.0",
|
|
13
|
-
"appium-android-driver": "^8.
|
|
13
|
+
"appium-android-driver": "^8.2.0",
|
|
14
14
|
"appium-chromedriver": "^5.6.28",
|
|
15
15
|
"appium-uiautomator2-server": "^6.0.7",
|
|
16
16
|
"asyncbox": "^3.0.0",
|
|
@@ -877,9 +877,9 @@
|
|
|
877
877
|
}
|
|
878
878
|
},
|
|
879
879
|
"node_modules/@types/express-serve-static-core": {
|
|
880
|
-
"version": "4.17.
|
|
881
|
-
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.
|
|
882
|
-
"integrity": "sha512-
|
|
880
|
+
"version": "4.17.43",
|
|
881
|
+
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz",
|
|
882
|
+
"integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==",
|
|
883
883
|
"dependencies": {
|
|
884
884
|
"@types/node": "*",
|
|
885
885
|
"@types/qs": "*",
|
|
@@ -960,9 +960,9 @@
|
|
|
960
960
|
}
|
|
961
961
|
},
|
|
962
962
|
"node_modules/@types/node": {
|
|
963
|
-
"version": "20.11.
|
|
964
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.
|
|
965
|
-
"integrity": "sha512-
|
|
963
|
+
"version": "20.11.16",
|
|
964
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
|
|
965
|
+
"integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==",
|
|
966
966
|
"dependencies": {
|
|
967
967
|
"undici-types": "~5.26.4"
|
|
968
968
|
}
|
|
@@ -1227,9 +1227,9 @@
|
|
|
1227
1227
|
}
|
|
1228
1228
|
},
|
|
1229
1229
|
"node_modules/appium-android-driver": {
|
|
1230
|
-
"version": "8.
|
|
1231
|
-
"resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-8.
|
|
1232
|
-
"integrity": "sha512-
|
|
1230
|
+
"version": "8.2.0",
|
|
1231
|
+
"resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-8.2.0.tgz",
|
|
1232
|
+
"integrity": "sha512-bHz7o+HT2jjJ/b398rRdM2QCu3dPyrkVALOU1SrUxQa18n3PIIRquQENINyhsKQChvi8uAFrDJtD8XOd618eLw==",
|
|
1233
1233
|
"dependencies": {
|
|
1234
1234
|
"@appium/support": "^4.2.0",
|
|
1235
1235
|
"@colors/colors": "^1.6.0",
|
|
@@ -1443,9 +1443,9 @@
|
|
|
1443
1443
|
}
|
|
1444
1444
|
},
|
|
1445
1445
|
"node_modules/b4a": {
|
|
1446
|
-
"version": "1.6.
|
|
1447
|
-
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.
|
|
1448
|
-
"integrity": "sha512-
|
|
1446
|
+
"version": "1.6.6",
|
|
1447
|
+
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
|
|
1448
|
+
"integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg=="
|
|
1449
1449
|
},
|
|
1450
1450
|
"node_modules/balanced-match": {
|
|
1451
1451
|
"version": "1.0.2",
|
|
@@ -1623,13 +1623,17 @@
|
|
|
1623
1623
|
}
|
|
1624
1624
|
},
|
|
1625
1625
|
"node_modules/call-bind": {
|
|
1626
|
-
"version": "1.0.
|
|
1627
|
-
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.
|
|
1628
|
-
"integrity": "sha512-
|
|
1626
|
+
"version": "1.0.6",
|
|
1627
|
+
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz",
|
|
1628
|
+
"integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
|
|
1629
1629
|
"dependencies": {
|
|
1630
|
+
"es-errors": "^1.3.0",
|
|
1630
1631
|
"function-bind": "^1.1.2",
|
|
1631
|
-
"get-intrinsic": "^1.2.
|
|
1632
|
-
"set-function-length": "^1.
|
|
1632
|
+
"get-intrinsic": "^1.2.3",
|
|
1633
|
+
"set-function-length": "^1.2.0"
|
|
1634
|
+
},
|
|
1635
|
+
"engines": {
|
|
1636
|
+
"node": ">= 0.4"
|
|
1633
1637
|
},
|
|
1634
1638
|
"funding": {
|
|
1635
1639
|
"url": "https://github.com/sponsors/ljharb"
|
|
@@ -2009,13 +2013,14 @@
|
|
|
2009
2013
|
}
|
|
2010
2014
|
},
|
|
2011
2015
|
"node_modules/define-data-property": {
|
|
2012
|
-
"version": "1.1.
|
|
2013
|
-
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.
|
|
2014
|
-
"integrity": "sha512-
|
|
2016
|
+
"version": "1.1.2",
|
|
2017
|
+
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz",
|
|
2018
|
+
"integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
|
|
2015
2019
|
"dependencies": {
|
|
2016
|
-
"
|
|
2020
|
+
"es-errors": "^1.3.0",
|
|
2021
|
+
"get-intrinsic": "^1.2.2",
|
|
2017
2022
|
"gopd": "^1.0.1",
|
|
2018
|
-
"has-property-descriptors": "^1.0.
|
|
2023
|
+
"has-property-descriptors": "^1.0.1"
|
|
2019
2024
|
},
|
|
2020
2025
|
"engines": {
|
|
2021
2026
|
"node": ">= 0.4"
|
|
@@ -2110,15 +2115,23 @@
|
|
|
2110
2115
|
"is-arrayish": "^0.2.1"
|
|
2111
2116
|
}
|
|
2112
2117
|
},
|
|
2118
|
+
"node_modules/es-errors": {
|
|
2119
|
+
"version": "1.3.0",
|
|
2120
|
+
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
|
|
2121
|
+
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
|
|
2122
|
+
"engines": {
|
|
2123
|
+
"node": ">= 0.4"
|
|
2124
|
+
}
|
|
2125
|
+
},
|
|
2113
2126
|
"node_modules/es6-error": {
|
|
2114
2127
|
"version": "4.1.1",
|
|
2115
2128
|
"resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
|
|
2116
2129
|
"integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="
|
|
2117
2130
|
},
|
|
2118
2131
|
"node_modules/escalade": {
|
|
2119
|
-
"version": "3.1.
|
|
2120
|
-
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.
|
|
2121
|
-
"integrity": "sha512-
|
|
2132
|
+
"version": "3.1.2",
|
|
2133
|
+
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
|
|
2134
|
+
"integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
|
|
2122
2135
|
"engines": {
|
|
2123
2136
|
"node": ">=6"
|
|
2124
2137
|
}
|
|
@@ -2513,15 +2526,19 @@
|
|
|
2513
2526
|
}
|
|
2514
2527
|
},
|
|
2515
2528
|
"node_modules/get-intrinsic": {
|
|
2516
|
-
"version": "1.2.
|
|
2517
|
-
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.
|
|
2518
|
-
"integrity": "sha512-
|
|
2529
|
+
"version": "1.2.4",
|
|
2530
|
+
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
|
2531
|
+
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
|
2519
2532
|
"dependencies": {
|
|
2533
|
+
"es-errors": "^1.3.0",
|
|
2520
2534
|
"function-bind": "^1.1.2",
|
|
2521
2535
|
"has-proto": "^1.0.1",
|
|
2522
2536
|
"has-symbols": "^1.0.3",
|
|
2523
2537
|
"hasown": "^2.0.0"
|
|
2524
2538
|
},
|
|
2539
|
+
"engines": {
|
|
2540
|
+
"node": ">= 0.4"
|
|
2541
|
+
},
|
|
2525
2542
|
"funding": {
|
|
2526
2543
|
"url": "https://github.com/sponsors/ljharb"
|
|
2527
2544
|
}
|
|
@@ -3217,9 +3234,9 @@
|
|
|
3217
3234
|
}
|
|
3218
3235
|
},
|
|
3219
3236
|
"node_modules/moment-timezone": {
|
|
3220
|
-
"version": "0.5.
|
|
3221
|
-
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.
|
|
3222
|
-
"integrity": "sha512-
|
|
3237
|
+
"version": "0.5.45",
|
|
3238
|
+
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz",
|
|
3239
|
+
"integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
|
|
3223
3240
|
"dependencies": {
|
|
3224
3241
|
"moment": "^2.29.4"
|
|
3225
3242
|
},
|
|
@@ -4187,9 +4204,9 @@
|
|
|
4187
4204
|
}
|
|
4188
4205
|
},
|
|
4189
4206
|
"node_modules/streamx": {
|
|
4190
|
-
"version": "2.15.
|
|
4191
|
-
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.
|
|
4192
|
-
"integrity": "sha512-
|
|
4207
|
+
"version": "2.15.7",
|
|
4208
|
+
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.7.tgz",
|
|
4209
|
+
"integrity": "sha512-NPEKS5+yjyo597eafGbKW5ujh7Sm6lDLHZQd/lRSz6S0VarpADBJItqfB4PnwpS+472oob1GX5cCY9vzfJpHUA==",
|
|
4193
4210
|
"dependencies": {
|
|
4194
4211
|
"fast-fifo": "^1.1.0",
|
|
4195
4212
|
"queue-tick": "^1.0.1"
|
|
@@ -4376,9 +4393,9 @@
|
|
|
4376
4393
|
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
|
|
4377
4394
|
},
|
|
4378
4395
|
"node_modules/type-fest": {
|
|
4379
|
-
"version": "4.10.
|
|
4380
|
-
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.
|
|
4381
|
-
"integrity": "sha512-
|
|
4396
|
+
"version": "4.10.2",
|
|
4397
|
+
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz",
|
|
4398
|
+
"integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==",
|
|
4382
4399
|
"engines": {
|
|
4383
4400
|
"node": ">=16"
|
|
4384
4401
|
},
|
|
@@ -4570,9 +4587,9 @@
|
|
|
4570
4587
|
}
|
|
4571
4588
|
},
|
|
4572
4589
|
"node_modules/winston-transport": {
|
|
4573
|
-
"version": "4.
|
|
4574
|
-
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.
|
|
4575
|
-
"integrity": "sha512-
|
|
4590
|
+
"version": "4.7.0",
|
|
4591
|
+
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz",
|
|
4592
|
+
"integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==",
|
|
4576
4593
|
"dependencies": {
|
|
4577
4594
|
"logform": "^2.3.2",
|
|
4578
4595
|
"readable-stream": "^3.6.0",
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"automated testing",
|
|
8
8
|
"android"
|
|
9
9
|
],
|
|
10
|
-
"version": "2.
|
|
10
|
+
"version": "2.44.1",
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/appium/appium-uiautomator2-driver/issues"
|
|
13
13
|
},
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"appium-adb": "^12.0.0",
|
|
60
|
-
"appium-android-driver": "^8.
|
|
60
|
+
"appium-android-driver": "^8.2.0",
|
|
61
61
|
"appium-chromedriver": "^5.6.28",
|
|
62
62
|
"appium-uiautomator2-server": "^6.0.7",
|
|
63
63
|
"asyncbox": "^3.0.0",
|