phpstan-mcp-mx 0.12.0 → 0.14.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 +22 -0
- package/README.md +113 -6
- package/dist/baseline.d.ts +19 -0
- package/dist/baseline.js +44 -11
- package/dist/baseline.js.map +1 -1
- package/dist/changed.d.ts +22 -0
- package/dist/changed.js +93 -9
- package/dist/changed.js.map +1 -1
- package/dist/config.d.ts +3 -2
- package/dist/config.js.map +1 -1
- package/dist/defaults.d.ts +37 -0
- package/dist/defaults.js +100 -0
- package/dist/defaults.js.map +1 -0
- package/dist/failure.d.ts +1 -1
- package/dist/failure.js.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/phpstan.js +58 -19
- package/dist/phpstan.js.map +1 -1
- package/dist/project.d.ts +10 -1
- package/dist/project.js +28 -1
- package/dist/project.js.map +1 -1
- package/dist/report.d.ts +39 -3
- package/dist/report.js +59 -14
- package/dist/report.js.map +1 -1
- package/dist/runs.d.ts +59 -0
- package/dist/runs.js +78 -0
- package/dist/runs.js.map +1 -0
- package/dist/schema-dialect.d.ts +30 -0
- package/dist/schema-dialect.js +57 -0
- package/dist/schema-dialect.js.map +1 -0
- package/dist/server.js +5 -0
- package/dist/server.js.map +1 -1
- package/dist/tmpdir.js.map +1 -1
- package/dist/tools/analysis.d.ts +4 -3
- package/dist/tools/analysis.js +35 -8
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/inspect.d.ts +2 -0
- package/dist/tools/inspect.js +140 -1
- package/dist/tools/inspect.js.map +1 -1
- package/dist/tools/prompts.d.ts +8 -1
- package/dist/tools/prompts.js +85 -4
- package/dist/tools/prompts.js.map +1 -1
- package/dist/tools/shared.d.ts +26 -2
- package/dist/tools/shared.js +63 -5
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools.js +9 -4
- package/dist/tools.js.map +1 -1
- package/dist/unmatched.d.ts +91 -0
- package/dist/unmatched.js +309 -0
- package/dist/unmatched.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -1
package/dist/defaults.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { isAbsolute } from 'node:path';
|
|
2
|
+
import { fromConfig } from './config.js';
|
|
3
|
+
import { ToolFailure } from './failure.js';
|
|
4
|
+
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
5
|
+
export class ProjectDefaultsError extends ToolFailure {
|
|
6
|
+
constructor(message, reason = 'invalid_setting', details = {}) {
|
|
7
|
+
super(message, reason, details);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/** Env-variabele met de standaarden per project, als JSON. */
|
|
11
|
+
export const PROJECTS_ENV_VAR = 'PHPSTAN_MCP_PROJECTS';
|
|
12
|
+
/** Dezelfde bovengrens als het tool-argument: een standaard mag niet meer dan een aanroep. */
|
|
13
|
+
export const MAX_TIMEOUT_SECONDS = 1800;
|
|
14
|
+
/** De sleutels die een project mag hebben. Alles daarbuiten is een tikfout. */
|
|
15
|
+
const KEYS = ['memoryLimit', 'timeoutSeconds', 'config'];
|
|
16
|
+
// PHPStans eigen vorm: bytes als getal, optioneel met K, M of G, of -1 voor
|
|
17
|
+
// onbeperkt. Een neon-parameter bestaat er niet voor en PHPStan kent er ook geen
|
|
18
|
+
// eigen env-variabele voor, dus dit is de enige plek om het blijvend vast te leggen.
|
|
19
|
+
const MEMORY_LIMIT_PATTERN = /^(-1|\d+[KMG]?)$/i;
|
|
20
|
+
/** Of PHPStan deze waarde als `--memory-limit` accepteert. */
|
|
21
|
+
export function isValidMemoryLimit(value) {
|
|
22
|
+
return MEMORY_LIMIT_PATTERN.test(value);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Leest de standaarden per project uit de omgeving, of anders uit het configbestand.
|
|
26
|
+
*
|
|
27
|
+
* Net als de runners komt dit uit de serverconfiguratie en nooit uit een aanroep. De
|
|
28
|
+
* aanroeper kan een standaard wél overrulen met een tool-argument; dat is de
|
|
29
|
+
* volgorde die ook bij de globale geheugenlimiet geldt.
|
|
30
|
+
*
|
|
31
|
+
* Een onbekende sleutel wordt geweigerd en niet genegeerd: `memorylimit` met een
|
|
32
|
+
* kleine l doet anders stilzwijgend niets, en dan heeft iemand iets bedoeld wat niet
|
|
33
|
+
* gebeurt — dezelfde reden waarom een kapot configbestand de server niet laat starten.
|
|
34
|
+
*/
|
|
35
|
+
export function loadProjectDefaults(env = process.env) {
|
|
36
|
+
const ruw = (env[PROJECTS_ENV_VAR] ?? fromConfig('projects', env))?.trim();
|
|
37
|
+
if (ruw === undefined || ruw === '')
|
|
38
|
+
return new Map();
|
|
39
|
+
let ontleed;
|
|
40
|
+
try {
|
|
41
|
+
ontleed = JSON.parse(ruw);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
throw new ProjectDefaultsError(`${PROJECTS_ENV_VAR} bevat geen geldige JSON. Verwacht wordt een object met per ` +
|
|
45
|
+
'projectpad bijvoorbeeld {"memoryLimit": "2G", "timeoutSeconds": 600, "config": "phpstan.neon"}.');
|
|
46
|
+
}
|
|
47
|
+
if (typeof ontleed !== 'object' || ontleed === null || Array.isArray(ontleed)) {
|
|
48
|
+
throw new ProjectDefaultsError(`${PROJECTS_ENV_VAR} moet een object zijn met een projectpad per sleutel.`);
|
|
49
|
+
}
|
|
50
|
+
const defaults = new Map();
|
|
51
|
+
for (const [pad, waarde] of Object.entries(ontleed)) {
|
|
52
|
+
defaults.set(pad, controleer(pad, waarde));
|
|
53
|
+
}
|
|
54
|
+
return defaults;
|
|
55
|
+
}
|
|
56
|
+
/** De standaarden voor dit project; leeg als er niets bijzonders voor geldt. */
|
|
57
|
+
export function defaultsFor(project, env = process.env) {
|
|
58
|
+
return loadProjectDefaults(env).get(project) ?? {};
|
|
59
|
+
}
|
|
60
|
+
/** Weigert een onbruikbare waarde met een melding die zegt wat er wél mag. */
|
|
61
|
+
function controleer(pad, waarde) {
|
|
62
|
+
const waar = `${PROJECTS_ENV_VAR}: "${pad}"`;
|
|
63
|
+
if (!isAbsolute(pad)) {
|
|
64
|
+
throw new ProjectDefaultsError(`${waar} is geen absoluut projectpad.`);
|
|
65
|
+
}
|
|
66
|
+
if (typeof waarde !== 'object' || waarde === null || Array.isArray(waarde)) {
|
|
67
|
+
throw new ProjectDefaultsError(`${waar} moet een object zijn, bijvoorbeeld {"memoryLimit": "2G"}.`);
|
|
68
|
+
}
|
|
69
|
+
const obj = waarde;
|
|
70
|
+
const onbekend = Object.keys(obj).filter((key) => !KEYS.includes(key));
|
|
71
|
+
if (onbekend.length > 0) {
|
|
72
|
+
throw new ProjectDefaultsError(`${waar} kent ${onbekend.map((key) => `"${key}"`).join(', ')} niet. Toegestaan zijn ${KEYS.join(', ')}.`);
|
|
73
|
+
}
|
|
74
|
+
const result = {};
|
|
75
|
+
if (obj['memoryLimit'] !== undefined) {
|
|
76
|
+
const limit = obj['memoryLimit'];
|
|
77
|
+
if (typeof limit !== 'string' || !isValidMemoryLimit(limit.trim())) {
|
|
78
|
+
throw new ProjectDefaultsError(`${waar} heeft memoryLimit ${JSON.stringify(limit)}, en die vorm accepteert PHPStan niet. ` +
|
|
79
|
+
'Gebruik een getal met optioneel K, M of G (bijv. "1G"), of -1 voor geen limiet.');
|
|
80
|
+
}
|
|
81
|
+
result.memoryLimit = limit.trim();
|
|
82
|
+
}
|
|
83
|
+
if (obj['timeoutSeconds'] !== undefined) {
|
|
84
|
+
const seconds = obj['timeoutSeconds'];
|
|
85
|
+
if (typeof seconds !== 'number' || !Number.isInteger(seconds) || seconds < 1 || seconds > MAX_TIMEOUT_SECONDS) {
|
|
86
|
+
throw new ProjectDefaultsError(`${waar} heeft timeoutSeconds ${JSON.stringify(seconds)}; verwacht een geheel getal ` +
|
|
87
|
+
`van 1 tot en met ${String(MAX_TIMEOUT_SECONDS)}.`);
|
|
88
|
+
}
|
|
89
|
+
result.timeoutSeconds = seconds;
|
|
90
|
+
}
|
|
91
|
+
if (obj['config'] !== undefined) {
|
|
92
|
+
const config = obj['config'];
|
|
93
|
+
if (typeof config !== 'string' || config.trim() === '') {
|
|
94
|
+
throw new ProjectDefaultsError(`${waar} heeft een lege of onbruikbare config; verwacht een pad binnen het project.`);
|
|
95
|
+
}
|
|
96
|
+
result.config = config.trim();
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/failure.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* lijst uit met beleid, niet met vrije tekst — een code die maar één keer voorkomt
|
|
13
13
|
* helpt niemand.
|
|
14
14
|
*/
|
|
15
|
-
export type FailureReason = 'no_roots_configured' | 'project_outside_roots' | 'project_not_found' | 'path_outside_project' | 'path_not_found' | 'phpstan_missing' | 'config_missing' | 'bootstrap_failed' | 'baseline_unreadable' | 'invalid_setting' | 'memory_limit' | 'timeout' | 'cancelled' | 'git_missing' | 'not_a_git_repository' | 'unknown_base' | 'unusable_output' | 'phpstan_failed';
|
|
15
|
+
export type FailureReason = 'no_roots_configured' | 'project_outside_roots' | 'project_not_found' | 'path_outside_project' | 'path_not_found' | 'phpstan_missing' | 'config_missing' | 'bootstrap_failed' | 'baseline_unreadable' | 'invalid_setting' | 'memory_limit' | 'timeout' | 'cancelled' | 'git_missing' | 'not_a_git_repository' | 'unknown_base' | 'unsupported_with_runner' | 'unusable_output' | 'phpstan_failed';
|
|
16
16
|
/** Wat er naast de reden bekend is. Alles optioneel: niet elke fout weet dit. */
|
|
17
17
|
export interface FailureDetails {
|
|
18
18
|
/** Exit code van het proces, als er een proces was. */
|
package/dist/failure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAqDA;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGzB;IACA;IAHX,YACE,OAAe,EACN,MAAqB,EACrB,UAA0B,EAAE;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAe;QACrB,YAAO,GAAP,OAAO,CAAqB;IAGvC,CAAC;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
+
import { loadProjectDefaults } from './defaults.js';
|
|
3
4
|
import { loadDefaultMemoryLimit, loadMaxParallel } from './phpstan.js';
|
|
4
5
|
import { loadTmpDirMode } from './tmpdir.js';
|
|
5
6
|
import { WRITES_ENV_VAR, writesAllowed } from './tools/writes.js';
|
|
@@ -17,7 +18,22 @@ async function main() {
|
|
|
17
18
|
describeMemoryDefault() +
|
|
18
19
|
describeMaxParallel() +
|
|
19
20
|
describeTmpDir() +
|
|
20
|
-
describeWrites()
|
|
21
|
+
describeWrites() +
|
|
22
|
+
describeProjectDefaults());
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Hoeveel projecten eigen standaarden hebben. Een kapotte waarde is net als bij de
|
|
26
|
+
* geheugenlimiet niet fataal: projecten zonder standaard werken gewoon, en een
|
|
27
|
+
* analyse legt het probleem alsnog uit.
|
|
28
|
+
*/
|
|
29
|
+
function describeProjectDefaults() {
|
|
30
|
+
try {
|
|
31
|
+
const aantal = loadProjectDefaults().size;
|
|
32
|
+
return aantal === 0 ? '' : `, eigen standaarden voor ${String(aantal)} project(en)`;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return `, LET OP: ${error instanceof Error ? error.message : String(error)}`;
|
|
36
|
+
}
|
|
21
37
|
}
|
|
22
38
|
/**
|
|
23
39
|
* Zet de standaard geheugenlimiet in de opstartregel, zodat je in het clientlog ziet
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEnC,8EAA8E;IAC9E,kEAAkE;IAClE,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IAEjD,OAAO,CAAC,KAAK,CACX,eAAe,OAAO,uBAAuB,KAAK,CAAC,MAAM,yBAAyB;QAChF,qBAAqB,EAAE;QACvB,mBAAmB,EAAE;QACrB,cAAc,EAAE;QAChB,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/phpstan.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { fromConfig } from './config.js';
|
|
2
|
+
import { PROJECTS_ENV_VAR, ProjectDefaultsError, defaultsFor, isValidMemoryLimit } from './defaults.js';
|
|
3
|
+
import { ProjectError, resolveWithin } from './project.js';
|
|
2
4
|
import { PhpstanError } from './phpstan/error.js';
|
|
3
5
|
import { naarHost, naarOmgeving, phpstanIn, runnerFor } from './runner.js';
|
|
4
6
|
import { collectWarnings, condenseDetails, toResult, tryParse } from './phpstan/output.js';
|
|
@@ -12,10 +14,6 @@ export { PhpstanError } from './phpstan/error.js';
|
|
|
12
14
|
export const DEFAULT_TIMEOUT_MS = 300_000;
|
|
13
15
|
/** Env-variabele met de `--memory-limit` voor aanroepen die er zelf geen meegeven. */
|
|
14
16
|
export const MEMORY_LIMIT_ENV_VAR = 'PHPSTAN_MCP_MEMORY_LIMIT';
|
|
15
|
-
// PHPStans eigen vorm: bytes als getal, optioneel met K, M of G, of -1 voor
|
|
16
|
-
// onbeperkt. Een neon-parameter bestaat er niet voor en PHPStan kent er ook geen
|
|
17
|
-
// eigen env-variabele voor, dus dit is de enige plek om het blijvend vast te leggen.
|
|
18
|
-
const MEMORY_LIMIT_PATTERN = /^(-1|\d+[KMG]?)$/i;
|
|
19
17
|
/**
|
|
20
18
|
* Leegt PHPStans resultcache voor dit project.
|
|
21
19
|
*
|
|
@@ -30,10 +28,13 @@ export async function clearResultCache(project, options = {}) {
|
|
|
30
28
|
throwIfAborted(project.path, options.signal);
|
|
31
29
|
return enqueue(project.path, () => withSlot(async () => {
|
|
32
30
|
throwIfAborted(project.path, options.signal);
|
|
31
|
+
// Met de config van het project: een config met een eigen tmpDir leegt anders
|
|
32
|
+
// de verkeerde map.
|
|
33
33
|
const args = ['clear-result-cache', '--no-ansi'];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
const config = options.config ?? defaultConfig(project);
|
|
35
|
+
if (config !== undefined)
|
|
36
|
+
args.push(`--configuration=${config}`);
|
|
37
|
+
const execution = await execute(binary, args, project.path, timeoutFor(project, options), options.signal);
|
|
37
38
|
const output = execution.stdout.trim();
|
|
38
39
|
if (execution.code !== 0 || output === '') {
|
|
39
40
|
throw new PhpstanError(`PHPStan kon de resultcache van ${project.path} niet legen (exit code ${execution.code ?? '?'}).\n\n` +
|
|
@@ -55,7 +56,7 @@ export async function generateBaseline(project, options) {
|
|
|
55
56
|
const installed = { ...project, binary };
|
|
56
57
|
return enqueue(project.path, () => withSlot(async () => {
|
|
57
58
|
throwIfAborted(project.path, options.signal);
|
|
58
|
-
const execution = await execute(binary, buildBaselineArgs(installed, options), project.path, options
|
|
59
|
+
const execution = await execute(binary, buildBaselineArgs(installed, options), project.path, timeoutFor(project, options), options.signal);
|
|
59
60
|
// Op de tekst afgaan en niet op de exit code, om dezelfde reden als bij een
|
|
60
61
|
// analyse: PHPStan meldt "niets te schrijven" met exit 1 én met een bruikbare
|
|
61
62
|
// uitleg erbij, en die uitleg is meer waard dan een eigen foutmelding.
|
|
@@ -127,7 +128,7 @@ export async function diagnose(project, options = {}) {
|
|
|
127
128
|
throwIfAborted(project.path, options.signal);
|
|
128
129
|
return withSlot(async () => {
|
|
129
130
|
throwIfAborted(project.path, options.signal);
|
|
130
|
-
const execution = await execute(binary, ['diagnose', '--no-ansi'], project.path, options
|
|
131
|
+
const execution = await execute(binary, ['diagnose', '--no-ansi'], project.path, timeoutFor(project, options), options.signal);
|
|
131
132
|
if (execution.spawnError !== null) {
|
|
132
133
|
throw new PhpstanError(`PHPStan kon niet gestart worden in ${project.path}: ${execution.spawnError.message}`);
|
|
133
134
|
}
|
|
@@ -170,7 +171,7 @@ async function run(project, options) {
|
|
|
170
171
|
const args = plan.runner === null
|
|
171
172
|
? ruweArgs
|
|
172
173
|
: [...plan.prefix, plan.phpstan, ...vertaalArgs(ruweArgs, project.path, plan.runner)];
|
|
173
|
-
const timeoutMs = options
|
|
174
|
+
const timeoutMs = timeoutFor(project, options);
|
|
174
175
|
// Nog een keer, want tussen de queue, het slot en dit punt kan er tijd zitten:
|
|
175
176
|
// PHPStan starten voor een verzoek dat niemand meer wil is pure verspilling.
|
|
176
177
|
throwIfAborted(project.path, options.signal);
|
|
@@ -208,7 +209,7 @@ export function loadDefaultMemoryLimit(env = process.env) {
|
|
|
208
209
|
const configured = (env[MEMORY_LIMIT_ENV_VAR] ?? fromConfig('memoryLimit', env))?.trim();
|
|
209
210
|
if (configured === undefined || configured === '')
|
|
210
211
|
return undefined;
|
|
211
|
-
if (!
|
|
212
|
+
if (!isValidMemoryLimit(configured)) {
|
|
212
213
|
throw new PhpstanError(`${MEMORY_LIMIT_ENV_VAR} staat op "${configured}", en die vorm accepteert PHPStan niet. ` +
|
|
213
214
|
'Gebruik een getal met optioneel K, M of G (bijv. "1G"), of -1 voor geen limiet.');
|
|
214
215
|
}
|
|
@@ -219,10 +220,42 @@ function buildArgs(project, options) {
|
|
|
219
220
|
'analyse',
|
|
220
221
|
'--error-format=json',
|
|
221
222
|
...QUIET_FLAGS,
|
|
222
|
-
...flags(options),
|
|
223
|
+
...flags(project, options),
|
|
223
224
|
...targets(project, options),
|
|
224
225
|
];
|
|
225
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* De timeout voor deze aanroep: het argument, dan de standaard van het project, dan
|
|
229
|
+
* die van de server. Dezelfde volgorde als bij de geheugenlimiet.
|
|
230
|
+
*/
|
|
231
|
+
function timeoutFor(project, options) {
|
|
232
|
+
if (options.timeoutMs !== undefined)
|
|
233
|
+
return options.timeoutMs;
|
|
234
|
+
const seconds = defaultsFor(project.path).timeoutSeconds;
|
|
235
|
+
return seconds === undefined ? DEFAULT_TIMEOUT_MS : seconds * 1000;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* De config uit de standaarden van het project, als absoluut pad binnen het project.
|
|
239
|
+
*
|
|
240
|
+
* Door resolveWithin, ook al komt hij uit de serverconfiguratie en niet uit een
|
|
241
|
+
* aanroep: een neon kan PHP-code laten uitvoeren, en de whitelist gaat over wat er
|
|
242
|
+
* gestart wordt, niet alleen over wat er geanalyseerd wordt. Een fout hier is een
|
|
243
|
+
* fout in de serverconfiguratie en wordt ook zo genoemd — anders lijkt het alsof de
|
|
244
|
+
* aanroeper een verkeerd pad meegaf.
|
|
245
|
+
*/
|
|
246
|
+
function defaultConfig(project) {
|
|
247
|
+
const config = defaultsFor(project.path).config;
|
|
248
|
+
if (config === undefined)
|
|
249
|
+
return undefined;
|
|
250
|
+
try {
|
|
251
|
+
return resolveWithin(project, config);
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
if (!(error instanceof ProjectError))
|
|
255
|
+
throw error;
|
|
256
|
+
throw new ProjectDefaultsError(`${PROJECTS_ENV_VAR}: de config "${config}" voor ${project.path} is niet te gebruiken. ${error.message}`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
226
259
|
/**
|
|
227
260
|
* Dezelfde aanroep, maar met `--generate-baseline` in plaats van een errorformat:
|
|
228
261
|
* PHPStan schrijft dan een bestand en rapporteert in tekst hoeveel het er waren.
|
|
@@ -233,23 +266,29 @@ function buildBaselineArgs(project, options) {
|
|
|
233
266
|
...QUIET_FLAGS,
|
|
234
267
|
`--generate-baseline=${options.file}`,
|
|
235
268
|
...(options.allowEmpty === true ? ['--allow-empty-baseline'] : []),
|
|
236
|
-
...flags(options),
|
|
269
|
+
...flags(project, options),
|
|
237
270
|
...targets(project, options),
|
|
238
271
|
];
|
|
239
272
|
}
|
|
240
273
|
/** Vlaggen die er altijd bij horen, zodat de uitvoer machineleesbaar blijft. */
|
|
241
274
|
const QUIET_FLAGS = ['--no-progress', '--no-interaction', '--no-ansi'];
|
|
242
|
-
/**
|
|
243
|
-
|
|
275
|
+
/**
|
|
276
|
+
* De vlaggen die uit de opties komen, in de volgorde die PHPStan zelf aanhoudt.
|
|
277
|
+
*
|
|
278
|
+
* Steeds dezelfde voorrang: wat de aanroep meegeeft, dan de standaard van dit
|
|
279
|
+
* project, dan die van de hele server. Een standaard is geen plafond.
|
|
280
|
+
*/
|
|
281
|
+
function flags(project, options) {
|
|
244
282
|
const args = [];
|
|
283
|
+
const defaults = defaultsFor(project.path);
|
|
245
284
|
// Vóór de rest, zoals PHPStan het zelf ook documenteert: de config bepaalt wat de
|
|
246
285
|
// overige vlaggen overrulen.
|
|
247
|
-
|
|
248
|
-
|
|
286
|
+
const config = options.config ?? defaultConfig(project);
|
|
287
|
+
if (config !== undefined)
|
|
288
|
+
args.push(`--configuration=${config}`);
|
|
249
289
|
if (options.level !== undefined)
|
|
250
290
|
args.push(`--level=${options.level}`);
|
|
251
|
-
|
|
252
|
-
const memoryLimit = options.memoryLimit ?? loadDefaultMemoryLimit();
|
|
291
|
+
const memoryLimit = options.memoryLimit ?? defaults.memoryLimit ?? loadDefaultMemoryLimit();
|
|
253
292
|
if (memoryLimit !== undefined)
|
|
254
293
|
args.push(`--memory-limit=${memoryLimit}`);
|
|
255
294
|
return args;
|
package/dist/phpstan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phpstan.js","sourceRoot":"","sources":["../src/phpstan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"phpstan.js","sourceRoot":"","sources":["../src/phpstan.ts"],"names":[],"mappings":"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"}
|
package/dist/project.d.ts
CHANGED
|
@@ -7,7 +7,10 @@ export interface ResolvedProject {
|
|
|
7
7
|
readonly path: string;
|
|
8
8
|
/** Absoluut pad naar vendor/bin/phpstan, of null als het niet geïnstalleerd is. */
|
|
9
9
|
readonly binary: string | null;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* De config die gebruikt wordt, relatief aan de projectroot: die uit de standaarden
|
|
12
|
+
* van het project, anders de gevonden config, anders null.
|
|
13
|
+
*/
|
|
11
14
|
readonly config: string | null;
|
|
12
15
|
}
|
|
13
16
|
/** Een project zoals `list_projects` het rapporteert. */
|
|
@@ -21,6 +24,12 @@ export interface ProjectSummary {
|
|
|
21
24
|
readonly hasGit: boolean;
|
|
22
25
|
/** Waar PHPStan hier draait, of null als dat gewoon op de host is. */
|
|
23
26
|
readonly runner: string | null;
|
|
27
|
+
/** Wat voor dit project anders is dan voor de rest, of null als er niets bijzonders geldt. */
|
|
28
|
+
readonly defaults: {
|
|
29
|
+
readonly memoryLimit: string | null;
|
|
30
|
+
readonly timeoutSeconds: number | null;
|
|
31
|
+
readonly config: string | null;
|
|
32
|
+
} | null;
|
|
24
33
|
}
|
|
25
34
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
26
35
|
export declare class ProjectError extends ToolFailure {
|
package/dist/project.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ToolFailure } from './failure.js';
|
|
2
2
|
import { readdirSync, realpathSync, statSync } from 'node:fs';
|
|
3
3
|
import { basename, dirname, isAbsolute, join, relative } from 'node:path';
|
|
4
|
+
import { defaultsFor } from './defaults.js';
|
|
4
5
|
import { isUsable, ROOTS_ENV_VAR } from './roots.js';
|
|
5
6
|
import { runnerFor } from './runner.js';
|
|
6
7
|
/** Volgorde waarin PHPStan zelf zijn configuratie zoekt. */
|
|
@@ -57,9 +58,24 @@ export function describeProject(path) {
|
|
|
57
58
|
return {
|
|
58
59
|
path,
|
|
59
60
|
binary: isFile(binary) ? binary : null,
|
|
60
|
-
|
|
61
|
+
// De standaard gaat vóór wat er ligt: dat is ook wat er aan PHPStan meegegeven
|
|
62
|
+
// wordt, en de baseline-melding en unmatched_ignores moeten naar díe config kijken.
|
|
63
|
+
config: readDefaults(path)?.config ?? CONFIG_NAMES.find((name) => isFile(join(path, name))) ?? null,
|
|
61
64
|
};
|
|
62
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* De standaarden van dit project, of null als ze niet te lezen zijn. Bewust stil:
|
|
68
|
+
* een kapotte instelling legt hier anders ook list_projects plat, terwijl de analyse
|
|
69
|
+
* zelf hem alsnog weigert met de uitleg erbij, en server_config hem noemt.
|
|
70
|
+
*/
|
|
71
|
+
function readDefaults(path) {
|
|
72
|
+
try {
|
|
73
|
+
return defaultsFor(path);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
63
79
|
/**
|
|
64
80
|
* Zet een pad-argument om in een absoluut pad binnen het project. Accepteert zowel
|
|
65
81
|
* een pad relatief aan de projectroot als een absoluut pad, want een model dat net
|
|
@@ -151,6 +167,10 @@ function summarise(path, root) {
|
|
|
151
167
|
// De runner staat erbij omdat hij verklaart waaróm een project zonder vendor/ toch
|
|
152
168
|
// analyseerbaar is — en waar het dan gebeurt.
|
|
153
169
|
const runner = runnerFor(path);
|
|
170
|
+
// Om dezelfde reden: zonder dit is niet te zien waarom het ene project wél met 2G
|
|
171
|
+
// draait en het andere niet.
|
|
172
|
+
const defaults = readDefaults(path) ?? {};
|
|
173
|
+
const hasDefaults = Object.keys(defaults).length > 0;
|
|
154
174
|
return {
|
|
155
175
|
path,
|
|
156
176
|
root,
|
|
@@ -158,6 +178,13 @@ function summarise(path, root) {
|
|
|
158
178
|
config,
|
|
159
179
|
hasGit: hasGitDir(path),
|
|
160
180
|
runner: runner === null ? null : runner.command.join(' '),
|
|
181
|
+
defaults: hasDefaults
|
|
182
|
+
? {
|
|
183
|
+
memoryLimit: defaults.memoryLimit ?? null,
|
|
184
|
+
timeoutSeconds: defaults.timeoutSeconds ?? null,
|
|
185
|
+
config: defaults.config ?? null,
|
|
186
|
+
}
|
|
187
|
+
: null,
|
|
161
188
|
};
|
|
162
189
|
}
|
|
163
190
|
/**
|
package/dist/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,4DAA4D;AAC5D,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAU,CAAC;AAEpE,mFAAmF;AACnF,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAErD,gFAAgF;AAChF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
package/dist/report.d.ts
CHANGED
|
@@ -12,6 +12,25 @@ export declare const MAX_MESSAGES = 10;
|
|
|
12
12
|
/** Een bevinding zoals ze naar buiten gaat: pad relatief waar dat kan. */
|
|
13
13
|
export interface DisplayFinding extends Omit<Finding, 'file'> {
|
|
14
14
|
readonly file: string;
|
|
15
|
+
/**
|
|
16
|
+
* Alleen als er een wijziging is om tegen te leggen (analyse_changed). Ontbreekt
|
|
17
|
+
* bij de andere tools in plaats van `null` te zijn: dat zou op elke bevinding
|
|
18
|
+
* een veld kosten dat niets zegt.
|
|
19
|
+
*/
|
|
20
|
+
readonly onChangedLine?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Of een bevinding op een gewijzigde regel staat. Als functie meegegeven, zodat dit
|
|
24
|
+
* bestand niets van git hoeft te weten. Krijgt het absolute pad, zoals PHPStan het
|
|
25
|
+
* rapporteert — niet het pad dat naar buiten gaat.
|
|
26
|
+
*/
|
|
27
|
+
export type ChangedLineCheck = (file: string, line: number | null) => boolean;
|
|
28
|
+
/** Hoe de bevindingen zich verhouden tot de wijziging, geteld over álle bevindingen. */
|
|
29
|
+
export interface ChangedLinesSummary {
|
|
30
|
+
readonly onChangedLine: number;
|
|
31
|
+
readonly elsewhere: number;
|
|
32
|
+
/** Of de pagina beperkt is tot bevindingen op een gewijzigde regel. */
|
|
33
|
+
readonly onlyChangedLines: boolean;
|
|
15
34
|
}
|
|
16
35
|
/** Welk deel van de bevindingen dit antwoord bevat. */
|
|
17
36
|
export interface Page {
|
|
@@ -65,6 +84,8 @@ export interface Report {
|
|
|
65
84
|
readonly page: Page;
|
|
66
85
|
/** Op welke identifiers de pagina beperkt is, of null als er niet gefilterd is. */
|
|
67
86
|
readonly filter: readonly string[] | null;
|
|
87
|
+
/** Null als er geen wijziging is om tegen te leggen, zoals bij analyse_project. */
|
|
88
|
+
readonly changedLines: ChangedLinesSummary | null;
|
|
68
89
|
}
|
|
69
90
|
/** Waar in de bevindingenlijst dit antwoord begint en hoe lang het is. */
|
|
70
91
|
export interface Window {
|
|
@@ -76,15 +97,30 @@ export interface Window {
|
|
|
76
97
|
* "argumentx.iets"). De samenvatting blijft over álles rekenen.
|
|
77
98
|
*/
|
|
78
99
|
readonly identifiers?: readonly string[] | undefined;
|
|
100
|
+
/** Alleen bevindingen op een gewijzigde regel; doet niets zonder ChangedLineCheck. */
|
|
101
|
+
readonly onlyChangedLines?: boolean | undefined;
|
|
79
102
|
}
|
|
80
103
|
/**
|
|
81
104
|
* Zet een analyse om in het antwoord dat de tool teruggeeft: tellingen over alles,
|
|
82
105
|
* en maar één pagina bevindingen. De samenvatting rekent bewust over de volledige
|
|
83
106
|
* lijst — anders zou de tweede pagina andere totalen melden dan de eerste.
|
|
84
107
|
*/
|
|
85
|
-
export declare function buildReport(result: AnalysisResult, window?: Window, notices?: readonly string[]): Report;
|
|
86
|
-
/**
|
|
87
|
-
|
|
108
|
+
export declare function buildReport(result: AnalysisResult, window?: Window, notices?: readonly string[], onChangedLine?: ChangedLineCheck): Report;
|
|
109
|
+
/**
|
|
110
|
+
* Schrijft een rapport uit als tekst voor het model. Met een `runId` noemt de
|
|
111
|
+
* vervolgregel die erbij, zodat de volgende pagina uit hetzelfde resultaat komt.
|
|
112
|
+
*/
|
|
113
|
+
export declare function renderReport(report: Report, runId?: string): string;
|
|
114
|
+
/**
|
|
115
|
+
* Kapt een meldinglijst af op aantal en op lengte per melding. Het aantal
|
|
116
|
+
* weggelaten meldingen komt apart terug in plaats van als extra regel in de lijst:
|
|
117
|
+
* die lijst gaat ook als structuredContent naar buiten, en daar hoort geen
|
|
118
|
+
* verzonnen melding tussen te staan.
|
|
119
|
+
*/
|
|
120
|
+
export declare function limitMessages(messages: readonly string[]): {
|
|
121
|
+
kept: string[];
|
|
122
|
+
omitted: number;
|
|
123
|
+
};
|
|
88
124
|
/**
|
|
89
125
|
* Pad zoals het aan het model getoond wordt: relatief aan de projectroot, tenzij
|
|
90
126
|
* het bestand daarbuiten ligt. PHPStan rapporteert ook fouten in vendor/ of in
|