@invarn/cibuild 2.6.7 → 2.6.9

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 (42) hide show
  1. package/dist/cli.cjs +10 -10
  2. package/dist/src/commands/android-java-version.test.js +55 -24
  3. package/dist/src/commands/android-scanner-java.test.d.ts +2 -0
  4. package/dist/src/commands/android-scanner-java.test.d.ts.map +1 -0
  5. package/dist/src/commands/android-scanner-java.test.js +130 -0
  6. package/dist/src/commands/android-scanner.d.ts +47 -22
  7. package/dist/src/commands/android-scanner.d.ts.map +1 -1
  8. package/dist/src/commands/android-scanner.js +187 -52
  9. package/dist/src/commands/ios-scanner.d.ts +42 -1
  10. package/dist/src/commands/ios-scanner.d.ts.map +1 -1
  11. package/dist/src/commands/ios-scanner.js +123 -3
  12. package/dist/src/commands/ios-scheme-ranking.test.d.ts +2 -0
  13. package/dist/src/commands/ios-scheme-ranking.test.d.ts.map +1 -0
  14. package/dist/src/commands/ios-scheme-ranking.test.js +152 -0
  15. package/dist/src/shared/detect-project.d.ts +15 -3
  16. package/dist/src/shared/detect-project.d.ts.map +1 -1
  17. package/dist/src/shared/detect-project.js +126 -15
  18. package/dist/src/shared/detect-project.test.d.ts +2 -0
  19. package/dist/src/shared/detect-project.test.d.ts.map +1 -0
  20. package/dist/src/shared/detect-project.test.js +126 -0
  21. package/dist/src/shared/gradle-settings.d.ts +32 -0
  22. package/dist/src/shared/gradle-settings.d.ts.map +1 -0
  23. package/dist/src/shared/gradle-settings.js +66 -0
  24. package/dist/src/yaml/step-validator-self-assigned.test.d.ts +23 -0
  25. package/dist/src/yaml/step-validator-self-assigned.test.d.ts.map +1 -0
  26. package/dist/src/yaml/step-validator-self-assigned.test.js +129 -0
  27. package/dist/src/yaml/step-validator.d.ts +32 -0
  28. package/dist/src/yaml/step-validator.d.ts.map +1 -1
  29. package/dist/src/yaml/step-validator.js +72 -0
  30. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts +2 -0
  31. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts.map +1 -0
  32. package/dist/src/yaml/steps/android-variant-resolution.test.js +117 -0
  33. package/dist/src/yaml/steps/android.d.ts +37 -0
  34. package/dist/src/yaml/steps/android.d.ts.map +1 -1
  35. package/dist/src/yaml/steps/android.js +130 -17
  36. package/dist/src/yaml/steps/base.d.ts +20 -0
  37. package/dist/src/yaml/steps/base.d.ts.map +1 -1
  38. package/dist/src/yaml/steps/base.js +24 -1
  39. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +10 -0
  40. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +1 -0
  41. package/dist/src/yaml/steps/java-home-version-spec.test.js +58 -0
  42. package/package.json +1 -1
@@ -29,10 +29,19 @@ describe('gradleJavaCeiling / gradleJavaFloor', () => {
29
29
  test('tracks what each Gradle line can run on', () => {
30
30
  expect(gradleJavaCeiling('4.10.2')).toBe(8);
31
31
  expect(gradleJavaCeiling('5.2.1')).toBe(11);
32
- expect(gradleJavaCeiling('6.9')).toBe(15);
32
+ expect(gradleJavaCeiling('6.9')).toBe(11);
33
33
  expect(gradleJavaCeiling('7.6.1')).toBe(17);
34
34
  expect(gradleJavaCeiling('8.9')).toBe(21);
35
- expect(gradleJavaCeiling('9.4.0')).toBe(24);
35
+ expect(gradleJavaCeiling('9.4.0')).toBe(25);
36
+ });
37
+ // The boundaries are minor releases, and preferring the newest JDK makes
38
+ // them load-bearing: JDK 21 arrived in Gradle 8.5, JDK 17 in 7.3, JDK 11 in
39
+ // 5.0.
40
+ test('knows the minor release each JDK arrived in', () => {
41
+ expect(gradleJavaCeiling('8.4')).toBe(17);
42
+ expect(gradleJavaCeiling('8.5')).toBe(21);
43
+ expect(gradleJavaCeiling('7.2')).toBe(11);
44
+ expect(gradleJavaCeiling('7.3')).toBe(17);
36
45
  });
37
46
  test('knows Gradle 9 dropped everything below 17', () => {
38
47
  expect(gradleJavaFloor('8.9')).toBe(8);
@@ -45,17 +54,32 @@ describe('gradleJavaCeiling / gradleJavaFloor', () => {
45
54
  });
46
55
  });
47
56
  describe('runnableJavaVersion', () => {
48
- test('stays on the default when the default covers the declaration', () => {
49
- // 11 is installed, but AGP 8.x cannot run on it — a project declaring
50
- // sourceCompatibility 11 must still be built on 17.
51
- expect(runnableJavaVersion(11)).toBe(17);
52
- expect(runnableJavaVersion(17)).toBe(17);
53
- expect(runnableJavaVersion(21)).toBe(21);
54
- });
55
- test('defaults to the preferred JDK when nothing is declared', () => {
56
- expect(runnableJavaVersion(undefined)).toBe(17);
57
- });
58
- test('steps down to 11 only when the wrapper rules the default out', () => {
57
+ // DECIDED 2026-09-06 (Alex): the newest JDK the wrapper allows, reversing
58
+ // PRD decision #15. A declaration is a floor — 11 is installed, and a
59
+ // project declaring sourceCompatibility 11 gets 21, which it compiles
60
+ // perfectly well on and which AGP 8.x needs anyway.
61
+ test('takes the newest available JDK that covers the declaration', () => {
62
+ expect(runnableJavaVersion(11)).toBe(25);
63
+ expect(runnableJavaVersion(17)).toBe(25);
64
+ expect(runnableJavaVersion(25)).toBe(25);
65
+ });
66
+ test('takes the newest available JDK when nothing is declared', () => {
67
+ expect(runnableJavaVersion(undefined)).toBe(25);
68
+ });
69
+ // 8 joined the images on 2026-09-07 and must stay unreachable except where
70
+ // a wrapper ceiling forces it: a project declaring `sourceCompatibility 1.8`
71
+ // is declaring a floor, and AGP will not run on 8 at all.
72
+ test('never picks 8 for a project that merely declares it', () => {
73
+ // 8.13's own ceiling is 21 — JDK 25 needs Gradle 9.1.
74
+ expect(runnableJavaVersion(8, '8.13')).toBe(21);
75
+ expect(runnableJavaVersion(8)).toBe(25);
76
+ });
77
+ // AutoJs6: Gradle 4.10.2 tops out at Java 8, and now there is a Java 8.
78
+ test('picks 8 when the wrapper leaves nothing else', () => {
79
+ expect(runnableJavaVersion(undefined, '4.10.2')).toBe(8);
80
+ expect(runnableJavaVersion(8, '4.10.2')).toBe(8);
81
+ });
82
+ test('steps down to 11 only when the wrapper rules everything else out', () => {
59
83
  expect(runnableJavaVersion(undefined, '5.2.1')).toBe(11);
60
84
  expect(runnableJavaVersion(11, '5.2.1')).toBe(11);
61
85
  expect(runnableJavaVersion(undefined, '6.9')).toBe(11);
@@ -65,24 +89,29 @@ describe('runnableJavaVersion', () => {
65
89
  expect(AVAILABLE_JAVA_VERSIONS).toContain(runnableJavaVersion(25, '8.9'));
66
90
  });
67
91
  test('lets an old wrapper cap a newer declaration', () => {
68
- // Gradle 7.x tops out at 17 even though 21 is installed.
69
- expect(runnableJavaVersion(21, '7.6.1')).toBe(17);
92
+ // Gradle 7.x tops out at 17 even though newer JDKs are installed. There
93
+ // is no usable JDK at all, so the pipeline names the newest and the
94
+ // caller warns — `javaVersionProblem` is what says so.
95
+ expect(runnableJavaVersion(21, '7.6.1')).toBe(25);
96
+ expect(runnableJavaVersion(17, '7.6.1')).toBe(17);
70
97
  });
71
98
  test('honours the Gradle 9 floor of 17', () => {
72
- expect(runnableJavaVersion(8, '9.0')).toBe(17);
99
+ // The floor rules 11 out; the newest above it is what gets written.
100
+ expect(runnableJavaVersion(8, '9.0')).toBe(21);
73
101
  });
74
102
  });
75
103
  describe('javaVersionProblem', () => {
76
- test('names a Gradle version no installed JDK can run', () => {
77
- // 4.10.2 tops out at Java 8, and no image carries 8.
78
- const problem = javaVersionProblem(undefined, '4.10.2');
79
- expect(problem).toContain('Gradle 4.10.2');
80
- expect(problem).toContain('Java 8');
104
+ // There is no longer a Gradle version no installed JDK can run: the ceiling
105
+ // bottoms out at Java 8 and since 2026-09-07 the images carry one. The
106
+ // branch that says so is kept for an installed set that drops 8 again.
107
+ test('no longer calls an old wrapper a problem', () => {
108
+ expect(javaVersionProblem(undefined, '4.10.2')).toBeUndefined();
109
+ expect(javaVersionProblem(undefined, '3.5')).toBeUndefined();
81
110
  });
82
111
  test('names a declaration above every installed JDK', () => {
83
- const problem = javaVersionProblem(23, '8.9');
84
- expect(problem).toContain('Java 23');
85
- expect(problem).toContain('11, 17 and 21');
112
+ const problem = javaVersionProblem(30, '8.9');
113
+ expect(problem).toContain('Java 30');
114
+ expect(problem).toContain('8, 11, 17, 21 and 25');
86
115
  });
87
116
  test('is silent when every constraint was honoured', () => {
88
117
  expect(javaVersionProblem(17, '8.9')).toBeUndefined();
@@ -90,6 +119,8 @@ describe('javaVersionProblem', () => {
90
119
  expect(javaVersionProblem(undefined, undefined)).toBeUndefined();
91
120
  // 5.2.1 used to be a problem. The images carry 11 now, so it is not.
92
121
  expect(javaVersionProblem(undefined, '5.2.1')).toBeUndefined();
122
+ // Nor is 4.10.2, since the images carry 8.
123
+ expect(javaVersionProblem(undefined, '4.10.2')).toBeUndefined();
93
124
  });
94
125
  });
95
126
  //# sourceMappingURL=android-java-version.test.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=android-scanner-java.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-scanner-java.test.d.ts","sourceRoot":"","sources":["../../../src/commands/android-scanner-java.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Which JDK a project needs, from every place it says so.
3
+ *
4
+ * Two rows of the thirty-app study died at root-project configuration on a
5
+ * JDK the images already carry, and neither was a repository problem:
6
+ *
7
+ * - `SimonSchubert/LinuxCommandLibrary` declares eight modules in a single
8
+ * `include(...)` call. The scanner's own include regex captured only the
9
+ * first argument, so seven modules were never opened — including the one
10
+ * with `jvmToolchain(21)` in it. It answered 17, and a Gradle plugin
11
+ * requiring a 21 runtime failed the build.
12
+ * - `mihonapp/mihon` declares no Java level in any Gradle file. It pins 21
13
+ * in `.github/.java-version`, which its own workflows consume through
14
+ * `setup-java`'s `java-version-file:`. Nothing of ours read either.
15
+ */
16
+ import { mkdtempSync, rmSync, mkdirSync, writeFileSync } from "node:fs";
17
+ import { join } from "node:path";
18
+ import { tmpdir } from "node:os";
19
+ import { scanAndroidProject } from "./android-scanner.js";
20
+ let root;
21
+ beforeEach(() => {
22
+ root = mkdtempSync(join(tmpdir(), "cibuild-java-"));
23
+ });
24
+ afterEach(() => {
25
+ rmSync(root, { recursive: true, force: true });
26
+ });
27
+ function write(relative, content) {
28
+ const path = join(root, relative);
29
+ mkdirSync(join(path, ".."), { recursive: true });
30
+ writeFileSync(path, content);
31
+ }
32
+ async function detectedJava() {
33
+ const result = await scanAndroidProject(root);
34
+ return result.detectedJavaVersion;
35
+ }
36
+ describe("the Java version a project asks for", () => {
37
+ describe("every module the build includes", () => {
38
+ // The exact settings line from LinuxCommandLibrary, and the two build
39
+ // files that decide the answer: 17 in the first module, 21 in the last.
40
+ test("reads all eight modules of one include call", async () => {
41
+ write("settings.gradle.kts", 'include(":android", ":common", ":websiteBuilder", ":cli", ":composeApp", ":desktopApp", ":viewmodels", ":screenshotTests")\n');
42
+ write("build.gradle.kts", "// root\n");
43
+ write("android/build.gradle.kts", "kotlin {\n compilerOptions {\n jvmTarget.set(JvmTarget.JVM_17)\n }\n}\n");
44
+ write("screenshotTests/build.gradle.kts", "kotlin {\n jvmToolchain(21)\n}\n");
45
+ expect(await detectedJava()).toBe(21);
46
+ });
47
+ test("reads the Groovy multi-argument form too", async () => {
48
+ write("settings.gradle", "include ':app', ':feature:home'\n");
49
+ write("app/build.gradle", "android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 } }\n");
50
+ write("feature/home/build.gradle", "kotlin { jvmToolchain(21) }\n");
51
+ expect(await detectedJava()).toBe(21);
52
+ });
53
+ // A7 lite: a convention plugin's own build file is where a monorepo's
54
+ // Java level often lives, and `includeBuild` is how it gets there.
55
+ test("follows includeBuild into a build-logic root", async () => {
56
+ write("settings.gradle.kts", 'includeBuild("build-logic")\ninclude(":app")\n');
57
+ write("app/build.gradle.kts", "// nothing\n");
58
+ write("build-logic/build.gradle.kts", "kotlin { jvmToolchain(21) }\n");
59
+ expect(await detectedJava()).toBe(21);
60
+ });
61
+ });
62
+ describe("the forms a Kotlin build writes jvmTarget in", () => {
63
+ test.each([
64
+ ["jvmTarget.set(JvmTarget.JVM_17)", 17],
65
+ ["jvmTarget = JvmTarget.JVM_21", 21],
66
+ ['jvmTarget.set(JvmTarget.fromTarget("17"))', 17],
67
+ ['jvmTarget = "21"', 21],
68
+ ["jvmTarget.set(JvmTarget.JVM_1_8)", 8],
69
+ ])("reads %s", async (form, expected) => {
70
+ write("settings.gradle.kts", 'include(":app")\n');
71
+ write("app/build.gradle.kts", `kotlin { compilerOptions { ${form} } }\n`);
72
+ expect(await detectedJava()).toBe(expected);
73
+ });
74
+ });
75
+ describe("the files that pin a JDK outside Gradle", () => {
76
+ // mihon. The floor is 21 and no Gradle file says anything at all.
77
+ test("reads .github/.java-version", async () => {
78
+ write("settings.gradle.kts", 'include(":app")\n');
79
+ write("app/build.gradle.kts", "// nothing\n");
80
+ write(".github/.java-version", "21\n");
81
+ expect(await detectedJava()).toBe(21);
82
+ });
83
+ // thunderbird pins at the root.
84
+ test("reads a root .java-version", async () => {
85
+ write("settings.gradle.kts", 'include(":app")\n');
86
+ write(".java-version", "21\n");
87
+ expect(await detectedJava()).toBe(21);
88
+ });
89
+ test("reads a java entry in .tool-versions", async () => {
90
+ write("settings.gradle.kts", 'include(":app")\n');
91
+ write(".tool-versions", "nodejs 20.11.0\njava temurin-21.0.3+9\n");
92
+ expect(await detectedJava()).toBe(21);
93
+ });
94
+ test("reads .sdkmanrc", async () => {
95
+ write("settings.gradle.kts", 'include(":app")\n');
96
+ write(".sdkmanrc", "# comment\njava=17.0.9-tem\ngradle=8.13\n");
97
+ expect(await detectedJava()).toBe(17);
98
+ });
99
+ test("reads java-version from a workflow", async () => {
100
+ write("settings.gradle.kts", 'include(":app")\n');
101
+ write(".github/workflows/build.yml", "jobs:\n build:\n steps:\n - uses: actions/setup-java@v4\n with:\n java-version: 21\n");
102
+ expect(await detectedJava()).toBe(21);
103
+ });
104
+ // A matrix declares several; the highest is the one that has to work.
105
+ test("takes the highest of a workflow matrix", async () => {
106
+ write("settings.gradle.kts", 'include(":app")\n');
107
+ write(".github/workflows/ci.yml", "strategy:\n matrix:\n java-version: [17, 21]\n");
108
+ expect(await detectedJava()).toBe(21);
109
+ });
110
+ // A pin is a floor, not a ceiling, and a Gradle declaration above it wins.
111
+ test("is a floor, not an override", async () => {
112
+ write("settings.gradle.kts", 'include(":app")\n');
113
+ write("app/build.gradle.kts", "kotlin { jvmToolchain(21) }\n");
114
+ write(".java-version", "17\n");
115
+ expect(await detectedJava()).toBe(21);
116
+ });
117
+ test("says nothing when nothing pins anything", async () => {
118
+ write("settings.gradle.kts", 'include(":app")\n');
119
+ write("app/build.gradle.kts", "// nothing\n");
120
+ expect(await detectedJava()).toBeUndefined();
121
+ });
122
+ // A version this scanner cannot make sense of must not become a number.
123
+ test("ignores an unreadable pin", async () => {
124
+ write("settings.gradle.kts", 'include(":app")\n');
125
+ write(".java-version", "graalvm-community\n");
126
+ expect(await detectedJava()).toBeUndefined();
127
+ });
128
+ });
129
+ });
130
+ //# sourceMappingURL=android-scanner-java.test.js.map
@@ -44,6 +44,26 @@ export interface BuildVariants {
44
44
  * losing a real declaration is worse than keeping a guarded one.
45
45
  */
46
46
  export declare function stripExistenceGuardedBlocks(content: string): string;
47
+ /** The builds a settings file composes in, e.g. `includeBuild("build-logic")`. */
48
+ export declare function parseIncludedBuilds(content: string): string[];
49
+ /**
50
+ * A Java version pinned outside Gradle, and the file that pins it.
51
+ *
52
+ * `mihonapp/mihon` declares no Java level in any Gradle file and pins 21 in
53
+ * `.github/.java-version`, which its own workflows consume through
54
+ * `setup-java`'s `java-version-file:`. The project says what it needs; it
55
+ * just does not say it in Gradle, and reading only Gradle files scanned it as
56
+ * "nothing declared" and ran it on the default. Across the thirty clones,
57
+ * three repositories pin with a version file and ten name a version in a
58
+ * workflow.
59
+ *
60
+ * A pin is a **floor**, folded in with `Math.max` like every other
61
+ * declaration — not an override.
62
+ */
63
+ export declare function detectPinnedJavaVersion(root: string): {
64
+ version: number;
65
+ source: string;
66
+ } | undefined;
47
67
  /**
48
68
  * The Gradle version a wrapper pins, read out of its `distributionUrl`.
49
69
  * `…/gradle-8.9-bin.zip` → `8.9`.
@@ -70,35 +90,40 @@ export declare function gradleJavaFloor(gradleVersion: string | undefined): numb
70
90
  *
71
91
  * 11 joined the images on 2026-09-05, for Gradle 5.x and 6.x — which cannot
72
92
  * *start* on 17, whatever the sources declare. It is a fallback, never a
73
- * preference; see `PREFERRED_JAVA_VERSION`.
93
+ * preference: the selection takes the newest JDK that fits, so 11 is reached
94
+ * only when a wrapper's ceiling leaves nothing else.
95
+ *
96
+ * 8 and 25 joined on 2026-09-07, the companion half of the "newest the
97
+ * wrapper allows" decision — the images carry every JDK we find a project
98
+ * asking for, rather than a project bending to what they carry. 8 is 11's
99
+ * argument one line further back (Gradle 4.x tops out at Java 8); 25 covers
100
+ * the six repositories in the 150-repo corpus that declare a level above 21.
101
+ * Nothing reaches 8 unless a wrapper ceiling forces it.
74
102
  */
75
103
  export declare const AVAILABLE_JAVA_VERSIONS: number[];
76
104
  /**
77
- * The JDK to write whenever nothing forces otherwise.
78
- *
79
- * This is what makes 11 safe to list. The selection below used to answer with
80
- * the *lowest* usable JDK, which was harmless while the lowest was 17. With 11
81
- * installed that rule would write `JAVA_VERSION: 11` for every project whose
82
- * `sourceCompatibility` is 11 — and AGP 8.x will not run on JDK 11, so
83
- * pipelines that build today would stop building.
105
+ * The newest JDK a build machine carries. Named because it is what a
106
+ * generated pipeline falls back to when no JDK can satisfy the constraints —
107
+ * a pipeline has to write something, and `javaVersionProblem` says what was
108
+ * given up.
84
109
  */
85
- export declare const PREFERRED_JAVA_VERSION = 17;
110
+ export declare const NEWEST_AVAILABLE_JAVA_VERSION: number;
86
111
  /**
87
- * The Java version to write into a generated pipeline: `PREFERRED_JAVA_VERSION`
88
- * whenever it satisfies both what the sources declare and what the Gradle
89
- * wrapper can run on, and the nearest available JDK that does when it cannot.
112
+ * The Java version to write into a generated pipeline: the **newest**
113
+ * available JDK that satisfies both what the sources declare and what the
114
+ * Gradle wrapper can run on.
90
115
  *
91
- * Source compatibility is a floor, not an exact request — a project
92
- * declaring 11 compiles fine on 17 — but it is not the only constraint.
93
- * Gradle starts before it reads a single `sourceCompatibility`, so a wrapper
94
- * pinning an old Gradle caps the JDK no matter what the sources say, and a
95
- * declaration above every installed JDK cannot be honoured at all.
116
+ * DECIDED 2026-09-06 (Alex), reversing Invarn PRD decision #15 ("17 is the
117
+ * JDK whenever nothing forces otherwise"). The thirty-app study measured the
118
+ * cost of preferring 17 in one direction and none in the other: two rows
119
+ * failed because 17 was too *low* for a build plugin's own runtime
120
+ * requirement, and no row failed because 21 was too high. A project targeting
121
+ * 17 runs fine on 21; never the reverse.
96
122
  *
97
- * Falls back to the preferred JDK — not the lowest — when the constraints
98
- * cannot all be met, because a pipeline has to name something and the
99
- * unsatisfiable cases are overwhelmingly "declared something newer than we
100
- * have", where 17 is a far better guess than 11. `javaVersionProblem` says
101
- * what was given up so the caller can warn.
123
+ * Source compatibility is a floor, not an exact request. Gradle starts before
124
+ * it reads a single `sourceCompatibility`, so a wrapper pinning an old Gradle
125
+ * caps the JDK no matter what the sources say — which is why the ceiling
126
+ * above had to learn minor versions before this could ship.
102
127
  */
103
128
  export declare function runnableJavaVersion(detectedJavaVersion: number | undefined, gradleVersion?: string): number;
104
129
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"android-scanner.d.ts","sourceRoot":"","sources":["../../../src/commands/android-scanner.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,SAAS,GACT,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,UAAU,GACV,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2FAA2F;IAC3F,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,gGAAgG;IAChG,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wFAAwF;IACxF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA+JD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcnE;AAoKD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7E;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CASvF;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIrF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,UAAe,CAAC;AAEpD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,GAAG,SAAS,CAkBpB;AA6FD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa,CAmCxE;AAMD,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA4PjF;AAgBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAyD3D"}
1
+ {"version":3,"file":"android-scanner.d.ts","sourceRoot":"","sources":["../../../src/commands/android-scanner.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,SAAS,GACT,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,UAAU,GACV,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2FAA2F;IAC3F,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,gGAAgG;IAChG,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wFAAwF;IACxF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAwKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcnE;AAyKD,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAO7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,GACX;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA8CjD;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7E;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAsBvF;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIrF;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,UAAsB,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,QAAuC,CAAC;AAElF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAQR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,GAAG,SAAS,CAkBpB;AA6FD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa,CAmCxE;AAMD,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAoQjF;AAgBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAyD3D"}