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.
- package/README.md +4 -4
- package/dist/agents/adapters/claude-code.d.ts.map +1 -1
- package/dist/agents/adapters/claude-code.js +1 -2
- package/dist/agents/adapters/claude-code.js.map +1 -1
- package/dist/agents/adapters/codex.d.ts.map +1 -1
- package/dist/agents/adapters/codex.js +3 -4
- package/dist/agents/adapters/codex.js.map +1 -1
- package/dist/agents/adapters/copilot-cli.d.ts.map +1 -1
- package/dist/agents/adapters/copilot-cli.js +1 -2
- package/dist/agents/adapters/copilot-cli.js.map +1 -1
- package/dist/agents/adapters/gemini-cli.d.ts.map +1 -1
- package/dist/agents/adapters/gemini-cli.js +1 -2
- package/dist/agents/adapters/gemini-cli.js.map +1 -1
- package/dist/agents/adapters/opencode.d.ts.map +1 -1
- package/dist/agents/adapters/opencode.js +1 -2
- package/dist/agents/adapters/opencode.js.map +1 -1
- package/dist/agents/adapters/qwen-code.d.ts.map +1 -1
- package/dist/agents/adapters/qwen-code.js +1 -2
- package/dist/agents/adapters/qwen-code.js.map +1 -1
- package/dist/agents/fetcher.d.ts.map +1 -1
- package/dist/agents/fetcher.js +1 -2
- package/dist/agents/fetcher.js.map +1 -1
- package/dist/common/src/ajv.d.ts +30 -0
- package/dist/common/src/ajv.d.ts.map +1 -0
- package/dist/common/src/ajv.js +131 -0
- package/dist/common/src/ajv.js.map +1 -0
- package/dist/common/src/detectTests.d.ts +2 -18
- package/dist/common/src/detectTests.d.ts.map +1 -1
- package/dist/common/src/detectTests.js +8 -77
- package/dist/common/src/detectTests.js.map +1 -1
- package/dist/common/src/schemas/referenced.d.ts +12 -0
- package/dist/common/src/schemas/referenced.d.ts.map +1 -0
- package/dist/common/src/schemas/referenced.js +10 -0
- package/dist/common/src/schemas/referenced.js.map +1 -0
- package/dist/common/src/schemas/schemas.json +2 -2
- package/dist/common/src/schemas/schemasReferenced.json +14871 -0
- package/dist/common/src/schemas/validators.cjs +509 -0
- package/dist/common/src/schemas/validatorsCheck.cjs +2 -0
- package/dist/common/src/textUtils.d.ts +25 -0
- package/dist/common/src/textUtils.d.ts.map +1 -0
- package/dist/common/src/textUtils.js +84 -0
- package/dist/common/src/textUtils.js.map +1 -0
- package/dist/common/src/types/generated/annotate_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/annotation_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/click_v3.d.ts +153 -0
- package/dist/common/src/types/generated/click_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/config_v3.d.ts +13753 -207
- package/dist/common/src/types/generated/config_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/dragAndDrop_v3.d.ts +72 -0
- package/dist/common/src/types/generated/dragAndDrop_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/find_v3.d.ts +632 -0
- package/dist/common/src/types/generated/find_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/goTo_v3.d.ts +31 -0
- package/dist/common/src/types/generated/goTo_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/httpRequest_v3.d.ts +181 -0
- package/dist/common/src/types/generated/httpRequest_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/loadCookie_v3.d.ts +30 -0
- package/dist/common/src/types/generated/loadCookie_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/report_v3.d.ts +28234 -321
- package/dist/common/src/types/generated/report_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts +42281 -822
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/saveCookie_v3.d.ts +35 -0
- package/dist/common/src/types/generated/saveCookie_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/screenshot_v3.d.ts +45 -0
- package/dist/common/src/types/generated/screenshot_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/spec_v3.d.ts +28188 -275
- package/dist/common/src/types/generated/spec_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/startSurface_v3.d.ts +63 -1
- package/dist/common/src/types/generated/startSurface_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/step_v3.d.ts +5186 -523
- package/dist/common/src/types/generated/step_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/test_v3.d.ts +13268 -3582
- package/dist/common/src/types/generated/test_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/type_v3.d.ts +62 -0
- package/dist/common/src/types/generated/type_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/waitUntil_v3.d.ts +62 -0
- package/dist/common/src/types/generated/waitUntil_v3.d.ts.map +1 -1
- package/dist/common/src/validate.d.ts +1 -1
- package/dist/common/src/validate.d.ts.map +1 -1
- package/dist/common/src/validate.js +29 -75
- package/dist/common/src/validate.js.map +1 -1
- package/dist/core/appium.d.ts +3 -2
- package/dist/core/appium.d.ts.map +1 -1
- package/dist/core/appium.js +63 -89
- package/dist/core/appium.js.map +1 -1
- package/dist/core/appiumReuse.d.ts +43 -0
- package/dist/core/appiumReuse.d.ts.map +1 -0
- package/dist/core/appiumReuse.js +226 -0
- package/dist/core/appiumReuse.js.map +1 -0
- package/dist/core/config.d.ts +10 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +37 -7
- package/dist/core/config.js.map +1 -1
- package/dist/core/detectTests.d.ts.map +1 -1
- package/dist/core/detectTests.js +51 -17
- package/dist/core/detectTests.js.map +1 -1
- package/dist/core/files.d.ts.map +1 -1
- package/dist/core/files.js +3 -4
- package/dist/core/files.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +132 -21
- package/dist/core/index.js.map +1 -1
- package/dist/core/integrations/heretto.d.ts +1 -1
- package/dist/core/integrations/heretto.d.ts.map +1 -1
- package/dist/core/integrations/heretto.js +7 -6
- package/dist/core/integrations/heretto.js.map +1 -1
- package/dist/core/lazyYaml.d.ts +2 -0
- package/dist/core/lazyYaml.d.ts.map +1 -0
- package/dist/core/lazyYaml.js +13 -0
- package/dist/core/lazyYaml.js.map +1 -0
- package/dist/core/resolveTests.js +1 -1
- package/dist/core/resolveTests.js.map +1 -1
- package/dist/core/telem.d.ts +1 -1
- package/dist/core/telem.d.ts.map +1 -1
- package/dist/core/telem.js +2 -11
- package/dist/core/telem.js.map +1 -1
- package/dist/core/telemLite.d.ts +10 -0
- package/dist/core/telemLite.d.ts.map +1 -0
- package/dist/core/telemLite.js +101 -0
- package/dist/core/telemLite.js.map +1 -0
- package/dist/core/tests/androidEmulator.d.ts +67 -4
- package/dist/core/tests/androidEmulator.d.ts.map +1 -1
- package/dist/core/tests/androidEmulator.js +366 -37
- package/dist/core/tests/androidEmulator.js.map +1 -1
- package/dist/core/tests/appSurface.d.ts +25 -6
- package/dist/core/tests/appSurface.d.ts.map +1 -1
- package/dist/core/tests/appSurface.js +88 -52
- package/dist/core/tests/appSurface.js.map +1 -1
- package/dist/core/tests/browserSessions.d.ts +2 -1
- package/dist/core/tests/browserSessions.d.ts.map +1 -1
- package/dist/core/tests/browserSessions.js +7 -1
- package/dist/core/tests/browserSessions.js.map +1 -1
- package/dist/core/tests/checkLink.d.ts +1 -0
- package/dist/core/tests/checkLink.d.ts.map +1 -1
- package/dist/core/tests/checkLink.js +14 -5
- package/dist/core/tests/checkLink.js.map +1 -1
- package/dist/core/tests/closeSurface.d.ts.map +1 -1
- package/dist/core/tests/closeSurface.js +4 -3
- package/dist/core/tests/closeSurface.js.map +1 -1
- package/dist/core/tests/findStrategies.d.ts.map +1 -1
- package/dist/core/tests/findStrategies.js +153 -116
- package/dist/core/tests/findStrategies.js.map +1 -1
- package/dist/core/tests/geckoDriver.d.ts +16 -0
- package/dist/core/tests/geckoDriver.d.ts.map +1 -0
- package/dist/core/tests/geckoDriver.js +127 -0
- package/dist/core/tests/geckoDriver.js.map +1 -0
- package/dist/core/tests/goTo.d.ts.map +1 -1
- package/dist/core/tests/goTo.js +12 -33
- package/dist/core/tests/goTo.js.map +1 -1
- package/dist/core/tests/httpRequest.d.ts.map +1 -1
- package/dist/core/tests/httpRequest.js +4 -3
- package/dist/core/tests/httpRequest.js.map +1 -1
- package/dist/core/tests/iosSimulator.d.ts +4 -1
- package/dist/core/tests/iosSimulator.d.ts.map +1 -1
- package/dist/core/tests/iosSimulator.js +49 -1
- package/dist/core/tests/iosSimulator.js.map +1 -1
- package/dist/core/tests/mobileBrowser.d.ts +2 -1
- package/dist/core/tests/mobileBrowser.d.ts.map +1 -1
- package/dist/core/tests/mobileBrowser.js +5 -2
- package/dist/core/tests/mobileBrowser.js.map +1 -1
- package/dist/core/tests/runCode.d.ts +9 -1
- package/dist/core/tests/runCode.d.ts.map +1 -1
- package/dist/core/tests/runCode.js +58 -2
- package/dist/core/tests/runCode.js.map +1 -1
- package/dist/core/tests/saveScreenshot.d.ts +18 -2
- package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
- package/dist/core/tests/saveScreenshot.js +159 -4
- package/dist/core/tests/saveScreenshot.js.map +1 -1
- package/dist/core/tests/startRecording.d.ts.map +1 -1
- package/dist/core/tests/startRecording.js +6 -4
- package/dist/core/tests/startRecording.js.map +1 -1
- package/dist/core/tests/startSurface.d.ts.map +1 -1
- package/dist/core/tests/startSurface.js +8 -2
- package/dist/core/tests/startSurface.js.map +1 -1
- package/dist/core/tests.d.ts +21 -7
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +372 -121
- package/dist/core/tests.js.map +1 -1
- package/dist/core/utils.d.ts +68 -3
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +551 -18
- package/dist/core/utils.js.map +1 -1
- package/dist/core/verification.d.ts +17 -0
- package/dist/core/verification.d.ts.map +1 -0
- package/dist/core/verification.js +850 -0
- package/dist/core/verification.js.map +1 -0
- package/dist/debug/appium.js +2 -2
- package/dist/debug/appium.js.map +1 -1
- package/dist/debug/findings.js +2 -2
- package/dist/debug/findings.js.map +1 -1
- package/dist/debug/tools.d.ts +8 -0
- package/dist/debug/tools.d.ts.map +1 -1
- package/dist/debug/tools.js +60 -22
- package/dist/debug/tools.js.map +1 -1
- package/dist/hints/context.d.ts.map +1 -1
- package/dist/hints/context.js +2 -2
- package/dist/hints/context.js.map +1 -1
- package/dist/index.cjs +25777 -4
- package/dist/reporters/htmlReporter.js +1 -1
- package/dist/runtime/androidInstaller.d.ts +45 -0
- package/dist/runtime/androidInstaller.d.ts.map +1 -1
- package/dist/runtime/androidInstaller.js +88 -5
- package/dist/runtime/androidInstaller.js.map +1 -1
- package/dist/runtime/browsers.d.ts +87 -7
- package/dist/runtime/browsers.d.ts.map +1 -1
- package/dist/runtime/browsers.js +308 -41
- package/dist/runtime/browsers.js.map +1 -1
- package/dist/runtime/cacheDir.d.ts +1 -1
- package/dist/runtime/cacheDir.d.ts.map +1 -1
- package/dist/runtime/cacheDir.js +5 -2
- package/dist/runtime/cacheDir.js.map +1 -1
- package/dist/runtime/heavyDeps.d.ts.map +1 -1
- package/dist/runtime/heavyDeps.js.map +1 -1
- package/dist/runtime/installCommand.d.ts.map +1 -1
- package/dist/runtime/installCommand.js +23 -0
- package/dist/runtime/installCommand.js.map +1 -1
- package/dist/runtime/loader.d.ts +13 -0
- package/dist/runtime/loader.d.ts.map +1 -1
- package/dist/runtime/loader.js +50 -0
- package/dist/runtime/loader.js.map +1 -1
- package/dist/runtime/wdaProducts.d.ts +12 -1
- package/dist/runtime/wdaProducts.d.ts.map +1 -1
- package/dist/runtime/wdaProducts.js +27 -2
- package/dist/runtime/wdaProducts.js.map +1 -1
- package/dist/runtime/windowsBash.d.ts +6 -1
- package/dist/runtime/windowsBash.d.ts.map +1 -1
- package/dist/runtime/windowsBash.js +45 -4
- package/dist/runtime/windowsBash.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +19 -5
- package/dist/utils.js.map +1 -1
- 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
|
|
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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"androidEmulator.d.ts","sourceRoot":"","sources":["../../../src/core/tests/androidEmulator.ts"],"names":[],"mappings":"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"}
|