lacuna-cli 0.1.8 → 0.2.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 +94 -11
- package/dist/agent/context.d.ts +1 -0
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +141 -6
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/fix-loop.d.ts +1 -0
- package/dist/agent/fix-loop.d.ts.map +1 -1
- package/dist/agent/fix-loop.js +245 -40
- package/dist/agent/fix-loop.js.map +1 -1
- package/dist/agent/generator.d.ts +7 -0
- package/dist/agent/generator.d.ts.map +1 -1
- package/dist/agent/generator.js +205 -35
- package/dist/agent/generator.js.map +1 -1
- package/dist/agent/loop.d.ts +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +154 -11
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/prompts/index.d.ts +4 -1
- package/dist/agent/prompts/index.d.ts.map +1 -1
- package/dist/agent/prompts/index.js +182 -37
- package/dist/agent/prompts/index.js.map +1 -1
- package/dist/agent/prompts/react-native.d.ts.map +1 -1
- package/dist/agent/prompts/react-native.js +15 -4
- package/dist/agent/prompts/react-native.js.map +1 -1
- package/dist/agent/prompts/react.js +1 -1
- package/dist/agent/prompts/runners/vitest.js +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +4 -0
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/fix.d.ts +1 -0
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +24 -5
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +10 -0
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +6 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +4 -0
- package/dist/commands/run.js.map +1 -1
- package/dist/lib/config.d.ts +10 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +43 -21
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/extract-error.d.ts.map +1 -1
- package/dist/lib/extract-error.js +8 -2
- package/dist/lib/extract-error.js.map +1 -1
- package/dist/lib/reporter.d.ts.map +1 -1
- package/dist/lib/reporter.js +11 -1
- package/dist/lib/reporter.js.map +1 -1
- package/dist/lib/typecheck.d.ts +1 -0
- package/dist/lib/typecheck.d.ts.map +1 -1
- package/dist/lib/typecheck.js +119 -7
- package/dist/lib/typecheck.js.map +1 -1
- package/dist/lib/validate.d.ts +37 -1
- package/dist/lib/validate.d.ts.map +1 -1
- package/dist/lib/validate.js +659 -11
- package/dist/lib/validate.js.map +1 -1
- package/lacuna.schema.json +150 -0
- package/package.json +14 -7
- package/oclif.manifest.json +0 -309
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-error.d.ts","sourceRoot":"","sources":["../../src/lib/extract-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extract-error.d.ts","sourceRoot":"","sources":["../../src/lib/extract-error.ts"],"names":[],"mappings":"AA2CA,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAqF5D"}
|
|
@@ -15,8 +15,7 @@ const NOISE_PATTERNS = [
|
|
|
15
15
|
const SIGNAL_PATTERNS = [
|
|
16
16
|
/error/i,
|
|
17
17
|
/fail/i,
|
|
18
|
-
|
|
19
|
-
/✗\s+/,
|
|
18
|
+
/[×✕✗]\s+/, // vitest/jest per-test fail markers (×✕✗)
|
|
20
19
|
/Expected/,
|
|
21
20
|
/Received/,
|
|
22
21
|
/AssertionError/,
|
|
@@ -80,6 +79,13 @@ export function extractTestFailure(rawOutput) {
|
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
81
|
}
|
|
82
|
+
// Pass 2.7 — remove noise lines that snuck into context windows (e.g. ✓ passing-test
|
|
83
|
+
// lines adjacent to a "N tests | M failed" suite header). They add no signal value.
|
|
84
|
+
for (const i of [...include]) {
|
|
85
|
+
const trimmed = lines[i].trim();
|
|
86
|
+
if (trimmed && NOISE_PATTERNS.some((p) => p.test(trimmed)))
|
|
87
|
+
include.delete(i);
|
|
88
|
+
}
|
|
83
89
|
// Pass 3 — build output, skipping pure noise outside the windows and deduping blanks
|
|
84
90
|
const kept = [];
|
|
85
91
|
let lastWasBlank = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-error.js","sourceRoot":"","sources":["../../src/lib/extract-error.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kEAAkE;AAClE,EAAE;AACF,mFAAmF;AACnF,kFAAkF;AAElF,MAAM,cAAc,GAAG;IACrB,OAAO,EAAuC,sBAAsB;IACpE,OAAO,EAAuC,uBAAuB;IACrE,UAAU,EAAoC,oBAAoB;IAClE,YAAY,EAAkC,oBAAoB;IAClE,wBAAwB,EAAsB,kBAAkB;IAChE,kBAAkB,EAA4B,gBAAgB;IAC9D,mBAAmB,EAA4B,gBAAgB;CAChE,CAAA;AAED,MAAM,eAAe,GAAG;IACtB,QAAQ;IACR,OAAO;IACP,
|
|
1
|
+
{"version":3,"file":"extract-error.js","sourceRoot":"","sources":["../../src/lib/extract-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/lib/reporter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,UAAU,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;CACvB;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/lib/reporter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,UAAU,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;CACvB;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAgFvD;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;IACtF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAoC9D;AAID,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAyD9D;AAID,eAAO,MAAM,IAAI;;;;CAIP,CAAA;AAEV,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAgBtD"}
|
package/dist/lib/reporter.js
CHANGED
|
@@ -10,7 +10,17 @@ export function reportTerminal(input) {
|
|
|
10
10
|
console.log(` Lines: ${lineColor(r.coveragePct.toFixed(1) + '%')} Functions: ${lineColor(r.functionCoveragePct.toFixed(1) + '%')}`);
|
|
11
11
|
console.log(` Threshold: ${threshold}% Status: ${status}\n`);
|
|
12
12
|
if (r.gaps.length === 0) {
|
|
13
|
-
|
|
13
|
+
if (r.passed) {
|
|
14
|
+
console.log(chalk.green(' All files meet the threshold.'));
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
// Overall coverage is below threshold even though no per-file gaps were found.
|
|
18
|
+
// This happens when many source files are never imported by any test — they
|
|
19
|
+
// don't appear in the LCOV report individually but pull down the overall rate.
|
|
20
|
+
console.log(chalk.yellow(` Overall coverage is ${r.coveragePct.toFixed(1)}% — below the ${r.threshold}% threshold.`));
|
|
21
|
+
console.log(chalk.dim(` No per-file gaps were found in the coverage report.`));
|
|
22
|
+
console.log(chalk.dim(` Try running ${chalk.cyan('lacuna generate')} to find and cover untested source files.\n`));
|
|
23
|
+
}
|
|
14
24
|
return;
|
|
15
25
|
}
|
|
16
26
|
const belowThreshold = r.gaps.length - r.untouchedCount;
|
package/dist/lib/reporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/lib/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAwBzB,gFAAgF;AAEhF,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAE3B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAA;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAA;QACpD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,GAAG,CACT,gBAAgB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,iBAAiB,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAC9H,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,eAAe,MAAM,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/lib/reporter.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/typecheck.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { DetectedEnvironment } from './detector.js';
|
|
2
2
|
export declare function typeCheckFile(absTestPath: string, cwd: string, env: Pick<DetectedEnvironment, 'language'>): Promise<string | null>;
|
|
3
|
+
export declare function findTestFilesWithTypeErrors(testFiles: string[], cwd: string, env: Pick<DetectedEnvironment, 'language'>): Promise<string[]>;
|
|
3
4
|
//# sourceMappingURL=typecheck.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../../src/lib/typecheck.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../../src/lib/typecheck.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAgExD,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GACzC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBxB;AAMD,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EAAE,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GACzC,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BnB"}
|
package/dist/lib/typecheck.js
CHANGED
|
@@ -1,6 +1,77 @@
|
|
|
1
|
-
import { access } from 'fs/promises';
|
|
2
|
-
import { join, basename } from 'path';
|
|
1
|
+
import { access, readFile } from 'fs/promises';
|
|
2
|
+
import { join, dirname, basename, resolve } from 'path';
|
|
3
3
|
import { runCommand } from './runner.js';
|
|
4
|
+
// implicit-any diagnostics fire ONLY under noImplicitAny. Matched by message so the whole
|
|
5
|
+
// family (TS7005/7006/7019/7031/7034/7053/…) is covered without enumerating codes.
|
|
6
|
+
const IMPLICIT_ANY_RE = /implicitly has (?:an? |type )?'any(?:\[\])?'/i;
|
|
7
|
+
async function pathExists(p) {
|
|
8
|
+
try {
|
|
9
|
+
await access(p);
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
// Best-effort JSONC → JSON: strip comments and trailing commas so tsconfig files parse.
|
|
17
|
+
function stripJsonc(raw) {
|
|
18
|
+
return raw
|
|
19
|
+
.replace(/\/\*[\s\S]*?\*\//g, '') // block comments
|
|
20
|
+
.replace(/(^|[^:"])\/\/.*$/gm, '$1') // line comments (skips "http://")
|
|
21
|
+
.replace(/,(\s*[}\]])/g, '$1'); // trailing commas
|
|
22
|
+
}
|
|
23
|
+
// Merge compilerOptions following the tsconfig `extends` chain (child overrides parent).
|
|
24
|
+
async function loadCompilerOptions(tsconfigPath, cwd, seen = new Set()) {
|
|
25
|
+
if (seen.has(tsconfigPath))
|
|
26
|
+
return {};
|
|
27
|
+
seen.add(tsconfigPath);
|
|
28
|
+
let cfg;
|
|
29
|
+
try {
|
|
30
|
+
cfg = JSON.parse(stripJsonc(await readFile(tsconfigPath, 'utf-8')));
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
let base = {};
|
|
36
|
+
if (typeof cfg.extends === 'string') {
|
|
37
|
+
let extPath = null;
|
|
38
|
+
if (cfg.extends.startsWith('.')) {
|
|
39
|
+
extPath = resolve(dirname(tsconfigPath), cfg.extends.endsWith('.json') ? cfg.extends : cfg.extends + '.json');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const rel = cfg.extends.endsWith('.json') ? cfg.extends : join(cfg.extends, 'tsconfig.json');
|
|
43
|
+
const candidate = join(cwd, 'node_modules', rel);
|
|
44
|
+
if (await pathExists(candidate))
|
|
45
|
+
extPath = candidate;
|
|
46
|
+
}
|
|
47
|
+
if (extPath)
|
|
48
|
+
base = await loadCompilerOptions(extPath, cwd, seen);
|
|
49
|
+
}
|
|
50
|
+
return { ...base, ...(cfg.compilerOptions ?? {}) };
|
|
51
|
+
}
|
|
52
|
+
// Effective noImplicitAny for the tsconfig nearest to `absFilePath` (walking up to cwd),
|
|
53
|
+
// following `extends`. strict:true implies it unless explicitly overridden. Defaults to true
|
|
54
|
+
// (i.e. "enforced", so we never hide real errors) when no governing config can be resolved.
|
|
55
|
+
async function noImplicitAnyEnabled(absFilePath, cwd) {
|
|
56
|
+
let dir = dirname(absFilePath);
|
|
57
|
+
let nearest = null;
|
|
58
|
+
while (true) {
|
|
59
|
+
const candidate = join(dir, 'tsconfig.json');
|
|
60
|
+
if (await pathExists(candidate)) {
|
|
61
|
+
nearest = candidate;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
if (dir === cwd || dir === dirname(dir))
|
|
65
|
+
break;
|
|
66
|
+
dir = dirname(dir);
|
|
67
|
+
}
|
|
68
|
+
if (!nearest || !(await pathExists(nearest)))
|
|
69
|
+
return true;
|
|
70
|
+
const opts = await loadCompilerOptions(nearest, cwd);
|
|
71
|
+
if (typeof opts.noImplicitAny === 'boolean')
|
|
72
|
+
return opts.noImplicitAny;
|
|
73
|
+
return opts.strict === true;
|
|
74
|
+
}
|
|
4
75
|
// Run tsc --noEmit on the project and return type errors that belong to the given
|
|
5
76
|
// test file. Errors in other files are intentionally ignored — we only care about
|
|
6
77
|
// what the AI just wrote. Returns null when there are no errors or when type-checking
|
|
@@ -18,11 +89,52 @@ export async function typeCheckFile(absTestPath, cwd, env) {
|
|
|
18
89
|
if (result.success)
|
|
19
90
|
return null;
|
|
20
91
|
const fileName = basename(absTestPath);
|
|
21
|
-
|
|
92
|
+
let errors = (result.stdout + '\n' + result.stderr)
|
|
93
|
+
.split('\n')
|
|
94
|
+
.filter((l) => l.includes(fileName) && /error TS\d+/.test(l));
|
|
95
|
+
// Respect the file's governing tsconfig: if it disables noImplicitAny (e.g. a monorepo
|
|
96
|
+
// package that loosens the strict root), implicit-any is not an error for this file — drop
|
|
97
|
+
// those diagnostics so lacuna never fights a rule the project deliberately turned off.
|
|
98
|
+
if (errors.length > 0 && !(await noImplicitAnyEnabled(absTestPath, cwd))) {
|
|
99
|
+
errors = errors.filter((l) => !IMPLICIT_ANY_RE.test(l));
|
|
100
|
+
}
|
|
101
|
+
return errors.join('\n').trim() || null;
|
|
102
|
+
}
|
|
103
|
+
// Runs tsc ONCE over the whole project and returns the subset of `testFiles` (absolute
|
|
104
|
+
// paths) that have at least one type error. Far cheaper than calling typeCheckFile per
|
|
105
|
+
// file, which re-runs the entire project each time. Used by `lacuna fix --types` to select
|
|
106
|
+
// every test file that fails type-checking regardless of whether its tests pass.
|
|
107
|
+
export async function findTestFilesWithTypeErrors(testFiles, cwd, env) {
|
|
108
|
+
if (env.language !== 'typescript' || testFiles.length === 0)
|
|
109
|
+
return [];
|
|
110
|
+
try {
|
|
111
|
+
await access(join(cwd, 'tsconfig.json'));
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
const result = await runCommand('npx tsc --noEmit --skipLibCheck', cwd, 180_000);
|
|
117
|
+
if (result.success)
|
|
118
|
+
return [];
|
|
119
|
+
const errorLines = (result.stdout + '\n' + result.stderr)
|
|
22
120
|
.split('\n')
|
|
23
|
-
.filter((l) =>
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
121
|
+
.filter((l) => /error TS\d+/.test(l));
|
|
122
|
+
// Match by basename — mirrors typeCheckFile's own filter so selection and per-file
|
|
123
|
+
// verification agree. (Same-basename files in different dirs may both be selected; the
|
|
124
|
+
// per-file fix loop simply finds nothing to change in a false match and moves on.)
|
|
125
|
+
// Honor each file's governing noImplicitAny just like typeCheckFile, so a file whose only
|
|
126
|
+
// diagnostics are implicit-any in a package that allows it is not selected.
|
|
127
|
+
const withErrors = [];
|
|
128
|
+
for (const abs of testFiles) {
|
|
129
|
+
const fileName = basename(abs);
|
|
130
|
+
let lines = errorLines.filter((l) => l.includes(fileName));
|
|
131
|
+
if (lines.length === 0)
|
|
132
|
+
continue;
|
|
133
|
+
if (!(await noImplicitAnyEnabled(abs, cwd)))
|
|
134
|
+
lines = lines.filter((l) => !IMPLICIT_ANY_RE.test(l));
|
|
135
|
+
if (lines.length > 0)
|
|
136
|
+
withErrors.push(abs);
|
|
137
|
+
}
|
|
138
|
+
return withErrors;
|
|
27
139
|
}
|
|
28
140
|
//# sourceMappingURL=typecheck.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../../src/lib/typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../../src/lib/typecheck.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/validate.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export declare function hasTestFunctions(code: string): boolean;
|
|
2
|
-
export declare function
|
|
2
|
+
export declare function hasPlaceholderBodies(code: string): boolean;
|
|
3
3
|
export declare function isZeroTestsOutput(raw: string): boolean;
|
|
4
|
+
export declare function enrichNoTestsError(extracted: string, rawOutput?: string): string;
|
|
4
5
|
export declare function parsePassCount(output: string): number;
|
|
6
|
+
export declare function parseFailCount(output: string): number;
|
|
5
7
|
export declare function stripLeadingProse(code: string): {
|
|
6
8
|
code: string;
|
|
7
9
|
stripped: string | null;
|
|
@@ -14,4 +16,38 @@ export declare function sanitizeMocksContent(raw: string): {
|
|
|
14
16
|
export declare function deduplicateViMocks(code: string): string;
|
|
15
17
|
export declare function buildStructureBrokenMessage(initialError: string, currentError: string): string;
|
|
16
18
|
export declare function buildRegressionMessage(initialError: string, currentError: string, baselinePass: number, currentPass: number): string;
|
|
19
|
+
export type PatchOpType = 'REPLACE_TEST' | 'DELETE_TEST' | 'ADD_AFTER_DESCRIBE' | 'ADD_IMPORT' | 'ADD_AFTER_IMPORTS' | 'REPLACE';
|
|
20
|
+
export interface PatchOperation {
|
|
21
|
+
type: PatchOpType;
|
|
22
|
+
anchor: string;
|
|
23
|
+
content: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function parsePatch(patchOutput: string): PatchOperation[];
|
|
26
|
+
export declare function applyPatch(existingCode: string, ops: PatchOperation[]): string | null;
|
|
27
|
+
export declare function tryApplyPatch(existingCode: string, patchOutput: string): string | null;
|
|
28
|
+
export interface PatchApplyOk {
|
|
29
|
+
ok: true;
|
|
30
|
+
result: string;
|
|
31
|
+
}
|
|
32
|
+
export interface PatchApplyFail {
|
|
33
|
+
ok: false;
|
|
34
|
+
failedOp: PatchOperation | null;
|
|
35
|
+
opsCount: number;
|
|
36
|
+
}
|
|
37
|
+
export declare function tryApplyPatchWithDiag(existingCode: string, patchOutput: string): PatchApplyOk | PatchApplyFail;
|
|
38
|
+
export type MockPatchOpType = 'REPLACE' | 'APPEND_EXPORT' | 'ADD_TO_BEFOREEACH';
|
|
39
|
+
export interface MockPatchOperation {
|
|
40
|
+
type: MockPatchOpType;
|
|
41
|
+
oldText: string;
|
|
42
|
+
newText: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function parseMocksPatch(patchOutput: string): MockPatchOperation[];
|
|
45
|
+
export declare function applyMocksPatch(existing: string, ops: MockPatchOperation[]): {
|
|
46
|
+
result: string;
|
|
47
|
+
failedOps: MockPatchOperation[];
|
|
48
|
+
};
|
|
49
|
+
export declare function tryApplyMocksPatch(existing: string, patchOutput: string): {
|
|
50
|
+
result: string;
|
|
51
|
+
failedOps: MockPatchOperation[];
|
|
52
|
+
} | null;
|
|
17
53
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/lib/validate.ts"],"names":[],"mappings":"AAYA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAID,wBAAgB,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/lib/validate.ts"],"names":[],"mappings":"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"}
|