phpstan-mcp-mx 0.21.1 → 0.23.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 +20 -1
- package/README.md +128 -79
- package/dist/baseline.d.ts +1 -1
- package/dist/baseline.js +27 -15
- package/dist/baseline.js.map +1 -1
- package/dist/changed.d.ts +5 -5
- package/dist/changed.js +68 -35
- package/dist/changed.js.map +1 -1
- package/dist/compare.d.ts +3 -3
- package/dist/compare.js +14 -8
- package/dist/compare.js.map +1 -1
- package/dist/composer.d.ts +2 -2
- package/dist/composer.js +49 -27
- package/dist/composer.js.map +1 -1
- package/dist/config.d.ts +4 -3
- package/dist/config.js +11 -7
- package/dist/config.js.map +1 -1
- package/dist/defaults.d.ts +1 -1
- package/dist/defaults.js +3 -2
- package/dist/defaults.js.map +1 -1
- package/dist/dumptype.d.ts +1 -1
- package/dist/dumptype.js +20 -12
- package/dist/dumptype.js.map +1 -1
- package/dist/failure.d.ts +2 -2
- package/dist/failure.js.map +1 -1
- package/dist/index.js +27 -4
- package/dist/index.js.map +1 -1
- package/dist/php.d.ts +46 -0
- package/dist/php.js +100 -0
- package/dist/php.js.map +1 -0
- package/dist/phpstan/error.js.map +1 -1
- package/dist/phpstan/output.d.ts +2 -2
- package/dist/phpstan/output.js +16 -10
- package/dist/phpstan/output.js.map +1 -1
- package/dist/phpstan/parameters.d.ts +2 -2
- package/dist/phpstan/parameters.js +1 -1
- package/dist/phpstan/parameters.js.map +1 -1
- package/dist/phpstan/process.d.ts +16 -5
- package/dist/phpstan/process.js +48 -19
- package/dist/phpstan/process.js.map +1 -1
- package/dist/phpstan/queue.d.ts +1 -1
- package/dist/phpstan/queue.js +6 -4
- package/dist/phpstan/queue.js.map +1 -1
- package/dist/phpstan.d.ts +6 -6
- package/dist/phpstan.js +51 -31
- package/dist/phpstan.js.map +1 -1
- package/dist/project.d.ts +7 -3
- package/dist/project.js +60 -21
- package/dist/project.js.map +1 -1
- package/dist/report.d.ts +5 -5
- package/dist/report.js +47 -28
- package/dist/report.js.map +1 -1
- package/dist/root-source.d.ts +43 -0
- package/dist/root-source.js +124 -0
- package/dist/root-source.js.map +1 -0
- package/dist/roots.d.ts +13 -1
- package/dist/roots.js +24 -7
- package/dist/roots.js.map +1 -1
- package/dist/runner.d.ts +3 -3
- package/dist/runner.js +17 -10
- package/dist/runner.js.map +1 -1
- package/dist/runs.d.ts +3 -3
- package/dist/runs.js +9 -6
- package/dist/runs.js.map +1 -1
- package/dist/schema-dialect.d.ts +2 -2
- package/dist/schema-dialect.js +8 -5
- package/dist/schema-dialect.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.js +10 -6
- package/dist/server.js.map +1 -1
- package/dist/tmpdir.d.ts +3 -3
- package/dist/tmpdir.js +10 -7
- package/dist/tmpdir.js.map +1 -1
- package/dist/tools/analysis.d.ts +4 -4
- package/dist/tools/analysis.js +7 -5
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/inspect.d.ts +7 -7
- package/dist/tools/inspect.js +111 -45
- package/dist/tools/inspect.js.map +1 -1
- package/dist/tools/prompts.d.ts +5 -5
- package/dist/tools/prompts.js +15 -15
- package/dist/tools/prompts.js.map +1 -1
- package/dist/tools/shared.d.ts +4 -4
- package/dist/tools/shared.js +13 -11
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/writes.d.ts +3 -3
- package/dist/tools/writes.js +4 -4
- package/dist/tools/writes.js.map +1 -1
- package/dist/tools.d.ts +2 -2
- package/dist/tools.js +2 -1
- package/dist/tools.js.map +1 -1
- package/dist/unmatched.d.ts +3 -3
- package/dist/unmatched.js +35 -20
- package/dist/unmatched.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/dist/compare.js
CHANGED
|
@@ -7,7 +7,7 @@ const MAX_NOT_COMPARED_FILES = 10;
|
|
|
7
7
|
/**
|
|
8
8
|
* Legt een analyse naast een eerdere en telt wat er opgelost, nieuw en nog open is.
|
|
9
9
|
*
|
|
10
|
-
* Gekoppeld op bestand, identifier en melding
|
|
10
|
+
* Gekoppeld op bestand, identifier en melding niet op het regelnummer: een reparatie
|
|
11
11
|
* verschuift regels, en dan zou elke bevinding eronder als opgelost én nieuw tellen.
|
|
12
12
|
* Om die reden negeert PHPStans eigen baseline de regel ook. Nagemeten: drie lege regels
|
|
13
13
|
* bovenin het drukste bestand van `lasouris-lease-shared` verschoven alle elf bevindingen
|
|
@@ -19,7 +19,7 @@ const MAX_NOT_COMPARED_FILES = 10;
|
|
|
19
19
|
*
|
|
20
20
|
* Alleen bestanden die beide analyses dekten doen mee. Bij `analyse_changed` volgt de
|
|
21
21
|
* lijst uit git: wie tijdens een reparatie een tweede bestand aanraakt, krijgt dat bestand
|
|
22
|
-
* erbij, en diens bestaande fouten zouden anders als nieuw tellen
|
|
22
|
+
* erbij, en diens bestaande fouten zouden anders als nieuw tellen een antwoord dat klopt
|
|
23
23
|
* maar misleidt.
|
|
24
24
|
*/
|
|
25
25
|
export function compareRuns(project, before, after, meta) {
|
|
@@ -39,10 +39,12 @@ export function compareRuns(project, before, after, meta) {
|
|
|
39
39
|
group[side].push(finding.line);
|
|
40
40
|
groups.set(key, group);
|
|
41
41
|
};
|
|
42
|
-
for (const finding of before.result.findings)
|
|
42
|
+
for (const finding of before.result.findings) {
|
|
43
43
|
add(finding, 'before');
|
|
44
|
-
|
|
44
|
+
}
|
|
45
|
+
for (const finding of after.result.findings) {
|
|
45
46
|
add(finding, 'after');
|
|
47
|
+
}
|
|
46
48
|
const fixed = [];
|
|
47
49
|
const added = [];
|
|
48
50
|
let remaining = 0;
|
|
@@ -55,10 +57,12 @@ export function compareRuns(project, before, after, meta) {
|
|
|
55
57
|
count,
|
|
56
58
|
lines: [...lines].sort(byLine),
|
|
57
59
|
});
|
|
58
|
-
if (group.before.length > group.after.length)
|
|
60
|
+
if (group.before.length > group.after.length) {
|
|
59
61
|
fixed.push(entry(group.before.length - group.after.length, group.before));
|
|
60
|
-
|
|
62
|
+
}
|
|
63
|
+
if (group.after.length > group.before.length) {
|
|
61
64
|
added.push(entry(group.after.length - group.before.length, group.after));
|
|
65
|
+
}
|
|
62
66
|
}
|
|
63
67
|
fixed.sort(byPlace);
|
|
64
68
|
added.sort(byPlace);
|
|
@@ -79,10 +83,12 @@ export function compareRuns(project, before, after, meta) {
|
|
|
79
83
|
};
|
|
80
84
|
}
|
|
81
85
|
function equalScopes(a, b) {
|
|
82
|
-
if (a === null || b === null)
|
|
86
|
+
if (a === null || b === null) {
|
|
83
87
|
return a === b;
|
|
84
|
-
|
|
88
|
+
}
|
|
89
|
+
if (a.length !== b.length) {
|
|
85
90
|
return false;
|
|
91
|
+
}
|
|
86
92
|
const set = new Set(a);
|
|
87
93
|
return b.every((path) => set.has(path));
|
|
88
94
|
}
|
package/dist/compare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,qFAAqF;AACrF,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAgDlC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,MAAmB,EACnB,KAAkB,EAClB,IAA0G;
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":"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"}
|
package/dist/composer.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export interface Invocation {
|
|
|
30
30
|
* en `code:analyze:strict`, is een lijst met `Composer\Config::disableProcessTimeout`
|
|
31
31
|
* ervoor, en schrijft `--memory-limit 1G` met een spatie. Herkennen gaat dus op het
|
|
32
32
|
* commando, niet op de naam. Een script via `make` of via een ander script (`@naam`) is
|
|
33
|
-
* niet te lezen zonder het uit te voeren, en dat gebeurt hier nooit
|
|
33
|
+
* niet te lezen zonder het uit te voeren, en dat gebeurt hier nooit die vallen weg.
|
|
34
34
|
*/
|
|
35
35
|
export declare function readComposerScripts(project: string, server: ServerInvocation): {
|
|
36
36
|
composerScripts: ComposerScript[] | null;
|
|
@@ -61,7 +61,7 @@ export interface MissingExtension {
|
|
|
61
61
|
* Welke frameworks uit `composer.lock` hun extensie missen. Wat geladen is, komt uit PHPStans
|
|
62
62
|
* eigen diagnose ("Included configs from Composer packages"): die noemt ook een extensie die
|
|
63
63
|
* zonder extension-installer met de hand in de config staat. Is de uitvoer niet te lezen —
|
|
64
|
-
* een andere PHPStan-versie
|
|
64
|
+
* een andere PHPStan-versie dan null: niet te zeggen, en een vals alarm is erger dan stilte.
|
|
65
65
|
*/
|
|
66
66
|
export declare function findMissingExtensions(project: string, diagnoseOutput: string): MissingExtension[] | null;
|
|
67
67
|
/** De ontbrekende extensies als tekst; leeg als er niets ontbreekt of het niet te zeggen is. */
|
package/dist/composer.js
CHANGED
|
@@ -23,7 +23,7 @@ const DISCOVERED = ['phpstan.neon', 'phpstan.neon.dist', 'phpstan.dist.neon'];
|
|
|
23
23
|
* en `code:analyze:strict`, is een lijst met `Composer\Config::disableProcessTimeout`
|
|
24
24
|
* ervoor, en schrijft `--memory-limit 1G` met een spatie. Herkennen gaat dus op het
|
|
25
25
|
* commando, niet op de naam. Een script via `make` of via een ander script (`@naam`) is
|
|
26
|
-
* niet te lezen zonder het uit te voeren, en dat gebeurt hier nooit
|
|
26
|
+
* niet te lezen zonder het uit te voeren, en dat gebeurt hier nooit die vallen weg.
|
|
27
27
|
*/
|
|
28
28
|
export function readComposerScripts(project, server) {
|
|
29
29
|
let scripts;
|
|
@@ -36,8 +36,9 @@ export function readComposerScripts(project, server) {
|
|
|
36
36
|
composerScriptsProblem: `composer.json could not be read: ${error instanceof Error ? error.message : String(error)}`,
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
if (typeof scripts !== 'object' || scripts === null)
|
|
39
|
+
if (typeof scripts !== 'object' || scripts === null) {
|
|
40
40
|
return { composerScripts: [], composerScriptsProblem: null };
|
|
41
|
+
}
|
|
41
42
|
const found = [];
|
|
42
43
|
for (const [name, value] of Object.entries(scripts)) {
|
|
43
44
|
const commands = typeof value === 'string' ? [value] : Array.isArray(value) ? value.filter((v) => typeof v === 'string') : [];
|
|
@@ -45,8 +46,9 @@ export function readComposerScripts(project, server) {
|
|
|
45
46
|
for (const segment of splitCommands(command)) {
|
|
46
47
|
const tokens = tokenize(segment);
|
|
47
48
|
const start = analyseStart(tokens);
|
|
48
|
-
if (start === null)
|
|
49
|
+
if (start === null) {
|
|
49
50
|
continue;
|
|
51
|
+
}
|
|
50
52
|
const invocation = parseInvocation(tokens.slice(start.args));
|
|
51
53
|
found.push({
|
|
52
54
|
name,
|
|
@@ -66,8 +68,9 @@ export function splitCommands(command) {
|
|
|
66
68
|
for (let i = 0; i < command.length; i++) {
|
|
67
69
|
const char = command[i] ?? '';
|
|
68
70
|
if (quote !== null) {
|
|
69
|
-
if (char === quote)
|
|
71
|
+
if (char === quote) {
|
|
70
72
|
quote = null;
|
|
73
|
+
}
|
|
71
74
|
current += char;
|
|
72
75
|
continue;
|
|
73
76
|
}
|
|
@@ -79,8 +82,9 @@ export function splitCommands(command) {
|
|
|
79
82
|
if (char === ';' || char === '|' || (char === '&' && command[i + 1] === '&')) {
|
|
80
83
|
parts.push(current);
|
|
81
84
|
current = '';
|
|
82
|
-
if (command[i + 1] === char)
|
|
85
|
+
if (command[i + 1] === char) {
|
|
83
86
|
i++;
|
|
87
|
+
}
|
|
84
88
|
continue;
|
|
85
89
|
}
|
|
86
90
|
current += char;
|
|
@@ -96,10 +100,12 @@ export function tokenize(segment) {
|
|
|
96
100
|
let quote = null;
|
|
97
101
|
for (const char of segment) {
|
|
98
102
|
if (quote !== null) {
|
|
99
|
-
if (char === quote)
|
|
103
|
+
if (char === quote) {
|
|
100
104
|
quote = null;
|
|
101
|
-
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
102
107
|
current += char;
|
|
108
|
+
}
|
|
103
109
|
continue;
|
|
104
110
|
}
|
|
105
111
|
if (char === '"' || char === "'") {
|
|
@@ -107,8 +113,9 @@ export function tokenize(segment) {
|
|
|
107
113
|
started = true;
|
|
108
114
|
}
|
|
109
115
|
else if (/\s/.test(char)) {
|
|
110
|
-
if (started)
|
|
116
|
+
if (started) {
|
|
111
117
|
tokens.push(current);
|
|
118
|
+
}
|
|
112
119
|
current = '';
|
|
113
120
|
started = false;
|
|
114
121
|
}
|
|
@@ -117,8 +124,9 @@ export function tokenize(segment) {
|
|
|
117
124
|
started = true;
|
|
118
125
|
}
|
|
119
126
|
}
|
|
120
|
-
if (started)
|
|
127
|
+
if (started) {
|
|
121
128
|
tokens.push(current);
|
|
129
|
+
}
|
|
122
130
|
return tokens;
|
|
123
131
|
}
|
|
124
132
|
/**
|
|
@@ -128,8 +136,9 @@ export function tokenize(segment) {
|
|
|
128
136
|
*/
|
|
129
137
|
function analyseStart(tokens) {
|
|
130
138
|
const binary = tokens.findIndex((token) => /(^|[/\\])phpstan(\.phar)?$/.test(token));
|
|
131
|
-
if (binary === -1)
|
|
139
|
+
if (binary === -1) {
|
|
132
140
|
return null;
|
|
141
|
+
}
|
|
133
142
|
const sub = tokens[binary + 1];
|
|
134
143
|
return sub === 'analyse' || sub === 'analyze' ? { binary, args: binary + 2 } : null;
|
|
135
144
|
}
|
|
@@ -161,18 +170,23 @@ export function parseInvocation(args) {
|
|
|
161
170
|
// `--optie=waarde`, `--optie waarde`, `-c waarde` en `-cwaarde`.
|
|
162
171
|
const eq = arg.indexOf('=');
|
|
163
172
|
const name = arg.startsWith('--') ? (eq === -1 ? arg : arg.slice(0, eq)) : arg.slice(0, 2);
|
|
164
|
-
if (!(name in VALUE_OPTIONS))
|
|
173
|
+
if (!(name in VALUE_OPTIONS)) {
|
|
165
174
|
continue;
|
|
175
|
+
}
|
|
166
176
|
const field = VALUE_OPTIONS[name] ?? null;
|
|
167
177
|
let value;
|
|
168
|
-
if (arg.startsWith('--') && eq !== -1)
|
|
178
|
+
if (arg.startsWith('--') && eq !== -1) {
|
|
169
179
|
value = arg.slice(eq + 1);
|
|
170
|
-
|
|
180
|
+
}
|
|
181
|
+
else if (!arg.startsWith('--') && arg.length > 2) {
|
|
171
182
|
value = arg.slice(2);
|
|
172
|
-
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
173
185
|
value = args[++i];
|
|
174
|
-
|
|
186
|
+
}
|
|
187
|
+
if (field !== null && field !== 'paths' && field !== 'writes' && value !== undefined) {
|
|
175
188
|
found[field] = value;
|
|
189
|
+
}
|
|
176
190
|
}
|
|
177
191
|
found.paths = paths;
|
|
178
192
|
return found;
|
|
@@ -220,30 +234,34 @@ export function compareWithServer(project, invocation, server) {
|
|
|
220
234
|
}
|
|
221
235
|
/** De scripts als tekst, onder de rest van de diagnose. Leeg als er geen enkel is. */
|
|
222
236
|
export function renderComposerScripts(scripts, problem) {
|
|
223
|
-
if (scripts === null)
|
|
237
|
+
if (scripts === null) {
|
|
224
238
|
return `Composer scripts: not available. ${problem ?? ''}`.trim();
|
|
225
|
-
|
|
239
|
+
}
|
|
240
|
+
if (scripts.length === 0) {
|
|
226
241
|
return '';
|
|
242
|
+
}
|
|
227
243
|
const lines = ['Composer scripts that run PHPStan:'];
|
|
228
244
|
for (const script of scripts) {
|
|
229
245
|
lines.push(`- ${script.name}: ${script.command}`);
|
|
230
|
-
if (script.differences.length === 0)
|
|
246
|
+
if (script.differences.length === 0) {
|
|
231
247
|
lines.push(' runs PHPStan the same way as this server');
|
|
232
|
-
|
|
248
|
+
}
|
|
249
|
+
for (const difference of script.differences) {
|
|
233
250
|
lines.push(` ${difference}`);
|
|
251
|
+
}
|
|
234
252
|
}
|
|
235
253
|
return lines.join('\n');
|
|
236
254
|
}
|
|
237
255
|
/**
|
|
238
|
-
* Frameworks waarvan PHPStan de magie niet ziet zonder extensie
|
|
239
|
-
* geven (`Access to an undefined property App\Models\User::$name`)
|
|
256
|
+
* Frameworks waarvan PHPStan de magie niet ziet zonder extensie en die dan vals-positieven
|
|
257
|
+
* geven (`Access to an undefined property App\Models\User::$name`) met de extensie die
|
|
240
258
|
* daarvoor bestaat. Nagemeten op `cms/app`, level 5: zonder Larastan 187 bevindingen tegen 147
|
|
241
259
|
* met, vooral `property.notFound` (+16) en `method.notFound` (+18). Een eigen lijst, maar een kleine en stabiele: pakketnamen,
|
|
242
260
|
* geen uitleg die bij een release afdrijft.
|
|
243
261
|
*
|
|
244
262
|
* Bewust zonder testtools (`phpunit`, `mockery`, `webmozart/assert`). Nagemeten op vijf echte
|
|
245
263
|
* projecten: die staan in elk Laravel-project, vaak als afhankelijkheid van een
|
|
246
|
-
* afhankelijkheid, en hun extensie ontbrak overal
|
|
264
|
+
* afhankelijkheid, en hun extensie ontbrak overal een melding bij elk project is ruis, en
|
|
247
265
|
* geen van de bevindingen daar had er iets mee te maken.
|
|
248
266
|
*/
|
|
249
267
|
const FRAMEWORK_EXTENSIONS = [
|
|
@@ -252,7 +270,9 @@ const FRAMEWORK_EXTENSIONS = [
|
|
|
252
270
|
extensions: ['larastan/larastan', 'nunomaduro/larastan'],
|
|
253
271
|
sees: "Laravel's magic (Eloquent properties and relations, facades, the container)",
|
|
254
272
|
},
|
|
255
|
-
{ framework: 'doctrine/orm',
|
|
273
|
+
{ framework: 'doctrine/orm',
|
|
274
|
+
extensions: ['phpstan/phpstan-doctrine'],
|
|
275
|
+
sees: 'Doctrine repositories, entities and DQL' },
|
|
256
276
|
{
|
|
257
277
|
framework: 'symfony/framework-bundle',
|
|
258
278
|
extensions: ['phpstan/phpstan-symfony'],
|
|
@@ -263,15 +283,16 @@ const FRAMEWORK_EXTENSIONS = [
|
|
|
263
283
|
* Welke frameworks uit `composer.lock` hun extensie missen. Wat geladen is, komt uit PHPStans
|
|
264
284
|
* eigen diagnose ("Included configs from Composer packages"): die noemt ook een extensie die
|
|
265
285
|
* zonder extension-installer met de hand in de config staat. Is de uitvoer niet te lezen —
|
|
266
|
-
* een andere PHPStan-versie
|
|
286
|
+
* een andere PHPStan-versie dan null: niet te zeggen, en een vals alarm is erger dan stilte.
|
|
267
287
|
*/
|
|
268
288
|
export function findMissingExtensions(project, diagnoseOutput) {
|
|
269
|
-
// Nagemeten: zonder één enkele config uit een pakket laat PHPStan de hele sectie weg
|
|
289
|
+
// Nagemeten: zonder één enkele config uit een pakket laat PHPStan de hele sectie weg juist
|
|
270
290
|
// het geval waar het om gaat. De regel "Extension installer:" komt uit hetzelfde deel van de
|
|
271
291
|
// diagnose en staat er dan wél; alleen als ook die ontbreekt, is het een andere uitvoer.
|
|
272
292
|
const section = /Included configs from Composer packages:\n([\s\S]*?)(?:\n\s*\n|$)/.exec(diagnoseOutput);
|
|
273
|
-
if (section === null && !/^Extension installer:/m.test(diagnoseOutput))
|
|
293
|
+
if (section === null && !/^Extension installer:/m.test(diagnoseOutput)) {
|
|
274
294
|
return null;
|
|
295
|
+
}
|
|
275
296
|
const loaded = new Set((section?.[1] ?? '')
|
|
276
297
|
.split('\n')
|
|
277
298
|
.map((line) => line.trim().split(/\s+/)[0] ?? '')
|
|
@@ -299,8 +320,9 @@ export function findMissingExtensions(project, diagnoseOutput) {
|
|
|
299
320
|
}
|
|
300
321
|
/** De ontbrekende extensies als tekst; leeg als er niets ontbreekt of het niet te zeggen is. */
|
|
301
322
|
export function renderMissingExtensions(missing) {
|
|
302
|
-
if (missing === null || missing.length === 0)
|
|
323
|
+
if (missing === null || missing.length === 0) {
|
|
303
324
|
return '';
|
|
325
|
+
}
|
|
304
326
|
return [
|
|
305
327
|
'Missing PHPStan extensions:',
|
|
306
328
|
...missing.map((entry) => `- ${entry.framework} is installed, but ${entry.extension} is not loaded, so PHPStan does not see ` +
|
package/dist/composer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -16,11 +16,12 @@ export interface FileConfig {
|
|
|
16
16
|
readonly maxParallel?: number;
|
|
17
17
|
readonly tmpDir?: string;
|
|
18
18
|
readonly allowWrites?: boolean;
|
|
19
|
+
readonly php?: string;
|
|
19
20
|
readonly runners?: Record<string, unknown>;
|
|
20
21
|
readonly projects?: Record<string, unknown>;
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
|
-
* Waar het configbestand staat. `XDG_CONFIG_HOME` wint, anders `~/.config`
|
|
24
|
+
* Waar het configbestand staat. `XDG_CONFIG_HOME` wint, anders `~/.config` de
|
|
24
25
|
* plek waar dit soort bestanden op Linux en macOS gezocht wordt.
|
|
25
26
|
*/
|
|
26
27
|
export declare function configPath(env?: NodeJS.ProcessEnv): string;
|
|
@@ -30,7 +31,7 @@ export declare function configPath(env?: NodeJS.ProcessEnv): string;
|
|
|
30
31
|
* Ontbreken is uitdrukkelijk géén fout: zonder bestand geldt alleen wat er in de
|
|
31
32
|
* omgeving staat, en zonder allebei heeft de server geen roots en weigert hij alles.
|
|
32
33
|
* Dat is de veilige kant. Een bestand dat er wél is maar niet klopt, is dat juist
|
|
33
|
-
* wél
|
|
34
|
+
* wél dan heeft iemand iets bedoeld wat niet gebeurt.
|
|
34
35
|
*/
|
|
35
36
|
export declare function loadConfig(env?: NodeJS.ProcessEnv): FileConfig;
|
|
36
37
|
/**
|
|
@@ -39,7 +40,7 @@ export declare function loadConfig(env?: NodeJS.ProcessEnv): FileConfig;
|
|
|
39
40
|
*
|
|
40
41
|
* Die sleutels worden letterlijk vergeleken met het geresolvede pad. Zonder deze stap
|
|
41
42
|
* matcht `/pad/project/` met een slash erachter niet, en een pad via een symlink ook
|
|
42
|
-
* niet
|
|
43
|
+
* niet en op Windows nooit `C:/Users/…` tegen `C:\Users\…`. Een instelling die om
|
|
43
44
|
* zo'n reden niet matcht, doet stil niets. Bestaat het pad niet, dan alleen
|
|
44
45
|
* normaliseren: dan valt er ook niets te matchen, maar de melding blijft leesbaar.
|
|
45
46
|
*/
|
package/dist/config.js
CHANGED
|
@@ -11,13 +11,14 @@ export class ConfigError extends ToolFailure {
|
|
|
11
11
|
/** Env-variabele die een ander configbestand aanwijst dan de standaardplek. */
|
|
12
12
|
export const CONFIG_ENV_VAR = 'PHPSTAN_MCP_CONFIG';
|
|
13
13
|
/**
|
|
14
|
-
* Waar het configbestand staat. `XDG_CONFIG_HOME` wint, anders `~/.config`
|
|
14
|
+
* Waar het configbestand staat. `XDG_CONFIG_HOME` wint, anders `~/.config` de
|
|
15
15
|
* plek waar dit soort bestanden op Linux en macOS gezocht wordt.
|
|
16
16
|
*/
|
|
17
17
|
export function configPath(env = process.env) {
|
|
18
18
|
const expliciet = env[CONFIG_ENV_VAR]?.trim();
|
|
19
|
-
if (expliciet !== undefined && expliciet !== '')
|
|
19
|
+
if (expliciet !== undefined && expliciet !== '') {
|
|
20
20
|
return expliciet;
|
|
21
|
+
}
|
|
21
22
|
const basis = env['XDG_CONFIG_HOME']?.trim();
|
|
22
23
|
return join(basis !== undefined && basis !== '' ? basis : join(homedir(), '.config'), 'phpstan-mcp', 'config.json');
|
|
23
24
|
}
|
|
@@ -27,7 +28,7 @@ export function configPath(env = process.env) {
|
|
|
27
28
|
* Ontbreken is uitdrukkelijk géén fout: zonder bestand geldt alleen wat er in de
|
|
28
29
|
* omgeving staat, en zonder allebei heeft de server geen roots en weigert hij alles.
|
|
29
30
|
* Dat is de veilige kant. Een bestand dat er wél is maar niet klopt, is dat juist
|
|
30
|
-
* wél
|
|
31
|
+
* wél dan heeft iemand iets bedoeld wat niet gebeurt.
|
|
31
32
|
*/
|
|
32
33
|
export function loadConfig(env = process.env) {
|
|
33
34
|
const pad = configPath(env);
|
|
@@ -56,7 +57,7 @@ export function loadConfig(env = process.env) {
|
|
|
56
57
|
*
|
|
57
58
|
* Die sleutels worden letterlijk vergeleken met het geresolvede pad. Zonder deze stap
|
|
58
59
|
* matcht `/pad/project/` met een slash erachter niet, en een pad via een symlink ook
|
|
59
|
-
* niet
|
|
60
|
+
* niet en op Windows nooit `C:/Users/…` tegen `C:\Users\…`. Een instelling die om
|
|
60
61
|
* zo'n reden niet matcht, doet stil niets. Bestaat het pad niet, dan alleen
|
|
61
62
|
* normaliseren: dan valt er ook niets te matchen, maar de melding blijft leesbaar.
|
|
62
63
|
*/
|
|
@@ -75,12 +76,15 @@ export function normaliseProjectKey(key) {
|
|
|
75
76
|
*/
|
|
76
77
|
export function fromConfig(sleutel, env = process.env) {
|
|
77
78
|
const waarde = loadConfig(env)[sleutel];
|
|
78
|
-
if (waarde === undefined)
|
|
79
|
+
if (waarde === undefined) {
|
|
79
80
|
return undefined;
|
|
80
|
-
|
|
81
|
+
}
|
|
82
|
+
if (Array.isArray(waarde)) {
|
|
81
83
|
return waarde.join(':');
|
|
82
|
-
|
|
84
|
+
}
|
|
85
|
+
if (typeof waarde === 'object') {
|
|
83
86
|
return JSON.stringify(waarde);
|
|
87
|
+
}
|
|
84
88
|
return String(waarde);
|
|
85
89
|
}
|
|
86
90
|
//# sourceMappingURL=config.js.map
|
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,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,+EAA+E;AAC/E,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,YAAY,OAAe,EAAE,SAAwB,iBAAiB,EAAE,UAA0B,EAAE;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/defaults.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export declare function isValidMemoryLimit(value: string): boolean;
|
|
|
30
30
|
*
|
|
31
31
|
* Een onbekende sleutel wordt geweigerd en niet genegeerd: `memorylimit` met een
|
|
32
32
|
* kleine l doet anders stilzwijgend niets, en dan heeft iemand iets bedoeld wat niet
|
|
33
|
-
* gebeurt
|
|
33
|
+
* gebeurt dezelfde reden waarom een kapot configbestand de server niet laat starten.
|
|
34
34
|
*/
|
|
35
35
|
export declare function loadProjectDefaults(env?: NodeJS.ProcessEnv): Map<string, ProjectDefaults>;
|
|
36
36
|
/** De standaarden voor dit project; leeg als er niets bijzonders voor geldt. */
|
package/dist/defaults.js
CHANGED
|
@@ -30,12 +30,13 @@ export function isValidMemoryLimit(value) {
|
|
|
30
30
|
*
|
|
31
31
|
* Een onbekende sleutel wordt geweigerd en niet genegeerd: `memorylimit` met een
|
|
32
32
|
* kleine l doet anders stilzwijgend niets, en dan heeft iemand iets bedoeld wat niet
|
|
33
|
-
* gebeurt
|
|
33
|
+
* gebeurt dezelfde reden waarom een kapot configbestand de server niet laat starten.
|
|
34
34
|
*/
|
|
35
35
|
export function loadProjectDefaults(env = process.env) {
|
|
36
36
|
const ruw = (env[PROJECTS_ENV_VAR] ?? fromConfig('projects', env))?.trim();
|
|
37
|
-
if (ruw === undefined || ruw === '')
|
|
37
|
+
if (ruw === undefined || ruw === '') {
|
|
38
38
|
return new Map();
|
|
39
|
+
}
|
|
39
40
|
let ontleed;
|
|
40
41
|
try {
|
|
41
42
|
ontleed = JSON.parse(ruw);
|
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,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,+EAA+E;AAC/E,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACnD,YAAY,OAAe,EAAE,SAAwB,iBAAiB,EAAE,UAA0B,EAAE;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/dumptype.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ export declare function inspectType(project: ResolvedProject, request: TypeReque
|
|
|
66
66
|
* Voegt vóór `line` één regel `\PHPStan\dumpType(<expressie>);` per expressie in.
|
|
67
67
|
*
|
|
68
68
|
* Elke expressie op een eigen regel, want PHPStan rapporteert twee dumps op één regel
|
|
69
|
-
* niet in een vaste volgorde (nagemeten)
|
|
69
|
+
* niet in een vaste volgorde (nagemeten) het regelnummer is dan het enige dat een type
|
|
70
70
|
* aan zijn expressie koppelt. Een regeleinde in een expressie zou die telling verschuiven,
|
|
71
71
|
* en wordt daarom geweigerd.
|
|
72
72
|
*/
|
package/dist/dumptype.js
CHANGED
|
@@ -31,7 +31,7 @@ export async function inspectType(project, request, options = {}) {
|
|
|
31
31
|
* Voegt vóór `line` één regel `\PHPStan\dumpType(<expressie>);` per expressie in.
|
|
32
32
|
*
|
|
33
33
|
* Elke expressie op een eigen regel, want PHPStan rapporteert twee dumps op één regel
|
|
34
|
-
* niet in een vaste volgorde (nagemeten)
|
|
34
|
+
* niet in een vaste volgorde (nagemeten) het regelnummer is dan het enige dat een type
|
|
35
35
|
* aan zijn expressie koppelt. Een regeleinde in een expressie zou die telling verschuiven,
|
|
36
36
|
* en wordt daarom geweigerd.
|
|
37
37
|
*/
|
|
@@ -50,8 +50,8 @@ export function insertProbes(source, line, expressions) {
|
|
|
50
50
|
return { content: lines.join('\n'), line, expressions: cleaned };
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
* Een expressie zoals hij tussen de haakjes past. Een afsluitende `;` is vergeeflijk
|
|
54
|
-
* `$rows;` meegeeft bedoelt `$rows`
|
|
53
|
+
* Een expressie zoals hij tussen de haakjes past. Een afsluitende `;` is vergeeflijk wie
|
|
54
|
+
* `$rows;` meegeeft bedoelt `$rows` maar een lege of meerregelige expressie niet.
|
|
55
55
|
*/
|
|
56
56
|
function cleanExpression(expression) {
|
|
57
57
|
const cleaned = expression.trim().replace(/[\s;]+$/, '');
|
|
@@ -86,8 +86,9 @@ export function readProbes(project, file, probe, result) {
|
|
|
86
86
|
}));
|
|
87
87
|
const parseErrors = [];
|
|
88
88
|
for (const finding of result.findings) {
|
|
89
|
-
if (finding.file !== file)
|
|
89
|
+
if (finding.file !== file) {
|
|
90
90
|
continue;
|
|
91
|
+
}
|
|
91
92
|
const at = finding.line;
|
|
92
93
|
const onProbe = at !== null && at >= first && at < first + inserted;
|
|
93
94
|
if (finding.identifier === 'phpstan.parse') {
|
|
@@ -99,11 +100,13 @@ export function readProbes(project, file, probe, result) {
|
|
|
99
100
|
});
|
|
100
101
|
continue;
|
|
101
102
|
}
|
|
102
|
-
if (!onProbe)
|
|
103
|
+
if (!onProbe) {
|
|
103
104
|
continue;
|
|
105
|
+
}
|
|
104
106
|
const entry = types[at - first];
|
|
105
|
-
if (entry === undefined)
|
|
107
|
+
if (entry === undefined) {
|
|
106
108
|
continue;
|
|
109
|
+
}
|
|
107
110
|
if (finding.identifier === 'phpstan.dumpType' && finding.message.startsWith(DUMPED)) {
|
|
108
111
|
entry.type = finding.message.slice(DUMPED.length);
|
|
109
112
|
}
|
|
@@ -132,19 +135,23 @@ export function readProbes(project, file, probe, result) {
|
|
|
132
135
|
export function renderTypes(report) {
|
|
133
136
|
const lines = [];
|
|
134
137
|
if (report.warnings.length > 0) {
|
|
135
|
-
lines.push('WARNING
|
|
136
|
-
for (const warning of report.warnings)
|
|
138
|
+
lines.push('WARNING PHPStan reported this alongside the result:');
|
|
139
|
+
for (const warning of report.warnings) {
|
|
137
140
|
lines.push(`- ${warning}`);
|
|
138
|
-
|
|
141
|
+
}
|
|
142
|
+
if (report.omitted.warnings > 0) {
|
|
139
143
|
lines.push(`- (${String(report.omitted.warnings)} more message(s) not shown)`);
|
|
144
|
+
}
|
|
140
145
|
lines.push('');
|
|
141
146
|
}
|
|
142
147
|
if (report.generalErrors.length > 0) {
|
|
143
148
|
lines.push('Errors not tied to a file:');
|
|
144
|
-
for (const error of report.generalErrors)
|
|
149
|
+
for (const error of report.generalErrors) {
|
|
145
150
|
lines.push(`- ${error}`);
|
|
146
|
-
|
|
151
|
+
}
|
|
152
|
+
if (report.omitted.generalErrors > 0) {
|
|
147
153
|
lines.push(`- (${String(report.omitted.generalErrors)} more error(s) not shown)`);
|
|
154
|
+
}
|
|
148
155
|
lines.push('');
|
|
149
156
|
}
|
|
150
157
|
if (report.parseErrors.length > 0) {
|
|
@@ -153,8 +160,9 @@ export function renderTypes(report) {
|
|
|
153
160
|
const waar = error.inserted ? 'inserted line' : error.line === null ? 'no line' : `line ${String(error.line)}`;
|
|
154
161
|
lines.push(`- ${waar}: ${error.message}`);
|
|
155
162
|
}
|
|
156
|
-
if (report.omitted.parseErrors > 0)
|
|
163
|
+
if (report.omitted.parseErrors > 0) {
|
|
157
164
|
lines.push(`- (${String(report.omitted.parseErrors)} more not shown)`);
|
|
165
|
+
}
|
|
158
166
|
lines.push('', `If the file parses without them, line ${String(report.line)} is not a place where a statement can go: ` +
|
|
159
167
|
'for example in the middle of an expression that spans several lines, or directly in a class ' +
|
|
160
168
|
'body. Pick the first line of a statement inside a function or method.');
|