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
package/dist/runtime/browsers.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
2
|
import fs from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import { getBrowsersDir, readInstalledRecord, writeInstalledRecord, } from "./cacheDir.js";
|
|
5
6
|
import { loadHeavyDep } from "./loader.js";
|
|
@@ -19,7 +20,19 @@ const DRIVER_VERIFY_TIMEOUT_MS = 10_000;
|
|
|
19
20
|
// path with a single anchored regex — rather than a derived basename — both
|
|
20
21
|
// refuses an arbitrarily-named binary and gives static analysis a barrier on
|
|
21
22
|
// the exact value that reaches the child process.
|
|
22
|
-
|
|
23
|
+
//
|
|
24
|
+
// The optional `-<version>` segment is required, not cosmetic: the geckodriver
|
|
25
|
+
// npm package writes its binary as `geckodriver-<version>` (plus `.exe` on
|
|
26
|
+
// Windows), never the bare name, so without it every install of that driver
|
|
27
|
+
// fails this gate. It is scoped to geckodriver alone, because that is the only
|
|
28
|
+
// driver written with a versioned filename. @puppeteer/browsers writes a bare
|
|
29
|
+
// `chromedriver`, and safaridriver is a fixed OS path, so extending the suffix
|
|
30
|
+
// to them would widen what can reach execFile for no functional gain. The
|
|
31
|
+
// suffix is a dotted-numeric run: it admits the real shape
|
|
32
|
+
// (`geckodriver-0.37.1`) while still refusing look-alikes such as
|
|
33
|
+
// `geckodriver-evil.sh`, and it can contain no path separator, so the matched
|
|
34
|
+
// name is still a single final segment.
|
|
35
|
+
const ALLOWED_DRIVER_PATH = /[\\/](?:geckodriver(?:-\d+(?:\.\d+)*)?|chromedriver|safaridriver)(?:\.exe)?$/i;
|
|
23
36
|
function isAllowedDriverPath(binaryPath) {
|
|
24
37
|
return (typeof binaryPath === "string" &&
|
|
25
38
|
path.isAbsolute(binaryPath) &&
|
|
@@ -33,8 +46,110 @@ function parseDriverVersion(output) {
|
|
|
33
46
|
const m = output.match(/(\d+\.\d+(?:\.\d+)*)/);
|
|
34
47
|
return m ? m[1] : undefined;
|
|
35
48
|
}
|
|
49
|
+
// Number of leading bytes `verifyDriverBinary` reads to identify the image.
|
|
50
|
+
// An ELF header is 64 bytes; everything the arch check needs sits in the first
|
|
51
|
+
// 20.
|
|
52
|
+
const EXECUTABLE_HEADER_BYTES = 64;
|
|
53
|
+
// e_machine values (ELF) for the architectures Node reports in `process.arch`.
|
|
54
|
+
// Only architectures with an unambiguous mapping are listed — an arch that
|
|
55
|
+
// isn't here yields no verdict at all, so the check can only ever *add* a
|
|
56
|
+
// refusal it can prove, never invent one.
|
|
57
|
+
const ELF_MACHINE_BY_NODE_ARCH = {
|
|
58
|
+
x64: { machine: 0x3e, label: "x86-64" },
|
|
59
|
+
ia32: { machine: 0x03, label: "x86" },
|
|
60
|
+
arm64: { machine: 0xb7, label: "arm64 (AArch64)" },
|
|
61
|
+
arm: { machine: 0x28, label: "arm" },
|
|
62
|
+
ppc64: { machine: 0x15, label: "ppc64" },
|
|
63
|
+
s390x: { machine: 0x16, label: "s390x" },
|
|
64
|
+
riscv64: { machine: 0xf3, label: "riscv64" },
|
|
65
|
+
loong64: { machine: 0x102, label: "loong64" },
|
|
66
|
+
};
|
|
67
|
+
const ELF_MACHINE_LABELS = Object.fromEntries(Object.values(ELF_MACHINE_BY_NODE_ARCH).map((m) => [m.machine, m.label]));
|
|
68
|
+
/**
|
|
69
|
+
* Explain why an executable image definitely cannot run on this host, or
|
|
70
|
+
* `undefined` when there is no proof that it can't.
|
|
71
|
+
*
|
|
72
|
+
* WHY this exists at all: executing a foreign-architecture binary is NOT a
|
|
73
|
+
* benign "it fails and we report it". `execve` returns ENOEXEC, and glibc's
|
|
74
|
+
* `execvp` — which libuv/Node's `spawn` goes through — then *retries the file
|
|
75
|
+
* through `/bin/sh`*. The shell proceeds to interpret tens of megabytes of
|
|
76
|
+
* binary as a shell script in the caller's working directory: it reports
|
|
77
|
+
* `ELF: not found` for the first "word", and any byte sequence that happens to
|
|
78
|
+
* parse as a redirection creates a file (with an undecodable, non-UTF-8 name)
|
|
79
|
+
* right there in the user's project. That is exactly how the arm64 Docker build
|
|
80
|
+
* failed — a stray `/app/<binary garbage>` entry then crashed the input scan.
|
|
81
|
+
* So the only safe move is to never hand such an image to a child process.
|
|
82
|
+
*
|
|
83
|
+
* This bites in practice because Google's Chrome for Testing publishes no
|
|
84
|
+
* native `linux-arm64` chromedriver and `@puppeteer/browsers` maps
|
|
85
|
+
* `BrowserPlatform.LINUX_ARM` to the **x64** asset, so a native arm64 Linux
|
|
86
|
+
* host "installs" an x86-64 binary.
|
|
87
|
+
*
|
|
88
|
+
* Deliberately Linux/ELF-only and deliberately conservative:
|
|
89
|
+
* - macOS runs x86-64 binaries on arm64 through Rosetta 2, and Windows on ARM
|
|
90
|
+
* emulates x64 — a mismatch there is not proof of anything, so no verdict.
|
|
91
|
+
* - A non-ELF image, a truncated header, a header with no valid byte order, or
|
|
92
|
+
* a *host* architecture this table doesn't map yields no verdict, and the
|
|
93
|
+
* normal execute-and-report path still runs. (An unmapped value in the
|
|
94
|
+
* *binary's* e_machine is different: the host arch is known, so the
|
|
95
|
+
* mismatch is proven and the image is refused under a generic label.)
|
|
96
|
+
* The result is a check that only ever converts a *provable* platform gap into
|
|
97
|
+
* a clear message; every uncertain case degrades to the pre-existing behavior.
|
|
98
|
+
*/
|
|
99
|
+
export function foreignExecutableImageReason(header, env = {}) {
|
|
100
|
+
const platform = env.platform ?? process.platform;
|
|
101
|
+
const arch = env.arch ?? process.arch;
|
|
102
|
+
// Only Linux refuses a foreign image outright; every other platform we
|
|
103
|
+
// support has transparent emulation for the mismatch that matters.
|
|
104
|
+
if (platform !== "linux")
|
|
105
|
+
return undefined;
|
|
106
|
+
if (!header || header.length < 20)
|
|
107
|
+
return undefined;
|
|
108
|
+
// ELF magic: 0x7F 'E' 'L' 'F'
|
|
109
|
+
if (header[0] !== 0x7f ||
|
|
110
|
+
header[1] !== 0x45 ||
|
|
111
|
+
header[2] !== 0x4c ||
|
|
112
|
+
header[3] !== 0x46) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
const expected = ELF_MACHINE_BY_NODE_ARCH[arch];
|
|
116
|
+
if (!expected)
|
|
117
|
+
return undefined;
|
|
118
|
+
// EI_DATA (byte 5): 1 = little-endian, 2 = big-endian, and nothing else
|
|
119
|
+
// defines a byte order. A header declaring anything else is malformed, so
|
|
120
|
+
// e_machine can't be decoded from it — and a verdict read out of an
|
|
121
|
+
// undecodable field would be an invented refusal, which is exactly what this
|
|
122
|
+
// helper must never produce.
|
|
123
|
+
const elfData = header[5];
|
|
124
|
+
if (elfData !== 1 && elfData !== 2)
|
|
125
|
+
return undefined;
|
|
126
|
+
// e_machine is a 2-byte field at offset 18, in the header's own byte order.
|
|
127
|
+
const littleEndian = elfData === 1;
|
|
128
|
+
const machine = littleEndian
|
|
129
|
+
? header[18] | (header[19] << 8)
|
|
130
|
+
: (header[18] << 8) | header[19];
|
|
131
|
+
if (machine === expected.machine)
|
|
132
|
+
return undefined;
|
|
133
|
+
const found = ELF_MACHINE_LABELS[machine] ?? `ELF machine 0x${machine.toString(16)}`;
|
|
134
|
+
return `the binary targets ${found} but this host is linux/${expected.label}; it cannot be executed here (upstream may publish no native build for this platform)`;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Child-process options for executing a driver binary.
|
|
138
|
+
*
|
|
139
|
+
* `cwd` is pinned to the OS temp directory rather than inherited. This is
|
|
140
|
+
* defense in depth for the ENOEXEC → `/bin/sh` fallback that
|
|
141
|
+
* `foreignExecutableImageReason` can't always predict (a truncated but
|
|
142
|
+
* well-formed image, a missing dynamic loader): if a shell does end up
|
|
143
|
+
* interpreting the binary, its redirections land in a scratch directory
|
|
144
|
+
* instead of littering the user's input tree with undecodable filenames.
|
|
145
|
+
* A driver's `--version` probe has no working-directory dependency, so
|
|
146
|
+
* relocating it is invisible to the check itself.
|
|
147
|
+
*/
|
|
148
|
+
export function driverExecOptions(timeoutMs) {
|
|
149
|
+
return { timeout: timeoutMs, windowsHide: true, cwd: os.tmpdir() };
|
|
150
|
+
}
|
|
36
151
|
const defaultDriverExec = (binaryPath, args, timeoutMs) => new Promise((resolve) => {
|
|
37
|
-
execFile(binaryPath, args,
|
|
152
|
+
execFile(binaryPath, args, driverExecOptions(timeoutMs), (err, stdout, stderr) => {
|
|
38
153
|
const out = typeof stdout === "string" ? stdout : String(stdout ?? "");
|
|
39
154
|
const errOut = typeof stderr === "string" ? stderr : String(stderr ?? "");
|
|
40
155
|
if (err && typeof err.code === "number") {
|
|
@@ -71,6 +186,36 @@ export async function verifyDriverBinary(driverName, binaryPath, options = {}) {
|
|
|
71
186
|
error: `Refusing to execute '${binaryPath}': not a recognized driver binary path.`,
|
|
72
187
|
};
|
|
73
188
|
}
|
|
189
|
+
// Identify the image BEFORE spawning. A foreign-architecture binary must
|
|
190
|
+
// never reach a child process: execve returns ENOEXEC and glibc's execvp
|
|
191
|
+
// retries it through /bin/sh, which interprets the binary as a shell script
|
|
192
|
+
// in the caller's cwd (see foreignExecutableImageReason). Reading the header
|
|
193
|
+
// is best-effort — an unreadable file falls through to the spawn path, which
|
|
194
|
+
// reports the real error.
|
|
195
|
+
let header;
|
|
196
|
+
try {
|
|
197
|
+
const fd = fs.openSync(binaryPath, "r");
|
|
198
|
+
try {
|
|
199
|
+
const buf = Buffer.alloc(EXECUTABLE_HEADER_BYTES);
|
|
200
|
+
const read = fs.readSync(fd, buf, 0, EXECUTABLE_HEADER_BYTES, 0);
|
|
201
|
+
header = buf.subarray(0, read);
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
fs.closeSync(fd);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
header = undefined;
|
|
209
|
+
}
|
|
210
|
+
if (header) {
|
|
211
|
+
const foreign = foreignExecutableImageReason(header, options.imageEnv);
|
|
212
|
+
if (foreign) {
|
|
213
|
+
return {
|
|
214
|
+
ok: false,
|
|
215
|
+
error: `${driverName} cannot run on this host: ${foreign}.`,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}
|
|
74
219
|
const key = String(driverName ?? "").toLowerCase();
|
|
75
220
|
const args = DRIVER_VERSION_ARGS[key] ?? ["--version"];
|
|
76
221
|
const exec = options.exec ?? defaultDriverExec;
|
|
@@ -166,10 +311,12 @@ async function loadPuppeteerBrowsers(deps, ctx) {
|
|
|
166
311
|
return deps.browsersModule;
|
|
167
312
|
return await loadHeavyDep("@puppeteer/browsers", { ctx, deps: { logger: deps.logger } });
|
|
168
313
|
}
|
|
314
|
+
// geckodriver 8's CommonJS entry re-exports its ESM build (`module.exports =
|
|
315
|
+
// require('../index.js')`), which import() exposes only as `default`.
|
|
169
316
|
async function loadGeckodriver(deps, ctx) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
return
|
|
317
|
+
const mod = deps.geckodriverModule ??
|
|
318
|
+
(await loadHeavyDep("geckodriver", { ctx, deps: { logger: deps.logger } }));
|
|
319
|
+
return mod.default ?? mod;
|
|
173
320
|
}
|
|
174
321
|
function isStillFresh(latestCheckedAt, now) {
|
|
175
322
|
if (!latestCheckedAt)
|
|
@@ -414,37 +561,140 @@ function isPathInside(child, dir) {
|
|
|
414
561
|
return (resolvedChild === resolvedDir ||
|
|
415
562
|
resolvedChild.startsWith(resolvedDir + path.sep));
|
|
416
563
|
}
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
const
|
|
564
|
+
// The name the geckodriver npm package actually writes: it renames the
|
|
565
|
+
// generically-named binary out of its extraction staging dir to
|
|
566
|
+
// `geckodriver-<version>` (`.exe` on Windows) so concurrent cache lookups
|
|
567
|
+
// resolve to a specific version. Anchored and dotted-numeric so it can't match
|
|
568
|
+
// the `geckodriver-<random>` *staging directories* `fs.mkdtemp` leaves behind
|
|
569
|
+
// when a download crashes mid-extract.
|
|
570
|
+
const GECKODRIVER_VERSIONED_NAME = /^geckodriver-(\d+(?:\.\d+)*)(\.exe)?$/i;
|
|
571
|
+
// Descending semver-ish compare on dotted-numeric runs: negative when `a` is
|
|
572
|
+
// the newer version. Missing segments count as 0 ("0.37" < "0.37.1").
|
|
573
|
+
function compareGeckodriverVersionsDesc(a, b) {
|
|
574
|
+
const pa = a.split(".");
|
|
575
|
+
const pb = b.split(".");
|
|
576
|
+
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
577
|
+
const da = Number(pa[i] ?? 0);
|
|
578
|
+
const db = Number(pb[i] ?? 0);
|
|
579
|
+
if (da !== db)
|
|
580
|
+
return db - da;
|
|
581
|
+
}
|
|
582
|
+
return 0;
|
|
583
|
+
}
|
|
584
|
+
// Whether a directory entry is a regular file, resolving one level of symlink.
|
|
585
|
+
//
|
|
586
|
+
// `!entry.isDirectory()` is NOT good enough here, and the failure it allows is a
|
|
587
|
+
// hang rather than an error: `verifyDriverBinary` opens the candidate to read
|
|
588
|
+
// its ELF header, and opening a FIFO with no writer blocks forever. A named
|
|
589
|
+
// pipe (or socket, or device node) sitting in the cache under a driver's name
|
|
590
|
+
// would therefore wedge the whole run. Requiring a regular file excludes all of
|
|
591
|
+
// them.
|
|
592
|
+
//
|
|
593
|
+
// Symlinks still count when they resolve to a regular file: readdir reports the
|
|
594
|
+
// link itself, so an `isFile()`-only test would silently stop finding a binary
|
|
595
|
+
// someone linked into the cache. `statSync` follows the link and, unlike
|
|
596
|
+
// `open`, does not block on a FIFO — so a link to one is rejected, not hung on.
|
|
597
|
+
function isRegularFileEntry(dir, entry) {
|
|
598
|
+
if (entry.isFile())
|
|
599
|
+
return true;
|
|
600
|
+
if (!entry.isSymbolicLink())
|
|
601
|
+
return false;
|
|
428
602
|
try {
|
|
429
|
-
|
|
430
|
-
return rootCandidate;
|
|
603
|
+
return fs.statSync(path.join(dir, entry.name)).isFile();
|
|
431
604
|
}
|
|
432
605
|
catch {
|
|
433
|
-
//
|
|
606
|
+
// Broken link, or a permissions problem: not a usable binary either way.
|
|
607
|
+
return false;
|
|
434
608
|
}
|
|
609
|
+
}
|
|
610
|
+
// One directory listing, or [] when the directory is missing or unreadable.
|
|
611
|
+
function readDirEntries(dir) {
|
|
435
612
|
try {
|
|
436
|
-
|
|
437
|
-
if (!entry.isDirectory())
|
|
438
|
-
continue;
|
|
439
|
-
const nested = path.join(cacheDir, entry.name, binName);
|
|
440
|
-
if (fs.existsSync(nested))
|
|
441
|
-
return nested;
|
|
442
|
-
}
|
|
613
|
+
return fs.readdirSync(dir, { withFileTypes: true });
|
|
443
614
|
}
|
|
444
615
|
catch {
|
|
445
|
-
|
|
616
|
+
return [];
|
|
446
617
|
}
|
|
447
|
-
|
|
618
|
+
}
|
|
619
|
+
// The bare `geckodriver(.exe)` inside `dir`, or undefined. Resolved from the
|
|
620
|
+
// directory listing rather than `fs.existsSync`, which answers true for a
|
|
621
|
+
// DIRECTORY of that name. Returning one would pass the allowlist (it ends in
|
|
622
|
+
// `geckodriver`) and fail only later at execFile, which is exactly the
|
|
623
|
+
// directory-as-executable confusion this probe exists to prevent. Anything that
|
|
624
|
+
// is not a regular file is rejected — see isRegularFileEntry.
|
|
625
|
+
function bareBinaryIn(dir, binName, entries) {
|
|
626
|
+
const match = entries.find((entry) => entry.name === binName && isRegularFileEntry(dir, entry));
|
|
627
|
+
return match ? path.join(dir, binName) : undefined;
|
|
628
|
+
}
|
|
629
|
+
// Newest `geckodriver-<version>` file in an already-read listing of `dir`, or
|
|
630
|
+
// undefined. Only regular files count, so a leftover extraction staging dir is
|
|
631
|
+
// never mistaken for the binary (and a FIFO can never wedge the header read).
|
|
632
|
+
function newestVersionedIn(dir, entries) {
|
|
633
|
+
const wantExe = process.platform === "win32";
|
|
634
|
+
let best;
|
|
635
|
+
for (const entry of entries) {
|
|
636
|
+
if (!isRegularFileEntry(dir, entry))
|
|
637
|
+
continue;
|
|
638
|
+
const match = GECKODRIVER_VERSIONED_NAME.exec(entry.name);
|
|
639
|
+
if (!match)
|
|
640
|
+
continue;
|
|
641
|
+
// Only the platform's own executable form counts.
|
|
642
|
+
if (wantExe !== Boolean(match[2]))
|
|
643
|
+
continue;
|
|
644
|
+
if (!best || compareGeckodriverVersionsDesc(match[1], best.version) < 0) {
|
|
645
|
+
best = { version: match[1], file: path.join(dir, entry.name) };
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
return best;
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Probe a browsers cache dir for the geckodriver binary a download wrote.
|
|
652
|
+
* Returns its path if found at the cache root or one level deep (some layouts
|
|
653
|
+
* nest under a version dir), else undefined. Both the bare `geckodriver(.exe)`
|
|
654
|
+
* name and the `geckodriver-<version>(.exe)` name the npm package actually
|
|
655
|
+
* writes are recognized.
|
|
656
|
+
*
|
|
657
|
+
* Every supported location is scanned BEFORE anything is selected, so a root
|
|
658
|
+
* `geckodriver-0.36.0` can't win over a nested `geckodriver-0.37.1` merely by
|
|
659
|
+
* being looked at first. Selection order:
|
|
660
|
+
*
|
|
661
|
+
* 1. the newest version-suffixed binary found anywhere (root or one deep);
|
|
662
|
+
* 2. failing that, a bare-named binary, root before nested.
|
|
663
|
+
*
|
|
664
|
+
* Version-suffixed wins over bare because the current package only ever writes
|
|
665
|
+
* versioned names, so a versioned file is both the authoritative managed
|
|
666
|
+
* artifact and the only one carrying a comparable version. A bare
|
|
667
|
+
* `geckodriver` is a legacy or hand-placed artifact whose version can't be
|
|
668
|
+
* known without executing it, so preferring it would let a stale leftover
|
|
669
|
+
* silently outrank a freshly installed driver.
|
|
670
|
+
*
|
|
671
|
+
* Exported so the availability probe (Layer 2 in core/config) can resolve the
|
|
672
|
+
* same binary the install path uses when the geckodriver module exposes no
|
|
673
|
+
* `.path` — otherwise the functional driver gate would silently not run for a
|
|
674
|
+
* present-but-broken geckodriver.
|
|
675
|
+
*/
|
|
676
|
+
export function geckodriverBinaryInCache(cacheDir) {
|
|
677
|
+
const binName = process.platform === "win32" ? "geckodriver.exe" : "geckodriver";
|
|
678
|
+
// A missing or unreadable cacheDir yields an empty listing, so the whole
|
|
679
|
+
// probe degrades to "nothing found" instead of throwing mid-scan.
|
|
680
|
+
const rootEntries = readDirEntries(cacheDir);
|
|
681
|
+
// Collect every candidate first; decide afterwards.
|
|
682
|
+
let bestVersioned = newestVersionedIn(cacheDir, rootEntries);
|
|
683
|
+
let bestBare = bareBinaryIn(cacheDir, binName, rootEntries);
|
|
684
|
+
for (const entry of rootEntries) {
|
|
685
|
+
if (!entry.isDirectory())
|
|
686
|
+
continue;
|
|
687
|
+
const dir = path.join(cacheDir, entry.name);
|
|
688
|
+
const nestedEntries = readDirEntries(dir);
|
|
689
|
+
const nestedVersioned = newestVersionedIn(dir, nestedEntries);
|
|
690
|
+
if (nestedVersioned &&
|
|
691
|
+
(!bestVersioned ||
|
|
692
|
+
compareGeckodriverVersionsDesc(nestedVersioned.version, bestVersioned.version) < 0)) {
|
|
693
|
+
bestVersioned = nestedVersioned;
|
|
694
|
+
}
|
|
695
|
+
bestBare = bestBare ?? bareBinaryIn(dir, binName, nestedEntries);
|
|
696
|
+
}
|
|
697
|
+
return bestVersioned?.file ?? bestBare;
|
|
448
698
|
}
|
|
449
699
|
// Geckodriver lives in its own npm package (not under @puppeteer/browsers).
|
|
450
700
|
// Channel resolution is "always latest stable from Mozilla" via
|
|
@@ -452,12 +702,19 @@ export function geckodriverBinaryInCache(cacheDir) {
|
|
|
452
702
|
// pin a specific version, but we leave it unset to track latest.
|
|
453
703
|
async function ensureGeckodriver(ctxBag, record, existing, logger) {
|
|
454
704
|
const cacheDir = getBrowsersDir(ctxBag.ctx);
|
|
455
|
-
// Resolve the actual geckodriver binary path.
|
|
456
|
-
// `.path` field computed at module load from
|
|
457
|
-
// module is import-cached, so a non-empty
|
|
458
|
-
// cache dir than this call's. Only trust
|
|
459
|
-
// current cacheDir; otherwise probe the cache
|
|
460
|
-
//
|
|
705
|
+
// Resolve the actual geckodriver binary path. Older versions of the npm
|
|
706
|
+
// package exported a `.path` field computed at module load from
|
|
707
|
+
// GECKODRIVER_CACHE_DIR — but the module is import-cached, so a non-empty
|
|
708
|
+
// `.path` can point at a *different* cache dir than this call's. Only trust
|
|
709
|
+
// it when it resolves inside the current cacheDir; otherwise probe the cache
|
|
710
|
+
// for the real binary.
|
|
711
|
+
//
|
|
712
|
+
// When neither locates a binary the answer is `undefined`, not the cache
|
|
713
|
+
// directory: a directory is not an executable, and handing one to
|
|
714
|
+
// `verifyDriverBinary` produced the misleading "Refusing to execute
|
|
715
|
+
// '<cacheDir>': not a recognized driver binary path" that skipped geckodriver
|
|
716
|
+
// on every containerized install. Callers already degrade an absent driver
|
|
717
|
+
// path to the runtime fallback (Layer 4).
|
|
461
718
|
const resolveBinaryPath = (gecko) => {
|
|
462
719
|
const fromModule = gecko &&
|
|
463
720
|
typeof gecko.path === "string" &&
|
|
@@ -465,8 +722,16 @@ async function ensureGeckodriver(ctxBag, record, existing, logger) {
|
|
|
465
722
|
isPathInside(gecko.path, cacheDir)
|
|
466
723
|
? gecko.path
|
|
467
724
|
: null;
|
|
468
|
-
return fromModule ?? geckodriverBinaryInCache(cacheDir)
|
|
725
|
+
return fromModule ?? geckodriverBinaryInCache(cacheDir);
|
|
469
726
|
};
|
|
727
|
+
// `download()` returns the absolute path it wrote — the only direct signal in
|
|
728
|
+
// geckodriver >= 6, which exports no `.path` at all. Trust it when it lands
|
|
729
|
+
// inside our cache dir; otherwise fall back to probing.
|
|
730
|
+
const resolveDownloadedPath = (downloaded, gecko) => typeof downloaded === "string" &&
|
|
731
|
+
downloaded.length > 0 &&
|
|
732
|
+
isPathInside(downloaded, cacheDir)
|
|
733
|
+
? downloaded
|
|
734
|
+
: resolveBinaryPath(gecko);
|
|
470
735
|
if (!ctxBag.force && existing && isStillFresh(existing.latestCheckedAt, ctxBag.now)) {
|
|
471
736
|
// Load the geckodriver module so the returned `path` is the actual
|
|
472
737
|
// binary path, not just the cache directory — matches the contract
|
|
@@ -499,27 +764,27 @@ async function ensureGeckodriver(ctxBag, record, existing, logger) {
|
|
|
499
764
|
return await withGeckodriverCacheDir(cacheDir, async () => {
|
|
500
765
|
const gecko = await loadGeckodriver(ctxBag.deps, ctxBag.ctx);
|
|
501
766
|
logger(`Installing geckodriver into ${cacheDir}`, "info");
|
|
502
|
-
await gecko.download();
|
|
767
|
+
let downloaded = await gecko.download();
|
|
503
768
|
// Validate by execution, not just presence: a partial download (seen on
|
|
504
769
|
// Windows) leaves a binary on disk that doesn't actually run. If the
|
|
505
770
|
// first download fails validation, quarantine the artifact and
|
|
506
771
|
// re-download exactly once before giving up.
|
|
507
|
-
let binaryPath =
|
|
772
|
+
let binaryPath = resolveDownloadedPath(downloaded, gecko);
|
|
508
773
|
let verify = await verifyDriverBinary("geckodriver", binaryPath, {
|
|
509
774
|
exec: ctxBag.deps.verifyExec,
|
|
510
775
|
});
|
|
511
776
|
if (!verify.ok) {
|
|
512
777
|
logger(`Downloaded geckodriver failed validation (${verify.error}); re-downloading once.`, "warn");
|
|
513
778
|
try {
|
|
514
|
-
if (binaryPath &&
|
|
779
|
+
if (binaryPath && fs.statSync(binaryPath).isFile()) {
|
|
515
780
|
fs.rmSync(binaryPath, { force: true });
|
|
516
781
|
}
|
|
517
782
|
}
|
|
518
783
|
catch {
|
|
519
784
|
// Best-effort quarantine; re-download will overwrite regardless.
|
|
520
785
|
}
|
|
521
|
-
await gecko.download();
|
|
522
|
-
binaryPath =
|
|
786
|
+
downloaded = await gecko.download();
|
|
787
|
+
binaryPath = resolveDownloadedPath(downloaded, gecko);
|
|
523
788
|
verify = await verifyDriverBinary("geckodriver", binaryPath, {
|
|
524
789
|
exec: ctxBag.deps.verifyExec,
|
|
525
790
|
});
|
|
@@ -528,7 +793,9 @@ async function ensureGeckodriver(ctxBag, record, existing, logger) {
|
|
|
528
793
|
// Don't launder a broken binary into a "valid" record. Throwing lets
|
|
529
794
|
// the install-gate caller record this asset as failed, and the runner
|
|
530
795
|
// surface a diagnostic skip / fall back to another browser.
|
|
531
|
-
throw new Error(`geckodriver is present but non-functional after a re-download (${verify.error}).
|
|
796
|
+
throw new Error(`geckodriver is present but non-functional after a re-download (${verify.error}). ${binaryPath
|
|
797
|
+
? `It may be a partial or corrupt download; delete ${binaryPath} or reinstall.`
|
|
798
|
+
: `No geckodriver binary could be located under ${cacheDir}; reinstall.`}`);
|
|
532
799
|
}
|
|
533
800
|
// The validated binary's own --version output is the source of truth —
|
|
534
801
|
// never record "unknown".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browsers.js","sourceRoot":"","sources":["../../src/runtime/browsers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browsers.js","sourceRoot":"","sources":["../../src/runtime/browsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ export interface CacheDirContext {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Resolve the cache root, honoring DOC_DETECTIVE_CACHE_DIR > config.cacheDir
|
|
38
|
-
* > <os.
|
|
38
|
+
* > <os.homedir()>/.doc-detective. The directory is created if missing — every
|
|
39
39
|
* downstream helper depends on it existing, and lazy-mkdir at first read is
|
|
40
40
|
* the single chokepoint that lets us avoid sprinkling existsSync/mkdirSync
|
|
41
41
|
* across the codebase.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheDir.d.ts","sourceRoot":"","sources":["../../src/runtime/cacheDir.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE3C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAE3B,GAAG,CAAC,EAAE,YAAY,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"cacheDir.d.ts","sourceRoot":"","sources":["../../src/runtime/cacheDir.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE3C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAE3B,GAAG,CAAC,EAAE,YAAY,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAaD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,eAAoB,GAAG,MAAM,CAsB7D;AAiCD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASpE;AAED,wBAAgB,aAAa,CAAC,GAAG,GAAE,eAAoB,GAAG,MAAM,CAE/D;AAED,wBAAgB,cAAc,CAAC,GAAG,GAAE,eAAoB,GAAG,MAAM,CAgChE;AAgBD,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,eAAoB,GAAG,MAAM,CAExE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,eAAoB,GAAG,eAAe,CAgC9E;AAMD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,eAAoB,GACxB,IAAI,CA8BN"}
|
package/dist/runtime/cacheDir.js
CHANGED
|
@@ -6,12 +6,15 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
6
6
|
function emptyRecord() {
|
|
7
7
|
return { npmPackages: {}, browsers: {} };
|
|
8
8
|
}
|
|
9
|
+
// A persistent per-user dir, NOT the OS temp dir (ADR 01105): temp is cleared
|
|
10
|
+
// on reboot, and its `doc-detective/` root is also where cleanTemp sweeps run
|
|
11
|
+
// scratch — a cache there lost its Android SDK/JRE/WDA builds after each run.
|
|
9
12
|
function defaultCacheRoot() {
|
|
10
|
-
return path.join(os.
|
|
13
|
+
return path.join(os.homedir(), ".doc-detective");
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
13
16
|
* Resolve the cache root, honoring DOC_DETECTIVE_CACHE_DIR > config.cacheDir
|
|
14
|
-
* > <os.
|
|
17
|
+
* > <os.homedir()>/.doc-detective. The directory is created if missing — every
|
|
15
18
|
* downstream helper depends on it existing, and lazy-mkdir at first read is
|
|
16
19
|
* the single chokepoint that lets us avoid sprinkling existsSync/mkdirSync
|
|
17
20
|
* across the codebase.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheDir.js","sourceRoot":"","sources":["../../src/runtime/cacheDir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAwD/D,SAAS,WAAW;IAClB,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"cacheDir.js","sourceRoot":"","sources":["../../src/runtime/cacheDir.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heavyDeps.d.ts","sourceRoot":"","sources":["../../src/runtime/heavyDeps.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,YACzB,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,OAAO,EACP,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,OAAO,EAKP,yCAAyC,CACjC,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;;;;;;GAOG;AAIH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAEnD,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAE5D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAQ5D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAOrE;AAED,MAAM,WAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"heavyDeps.d.ts","sourceRoot":"","sources":["../../src/runtime/heavyDeps.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,YACzB,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,OAAO,EACP,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,OAAO,EAKP,yCAAyC,CACjC,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;;;;;;GAOG;AAIH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAEnD,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAE5D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAQ5D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAOrE;AAED,MAAM,WAAW,eAAe;IAO9B,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAaD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,CAcR;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CA2BxE"}
|