phpstan-mcp-mx 0.16.0 → 0.18.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 +17 -4
- package/README.md +53 -54
- package/dist/baseline.js +15 -11
- package/dist/baseline.js.map +1 -1
- package/dist/changed.js +11 -11
- package/dist/changed.js.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/defaults.js +11 -11
- package/dist/defaults.js.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/phpstan/output.js +2 -2
- package/dist/phpstan/output.js.map +1 -1
- package/dist/phpstan/parameters.js +10 -10
- package/dist/phpstan/parameters.js.map +1 -1
- package/dist/phpstan/process.js +2 -2
- package/dist/phpstan/process.js.map +1 -1
- package/dist/phpstan/queue.js +3 -3
- package/dist/phpstan/queue.js.map +1 -1
- package/dist/phpstan.d.ts +13 -0
- package/dist/phpstan.js +71 -36
- package/dist/phpstan.js.map +1 -1
- package/dist/project.js +12 -12
- package/dist/project.js.map +1 -1
- package/dist/report.js +31 -31
- package/dist/report.js.map +1 -1
- package/dist/roots.js +3 -3
- package/dist/roots.js.map +1 -1
- package/dist/runner.js +10 -10
- package/dist/runner.js.map +1 -1
- package/dist/server.js +3 -3
- package/dist/server.js.map +1 -1
- package/dist/tmpdir.js +4 -4
- package/dist/tmpdir.js.map +1 -1
- package/dist/tools/analysis.js +38 -38
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/inspect.js +85 -84
- package/dist/tools/inspect.js.map +1 -1
- package/dist/tools/prompts.js +163 -162
- package/dist/tools/prompts.js.map +1 -1
- package/dist/tools/shared.js +38 -38
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/writes.js +23 -23
- package/dist/tools/writes.js.map +1 -1
- package/dist/unmatched.d.ts +2 -2
- package/dist/unmatched.js +56 -49
- package/dist/unmatched.js.map +1 -1
- package/dist/version.d.ts +17 -4
- package/dist/version.js +27 -4
- package/dist/version.js.map +1 -1
- package/package.json +1 -2
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;QAClG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;CACF;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAcxC,+EAA+E;AAC/E,MAAM,IAAI,GAAuC,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAE7F,4EAA4E;AAC5E,iFAAiF;AACjF,qFAAqF;AACrF,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEjD,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACtE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3E,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAEtD,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,oBAAoB,CAC5B,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ async function main() {
|
|
|
14
14
|
// stdio: het protocol zelf loopt over stdout. Alles wat deze server logt moet
|
|
15
15
|
// daarom naar stderr — één console.log breekt de JSON-RPC-stroom.
|
|
16
16
|
await server.connect(new StdioServerTransport());
|
|
17
|
-
console.error(`phpstan-mcp ${VERSION}
|
|
17
|
+
console.error(`phpstan-mcp ${VERSION} listening on stdio, ${roots.length} root(s) configured` +
|
|
18
18
|
describeMemoryDefault() +
|
|
19
19
|
describeMaxParallel() +
|
|
20
20
|
describeTmpDir() +
|
|
@@ -29,10 +29,10 @@ async function main() {
|
|
|
29
29
|
function describeProjectDefaults() {
|
|
30
30
|
try {
|
|
31
31
|
const aantal = loadProjectDefaults().size;
|
|
32
|
-
return aantal === 0 ? '' : `,
|
|
32
|
+
return aantal === 0 ? '' : `, per-project defaults for ${String(aantal)} project(s)`;
|
|
33
33
|
}
|
|
34
34
|
catch (error) {
|
|
35
|
-
return `,
|
|
35
|
+
return `, WARNING: ${error instanceof Error ? error.message : String(error)}`;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
@@ -47,10 +47,10 @@ function describeProjectDefaults() {
|
|
|
47
47
|
*/
|
|
48
48
|
function describeTmpDir() {
|
|
49
49
|
try {
|
|
50
|
-
return loadTmpDirMode() === 'shared' ? ',
|
|
50
|
+
return loadTmpDirMode() === 'shared' ? ', shared temp directory' : '';
|
|
51
51
|
}
|
|
52
52
|
catch (error) {
|
|
53
|
-
return `,
|
|
53
|
+
return `, WARNING: ${error instanceof Error ? error.message : String(error)}`;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
@@ -60,35 +60,35 @@ function describeTmpDir() {
|
|
|
60
60
|
*/
|
|
61
61
|
function describeWrites() {
|
|
62
62
|
if (writesAllowed())
|
|
63
|
-
return ',
|
|
63
|
+
return ', writing tools on';
|
|
64
64
|
const configured = process.env[WRITES_ENV_VAR]?.trim();
|
|
65
65
|
return configured === undefined || configured === ''
|
|
66
66
|
? ''
|
|
67
|
-
: `,
|
|
67
|
+
: `, WARNING: ${WRITES_ENV_VAR} is set to "${configured}"; only "1" and "true" enable writing`;
|
|
68
68
|
}
|
|
69
69
|
/** Zelfde afweging als bij de geheugenlimiet: melden, niet fataal. */
|
|
70
70
|
function describeMaxParallel() {
|
|
71
71
|
try {
|
|
72
|
-
return `,
|
|
72
|
+
return `, at most ${String(loadMaxParallel())} at a time`;
|
|
73
73
|
}
|
|
74
74
|
catch (error) {
|
|
75
|
-
return `,
|
|
75
|
+
return `, WARNING: ${error instanceof Error ? error.message : String(error)}`;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
function describeMemoryDefault() {
|
|
79
79
|
try {
|
|
80
80
|
const limit = loadDefaultMemoryLimit();
|
|
81
|
-
return limit === undefined ? '' : `,
|
|
81
|
+
return limit === undefined ? '' : `, memory limit ${limit}`;
|
|
82
82
|
}
|
|
83
83
|
catch (error) {
|
|
84
|
-
return `,
|
|
84
|
+
return `, WARNING: ${error instanceof Error ? error.message : String(error)}`;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
main().catch((error) => {
|
|
88
88
|
// Een ToolFailure is een fout waar de gebruiker iets aan kan doen — meestal een
|
|
89
89
|
// instelling die niet klopt. Dan is de melding genoeg; de stack erbij maakt het
|
|
90
90
|
// alleen moeilijker te lezen in een clientlog.
|
|
91
|
-
console.error('phpstan-mcp
|
|
91
|
+
console.error('phpstan-mcp could not start:', error instanceof ToolFailure ? error.message : error);
|
|
92
92
|
process.exit(1);
|
|
93
93
|
});
|
|
94
94
|
//# sourceMappingURL=index.js.map
|
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,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/phpstan/output.js
CHANGED
|
@@ -121,7 +121,7 @@ export function condenseDetails(text, max = MAX_DETAIL_CHARS) {
|
|
|
121
121
|
const body = beknopt(dropTips(ontdubbeld.regels), max);
|
|
122
122
|
return ontdubbeld.weg === 0
|
|
123
123
|
? body
|
|
124
|
-
: `${body}\n\n… (${String(ontdubbeld.weg)}
|
|
124
|
+
: `${body}\n\n… (${String(ontdubbeld.weg)} identical line(s) from parallel workers omitted) …`;
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
127
127
|
* PHPStan forkt workers die élk het bootstrap-bestand uitvoeren. Klapt dat, dan
|
|
@@ -185,7 +185,7 @@ function beknopt(regels, max) {
|
|
|
185
185
|
/** Ruimte die de markering zelf inneemt, zodat het budget klopt. */
|
|
186
186
|
const MARKERING_RUIMTE = 40;
|
|
187
187
|
function weggelaten(aantal) {
|
|
188
|
-
return `… (${String(aantal)}
|
|
188
|
+
return `… (${String(aantal)} line(s) omitted) …`;
|
|
189
189
|
}
|
|
190
190
|
/** Laat het tips-blok weg: de kopregel plus de opsomming die eronder hangt. */
|
|
191
191
|
function dropTips(regels) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/phpstan/output.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/phpstan/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export function parseLenientJson(text) {
|
|
|
19
19
|
export function summariseParameters(stdout, display) {
|
|
20
20
|
const ruw = parseLenientJson(stdout);
|
|
21
21
|
if (typeof ruw !== 'object' || ruw === null || Array.isArray(ruw)) {
|
|
22
|
-
throw new Error('dump-parameters
|
|
22
|
+
throw new Error('dump-parameters did not return a JSON object');
|
|
23
23
|
}
|
|
24
24
|
const p = ruw;
|
|
25
25
|
const paths = strings(p['analysedPathsFromConfig']).length > 0 ? strings(p['analysedPathsFromConfig']) : strings(p['paths']);
|
|
@@ -44,19 +44,19 @@ export function summariseParameters(stdout, display) {
|
|
|
44
44
|
}
|
|
45
45
|
/** Schrijft de samenvatting uit, als aanvulling op PHPStans eigen diagnose. */
|
|
46
46
|
export function renderParameters(parameters) {
|
|
47
|
-
const lijst = (items) => (items.length === 0 ? '
|
|
47
|
+
const lijst = (items) => (items.length === 0 ? 'none' : items.join(', '));
|
|
48
48
|
const melden = parameters.reportUnmatchedIgnoredErrors === null
|
|
49
49
|
? ''
|
|
50
50
|
: parameters.reportUnmatchedIgnoredErrors
|
|
51
|
-
? ' (
|
|
52
|
-
: ' (
|
|
51
|
+
? ' (stale ones are reported)'
|
|
52
|
+
: ' (stale ones are NOT reported; unmatched_ignores finds them)';
|
|
53
53
|
return [
|
|
54
|
-
'
|
|
55
|
-
` Level: ${parameters.level === null ? '
|
|
56
|
-
`
|
|
57
|
-
`
|
|
58
|
-
`
|
|
59
|
-
`
|
|
54
|
+
'Effective configuration, according to PHPStan itself:',
|
|
55
|
+
` Level: ${parameters.level === null ? 'unknown' : String(parameters.level)}`,
|
|
56
|
+
` Paths: ${lijst(parameters.paths)}`,
|
|
57
|
+
` Excluded: ${lijst(parameters.excludePaths)}`,
|
|
58
|
+
` Ignore rules: ${String(parameters.ignoreErrors)}${melden}`,
|
|
59
|
+
` Temp directory: ${parameters.tmpDir ?? 'unknown'}`,
|
|
60
60
|
` Bootstrap: ${lijst(parameters.bootstrapFiles)}`,
|
|
61
61
|
].join('\n');
|
|
62
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/phpstan/parameters.ts"],"names":[],"mappings":"AAwBA;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAC1F,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CACvD,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAAiC;IACnF,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/phpstan/parameters.ts"],"names":[],"mappings":"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"}
|
package/dist/phpstan/process.js
CHANGED
|
@@ -121,7 +121,7 @@ export function carryOutKill(pid, plan) {
|
|
|
121
121
|
killer.on('error', (error) => { reportKillFailure(pid, error); });
|
|
122
122
|
killer.on('exit', (code) => {
|
|
123
123
|
if (code !== 0 && code !== TASKKILL_NOT_FOUND) {
|
|
124
|
-
reportKillFailure(pid, new Error(`${plan.command}
|
|
124
|
+
reportKillFailure(pid, new Error(`${plan.command} exited with code ${String(code)}`));
|
|
125
125
|
}
|
|
126
126
|
});
|
|
127
127
|
return;
|
|
@@ -150,6 +150,6 @@ export function isReportableKillError(error) {
|
|
|
150
150
|
*/
|
|
151
151
|
function reportKillFailure(pid, error) {
|
|
152
152
|
const reason = error instanceof Error ? error.message : String(error);
|
|
153
|
-
console.error(`phpstan-mcp
|
|
153
|
+
console.error(`phpstan-mcp could not clean up process group ${String(pid)}: ${reason}`);
|
|
154
154
|
}
|
|
155
155
|
//# sourceMappingURL=process.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/phpstan/process.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/phpstan/process.ts"],"names":[],"mappings":"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"}
|
package/dist/phpstan/queue.js
CHANGED
|
@@ -20,8 +20,8 @@ export function loadMaxParallel(env = process.env) {
|
|
|
20
20
|
return DEFAULT_MAX_PARALLEL;
|
|
21
21
|
const parsed = Number(configured);
|
|
22
22
|
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
23
|
-
throw new PhpstanError(`${MAX_PARALLEL_ENV_VAR}
|
|
24
|
-
`
|
|
23
|
+
throw new PhpstanError(`${MAX_PARALLEL_ENV_VAR} is set to "${configured}", and that is not a whole number of 1 or more. ` +
|
|
24
|
+
`Leave it out for the default (${String(DEFAULT_MAX_PARALLEL)}).`);
|
|
25
25
|
}
|
|
26
26
|
return parsed;
|
|
27
27
|
}
|
|
@@ -52,7 +52,7 @@ export async function withSlot(task) {
|
|
|
52
52
|
/** Stopt vóór er iets gestart wordt als de aanroeper het verzoek al heeft afgebroken. */
|
|
53
53
|
export function throwIfAborted(project, signal) {
|
|
54
54
|
if (signal?.aborted === true) {
|
|
55
|
-
throw new PhpstanError(`
|
|
55
|
+
throw new PhpstanError(`The analysis of ${project} was not started: the request had already been cancelled.`);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
/** Lopende analyses per projectpad, zodat aanroepen per project op volgorde gaan. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/phpstan/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACzF,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,oBAAoB,CAAC;IAE/E,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,YAAY,CACpB,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/phpstan/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACzF,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,oBAAoB,CAAC;IAE/E,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,YAAY,CACpB,GAAG,oBAAoB,eAAe,UAAU,kDAAkD;YAChG,iCAAiC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CACpE,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qEAAqE;AACrE,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,MAAM,OAAO,GAAmB,EAAE,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,IAAsB;IACtD,gFAAgF;IAChF,yDAAyD;IACzD,OAAO,OAAO,IAAI,eAAe,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,IAAI,CAAC,CAAC;IACb,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,OAAO,IAAI,CAAC,CAAC;QACb,uEAAuE;QACvE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,MAA+B;IAC7E,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,YAAY,CAAC,mBAAmB,OAAO,2DAA2D,CAAC,CAAC;IAChH,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAI,GAAW,EAAE,IAAsB;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACtD,iFAAiF;IACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAE3C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QAClB,sEAAsE;QACtE,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/phpstan.d.ts
CHANGED
|
@@ -73,6 +73,19 @@ export interface BaselineGenerated {
|
|
|
73
73
|
* alleen bereikbaar als de server met schrijfrechten gestart is.
|
|
74
74
|
*/
|
|
75
75
|
export declare function generateBaseline(project: ResolvedProject, options: GenerateBaselineOptions): Promise<BaselineGenerated>;
|
|
76
|
+
/**
|
|
77
|
+
* Zet een bestand in de tijdelijke map van de omgeving waar PHPStan voor dit project
|
|
78
|
+
* draait, en geeft het pad dáár terug.
|
|
79
|
+
*
|
|
80
|
+
* Nodig voor `unmatched_ignores`: die heeft een tijdelijke config, en een bestand op de
|
|
81
|
+
* host ziet een container niet — alleen de projectmap is gemount. Het ín het project
|
|
82
|
+
* zetten zou wel werken, maar dan schrijft een read-only tool in de repository. Gemeten
|
|
83
|
+
* in een echte container: PHPStan leest geen config van stdin (`/dev/stdin` en
|
|
84
|
+
* `php://stdin` gelden voor PHPStan als "does not exist"), en `/tmp` van de container is
|
|
85
|
+
* schrijfbaar. Werkt met elk runner-commando dat een programma kan starten (docker
|
|
86
|
+
* exec, ssh, wsl), zolang daar een `sh` is.
|
|
87
|
+
*/
|
|
88
|
+
export declare function writeInRunner(project: ResolvedProject, name: string, content: string, options?: Pick<AnalyseOptions, 'timeoutMs' | 'signal'>): Promise<string>;
|
|
76
89
|
/**
|
|
77
90
|
* Draait `phpstan diagnose` in één project: PHP- en PHPStan-versie, de configs die
|
|
78
91
|
* Composer-pakketten meebrengen, en of de turbo-extensie aanstaat. Geen analyse, dus
|
package/dist/phpstan.js
CHANGED
|
@@ -39,8 +39,8 @@ export async function clearResultCache(project, options = {}) {
|
|
|
39
39
|
const execution = await runPhpstan(project, args, timeoutFor(project, options), options.signal);
|
|
40
40
|
const output = execution.stdout.trim();
|
|
41
41
|
if (execution.code !== 0 || output === '') {
|
|
42
|
-
throw new PhpstanError(`PHPStan
|
|
43
|
-
(execution.stderr.trim() || output || '
|
|
42
|
+
throw new PhpstanError(`PHPStan could not clear the result cache of ${project.path} (exit code ${execution.code ?? '?'}).\n\n` +
|
|
43
|
+
(execution.stderr.trim() || output || 'No output on stdout or stderr.'));
|
|
44
44
|
}
|
|
45
45
|
return { project: project.path, output };
|
|
46
46
|
}));
|
|
@@ -64,8 +64,8 @@ export async function generateBaseline(project, options) {
|
|
|
64
64
|
const output = condenseDetails(execution.stdout.trim() || execution.stderr.trim());
|
|
65
65
|
const match = /Baseline generated with (\d+) error/i.exec(output);
|
|
66
66
|
if (match === null) {
|
|
67
|
-
throw new PhpstanError(`PHPStan
|
|
68
|
-
(output === '' ? '
|
|
67
|
+
throw new PhpstanError(`PHPStan did not write a baseline in ${project.path}.\n\n` +
|
|
68
|
+
(output === '' ? 'No output on stdout or stderr.' : output));
|
|
69
69
|
}
|
|
70
70
|
return { project: project.path, file: options.file, errors: Number(match[1]), output };
|
|
71
71
|
}));
|
|
@@ -133,11 +133,46 @@ function vertaalResultaat(result, project, runner) {
|
|
|
133
133
|
/** Weigert een project zonder PHPStan met de melding die zegt wat er wél kan. */
|
|
134
134
|
function requireBinary(project) {
|
|
135
135
|
if (project.binary === null) {
|
|
136
|
-
throw new PhpstanError(`PHPStan is
|
|
137
|
-
'
|
|
136
|
+
throw new PhpstanError(`PHPStan is not installed in ${project.path} (vendor/bin/phpstan is missing). ` +
|
|
137
|
+
'Run `composer install` there first.', 'phpstan_missing', { hint: 'Run `composer install` in this project.' });
|
|
138
138
|
}
|
|
139
139
|
return project.binary;
|
|
140
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Het script dat een bestand in de tijdelijke map van de runner-omgeving zet en het pad
|
|
143
|
+
* teruggeeft. Inhoud en naam komen als `$1` en `$2` binnen en staan niet in het script
|
|
144
|
+
* zelf, dus er valt niets te injecteren. Via argumenten en niet via stdin: een
|
|
145
|
+
* runner-commando van een gebruiker heeft vaak geen `-i`, en dan komt stdin niet aan.
|
|
146
|
+
* Eerst naar een tijdelijke naam en dan `mv`, net als de rename op de host: een tweede
|
|
147
|
+
* aanroep op hetzelfde project mag geen half bestand achterlaten voor een PHPStan die leest.
|
|
148
|
+
*/
|
|
149
|
+
const WRITE_IN_RUNNER = 'd="${TMPDIR:-/tmp}"; f="$d/$2"; printf "%s" "$1" > "$f.$$" && mv "$f.$$" "$f" && printf "%s" "$f"';
|
|
150
|
+
/**
|
|
151
|
+
* Zet een bestand in de tijdelijke map van de omgeving waar PHPStan voor dit project
|
|
152
|
+
* draait, en geeft het pad dáár terug.
|
|
153
|
+
*
|
|
154
|
+
* Nodig voor `unmatched_ignores`: die heeft een tijdelijke config, en een bestand op de
|
|
155
|
+
* host ziet een container niet — alleen de projectmap is gemount. Het ín het project
|
|
156
|
+
* zetten zou wel werken, maar dan schrijft een read-only tool in de repository. Gemeten
|
|
157
|
+
* in een echte container: PHPStan leest geen config van stdin (`/dev/stdin` en
|
|
158
|
+
* `php://stdin` gelden voor PHPStan als "does not exist"), en `/tmp` van de container is
|
|
159
|
+
* schrijfbaar. Werkt met elk runner-commando dat een programma kan starten (docker
|
|
160
|
+
* exec, ssh, wsl), zolang daar een `sh` is.
|
|
161
|
+
*/
|
|
162
|
+
export async function writeInRunner(project, name, content, options = {}) {
|
|
163
|
+
const runner = runnerFor(project.path);
|
|
164
|
+
if (runner === null)
|
|
165
|
+
throw new Error('writeInRunner is only for a project with a runner');
|
|
166
|
+
const [file, ...prefix] = runner.command;
|
|
167
|
+
const execution = await execute(file, [...prefix, 'sh', '-c', WRITE_IN_RUNNER, 'sh', content, name], project.path, timeoutFor(project, options), options.signal);
|
|
168
|
+
const pad = execution.stdout.trim();
|
|
169
|
+
if (execution.spawnError !== null || execution.code !== 0 || !pad.startsWith('/')) {
|
|
170
|
+
const details = condenseDetails(execution.stderr.trim()) || 'no output';
|
|
171
|
+
throw new PhpstanError(`The temporary config could not be written in the runner of ${project.path} ` +
|
|
172
|
+
`(exit code ${execution.code ?? '?'}): ${details}. This needs an \`sh\` in that runner.`, 'unsupported_with_runner', { exitCode: execution.code, hint: 'Check that the runner has an sh and a writable temp directory.' });
|
|
173
|
+
}
|
|
174
|
+
return pad;
|
|
175
|
+
}
|
|
141
176
|
/**
|
|
142
177
|
* Draait `phpstan diagnose` in één project: PHP- en PHPStan-versie, de configs die
|
|
143
178
|
* Composer-pakketten meebrengen, en of de turbo-extensie aanstaat. Geen analyse, dus
|
|
@@ -154,15 +189,15 @@ export async function diagnose(project, options = {}) {
|
|
|
154
189
|
throwIfAborted(project.path, options.signal);
|
|
155
190
|
const execution = await runPhpstan(project, ['diagnose', '--no-ansi'], timeoutFor(project, options), options.signal);
|
|
156
191
|
if (execution.spawnError !== null) {
|
|
157
|
-
throw new PhpstanError(`PHPStan
|
|
192
|
+
throw new PhpstanError(`PHPStan could not be started in ${project.path}: ${execution.spawnError.message}`);
|
|
158
193
|
}
|
|
159
194
|
// Met dezelfde redenen als bij een analyse: zonder viel een timeout hier terug op
|
|
160
195
|
// phpstan_failed, en dan weet een aanroeper niet dat opnieuw met meer tijd helpt.
|
|
161
196
|
if (execution.signal !== null) {
|
|
162
197
|
const geannuleerd = execution.reason === 'geannuleerd';
|
|
163
198
|
throw new PhpstanError(geannuleerd
|
|
164
|
-
? `
|
|
165
|
-
: `
|
|
199
|
+
? `The diagnosis of ${project.path} was stopped because the request was cancelled.`
|
|
200
|
+
: `The diagnosis of ${project.path} was stopped (signal ${execution.signal}).`, geannuleerd ? 'cancelled' : 'timeout', geannuleerd ? {} : { hint: 'Raise timeoutSeconds.' });
|
|
166
201
|
}
|
|
167
202
|
// diagnose zet zijn rapport op stdout en alleen de configuratieregel op stderr.
|
|
168
203
|
// Een lege stdout betekent dus dat er iets anders mis is; dan is PHPStans eigen
|
|
@@ -174,11 +209,11 @@ export async function diagnose(project, options = {}) {
|
|
|
174
209
|
// tekst letterlijk "bootstrap failed" zei — gezien op een project zonder ext-redis.
|
|
175
210
|
const details = condenseDetails(execution.stderr.trim());
|
|
176
211
|
const bootstrap = /bootstrap failed|unable to bootstrap/i.test(details);
|
|
177
|
-
throw new PhpstanError(`PHPStan
|
|
178
|
-
(details || '
|
|
212
|
+
throw new PhpstanError(`PHPStan returned no diagnosis in ${project.path} (exit code ${execution.code ?? '?'}).\n\n` +
|
|
213
|
+
(details || 'No output on stdout or stderr.'), bootstrap ? 'bootstrap_failed' : 'phpstan_failed', {
|
|
179
214
|
exitCode: execution.code,
|
|
180
215
|
...(bootstrap
|
|
181
|
-
? { hint: `
|
|
216
|
+
? { hint: `The application does not start in this environment; with ${RUNNERS_ENV_VAR}, PHPStan runs where it does.` }
|
|
182
217
|
: {}),
|
|
183
218
|
});
|
|
184
219
|
}
|
|
@@ -202,7 +237,7 @@ async function effectiveParameters(project, timeoutMs, signal) {
|
|
|
202
237
|
if (execution.code !== 0 || execution.stdout.trim() === '') {
|
|
203
238
|
return {
|
|
204
239
|
parameters: null,
|
|
205
|
-
parametersProblem: `PHPStan
|
|
240
|
+
parametersProblem: `PHPStan could not report its configuration (exit code ${execution.code ?? '?'})` +
|
|
206
241
|
(toelichting === undefined ? '.' : `: ${toelichting.trim()}`),
|
|
207
242
|
};
|
|
208
243
|
}
|
|
@@ -215,7 +250,7 @@ async function effectiveParameters(project, timeoutMs, signal) {
|
|
|
215
250
|
catch (error) {
|
|
216
251
|
return {
|
|
217
252
|
parameters: null,
|
|
218
|
-
parametersProblem: `
|
|
253
|
+
parametersProblem: `PHPStan's configuration could not be read: ${error instanceof Error ? error.message : String(error)}`,
|
|
219
254
|
};
|
|
220
255
|
}
|
|
221
256
|
}
|
|
@@ -241,15 +276,15 @@ async function run(project, options) {
|
|
|
241
276
|
throwIfAborted(project.path, options.signal);
|
|
242
277
|
const execution = await runPhpstan(project, args, timeoutMs, options.signal);
|
|
243
278
|
if (execution.spawnError !== null) {
|
|
244
|
-
throw new PhpstanError(`PHPStan
|
|
279
|
+
throw new PhpstanError(`PHPStan could not be started in ${project.path}: ${execution.spawnError.message}`);
|
|
245
280
|
}
|
|
246
281
|
if (execution.signal !== null) {
|
|
247
282
|
throw new PhpstanError(execution.reason === 'geannuleerd'
|
|
248
|
-
? `
|
|
249
|
-
: `
|
|
250
|
-
`(
|
|
283
|
+
? `The analysis of ${project.path} was stopped because the request was cancelled.`
|
|
284
|
+
: `The analysis of ${project.path} was stopped after ${Math.round(timeoutMs / 1000)}s ` +
|
|
285
|
+
`(signal ${execution.signal}). Analyse a smaller part of the project, or raise timeoutSeconds.`, execution.reason === 'geannuleerd' ? 'cancelled' : 'timeout', execution.reason === 'geannuleerd'
|
|
251
286
|
? {}
|
|
252
|
-
: { hint: '
|
|
287
|
+
: { hint: 'Analyse a smaller part, or raise timeoutSeconds.' });
|
|
253
288
|
}
|
|
254
289
|
// Eerst proberen te parsen, pas daarna naar de exit code kijken: PHPStan geeft
|
|
255
290
|
// ook exit code 1 als het gewoon fouten gevonden heeft, en meldt configuratie-
|
|
@@ -274,8 +309,8 @@ export function loadDefaultMemoryLimit(env = process.env) {
|
|
|
274
309
|
if (configured === undefined || configured === '')
|
|
275
310
|
return undefined;
|
|
276
311
|
if (!isValidMemoryLimit(configured)) {
|
|
277
|
-
throw new PhpstanError(`${MEMORY_LIMIT_ENV_VAR}
|
|
278
|
-
'
|
|
312
|
+
throw new PhpstanError(`${MEMORY_LIMIT_ENV_VAR} is set to "${configured}", and PHPStan does not accept that format. ` +
|
|
313
|
+
'Use a number with an optional K, M or G (e.g. "1G"), or -1 for no limit.');
|
|
279
314
|
}
|
|
280
315
|
return configured;
|
|
281
316
|
}
|
|
@@ -317,7 +352,7 @@ function defaultConfig(project) {
|
|
|
317
352
|
catch (error) {
|
|
318
353
|
if (!(error instanceof ProjectError))
|
|
319
354
|
throw error;
|
|
320
|
-
throw new ProjectDefaultsError(`${PROJECTS_ENV_VAR}:
|
|
355
|
+
throw new ProjectDefaultsError(`${PROJECTS_ENV_VAR}: the config "${config}" for ${project.path} cannot be used. ${error.message}`);
|
|
321
356
|
}
|
|
322
357
|
}
|
|
323
358
|
/**
|
|
@@ -363,7 +398,7 @@ function targets(project, options) {
|
|
|
363
398
|
// duidelijke melding beter dan PHPStans eigen usage-tekst.
|
|
364
399
|
const paths = options.paths ?? [];
|
|
365
400
|
if (paths.length === 0 && project.config === null) {
|
|
366
|
-
throw new PhpstanError(`${project.path}
|
|
401
|
+
throw new PhpstanError(`${project.path} has no phpstan.neon(.dist). Pass paths explicitly, or create a config.`, 'config_missing', { hint: 'Pass paths, or create a phpstan.neon in the project.' });
|
|
367
402
|
}
|
|
368
403
|
return paths;
|
|
369
404
|
}
|
|
@@ -381,9 +416,9 @@ function describeFailure(project, execution) {
|
|
|
381
416
|
// waarde en geen volgelopen geheugen. Eerst afvangen, anders krijgt het model de
|
|
382
417
|
// raad een limiet mee te geven die het net al meegaf.
|
|
383
418
|
if (/invalid memory limit/i.test(details)) {
|
|
384
|
-
const hint = `
|
|
419
|
+
const hint = `Check memoryLimit or ${MEMORY_LIMIT_ENV_VAR}.`;
|
|
385
420
|
return {
|
|
386
|
-
message: `PHPStan
|
|
421
|
+
message: `PHPStan did not accept the given memory limit in ${project.path}. ${hint}\n\n${details}`,
|
|
387
422
|
reason: 'invalid_setting',
|
|
388
423
|
details: { ...gemeen, hint },
|
|
389
424
|
};
|
|
@@ -391,9 +426,9 @@ function describeFailure(project, execution) {
|
|
|
391
426
|
// PHPStan meldt dit op twee manieren: PHP's eigen "Allowed memory size ...
|
|
392
427
|
// exhausted", en PHPStans eigen "reached configured PHP memory limit: 128M".
|
|
393
428
|
if (/allowed memory size|memory[_ ]limit/i.test(details)) {
|
|
394
|
-
const hint = '
|
|
429
|
+
const hint = 'Pass memoryLimit (e.g. "1G") or analyse a smaller part.';
|
|
395
430
|
return {
|
|
396
|
-
message: `PHPStan
|
|
431
|
+
message: `PHPStan ran into the PHP memory limit in ${project.path}. ${hint}\n\n${details}`,
|
|
397
432
|
reason: 'memory_limit',
|
|
398
433
|
details: { ...gemeen, hint },
|
|
399
434
|
};
|
|
@@ -409,16 +444,16 @@ function describeFailure(project, execution) {
|
|
|
409
444
|
// PHP-, PHPStan- en Larastan-versie liet zien als in een shell waar het wél werkte.
|
|
410
445
|
const bootstrap = /bootstrap failed|unable to bootstrap/i.test(details);
|
|
411
446
|
const hint = bootstrap
|
|
412
|
-
? '
|
|
413
|
-
'configs
|
|
414
|
-
'
|
|
415
|
-
: '
|
|
416
|
-
'
|
|
417
|
-
'clear_result_cache:
|
|
418
|
-
'
|
|
447
|
+
? 'Run diagnose_project on this project: it shows the PHP version, the extensions and the ' +
|
|
448
|
+
'configs involved, and that output is not truncated. If the application does not start ' +
|
|
449
|
+
'in this environment, a runner where it does is the next step.'
|
|
450
|
+
: 'Run diagnose_project if it is unclear why this project behaves differently. ' +
|
|
451
|
+
'If that shows nothing unusual and it worked before, clear the result cache with ' +
|
|
452
|
+
'clear_result_cache: a stale cache can make PHPStan crash with a message that ' +
|
|
453
|
+
'seems to make no sense.';
|
|
419
454
|
return {
|
|
420
|
-
message: `PHPStan
|
|
421
|
-
(details === '' ? '
|
|
455
|
+
message: `PHPStan returned no usable JSON in ${project.path} (exit code ${execution.code ?? '?'}).\n\n` +
|
|
456
|
+
(details === '' ? 'No output on stdout or stderr.' : details) +
|
|
422
457
|
`\n\n${hint}`,
|
|
423
458
|
reason: bootstrap ? 'bootstrap_failed' : 'unusable_output',
|
|
424
459
|
details: { ...gemeen, hint },
|