phpstan-mcp-mx 0.14.0 → 0.16.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/CHANGELOG.md +28 -0
- package/README.md +449 -365
- package/dist/baseline.d.ts +23 -2
- package/dist/baseline.js +32 -6
- package/dist/baseline.js.map +1 -1
- package/dist/changed.d.ts +47 -0
- package/dist/changed.js +170 -1
- package/dist/changed.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.js +20 -2
- package/dist/config.js.map +1 -1
- package/dist/defaults.js +2 -2
- package/dist/defaults.js.map +1 -1
- package/dist/phpstan/parameters.d.ts +41 -0
- package/dist/phpstan/parameters.js +66 -0
- package/dist/phpstan/parameters.js.map +1 -0
- package/dist/phpstan/process.d.ts +6 -0
- package/dist/phpstan/process.js +8 -1
- package/dist/phpstan/process.js.map +1 -1
- package/dist/phpstan.d.ts +6 -1
- package/dist/phpstan.js +100 -28
- package/dist/phpstan.js.map +1 -1
- package/dist/report.d.ts +2 -0
- package/dist/report.js +24 -3
- package/dist/report.js.map +1 -1
- package/dist/runner.d.ts +19 -4
- package/dist/runner.js +48 -18
- package/dist/runner.js.map +1 -1
- package/dist/tmpdir.d.ts +7 -0
- package/dist/tmpdir.js +21 -2
- package/dist/tmpdir.js.map +1 -1
- package/dist/tools/analysis.js +44 -3
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/inspect.js +59 -11
- package/dist/tools/inspect.js.map +1 -1
- package/dist/tools/prompts.d.ts +12 -4
- package/dist/tools/prompts.js +302 -58
- package/dist/tools/prompts.js.map +1 -1
- package/dist/tools/shared.d.ts +4 -0
- package/dist/tools/shared.js +14 -4
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools.js +1 -1
- package/dist/tools.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/dist/baseline.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ export interface BaselineEntry {
|
|
|
7
7
|
readonly path: string;
|
|
8
8
|
/** Hoe vaak deze fout in dat bestand genegeerd wordt. */
|
|
9
9
|
readonly count: number;
|
|
10
|
+
/**
|
|
11
|
+
* Het patroon (`message`) of de letterlijke tekst (`rawMessage`), zodat de regel in
|
|
12
|
+
* het bestand terug te vinden is; null als de regel er geen heeft.
|
|
13
|
+
*/
|
|
14
|
+
readonly message: string | null;
|
|
10
15
|
}
|
|
11
16
|
/** Wat er in de baselines van één project staat. */
|
|
12
17
|
export interface BaselineSummary {
|
|
@@ -79,10 +84,26 @@ export declare function readIncludedBaselines(project: ResolvedProject): Include
|
|
|
79
84
|
*
|
|
80
85
|
* Bewust een regelgerichte parser en geen NEON-bibliotheek: er is geen fatsoenlijke
|
|
81
86
|
* NEON-parser voor JavaScript, en dit bestand wordt door PHPStan zelf gegenereerd —
|
|
82
|
-
* de vorm ligt vast.
|
|
83
|
-
*
|
|
87
|
+
* de vorm ligt vast. Het patroon wordt gelezen maar niet toegepast: het dient alleen om
|
|
88
|
+
* een regel in het bestand terug te vinden (baseline_summary met een `path`).
|
|
84
89
|
*/
|
|
85
90
|
export declare function parseBaseline(content: string): BaselineEntry[];
|
|
91
|
+
/** Eén baseline-regel voor een bestand, met het baseline-bestand waar hij in staat. */
|
|
92
|
+
export interface BaselineFileEntry {
|
|
93
|
+
readonly file: string;
|
|
94
|
+
readonly identifier: string;
|
|
95
|
+
readonly count: number;
|
|
96
|
+
readonly message: string | null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* De regels voor één bestand, uit alle baseline-bestanden van het project.
|
|
100
|
+
*
|
|
101
|
+
* Nodig omdat de samenvatting per soort en per bestand apart telt: welke soorten in
|
|
102
|
+
* wélk bestand zitten, stond alleen in het baseline-bestand zelf. Het pad wordt alleen
|
|
103
|
+
* vergeleken, niet geopend — het hoeft dus niet te bestaan, en dat is goed: een baseline
|
|
104
|
+
* noemt soms een bestand dat al weg is.
|
|
105
|
+
*/
|
|
106
|
+
export declare function baselineEntriesFor(project: ResolvedProject, path: string): BaselineFileEntry[];
|
|
86
107
|
/** Telt de baselines van één project bij elkaar op. */
|
|
87
108
|
export declare function summariseBaseline(project: ResolvedProject): BaselineSummary;
|
|
88
109
|
/** Schrijft een baseline-samenvatting uit als tekst voor het model. */
|
package/dist/baseline.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ToolFailure } from './failure.js';
|
|
2
2
|
import { readFileSync, readdirSync } from 'node:fs';
|
|
3
|
-
import { join, resolve } from 'node:path';
|
|
3
|
+
import { isAbsolute, join, normalize, relative, resolve } from 'node:path';
|
|
4
4
|
/** Hoeveel regels de samenvattingslijsten hoogstens tonen. */
|
|
5
5
|
const SUMMARY_ROWS = 15;
|
|
6
6
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
@@ -110,8 +110,8 @@ function isIncludedIn(config, file) {
|
|
|
110
110
|
*
|
|
111
111
|
* Bewust een regelgerichte parser en geen NEON-bibliotheek: er is geen fatsoenlijke
|
|
112
112
|
* NEON-parser voor JavaScript, en dit bestand wordt door PHPStan zelf gegenereerd —
|
|
113
|
-
* de vorm ligt vast.
|
|
114
|
-
*
|
|
113
|
+
* de vorm ligt vast. Het patroon wordt gelezen maar niet toegepast: het dient alleen om
|
|
114
|
+
* een regel in het bestand terug te vinden (baseline_summary met een `path`).
|
|
115
115
|
*/
|
|
116
116
|
export function parseBaseline(content) {
|
|
117
117
|
const entries = [];
|
|
@@ -126,6 +126,7 @@ export function parseBaseline(content) {
|
|
|
126
126
|
identifier: current.identifier ?? '(zonder identifier)',
|
|
127
127
|
path: current.path,
|
|
128
128
|
count: current.count ?? 1,
|
|
129
|
+
message: current.message ?? null,
|
|
129
130
|
});
|
|
130
131
|
}
|
|
131
132
|
current = null;
|
|
@@ -139,7 +140,7 @@ export function parseBaseline(content) {
|
|
|
139
140
|
}
|
|
140
141
|
if (current === null)
|
|
141
142
|
continue;
|
|
142
|
-
const match = /^(identifier|path|count):\s*(.*)$/.exec(trimmed);
|
|
143
|
+
const match = /^(identifier|path|count|message|rawMessage):\s*(.*)$/.exec(trimmed);
|
|
143
144
|
if (match === null)
|
|
144
145
|
continue;
|
|
145
146
|
const [, key, raw] = match;
|
|
@@ -150,10 +151,32 @@ export function parseBaseline(content) {
|
|
|
150
151
|
current.path = unquote(value);
|
|
151
152
|
else if (key === 'count')
|
|
152
153
|
current.count = Number.parseInt(value, 10) || 1;
|
|
154
|
+
else
|
|
155
|
+
current.message = unquote(value);
|
|
153
156
|
}
|
|
154
157
|
flush();
|
|
155
158
|
return entries;
|
|
156
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* De regels voor één bestand, uit alle baseline-bestanden van het project.
|
|
162
|
+
*
|
|
163
|
+
* Nodig omdat de samenvatting per soort en per bestand apart telt: welke soorten in
|
|
164
|
+
* wélk bestand zitten, stond alleen in het baseline-bestand zelf. Het pad wordt alleen
|
|
165
|
+
* vergeleken, niet geopend — het hoeft dus niet te bestaan, en dat is goed: een baseline
|
|
166
|
+
* noemt soms een bestand dat al weg is.
|
|
167
|
+
*/
|
|
168
|
+
export function baselineEntriesFor(project, path) {
|
|
169
|
+
const gezocht = normalize(isAbsolute(path) ? relative(project.path, path) : path);
|
|
170
|
+
const result = [];
|
|
171
|
+
for (const file of findBaselineFiles(project)) {
|
|
172
|
+
for (const entry of parseBaseline(readFileSync(join(project.path, file), 'utf8'))) {
|
|
173
|
+
if (normalize(entry.path) === gezocht) {
|
|
174
|
+
result.push({ file, identifier: entry.identifier, count: entry.count, message: entry.message });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
157
180
|
/** Telt de baselines van één project bij elkaar op. */
|
|
158
181
|
export function summariseBaseline(project) {
|
|
159
182
|
const files = findBaselineFiles(project);
|
|
@@ -236,9 +259,12 @@ function tally(entries, key) {
|
|
|
236
259
|
.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
|
|
237
260
|
.slice(0, SUMMARY_ROWS);
|
|
238
261
|
}
|
|
262
|
+
/** Haalt de quotes van een NEON-string af; binnen enkele quotes is `''` één quote. */
|
|
239
263
|
function unquote(value) {
|
|
240
|
-
const
|
|
241
|
-
|
|
264
|
+
const enkel = /^'(.*)'$/.exec(value);
|
|
265
|
+
if (enkel?.[1] !== undefined)
|
|
266
|
+
return enkel[1].replace(/''/g, "'");
|
|
267
|
+
return /^"(.*)"$/.exec(value)?.[1] ?? value;
|
|
242
268
|
}
|
|
243
269
|
function pad(count) {
|
|
244
270
|
return String(count).padStart(5);
|
package/dist/baseline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":"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"}
|
package/dist/changed.d.ts
CHANGED
|
@@ -25,6 +25,18 @@ export interface ChangedFiles {
|
|
|
25
25
|
}[];
|
|
26
26
|
/** Per bestand uit `files`, onder hetzelfde absolute pad: welke regels erin gewijzigd zijn. */
|
|
27
27
|
readonly lines: ReadonlyMap<string, ChangedLines>;
|
|
28
|
+
/** De `@phpstan-ignore`-regels die deze wijziging netto toevoegt. */
|
|
29
|
+
readonly ignoresAdded: readonly IgnoreAddition[];
|
|
30
|
+
}
|
|
31
|
+
/** Een `@phpstan-ignore` die een wijziging toevoegt. */
|
|
32
|
+
export interface IgnoreAddition {
|
|
33
|
+
/** Pad relatief aan de projectroot, zoals git het noemt. */
|
|
34
|
+
readonly path: string;
|
|
35
|
+
readonly line: number;
|
|
36
|
+
/** `@phpstan-ignore`, `@phpstan-ignore-line` of `@phpstan-ignore-next-line`. */
|
|
37
|
+
readonly kind: string;
|
|
38
|
+
/** Wat erachter staat: de identifiers, en eventueel een reden tussen haakjes. */
|
|
39
|
+
readonly text: string;
|
|
28
40
|
}
|
|
29
41
|
/**
|
|
30
42
|
* Zoekt de PHP-bestanden die in dit project gewijzigd zijn ten opzichte van `base`.
|
|
@@ -34,6 +46,41 @@ export interface ChangedFiles {
|
|
|
34
46
|
* Zonder die tweede mist juist het bestand dat net is aangemaakt.
|
|
35
47
|
*/
|
|
36
48
|
export declare function changedPhpFiles(project: ResolvedProject, base?: string, staged?: boolean): Promise<ChangedFiles>;
|
|
49
|
+
/** Per bestand de ignores op toegevoegde en op weggehaalde regels. */
|
|
50
|
+
export interface IgnoreChanges {
|
|
51
|
+
readonly added: {
|
|
52
|
+
line: number;
|
|
53
|
+
kind: string;
|
|
54
|
+
text: string;
|
|
55
|
+
}[];
|
|
56
|
+
readonly removed: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Leest uit `git diff -U0 --no-prefix` welke `@phpstan-ignore`-regels er per bestand
|
|
60
|
+
* bijkomen en weggaan. Dezelfde aftelling per hunk als `parseChangedLines`, en om
|
|
61
|
+
* dezelfde reden: een regel die met `+++ ` begint is hier gewoon inhoud.
|
|
62
|
+
*/
|
|
63
|
+
export declare function parseIgnoreChanges(patch: string): Map<string, IgnoreChanges>;
|
|
64
|
+
/** Hoe één baseline-bestand veranderd is ten opzichte van `base`. */
|
|
65
|
+
export interface BaselineChange {
|
|
66
|
+
readonly file: string;
|
|
67
|
+
/** Per identifier en pad: hoeveel fouten er nu genegeerd worden, en hoeveel bij `base`. */
|
|
68
|
+
readonly added: readonly {
|
|
69
|
+
identifier: string;
|
|
70
|
+
path: string;
|
|
71
|
+
count: number;
|
|
72
|
+
was: number;
|
|
73
|
+
}[];
|
|
74
|
+
/** Hoeveel genegeerde fouten er in totaal minder zijn. */
|
|
75
|
+
readonly removed: number;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Wat de wijziging aan de geïncludeerde baselines verandert: welke genegeerde fouten
|
|
79
|
+
* erbij kwamen, en hoeveel er weggingen. Zowel nieuwe regels als een `count` die omhoog
|
|
80
|
+
* ging tellen als erbij. Gemeten op een echt project gingen er in één opruimcommit 284
|
|
81
|
+
* weg en kwam er niets bij — beide kanten zijn dus het vermelden waard.
|
|
82
|
+
*/
|
|
83
|
+
export declare function baselineChanges(project: ResolvedProject, base?: string, staged?: boolean): Promise<BaselineChange[]>;
|
|
37
84
|
/**
|
|
38
85
|
* Of een bevinding op een regel staat die in deze wijziging zit. Een bevinding zonder
|
|
39
86
|
* regelnummer in een inhoudelijk gewijzigd bestand telt mee: uitsluiten kan dan niet,
|
package/dist/changed.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { ToolFailure } from './failure.js';
|
|
2
2
|
import { spawn } from 'node:child_process';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { includedBaselineFiles, parseBaseline } from './baseline.js';
|
|
3
6
|
import { ProjectError, resolveWithin } from './project.js';
|
|
4
7
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
5
8
|
export class GitError extends ToolFailure {
|
|
@@ -58,6 +61,7 @@ export async function changedPhpFiles(project, base = DEFAULT_BASE, staged = fal
|
|
|
58
61
|
...range,
|
|
59
62
|
]);
|
|
60
63
|
const hunks = parseChangedLines(patch);
|
|
64
|
+
const ignoreChanges = parseIgnoreChanges(patch);
|
|
61
65
|
// Niet-toegevoegde bestanden horen er alleen bij als je naar de werkboom kijkt.
|
|
62
66
|
// Bij --cached zijn ze per definitie niet gestaged, dus dan blijft die uitvraag weg.
|
|
63
67
|
const untracked = staged
|
|
@@ -70,6 +74,7 @@ export async function changedPhpFiles(project, base = DEFAULT_BASE, staged = fal
|
|
|
70
74
|
const files = [];
|
|
71
75
|
const skipped = [];
|
|
72
76
|
const changedLines = new Map();
|
|
77
|
+
const ignoresAdded = [];
|
|
73
78
|
for (const candidate of candidates) {
|
|
74
79
|
try {
|
|
75
80
|
// Via resolveWithin en niet met een eigen join: dan geldt hier dezelfde
|
|
@@ -80,6 +85,10 @@ export async function changedPhpFiles(project, base = DEFAULT_BASE, staged = fal
|
|
|
80
85
|
// rapporteert PHPStan het terug. Geen hunks (alleen de modus veranderd, of
|
|
81
86
|
// een pure rename) is een lege lijst: dan is er inhoudelijk niets gewijzigd.
|
|
82
87
|
changedLines.set(file, fresh.has(candidate) ? 'all' : (hunks.get(candidate) ?? []));
|
|
88
|
+
// Een nieuw bestand staat niet in de diff; elke ignore erin is dan nieuw.
|
|
89
|
+
ignoresAdded.push(...(fresh.has(candidate)
|
|
90
|
+
? ignoresInFile(candidate, file)
|
|
91
|
+
: netIgnores(candidate, ignoreChanges.get(candidate))));
|
|
83
92
|
}
|
|
84
93
|
catch (error) {
|
|
85
94
|
// Git kan een bestand noemen dat er inmiddels niet meer is, of dat via een
|
|
@@ -92,7 +101,167 @@ export async function changedPhpFiles(project, base = DEFAULT_BASE, staged = fal
|
|
|
92
101
|
});
|
|
93
102
|
}
|
|
94
103
|
}
|
|
95
|
-
return { base, staged, files, skipped, lines: changedLines };
|
|
104
|
+
return { base, staged, files, skipped, lines: changedLines, ignoresAdded };
|
|
105
|
+
}
|
|
106
|
+
/** Een `@phpstan-ignore` in een regel code, met wat erachter staat. */
|
|
107
|
+
const IGNORE = /@phpstan-ignore(-next-line|-line)?\b[ \t]*([^\r\n]*)/;
|
|
108
|
+
function ignoreIn(content) {
|
|
109
|
+
const match = IGNORE.exec(content);
|
|
110
|
+
if (match === null)
|
|
111
|
+
return null;
|
|
112
|
+
return {
|
|
113
|
+
kind: `@phpstan-ignore${match[1] ?? ''}`,
|
|
114
|
+
// Een docblock sluit met */ op dezelfde regel; dat hoort niet bij de tekst.
|
|
115
|
+
text: (match[2] ?? '').replace(/\*\/.*$/, '').trim(),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Waaraan een ignore herkend wordt als dezelfde: de soort en de identifiers, zonder de
|
|
120
|
+
* reden. Nagemeten op een echt project: een commit die alleen de reden van een
|
|
121
|
+
* bestaande ignore herschreef, staat in de diff als een weggehaalde én een toegevoegde
|
|
122
|
+
* regel — en is geen nieuwe fout die verstopt wordt.
|
|
123
|
+
*/
|
|
124
|
+
function signature(ignore) {
|
|
125
|
+
const identifiers = ignore.text
|
|
126
|
+
.replace(/\(.*$/, '')
|
|
127
|
+
.split(/[\s,]+/)
|
|
128
|
+
.filter((part) => part !== '')
|
|
129
|
+
.sort();
|
|
130
|
+
return `${ignore.kind} ${identifiers.join(',')}`;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Leest uit `git diff -U0 --no-prefix` welke `@phpstan-ignore`-regels er per bestand
|
|
134
|
+
* bijkomen en weggaan. Dezelfde aftelling per hunk als `parseChangedLines`, en om
|
|
135
|
+
* dezelfde reden: een regel die met `+++ ` begint is hier gewoon inhoud.
|
|
136
|
+
*/
|
|
137
|
+
export function parseIgnoreChanges(patch) {
|
|
138
|
+
const result = new Map();
|
|
139
|
+
let current = null;
|
|
140
|
+
let remaining = 0;
|
|
141
|
+
let newLine = 0;
|
|
142
|
+
for (const line of patch.split('\n')) {
|
|
143
|
+
if (remaining > 0) {
|
|
144
|
+
if (line.startsWith('\\'))
|
|
145
|
+
continue;
|
|
146
|
+
remaining--;
|
|
147
|
+
if (current === null)
|
|
148
|
+
continue;
|
|
149
|
+
if (line.startsWith('+')) {
|
|
150
|
+
const ignore = ignoreIn(line.slice(1));
|
|
151
|
+
if (ignore !== null)
|
|
152
|
+
current.added.push({ line: newLine, ...ignore });
|
|
153
|
+
newLine++;
|
|
154
|
+
}
|
|
155
|
+
else if (line.startsWith('-')) {
|
|
156
|
+
const ignore = ignoreIn(line.slice(1));
|
|
157
|
+
if (ignore !== null)
|
|
158
|
+
current.removed.push(signature(ignore));
|
|
159
|
+
}
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
if (line.startsWith('+++ ')) {
|
|
163
|
+
const path = line.slice(4).replace(/\t$/, '');
|
|
164
|
+
current = path === '/dev/null' ? null : { added: [], removed: [] };
|
|
165
|
+
if (current !== null)
|
|
166
|
+
result.set(path, current);
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const hunk = /^@@ -\d+(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/.exec(line);
|
|
170
|
+
if (hunk === null)
|
|
171
|
+
continue;
|
|
172
|
+
remaining = (hunk[1] === undefined ? 1 : Number(hunk[1])) + (hunk[3] === undefined ? 1 : Number(hunk[3]));
|
|
173
|
+
newLine = Number(hunk[2]);
|
|
174
|
+
}
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
/** De toegevoegde ignores min die met dezelfde soort en identifiers die weggingen. */
|
|
178
|
+
function netIgnores(path, changes) {
|
|
179
|
+
if (changes === undefined)
|
|
180
|
+
return [];
|
|
181
|
+
const removed = [...changes.removed];
|
|
182
|
+
const result = [];
|
|
183
|
+
for (const ignore of changes.added) {
|
|
184
|
+
const index = removed.indexOf(signature(ignore));
|
|
185
|
+
if (index === -1)
|
|
186
|
+
result.push({ path, ...ignore });
|
|
187
|
+
else
|
|
188
|
+
removed.splice(index, 1);
|
|
189
|
+
}
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
/** Alle ignores in een bestand dat helemaal nieuw is. */
|
|
193
|
+
function ignoresInFile(path, file) {
|
|
194
|
+
let content;
|
|
195
|
+
try {
|
|
196
|
+
content = readFileSync(file, 'utf8');
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return [];
|
|
200
|
+
}
|
|
201
|
+
return content.split('\n').flatMap((line, index) => {
|
|
202
|
+
const ignore = ignoreIn(line);
|
|
203
|
+
return ignore === null ? [] : [{ path, line: index + 1, ...ignore }];
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Wat de wijziging aan de geïncludeerde baselines verandert: welke genegeerde fouten
|
|
208
|
+
* erbij kwamen, en hoeveel er weggingen. Zowel nieuwe regels als een `count` die omhoog
|
|
209
|
+
* ging tellen als erbij. Gemeten op een echt project gingen er in één opruimcommit 284
|
|
210
|
+
* weg en kwam er niets bij — beide kanten zijn dus het vermelden waard.
|
|
211
|
+
*/
|
|
212
|
+
export async function baselineChanges(project, base = DEFAULT_BASE, staged = false) {
|
|
213
|
+
const result = [];
|
|
214
|
+
for (const file of includedBaselineFiles(project)) {
|
|
215
|
+
// `./` maakt het pad relatief aan de werkmap (het project) in plaats van aan de
|
|
216
|
+
// repositoryroot; `:./pad` zonder revisie is de versie in de index.
|
|
217
|
+
const nu = staged ? await gitShow(project.path, `:./${file}`) : readOrEmpty(join(project.path, file));
|
|
218
|
+
const toen = await gitShow(project.path, `${checkBase(base)}:./${file}`);
|
|
219
|
+
const voor = tallyBaseline(parseBaseline(toen));
|
|
220
|
+
const na = tallyBaseline(parseBaseline(nu));
|
|
221
|
+
const added = [];
|
|
222
|
+
let removed = 0;
|
|
223
|
+
for (const [key, count] of na) {
|
|
224
|
+
const was = voor.get(key) ?? 0;
|
|
225
|
+
if (count > was) {
|
|
226
|
+
const [identifier = '', path = ''] = key.split('\0');
|
|
227
|
+
added.push({ identifier, path, count, was });
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
for (const [key, was] of voor)
|
|
231
|
+
removed += Math.max(was - (na.get(key) ?? 0), 0);
|
|
232
|
+
if (added.length > 0 || removed > 0)
|
|
233
|
+
result.push({ file, added, removed });
|
|
234
|
+
}
|
|
235
|
+
return result;
|
|
236
|
+
}
|
|
237
|
+
function tallyBaseline(entries) {
|
|
238
|
+
const counts = new Map();
|
|
239
|
+
for (const entry of entries) {
|
|
240
|
+
const key = `${entry.identifier}\0${entry.path}`;
|
|
241
|
+
counts.set(key, (counts.get(key) ?? 0) + entry.count);
|
|
242
|
+
}
|
|
243
|
+
return counts;
|
|
244
|
+
}
|
|
245
|
+
function readOrEmpty(file) {
|
|
246
|
+
try {
|
|
247
|
+
return readFileSync(file, 'utf8');
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
return '';
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Een bestand zoals het in een revisie stond, of leeg als het daar nog niet bestond —
|
|
255
|
+
* dat is een uitkomst: dan is alles erin nieuw. Achter `--end-of-options`, net als bij
|
|
256
|
+
* `diff`; `checkBase` heeft een leidend streepje dan al geweigerd.
|
|
257
|
+
*/
|
|
258
|
+
async function gitShow(cwd, object) {
|
|
259
|
+
const { code, stdout, stderr, spawnError } = await execute(cwd, ['show', '--end-of-options', object]);
|
|
260
|
+
if (spawnError === null && code === 0)
|
|
261
|
+
return stdout;
|
|
262
|
+
if (/does not exist in|exists on disk, but not in/i.test(stderr))
|
|
263
|
+
return '';
|
|
264
|
+
return git(cwd, ['show', '--end-of-options', object]);
|
|
96
265
|
}
|
|
97
266
|
/**
|
|
98
267
|
* Of een bevinding op een regel staat die in deze wijziging zit. Een bevinding zonder
|
package/dist/changed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changed.js","sourceRoot":"","sources":["../src/changed.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"changed.js","sourceRoot":"","sources":["../src/changed.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -33,6 +33,17 @@ export declare function configPath(env?: NodeJS.ProcessEnv): string;
|
|
|
33
33
|
* wél — dan heeft iemand iets bedoeld wat niet gebeurt.
|
|
34
34
|
*/
|
|
35
35
|
export declare function loadConfig(env?: NodeJS.ProcessEnv): FileConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Een projectpad uit de configuratie (een sleutel van `runners` of `projects`), in de
|
|
38
|
+
* vorm waarin `resolveProject` het project oplevert: door `realpath.native`.
|
|
39
|
+
*
|
|
40
|
+
* Die sleutels worden letterlijk vergeleken met het geresolvede pad. Zonder deze stap
|
|
41
|
+
* matcht `/pad/project/` met een slash erachter niet, en een pad via een symlink ook
|
|
42
|
+
* niet — en op Windows nooit `C:/Users/…` tegen `C:\Users\…`. Een instelling die om
|
|
43
|
+
* zo'n reden niet matcht, doet stil niets. Bestaat het pad niet, dan alleen
|
|
44
|
+
* normaliseren: dan valt er ook niets te matchen, maar de melding blijft leesbaar.
|
|
45
|
+
*/
|
|
46
|
+
export declare function normaliseProjectKey(key: string): string;
|
|
36
47
|
/**
|
|
37
48
|
* Eén instelling uit het bestand, als tekst. Handig omdat de bestaande loaders al
|
|
38
49
|
* op tekst uit de omgeving werken: zo geldt overal dezelfde validatie, en levert
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
1
|
+
import { readFileSync, realpathSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
|
-
import { join } from 'node:path';
|
|
3
|
+
import { join, resolve } from 'node:path';
|
|
4
4
|
import { ToolFailure } from './failure.js';
|
|
5
5
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
6
6
|
export class ConfigError extends ToolFailure {
|
|
@@ -50,6 +50,24 @@ export function loadConfig(env = process.env) {
|
|
|
50
50
|
}
|
|
51
51
|
return ontleed;
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Een projectpad uit de configuratie (een sleutel van `runners` of `projects`), in de
|
|
55
|
+
* vorm waarin `resolveProject` het project oplevert: door `realpath.native`.
|
|
56
|
+
*
|
|
57
|
+
* Die sleutels worden letterlijk vergeleken met het geresolvede pad. Zonder deze stap
|
|
58
|
+
* matcht `/pad/project/` met een slash erachter niet, en een pad via een symlink ook
|
|
59
|
+
* niet — en op Windows nooit `C:/Users/…` tegen `C:\Users\…`. Een instelling die om
|
|
60
|
+
* zo'n reden niet matcht, doet stil niets. Bestaat het pad niet, dan alleen
|
|
61
|
+
* normaliseren: dan valt er ook niets te matchen, maar de melding blijft leesbaar.
|
|
62
|
+
*/
|
|
63
|
+
export function normaliseProjectKey(key) {
|
|
64
|
+
try {
|
|
65
|
+
return realpathSync.native(key);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return resolve(key);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
53
71
|
/**
|
|
54
72
|
* Eén instelling uit het bestand, als tekst. Handig omdat de bestaande loaders al
|
|
55
73
|
* op tekst uit de omgeving werken: zo geldt overal dezelfde validatie, en levert
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/defaults.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isAbsolute } from 'node:path';
|
|
2
|
-
import { fromConfig } from './config.js';
|
|
2
|
+
import { fromConfig, normaliseProjectKey } from './config.js';
|
|
3
3
|
import { ToolFailure } from './failure.js';
|
|
4
4
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
5
5
|
export class ProjectDefaultsError extends ToolFailure {
|
|
@@ -49,7 +49,7 @@ export function loadProjectDefaults(env = process.env) {
|
|
|
49
49
|
}
|
|
50
50
|
const defaults = new Map();
|
|
51
51
|
for (const [pad, waarde] of Object.entries(ontleed)) {
|
|
52
|
-
defaults.set(pad, controleer(pad, waarde));
|
|
52
|
+
defaults.set(normaliseProjectKey(pad), controleer(pad, waarde));
|
|
53
53
|
}
|
|
54
54
|
return defaults;
|
|
55
55
|
}
|
package/dist/defaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* De configuratie zoals PHPStan hem uiteindelijk gebruikt, samengevat uit
|
|
3
|
+
* `phpstan dump-parameters --json`.
|
|
4
|
+
*
|
|
5
|
+
* Samengevat en niet doorgegeven: bij een project met een baseline van 2116 regels is die
|
|
6
|
+
* uitvoer ruim 500 kB, bijna helemaal `ignoreErrors`. Wat een aanroeper wil weten, is het
|
|
7
|
+
* level (dat vaak in een config uit vendor/ staat), welke paden meedoen, hoeveel
|
|
8
|
+
* negeerregels er zijn en welke tijdelijke map PHPStan echt gebruikt.
|
|
9
|
+
*/
|
|
10
|
+
export interface EffectiveParameters {
|
|
11
|
+
/** Een getal, of "max"; null als PHPStan er geen noemt. */
|
|
12
|
+
readonly level: number | string | null;
|
|
13
|
+
/** De geanalyseerde paden, relatief aan de projectroot waar dat kan. */
|
|
14
|
+
readonly paths: readonly string[];
|
|
15
|
+
readonly excludePaths: readonly string[];
|
|
16
|
+
/** Hoeveel negeerregels er in totaal meedoen: baseline én ignoreErrors uit elke config. */
|
|
17
|
+
readonly ignoreErrors: number;
|
|
18
|
+
readonly reportUnmatchedIgnoredErrors: boolean | null;
|
|
19
|
+
/** De map waar PHPStan zijn cache neerzet — dus wat clear_result_cache leegt. */
|
|
20
|
+
readonly tmpDir: string | null;
|
|
21
|
+
/** Bootstrap-bestanden van het project en zijn pakketten, zonder PHPStans eigen polyfills. */
|
|
22
|
+
readonly bootstrapFiles: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Leest JSON die PHPStan niet helemaal geldig schrijft.
|
|
26
|
+
*
|
|
27
|
+
* Nagemeten op 2.2: `dump-parameters --json` zet een baseline-patroon als `array\<int\>`
|
|
28
|
+
* neer, en `\<` is geen geldige escape. Bij elk project met zo'n baseline faalde
|
|
29
|
+
* `JSON.parse` daardoor — ook al is de exit code 0. Een ongeldige escape wordt hier een
|
|
30
|
+
* letterlijke backslash. Per paar gelezen en niet met een losse vervanging: dan blijft een
|
|
31
|
+
* geldige `\\` gewoon één backslash.
|
|
32
|
+
*/
|
|
33
|
+
export declare function parseLenientJson(text: string): unknown;
|
|
34
|
+
/**
|
|
35
|
+
* Zet de uitvoer van `dump-parameters --json` om in de samenvatting. `toHost` vertaalt
|
|
36
|
+
* een pad uit de omgeving van een runner terug naar de host, en maakt het daarna relatief
|
|
37
|
+
* aan het project waar dat kan; zonder runner is het alleen dat laatste.
|
|
38
|
+
*/
|
|
39
|
+
export declare function summariseParameters(stdout: string, display: (path: string) => string): EffectiveParameters;
|
|
40
|
+
/** Schrijft de samenvatting uit, als aanvulling op PHPStans eigen diagnose. */
|
|
41
|
+
export declare function renderParameters(parameters: EffectiveParameters): string;
|