doc-detective 4.38.0 → 4.41.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.
Files changed (234) hide show
  1. package/README.md +4 -4
  2. package/dist/agents/adapters/claude-code.d.ts.map +1 -1
  3. package/dist/agents/adapters/claude-code.js +1 -2
  4. package/dist/agents/adapters/claude-code.js.map +1 -1
  5. package/dist/agents/adapters/codex.d.ts.map +1 -1
  6. package/dist/agents/adapters/codex.js +3 -4
  7. package/dist/agents/adapters/codex.js.map +1 -1
  8. package/dist/agents/adapters/copilot-cli.d.ts.map +1 -1
  9. package/dist/agents/adapters/copilot-cli.js +1 -2
  10. package/dist/agents/adapters/copilot-cli.js.map +1 -1
  11. package/dist/agents/adapters/gemini-cli.d.ts.map +1 -1
  12. package/dist/agents/adapters/gemini-cli.js +1 -2
  13. package/dist/agents/adapters/gemini-cli.js.map +1 -1
  14. package/dist/agents/adapters/opencode.d.ts.map +1 -1
  15. package/dist/agents/adapters/opencode.js +1 -2
  16. package/dist/agents/adapters/opencode.js.map +1 -1
  17. package/dist/agents/adapters/qwen-code.d.ts.map +1 -1
  18. package/dist/agents/adapters/qwen-code.js +1 -2
  19. package/dist/agents/adapters/qwen-code.js.map +1 -1
  20. package/dist/agents/fetcher.d.ts.map +1 -1
  21. package/dist/agents/fetcher.js +1 -2
  22. package/dist/agents/fetcher.js.map +1 -1
  23. package/dist/common/src/ajv.d.ts +30 -0
  24. package/dist/common/src/ajv.d.ts.map +1 -0
  25. package/dist/common/src/ajv.js +131 -0
  26. package/dist/common/src/ajv.js.map +1 -0
  27. package/dist/common/src/detectTests.d.ts +2 -18
  28. package/dist/common/src/detectTests.d.ts.map +1 -1
  29. package/dist/common/src/detectTests.js +8 -77
  30. package/dist/common/src/detectTests.js.map +1 -1
  31. package/dist/common/src/schemas/referenced.d.ts +12 -0
  32. package/dist/common/src/schemas/referenced.d.ts.map +1 -0
  33. package/dist/common/src/schemas/referenced.js +10 -0
  34. package/dist/common/src/schemas/referenced.js.map +1 -0
  35. package/dist/common/src/schemas/schemas.json +2 -2
  36. package/dist/common/src/schemas/schemasReferenced.json +14871 -0
  37. package/dist/common/src/schemas/validators.cjs +509 -0
  38. package/dist/common/src/schemas/validatorsCheck.cjs +2 -0
  39. package/dist/common/src/textUtils.d.ts +25 -0
  40. package/dist/common/src/textUtils.d.ts.map +1 -0
  41. package/dist/common/src/textUtils.js +84 -0
  42. package/dist/common/src/textUtils.js.map +1 -0
  43. package/dist/common/src/types/generated/annotate_v3.d.ts.map +1 -1
  44. package/dist/common/src/types/generated/annotation_v3.d.ts.map +1 -1
  45. package/dist/common/src/types/generated/click_v3.d.ts +153 -0
  46. package/dist/common/src/types/generated/click_v3.d.ts.map +1 -1
  47. package/dist/common/src/types/generated/config_v3.d.ts +13753 -207
  48. package/dist/common/src/types/generated/config_v3.d.ts.map +1 -1
  49. package/dist/common/src/types/generated/dragAndDrop_v3.d.ts +72 -0
  50. package/dist/common/src/types/generated/dragAndDrop_v3.d.ts.map +1 -1
  51. package/dist/common/src/types/generated/find_v3.d.ts +632 -0
  52. package/dist/common/src/types/generated/find_v3.d.ts.map +1 -1
  53. package/dist/common/src/types/generated/goTo_v3.d.ts +31 -0
  54. package/dist/common/src/types/generated/goTo_v3.d.ts.map +1 -1
  55. package/dist/common/src/types/generated/httpRequest_v3.d.ts +181 -0
  56. package/dist/common/src/types/generated/httpRequest_v3.d.ts.map +1 -1
  57. package/dist/common/src/types/generated/loadCookie_v3.d.ts +30 -0
  58. package/dist/common/src/types/generated/loadCookie_v3.d.ts.map +1 -1
  59. package/dist/common/src/types/generated/report_v3.d.ts +28234 -321
  60. package/dist/common/src/types/generated/report_v3.d.ts.map +1 -1
  61. package/dist/common/src/types/generated/resolvedTests_v3.d.ts +42281 -822
  62. package/dist/common/src/types/generated/resolvedTests_v3.d.ts.map +1 -1
  63. package/dist/common/src/types/generated/saveCookie_v3.d.ts +35 -0
  64. package/dist/common/src/types/generated/saveCookie_v3.d.ts.map +1 -1
  65. package/dist/common/src/types/generated/screenshot_v3.d.ts +45 -0
  66. package/dist/common/src/types/generated/screenshot_v3.d.ts.map +1 -1
  67. package/dist/common/src/types/generated/spec_v3.d.ts +28188 -275
  68. package/dist/common/src/types/generated/spec_v3.d.ts.map +1 -1
  69. package/dist/common/src/types/generated/startSurface_v3.d.ts +63 -1
  70. package/dist/common/src/types/generated/startSurface_v3.d.ts.map +1 -1
  71. package/dist/common/src/types/generated/step_v3.d.ts +5186 -523
  72. package/dist/common/src/types/generated/step_v3.d.ts.map +1 -1
  73. package/dist/common/src/types/generated/test_v3.d.ts +13268 -3582
  74. package/dist/common/src/types/generated/test_v3.d.ts.map +1 -1
  75. package/dist/common/src/types/generated/type_v3.d.ts +62 -0
  76. package/dist/common/src/types/generated/type_v3.d.ts.map +1 -1
  77. package/dist/common/src/types/generated/waitUntil_v3.d.ts +62 -0
  78. package/dist/common/src/types/generated/waitUntil_v3.d.ts.map +1 -1
  79. package/dist/common/src/validate.d.ts +1 -1
  80. package/dist/common/src/validate.d.ts.map +1 -1
  81. package/dist/common/src/validate.js +29 -75
  82. package/dist/common/src/validate.js.map +1 -1
  83. package/dist/core/appium.d.ts +3 -2
  84. package/dist/core/appium.d.ts.map +1 -1
  85. package/dist/core/appium.js +63 -89
  86. package/dist/core/appium.js.map +1 -1
  87. package/dist/core/appiumReuse.d.ts +43 -0
  88. package/dist/core/appiumReuse.d.ts.map +1 -0
  89. package/dist/core/appiumReuse.js +226 -0
  90. package/dist/core/appiumReuse.js.map +1 -0
  91. package/dist/core/config.d.ts +10 -2
  92. package/dist/core/config.d.ts.map +1 -1
  93. package/dist/core/config.js +37 -7
  94. package/dist/core/config.js.map +1 -1
  95. package/dist/core/detectTests.d.ts.map +1 -1
  96. package/dist/core/detectTests.js +51 -17
  97. package/dist/core/detectTests.js.map +1 -1
  98. package/dist/core/files.d.ts.map +1 -1
  99. package/dist/core/files.js +3 -4
  100. package/dist/core/files.js.map +1 -1
  101. package/dist/core/index.d.ts +2 -2
  102. package/dist/core/index.d.ts.map +1 -1
  103. package/dist/core/index.js +132 -21
  104. package/dist/core/index.js.map +1 -1
  105. package/dist/core/integrations/heretto.d.ts +1 -1
  106. package/dist/core/integrations/heretto.d.ts.map +1 -1
  107. package/dist/core/integrations/heretto.js +7 -6
  108. package/dist/core/integrations/heretto.js.map +1 -1
  109. package/dist/core/lazyYaml.d.ts +2 -0
  110. package/dist/core/lazyYaml.d.ts.map +1 -0
  111. package/dist/core/lazyYaml.js +13 -0
  112. package/dist/core/lazyYaml.js.map +1 -0
  113. package/dist/core/resolveTests.js +1 -1
  114. package/dist/core/resolveTests.js.map +1 -1
  115. package/dist/core/telem.d.ts +1 -1
  116. package/dist/core/telem.d.ts.map +1 -1
  117. package/dist/core/telem.js +2 -11
  118. package/dist/core/telem.js.map +1 -1
  119. package/dist/core/telemLite.d.ts +10 -0
  120. package/dist/core/telemLite.d.ts.map +1 -0
  121. package/dist/core/telemLite.js +101 -0
  122. package/dist/core/telemLite.js.map +1 -0
  123. package/dist/core/tests/androidEmulator.d.ts +67 -4
  124. package/dist/core/tests/androidEmulator.d.ts.map +1 -1
  125. package/dist/core/tests/androidEmulator.js +366 -37
  126. package/dist/core/tests/androidEmulator.js.map +1 -1
  127. package/dist/core/tests/appSurface.d.ts +25 -6
  128. package/dist/core/tests/appSurface.d.ts.map +1 -1
  129. package/dist/core/tests/appSurface.js +88 -52
  130. package/dist/core/tests/appSurface.js.map +1 -1
  131. package/dist/core/tests/browserSessions.d.ts +2 -1
  132. package/dist/core/tests/browserSessions.d.ts.map +1 -1
  133. package/dist/core/tests/browserSessions.js +7 -1
  134. package/dist/core/tests/browserSessions.js.map +1 -1
  135. package/dist/core/tests/checkLink.d.ts +1 -0
  136. package/dist/core/tests/checkLink.d.ts.map +1 -1
  137. package/dist/core/tests/checkLink.js +14 -5
  138. package/dist/core/tests/checkLink.js.map +1 -1
  139. package/dist/core/tests/closeSurface.d.ts.map +1 -1
  140. package/dist/core/tests/closeSurface.js +4 -3
  141. package/dist/core/tests/closeSurface.js.map +1 -1
  142. package/dist/core/tests/findStrategies.d.ts.map +1 -1
  143. package/dist/core/tests/findStrategies.js +153 -116
  144. package/dist/core/tests/findStrategies.js.map +1 -1
  145. package/dist/core/tests/geckoDriver.d.ts +16 -0
  146. package/dist/core/tests/geckoDriver.d.ts.map +1 -0
  147. package/dist/core/tests/geckoDriver.js +127 -0
  148. package/dist/core/tests/geckoDriver.js.map +1 -0
  149. package/dist/core/tests/goTo.d.ts.map +1 -1
  150. package/dist/core/tests/goTo.js +12 -33
  151. package/dist/core/tests/goTo.js.map +1 -1
  152. package/dist/core/tests/httpRequest.d.ts.map +1 -1
  153. package/dist/core/tests/httpRequest.js +4 -3
  154. package/dist/core/tests/httpRequest.js.map +1 -1
  155. package/dist/core/tests/iosSimulator.d.ts +4 -1
  156. package/dist/core/tests/iosSimulator.d.ts.map +1 -1
  157. package/dist/core/tests/iosSimulator.js +49 -1
  158. package/dist/core/tests/iosSimulator.js.map +1 -1
  159. package/dist/core/tests/mobileBrowser.d.ts +2 -1
  160. package/dist/core/tests/mobileBrowser.d.ts.map +1 -1
  161. package/dist/core/tests/mobileBrowser.js +5 -2
  162. package/dist/core/tests/mobileBrowser.js.map +1 -1
  163. package/dist/core/tests/runCode.d.ts +9 -1
  164. package/dist/core/tests/runCode.d.ts.map +1 -1
  165. package/dist/core/tests/runCode.js +58 -2
  166. package/dist/core/tests/runCode.js.map +1 -1
  167. package/dist/core/tests/saveScreenshot.d.ts +18 -2
  168. package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
  169. package/dist/core/tests/saveScreenshot.js +159 -4
  170. package/dist/core/tests/saveScreenshot.js.map +1 -1
  171. package/dist/core/tests/startRecording.d.ts.map +1 -1
  172. package/dist/core/tests/startRecording.js +6 -4
  173. package/dist/core/tests/startRecording.js.map +1 -1
  174. package/dist/core/tests/startSurface.d.ts.map +1 -1
  175. package/dist/core/tests/startSurface.js +8 -2
  176. package/dist/core/tests/startSurface.js.map +1 -1
  177. package/dist/core/tests.d.ts +21 -7
  178. package/dist/core/tests.d.ts.map +1 -1
  179. package/dist/core/tests.js +372 -121
  180. package/dist/core/tests.js.map +1 -1
  181. package/dist/core/utils.d.ts +68 -3
  182. package/dist/core/utils.d.ts.map +1 -1
  183. package/dist/core/utils.js +551 -18
  184. package/dist/core/utils.js.map +1 -1
  185. package/dist/core/verification.d.ts +17 -0
  186. package/dist/core/verification.d.ts.map +1 -0
  187. package/dist/core/verification.js +850 -0
  188. package/dist/core/verification.js.map +1 -0
  189. package/dist/debug/appium.js +2 -2
  190. package/dist/debug/appium.js.map +1 -1
  191. package/dist/debug/findings.js +2 -2
  192. package/dist/debug/findings.js.map +1 -1
  193. package/dist/debug/tools.d.ts +8 -0
  194. package/dist/debug/tools.d.ts.map +1 -1
  195. package/dist/debug/tools.js +60 -22
  196. package/dist/debug/tools.js.map +1 -1
  197. package/dist/hints/context.d.ts.map +1 -1
  198. package/dist/hints/context.js +2 -2
  199. package/dist/hints/context.js.map +1 -1
  200. package/dist/index.cjs +25777 -4
  201. package/dist/reporters/htmlReporter.js +1 -1
  202. package/dist/runtime/androidInstaller.d.ts +45 -0
  203. package/dist/runtime/androidInstaller.d.ts.map +1 -1
  204. package/dist/runtime/androidInstaller.js +88 -5
  205. package/dist/runtime/androidInstaller.js.map +1 -1
  206. package/dist/runtime/browsers.d.ts +87 -7
  207. package/dist/runtime/browsers.d.ts.map +1 -1
  208. package/dist/runtime/browsers.js +308 -41
  209. package/dist/runtime/browsers.js.map +1 -1
  210. package/dist/runtime/cacheDir.d.ts +1 -1
  211. package/dist/runtime/cacheDir.d.ts.map +1 -1
  212. package/dist/runtime/cacheDir.js +5 -2
  213. package/dist/runtime/cacheDir.js.map +1 -1
  214. package/dist/runtime/heavyDeps.d.ts.map +1 -1
  215. package/dist/runtime/heavyDeps.js.map +1 -1
  216. package/dist/runtime/installCommand.d.ts.map +1 -1
  217. package/dist/runtime/installCommand.js +23 -0
  218. package/dist/runtime/installCommand.js.map +1 -1
  219. package/dist/runtime/loader.d.ts +13 -0
  220. package/dist/runtime/loader.d.ts.map +1 -1
  221. package/dist/runtime/loader.js +50 -0
  222. package/dist/runtime/loader.js.map +1 -1
  223. package/dist/runtime/wdaProducts.d.ts +12 -1
  224. package/dist/runtime/wdaProducts.d.ts.map +1 -1
  225. package/dist/runtime/wdaProducts.js +27 -2
  226. package/dist/runtime/wdaProducts.js.map +1 -1
  227. package/dist/runtime/windowsBash.d.ts +6 -1
  228. package/dist/runtime/windowsBash.d.ts.map +1 -1
  229. package/dist/runtime/windowsBash.js +45 -4
  230. package/dist/runtime/windowsBash.js.map +1 -1
  231. package/dist/utils.d.ts.map +1 -1
  232. package/dist/utils.js +19 -5
  233. package/dist/utils.js.map +1 -1
  234. package/package.json +43 -41
@@ -0,0 +1,101 @@
1
+ import { log } from "./utils.js";
2
+ // The telemetry pieces a run needs before posthog-node is loaded. telem.ts
3
+ // holds the PostHog client; the runner imports it on first send so the
4
+ // ~95-module client stays off the CLI startup path.
5
+ export const POSTHOG_HOST = "https://app.posthog.com";
6
+ let warmup;
7
+ let warmupSettled = Promise.resolve();
8
+ // Open the connection to PostHog while the run is still working, so the
9
+ // end-of-run flush reuses it and costs one round trip instead of DNS + TCP +
10
+ // TLS + request (ADR 01132). OPTIONS rather than HEAD: PostHog answers HEAD
11
+ // with `Connection: close`, which would throw the warm socket away. Sends no
12
+ // event. Caveat: Node's fetch drops an idle socket after 4 s, so a run that
13
+ // outlasts that pays the cold handshake as before; a custom dispatcher with a
14
+ // longer keep-alive would lift that limit.
15
+ export function prewarmTelemetry(config) {
16
+ if (config?.telemetry?.send === false)
17
+ return;
18
+ // One warm-up at a time: a back-to-back or concurrent runTests call cancels
19
+ // the previous one, so no send can wait behind an orphaned request.
20
+ warmup?.abort();
21
+ warmup = new AbortController();
22
+ warmupSettled = fetch(POSTHOG_HOST, {
23
+ method: "OPTIONS",
24
+ redirect: "manual",
25
+ signal: warmup.signal,
26
+ })
27
+ .then((res) => res.arrayBuffer())
28
+ // undici hands the socket back to its pool a turn after the body ends; a
29
+ // request sent before that opens a new connection.
30
+ .then(() => new Promise((resolve) => setImmediate(resolve)))
31
+ .catch((err) => {
32
+ // The send then goes out cold, as without a warm-up.
33
+ log(config, "debug", `Telemetry connection warm-up failed: ${err?.message ?? err}`);
34
+ });
35
+ }
36
+ // The PostHog client's fetch. A send that starts while the warm-up is still in
37
+ // flight would open a second connection (one request per socket) and pay the
38
+ // full handshake anyway, so it waits for the warm-up to settle and then reuses
39
+ // its socket. Never waits on a failed warm-up; the flush's own timeout bounds
40
+ // the total.
41
+ export async function telemetryFetch(url, init) {
42
+ // Re-check after each wait: a newer warm-up may have replaced the one we
43
+ // were waiting on, and the send should use its socket.
44
+ let settled;
45
+ do {
46
+ settled = warmupSettled;
47
+ await settled;
48
+ } while (settled !== warmupSettled);
49
+ return fetch(url, init);
50
+ }
51
+ // Cancel a warm-up that's still in flight so it can't hold the process open
52
+ // after a run that ended without sending anything. A later send goes out
53
+ // immediately rather than waiting on the cancelled request.
54
+ export function abortTelemetryWarmup() {
55
+ warmup?.abort();
56
+ warmup = undefined;
57
+ warmupSettled = Promise.resolve();
58
+ }
59
+ // The notice text is documented verbatim in docs/fern/pages/legal/telemetry.mdx
60
+ // (/legal/telemetry); keep the two in sync. It isn't linked from the message
61
+ // itself, since that would change the CLI's printed output.
62
+ export function telemetryNotice(config) {
63
+ if (config?.telemetry?.send === false) {
64
+ log(config, "info", "Telemetry is disabled. Basic anonymous telemetry helps Doc Detective understand product issues and usage. To enable telemetry, set 'telemetry.send' to 'true' in your .doc-detective.json config file.");
65
+ }
66
+ else {
67
+ log(config, "info", "Doc Detective collects basic anonymous telemetry to understand product issues and usage. To disable telemetry, set 'telemetry.send' to 'false' in your .doc-detective.json config file.");
68
+ }
69
+ }
70
+ // telem.js carries posthog-node (~95 modules), so the runner loads it when a run
71
+ // starts (in the background) rather than at CLI startup. A run with
72
+ // telemetry.send === false never loads it. Resolves to null when telem.js can't
73
+ // load: telemetry must never fail a run.
74
+ let telemModule;
75
+ const defaultTelemetryLoader = () => import("./telem.js");
76
+ let telemetryLoader = defaultTelemetryLoader;
77
+ // Test seam (internal module, not part of the package API): swap how telem.js
78
+ // loads, e.g. to simulate a failed load, and drop any already-loaded module. No
79
+ // argument restores the real loader.
80
+ export function setTelemetryLoader(loader) {
81
+ telemetryLoader = loader ?? defaultTelemetryLoader;
82
+ telemModule = undefined;
83
+ }
84
+ export function loadTelemetry() {
85
+ telemModule ??= telemetryLoader().catch(() => null);
86
+ return telemModule;
87
+ }
88
+ export async function sendRunTelemetry(config, command, results) {
89
+ if (config?.telemetry?.send === false)
90
+ return;
91
+ (await loadTelemetry())?.sendTelemetry(config, command, results);
92
+ }
93
+ // Join the flush the last send started (if any), then cancel a warm-up still in
94
+ // flight so it can't hold the process open.
95
+ export async function flushRunTelemetry() {
96
+ const telem = telemModule ? await telemModule : null;
97
+ if (telem)
98
+ await telem.awaitTelemetryFlush();
99
+ abortTelemetryWarmup();
100
+ }
101
+ //# sourceMappingURL=telemLite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemLite.js","sourceRoot":"","sources":["../../src/core/telemLite.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import { CLEAN_SNAPSHOT_NAME } from "../../runtime/androidInstaller.js";
1
2
  import type { AndroidSdk } from "../../runtime/androidSdk.js";
2
3
  import { normalizeDeviceDescriptor } from "./mobileDevice.js";
3
4
  import type { DeviceDescriptor } from "./mobileDevice.js";
4
- export { parseAdbDevices, parseEmuAvdName, parseListAvds, parseAccelCheck, normalizeDeviceDescriptor, emulatorBootArgs, nextEmulatorPort, udidForPort, planDeviceAcquisition, planAndroidToolchain, createDeviceRegistry, acquireDevice, teardownDeviceRegistry, buildAcquireDeviceDeps, checkEmulatorAcceleration, hostHasKvm, };
5
+ export { parseAdbDevices, parseEmuAvdName, parseListAvds, parseAccelCheck, normalizeDeviceDescriptor, emulatorBootArgs, nextEmulatorPort, udidForPort, planDeviceAcquisition, planAndroidToolchain, createDeviceRegistry, acquireDevice, teardownDeviceRegistry, buildAcquireDeviceDeps, checkEmulatorAcceleration, hostHasKvm, bootWithCleanSnapshot, isCleanSnapshotStale, findUia2Helpers, bakeHelpersWith, bestEffort, cleanSnapshotSaveCommands, saveCleanSnapshotWith, CLEAN_SNAPSHOT_NAME, waitForBootCompleted, waitForProcessExit, shutdownEmulatorWith, shutdownEmulator, adbPathForSdkRoot, };
5
6
  export type { DeviceDescriptor, DeviceRegistry, DeviceEntry, DeviceAcquisition };
6
7
  declare function parseAdbDevices(text: string): {
7
8
  udid: string;
@@ -13,9 +14,29 @@ declare function parseAccelCheck({ code, text, }: {
13
14
  code: number | null;
14
15
  text?: string;
15
16
  }): boolean;
17
+ declare function findUia2Helpers(driverRoot: string): {
18
+ driverVersion: string;
19
+ apks: string[];
20
+ } | null;
21
+ declare function bakeHelpersWith(run: (args: string[]) => Promise<{
22
+ stdout: string;
23
+ }>, udid: string, found: {
24
+ driverVersion: string;
25
+ apks: string[];
26
+ }): Promise<string>;
27
+ declare function bestEffort(step: () => unknown, log: ((message: string) => void) | undefined, what: string): Promise<boolean>;
28
+ declare function isCleanSnapshotStale(meta: {
29
+ driverVersion?: string;
30
+ } | null, driverVersion: string | undefined): boolean;
31
+ declare function cleanSnapshotSaveCommands(udid: string): string[][];
32
+ declare function saveCleanSnapshotWith(run: (args: string[]) => Promise<{
33
+ stdout: string;
34
+ }>, udid: string): Promise<boolean>;
16
35
  declare function udidForPort(port: number): string;
17
36
  declare function nextEmulatorPort(usedPorts: Iterable<number>): number;
18
- declare function emulatorBootArgs(desc: DeviceDescriptor, port: number): string[];
37
+ declare function emulatorBootArgs(desc: DeviceDescriptor, port: number, { snapshot }?: {
38
+ snapshot?: boolean;
39
+ }): string[];
19
40
  type ToolchainPlan = {
20
41
  action: "ready";
21
42
  } | {
@@ -59,6 +80,44 @@ declare function planDeviceAcquisition(desc: DeviceDescriptor, { running, avds,
59
80
  abi: string;
60
81
  javaPresent: boolean;
61
82
  }): DeviceAcquisition;
83
+ declare function waitForProcessExit(proc: {
84
+ exitCode: number | null;
85
+ signalCode?: string | null;
86
+ once: (event: "exit", cb: () => void) => any;
87
+ } | undefined, timeoutMs: number): Promise<boolean>;
88
+ declare function shutdownEmulatorWith({ flush, consoleKill, waitExit, forceKill, release, }: {
89
+ flush: () => Promise<unknown>;
90
+ consoleKill: () => Promise<boolean>;
91
+ waitExit: () => Promise<boolean>;
92
+ forceKill: () => Promise<void>;
93
+ release: () => void;
94
+ }): Promise<"graceful" | "watchdog" | "forced">;
95
+ export declare const BOOT_POLL_INTERVAL_MS = 500;
96
+ declare function waitForBootCompleted({ probe, exitCode, timeoutMs, intervalMs, sleep, now, }: {
97
+ probe: () => Promise<boolean>;
98
+ exitCode: () => number | null;
99
+ timeoutMs: number;
100
+ intervalMs?: number;
101
+ sleep?: (ms: number) => Promise<void>;
102
+ now?: () => number;
103
+ }): Promise<"booted" | "timeout" | {
104
+ exited: number;
105
+ }>;
106
+ type BootOutcome = "booted" | "timeout" | {
107
+ exited: number;
108
+ };
109
+ declare function bootWithCleanSnapshot<T extends {
110
+ outcome: BootOutcome;
111
+ }>({ hasSnapshot, attempt, discard, settle, prepare, save, }: {
112
+ hasSnapshot: boolean;
113
+ attempt: (opts: {
114
+ snapshot: boolean;
115
+ }) => Promise<T>;
116
+ discard: () => Promise<void>;
117
+ settle: () => Promise<void>;
118
+ prepare: () => Promise<void>;
119
+ save: () => Promise<void>;
120
+ }): Promise<T>;
62
121
  interface DeviceEntry {
63
122
  name: string;
64
123
  udid: string;
@@ -101,9 +160,14 @@ declare function acquireDevice({ desc, registry, sdkRoot, deps, }: {
101
160
  skip: string;
102
161
  }>;
103
162
  declare function teardownDeviceRegistry(registry: DeviceRegistry, kill: (entry: DeviceEntry) => Promise<void>): Promise<void>;
163
+ declare function adbPathForSdkRoot(sdkRoot: string): string;
104
164
  declare function checkEmulatorAcceleration(emulatorPath: string): Promise<boolean>;
105
165
  declare function hostHasKvm(): Promise<boolean>;
106
- declare function buildAcquireDeviceDeps(sdk: AndroidSdk, abi: string, log?: (m: string) => void): {
166
+ declare function shutdownEmulator(entry: DeviceEntry): Promise<void>;
167
+ declare function buildAcquireDeviceDeps(sdk: AndroidSdk, abi: string, log?: (m: string) => void, helpers?: () => {
168
+ driverVersion: string;
169
+ apks: string[];
170
+ } | null): {
107
171
  listRunning: () => Promise<{
108
172
  udid: string;
109
173
  name: string | null;
@@ -121,7 +185,6 @@ declare function buildAcquireDeviceDeps(sdk: AndroidSdk, abi: string, log?: (m:
121
185
  udid: string;
122
186
  process: any;
123
187
  }>;
124
- kill: (entry: DeviceEntry) => Promise<void>;
125
188
  log: ((m: string) => void) | undefined;
126
189
  };
127
190
  //# sourceMappingURL=androidEmulator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"androidEmulator.d.ts","sourceRoot":"","sources":["../../../src/core/tests/androidEmulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"androidEmulator.d.ts","sourceRoot":"","sources":["../../../src/core/tests/androidEmulator.ts"],"names":[],"mappings":"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"}