appium-espresso-driver 8.5.1 → 8.5.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.
Files changed (54) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/lib/commands/app-install.d.ts +5 -1
  3. package/build/lib/commands/app-install.d.ts.map +1 -1
  4. package/build/lib/commands/app-install.js +8 -2
  5. package/build/lib/commands/app-install.js.map +1 -1
  6. package/build/lib/utils/index.d.ts +3 -3
  7. package/build/lib/utils/index.d.ts.map +1 -1
  8. package/build/lib/utils/index.js +10 -17
  9. package/build/lib/utils/index.js.map +1 -1
  10. package/espresso-server/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk +0 -0
  11. package/espresso-server/app/build.gradle.kts +10 -8
  12. package/espresso-server/buildSrc/.gradle/9.5.1/executionHistory/executionHistory.bin +0 -0
  13. package/espresso-server/buildSrc/.gradle/9.5.1/executionHistory/executionHistory.lock +0 -0
  14. package/espresso-server/buildSrc/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  15. package/espresso-server/buildSrc/.gradle/buildOutputCleanup/cache.properties +1 -1
  16. package/espresso-server/buildSrc/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  17. package/espresso-server/buildSrc/.gradle/file-system.probe +0 -0
  18. package/espresso-server/buildSrc/build/classes/kotlin/main/io/appium/espressoserver/gradle/CapabilityVersionKt$withCapabilityVersion$1.class +0 -0
  19. package/espresso-server/buildSrc/build/classes/kotlin/main/io/appium/espressoserver/gradle/CapabilityVersionKt.class +0 -0
  20. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  21. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  22. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  23. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  24. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  25. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  26. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  27. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  28. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  29. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  30. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  31. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  32. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  33. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  34. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  35. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  36. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  37. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  38. package/espresso-server/buildSrc/build/kotlin/compileKotlin/cacheable/last-build.bin +0 -0
  39. package/espresso-server/buildSrc/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  40. package/espresso-server/buildSrc/build/libs/buildSrc.jar +0 -0
  41. package/espresso-server/buildSrc/src/main/kotlin/io/appium/espressoserver/gradle/CapabilityVersion.kt +12 -0
  42. package/espresso-server/gradle/libs.versions.toml +20 -0
  43. package/espresso-server/gradle.properties +1 -1
  44. package/espresso-server/library/build.gradle.kts +55 -32
  45. package/espresso-server/library/src/main/java/io/appium/espressoserver/lib/helpers/Version.kt +1 -1
  46. package/lib/commands/app-install.ts +14 -2
  47. package/lib/utils/index.ts +3 -3
  48. package/npm-shrinkwrap.json +8 -8
  49. package/package.json +1 -1
  50. package/build/lib/commands/app.d.ts +0 -8
  51. package/build/lib/commands/app.d.ts.map +0 -1
  52. package/build/lib/commands/app.js +0 -11
  53. package/build/lib/commands/app.js.map +0 -1
  54. package/lib/commands/app.ts +0 -14
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [8.5.2](https://github.com/appium/appium-espresso-driver/compare/v8.5.1...v8.5.2) (2026-05-23)
2
+
3
+ ### Bug Fixes
4
+
5
+ * Kotlin dependencies resolution by dependabot ([#1165](https://github.com/appium/appium-espresso-driver/issues/1165)) ([b109b3d](https://github.com/appium/appium-espresso-driver/commit/b109b3d3bcf7b533adcb94331aeb4e4cd01d9621))
6
+
1
7
  ## [8.5.1](https://github.com/appium/appium-espresso-driver/compare/v8.5.0...v8.5.1) (2026-05-21)
2
8
 
3
9
  ### Miscellaneous Chores
@@ -1,8 +1,12 @@
1
- import type { PostProcessOptions, PostProcessResult } from '@appium/types';
1
+ import type { PostProcessOptions, PostProcessResult, CachedAppInfo } from '@appium/types';
2
2
  import type { EspressoDriver } from '../driver';
3
3
  export declare const APK_EXT = ".apk";
4
4
  export declare const AAB_EXT = ".aab";
5
5
  export declare const SUPPORTED_EXTENSIONS: string[];
6
+ /** Cached app entry with integrity path (narrower than {@link CachedAppInfo}). */
7
+ export type StrictCachedAppInfo = CachedAppInfo & {
8
+ fullPath: string;
9
+ };
6
10
  /** Whether the session targets an app already installed on the device (no app path). */
7
11
  export declare function isAppOnDevice(driver: EspressoDriver): boolean;
8
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"app-install.d.ts","sourceRoot":"","sources":["../../../lib/commands/app-install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAKzE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAI9C,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,oBAAoB,UAAqB,CAAC;AAEvD,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAG7D;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBrF;AAED,mFAAmF;AACnF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAiExC;AAED,wDAAwD;AACxD,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDjE"}
1
+ {"version":3,"file":"app-install.d.ts","sourceRoot":"","sources":["../../../lib/commands/app-install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AAKxF,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAI9C,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,oBAAoB,UAAqB,CAAC;AAEvD,kFAAkF;AAClF,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAAC;AAErE,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAG7D;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBrF;AAED,mFAAmF;AACnF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAiExC;AAED,wDAAwD;AACxD,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDjE"}
@@ -12,8 +12,8 @@ const appium_android_driver_1 = require("appium-android-driver");
12
12
  const support_1 = require("appium/support");
13
13
  const io_appium_settings_1 = require("io.appium.settings");
14
14
  const node_path_1 = __importDefault(require("node:path"));
15
- const app_1 = require("./app");
16
15
  const server_1 = require("./server");
16
+ const utils_1 = require("../utils");
17
17
  exports.APK_EXT = '.apk';
18
18
  exports.AAB_EXT = '.aab';
19
19
  exports.SUPPORTED_EXTENSIONS = [exports.APK_EXT, exports.AAB_EXT];
@@ -69,7 +69,7 @@ async function onPostConfigureApp(opts) {
69
69
  const extractUniversalApk = async (shouldExtract, p) => shouldExtract ? p : await this.adb.extractUniversalApk(p);
70
70
  let pathInCache = null;
71
71
  let isResultAppPathAlreadyCached = false;
72
- if ((0, app_1.isCachedAppInfo)(cachedAppInfo)) {
72
+ if (isCachedAppInfo(cachedAppInfo)) {
73
73
  const packageHash = await support_1.fs.hash(appPath);
74
74
  if (packageHash === cachedAppInfo.packageHash && (await support_1.fs.exists(cachedAppInfo.fullPath))) {
75
75
  this.log.info(`Using '${cachedAppInfo.fullPath}' which is cached from '${appPath}'`);
@@ -154,4 +154,10 @@ async function initAUT() {
154
154
  this.log.warn(`Cannot add server packages to the Doze whitelist. Original error: ` + (stderr || message));
155
155
  }
156
156
  }
157
+ /** Type guard for cached app metadata shape. */
158
+ function isCachedAppInfo(value) {
159
+ return ((0, utils_1.isPlainObject)(value) &&
160
+ typeof value.packageHash === 'string' &&
161
+ typeof value.fullPath === 'string');
162
+ }
157
163
  //# sourceMappingURL=app-install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-install.js","sourceRoot":"","sources":["../../../lib/commands/app-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-install.js","sourceRoot":"","sources":["../../../lib/commands/app-install.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export * from './app';
2
- export * from './package';
3
- export * from './predicates';
1
+ export { qualifyActivityName } from './app';
2
+ export { getPackageInfo, getPackageInfoSync } from './package';
3
+ export { isPlainObject, isEmptyValue, escapeRegExp } from './predicates';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAE,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAC,aAAa,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC"}
@@ -1,20 +1,13 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./app"), exports);
18
- __exportStar(require("./package"), exports);
19
- __exportStar(require("./predicates"), exports);
3
+ exports.escapeRegExp = exports.isEmptyValue = exports.isPlainObject = exports.getPackageInfoSync = exports.getPackageInfo = exports.qualifyActivityName = void 0;
4
+ var app_1 = require("./app");
5
+ Object.defineProperty(exports, "qualifyActivityName", { enumerable: true, get: function () { return app_1.qualifyActivityName; } });
6
+ var package_1 = require("./package");
7
+ Object.defineProperty(exports, "getPackageInfo", { enumerable: true, get: function () { return package_1.getPackageInfo; } });
8
+ Object.defineProperty(exports, "getPackageInfoSync", { enumerable: true, get: function () { return package_1.getPackageInfoSync; } });
9
+ var predicates_1 = require("./predicates");
10
+ Object.defineProperty(exports, "isPlainObject", { enumerable: true, get: function () { return predicates_1.isPlainObject; } });
11
+ Object.defineProperty(exports, "isEmptyValue", { enumerable: true, get: function () { return predicates_1.isEmptyValue; } });
12
+ Object.defineProperty(exports, "escapeRegExp", { enumerable: true, get: function () { return predicates_1.escapeRegExp; } });
20
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,4CAA0B;AAC1B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/utils/index.ts"],"names":[],"mappings":";;;AAAA,6BAA0C;AAAlC,0GAAA,mBAAmB,OAAA;AAC3B,qCAA6D;AAArD,yGAAA,cAAc,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAC1C,2CAAuE;AAA/D,2GAAA,aAAa,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,0GAAA,YAAY,OAAA"}
@@ -2,7 +2,7 @@ plugins {
2
2
  alias(libs.plugins.android.application)
3
3
  }
4
4
 
5
- import io.appium.espressoserver.gradle.resolveCapabilityVersion
5
+ import io.appium.espressoserver.gradle.withCapabilityVersion
6
6
  import io.appium.espressoserver.jvmtarget.AppiumJvmTarget
7
7
  import org.gradle.api.GradleException
8
8
  import org.jetbrains.kotlin.gradle.dsl.JvmTarget
@@ -19,10 +19,6 @@ val appiumJvmTarget: String by project
19
19
  val useComposeLibrary: Boolean =
20
20
  (findProperty("appiumComposeSupport") as String?)?.equals("false", ignoreCase = true) != true
21
21
 
22
- // Align androidTest dependency versions with :library when Espresso driver passes -PappiumJUnitVersion / -PappiumAndroidxTestVersion.
23
- val junitVersion = resolveCapabilityVersion("appiumJUnitVersion", libs.versions.junit.get())
24
- val androidxTestVersion = resolveCapabilityVersion("appiumAndroidxTestVersion", libs.versions.androidxTest.get())
25
-
26
22
  android {
27
23
  compileSdk = appiumCompileSdk.toInt()
28
24
  buildToolsVersion = appiumBuildTools
@@ -102,9 +98,15 @@ kotlin {
102
98
 
103
99
  dependencies {
104
100
  androidTestImplementation(project(":library"))
105
- androidTestImplementation("junit:junit:$junitVersion")
106
- androidTestImplementation("androidx.test:core:$androidxTestVersion")
107
- androidTestImplementation("androidx.test:runner:$androidxTestVersion")
101
+ androidTestImplementation(libs.junit) {
102
+ withCapabilityVersion(project, "appiumJUnitVersion", libs.versions.junit.get())
103
+ }
104
+ androidTestImplementation(libs.androidx.test.core) {
105
+ withCapabilityVersion(project, "appiumAndroidxTestVersion", libs.versions.androidxTest.get())
106
+ }
107
+ androidTestImplementation(libs.androidx.test.runner) {
108
+ withCapabilityVersion(project, "appiumAndroidxTestVersion", libs.versions.androidxTest.get())
109
+ }
108
110
 
109
111
  // additionalAndroidTestDependencies placeholder (don't change or delete this line)
110
112
  }
@@ -1,2 +1,2 @@
1
- #Thu May 21 17:25:25 UTC 2026
1
+ #Sat May 23 08:42:33 UTC 2026
2
2
  gradle.version=9.5.1
@@ -1,6 +1,7 @@
1
1
  package io.appium.espressoserver.gradle
2
2
 
3
3
  import org.gradle.api.Project
4
+ import org.gradle.api.artifacts.ExternalModuleDependency
4
5
 
5
6
  /**
6
7
  * Resolves a dependency version from an optional Gradle property (e.g. `-PappiumKotlin=…` from the
@@ -10,3 +11,14 @@ fun Project.resolveCapabilityVersion(propertyName: String, catalogDefaultVersion
10
11
  val fromCapability = findProperty(propertyName)?.toString()?.trim()
11
12
  return if (!fromCapability.isNullOrEmpty()) fromCapability else catalogDefaultVersion
12
13
  }
14
+
15
+ /**
16
+ * Applies a resolved capability version to a version-catalog dependency so `-Pappium*` overrides still work.
17
+ */
18
+ fun ExternalModuleDependency.withCapabilityVersion(
19
+ project: Project,
20
+ propertyName: String,
21
+ catalogDefaultVersion: String,
22
+ ) {
23
+ version { require(project.resolveCapabilityVersion(propertyName, catalogDefaultVersion)) }
24
+ }
@@ -11,6 +11,26 @@ robolectric = "4.9.2"
11
11
  junit = "4.13.2"
12
12
  uiautomator = "2.2.0"
13
13
 
14
+ [libraries]
15
+ androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "annotation" }
16
+ androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidxTest" }
17
+ androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidxTest" }
18
+ androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidxTest" }
19
+ androidx-test-espresso-contrib = { group = "androidx.test.espresso", name = "espresso-contrib", version.ref = "espresso" }
20
+ androidx-test-espresso-web = { group = "androidx.test.espresso", name = "espresso-web", version.ref = "espresso" }
21
+ androidx-test-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" }
22
+ androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test", version.ref = "composeUiTest" }
23
+ androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4", version.ref = "composeUiTest" }
24
+ gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
25
+ nanohttpd-webserver = { group = "org.nanohttpd", name = "nanohttpd-webserver", version.ref = "nanohttpd" }
26
+ kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
27
+ kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
28
+ kotlin-stdlib-jdk8 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" }
29
+ kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" }
30
+ kotlin-test-junit = { group = "org.jetbrains.kotlin", name = "kotlin-test-junit", version.ref = "kotlin" }
31
+ junit = { group = "junit", name = "junit", version.ref = "junit" }
32
+ robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" }
33
+
14
34
  [plugins]
15
35
  android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
16
36
  android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
@@ -34,4 +34,4 @@ appiumSourceCompatibility=VERSION_1_8
34
34
  appiumTargetCompatibility=VERSION_1_8
35
35
  appiumJvmTarget=1.8
36
36
 
37
- # Dependency and plugin versions for Dependabot live in gradle/libs.versions.toml
37
+ # Dependency and plugin versions (catalog [libraries]/[plugins]) live in gradle/libs.versions.toml
@@ -4,6 +4,7 @@ plugins {
4
4
  }
5
5
 
6
6
  import io.appium.espressoserver.gradle.resolveCapabilityVersion
7
+ import io.appium.espressoserver.gradle.withCapabilityVersion
7
8
  import io.appium.espressoserver.jvmtarget.AppiumJvmTarget
8
9
  import org.gradle.api.GradleException
9
10
  import org.jetbrains.kotlin.gradle.dsl.JvmTarget
@@ -16,19 +17,6 @@ val appiumSourceCompatibility: String by project
16
17
  val appiumTargetCompatibility: String by project
17
18
  val appiumJvmTarget: String by project
18
19
 
19
- // Versions: defaults from gradle/libs.versions.toml; -Pappium* overrides from Espresso driver (toolsVersions / capabilities).
20
- val kotlinVersion = resolveCapabilityVersion("appiumKotlin", libs.versions.kotlin.get())
21
- val annotationVersion = resolveCapabilityVersion("appiumAnnotationVersion", libs.versions.annotation.get())
22
- val composeUiTestVersion =
23
- resolveCapabilityVersion("appiumComposeVersion", libs.versions.composeUiTest.get())
24
- val gsonVersion = resolveCapabilityVersion("appiumGsonVersion", libs.versions.gson.get())
25
- val espressoVersion = resolveCapabilityVersion("appiumEspressoVersion", libs.versions.espresso.get())
26
- val nanohttpdVersion = resolveCapabilityVersion("appiumNanohttpdVersion", libs.versions.nanohttpd.get())
27
- val androidxTestVersion = resolveCapabilityVersion("appiumAndroidxTestVersion", libs.versions.androidxTest.get())
28
- val robolectricVersion = resolveCapabilityVersion("appiumRobolectricVersion", libs.versions.robolectric.get())
29
- val junitVersion = resolveCapabilityVersion("appiumJUnitVersion", libs.versions.junit.get())
30
- val uiautomatorVersion = resolveCapabilityVersion("appiumUiAutomatorVersion", libs.versions.uiautomator.get())
31
-
32
20
  android {
33
21
  compileSdk = appiumCompileSdk.toInt()
34
22
  buildToolsVersion = appiumBuildTools
@@ -106,39 +94,74 @@ publishing {
106
94
  dependencies {
107
95
  // additionalAppDependencies placeholder (don't change or delete this line)
108
96
 
109
- api("androidx.annotation:annotation:$annotationVersion")
110
- api("androidx.test.espresso:espresso-contrib:$espressoVersion") {
97
+ api(libs.androidx.annotation) {
98
+ withCapabilityVersion(project, "appiumAnnotationVersion", libs.versions.annotation.get())
99
+ }
100
+ api(libs.androidx.test.espresso.contrib) {
101
+ withCapabilityVersion(project, "appiumEspressoVersion", libs.versions.espresso.get())
111
102
  // Exclude transitive dependencies to limit conflicts with AndroidX libraries from AUT.
112
103
  // Link to PR with fix and discussion https://github.com/appium/appium-espresso-driver/pull/596
113
104
  isTransitive = false
114
105
  }
115
- api("androidx.test.espresso:espresso-web:$espressoVersion") {
106
+ api(libs.androidx.test.espresso.web) {
107
+ withCapabilityVersion(project, "appiumEspressoVersion", libs.versions.espresso.get())
116
108
  because("Espresso Web Atoms support (mobile: webAtoms)")
117
109
  }
118
- api("androidx.test.uiautomator:uiautomator:$uiautomatorVersion") {
110
+ api(libs.androidx.test.uiautomator) {
111
+ withCapabilityVersion(project, "appiumUiAutomatorVersion", libs.versions.uiautomator.get())
119
112
  because("UiAutomator support (mobile: uiautomator)")
120
113
  }
121
- api("androidx.test:core:$androidxTestVersion")
122
- api("androidx.test:runner:$androidxTestVersion")
123
- api("androidx.test:rules:$androidxTestVersion")
124
- api("com.google.code.gson:gson:$gsonVersion")
125
- api("org.nanohttpd:nanohttpd-webserver:$nanohttpdVersion")
126
- api("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
127
- api("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
128
- add("composeOnApi", "androidx.compose.ui:ui-test:$composeUiTestVersion") {
114
+ api(libs.androidx.test.core) {
115
+ withCapabilityVersion(project, "appiumAndroidxTestVersion", libs.versions.androidxTest.get())
116
+ }
117
+ api(libs.androidx.test.runner) {
118
+ withCapabilityVersion(project, "appiumAndroidxTestVersion", libs.versions.androidxTest.get())
119
+ }
120
+ api(libs.androidx.test.rules) {
121
+ withCapabilityVersion(project, "appiumAndroidxTestVersion", libs.versions.androidxTest.get())
122
+ }
123
+ api(libs.gson) {
124
+ withCapabilityVersion(project, "appiumGsonVersion", libs.versions.gson.get())
125
+ }
126
+ api(libs.nanohttpd.webserver) {
127
+ withCapabilityVersion(project, "appiumNanohttpdVersion", libs.versions.nanohttpd.get())
128
+ }
129
+ api(libs.kotlin.stdlib) {
130
+ withCapabilityVersion(project, "appiumKotlin", libs.versions.kotlin.get())
131
+ }
132
+ api(libs.kotlin.reflect) {
133
+ withCapabilityVersion(project, "appiumKotlin", libs.versions.kotlin.get())
134
+ }
135
+ "composeOnApi"(libs.androidx.compose.ui.test) {
136
+ withCapabilityVersion(project, "appiumComposeVersion", libs.versions.composeUiTest.get())
129
137
  because("Android Compose support")
130
138
  }
131
- add("composeOnApi", "androidx.compose.ui:ui-test-junit4:$composeUiTestVersion") {
139
+ "composeOnApi"(libs.androidx.compose.ui.test.junit4) {
140
+ withCapabilityVersion(project, "appiumComposeVersion", libs.versions.composeUiTest.get())
132
141
  because("Android Compose support")
133
142
  }
134
143
 
135
- testImplementation("androidx.test.espresso:espresso-contrib:$espressoVersion")
136
- testImplementation("junit:junit:$junitVersion")
137
- testImplementation("org.robolectric:robolectric:$robolectricVersion")
138
- testImplementation("org.jetbrains.kotlin:kotlin-test:$kotlinVersion")
139
- testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlinVersion")
144
+ testImplementation(libs.androidx.test.espresso.contrib) {
145
+ withCapabilityVersion(project, "appiumEspressoVersion", libs.versions.espresso.get())
146
+ }
147
+ testImplementation(libs.junit) {
148
+ withCapabilityVersion(project, "appiumJUnitVersion", libs.versions.junit.get())
149
+ }
150
+ testImplementation(libs.robolectric) {
151
+ withCapabilityVersion(project, "appiumRobolectricVersion", libs.versions.robolectric.get())
152
+ }
153
+ testImplementation(libs.kotlin.test) {
154
+ withCapabilityVersion(project, "appiumKotlin", libs.versions.kotlin.get())
155
+ }
156
+ testImplementation(libs.kotlin.test.junit) {
157
+ withCapabilityVersion(project, "appiumKotlin", libs.versions.kotlin.get())
158
+ }
140
159
 
141
160
  constraints {
142
- api("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
161
+ api(libs.kotlin.stdlib.jdk8) {
162
+ version {
163
+ require(resolveCapabilityVersion("appiumKotlin", libs.versions.kotlin.get()))
164
+ }
165
+ }
143
166
  }
144
167
  }
@@ -2,6 +2,6 @@ package io.appium.espressoserver.lib.helpers
2
2
 
3
3
  // This value is updated automatically by the NPM versioning script
4
4
  // It should be in sync with the NPM module version from package.json
5
- private const val VERSION = "8.5.1"
5
+ private const val VERSION = "8.5.2"
6
6
 
7
7
  fun getEspressoServerVersion() = VERSION
@@ -1,16 +1,19 @@
1
- import type {PostProcessOptions, PostProcessResult} from '@appium/types';
1
+ import type {PostProcessOptions, PostProcessResult, CachedAppInfo} from '@appium/types';
2
2
  import {utils} from 'appium-android-driver';
3
3
  import {fs, tempDir, zip} from 'appium/support';
4
4
  import {SETTINGS_HELPER_ID} from 'io.appium.settings';
5
5
  import path from 'node:path';
6
6
  import type {EspressoDriver} from '../driver';
7
- import {isCachedAppInfo} from './app';
8
7
  import {TEST_APK_PKG} from './server';
8
+ import {isPlainObject} from '../utils';
9
9
 
10
10
  export const APK_EXT = '.apk';
11
11
  export const AAB_EXT = '.aab';
12
12
  export const SUPPORTED_EXTENSIONS = [APK_EXT, AAB_EXT];
13
13
 
14
+ /** Cached app entry with integrity path (narrower than {@link CachedAppInfo}). */
15
+ export type StrictCachedAppInfo = CachedAppInfo & {fullPath: string};
16
+
14
17
  /** Whether the session targets an app already installed on the device (no app path). */
15
18
  export function isAppOnDevice(driver: EspressoDriver): boolean {
16
19
  const appPackage = driver.opts.appPackage;
@@ -175,3 +178,12 @@ export async function initAUT(this: EspressoDriver): Promise<void> {
175
178
  );
176
179
  }
177
180
  }
181
+
182
+ /** Type guard for cached app metadata shape. */
183
+ function isCachedAppInfo(value: unknown): value is StrictCachedAppInfo {
184
+ return (
185
+ isPlainObject(value) &&
186
+ typeof value.packageHash === 'string' &&
187
+ typeof value.fullPath === 'string'
188
+ );
189
+ }
@@ -1,3 +1,3 @@
1
- export * from './app';
2
- export * from './package';
3
- export * from './predicates';
1
+ export {qualifyActivityName} from './app';
2
+ export {getPackageInfo, getPackageInfoSync} from './package';
3
+ export {isPlainObject, isEmptyValue, escapeRegExp} from './predicates';
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "appium-espresso-driver",
3
- "version": "8.5.1",
3
+ "version": "8.5.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-espresso-driver",
9
- "version": "8.5.1",
9
+ "version": "8.5.2",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "appium-adb": "^15.0.0",
@@ -1425,9 +1425,9 @@
1425
1425
  }
1426
1426
  },
1427
1427
  "node_modules/es-object-atoms": {
1428
- "version": "1.1.1",
1429
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
1430
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
1428
+ "version": "1.1.2",
1429
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz",
1430
+ "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==",
1431
1431
  "license": "MIT",
1432
1432
  "dependencies": {
1433
1433
  "es-errors": "^1.3.0"
@@ -3022,9 +3022,9 @@
3022
3022
  "optional": true
3023
3023
  },
3024
3024
  "node_modules/semver": {
3025
- "version": "7.8.0",
3026
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
3027
- "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
3025
+ "version": "7.8.1",
3026
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz",
3027
+ "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==",
3028
3028
  "license": "ISC",
3029
3029
  "bin": {
3030
3030
  "semver": "bin/semver.js"
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "automated testing",
8
8
  "android"
9
9
  ],
10
- "version": "8.5.1",
10
+ "version": "8.5.2",
11
11
  "author": "Appium Contributors",
12
12
  "license": "Apache-2.0",
13
13
  "repository": {
@@ -1,8 +0,0 @@
1
- import type { CachedAppInfo } from '@appium/types';
2
- /** Cached app entry with integrity path (narrower than {@link CachedAppInfo}). */
3
- export type StrictCachedAppInfo = CachedAppInfo & {
4
- fullPath: string;
5
- };
6
- /** Type guard for cached app metadata shape. */
7
- export declare function isCachedAppInfo(value: unknown): value is StrictCachedAppInfo;
8
- //# sourceMappingURL=app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../lib/commands/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAGjD,kFAAkF;AAClF,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAAC;AAErE,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAM5E"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCachedAppInfo = isCachedAppInfo;
4
- const utils_1 = require("../utils");
5
- /** Type guard for cached app metadata shape. */
6
- function isCachedAppInfo(value) {
7
- return ((0, utils_1.isPlainObject)(value) &&
8
- typeof value.packageHash === 'string' &&
9
- typeof value.fullPath === 'string');
10
- }
11
- //# sourceMappingURL=app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../lib/commands/app.ts"],"names":[],"mappings":";;AAOA,0CAMC;AAZD,oCAAuC;AAKvC,gDAAgD;AAChD,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,IAAA,qBAAa,EAAC,KAAK,CAAC;QACpB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CACnC,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- import type {CachedAppInfo} from '@appium/types';
2
- import {isPlainObject} from '../utils';
3
-
4
- /** Cached app entry with integrity path (narrower than {@link CachedAppInfo}). */
5
- export type StrictCachedAppInfo = CachedAppInfo & {fullPath: string};
6
-
7
- /** Type guard for cached app metadata shape. */
8
- export function isCachedAppInfo(value: unknown): value is StrictCachedAppInfo {
9
- return (
10
- isPlainObject(value) &&
11
- typeof value.packageHash === 'string' &&
12
- typeof value.fullPath === 'string'
13
- );
14
- }