doc-detective 4.11.1 → 4.12.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/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/debug/appium.d.ts +17 -0
- package/dist/debug/appium.d.ts.map +1 -0
- package/dist/debug/appium.js +98 -0
- package/dist/debug/appium.js.map +1 -0
- package/dist/debug/cache.d.ts +13 -0
- package/dist/debug/cache.d.ts.map +1 -0
- package/dist/debug/cache.js +132 -0
- package/dist/debug/cache.js.map +1 -0
- package/dist/debug/command.d.ts.map +1 -1
- package/dist/debug/command.js +2 -0
- package/dist/debug/command.js.map +1 -1
- package/dist/debug/findings.d.ts +9 -0
- package/dist/debug/findings.d.ts.map +1 -0
- package/dist/debug/findings.js +134 -0
- package/dist/debug/findings.js.map +1 -0
- package/dist/debug/index.d.ts +18 -0
- package/dist/debug/index.d.ts.map +1 -1
- package/dist/debug/index.js +190 -1
- package/dist/debug/index.js.map +1 -1
- package/dist/debug/install.d.ts +8 -0
- package/dist/debug/install.d.ts.map +1 -0
- package/dist/debug/install.js +19 -0
- package/dist/debug/install.js.map +1 -0
- package/dist/debug/network.d.ts +9 -0
- package/dist/debug/network.d.ts.map +1 -0
- package/dist/debug/network.js +55 -0
- package/dist/debug/network.js.map +1 -0
- package/dist/debug/provenance.d.ts +17 -0
- package/dist/debug/provenance.d.ts.map +1 -0
- package/dist/debug/provenance.js +132 -0
- package/dist/debug/provenance.js.map +1 -0
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -94,6 +94,7 @@ async function runTestsHandler(args) {
|
|
|
94
94
|
configPath: configPath,
|
|
95
95
|
configError: err instanceof Error ? err : new Error(String(err)),
|
|
96
96
|
outDir: defaultDebugDir(),
|
|
97
|
+
args,
|
|
97
98
|
});
|
|
98
99
|
// The env-var dump replaced a real test run; a broken config must
|
|
99
100
|
// still fail the process so CI doesn't go green on an unran suite.
|
|
@@ -114,6 +115,7 @@ async function runTestsHandler(args) {
|
|
|
114
115
|
configPath,
|
|
115
116
|
configError: null,
|
|
116
117
|
outDir: defaultDebugDir(),
|
|
118
|
+
args,
|
|
117
119
|
});
|
|
118
120
|
return;
|
|
119
121
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,OAAO,EACP,cAAc,EACd,GAAG,EACH,uBAAuB,EACvB,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElD,MAAM;AACN,OAAO,EAAE,CAAC;AACV,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC9B,0EAA0E;IAC1E,yEAAyE;IACzE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,MAAM,UAAU,CAAC,IAAI,CAAC;SACnB,OAAO,CAAC;QACP,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,oCAAoC;QAC9C,OAAO,EAAE,eAAe;KACzB,CAAC;SACD,OAAO,CAAC;QACP,mEAAmE;QACnE,iEAAiE;QACjE,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,eAAe;KACzB,CAAC;QACF,oEAAoE;QACpE,0EAA0E;QAC1E,gEAAgE;SAC/D,OAAO,CAAC,EAAE,GAAG,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAS,CAAC;SAC5D,OAAO,CAAC,cAAqB,CAAC;SAC9B,OAAO,CAAC,YAAY,CAAC;SACrB,MAAM,EAAE;SACR,aAAa,CAAC,CAAC,CAAC;QACjB,2EAA2E;QAC3E,wEAAwE;SACvE,IAAI,CAAC,CAAC,GAAW,EAAE,GAAsB,EAAE,EAAE;QAC5C,IAAI,GAAG;YAAE,MAAM,GAAG,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC;SACD,UAAU,EAAE,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,KAAK,UAAU,eAAe,CAAC,IAAS;IACtC,4FAA4F;IAC5F,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACxE,kEAAkE;IAClE,mEAAmE;IACnE,iEAAiE;IACjE,MAAM,iBAAiB,GACrB,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,iBAAiB;QAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAC/B,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC/B,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;oBAC9B,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,IAAI,CAAC;IAET,oEAAoE;IACpE,gEAAgE;IAChE,qEAAqE;IACrE,+DAA+D;IAC/D,gEAAgE;IAChE,iDAAiD;IACjD,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;IAE1C,aAAa;IACb,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,cAAc,EAAE,CAAC;YACnB,4DAA4D;YAC5D,kEAAkE;YAClE,8CAA8C;YAC9C,MAAM,UAAU,GAAQ;gBACtB,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBACpE,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;aACzD,CAAC;YACF,MAAM,UAAU,CAAC;gBACf,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,MAAM,EAAE,eAAe,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface AppiumDriverStatus {
|
|
2
|
+
name: string;
|
|
3
|
+
registered: boolean | null;
|
|
4
|
+
npmResolvable: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface AppiumDiagnostics {
|
|
7
|
+
appiumHome: string | null;
|
|
8
|
+
appiumInstalled: boolean;
|
|
9
|
+
extensionsManifestPath: string | null;
|
|
10
|
+
extensionsManifestPresent: boolean;
|
|
11
|
+
manifestError?: string;
|
|
12
|
+
registeredDrivers: string[];
|
|
13
|
+
drivers: AppiumDriverStatus[];
|
|
14
|
+
}
|
|
15
|
+
export declare function registeredDriverPkgNames(manifestText: string): string[];
|
|
16
|
+
export declare function collectAppiumDiagnostics(config: any): AppiumDiagnostics;
|
|
17
|
+
//# sourceMappingURL=appium.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appium.d.ts","sourceRoot":"","sources":["../../src/debug/appium.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,kBAAkB;IAEjC,IAAI,EAAE,MAAM,CAAC;IAKb,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAE3B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,yBAAyB,EAAE,OAAO,CAAC;IAGnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAKD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAWvE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,CAyDvE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Appium registration collector for the diagnostic dump.
|
|
2
|
+
//
|
|
3
|
+
// Reconciles the two ways an Appium driver can be "there":
|
|
4
|
+
// - npm-resolvable: the driver package resolves from the shim node_modules
|
|
5
|
+
// or the runtime cache (resolveHeavyDepPath).
|
|
6
|
+
// - registered: Appium has it recorded in its extensions manifest
|
|
7
|
+
// (<APPIUM_HOME>/node_modules/.cache/appium/extensions.yaml) under the
|
|
8
|
+
// active APPIUM_HOME.
|
|
9
|
+
// The mismatch ("I npm-installed it but Appium doesn't see it") is a real
|
|
10
|
+
// support case, usually an APPIUM_HOME pointing at the wrong node_modules.
|
|
11
|
+
//
|
|
12
|
+
// Registration is read straight from extensions.yaml — the same manifest
|
|
13
|
+
// Appium itself reads — rather than spawning `appium driver list`. That
|
|
14
|
+
// command cold-loads Appium and does an npm update-check (network), so it's
|
|
15
|
+
// slow and variable (8s+ cold vs <1s warm); a bounded probe would
|
|
16
|
+
// intermittently time out and then mislabel every registered driver as
|
|
17
|
+
// "not registered". The manifest is authoritative, offline, and instant, so
|
|
18
|
+
// the dump has no subprocess at all.
|
|
19
|
+
import fs from "node:fs";
|
|
20
|
+
import path from "node:path";
|
|
21
|
+
import YAML from "yaml";
|
|
22
|
+
import { setAppiumHome } from "../core/appium.js";
|
|
23
|
+
import { resolveHeavyDepPath } from "../runtime/loader.js";
|
|
24
|
+
// The driver packages doc-detective installs. Order matches the browsers we
|
|
25
|
+
// support (Chrome via chromium, Firefox via gecko).
|
|
26
|
+
const KNOWN_DRIVERS = ["appium-chromium-driver", "appium-geckodriver"];
|
|
27
|
+
// Parse the `pkgName` of every driver recorded in an extensions.yaml
|
|
28
|
+
// document. Falls back to the short driver key when an entry omits pkgName.
|
|
29
|
+
// Pure (takes the YAML text) so it's unit-testable without a filesystem.
|
|
30
|
+
export function registeredDriverPkgNames(manifestText) {
|
|
31
|
+
const doc = YAML.parse(manifestText);
|
|
32
|
+
const drivers = doc?.drivers;
|
|
33
|
+
if (!drivers || typeof drivers !== "object")
|
|
34
|
+
return [];
|
|
35
|
+
const names = [];
|
|
36
|
+
for (const key of Object.keys(drivers)) {
|
|
37
|
+
const entry = drivers[key];
|
|
38
|
+
const pkg = entry?.pkgName;
|
|
39
|
+
names.push(typeof pkg === "string" && pkg.length > 0 ? pkg : key);
|
|
40
|
+
}
|
|
41
|
+
return names;
|
|
42
|
+
}
|
|
43
|
+
export function collectAppiumDiagnostics(config) {
|
|
44
|
+
const ctx = { cacheDir: config?.cacheDir };
|
|
45
|
+
// Resolve APPIUM_HOME independently (the cache collector also does this in a
|
|
46
|
+
// full dump). Idempotent, so order doesn't matter — this collector is
|
|
47
|
+
// correct whether called standalone or after collectCacheStatus.
|
|
48
|
+
try {
|
|
49
|
+
setAppiumHome(ctx);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Best-effort — diagnostics must never crash.
|
|
53
|
+
}
|
|
54
|
+
const appiumHome = process.env.APPIUM_HOME || null;
|
|
55
|
+
// Appium records registered extensions in
|
|
56
|
+
// <APPIUM_HOME>/node_modules/.cache/appium/extensions.yaml.
|
|
57
|
+
const extensionsManifestPath = appiumHome
|
|
58
|
+
? path.join(appiumHome, "node_modules", ".cache", "appium", "extensions.yaml")
|
|
59
|
+
: null;
|
|
60
|
+
let extensionsManifestPresent = false;
|
|
61
|
+
let manifestError;
|
|
62
|
+
let registeredDrivers = [];
|
|
63
|
+
if (extensionsManifestPath) {
|
|
64
|
+
try {
|
|
65
|
+
extensionsManifestPresent = fs.existsSync(extensionsManifestPath);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
extensionsManifestPresent = false;
|
|
69
|
+
}
|
|
70
|
+
if (extensionsManifestPresent) {
|
|
71
|
+
try {
|
|
72
|
+
registeredDrivers = registeredDriverPkgNames(fs.readFileSync(extensionsManifestPath, "utf8"));
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
manifestError = err?.message || String(err);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Registration is only KNOWN when the manifest was read successfully;
|
|
80
|
+
// otherwise every driver's `registered` is null (unknown), not false.
|
|
81
|
+
const registrationKnown = extensionsManifestPresent && !manifestError;
|
|
82
|
+
const registeredSet = new Set(registeredDrivers);
|
|
83
|
+
const drivers = KNOWN_DRIVERS.map((name) => ({
|
|
84
|
+
name,
|
|
85
|
+
npmResolvable: Boolean(resolveHeavyDepPath(name, ctx)),
|
|
86
|
+
registered: registrationKnown ? registeredSet.has(name) : null,
|
|
87
|
+
}));
|
|
88
|
+
return {
|
|
89
|
+
appiumHome,
|
|
90
|
+
appiumInstalled: Boolean(resolveHeavyDepPath("appium", ctx)),
|
|
91
|
+
extensionsManifestPath,
|
|
92
|
+
extensionsManifestPresent,
|
|
93
|
+
manifestError,
|
|
94
|
+
registeredDrivers,
|
|
95
|
+
drivers,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=appium.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appium.js","sourceRoot":"","sources":["../../src/debug/appium.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface CacheEntry {
|
|
2
|
+
label: string;
|
|
3
|
+
path: string | null;
|
|
4
|
+
exists: boolean;
|
|
5
|
+
writable: boolean | null;
|
|
6
|
+
freeBytes: number | null;
|
|
7
|
+
}
|
|
8
|
+
export interface CacheStatus {
|
|
9
|
+
entries: CacheEntry[];
|
|
10
|
+
error?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function collectCacheStatus(config: any): CacheStatus;
|
|
13
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/debug/cache.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IAEd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAGzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,CAiD3D"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Cache & runtime status collector for the diagnostic dump.
|
|
2
|
+
//
|
|
3
|
+
// Resolves the directories the lazy installer and runtime depend on
|
|
4
|
+
// (cacheDir / runtimeDir / browsersDir / installed.json / APPIUM_HOME)
|
|
5
|
+
// and reports, per location, whether it exists, is writable, and how much
|
|
6
|
+
// disk space is free. A non-writable cacheDir is a common silent failure
|
|
7
|
+
// mode for lazy installs, so surfacing it here lets the Findings layer
|
|
8
|
+
// suggest `DOC_DETECTIVE_CACHE_DIR`.
|
|
9
|
+
//
|
|
10
|
+
// Read-only and crash-proof: every probe is wrapped so a permission error
|
|
11
|
+
// on one path degrades to `writable: false` rather than aborting the dump.
|
|
12
|
+
// (`getCacheDir` does create the cache root as a side effect — acceptable
|
|
13
|
+
// here since the dump is explicitly probing the cache, and it matches how
|
|
14
|
+
// every other consumer resolves the dir.)
|
|
15
|
+
import fs from "node:fs";
|
|
16
|
+
import path from "node:path";
|
|
17
|
+
import { getCacheDir, getRuntimeDir, getBrowsersDir, getInstalledRecordPath, } from "../runtime/cacheDir.js";
|
|
18
|
+
import { setAppiumHome } from "../core/appium.js";
|
|
19
|
+
function safeExists(target) {
|
|
20
|
+
try {
|
|
21
|
+
return fs.existsSync(target);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// The target itself if it exists, otherwise the nearest existing ancestor —
|
|
28
|
+
// so probes against a not-yet-created dir (e.g. <cache>/runtime/browsers,
|
|
29
|
+
// whose parents may also be missing) answer "could doc-detective create and
|
|
30
|
+
// write here?" instead of failing on the first non-existent level.
|
|
31
|
+
function nearestExistingPath(target) {
|
|
32
|
+
let current = target;
|
|
33
|
+
// Bounded by the path depth; stops at the filesystem root (dirname of a
|
|
34
|
+
// root returns the root itself).
|
|
35
|
+
for (let i = 0; i < 64; i++) {
|
|
36
|
+
if (safeExists(current))
|
|
37
|
+
return current;
|
|
38
|
+
const parent = path.dirname(current);
|
|
39
|
+
if (parent === current)
|
|
40
|
+
return current;
|
|
41
|
+
current = parent;
|
|
42
|
+
}
|
|
43
|
+
return current;
|
|
44
|
+
}
|
|
45
|
+
// Probe W_OK on the path (or its nearest existing ancestor).
|
|
46
|
+
function isWritable(target) {
|
|
47
|
+
try {
|
|
48
|
+
fs.accessSync(nearestExistingPath(target), fs.constants.W_OK);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function freeSpaceBytes(target) {
|
|
56
|
+
try {
|
|
57
|
+
// statfsSync landed in Node 18.15 / 19.6; older runtimes lack it.
|
|
58
|
+
const statfsSync = fs
|
|
59
|
+
.statfsSync;
|
|
60
|
+
if (typeof statfsSync !== "function")
|
|
61
|
+
return null;
|
|
62
|
+
const stats = statfsSync(nearestExistingPath(target));
|
|
63
|
+
if (typeof stats?.bavail !== "number" || typeof stats?.bsize !== "number") {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return stats.bavail * stats.bsize;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function probeDir(label, p) {
|
|
73
|
+
return {
|
|
74
|
+
label,
|
|
75
|
+
path: p,
|
|
76
|
+
exists: safeExists(p),
|
|
77
|
+
writable: isWritable(p),
|
|
78
|
+
freeBytes: freeSpaceBytes(p),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export function collectCacheStatus(config) {
|
|
82
|
+
const ctx = { cacheDir: config?.cacheDir };
|
|
83
|
+
const entries = [];
|
|
84
|
+
try {
|
|
85
|
+
entries.push(probeDir("cacheDir", getCacheDir(ctx)));
|
|
86
|
+
entries.push(probeDir("runtimeDir", getRuntimeDir(ctx)));
|
|
87
|
+
entries.push(probeDir("browsersDir", getBrowsersDir(ctx)));
|
|
88
|
+
// installed.json is a file, not a dir — report existence + whether the
|
|
89
|
+
// installer could write the record here. writeInstalledRecord() writes via
|
|
90
|
+
// tmp-file + rename, which depends on the *directory* being writable (not
|
|
91
|
+
// the file), so probe the parent dir explicitly rather than the file path.
|
|
92
|
+
const recordPath = getInstalledRecordPath(ctx);
|
|
93
|
+
entries.push({
|
|
94
|
+
label: "installed.json",
|
|
95
|
+
path: recordPath,
|
|
96
|
+
exists: safeExists(recordPath),
|
|
97
|
+
writable: isWritable(path.dirname(recordPath)),
|
|
98
|
+
freeBytes: null,
|
|
99
|
+
});
|
|
100
|
+
// APPIUM_HOME is resolved by mutating process.env (setAppiumHome returns
|
|
101
|
+
// void), then read back. setAppiumHome always assigns a value (its legacy
|
|
102
|
+
// fallback sets one unconditionally), so the unset branch below only fires
|
|
103
|
+
// if the call threw and was swallowed above. Resolution is idempotent and
|
|
104
|
+
// done independently here (the appium collector calls it too) so each
|
|
105
|
+
// collector is correct standalone and in any order — the second call in a
|
|
106
|
+
// full dump is a cheap no-op, not an ordering dependency.
|
|
107
|
+
try {
|
|
108
|
+
setAppiumHome(ctx);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Best-effort — diagnostics must never crash.
|
|
112
|
+
}
|
|
113
|
+
const appiumHome = process.env.APPIUM_HOME;
|
|
114
|
+
if (typeof appiumHome === "string" && appiumHome.length > 0) {
|
|
115
|
+
entries.push(probeDir("APPIUM_HOME", appiumHome));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
entries.push({
|
|
119
|
+
label: "APPIUM_HOME",
|
|
120
|
+
path: null,
|
|
121
|
+
exists: false,
|
|
122
|
+
writable: null,
|
|
123
|
+
freeBytes: null,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
return { entries, error: err?.message || String(err) };
|
|
129
|
+
}
|
|
130
|
+
return { entries };
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/debug/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/debug/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAQD,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/debug/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAQD,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,CAuErD,CAAC"}
|
package/dist/debug/command.js
CHANGED
|
@@ -53,6 +53,7 @@ export const debugCommand = {
|
|
|
53
53
|
configError: err instanceof Error ? err : new Error(String(err)),
|
|
54
54
|
includeEnv,
|
|
55
55
|
outDir,
|
|
56
|
+
args,
|
|
56
57
|
});
|
|
57
58
|
// Config is broken — exit non-zero so scripts/CI that gate on the
|
|
58
59
|
// exit code don't treat a CONFIG INVALID dump as success. Mirrors
|
|
@@ -66,6 +67,7 @@ export const debugCommand = {
|
|
|
66
67
|
configError: null,
|
|
67
68
|
includeEnv,
|
|
68
69
|
outDir,
|
|
70
|
+
args,
|
|
69
71
|
});
|
|
70
72
|
},
|
|
71
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/debug/command.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAUzB,qEAAqE;AACrE,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,mEAAmE;AACnE,uDAAuD;AACvD,MAAM,CAAC,MAAM,YAAY,GAAiC;IACxD,OAAO,EAAE,OAAO;IAChB,QAAQ,EACN,sKAAsK;IACxK,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;QAC1B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EACN,oKAAoK;KACvK,CAA+C;IAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,wEAAwE;QACxE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACxE,kEAAkE;QAClE,oEAAoE;QACpE,gEAAgE;QAChE,MAAM,iBAAiB,GACrB,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,iBAAiB;YAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,MAAiB,CAAC,IAAI,EAAE,CAAC;YAC9C,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC/B,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;oBAC/B,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;wBAC9B,CAAC,CAAC,aAAa;wBACf,CAAC,CAAC,IAAI,CAAC;QAET,0EAA0E;QAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnE,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,kEAAkE;YAClE,yDAAyD;YACzD,MAAM,UAAU,CAAC;gBACf,MAAM,EAAE;oBACN,QAAQ,EACN,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;oBAC5D,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;iBACzD;gBACD,UAAU;gBACV,WAAW,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,UAAU;gBACV,MAAM;
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/debug/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DebugData } from "./index.js";
|
|
2
|
+
export interface Finding {
|
|
3
|
+
severity: "error" | "warning" | "info";
|
|
4
|
+
title: string;
|
|
5
|
+
detail: string;
|
|
6
|
+
fix?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function computeFindings(data: DebugData): Finding[];
|
|
9
|
+
//# sourceMappingURL=findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/debug/findings.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA2HD,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,CAW1D"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// Interpretation layer for the diagnostic dump.
|
|
2
|
+
//
|
|
3
|
+
// Pure functions over the already-collected DebugData (no I/O, no probing —
|
|
4
|
+
// the data sections did that). Each rule turns a data condition into a
|
|
5
|
+
// human-readable Finding with, where possible, the exact fix command. This
|
|
6
|
+
// is what makes the dump self-service for support: instead of "Chrome NOT
|
|
7
|
+
// AVAILABLE", the user sees "→ run `doc-detective install runtime`".
|
|
8
|
+
//
|
|
9
|
+
// Modeled on the hints philosophy in src/hints/: small, pure, concrete.
|
|
10
|
+
// `import type` keeps this a compile-time-only dependency on index.ts, so
|
|
11
|
+
// there's no runtime import cycle.
|
|
12
|
+
function findDriver(data, pkg) {
|
|
13
|
+
return (data.appium?.drivers || []).find((d) => d.name === pkg);
|
|
14
|
+
}
|
|
15
|
+
function findBrowser(data, name) {
|
|
16
|
+
return (data.browsers?.browsers || []).find((b) => b.name === name);
|
|
17
|
+
}
|
|
18
|
+
// Chrome can't run and its Appium driver is missing or unregistered → the
|
|
19
|
+
// runtime install is incomplete.
|
|
20
|
+
const chromeUnavailable = (data) => {
|
|
21
|
+
const chrome = findBrowser(data, "chrome");
|
|
22
|
+
if (!chrome || !chrome.supported || chrome.available)
|
|
23
|
+
return null;
|
|
24
|
+
const driver = findDriver(data, "appium-chromium-driver");
|
|
25
|
+
// Suppress only when the driver is confirmed resolvable AND registered.
|
|
26
|
+
if (driver && driver.npmResolvable && driver.registered === true)
|
|
27
|
+
return null;
|
|
28
|
+
// Tailor the detail to what we actually know: a missing driver, a confirmed
|
|
29
|
+
// unregistered one, and an unknown-registration one (manifest absent) are
|
|
30
|
+
// distinct — saying "missing or not registered" for the unknown case would
|
|
31
|
+
// be wrong (the package resolved fine; only its registration is unverified).
|
|
32
|
+
const detail = !driver || !driver.npmResolvable
|
|
33
|
+
? "Chrome shows NOT AVAILABLE and its Appium driver (appium-chromium-driver) is missing, so browser tests can't run."
|
|
34
|
+
: driver.registered === false
|
|
35
|
+
? "Chrome shows NOT AVAILABLE and appium-chromium-driver is installed but not registered under the active APPIUM_HOME."
|
|
36
|
+
: "Chrome shows NOT AVAILABLE. appium-chromium-driver is installed, but its registration is unknown (Appium manifest missing or unreadable).";
|
|
37
|
+
return {
|
|
38
|
+
severity: "error",
|
|
39
|
+
title: "Chrome is not available",
|
|
40
|
+
detail,
|
|
41
|
+
fix: "doc-detective install runtime",
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
// Recorded install is older than the declared constraint, or the
|
|
45
|
+
// doc-detective / doc-detective-common versions disagree → stale install.
|
|
46
|
+
const staleInstall = (data) => {
|
|
47
|
+
const outdated = (data.install?.rows || []).filter((r) => r.outdated);
|
|
48
|
+
const lockstep = Boolean(data.docDetective?.lockstepWarning);
|
|
49
|
+
if (outdated.length === 0 && !lockstep)
|
|
50
|
+
return null;
|
|
51
|
+
const reasons = [];
|
|
52
|
+
if (outdated.length > 0) {
|
|
53
|
+
reasons.push(`outdated: ${outdated.map((r) => r.assetId).join(", ")}`);
|
|
54
|
+
}
|
|
55
|
+
if (lockstep)
|
|
56
|
+
reasons.push("doc-detective / doc-detective-common version mismatch");
|
|
57
|
+
return {
|
|
58
|
+
severity: "warning",
|
|
59
|
+
title: "Install looks stale",
|
|
60
|
+
detail: `${reasons.join("; ")}. A stale or mismatched install is a common source of hard-to-explain failures.`,
|
|
61
|
+
fix: "doc-detective install runtime",
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
// cacheDir not writable → lazy installs and recordings have nowhere to go.
|
|
65
|
+
const cacheNotWritable = (data) => {
|
|
66
|
+
const entry = (data.cache?.entries || []).find((e) => e.label === "cacheDir");
|
|
67
|
+
if (!entry || entry.writable !== false)
|
|
68
|
+
return null;
|
|
69
|
+
return {
|
|
70
|
+
severity: "error",
|
|
71
|
+
title: "Cache directory is not writable",
|
|
72
|
+
detail: `cacheDir (${entry.path}) is not writable, so doc-detective can't lazy-install browsers or runtime packages there.`,
|
|
73
|
+
fix: "set DOC_DETECTIVE_CACHE_DIR to a writable path",
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
// A proxy is configured and something the installer needs is missing — flag
|
|
77
|
+
// the proxy as a likely lazy-install blocker (we don't probe reachability;
|
|
78
|
+
// that's the opt-in --check-network work).
|
|
79
|
+
const proxyMaybeBlocking = (data) => {
|
|
80
|
+
// Catch both the standard proxy env vars (HTTP(S)_PROXY / ALL_PROXY) and a
|
|
81
|
+
// proxy configured purely through npm (`npm config set proxy=…`), which
|
|
82
|
+
// surfaces in the network section as npm_config_proxy / npm_config_https_proxy.
|
|
83
|
+
const hasProxy = (data.network?.variables || []).some((v) => /^(https?_proxy|all_proxy)$/i.test(v.name) ||
|
|
84
|
+
/^npm_config_(https?_)?proxy$/i.test(v.name));
|
|
85
|
+
if (!hasProxy)
|
|
86
|
+
return null;
|
|
87
|
+
const missingNpm = (data.install?.rows || []).some((r) => r.kind === "npm" && !r.installed);
|
|
88
|
+
if (!missingNpm)
|
|
89
|
+
return null;
|
|
90
|
+
return {
|
|
91
|
+
severity: "info",
|
|
92
|
+
title: "Proxy configured with missing runtime packages",
|
|
93
|
+
detail: "A proxy is set and some runtime npm packages are not installed. If lazy installs fail, the proxy/registry is the likely cause — verify it's reachable and that proxy-agent is installed for @puppeteer/browsers downloads.",
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
// Driver resolves from npm but Appium doesn't list it → APPIUM_HOME mismatch.
|
|
97
|
+
// `registered === false` is the only firing case: `null` (manifest unread)
|
|
98
|
+
// means registration is unknown, not a finding — a missing manifest must not
|
|
99
|
+
// false-flag every resolvable driver.
|
|
100
|
+
const driverNotRegistered = (data) => {
|
|
101
|
+
const stranded = (data.appium?.drivers || []).filter((d) => d.npmResolvable && d.registered === false);
|
|
102
|
+
if (stranded.length === 0)
|
|
103
|
+
return null;
|
|
104
|
+
return {
|
|
105
|
+
severity: "warning",
|
|
106
|
+
title: "Appium driver installed but not registered",
|
|
107
|
+
detail: `${stranded
|
|
108
|
+
.map((d) => d.name)
|
|
109
|
+
.join(", ")} resolve from npm but Appium doesn't list them under the active APPIUM_HOME — usually an APPIUM_HOME pointing at the wrong node_modules.`,
|
|
110
|
+
fix: "doc-detective install runtime",
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
const RULES = [
|
|
114
|
+
chromeUnavailable,
|
|
115
|
+
staleInstall,
|
|
116
|
+
cacheNotWritable,
|
|
117
|
+
proxyMaybeBlocking,
|
|
118
|
+
driverNotRegistered,
|
|
119
|
+
];
|
|
120
|
+
export function computeFindings(data) {
|
|
121
|
+
const findings = [];
|
|
122
|
+
for (const rule of RULES) {
|
|
123
|
+
try {
|
|
124
|
+
const finding = rule(data);
|
|
125
|
+
if (finding)
|
|
126
|
+
findings.push(finding);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// A rule must never crash the dump; skip on error.
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return findings;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=findings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/debug/findings.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,2EAA2E;AAC3E,0EAA0E;AAC1E,qEAAqE;AACrE,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,mCAAmC;AAanC,SAAS,UAAU,CAAC,IAAe,EAAE,GAAW;IAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,IAAe,EAAE,IAAY;IAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,0EAA0E;AAC1E,iCAAiC;AACjC,MAAM,iBAAiB,GAAS,CAAC,IAAI,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAC1D,wEAAwE;IACxE,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9E,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,MAAM,GACV,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa;QAC9B,CAAC,CAAC,mHAAmH;QACrH,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK;YAC7B,CAAC,CAAC,qHAAqH;YACvH,CAAC,CAAC,2IAA2I,CAAC;IAClJ,OAAO;QACL,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,yBAAyB;QAChC,MAAM;QACN,GAAG,EAAE,+BAA+B;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,iEAAiE;AACjE,0EAA0E;AAC1E,MAAM,YAAY,GAAS,CAAC,IAAI,EAAE,EAAE;IAClC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzD,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpF,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,qBAAqB;QAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iFAAiF;QAC9G,GAAG,EAAE,+BAA+B;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,gBAAgB,GAAS,CAAC,IAAI,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;IAC9E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO;QACL,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,iCAAiC;QACxC,MAAM,EAAE,aAAa,KAAK,CAAC,IAAI,4FAA4F;QAC3H,GAAG,EAAE,gDAAgD;KACtD,CAAC;AACJ,CAAC,CAAC;AAEF,4EAA4E;AAC5E,2EAA2E;AAC3E,2CAA2C;AAC3C,MAAM,kBAAkB,GAAS,CAAC,IAAI,EAAE,EAAE;IACxC,2EAA2E;IAC3E,wEAAwE;IACxE,gFAAgF;IAChF,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CACnD,CAAC,CAAC,EAAE,EAAE,CACJ,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/C,CAAC;IACF,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CACxC,CAAC;IACF,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,gDAAgD;QACvD,MAAM,EACJ,4NAA4N;KAC/N,CAAC;AACJ,CAAC,CAAC;AAEF,8EAA8E;AAC9E,2EAA2E;AAC3E,6EAA6E;AAC7E,sCAAsC;AACtC,MAAM,mBAAmB,GAAS,CAAC,IAAI,EAAE,EAAE;IACzC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,CACjD,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,4CAA4C;QACnD,MAAM,EAAE,GAAG,QAAQ;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,0IAA0I;QACvJ,GAAG,EAAE,+BAA+B;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,KAAK,GAAW;IACpB,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAe;IAC7C,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/debug/index.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { type SystemInfo } from "./system.js";
|
|
2
2
|
import { type ToolResult } from "./tools.js";
|
|
3
3
|
import { type ContainerInfo } from "./envvars.js";
|
|
4
|
+
import { type InstallData } from "./install.js";
|
|
5
|
+
import { type CacheStatus } from "./cache.js";
|
|
6
|
+
import { type NetworkConfig } from "./network.js";
|
|
7
|
+
import { type Provenance } from "./provenance.js";
|
|
8
|
+
import { type AppiumDiagnostics } from "./appium.js";
|
|
9
|
+
import { type Finding } from "./findings.js";
|
|
4
10
|
export interface PrintDebugOptions {
|
|
5
11
|
config: any;
|
|
6
12
|
configPath?: string | null;
|
|
@@ -24,6 +30,12 @@ export interface PrintDebugOptions {
|
|
|
24
30
|
* omit it so calling `printDebug` never writes a file as a side effect.
|
|
25
31
|
*/
|
|
26
32
|
outDir?: string;
|
|
33
|
+
/**
|
|
34
|
+
* The raw parsed CLI args (yargs argv). Used only by the Config provenance
|
|
35
|
+
* section to report which flags overrode the validated config. Optional so
|
|
36
|
+
* unit tests can call `printDebug` without synthesizing argv.
|
|
37
|
+
*/
|
|
38
|
+
args?: any;
|
|
27
39
|
print?: (line: string) => void;
|
|
28
40
|
}
|
|
29
41
|
export declare function defaultDebugDir(): string;
|
|
@@ -76,9 +88,15 @@ export interface DebugData {
|
|
|
76
88
|
docDetective: DocDetectiveData;
|
|
77
89
|
tools: ToolResult[];
|
|
78
90
|
browsers: BrowsersData;
|
|
91
|
+
install: InstallData;
|
|
92
|
+
appium: AppiumDiagnostics;
|
|
93
|
+
cache: CacheStatus;
|
|
79
94
|
container: ContainerInfo;
|
|
95
|
+
network: NetworkConfig;
|
|
80
96
|
environment: EnvData;
|
|
97
|
+
provenance: Provenance;
|
|
81
98
|
config: ConfigData;
|
|
99
|
+
findings: Finding[];
|
|
82
100
|
}
|
|
83
101
|
export declare function printDebug(opts: PrintDebugOptions): Promise<void>;
|
|
84
102
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAStB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAID,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAaD,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,OAAO;IACf,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"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"}
|
package/dist/debug/index.js
CHANGED
|
@@ -24,6 +24,12 @@ import { probeAllTools } from "./tools.js";
|
|
|
24
24
|
import { findReferencedEnvVars, detectContainer, enumerateInputFiles, resolveDocExtensions, } from "./envvars.js";
|
|
25
25
|
import { redactValue, redactObject } from "./redact.js";
|
|
26
26
|
import { renderSection, renderKeyValues, renderDocument, } from "./render.js";
|
|
27
|
+
import { collectInstallStatus } from "./install.js";
|
|
28
|
+
import { collectCacheStatus } from "./cache.js";
|
|
29
|
+
import { collectNetworkConfig } from "./network.js";
|
|
30
|
+
import { collectProvenance } from "./provenance.js";
|
|
31
|
+
import { collectAppiumDiagnostics, } from "./appium.js";
|
|
32
|
+
import { computeFindings } from "./findings.js";
|
|
27
33
|
// Where the dump is saved by default: `<cwd>/.doc-detective/`. A function
|
|
28
34
|
// (not a constant) because it reads the live cwd at call time.
|
|
29
35
|
export function defaultDebugDir() {
|
|
@@ -45,20 +51,51 @@ function timestampForFilename(iso) {
|
|
|
45
51
|
const BROWSER_DETECTION_TIMEOUT_MS = 5000;
|
|
46
52
|
async function collectDebugData(opts) {
|
|
47
53
|
const system = collectSystemInfo();
|
|
48
|
-
|
|
54
|
+
const data = {
|
|
49
55
|
generatedAt: system.wallclockIso,
|
|
50
56
|
system,
|
|
51
57
|
docDetective: collectDocDetective(),
|
|
52
58
|
tools: await probeAllTools(opts.config?.cacheDir),
|
|
53
59
|
browsers: await collectBrowsers(opts.config),
|
|
60
|
+
install: collectInstallStatus(opts.config),
|
|
61
|
+
appium: collectAppiumStatus(opts.config),
|
|
62
|
+
cache: collectCacheStatus(opts.config),
|
|
54
63
|
container: detectContainer(),
|
|
64
|
+
network: collectNetworkConfig(),
|
|
55
65
|
environment: collectEnvVars(opts),
|
|
66
|
+
provenance: collectProvenance({
|
|
67
|
+
configPath: opts.configPath ?? null,
|
|
68
|
+
args: opts.args,
|
|
69
|
+
}),
|
|
56
70
|
config: {
|
|
57
71
|
configPath: opts.configPath ?? null,
|
|
58
72
|
configError: opts.configError?.message,
|
|
59
73
|
redacted: safeRedactConfig(opts.config),
|
|
60
74
|
},
|
|
75
|
+
// Computed last: the Findings layer interprets the data sections above.
|
|
76
|
+
findings: [],
|
|
61
77
|
};
|
|
78
|
+
data.findings = computeFindings(data);
|
|
79
|
+
return data;
|
|
80
|
+
}
|
|
81
|
+
// collectAppiumDiagnostics reads extensions.yaml (no subprocess) and guards
|
|
82
|
+
// each step, but wrap the whole call so an unforeseen throw can't abort the
|
|
83
|
+
// dump.
|
|
84
|
+
function collectAppiumStatus(config) {
|
|
85
|
+
try {
|
|
86
|
+
return collectAppiumDiagnostics(config);
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
return {
|
|
90
|
+
appiumHome: null,
|
|
91
|
+
appiumInstalled: false,
|
|
92
|
+
extensionsManifestPath: null,
|
|
93
|
+
extensionsManifestPresent: false,
|
|
94
|
+
manifestError: err?.message || String(err),
|
|
95
|
+
registeredDrivers: [],
|
|
96
|
+
drivers: [],
|
|
97
|
+
};
|
|
98
|
+
}
|
|
62
99
|
}
|
|
63
100
|
function collectDocDetective() {
|
|
64
101
|
const { loadedFrom, entryPoint } = resolveLoadedFrom();
|
|
@@ -290,16 +327,168 @@ function writeFileSafe(file, contents, print, successPrefix) {
|
|
|
290
327
|
// ---------------------------------------------------------------------------
|
|
291
328
|
function renderText(data, opts) {
|
|
292
329
|
const sections = [
|
|
330
|
+
// Findings first — it's the summary a support engineer reads before
|
|
331
|
+
// scrolling into the raw data sections below.
|
|
332
|
+
renderFindingsSection(data.findings),
|
|
293
333
|
renderSystemSection(data.system),
|
|
294
334
|
renderDocDetectiveSection(data.docDetective),
|
|
295
335
|
renderToolsSection(data.tools),
|
|
296
336
|
renderBrowsersSection(data.browsers),
|
|
337
|
+
renderInstallSection(data.install),
|
|
338
|
+
renderAppiumSection(data.appium),
|
|
339
|
+
renderCacheSection(data.cache),
|
|
297
340
|
renderContainerSection(data.container),
|
|
341
|
+
renderNetworkSection(data.network),
|
|
298
342
|
renderEnvSection(data.environment),
|
|
343
|
+
renderProvenanceSection(data.provenance),
|
|
299
344
|
renderConfigSection(data.config, opts.configError ?? null),
|
|
300
345
|
];
|
|
301
346
|
return renderDocument(sections, data.generatedAt);
|
|
302
347
|
}
|
|
348
|
+
function renderFindingsSection(findings) {
|
|
349
|
+
if (findings.length === 0) {
|
|
350
|
+
return renderSection("Findings / next steps", [" No problems detected."]);
|
|
351
|
+
}
|
|
352
|
+
const lines = [];
|
|
353
|
+
for (const f of findings) {
|
|
354
|
+
lines.push(` [${f.severity.toUpperCase()}] ${f.title}`);
|
|
355
|
+
lines.push(` ${f.detail}`);
|
|
356
|
+
if (f.fix)
|
|
357
|
+
lines.push(` fix: ${f.fix}`);
|
|
358
|
+
lines.push("");
|
|
359
|
+
}
|
|
360
|
+
if (lines[lines.length - 1] === "")
|
|
361
|
+
lines.pop();
|
|
362
|
+
return renderSection("Findings / next steps", lines);
|
|
363
|
+
}
|
|
364
|
+
// Bytes → a compact human figure (MiB / GiB) for the cache free-space rows.
|
|
365
|
+
function formatBytes(bytes) {
|
|
366
|
+
if (!Number.isFinite(bytes) || bytes < 0)
|
|
367
|
+
return "<unknown>";
|
|
368
|
+
const units = ["B", "KiB", "MiB", "GiB", "TiB"];
|
|
369
|
+
let value = bytes;
|
|
370
|
+
let unit = 0;
|
|
371
|
+
while (value >= 1024 && unit < units.length - 1) {
|
|
372
|
+
value /= 1024;
|
|
373
|
+
unit += 1;
|
|
374
|
+
}
|
|
375
|
+
const rounded = unit === 0 ? value : Math.round(value * 10) / 10;
|
|
376
|
+
return `${rounded} ${units[unit]}`;
|
|
377
|
+
}
|
|
378
|
+
function formatInstallRow(r) {
|
|
379
|
+
const state = r.installed ? "installed" : "missing ";
|
|
380
|
+
const version = r.installedVersion || "—";
|
|
381
|
+
const parts = [`${r.assetId.padEnd(24)} ${state} ${version}`];
|
|
382
|
+
if (r.expectedVersion)
|
|
383
|
+
parts.push(`expected ${r.expectedVersion}`);
|
|
384
|
+
if (r.latestKnownVersion)
|
|
385
|
+
parts.push(`latest ${r.latestKnownVersion}`);
|
|
386
|
+
if (r.outdated)
|
|
387
|
+
parts.push("OUTDATED");
|
|
388
|
+
return parts.join(" ");
|
|
389
|
+
}
|
|
390
|
+
function renderInstallSection(install) {
|
|
391
|
+
if (install.error) {
|
|
392
|
+
return renderSection("Install status", [
|
|
393
|
+
` <install status failed: ${install.error}>`,
|
|
394
|
+
]);
|
|
395
|
+
}
|
|
396
|
+
const rows = install.rows || [];
|
|
397
|
+
const npm = rows.filter((r) => r.kind === "npm");
|
|
398
|
+
const browsers = rows.filter((r) => r.kind === "browser");
|
|
399
|
+
const lines = [];
|
|
400
|
+
lines.push(` record: ${install.recordPath || "<unknown>"}`);
|
|
401
|
+
lines.push("");
|
|
402
|
+
lines.push(" npm packages:");
|
|
403
|
+
if (npm.length === 0)
|
|
404
|
+
lines.push(" <none>");
|
|
405
|
+
for (const r of npm)
|
|
406
|
+
lines.push(` ${formatInstallRow(r)}`);
|
|
407
|
+
lines.push("");
|
|
408
|
+
lines.push(" browsers:");
|
|
409
|
+
if (browsers.length === 0)
|
|
410
|
+
lines.push(" <none>");
|
|
411
|
+
for (const r of browsers)
|
|
412
|
+
lines.push(` ${formatInstallRow(r)}`);
|
|
413
|
+
return renderSection("Install status", lines);
|
|
414
|
+
}
|
|
415
|
+
function renderAppiumSection(a) {
|
|
416
|
+
const lines = [];
|
|
417
|
+
lines.push(` APPIUM_HOME: ${a.appiumHome ?? "<unset>"}`);
|
|
418
|
+
lines.push(` appium installed: ${a.appiumInstalled}`);
|
|
419
|
+
const manifest = a.extensionsManifestPresent ? "present" : "absent";
|
|
420
|
+
const manifestPath = a.extensionsManifestPath
|
|
421
|
+
? ` (${a.extensionsManifestPath})`
|
|
422
|
+
: "";
|
|
423
|
+
lines.push(` extensions.yaml: ${manifest}${manifestPath}`);
|
|
424
|
+
if (a.manifestError) {
|
|
425
|
+
lines.push(` ! could not read extensions.yaml: ${a.manifestError}`);
|
|
426
|
+
}
|
|
427
|
+
lines.push("");
|
|
428
|
+
lines.push(" drivers:");
|
|
429
|
+
if (a.drivers.length === 0)
|
|
430
|
+
lines.push(" <none>");
|
|
431
|
+
// registered === null means the manifest wasn't read — registration is
|
|
432
|
+
// unknown, not confirmed-absent. That covers two distinct cases: the
|
|
433
|
+
// manifest is absent, or it's present but unreadable/unparsable.
|
|
434
|
+
const unknownReason = a.manifestError ? "manifest unreadable" : "no manifest";
|
|
435
|
+
for (const d of a.drivers) {
|
|
436
|
+
const classification = d.registered === true
|
|
437
|
+
? "registered"
|
|
438
|
+
: !d.npmResolvable
|
|
439
|
+
? "missing"
|
|
440
|
+
: d.registered === false
|
|
441
|
+
? "resolvable but not registered"
|
|
442
|
+
: `resolvable (registration unknown — ${unknownReason})`;
|
|
443
|
+
lines.push(` ${d.name.padEnd(24)} ${classification}`);
|
|
444
|
+
}
|
|
445
|
+
return renderSection("Appium registration", lines);
|
|
446
|
+
}
|
|
447
|
+
function renderCacheSection(cache) {
|
|
448
|
+
const lines = [];
|
|
449
|
+
if (cache.error)
|
|
450
|
+
lines.push(` ! cache probe error: ${cache.error}`);
|
|
451
|
+
for (const e of cache.entries) {
|
|
452
|
+
lines.push(` ${e.label}:`);
|
|
453
|
+
lines.push(` path: ${e.path ?? "<unset>"}`);
|
|
454
|
+
lines.push(` exists: ${e.exists}`);
|
|
455
|
+
if (e.writable !== null)
|
|
456
|
+
lines.push(` writable: ${e.writable}`);
|
|
457
|
+
if (e.freeBytes !== null) {
|
|
458
|
+
lines.push(` free: ${formatBytes(e.freeBytes)}`);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
return renderSection("Cache & runtime", lines);
|
|
462
|
+
}
|
|
463
|
+
function renderNetworkSection(net) {
|
|
464
|
+
const lines = [];
|
|
465
|
+
if (net.variables.length === 0) {
|
|
466
|
+
lines.push(" <no proxy / npm network env vars set>");
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
for (const { name, value } of net.variables) {
|
|
470
|
+
lines.push(` ${name} = ${value}`);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
return renderSection("Proxy / npm network", lines);
|
|
474
|
+
}
|
|
475
|
+
function renderProvenanceSection(p) {
|
|
476
|
+
const lines = [];
|
|
477
|
+
lines.push(` config file: ${p.configPath || "<none>"}`);
|
|
478
|
+
lines.push(` DOC_DETECTIVE_CONFIG: ${p.docDetectiveConfigApplied ? "applied (overrides file)" : "not set"}`);
|
|
479
|
+
lines.push(` DOC_DETECTIVE_API: ${p.docDetectiveApiApplied ? "applied" : "not set"}`);
|
|
480
|
+
lines.push("");
|
|
481
|
+
if (p.cliOverrides.length === 0) {
|
|
482
|
+
lines.push(" CLI overrides: <none>");
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
lines.push(" CLI overrides (override file + env):");
|
|
486
|
+
for (const o of p.cliOverrides) {
|
|
487
|
+
lines.push(` --${o.flag} → config.${o.configKey}`);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
return renderSection("Config provenance", lines);
|
|
491
|
+
}
|
|
303
492
|
function renderSystemSection(info) {
|
|
304
493
|
return renderSection("System", renderKeyValues([
|
|
305
494
|
["platform", `${info.platform} (${info.arch})`],
|
package/dist/debug/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,kEAAkE;AAClE,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,yEAAyE;AACzE,mEAAmE;AACnE,wEAAwE;AACxE,2EAA2E;AAC3E,oEAAoE;AACpE,mBAAmB;AACnB,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,wEAAwE;AACxE,0DAA0D;AAE1D,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAmB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GAErB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,aAAa,EACb,eAAe,EACf,cAAc,GAEf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAoB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAsB,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,iBAAiB,CAAC;AACrE,OAAO,EACL,wBAAwB,GAEzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAgB,MAAM,eAAe,CAAC;AAkC9D,0EAA0E;AAC1E,+DAA+D;AAC/D,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACpD,CAAC;AAED,0EAA0E;AAC1E,oEAAoE;AACpE,wEAAwE;AACxE,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAsED,8DAA8D;AAC9D,2EAA2E;AAC3E,4DAA4D;AAC5D,mEAAmE;AACnE,qEAAqE;AACrE,mEAAmE;AACnE,sBAAsB;AACtB,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,KAAK,UAAU,gBAAgB,CAAC,IAAuB;IACrD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAc;QACtB,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,MAAM;QACN,YAAY,EAAE,mBAAmB,EAAE;QACnC,KAAK,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;QACjD,QAAQ,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;QACxC,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,SAAS,EAAE,eAAe,EAAE;QAC5B,OAAO,EAAE,oBAAoB,EAAE;QAC/B,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC;QACjC,UAAU,EAAE,iBAAiB,CAAC;YAC5B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QACF,MAAM,EAAE;YACN,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO;YACtC,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;SACxC;QACD,wEAAwE;QACxE,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,QAAQ;AACR,SAAS,mBAAmB,CAAC,MAAW;IACtC,IAAI,CAAC;QACH,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,KAAK;YACtB,sBAAsB,EAAE,IAAI;YAC5B,yBAAyB,EAAE,KAAK;YAChC,aAAa,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;YAC1C,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACvD,IAAI,WAAgB,CAAC;IACrB,IAAI,CAAC;QACH,WAAW,GAAG,cAAc,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,UAAU;YACV,UAAU;YACV,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,mCAAmC,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE;SAChE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,OAAO,IAAI,WAAW,CAAC;IAChE,MAAM,GAAG,GAAG,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,WAAW,EAAE,YAAY,IAAI,EAAE,CAAC;IAE7C,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,IAAI,eAAmC,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,WAAW,CAAC;QACnD,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,IACE,OAAO,KAAK,sBAAsB;YAClC,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ;YAChC,OAAO,SAAS,KAAK,QAAQ;YAC7B,SAAS,KAAK,WAAW;YACzB,GAAG,CAAC,OAAO,KAAK,SAAS,EACzB,CAAC;YACD,eAAe,GAAG,kBAAkB,SAAS,+BAA+B,GAAG,CAAC,OAAO,oFAAoF,CAAC;QAC9K,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,UAAU;QACV,UAAU;QACV,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,YAAY;QACZ,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,SAAS,iBAAiB;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;IAClD,IAAI,UAAU,GAAG,WAAW,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;gBAClD,UAAU,GAAG,GAAG,CAAC;gBACjB,MAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM;YAC1B,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAW;IACxC,IAAI,CAAC;QACH,8DAA8D;QAC9D,kEAAkE;QAClE,iEAAiE;QACjE,MAAM,UAAU,GACd,MAAM,IAAI,MAAM,CAAC,WAAW;YAC1B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QAEzE,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAClD,sEAAsE;QACtE,sEAAsE;QACtE,8DAA8D;QAC9D,IAAI,KAAgD,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAM;YACrC,qBAAqB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,4BAA4B,CAAC,CAAC;gBACjF,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,CAAC,CAAC;SACH,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACd,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,eAAe;YAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC1D,OAAO;YACL,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAuB;IAC7C,iEAAiE;IACjE,iEAAiE;IACjE,qEAAqE;IACrE,sEAAsE;IACtE,uEAAuE;IACvE,6DAA6D;IAC7D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI;gBACJ,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC5C,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,sCAAsC;IACtC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACtD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,YAAY,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,mDAAmD;IACnD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACrD,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IACrE,sEAAsE;IACtE,yEAAyE;IACzE,iEAAiE;IACjE,wEAAwE;IACxE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAClE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,gBAAgB,EAAE,KAAK,CAAC,MAAM;QAC9B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI;YACJ,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,IAAI,CAAC;QACH,kEAAkE;QAClE,iEAAiE;QACjE,kEAAkE;QAClE,mEAAmE;QACnE,OAAO,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,8BAA8B,GAAG,EAAE,OAAO,IAAI,GAAG,GAAG,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAuB;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEhB,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,8CAA8C;IAC9C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,aAAa,CACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC,EAC5C,QAAQ,GAAG,IAAI,EACf,KAAK,EACL,0BAA0B,CAC3B,CAAC;QACF,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,mCAAmC,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE;aAChE,CAAC,CAAC;QACL,CAAC;QACD,aAAa,CACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,EAC7C,IAAI,GAAG,IAAI,EACX,KAAK,EACL,0BAA0B,CAC3B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,IAAY,EACZ,QAAgB,EAChB,KAA6B,EAC7B,aAAqB;IAErB,IAAI,CAAC;QACH,sEAAsE;QACtE,wEAAwE;QACxE,uEAAuE;QACvE,4BAA4B;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,KAAK,aAAa,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,qBAAqB,IAAI,KAAK,GAAG,EAAE,OAAO,IAAI,GAAG,GAAG,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAE9E,SAAS,UAAU,CAAC,IAAe,EAAE,IAAuB;IAC1D,MAAM,QAAQ,GAAc;QAC1B,oEAAoE;QACpE,8CAA8C;QAC9C,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5C,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;QACtC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC;QACxC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;KAC3D,CAAC;IACF,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAmB;IAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,uBAAuB,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAChD,OAAO,aAAa,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,4EAA4E;AAC5E,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAC7D,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,KAAK,IAAI,IAAI,CAAC;QACd,IAAI,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACjE,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAY;IACpC,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,IAAI,GAAG,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,CAAC,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAoB;IAChD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,gBAAgB,EAAE;YACrC,6BAA6B,OAAO,CAAC,KAAK,GAAG;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,OAAO,aAAa,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAoB;IAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpE,MAAM,YAAY,GAAG,CAAC,CAAC,sBAAsB;QAC3C,CAAC,CAAC,MAAM,CAAC,CAAC,sBAAsB,GAAG;QACnC,CAAC,CAAC,EAAE,CAAC;IACP,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,GAAG,YAAY,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrD,uEAAuE;IACvE,qEAAqE;IACrE,iEAAiE;IACjE,MAAM,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,cAAc,GAClB,CAAC,CAAC,UAAU,KAAK,IAAI;YACnB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;gBAClB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK;oBACxB,CAAC,CAAC,+BAA+B;oBACjC,CAAC,CAAC,sCAAsC,aAAa,GAAG,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,aAAa,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAkB;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACrE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAkB;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,uBAAuB,CAAC,CAAa;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CACR,2BACE,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAC7D,EAAE,CACH,CAAC;IACF,KAAK,CAAC,IAAI,CACR,2BAA2B,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAC9E,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAgB;IAC3C,OAAO,aAAa,CAClB,QAAQ,EACR,eAAe,CAAC;QACd,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC;QAC/C,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;QACzB,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;QAC9B,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,WAAW,KAAK,CAAC;QACxE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,aAAa,IAAI,CAAC,aAAa,UAAU,CAAC;QACzE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC;QACpC,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC3B,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC;QACxD,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC3B,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QACrB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;KAChB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,EAAoB;IACrD,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,aAAa,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,GAA6B;QACrC,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC;QAC7B,CAAC,iBAAiB,EAAE,EAAE,CAAC,eAAe,CAAC;QACvC,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC;QAC7B,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC;QAC7B,CAAC,aAAa,EAAE,EAAE,CAAC,WAAW,CAAC;QAC/B,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC;QACzB,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC;KAC5B,CAAC;IACF,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAqB;IAC/C,MAAM,IAAI,GAA6B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,2EAA2E;IAC3E,OAAO,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAkB;IAC/C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,UAAU,EAAE;YAC/B,wCAAwC,4BAA4B,KAAK;SAC1E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,aAAa,CAAC,UAAU,EAAE;YAC/B,gCAAgC,IAAI,CAAC,KAAK,GAAG;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CACR,yEAAyE,CAC1E,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,oEAAoE;IACpE,uEAAuE;IACvE,iEAAiE;IACjE,kCAAkC;IAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS;YAC/B,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,OAAO,CAAC,SAAS;gBACnB,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,eAAe,CAAC;QACpB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;YACzD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc;IACrB,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAmB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,yCAAyC,GAAG,CAAC,SAAS,CAAC,MAAM,kDAAkD,CAChH,CAAC;QACF,KAAK,CAAC,IAAI,CACR,oIAAoI,CACrI,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,aAAa,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CACR,aAAa,GAAG,CAAC,gBAAgB,IAAI,CAAC,gFAAgF,CACvH,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAe,EAAE,WAAyB;IACrE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,gCAAgC,GAAG,EAAE,OAAO,IAAI,GAAG,GAAG,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvD,OAAO,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type StatusRow } from "../runtime/installer.js";
|
|
2
|
+
export interface InstallData {
|
|
3
|
+
recordPath?: string;
|
|
4
|
+
rows?: StatusRow[];
|
|
5
|
+
error?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function collectInstallStatus(config: any): InstallData;
|
|
8
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/debug/install.ts"],"names":[],"mappings":"AAYA,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,CAO7D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Install-status collector for the diagnostic dump.
|
|
2
|
+
//
|
|
3
|
+
// Diffs <cacheDir>/installed.json against the declared/expected versions via
|
|
4
|
+
// the installer's own status() — the same matrix `doc-detective install`
|
|
5
|
+
// reports (installed vs expected vs outdated, for npm packages and
|
|
6
|
+
// browsers). Wrapped so a missing/corrupt cache degrades to an `error`
|
|
7
|
+
// marker instead of crashing the dump.
|
|
8
|
+
import { getInstalledRecordPath, } from "../runtime/cacheDir.js";
|
|
9
|
+
import { status } from "../runtime/installer.js";
|
|
10
|
+
export function collectInstallStatus(config) {
|
|
11
|
+
try {
|
|
12
|
+
const ctx = { cacheDir: config?.cacheDir };
|
|
13
|
+
return { recordPath: getInstalledRecordPath(ctx), rows: status(ctx) };
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
return { error: err?.message || String(err) };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/debug/install.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,mEAAmE;AACnE,uEAAuE;AACvE,uCAAuC;AAEvC,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAkB,MAAM,yBAAyB,CAAC;AAQjE,MAAM,UAAU,oBAAoB,CAAC,MAAW;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC5D,OAAO,EAAE,UAAU,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACxE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/debug/network.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAiBD,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,CAyBf"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Proxy / npm network config collector for the diagnostic dump.
|
|
2
|
+
//
|
|
3
|
+
// The lazy installer shells out to `npm install` to fetch heavy deps and
|
|
4
|
+
// browsers (see src/runtime/heavyDeps.ts — `@puppeteer/browsers` even pulls
|
|
5
|
+
// `proxy-agent` so proxied downloads work). A misconfigured proxy or
|
|
6
|
+
// registry is the single most common silent install failure, so the dump
|
|
7
|
+
// always shows the relevant env vars.
|
|
8
|
+
//
|
|
9
|
+
// Every value goes through `redactValue`, which already flags
|
|
10
|
+
// userinfo-bearing URLs (`https://user:tok@registry`) and `*authToken`-style
|
|
11
|
+
// keys — so a registry or proxy with embedded credentials is redacted, not
|
|
12
|
+
// leaked into a pasted bug report.
|
|
13
|
+
import { redactValue } from "./redact.js";
|
|
14
|
+
// Proxy vars are conventionally set in either case; tools read both, so we
|
|
15
|
+
// surface whichever the user actually set.
|
|
16
|
+
const PROXY_KEYS = [
|
|
17
|
+
"HTTP_PROXY",
|
|
18
|
+
"http_proxy",
|
|
19
|
+
"HTTPS_PROXY",
|
|
20
|
+
"https_proxy",
|
|
21
|
+
"NO_PROXY",
|
|
22
|
+
"no_proxy",
|
|
23
|
+
"ALL_PROXY",
|
|
24
|
+
"all_proxy",
|
|
25
|
+
];
|
|
26
|
+
// Collect proxy + npm network env vars. Takes an explicit env map so the
|
|
27
|
+
// behavior is unit-testable without mutating the real process environment.
|
|
28
|
+
export function collectNetworkConfig(env = process.env) {
|
|
29
|
+
const names = new Set();
|
|
30
|
+
for (const key of PROXY_KEYS) {
|
|
31
|
+
if (typeof env[key] === "string")
|
|
32
|
+
names.add(key);
|
|
33
|
+
}
|
|
34
|
+
// Sweep every npm_config_* var present (registry, proxy, strict-ssl,
|
|
35
|
+
// cafile, per-registry _authToken, …). The prefix match is lowercased so
|
|
36
|
+
// uppercase variants (NPM_CONFIG_*) are caught too; keys keep their original
|
|
37
|
+
// casing, and redactValue/isSecretName are case-insensitive, so an
|
|
38
|
+
// _authToken key still redacts. Redaction handles the auth ones.
|
|
39
|
+
for (const key of Object.keys(env)) {
|
|
40
|
+
// Guard on a string value (same as the proxy loop) so a key present with
|
|
41
|
+
// an undefined value — e.g. a partial env object passed by a caller —
|
|
42
|
+
// doesn't surface as a misleading `npm_config_x = <unset>` entry.
|
|
43
|
+
if (typeof env[key] === "string" && key.toLowerCase().startsWith("npm_config_")) {
|
|
44
|
+
names.add(key);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const sorted = Array.from(names).sort();
|
|
48
|
+
return {
|
|
49
|
+
variables: sorted.map((name) => ({
|
|
50
|
+
name,
|
|
51
|
+
value: redactValue(name, env[name]),
|
|
52
|
+
})),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/debug/network.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,qEAAqE;AACrE,yEAAyE;AACzE,sCAAsC;AACtC,EAAE;AACF,8DAA8D;AAC9D,6EAA6E;AAC7E,2EAA2E;AAC3E,mCAAmC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW1C,2EAA2E;AAC3E,2CAA2C;AAC3C,MAAM,UAAU,GAAG;IACjB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,aAAa;IACb,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;CACZ,CAAC;AAEF,yEAAyE;AACzE,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAClC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,qEAAqE;IACrE,yEAAyE;IACzE,6EAA6E;IAC7E,mEAAmE;IACnE,iEAAiE;IACjE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,yEAAyE;QACzE,sEAAsE;QACtE,kEAAkE;QAClE,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChF,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI;YACJ,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface CliOverride {
|
|
2
|
+
flag: string;
|
|
3
|
+
configKey: string;
|
|
4
|
+
}
|
|
5
|
+
export interface Provenance {
|
|
6
|
+
configPath: string | null;
|
|
7
|
+
docDetectiveConfigApplied: boolean;
|
|
8
|
+
docDetectiveApiApplied: boolean;
|
|
9
|
+
cliOverrides: CliOverride[];
|
|
10
|
+
}
|
|
11
|
+
export declare function collectCliOverrides(args: any): CliOverride[];
|
|
12
|
+
export declare function collectProvenance(opts: {
|
|
13
|
+
configPath?: string | null;
|
|
14
|
+
args?: any;
|
|
15
|
+
env?: NodeJS.ProcessEnv;
|
|
16
|
+
}): Provenance;
|
|
17
|
+
//# sourceMappingURL=provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/debug/provenance.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAG1B,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,yBAAyB,EAAE,OAAO,CAAC;IAEnC,sBAAsB,EAAE,OAAO,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAsGD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW,EAAE,CAa5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,UAAU,CAWb"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Config provenance collector for the diagnostic dump.
|
|
2
|
+
//
|
|
3
|
+
// Answers "where did the effective config come from?" — the resolved config
|
|
4
|
+
// file path, whether DOC_DETECTIVE_CONFIG / DOC_DETECTIVE_API were applied,
|
|
5
|
+
// and which CLI flags overrode the validated config. This mirrors the
|
|
6
|
+
// documented precedence chain (file → env → AJV → CLI) in setConfig
|
|
7
|
+
// (src/utils.ts) WITHOUT threading new state out of setConfig: everything
|
|
8
|
+
// here is derived from inputs the debug command already has, which keeps
|
|
9
|
+
// setConfig untouched and this logic pure / unit-testable.
|
|
10
|
+
// Replicates setConfig's reporters guard exactly: `if (args.reporters != null)`
|
|
11
|
+
// then override only when `reporterList.length > 0`. Note setConfig does NOT
|
|
12
|
+
// drop empty-string entries here (unlike --test / --spec), so `[""]` length 1
|
|
13
|
+
// DOES override — `reportersPresent([""])` must return true to stay faithful.
|
|
14
|
+
// Don't be tempted to filter empties: that would make provenance claim
|
|
15
|
+
// "no override" while setConfig actually overrides with `[""]`.
|
|
16
|
+
function reportersPresent(reporters) {
|
|
17
|
+
if (reporters == null)
|
|
18
|
+
return false;
|
|
19
|
+
const list = Array.isArray(reporters) ? reporters : [reporters];
|
|
20
|
+
return list.length > 0;
|
|
21
|
+
}
|
|
22
|
+
// Replicates setConfig's --test / --spec guard: comma-split, trim, drop
|
|
23
|
+
// empties, override only when at least one entry survives. A value like ","
|
|
24
|
+
// or " " trims to nothing and does NOT override, so it must not be reported.
|
|
25
|
+
function commaListPresent(value) {
|
|
26
|
+
if (typeof value !== "string" || value.length === 0)
|
|
27
|
+
return false;
|
|
28
|
+
return (value
|
|
29
|
+
.split(",")
|
|
30
|
+
.map((s) => s.trim())
|
|
31
|
+
.filter((s) => s.length > 0).length > 0);
|
|
32
|
+
}
|
|
33
|
+
// Replicates setConfig's --concurrent-runners guard: the bare flag ("") and
|
|
34
|
+
// "true" select CPU-count mode, otherwise the value must parse to a positive
|
|
35
|
+
// integer; anything else (e.g. "abc", "0") logs a warning and does NOT
|
|
36
|
+
// override, so it must not be reported.
|
|
37
|
+
function concurrentRunnersPresent(value) {
|
|
38
|
+
if (typeof value !== "string")
|
|
39
|
+
return false;
|
|
40
|
+
if (value === "" || value.toLowerCase() === "true")
|
|
41
|
+
return true;
|
|
42
|
+
const count = Number(value);
|
|
43
|
+
return Number.isInteger(count) && count >= 1;
|
|
44
|
+
}
|
|
45
|
+
// The CLI overrides setConfig() applies. `flag` is the declared yargs option
|
|
46
|
+
// name (what the user types); `argKey` is the camelCased property yargs
|
|
47
|
+
// exposes on argv; `configKey` is where it lands after validation. The
|
|
48
|
+
// `present` guard mirrors the exact check in the corresponding setConfig
|
|
49
|
+
// override block so this report can't claim an override setConfig skipped.
|
|
50
|
+
//
|
|
51
|
+
// NOTE: this list must be kept in sync with the override blocks in setConfig()
|
|
52
|
+
// (src/utils.ts). `test/debug.test.js` pins the full set, but it only asserts
|
|
53
|
+
// that the recognized flags fire correctly — it does NOT cross-reference
|
|
54
|
+
// setConfig, so a new override added there without an entry here will silently
|
|
55
|
+
// omit from provenance. Adding a setConfig override means adding it here AND
|
|
56
|
+
// updating that pinned-list assertion. (CLAUDE.md's TDD-per-flag steps include
|
|
57
|
+
// this.)
|
|
58
|
+
const OVERRIDE_SPECS = [
|
|
59
|
+
{ flag: "input", argKey: "input", configKey: "input", present: (a) => Boolean(a.input) },
|
|
60
|
+
{ flag: "output", argKey: "output", configKey: "output", present: (a) => Boolean(a.output) },
|
|
61
|
+
{ flag: "logLevel", argKey: "logLevel", configKey: "logLevel", present: (a) => Boolean(a.logLevel) },
|
|
62
|
+
{
|
|
63
|
+
flag: "allow-unsafe",
|
|
64
|
+
argKey: "allowUnsafe",
|
|
65
|
+
configKey: "allowUnsafeSteps",
|
|
66
|
+
present: (a) => typeof a.allowUnsafe === "boolean",
|
|
67
|
+
},
|
|
68
|
+
{ flag: "dry-run", argKey: "dryRun", configKey: "dryRun", present: (a) => typeof a.dryRun === "boolean" },
|
|
69
|
+
{ flag: "reporters", argKey: "reporters", configKey: "reporters", present: (a) => reportersPresent(a.reporters) },
|
|
70
|
+
{ flag: "test", argKey: "test", configKey: "testFilter", present: (a) => commaListPresent(a.test) },
|
|
71
|
+
{ flag: "spec", argKey: "spec", configKey: "specFilter", present: (a) => commaListPresent(a.spec) },
|
|
72
|
+
{
|
|
73
|
+
flag: "hints",
|
|
74
|
+
argKey: "hints",
|
|
75
|
+
configKey: "hints.enabled",
|
|
76
|
+
present: (a) => typeof a.hints === "boolean",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
flag: "auto-update",
|
|
80
|
+
argKey: "autoUpdate",
|
|
81
|
+
configKey: "autoUpdate",
|
|
82
|
+
present: (a) => typeof a.autoUpdate === "boolean",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
flag: "auto-screenshot",
|
|
86
|
+
argKey: "autoScreenshot",
|
|
87
|
+
configKey: "autoScreenshot",
|
|
88
|
+
present: (a) => typeof a.autoScreenshot === "boolean",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
flag: "cache-dir",
|
|
92
|
+
argKey: "cacheDir",
|
|
93
|
+
configKey: "cacheDir",
|
|
94
|
+
present: (a) => typeof a.cacheDir === "string" && a.cacheDir.length > 0,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
flag: "concurrent-runners",
|
|
98
|
+
argKey: "concurrentRunners",
|
|
99
|
+
configKey: "concurrentRunners",
|
|
100
|
+
present: (a) => concurrentRunnersPresent(a.concurrentRunners),
|
|
101
|
+
},
|
|
102
|
+
];
|
|
103
|
+
export function collectCliOverrides(args) {
|
|
104
|
+
if (!args || typeof args !== "object")
|
|
105
|
+
return [];
|
|
106
|
+
const out = [];
|
|
107
|
+
for (const spec of OVERRIDE_SPECS) {
|
|
108
|
+
let present = false;
|
|
109
|
+
try {
|
|
110
|
+
present = spec.present(args);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
present = false;
|
|
114
|
+
}
|
|
115
|
+
if (present)
|
|
116
|
+
out.push({ flag: spec.flag, configKey: spec.configKey });
|
|
117
|
+
}
|
|
118
|
+
return out;
|
|
119
|
+
}
|
|
120
|
+
export function collectProvenance(opts) {
|
|
121
|
+
const env = opts.env ?? process.env;
|
|
122
|
+
// Empty-string env vars do NOT apply: getConfigFromEnv() /
|
|
123
|
+
// getResolvedTestsFromEnv() both gate on `if (!process.env.*)`, so an empty
|
|
124
|
+
// value is treated as unset. Match that with a non-empty (truthy) check.
|
|
125
|
+
return {
|
|
126
|
+
configPath: opts.configPath ?? null,
|
|
127
|
+
docDetectiveConfigApplied: Boolean(env.DOC_DETECTIVE_CONFIG),
|
|
128
|
+
docDetectiveApiApplied: Boolean(env.DOC_DETECTIVE_API),
|
|
129
|
+
cliOverrides: collectCliOverrides(opts.args),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/debug/provenance.ts"],"names":[],"mappings":"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"}
|