audit-tools 0.55.6 → 0.55.7
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/dist/audit/cli/lineIndex.d.ts.map +1 -1
- package/dist/audit/cli/lineIndex.js +19 -41
- package/dist/audit/cli/lineIndex.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +5 -2
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +6 -6
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +52 -129
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/extractors/disposition.d.ts.map +1 -1
- package/dist/audit/extractors/disposition.js +14 -38
- package/dist/audit/extractors/disposition.js.map +1 -1
- package/dist/audit/extractors/readFileText.d.ts.map +1 -1
- package/dist/audit/extractors/readFileText.js +34 -5
- package/dist/audit/extractors/readFileText.js.map +1 -1
- package/dist/audit/orchestrator/acquisitionExecutor.d.ts +5 -2
- package/dist/audit/orchestrator/acquisitionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/acquisitionExecutor.js +28 -22
- package/dist/audit/orchestrator/acquisitionExecutor.js.map +1 -1
- package/dist/audit/orchestrator/reviewPacketSizing.d.ts +4 -4
- package/dist/audit/orchestrator/reviewPacketSizing.d.ts.map +1 -1
- package/dist/audit/orchestrator/reviewPacketSizing.js +5 -5
- package/dist/audit/orchestrator/reviewPacketSizing.js.map +1 -1
- package/dist/audit/orchestrator/reviewPackets.d.ts.map +1 -1
- package/dist/audit/orchestrator/reviewPackets.js +10 -5
- package/dist/audit/orchestrator/reviewPackets.js.map +1 -1
- package/dist/audit/orchestrator/runtimeCommand.d.ts +9 -2
- package/dist/audit/orchestrator/runtimeCommand.d.ts.map +1 -1
- package/dist/audit/orchestrator/runtimeCommand.js +14 -22
- package/dist/audit/orchestrator/runtimeCommand.js.map +1 -1
- package/dist/audit/orchestrator/scopeIndexBaseline.d.ts.map +1 -1
- package/dist/audit/orchestrator/scopeIndexBaseline.js +7 -29
- package/dist/audit/orchestrator/scopeIndexBaseline.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/conflict.d.ts +6 -2
- package/dist/audit/orchestrator/selectiveDeepening/conflict.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/conflict.js +45 -4
- package/dist/audit/orchestrator/selectiveDeepening/conflict.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/index.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/index.js +4 -4
- package/dist/audit/orchestrator/selectiveDeepening/index.js.map +1 -1
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +10 -7
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/closeAcceptance.d.ts.map +1 -1
- package/dist/remediate/phases/closeAcceptance.js +2 -0
- package/dist/remediate/phases/closeAcceptance.js.map +1 -1
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts +2 -1
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts.map +1 -1
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.js +10 -9
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.js.map +1 -1
- package/dist/remediate/state/dirtyBaseline.d.ts +10 -0
- package/dist/remediate/state/dirtyBaseline.d.ts.map +1 -0
- package/dist/remediate/state/dirtyBaseline.js +18 -0
- package/dist/remediate/state/dirtyBaseline.js.map +1 -0
- package/dist/remediate/state/store.d.ts +4 -4
- package/dist/remediate/state/store.d.ts.map +1 -1
- package/dist/remediate/state/store.js +8 -0
- package/dist/remediate/state/store.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostCorroboration.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostCorroboration.js +34 -82
- package/dist/remediate/steps/dispatch/hostCorroboration.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js +6 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
- package/dist/remediate/steps/finalGate.d.ts.map +1 -1
- package/dist/remediate/steps/finalGate.js +11 -5
- package/dist/remediate/steps/finalGate.js.map +1 -1
- package/dist/remediate/steps/gateCommands.d.ts +1 -0
- package/dist/remediate/steps/gateCommands.d.ts.map +1 -1
- package/dist/remediate/steps/gateCommands.js +7 -11
- package/dist/remediate/steps/gateCommands.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +37 -14
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.d.ts +12 -5
- package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.js +86 -38
- package/dist/shared/analyzers/acquisitionEngine.js.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.d.ts +17 -41
- package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.js +260 -227
- package/dist/shared/analyzers/binaryAcquisition.js.map +1 -1
- package/dist/shared/analyzers/binaryFetcher.d.ts +4 -0
- package/dist/shared/analyzers/binaryFetcher.d.ts.map +1 -0
- package/dist/shared/analyzers/binaryFetcher.js +79 -0
- package/dist/shared/analyzers/binaryFetcher.js.map +1 -0
- package/dist/shared/analyzers/binaryVersions.d.ts +5 -0
- package/dist/shared/analyzers/binaryVersions.d.ts.map +1 -0
- package/dist/shared/analyzers/binaryVersions.js +31 -0
- package/dist/shared/analyzers/binaryVersions.js.map +1 -0
- package/dist/shared/analyzers/candidates.d.ts +3 -3
- package/dist/shared/analyzers/candidates.d.ts.map +1 -1
- package/dist/shared/analyzers/candidates.js +35 -12
- package/dist/shared/analyzers/candidates.js.map +1 -1
- package/dist/shared/git.d.ts +28 -1
- package/dist/shared/git.d.ts.map +1 -1
- package/dist/shared/git.js +150 -51
- package/dist/shared/git.js.map +1 -1
- package/dist/shared/gitTrackedPaths.d.ts +39 -0
- package/dist/shared/gitTrackedPaths.d.ts.map +1 -0
- package/dist/shared/gitTrackedPaths.js +29 -0
- package/dist/shared/gitTrackedPaths.js.map +1 -0
- package/dist/shared/index.d.ts +4 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +4 -2
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/io/sourcePath.d.ts +8 -0
- package/dist/shared/io/sourcePath.d.ts.map +1 -0
- package/dist/shared/io/sourcePath.js +38 -0
- package/dist/shared/io/sourcePath.js.map +1 -0
- package/dist/shared/tooling/exec.d.ts +1 -0
- package/dist/shared/tooling/exec.d.ts.map +1 -1
- package/dist/shared/tooling/exec.js +20 -4
- package/dist/shared/tooling/exec.js.map +1 -1
- package/dist/shared/tooling/resolveExecutable.d.ts +10 -0
- package/dist/shared/tooling/resolveExecutable.d.ts.map +1 -0
- package/dist/shared/tooling/resolveExecutable.js +46 -0
- package/dist/shared/tooling/resolveExecutable.js.map +1 -0
- package/dist/shared/validation/citationGrounding.d.ts +1 -1
- package/dist/shared/validation/citationGrounding.d.ts.map +1 -1
- package/dist/shared/validation/citationGrounding.js +24 -11
- package/dist/shared/validation/citationGrounding.js.map +1 -1
- package/dist/shared/validation/findingGrounding.d.ts +1 -1
- package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
- package/dist/shared/validation/findingGrounding.js +11 -23
- package/dist/shared/validation/findingGrounding.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
// sites-pinned: tests/shared/binary-acquisition.test.ts, tests/shared/binary-acquisition-contract.test.ts, tests/shared/binary-acquisition-process.test.ts, tests/shared/analyzer-default-runner-deadline.test.ts
|
|
1
2
|
import { hashContent } from "../hash.js";
|
|
2
|
-
import { chmodSync,
|
|
3
|
-
import { join, relative } from "node:path";
|
|
3
|
+
import { chmodSync, accessSync, constants, lstatSync, mkdtempSync, renameSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync, } from "node:fs";
|
|
4
|
+
import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
4
5
|
import { homedir } from "node:os";
|
|
5
6
|
import { AUDIT_TOOLS_DIRNAME } from "../io/auditToolsPaths.js";
|
|
6
|
-
import {
|
|
7
|
-
import { resolveSpawnDeadline, runTrackedAsync, TRACKED_CHILD_DEADLINE_MS, } from "../tooling/exec.js";
|
|
7
|
+
import { withFileLock, FileLockTimeoutError } from "../io/fileLock.js";
|
|
8
|
+
import { resolveSpawnDeadline, resolveExecutableFile, runTrackedAsync, TRACKED_CHILD_DEADLINE_MS, } from "../tooling/exec.js";
|
|
8
9
|
/**
|
|
9
10
|
* Per-USER cache root, deliberately NOT the system temp dir. Defaults to
|
|
10
11
|
* `~/.audit-tools/bincache`; `AUDIT_TOOLS_BINARY_CACHE` overrides it so a run can be
|
|
@@ -29,260 +30,292 @@ export function defaultCacheDir() {
|
|
|
29
30
|
return override;
|
|
30
31
|
return join(homedir(), AUDIT_TOOLS_DIRNAME, "bincache");
|
|
31
32
|
}
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
* already has — `mkdirSync` does not chmod one it did not create — so a root that was
|
|
39
|
-
* created loosely by something else is not repaired here.
|
|
40
|
-
*/
|
|
41
|
-
function ensureCacheRoot(cacheDir) {
|
|
42
|
-
try {
|
|
43
|
-
mkdirSync(cacheDir, { recursive: true, mode: 0o700 });
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
/* a later mkdir of the version dir surfaces any real failure */
|
|
33
|
+
/** Parse a `<sha256>␠␠<asset>` checksums file for one asset's expected digest. */
|
|
34
|
+
export function expectedSha256For(checksumsText, assetName) {
|
|
35
|
+
for (const line of checksumsText.split(/\r?\n/)) {
|
|
36
|
+
const match = line.trim().match(/^([0-9a-fA-F]{64})\s+\*?(.+)$/);
|
|
37
|
+
if (match && match[2].trim() === assetName)
|
|
38
|
+
return match[1].toLowerCase();
|
|
47
39
|
}
|
|
40
|
+
return null;
|
|
48
41
|
}
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
const MANIFEST = ".audit-tools-binary.json";
|
|
43
|
+
class AcquisitionFailure extends Error {
|
|
44
|
+
reason;
|
|
45
|
+
constructor(reason, message) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.reason = reason;
|
|
48
|
+
}
|
|
51
49
|
}
|
|
52
|
-
/** `unavailable` with its cause carried in BOTH forms — machine member + human note. */
|
|
53
50
|
function unavailable(reason, note) {
|
|
54
|
-
return { status: "unavailable", command: null, reason, note };
|
|
51
|
+
return { status: "unavailable", command: null, reason, note: note.slice(0, 1000) };
|
|
55
52
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const CACHE_MANIFEST_FILENAME = ".audit-tools-binary.json";
|
|
61
|
-
/** Remove a cache version dir wholesale; best-effort, never throws. */
|
|
62
|
-
function purgeVersionDir(versionDir) {
|
|
63
|
-
try {
|
|
64
|
-
rmSync(versionDir, { recursive: true, force: true });
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
/* best-effort — a later resolution re-verifies regardless */
|
|
68
|
-
}
|
|
53
|
+
function directory(path) {
|
|
54
|
+
const entry = lstatSync(path);
|
|
55
|
+
if (!entry.isDirectory() || entry.isSymbolicLink())
|
|
56
|
+
throw new Error("managed directory is not a physical directory");
|
|
69
57
|
}
|
|
70
|
-
function
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
version: spec.version,
|
|
75
|
-
executable_relative_path: relative(versionDir, executablePath).replace(/\\/g, "/"),
|
|
76
|
-
executable_sha256: hashContent(readFileSync(executablePath)),
|
|
77
|
-
};
|
|
78
|
-
writeFileSync(join(versionDir, CACHE_MANIFEST_FILENAME), `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
|
|
58
|
+
function executableWithin(root, path, platform) {
|
|
59
|
+
directory(root);
|
|
60
|
+
if (!path || isAbsolute(path) || path.includes("\\") || path.split("/").some(part => !part || part === "." || part === "..")) {
|
|
61
|
+
throw new Error("invalid executable relative path");
|
|
79
62
|
}
|
|
80
|
-
|
|
81
|
-
|
|
63
|
+
const absolute = resolve(root, path);
|
|
64
|
+
if (!absolute.startsWith(resolve(root) + sep))
|
|
65
|
+
throw new Error("executable escapes cache identity");
|
|
66
|
+
const parts = path.split("/");
|
|
67
|
+
let parent = root;
|
|
68
|
+
for (const part of parts.slice(0, -1)) {
|
|
69
|
+
parent = join(parent, part);
|
|
70
|
+
directory(parent);
|
|
82
71
|
}
|
|
72
|
+
if (!lstatSync(absolute).isFile())
|
|
73
|
+
throw new Error("executable is not a regular physical file");
|
|
74
|
+
if (platform !== "win32")
|
|
75
|
+
accessSync(absolute, constants.X_OK);
|
|
76
|
+
return absolute;
|
|
83
77
|
}
|
|
84
|
-
|
|
85
|
-
* The cached executable's path — but ONLY when its bytes still hash to the digest
|
|
86
|
-
* recorded when it was acquired. A missing, unreadable, or mismatched manifest, an
|
|
87
|
-
* escaping relative path, or drifted bytes all return null and the caller purges:
|
|
88
|
-
* filename existence is never sufficient to execute.
|
|
89
|
-
*/
|
|
90
|
-
function verifiedCachedExecutable(versionDir, spec) {
|
|
91
|
-
let manifest;
|
|
78
|
+
function verified(root, identity) {
|
|
92
79
|
try {
|
|
93
|
-
|
|
80
|
+
directory(root);
|
|
81
|
+
if (!lstatSync(join(root, MANIFEST)).isFile())
|
|
82
|
+
return null;
|
|
83
|
+
const manifest = JSON.parse(readFileSync(join(root, MANIFEST), "utf8"));
|
|
84
|
+
if (JSON.stringify(manifest.identity) !== JSON.stringify(identity) ||
|
|
85
|
+
typeof manifest.executable_relative_path !== "string" ||
|
|
86
|
+
typeof manifest.executable_sha256 !== "string" || !/^[a-f0-9]{64}$/.test(manifest.executable_sha256))
|
|
87
|
+
return null;
|
|
88
|
+
const file = executableWithin(root, manifest.executable_relative_path, identity[3]);
|
|
89
|
+
return hashContent(readFileSync(file)) === manifest.executable_sha256 ? file : null;
|
|
94
90
|
}
|
|
95
91
|
catch {
|
|
96
92
|
return null;
|
|
97
93
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
manifest.version !== spec.version ||
|
|
101
|
-
typeof manifest.executable_relative_path !== "string" ||
|
|
102
|
-
manifest.executable_relative_path.length === 0 ||
|
|
103
|
-
typeof manifest.executable_sha256 !== "string" ||
|
|
104
|
-
manifest.executable_sha256.length !== 64) {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
const executablePath = join(versionDir, manifest.executable_relative_path);
|
|
108
|
-
if (resolveWithinRoot(versionDir, executablePath) === null)
|
|
109
|
-
return null;
|
|
94
|
+
}
|
|
95
|
+
function exists(path) {
|
|
110
96
|
try {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
97
|
+
lstatSync(path);
|
|
98
|
+
return true;
|
|
114
99
|
}
|
|
115
|
-
catch {
|
|
116
|
-
|
|
100
|
+
catch (error) {
|
|
101
|
+
if (error.code === "ENOENT")
|
|
102
|
+
return false;
|
|
103
|
+
throw error;
|
|
117
104
|
}
|
|
118
|
-
return executablePath;
|
|
119
105
|
}
|
|
120
|
-
/**
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
106
|
+
/** Reject every link/special entry, including unused ones, without following it. */
|
|
107
|
+
function findExecutable(root, name) {
|
|
108
|
+
let found = null;
|
|
109
|
+
const visit = (dir) => {
|
|
110
|
+
directory(dir);
|
|
111
|
+
for (const entry of readdirSync(dir)) {
|
|
112
|
+
const path = join(dir, entry);
|
|
113
|
+
const stat = lstatSync(path);
|
|
114
|
+
if (stat.isDirectory())
|
|
115
|
+
visit(path);
|
|
116
|
+
else if (stat.isFile()) {
|
|
117
|
+
if (!found && entry === name)
|
|
118
|
+
found = path;
|
|
119
|
+
}
|
|
120
|
+
else
|
|
121
|
+
throw new Error("unsupported archive topology");
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
visit(root);
|
|
125
|
+
return found;
|
|
126
|
+
}
|
|
127
|
+
/** No injected byte fetch can reenter mutation after the deadline wins. */
|
|
128
|
+
async function fetchBytes(fetcher, url, signal) {
|
|
129
|
+
let onAbort = () => undefined;
|
|
130
|
+
const abort = new Promise((_resolve, reject) => {
|
|
131
|
+
onAbort = () => reject(new AcquisitionFailure("deadline_exceeded", "binary acquisition deadline exceeded"));
|
|
132
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
133
|
+
if (signal.aborted)
|
|
134
|
+
onAbort();
|
|
135
|
+
});
|
|
136
|
+
const bytes = Promise.resolve().then(() => {
|
|
137
|
+
if (signal.aborted)
|
|
138
|
+
throw new AcquisitionFailure("deadline_exceeded", "binary acquisition deadline exceeded");
|
|
139
|
+
return fetcher(url, signal);
|
|
140
|
+
});
|
|
141
|
+
void bytes.then(() => undefined, () => undefined);
|
|
142
|
+
try {
|
|
143
|
+
return await Promise.race([bytes, abort]);
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
signal.removeEventListener("abort", onAbort);
|
|
126
147
|
}
|
|
127
|
-
return null;
|
|
128
148
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Resolve an executable for `spec`, acquiring it if necessary. Async (download is
|
|
131
|
-
* network I/O); never throws. The result's `command` is what the engine spawns,
|
|
132
|
-
* or null when the tool could not be made available.
|
|
133
|
-
*/
|
|
134
149
|
export async function resolveBinary(spec, options = {}) {
|
|
150
|
+
const cwd = process.cwd();
|
|
151
|
+
const env = { ...process.env };
|
|
135
152
|
const platform = options.platform ?? process.platform;
|
|
136
153
|
const arch = options.arch ?? process.arch;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
// Unverifiable bytes, or a dir a failed extraction left behind: purge so nothing
|
|
160
|
-
// half-written or pre-planted can become a later "cache hit".
|
|
161
|
-
purgeVersionDir(versionDir);
|
|
162
|
-
}
|
|
163
|
-
// 3. download — pinned release asset, SHA256-verified, then extracted.
|
|
164
|
-
const fetch = options.fetch;
|
|
165
|
-
if (!fetch) {
|
|
166
|
-
return unavailable("offline", "no fetcher configured (offline)");
|
|
167
|
-
}
|
|
168
|
-
const assetName = spec.assetFor(platform, arch);
|
|
169
|
-
if (!assetName) {
|
|
170
|
-
return unavailable("no_asset_for_platform", `no release asset for ${platform}/${arch}`);
|
|
171
|
-
}
|
|
172
|
-
let assetBytes;
|
|
173
|
-
let checksumsBytes;
|
|
154
|
+
const deadline = options.deadline ?? { at: Date.now() + TRACKED_CHILD_DEADLINE_MS };
|
|
155
|
+
if (!Number.isFinite(deadline.at))
|
|
156
|
+
return unavailable("invalid_budget", "invalid nonfinite binary acquisition deadline");
|
|
157
|
+
const controller = new AbortController();
|
|
158
|
+
let timer;
|
|
159
|
+
const check = () => {
|
|
160
|
+
if (Date.now() >= deadline.at || controller.signal.aborted) {
|
|
161
|
+
controller.abort();
|
|
162
|
+
throw new AcquisitionFailure("deadline_exceeded", "binary acquisition deadline exceeded");
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
const arm = () => {
|
|
166
|
+
const remaining = deadline.at - Date.now();
|
|
167
|
+
if (remaining <= 0)
|
|
168
|
+
controller.abort();
|
|
169
|
+
else
|
|
170
|
+
timer = setTimeout(arm, Math.min(remaining, 2_147_483_647));
|
|
171
|
+
};
|
|
172
|
+
const run = options.run ?? ((argv, at, timeout) => runTrackedAsync(argv, { cwd: at, timeout }));
|
|
173
|
+
const cacheDir = resolve(options.cacheDir ?? defaultCacheDir());
|
|
174
|
+
let diagnostic = "";
|
|
175
|
+
let stage;
|
|
174
176
|
try {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
177
|
+
check();
|
|
178
|
+
arm();
|
|
179
|
+
const executable = (options.resolveExecutable ?? resolveExecutableFile)(spec.binaryName, { cwd, env, platform });
|
|
180
|
+
check();
|
|
181
|
+
if (executable !== null) {
|
|
182
|
+
const probe = await run([executable, ...spec.versionProbeArgs.slice(1)], cwd, resolveSpawnDeadline(deadline, TRACKED_CHILD_DEADLINE_MS));
|
|
183
|
+
check();
|
|
184
|
+
if (!probe.error && probe.status === 0 && spec.parseVersion?.(probe.stdout) === spec.version) {
|
|
185
|
+
return { status: "path", command: executable };
|
|
186
|
+
}
|
|
187
|
+
diagnostic = "PATH executable did not report the exact pinned version; ";
|
|
188
|
+
}
|
|
189
|
+
const asset = spec.assetFor(platform, arch);
|
|
190
|
+
if (!asset)
|
|
191
|
+
return unavailable("no_asset_for_platform", diagnostic + `no release asset for ${platform}/${arch}`);
|
|
192
|
+
const checksumAsset = typeof spec.checksumsAsset === "function" ? spec.checksumsAsset(asset) : spec.checksumsAsset;
|
|
193
|
+
const identity = [2, spec.binaryName, spec.version, platform, arch, asset,
|
|
194
|
+
spec.releaseUrlForAsset(asset), spec.releaseUrlForAsset(checksumAsset), spec.archived !== false];
|
|
195
|
+
const key = hashContent(JSON.stringify(identity));
|
|
196
|
+
const final = join(cacheDir, key);
|
|
197
|
+
check();
|
|
198
|
+
if (exists(cacheDir))
|
|
199
|
+
directory(cacheDir);
|
|
200
|
+
const warm = verified(final, identity);
|
|
201
|
+
check();
|
|
202
|
+
if (warm)
|
|
203
|
+
return { status: "cached", command: warm };
|
|
204
|
+
const fetcher = options.fetch;
|
|
205
|
+
if (!fetcher)
|
|
206
|
+
return unavailable("offline", diagnostic + "no fetcher configured (offline)");
|
|
207
|
+
// Online attempts create a private root/lock before requesting the checksum.
|
|
208
|
+
check();
|
|
209
|
+
mkdirSync(cacheDir, { recursive: true, mode: 0o700 });
|
|
210
|
+
directory(cacheDir);
|
|
211
|
+
check();
|
|
212
|
+
const result = await withFileLock(join(cacheDir, `${key}.lock`), async () => {
|
|
213
|
+
check(); // acquireLock may recover a stale lock after its timeout.
|
|
214
|
+
const existing = verified(final, identity);
|
|
215
|
+
check();
|
|
216
|
+
if (existing)
|
|
217
|
+
return { status: "cached", command: existing };
|
|
218
|
+
if (exists(final))
|
|
219
|
+
rmSync(final, { recursive: true, force: true });
|
|
220
|
+
check();
|
|
221
|
+
const request = async (url) => {
|
|
222
|
+
check();
|
|
209
223
|
try {
|
|
210
|
-
|
|
224
|
+
const bytes = await fetchBytes(fetcher, url, controller.signal);
|
|
225
|
+
check();
|
|
226
|
+
return bytes;
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
check();
|
|
230
|
+
throw new AcquisitionFailure("download_failed", `download failed: ${String(error)}`);
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
const checksums = await request(identity[7]);
|
|
234
|
+
check();
|
|
235
|
+
if (!checksums || checksums.byteLength === 0)
|
|
236
|
+
throw new AcquisitionFailure("download_empty", "checksum download returned no bytes");
|
|
237
|
+
const expected = expectedSha256For(Buffer.from(checksums).toString("utf8"), asset);
|
|
238
|
+
if (!expected)
|
|
239
|
+
throw new AcquisitionFailure("no_checksum_for_asset", `no checksum for ${asset}`);
|
|
240
|
+
const bytes = await request(identity[6]);
|
|
241
|
+
check();
|
|
242
|
+
if (!bytes || bytes.byteLength === 0)
|
|
243
|
+
throw new AcquisitionFailure("download_empty", "asset download returned no bytes");
|
|
244
|
+
if (hashContent(bytes) !== expected)
|
|
245
|
+
throw new AcquisitionFailure("checksum_mismatch", `checksum mismatch for ${asset}`);
|
|
246
|
+
check();
|
|
247
|
+
stage = mkdtempSync(join(cacheDir, `${key}.stage-`));
|
|
248
|
+
try {
|
|
249
|
+
const name = platform === "win32" ? `${spec.binaryName}.exe` : spec.binaryName;
|
|
250
|
+
if (!name || name.includes("/") || name.includes("\\") || name === "." || name === "..")
|
|
251
|
+
throw new Error("invalid binary filename");
|
|
252
|
+
if (identity[8]) {
|
|
253
|
+
const archive = join(stage, ".download-archive");
|
|
254
|
+
writeFileSync(archive, bytes, { flag: "wx" });
|
|
255
|
+
check();
|
|
256
|
+
// Await actual settlement under the lock; never race an active extractor.
|
|
257
|
+
let extraction;
|
|
258
|
+
try {
|
|
259
|
+
extraction = await run(["tar", "-xf", archive, "-C", stage], stage, resolveSpawnDeadline(deadline, TRACKED_CHILD_DEADLINE_MS));
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
check();
|
|
263
|
+
throw new AcquisitionFailure("extract_failed", `extract failed: ${String(error)}`);
|
|
264
|
+
}
|
|
265
|
+
check();
|
|
266
|
+
if (extraction.error || extraction.status !== 0)
|
|
267
|
+
throw new AcquisitionFailure("extract_failed", `extract failed: ${extraction.error?.message ?? extraction.status}`);
|
|
268
|
+
rmSync(archive);
|
|
211
269
|
}
|
|
212
|
-
|
|
213
|
-
|
|
270
|
+
else
|
|
271
|
+
writeFileSync(join(stage, name), bytes, { flag: "wx" });
|
|
272
|
+
check();
|
|
273
|
+
const file = findExecutable(stage, name);
|
|
274
|
+
if (!file)
|
|
275
|
+
throw new AcquisitionFailure("not_found_in_archive", "binary not found in archive");
|
|
276
|
+
if (platform !== "win32")
|
|
277
|
+
chmodSync(file, 0o755);
|
|
278
|
+
const path = relative(stage, file).split(sep).join("/");
|
|
279
|
+
executableWithin(stage, path, platform);
|
|
280
|
+
check();
|
|
281
|
+
const manifest = { identity, executable_relative_path: path, executable_sha256: hashContent(readFileSync(file)) };
|
|
282
|
+
writeFileSync(join(stage, MANIFEST), JSON.stringify(manifest) + "\n", { flag: "wx" });
|
|
283
|
+
check();
|
|
284
|
+
if (!verified(stage, identity))
|
|
285
|
+
throw new Error("staged cache verification failed");
|
|
286
|
+
check();
|
|
287
|
+
if (exists(final)) {
|
|
288
|
+
const winner = verified(final, identity);
|
|
289
|
+
check();
|
|
290
|
+
if (!winner)
|
|
291
|
+
throw new Error("unexpected invalid publication winner");
|
|
292
|
+
return { status: "cached", command: winner };
|
|
214
293
|
}
|
|
294
|
+
renameSync(stage, final);
|
|
295
|
+
stage = undefined; // Publication transfers ownership. Never clean final in catch/finally.
|
|
296
|
+
return { status: "downloaded", command: join(final, path) };
|
|
215
297
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
try {
|
|
227
|
-
mkdirSync(versionDir, { recursive: true });
|
|
228
|
-
const archivePath = join(versionDir, assetName);
|
|
229
|
-
writeFileSync(archivePath, assetBytes);
|
|
230
|
-
const extract = await run(["tar", "-xf", archivePath, "-C", versionDir], versionDir, resolveSpawnDeadline(options.deadline, TRACKED_CHILD_DEADLINE_MS));
|
|
231
|
-
rmSync(archivePath, { force: true });
|
|
232
|
-
if (extract.error || extract.status !== 0) {
|
|
233
|
-
// Whatever tar managed to write before failing must NOT survive as a cache hit.
|
|
234
|
-
purgeVersionDir(versionDir);
|
|
235
|
-
return unavailable("extract_failed", `extract failed: ${extract.error?.message ?? `tar exit ${extract.status}`}`);
|
|
236
|
-
}
|
|
298
|
+
finally {
|
|
299
|
+
if (stage) {
|
|
300
|
+
const owned = stage;
|
|
301
|
+
stage = undefined;
|
|
302
|
+
rmSync(owned, { recursive: true, force: true });
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}, Math.max(1, deadline.at - Date.now()));
|
|
306
|
+
check();
|
|
307
|
+
return result;
|
|
237
308
|
}
|
|
238
309
|
catch (error) {
|
|
239
|
-
|
|
240
|
-
|
|
310
|
+
if (error instanceof AcquisitionFailure)
|
|
311
|
+
return unavailable(error.reason, diagnostic + error.message);
|
|
312
|
+
if (error instanceof FileLockTimeoutError)
|
|
313
|
+
return unavailable("deadline_exceeded", diagnostic + "binary acquisition lock deadline exceeded");
|
|
314
|
+
return unavailable("write_failed", diagnostic + `acquisition failed: ${String(error)}`);
|
|
241
315
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
purgeVersionDir(versionDir);
|
|
246
|
-
return unavailable("not_found_in_archive", "binary not found in archive");
|
|
316
|
+
finally {
|
|
317
|
+
if (timer !== undefined)
|
|
318
|
+
clearTimeout(timer);
|
|
247
319
|
}
|
|
248
|
-
if (platform !== "win32") {
|
|
249
|
-
try {
|
|
250
|
-
chmodSync(resolved, 0o755);
|
|
251
|
-
}
|
|
252
|
-
catch {
|
|
253
|
-
/* best-effort */
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
writeCacheManifest(versionDir, spec, resolved);
|
|
257
|
-
return { status: "downloaded", command: resolved };
|
|
258
|
-
}
|
|
259
|
-
/** Shallow-then-recursive search for `name` under `dir`. */
|
|
260
|
-
function findExecutable(dir, name) {
|
|
261
|
-
const direct = join(dir, name);
|
|
262
|
-
if (existsSync(direct))
|
|
263
|
-
return direct;
|
|
264
|
-
let entries;
|
|
265
|
-
try {
|
|
266
|
-
entries = readdirSync(dir);
|
|
267
|
-
}
|
|
268
|
-
catch {
|
|
269
|
-
return null;
|
|
270
|
-
}
|
|
271
|
-
for (const entry of entries) {
|
|
272
|
-
const full = join(dir, entry);
|
|
273
|
-
let isDir = false;
|
|
274
|
-
try {
|
|
275
|
-
isDir = statSync(full).isDirectory();
|
|
276
|
-
}
|
|
277
|
-
catch {
|
|
278
|
-
continue;
|
|
279
|
-
}
|
|
280
|
-
if (isDir) {
|
|
281
|
-
const nested = findExecutable(full, name);
|
|
282
|
-
if (nested)
|
|
283
|
-
return nested;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
return null;
|
|
287
320
|
}
|
|
288
321
|
//# sourceMappingURL=binaryAcquisition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binaryAcquisition.js","sourceRoot":"","sources":["../../../src/shared/analyzers/binaryAcquisition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"binaryAcquisition.js","sourceRoot":"","sources":["../../../src/shared/analyzers/binaryAcquisition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binaryFetcher.d.ts","sourceRoot":"","sources":["../../../src/shared/analyzers/binaryFetcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,0FAA0F;AAC1F,eAAO,MAAM,oBAAoB,EAAE,aA0DlC,CAAC"}
|