craftar 0.14.0 → 0.15.0
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 +8 -2
- package/dist/cli.js +46 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/doctor.js +362 -0
- package/dist/core/doctor.js.map +1 -0
- package/dist/core/registry.js +27 -1
- package/dist/core/registry.js.map +1 -1
- package/dist/core/remote.js +68 -15
- package/dist/core/remote.js.map +1 -1
- package/dist/core/sync.js +30 -6
- package/dist/core/sync.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { promises as fs, constants as fsc } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { execFile } from "node:child_process";
|
|
4
|
+
import { promisify } from "node:util";
|
|
5
|
+
import { written } from "./capabilities.js";
|
|
6
|
+
import { exists } from "./forge.js";
|
|
7
|
+
import { isMissing, isRegistered, namedCacheKeys, readRegistry, registryFile, rowStatus } from "./registry.js";
|
|
8
|
+
import { FULL_SHA, cacheKey, classifyForge, inspectCache } from "./remote.js";
|
|
9
|
+
import { paramsFor } from "./resolve.js";
|
|
10
|
+
import { LOCK_FILE, loadForgeFor, plan, readLock, readWorkspaceConfig, status } from "./sync.js";
|
|
11
|
+
import { outName } from "../emitters/shared.js";
|
|
12
|
+
const execFileP = promisify(execFile);
|
|
13
|
+
async function defaultGitVersion() {
|
|
14
|
+
try {
|
|
15
|
+
const { stdout } = await execFileP("git", ["--version"]);
|
|
16
|
+
return stdout.trim().replace(/^git version\s*/, "") || "unknown";
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const MB = (bytes) => `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
23
|
+
const short = (sha) => (sha ? sha.slice(0, 8) : "no git");
|
|
24
|
+
const NAME_REF = /\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g;
|
|
25
|
+
const refLabel = (ref, defaultBranch) => ref ?? (defaultBranch ? `${defaultBranch} (default branch)` : "the default branch");
|
|
26
|
+
const CACHE_FIX = (dir) => `remove ${dir} by hand (craftar cache prune is planned)`;
|
|
27
|
+
export async function runDoctor(opts) {
|
|
28
|
+
const checks = [];
|
|
29
|
+
const m = (id, level, message, fix = null) => checks.push({ id, scope: "machine", level, message, fix });
|
|
30
|
+
const w = (id, level, message, fix = null) => checks.push({ id, scope: "workspace", level, message, fix });
|
|
31
|
+
const env = opts.env ?? process.env;
|
|
32
|
+
// Loaded as given, as every other command loads it (a relative `forge:` reads from the path the user named);
|
|
33
|
+
// the real path is what the report, `forge-inside` and `registered` compare (§4.5).
|
|
34
|
+
const given = opts.workspace === null ? null : path.resolve(opts.workspace);
|
|
35
|
+
const root = given === null ? null : await fs.realpath(given).catch(() => given);
|
|
36
|
+
// The cache snapshot first (§4.3: the cache as it was when doctor started), then the configuration,
|
|
37
|
+
// which `git` and `cache` need even when the Forge does not load (§5.1).
|
|
38
|
+
let snapshot = null;
|
|
39
|
+
let snapshotError = null;
|
|
40
|
+
try {
|
|
41
|
+
snapshot = await inspectCache(opts.home);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
snapshotError = oneLine(e);
|
|
45
|
+
}
|
|
46
|
+
let merged = null;
|
|
47
|
+
let configError = null;
|
|
48
|
+
if (given !== null) {
|
|
49
|
+
try {
|
|
50
|
+
merged = await readWorkspaceConfig(given);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
configError = oneLine(e);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const remote = merged !== null && classifyForge(merged.config.forge) === "url";
|
|
57
|
+
// ---- machine
|
|
58
|
+
const node = opts.nodeVersion ?? process.versions.node;
|
|
59
|
+
if (Number(node.split(".")[0]) >= 22)
|
|
60
|
+
m("node", "ok", node);
|
|
61
|
+
else
|
|
62
|
+
m("node", "error", `${node} — craftar needs Node 22 or later`, "install Node 22 or later");
|
|
63
|
+
const git = await (opts.gitVersion ?? defaultGitVersion)();
|
|
64
|
+
const gitMissingRemote = git === null && remote;
|
|
65
|
+
if (git !== null)
|
|
66
|
+
m("git", "ok", git);
|
|
67
|
+
else if (remote)
|
|
68
|
+
m("git", "error", "git not found — the workspace names a remote Forge", "install git");
|
|
69
|
+
else
|
|
70
|
+
m("git", "warn", "git not found", "install git");
|
|
71
|
+
const home = opts.home;
|
|
72
|
+
const homeStat = await fs.stat(home).catch(() => null);
|
|
73
|
+
if (homeStat === null)
|
|
74
|
+
m("home", "ok", `${home} (not created yet)`);
|
|
75
|
+
else if (!homeStat.isDirectory())
|
|
76
|
+
m("home", "error", `${home} is not a directory`, `fix or move $CRAFTAR_HOME (${home})`);
|
|
77
|
+
else if (!(await fs.access(home, fsc.W_OK).then(() => true, () => false)))
|
|
78
|
+
m("home", "error", `${home} is not writable`, `fix or move $CRAFTAR_HOME (${home})`);
|
|
79
|
+
else
|
|
80
|
+
m("home", "ok", home);
|
|
81
|
+
let reg = null;
|
|
82
|
+
let registryWhyNot = null;
|
|
83
|
+
if (opts.registryOff) {
|
|
84
|
+
registryWhyNot = "CRAFTAR_NO_REGISTRY is set";
|
|
85
|
+
m("registry", "ok", "off (CRAFTAR_NO_REGISTRY)");
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
try {
|
|
89
|
+
reg = await readRegistry(home);
|
|
90
|
+
const there = await exists(registryFile(home));
|
|
91
|
+
const missing = [];
|
|
92
|
+
for (const e of reg.workspaces)
|
|
93
|
+
if (await isMissing(e))
|
|
94
|
+
missing.push(e.path);
|
|
95
|
+
if (!there)
|
|
96
|
+
m("registry", "ok", "none yet");
|
|
97
|
+
else if (missing.length === 0)
|
|
98
|
+
m("registry", "ok", `${reg.workspaces.length} registered`);
|
|
99
|
+
else
|
|
100
|
+
m("registry", "warn", `${missing.length} registered workspace${missing.length === 1 ? " is" : "s are"} gone: ${missing.join(", ")}`, "craftar workspaces prune");
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
registryWhyNot = "the registry cannot be read";
|
|
104
|
+
const msg = e.message;
|
|
105
|
+
m("registry", "error", oneLine(e), /declares schema/.test(msg) ? "upgrade craftar" : `repair or remove ${registryFile(home)}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// ---- cache (§4.3)
|
|
109
|
+
if (homeStat !== null && !homeStat.isDirectory()) {
|
|
110
|
+
// One cause, one line (§13 item 12): a home that is not a directory is `home`'s error.
|
|
111
|
+
m("cache", "ok", "not checked ($CRAFTAR_HOME is not a directory)");
|
|
112
|
+
}
|
|
113
|
+
else if (snapshot === null) {
|
|
114
|
+
m("cache", "warn", `cannot read the Forge cache: ${snapshotError}`, `fix or move $CRAFTAR_HOME (${home})`);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const summary = `${snapshot.entries.length} entr${snapshot.entries.length === 1 ? "y" : "ies"}, ${MB(snapshot.bytes)}`;
|
|
118
|
+
let skip = registryWhyNot;
|
|
119
|
+
if (skip === null && root !== null && merged === null)
|
|
120
|
+
skip = "the checked craftar.yaml does not read";
|
|
121
|
+
const findings = [];
|
|
122
|
+
for (const e of snapshot.entries) {
|
|
123
|
+
if (!e.fetched)
|
|
124
|
+
findings.push({ id: "cache", scope: "machine", level: "warn", message: `${e.key} — a fetch never completed`, fix: CACHE_FIX(e.dir) });
|
|
125
|
+
}
|
|
126
|
+
if (skip === null && reg !== null) {
|
|
127
|
+
const checked = remote && root !== null ? { key: cacheKey(merged.config.forge.trim()), path: root } : null;
|
|
128
|
+
const named = namedCacheKeys(reg, checked);
|
|
129
|
+
for (const e of snapshot.entries)
|
|
130
|
+
if (e.fetched && !named.has(e.key))
|
|
131
|
+
findings.push({ id: "cache", scope: "machine", level: "warn", message: `${e.key} — nothing names it`, fix: CACHE_FIX(e.dir) });
|
|
132
|
+
}
|
|
133
|
+
// A skipped orphan part is said on every cache line, findings included (§4.3, §13 item 6).
|
|
134
|
+
const why = skip === null ? "" : ` (orphans not checked: ${skip})`;
|
|
135
|
+
if (findings.length === 0)
|
|
136
|
+
m("cache", "ok", `${summary}${why}`);
|
|
137
|
+
else
|
|
138
|
+
checks.push(...findings.map((c) => ({ ...c, message: `${c.message}${why}` })));
|
|
139
|
+
}
|
|
140
|
+
// ---- workspace
|
|
141
|
+
if (root !== null && given !== null)
|
|
142
|
+
await workspaceChecks(given, root, merged, configError, gitMissingRemote, reg, registryWhyNot, opts, w, env);
|
|
143
|
+
const summary = { ok: 0, warn: 0, error: 0 };
|
|
144
|
+
for (const c of checks)
|
|
145
|
+
summary[c.level]++;
|
|
146
|
+
return { version: opts.version, workspace: root, fetch: opts.fetch, strict: opts.strict, checks, summary };
|
|
147
|
+
}
|
|
148
|
+
async function workspaceChecks(given, root, merged, configError, gitMissingRemote, reg, registryWhyNot, opts, w, env) {
|
|
149
|
+
// `git` missing with a remote Forge is git's error: the checks that need the load are not run (§4.2).
|
|
150
|
+
let ws = null;
|
|
151
|
+
if (!gitMissingRemote) {
|
|
152
|
+
if (merged === null) {
|
|
153
|
+
w("config", "error", configError ?? "craftar.yaml does not read", null);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
const remote = classifyForge(merged.config.forge) === "url";
|
|
157
|
+
try {
|
|
158
|
+
ws = await loadForgeFor(given, merged, { mode: opts.fetch ? "read" : "no-fetch", home: opts.home });
|
|
159
|
+
}
|
|
160
|
+
catch (e) {
|
|
161
|
+
// Decided by stage, not by message (§5.1): the Forge of a remote configuration read offline failed to load.
|
|
162
|
+
w("config", "error", oneLine(e), remote && !opts.fetch ? "craftar doctor --fetch" : null);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (ws !== null) {
|
|
167
|
+
const o = ws.origin;
|
|
168
|
+
const fallback = o.kind === "remote" && opts.fetch && !o.fetched ? ws.warnings.find((x) => x.startsWith(`Forge ${o.source} not fetched (`)) ?? null : null;
|
|
169
|
+
const configWarnings = ws.warnings.filter((x) => x !== fallback);
|
|
170
|
+
// One `ok` line only when the check has nothing to report (§4.2, §4.5).
|
|
171
|
+
if (configWarnings.length === 0)
|
|
172
|
+
w("config", "ok", `craftar.yaml loads (forge ${ws.config.forge}, profile ${ws.config.profile})`);
|
|
173
|
+
for (const x of configWarnings)
|
|
174
|
+
w("config", "warn", x, null);
|
|
175
|
+
// forge
|
|
176
|
+
if (o.kind === "path")
|
|
177
|
+
w("forge", "ok", `${o.source} @ ${short(ws.forge.commit)}`);
|
|
178
|
+
else if (fallback !== null)
|
|
179
|
+
w("forge", "warn", fallback, `check the network or credentials for ${o.source}`);
|
|
180
|
+
else if (opts.fetch && o.fetched)
|
|
181
|
+
w("forge", "ok", `${o.source} @ ${refLabel(o.ref, o.defaultBranch)} ${short(ws.forge.commit)}, fetched now`);
|
|
182
|
+
// A full-SHA `ref` already cached is never fetched (spec 13), with or without --fetch.
|
|
183
|
+
else if (o.ref !== null && FULL_SHA.test(o.ref))
|
|
184
|
+
w("forge", "ok", `${o.source} @ pinned ${short(ws.forge.commit)}, cached`);
|
|
185
|
+
else
|
|
186
|
+
w("forge", "ok", `${o.source} @ ${refLabel(o.ref, o.defaultBranch)} ${short(ws.forge.commit)}, cached ${o.fetchedAt ?? "(time unknown)"}`);
|
|
187
|
+
// forge-inside
|
|
188
|
+
if (o.kind === "path") {
|
|
189
|
+
const forgeReal = await fs.realpath(ws.forge.root).catch(() => ws.forge.root);
|
|
190
|
+
const rel = path.relative(forgeReal, root);
|
|
191
|
+
const inside = rel === "" || (rel !== ".." && !rel.startsWith(`..${path.sep}`) && !path.isAbsolute(rel));
|
|
192
|
+
if (inside)
|
|
193
|
+
w("forge-inside", "warn", `the workspace lies inside its Forge (${forgeReal})`, "move the workspace out of the Forge");
|
|
194
|
+
else
|
|
195
|
+
w("forge-inside", "ok", "outside the Forge");
|
|
196
|
+
}
|
|
197
|
+
else
|
|
198
|
+
w("forge-inside", "ok", "outside the Forge (remote)");
|
|
199
|
+
// plan, params, mcp-env
|
|
200
|
+
let p = null;
|
|
201
|
+
try {
|
|
202
|
+
p = await plan(ws);
|
|
203
|
+
}
|
|
204
|
+
catch (e) {
|
|
205
|
+
w("plan", "error", oneLine(e), null);
|
|
206
|
+
}
|
|
207
|
+
if (p !== null) {
|
|
208
|
+
const declaredUnset = declaredWithoutValue(p);
|
|
209
|
+
const owned = new Set();
|
|
210
|
+
for (const mp of p.missingParams)
|
|
211
|
+
if (declaredUnset.has(mp.key))
|
|
212
|
+
owned.add(mp.warning);
|
|
213
|
+
const own = p.warnings.slice(ws.warnings.length).filter((x) => !owned.has(x));
|
|
214
|
+
if (own.length === 0)
|
|
215
|
+
w("plan", "ok", `${p.files.length} files`);
|
|
216
|
+
for (const x of own)
|
|
217
|
+
w("plan", "warn", x, null);
|
|
218
|
+
if (declaredUnset.size === 0)
|
|
219
|
+
w("params", "ok", "every declared parameter has a value");
|
|
220
|
+
for (const [key, declaredBy] of declaredUnset) {
|
|
221
|
+
const cited = p.missingParams.find((mp) => mp.key === key)?.refs ?? [];
|
|
222
|
+
w("params", "warn", `"${key}" declared by ${declaredBy.join(", ")} has no value${cited.length ? ` — cited by ${cited.join(", ")}` : ""}`, `set ${key} in the profile's params or overrides.params`);
|
|
223
|
+
}
|
|
224
|
+
const unset = mcpUnset(p, env);
|
|
225
|
+
if (unset.length === 0)
|
|
226
|
+
w("mcp-env", "ok", "every variable a written MCP server expects is set");
|
|
227
|
+
for (const { server, name } of unset)
|
|
228
|
+
w("mcp-env", "warn", `server "${server}" expects ${name}, not set`, `export ${name}`);
|
|
229
|
+
}
|
|
230
|
+
// lock, status
|
|
231
|
+
await lockAndStatus(root, ws, p, w);
|
|
232
|
+
// registered
|
|
233
|
+
if (opts.registryOff)
|
|
234
|
+
w("registered", "ok", "registry off");
|
|
235
|
+
else if (reg === null)
|
|
236
|
+
w("registered", "ok", "not checked (the registry cannot be read)");
|
|
237
|
+
else if (await isRegistered(reg, root))
|
|
238
|
+
w("registered", "ok", "in the registry");
|
|
239
|
+
else if (await exists(path.join(root, LOCK_FILE)))
|
|
240
|
+
w("registered", "warn", "synced but not registered", "craftar sync");
|
|
241
|
+
else
|
|
242
|
+
w("registered", "ok", "never synced, nothing to register yet");
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
// The workspace did not load: only `lock` runs (it needs only the directory, §6 case 1).
|
|
246
|
+
await lockAndStatus(root, null, null, w);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
async function lockAndStatus(root, ws, p, w) {
|
|
250
|
+
let lock;
|
|
251
|
+
try {
|
|
252
|
+
lock = await readLock(root);
|
|
253
|
+
}
|
|
254
|
+
catch (e) {
|
|
255
|
+
const msg = e.message;
|
|
256
|
+
w("lock", "error", lockMessage(e), /declares schema/.test(msg) ? "upgrade craftar" : `repair or remove ${LOCK_FILE}`);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (lock === null) {
|
|
260
|
+
w("lock", "warn", "absent — never synced", "craftar sync");
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
w("lock", "ok", `schema ${lock.schema}, generated ${lock.generatedAt.slice(0, 16).replace("T", " ")} UTC`);
|
|
264
|
+
if (ws === null || p === null)
|
|
265
|
+
return;
|
|
266
|
+
const st = await status(ws, p, lock);
|
|
267
|
+
const row = rowStatus(st, lock);
|
|
268
|
+
if (row === "up-to-date") {
|
|
269
|
+
w("status", "ok", "up to date");
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
const counts = {};
|
|
273
|
+
for (const s of st)
|
|
274
|
+
if (s.state !== "unchanged" && s.state !== "adopt")
|
|
275
|
+
counts[s.state] = (counts[s.state] ?? 0) + 1;
|
|
276
|
+
const detail = Object.entries(counts).map(([k, n]) => `${n} ${k}`).join(", ");
|
|
277
|
+
w("status", "warn", `${row} — ${detail}`, "craftar status, then craftar sync");
|
|
278
|
+
}
|
|
279
|
+
/** The first schema issue and how many follow, in one line. */
|
|
280
|
+
const issuesLine = (prefix, issues) => `${prefix} (${issues[0].path.join(".") || "top level"}: ${issues[0].message}${issues.length > 1 ? `, and ${issues.length - 1} more` : ""})`;
|
|
281
|
+
/**
|
|
282
|
+
* Any caught error as one line (§3: each check's message is one line). A schema refusal reaches doctor
|
|
283
|
+
* as `<what>: <zod's JSON list of issues>` (readYaml, the workspace and registry loads); its first issue is kept.
|
|
284
|
+
*/
|
|
285
|
+
function oneLine(e) {
|
|
286
|
+
const msg = e.message;
|
|
287
|
+
if (!msg.includes("\n"))
|
|
288
|
+
return msg;
|
|
289
|
+
const at = msg.indexOf(": [");
|
|
290
|
+
if (at >= 0) {
|
|
291
|
+
try {
|
|
292
|
+
const issues = JSON.parse(msg.slice(at + 2));
|
|
293
|
+
if (Array.isArray(issues) && issues.length > 0)
|
|
294
|
+
return issuesLine(msg.slice(0, at), issues);
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
// Not a zod list: fall through to the first line.
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
return msg.split("\n")[0];
|
|
301
|
+
}
|
|
302
|
+
/** A lock that does not read, in one line (§3): the zod dump and a bare JSON.parse message name nothing. */
|
|
303
|
+
function lockMessage(e) {
|
|
304
|
+
const issues = e.issues;
|
|
305
|
+
if (Array.isArray(issues) && issues.length > 0)
|
|
306
|
+
return issuesLine(`${LOCK_FILE} is not a valid lock`, issues);
|
|
307
|
+
if (e instanceof SyntaxError)
|
|
308
|
+
return `${LOCK_FILE} is not valid JSON (${oneLine(e)})`;
|
|
309
|
+
return oneLine(e);
|
|
310
|
+
}
|
|
311
|
+
/** Declared keys with no default that no layer fills, with the ingredients declaring them (§4.2). */
|
|
312
|
+
function declaredWithoutValue(p) {
|
|
313
|
+
const out = new Map();
|
|
314
|
+
for (const ing of p.resolution.ingredients) {
|
|
315
|
+
const values = paramsFor(ing, p.resolution);
|
|
316
|
+
// `paramsFor` already holds the ingredient's own default, so a key it lacks has neither default nor value.
|
|
317
|
+
for (const key of Object.keys(ing.meta.params ?? {})) {
|
|
318
|
+
if (Object.hasOwn(values, key))
|
|
319
|
+
continue;
|
|
320
|
+
out.set(key, [...(out.get(key) ?? []), ing.ref]);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
return out;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* One finding per (server outName, NAME) across the targets that write MCP (§4.2). Each target's own
|
|
327
|
+
* surviving server is read (last-wins per target, as its emitter writes it), so two targets writing the
|
|
328
|
+
* same name from different ingredients are both checked.
|
|
329
|
+
*/
|
|
330
|
+
function mcpUnset(p, env) {
|
|
331
|
+
const servers = [];
|
|
332
|
+
for (const target of p.resolution.targets) {
|
|
333
|
+
// `written()` yields only what the matrix says this target writes; the skip warnings were plan()'s.
|
|
334
|
+
const walk = written(p.resolution, target, () => { });
|
|
335
|
+
const perTarget = new Map();
|
|
336
|
+
for (const ing of walk)
|
|
337
|
+
if (ing.meta.type === "mcp")
|
|
338
|
+
perTarget.set(outName(ing.meta), ing.meta.server);
|
|
339
|
+
servers.push(...perTarget);
|
|
340
|
+
}
|
|
341
|
+
const out = [];
|
|
342
|
+
const seen = new Set();
|
|
343
|
+
for (const [server, def] of servers) {
|
|
344
|
+
const envBlock = def !== null && typeof def === "object" ? def.env : undefined;
|
|
345
|
+
if (envBlock === null || typeof envBlock !== "object")
|
|
346
|
+
continue;
|
|
347
|
+
for (const value of Object.values(envBlock)) {
|
|
348
|
+
if (typeof value !== "string")
|
|
349
|
+
continue;
|
|
350
|
+
for (const match of value.matchAll(NAME_REF)) {
|
|
351
|
+
const name = match[1];
|
|
352
|
+
const key = `${server}\u0000${name}`;
|
|
353
|
+
if (seen.has(key) || env[name] !== undefined)
|
|
354
|
+
continue;
|
|
355
|
+
seen.add(key);
|
|
356
|
+
out.push({ server, name });
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return out;
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/core/registry.js
CHANGED
|
@@ -137,7 +137,7 @@ export async function forget(home, dir) {
|
|
|
137
137
|
* exists but cannot be inspected (EACCES…) is not gone — the load fails and the row reads `error`,
|
|
138
138
|
* which `prune` never removes.
|
|
139
139
|
*/
|
|
140
|
-
async function isMissing(entry) {
|
|
140
|
+
export async function isMissing(entry) {
|
|
141
141
|
try {
|
|
142
142
|
await fs.stat(path.join(entry.path, WORKSPACE_FILE));
|
|
143
143
|
return false;
|
|
@@ -147,6 +147,32 @@ async function isMissing(entry) {
|
|
|
147
147
|
return code === "ENOENT" || code === "ENOTDIR";
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
+
/** Whether `dir` has a registry entry — by real path, without case on Windows, as `register` keys it (spec 24 §5.1). */
|
|
151
|
+
export async function isRegistered(reg, dir) {
|
|
152
|
+
const target = await realOrResolved(dir);
|
|
153
|
+
return reg.workspaces.some((e) => samePath(e.path, target));
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* What names a cache entry (spec 24 §4.3): every registry entry's `forge.key` —
|
|
157
|
+
* `missing` ones included, until `workspaces prune` — and the checked workspace's own key. Returns
|
|
158
|
+
* each named key with the workspace paths that name it.
|
|
159
|
+
*/
|
|
160
|
+
export function namedCacheKeys(reg, checked) {
|
|
161
|
+
const named = new Map();
|
|
162
|
+
const add = (key, by) => {
|
|
163
|
+
if (key === null)
|
|
164
|
+
return;
|
|
165
|
+
const list = named.get(key) ?? [];
|
|
166
|
+
if (!list.some((p) => samePath(p, by)))
|
|
167
|
+
list.push(by);
|
|
168
|
+
named.set(key, list);
|
|
169
|
+
};
|
|
170
|
+
for (const e of reg.workspaces)
|
|
171
|
+
add(e.forge.key, e.path);
|
|
172
|
+
if (checked)
|
|
173
|
+
add(checked.key, checked.path);
|
|
174
|
+
return named;
|
|
175
|
+
}
|
|
150
176
|
/** `craftar workspaces prune` (§4.4): removes every `missing` entry; returns their paths. Loads nothing else. */
|
|
151
177
|
export async function prune(home) {
|
|
152
178
|
if (!(await exists(registryFile(home))))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAgD,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAmB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAA8C,MAAM,WAAW,CAAC;AAE9H;;;;GAIG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAED,4DAA4D;AAC5D,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC;AAED,sEAAsE;AACtE,KAAK,UAAU,cAAc,CAAC,GAAW;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAChE,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAE,GAA2B,CAAC,MAAM,CAAC;QAC5I,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,oBAAoB,IAAI,CAAC,SAAS,CAAE,GAA2B,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC;IACjK,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,CAAgB,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEpF,qGAAqG;AACrG,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,GAAa;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IACzC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,KAAK,UAAU,MAAM,CAAI,IAAY,EAAE,MAAkB,EAAE,MAAyC;IAClG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wFAAwF;AACxF,KAAK,UAAU,QAAQ,CAAC,EAAa;IACnC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,SAAS,OAAO,CAAC,EAAa,EAAE,OAAiB;IAC/C,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QAC9C,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,EAAa,EAAE,CAAO,EAAE,OAA0C,EAAE;IAC/G,MAAM,KAAK,GAAkB;QAC3B,IAAI,EAAE,MAAM,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC;QACnC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;QAC1B,KAAK,EAAE;YACL,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI;YACpB,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK;YACvB,GAAG,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC;YACvB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG;YAClB,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM;YACvB,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa;SACvC;QACD,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO;QAC7B,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO;QAC7B,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;KACjD,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3C,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,GAAW;IACpD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,aAAa,EAAE,CAAC;IAC/D,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,MAAM;YAAE,MAAM,aAAa,EAAE,CAAC;QACjE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CAAC,KAAoB;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,GAAI,CAA2B,CAAC,IAAI,CAAC;QAC/C,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC;IACjD,CAAC;AACH,CAAC;AAED,iHAAiH;AACjH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAY;IACtC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;QAAE,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACpC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAoB,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;;gBACxC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,+FAA+F;AAC/F,MAAM,UAAU,SAAS,CAAC,QAAsB,EAAE,IAAiB;IACjE,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,GAAG,GAAG,CAAC,GAAG,MAA6B,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACjG,IAAI,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9D,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IACtD,OAAO,YAAY,CAAC;AACtB,CAAC;AAkCD,sEAAsE;AACtE,SAAS,SAAS,CAAC,CAAgB,EAAE,SAA8B;IACjE,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;YAClB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;YACtB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG;YAChB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG;YAChB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;YACtB,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa;YACpC,OAAO,EAAE,KAAK;SACf;QACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,QAAsB;IACpC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAAwB;IACzE,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,6FAA6F;IAC7F,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,EAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,EAAE,GAAG,MAAM,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;gBAC1B,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO;gBAC7B,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO;gBAC7B,KAAK,EAAE;oBACL,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI;oBACpB,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK;oBACvB,GAAG,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC;oBACvB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG;oBAClB,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa;oBACtC,MAAM;oBACN,UAAU;oBACV,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa;oBACtC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;iBAC3B;gBACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC;gBAC3B,UAAU,EAAE,MAAM,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI;gBACjF,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;aAClB,CAAC,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;gBAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE;gBAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/core/remote.js
CHANGED
|
@@ -104,7 +104,7 @@ export function parseLsRemote(stdout) {
|
|
|
104
104
|
}
|
|
105
105
|
return out;
|
|
106
106
|
}
|
|
107
|
-
const FULL_SHA = /^[0-9a-f]{40}$/;
|
|
107
|
+
export const FULL_SHA = /^[0-9a-f]{40}$/;
|
|
108
108
|
/**
|
|
109
109
|
* The commit a requested ref names, in the order of spec 13 §6.2. A full SHA is returned as is: the
|
|
110
110
|
* caller checks it exists once the fetch has run. Abbreviated SHAs are refused on purpose — their
|
|
@@ -188,10 +188,7 @@ export async function ensureTree(written, ref, opts) {
|
|
|
188
188
|
const stamp = path.join(entry, "fetched");
|
|
189
189
|
// A copy exists once a fetch completed: an init whose fetch then failed leaves no stamp.
|
|
190
190
|
const haveCopy = await exists(stamp);
|
|
191
|
-
const fetchedAt = async () =>
|
|
192
|
-
const text = (await exists(stamp)) ? (await fs.readFile(stamp, "utf8")).trim() : "";
|
|
193
|
-
return /^\d{4}-\d{2}-\d{2}T[\d:.]+Z$/.test(text) ? text : null;
|
|
194
|
-
};
|
|
191
|
+
const fetchedAt = async () => ((await exists(stamp)) ? readFetchedStamp(stamp) : null);
|
|
195
192
|
const label = ref ?? "the default branch";
|
|
196
193
|
// A full SHA already in the cache names the same commit whatever the remote does: no fetch (§14 item 3).
|
|
197
194
|
const cachedSha = ref !== null && FULL_SHA.test(ref) && haveCopy && (await hasCommit(git, repo, ref));
|
|
@@ -326,16 +323,7 @@ async function treeFor(git, entry, repo, commit, opts) {
|
|
|
326
323
|
async function cleanup(git, entry, repo, inUse, opts) {
|
|
327
324
|
const trees = path.join(entry, "trees");
|
|
328
325
|
const limit = Date.now() - (opts.cleanupMs ?? 14 * 24 * 60 * 60 * 1000);
|
|
329
|
-
|
|
330
|
-
// tree whose run died before stamping it still ages out.
|
|
331
|
-
const lastUse = async (commit) => {
|
|
332
|
-
for (const p of [`${commit}.used`, `${commit}.ok`, commit]) {
|
|
333
|
-
const st = await fs.stat(path.join(trees, p)).catch(() => null);
|
|
334
|
-
if (st)
|
|
335
|
-
return st.mtimeMs;
|
|
336
|
-
}
|
|
337
|
-
return null;
|
|
338
|
-
};
|
|
326
|
+
const lastUse = (commit) => treeLastUse(trees, commit);
|
|
339
327
|
let removed = false;
|
|
340
328
|
for (const name of await fs.readdir(trees).catch(() => [])) {
|
|
341
329
|
if (name.includes(".") || name === inUse)
|
|
@@ -370,4 +358,69 @@ async function cleanup(git, entry, repo, inUse, opts) {
|
|
|
370
358
|
function withEntryLock(entry, opts, body) {
|
|
371
359
|
return withLock(path.join(entry, "lock"), "the Forge cache entry", opts, body);
|
|
372
360
|
}
|
|
361
|
+
/* ------------------------------------------------------------------ */
|
|
362
|
+
/* Reading the cache (spec 24 §5.1) */
|
|
363
|
+
/* ------------------------------------------------------------------ */
|
|
364
|
+
/**
|
|
365
|
+
* When a tree was last used: its `.used` stamp, else its completion marker, else the directory — so a
|
|
366
|
+
* tree whose run died before stamping it still ages out. The one rule cleanup and the readers share.
|
|
367
|
+
*/
|
|
368
|
+
async function treeLastUse(trees, commit) {
|
|
369
|
+
for (const p of [`${commit}.used`, `${commit}.ok`, commit]) {
|
|
370
|
+
const st = await fs.stat(path.join(trees, p)).catch(() => null);
|
|
371
|
+
if (st)
|
|
372
|
+
return st.mtimeMs;
|
|
373
|
+
}
|
|
374
|
+
return null;
|
|
375
|
+
}
|
|
376
|
+
/** The `fetched` stamp's time, when it reads as one: the one parse `ensureTree` and the snapshot share. Throws when the stamp cannot be read. */
|
|
377
|
+
async function readFetchedStamp(stamp) {
|
|
378
|
+
const text = (await fs.readFile(stamp, "utf8")).trim();
|
|
379
|
+
return /^\d{4}-\d{2}-\d{2}T[\d:.]+Z$/.test(text) ? text : null;
|
|
380
|
+
}
|
|
381
|
+
/** Bytes of every file under `dir`, without following links; 0 for anything unreadable. */
|
|
382
|
+
async function sizeOf(dir) {
|
|
383
|
+
const st = await fs.lstat(dir).catch(() => null);
|
|
384
|
+
if (!st)
|
|
385
|
+
return 0;
|
|
386
|
+
if (!st.isDirectory())
|
|
387
|
+
return st.size;
|
|
388
|
+
let total = 0;
|
|
389
|
+
for (const name of await fs.readdir(dir).catch(() => []))
|
|
390
|
+
total += await sizeOf(path.join(dir, name));
|
|
391
|
+
return total;
|
|
392
|
+
}
|
|
393
|
+
/** A read-only snapshot of the Forge cache (spec 24 §5.1): the one reader of the layout outside `ensureTree`. */
|
|
394
|
+
export async function inspectCache(home) {
|
|
395
|
+
const forges = path.join(path.resolve(home), "forges");
|
|
396
|
+
const entries = [];
|
|
397
|
+
const names = (await fs.readdir(forges, { withFileTypes: true }).catch((e) => {
|
|
398
|
+
if (e.code === "ENOENT")
|
|
399
|
+
return [];
|
|
400
|
+
throw e;
|
|
401
|
+
})).sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
|
|
402
|
+
for (const d of names) {
|
|
403
|
+
if (!d.isDirectory())
|
|
404
|
+
continue;
|
|
405
|
+
const dir = path.join(forges, d.name);
|
|
406
|
+
const stamp = path.join(dir, "fetched");
|
|
407
|
+
const fetched = await exists(stamp);
|
|
408
|
+
const trees = path.join(dir, "trees");
|
|
409
|
+
const treeInfo = [];
|
|
410
|
+
for (const name of (await fs.readdir(trees).catch(() => [])).sort()) {
|
|
411
|
+
if (name.includes("."))
|
|
412
|
+
continue;
|
|
413
|
+
treeInfo.push({ commit: name, complete: await exists(path.join(trees, `${name}.ok`)), lastUse: await treeLastUse(trees, name) });
|
|
414
|
+
}
|
|
415
|
+
entries.push({
|
|
416
|
+
key: d.name,
|
|
417
|
+
dir,
|
|
418
|
+
bytes: await sizeOf(dir),
|
|
419
|
+
fetched,
|
|
420
|
+
fetchedAt: fetched ? await readFetchedStamp(stamp).catch(() => null) : null,
|
|
421
|
+
trees: treeInfo,
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
return { forges, entries, bytes: await sizeOf(forges) };
|
|
425
|
+
}
|
|
373
426
|
//# sourceMappingURL=remote.js.map
|