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.
Files changed (52) hide show
  1. package/CHANGELOG.md +17 -4
  2. package/README.md +53 -54
  3. package/dist/baseline.js +15 -11
  4. package/dist/baseline.js.map +1 -1
  5. package/dist/changed.js +11 -11
  6. package/dist/changed.js.map +1 -1
  7. package/dist/config.js +2 -2
  8. package/dist/config.js.map +1 -1
  9. package/dist/defaults.js +11 -11
  10. package/dist/defaults.js.map +1 -1
  11. package/dist/index.js +12 -12
  12. package/dist/index.js.map +1 -1
  13. package/dist/phpstan/output.js +2 -2
  14. package/dist/phpstan/output.js.map +1 -1
  15. package/dist/phpstan/parameters.js +10 -10
  16. package/dist/phpstan/parameters.js.map +1 -1
  17. package/dist/phpstan/process.js +2 -2
  18. package/dist/phpstan/process.js.map +1 -1
  19. package/dist/phpstan/queue.js +3 -3
  20. package/dist/phpstan/queue.js.map +1 -1
  21. package/dist/phpstan.d.ts +13 -0
  22. package/dist/phpstan.js +71 -36
  23. package/dist/phpstan.js.map +1 -1
  24. package/dist/project.js +12 -12
  25. package/dist/project.js.map +1 -1
  26. package/dist/report.js +31 -31
  27. package/dist/report.js.map +1 -1
  28. package/dist/roots.js +3 -3
  29. package/dist/roots.js.map +1 -1
  30. package/dist/runner.js +10 -10
  31. package/dist/runner.js.map +1 -1
  32. package/dist/server.js +3 -3
  33. package/dist/server.js.map +1 -1
  34. package/dist/tmpdir.js +4 -4
  35. package/dist/tmpdir.js.map +1 -1
  36. package/dist/tools/analysis.js +38 -38
  37. package/dist/tools/analysis.js.map +1 -1
  38. package/dist/tools/inspect.js +85 -84
  39. package/dist/tools/inspect.js.map +1 -1
  40. package/dist/tools/prompts.js +163 -162
  41. package/dist/tools/prompts.js.map +1 -1
  42. package/dist/tools/shared.js +38 -38
  43. package/dist/tools/shared.js.map +1 -1
  44. package/dist/tools/writes.js +23 -23
  45. package/dist/tools/writes.js.map +1 -1
  46. package/dist/unmatched.d.ts +2 -2
  47. package/dist/unmatched.js +56 -49
  48. package/dist/unmatched.js.map +1 -1
  49. package/dist/version.d.ts +17 -4
  50. package/dist/version.js +27 -4
  51. package/dist/version.js.map +1 -1
  52. package/package.json +1 -2
package/dist/unmatched.js CHANGED
@@ -1,10 +1,11 @@
1
+ import { createHash } from 'node:crypto';
1
2
  import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
2
3
  import { join, normalize, relative } from 'node:path';
3
4
  import { readIncludedBaselines } from './baseline.js';
4
- import { PhpstanError, analyse } from './phpstan.js';
5
+ import { PhpstanError, analyse, writeInRunner } from './phpstan.js';
5
6
  import { resolveWithin } from './project.js';
6
7
  import { DEFAULT_LIMIT, MAX_LIMIT, displayPath, limitMessages } from './report.js';
7
- import { runnerFor } from './runner.js';
8
+ import { naarOmgeving, runnerFor } from './runner.js';
8
9
  import { TmpDirError, projectTmpDir } from './tmpdir.js';
9
10
  /** Naam van de tijdelijke config, in de tijdelijke map van het project. */
10
11
  const CONFIG_NAME = 'unmatched-ignores.neon';
@@ -18,34 +19,38 @@ const MAX_PATTERN_CHARS = 300;
18
19
  *
19
20
  * Via een tijdelijke config die de projectconfig includeert, want PHPStan kent er
20
21
  * geen vlag voor en neemt maar één `--configuration`. Die config staat in de
21
- * tijdelijke map van het project en niet in het project zelf: dan blijft dit een
22
- * read-only tool.
22
+ * tijdelijke map van het project met een runner die van díe omgeving en niet in
23
+ * het project zelf: dan blijft dit een read-only tool.
23
24
  *
24
25
  * Bewust geen `level` en geen `paths`. Op een ander niveau zijn het andere fouten,
25
26
  * en bij een deel van het project lijkt alles buiten dat deel verouderd — in beide
26
27
  * gevallen klopt de uitslag niet meer met de baseline die je wilt opschonen.
27
28
  */
28
29
  export async function findUnmatchedIgnores(project, options = {}, window = {}) {
29
- // De tijdelijke config staat op de host. Een runner draait PHPStan in een andere
30
- // omgeving, waar dat pad niet bestaat; hem ín het project zetten zou wel werken,
31
- // maar dan schrijft een read-only tool in de repository.
32
- if (runnerFor(project.path) !== null) {
33
- throw new PhpstanError(`${project.path} draait PHPStan in een eigen omgeving, en daar kan deze tool niet bij de ` +
34
- 'tijdelijke config die hij nodig heeft. Zet reportUnmatchedIgnoredErrors tijdelijk aan ' +
35
- 'in de config van het project en draai analyse_project, of gebruik baseline_summary ' +
36
- 'om te zien wat de baseline bevat.', 'unsupported_with_runner', { hint: 'Gebruik analyse_project met reportUnmatchedIgnoredErrors aan in de projectconfig.' });
37
- }
38
30
  const baselines = readIncludedBaselines(project);
39
31
  // Zonder config zijn er ook geen negeerregels: dat is een uitkomst, geen storing.
40
32
  if (project.config === null) {
41
33
  return buildUnmatchedReport(project.path, emptyResult(project.path), baselines, window, [
42
- `${project.path} heeft geen phpstan.neon(.dist); zonder config zijn er geen negeerregels om te controleren.`,
34
+ `${project.path} has no phpstan.neon(.dist); without a config there are no ignore rules to check.`,
43
35
  ]);
44
36
  }
45
- const config = writeUnmatchedConfig(project, project.config);
37
+ // Met een runner draait PHPStan in een omgeving die de tijdelijke map van de host niet
38
+ // ziet; dan komt de config in de tijdelijke map van díe omgeving, met het include-pad
39
+ // zoals het daar heet. Ín het project zetten zou ook werken, maar dan schrijft een
40
+ // read-only tool in de repository.
41
+ const runner = runnerFor(project.path);
42
+ const config = runner === null
43
+ ? writeUnmatchedConfig(project, project.config)
44
+ : await writeInRunner(project, `${CONFIG_PREFIX}-${projectHash(project.path)}.neon`, unmatchedConfig(naarOmgeving(runner, project.path, resolveWithin(project, project.config))), options);
46
45
  const result = await analyse(project, { ...options, config });
47
46
  return buildUnmatchedReport(project.path, result, baselines, window);
48
47
  }
48
+ /** Begin van de naam van de tijdelijke config in de omgeving van een runner. */
49
+ const CONFIG_PREFIX = 'phpstan-mcp-unmatched';
50
+ /** Een korte hash van het projectpad: twee projecten in één omgeving delen anders één bestand. */
51
+ function projectHash(path) {
52
+ return createHash('sha256').update(path).digest('hex').slice(0, 12);
53
+ }
49
54
  const emptyResult = (project) => ({
50
55
  project,
51
56
  findings: [],
@@ -61,7 +66,7 @@ const emptyResult = (project) => ({
61
66
  */
62
67
  export function unmatchedConfig(configPath) {
63
68
  if (/[\r\n]/.test(configPath)) {
64
- throw new PhpstanError(`Het pad ${JSON.stringify(configPath)} bevat een regeleinde en kan niet in een config gezet worden.`);
69
+ throw new PhpstanError(`The path ${JSON.stringify(configPath)} contains a line break and cannot be put in a config.`);
65
70
  }
66
71
  const quoted = `'${configPath.replace(/'/g, "''").replace(/%/g, '%%')}'`;
67
72
  return ['includes:', `\t- ${quoted}`, '', 'parameters:', '\treportUnmatchedIgnoredErrors: true', ''].join('\n');
@@ -92,7 +97,7 @@ function writeUnmatchedConfig(project, configName) {
92
97
  renameSync(tmp, file);
93
98
  }
94
99
  catch (error) {
95
- throw new TmpDirError(`De tijdelijke config ${file} kon niet geschreven worden: ` +
100
+ throw new TmpDirError(`The temporary config ${file} could not be written: ` +
96
101
  `${error instanceof Error ? error.message : String(error)}.`);
97
102
  }
98
103
  return file;
@@ -100,7 +105,7 @@ function writeUnmatchedConfig(project, configName) {
100
105
  /** Eindigt de melding van een regel die niets meer matcht. */
101
106
  const UNMATCHED_SUFFIX = ' was not matched in reported errors.';
102
107
  /** Eindigt de melding van een regel die minder vaak voorkomt dan zijn `count`. */
103
- const COUNT_SUFFIX = /^ is expected to occur (\d+) times?, but occurred only (\d+) times?\.$/;
108
+ const COUNT_SUFFIX = / is expected to occur (\d+) times?, but occurred only (\d+) times?\.$/;
104
109
  /** Een algemeen patroon, zonder pad: dat komt als algemene fout en niet bij een bestand. */
105
110
  const GENERAL_UNMATCHED = /^Ignored error pattern (.+) was not matched in reported errors\.$/s;
106
111
  /**
@@ -141,8 +146,9 @@ export function buildUnmatchedReport(project, result, baselines, window = {}, no
141
146
  const warnings = limitMessages(result.warnings);
142
147
  const allNotices = [...notices];
143
148
  if (baselines.unreadable.length > 0) {
144
- allNotices.push(`${baselines.unreadable.join(', ')} doet mee maar is niet te lezen; of een regel daaruit komt, ` +
145
- 'staat dan op onbekend.');
149
+ const een = baselines.unreadable.length === 1;
150
+ allNotices.push(`${baselines.unreadable.join(', ')} ${een ? 'is' : 'are'} included but cannot be read, so whether ` +
151
+ `a rule comes from ${een ? 'it' : 'them'} is unknown.`);
146
152
  }
147
153
  return {
148
154
  project,
@@ -179,10 +185,11 @@ function toStale(project, finding, baselines) {
179
185
  : null;
180
186
  if (kind === null)
181
187
  return null;
182
- // Het pad staat letterlijk in de melding, en PHPStan hangt de bevinding aan
183
- // datzelfde bestand. Op die markering knippen is betrouwbaarder dan de hele
184
- // melding met één regex lezen: het patroon zelf kan van alles bevatten.
185
- const marker = ` in path ${finding.file}`;
188
+ // Op de láátste " in path " knippen is betrouwbaarder dan de hele melding met één
189
+ // regex lezen: het patroon zelf kan van alles bevatten. Niet op " in path " plus
190
+ // finding.file: met een runner staat in de melding het pad in de container, terwijl
191
+ // finding.file al naar de host vertaald is — dan werd de markering nooit gevonden.
192
+ const marker = ' in path ';
186
193
  const at = finding.message.lastIndexOf(marker);
187
194
  const head = at === -1 ? finding.message : finding.message.slice(0, at);
188
195
  const tail = at === -1 ? '' : finding.message.slice(at + marker.length);
@@ -214,48 +221,48 @@ function inBaseline(path, identifier, baselines) {
214
221
  export function renderUnmatched(report) {
215
222
  const lines = [];
216
223
  if (report.warnings.length > 0) {
217
- lines.push('LET OP — PHPStan meldde dit naast het resultaat:');
224
+ lines.push('WARNING — PHPStan reported this alongside the result:');
218
225
  for (const warning of report.warnings)
219
226
  lines.push(`- ${warning}`);
220
227
  if (report.omitted.warnings > 0)
221
- lines.push(`- (nog ${report.omitted.warnings} melding(en) niet getoond)`);
222
- lines.push('Bij een onvolledige analyse kan PHPStan verouderde regels missen; een korte lijst hieronder is dan geen bewijs.', '');
228
+ lines.push(`- (${report.omitted.warnings} more message(s) not shown)`);
229
+ lines.push('When the analysis is incomplete, PHPStan can miss stale rules; a short list below then proves nothing.', '');
223
230
  }
224
231
  if (report.notices.length > 0) {
225
- lines.push('Ter info:');
232
+ lines.push('Note:');
226
233
  for (const notice of report.notices)
227
234
  lines.push(`- ${notice}`);
228
235
  lines.push('');
229
236
  }
230
237
  if (report.generalErrors.length > 0) {
231
- lines.push('Fouten buiten de bestanden om:');
238
+ lines.push('Errors not tied to a file:');
232
239
  for (const error of report.generalErrors)
233
240
  lines.push(`- ${error}`);
234
241
  if (report.omitted.generalErrors > 0)
235
- lines.push(`- (nog ${report.omitted.generalErrors} fout(en) niet getoond)`);
242
+ lines.push(`- (${report.omitted.generalErrors} more error(s) not shown)`);
236
243
  lines.push('');
237
244
  }
238
245
  const { totals } = report;
239
246
  if (report.page.total === 0 && totals.general === 0) {
240
247
  lines.push(report.baselineFiles.length > 0
241
- ? `Alle negeerregels matchen nog; in ${report.baselineFiles.join(', ')} is niets verouderd.`
242
- : 'Geen verouderde negeerregels.');
248
+ ? `All ignore rules still match; nothing in ${report.baselineFiles.join(', ')} is stale.`
249
+ : 'No stale ignore rules.');
243
250
  return lines.join('\n');
244
251
  }
245
252
  if (report.page.total > 0) {
246
- const kop = [`${totals.unmatched} negeerregel(s) matchen niets meer`];
253
+ const kop = [`${totals.unmatched} ignore rule(s) no longer match anything`];
247
254
  if (totals.countTooHigh > 0)
248
- kop.push(`${totals.countTooHigh} staan op een te hoog aantal`);
255
+ kop.push(`${totals.countTooHigh} have a count that is too high`);
249
256
  lines.push(`${kop.join(', ')}.`);
250
257
  if (report.baselineFiles.length > 0) {
251
- lines.push(`${totals.inBaseline} daarvan staan in ${report.baselineFiles.join(', ')}.`);
258
+ lines.push(`${totals.inBaseline} of them are in ${report.baselineFiles.join(', ')}.`);
252
259
  }
253
260
  if (report.byPath.length > 1) {
254
- lines.push('', 'Meeste per bestand:', ...report.byPath.map((row) => ` ${pad(row.count)} ${row.path}`));
261
+ lines.push('', 'Most per file:', ...report.byPath.map((row) => ` ${pad(row.count)} ${row.path}`));
255
262
  }
256
263
  const from = report.page.offset + 1;
257
264
  const to = report.page.offset + report.page.returned;
258
- lines.push('', `Regels ${from}-${to} van ${report.page.total}:`);
265
+ lines.push('', `Rules ${from}-${to} of ${report.page.total}:`);
259
266
  let current = null;
260
267
  for (const entry of report.entries) {
261
268
  if (entry.path !== current) {
@@ -264,26 +271,26 @@ export function renderUnmatched(report) {
264
271
  }
265
272
  const aantal = entry.kind === 'countTooHigh'
266
273
  ? entry.expected === null
267
- ? ' (te hoog aantal)'
268
- : ` (count ${entry.expected}, komt nog ${entry.occurred ?? '?'} keer voor)`
274
+ ? ' (count too high)'
275
+ : ` (count ${entry.expected}, still occurs ${entry.occurred ?? '?'} time(s))`
269
276
  : '';
270
- const herkomst = entry.inBaseline === false ? ' [niet uit de baseline]' : '';
277
+ const herkomst = entry.inBaseline === false ? ' [not from the baseline]' : '';
271
278
  lines.push(` ${entry.identifier ?? '-'} ${entry.pattern}${aantal}${herkomst}`);
272
279
  }
273
280
  }
274
281
  if (report.general.length > 0) {
275
- lines.push('', `${totals.general} patroon/patronen zonder pad matchen niets meer. Die staan niet in de ` +
276
- 'baseline maar in ignoreErrors van de config, of van een config die een pakket meebrengt:', ...report.general.map((pattern) => `- ${pattern}`));
282
+ lines.push('', `${totals.general} pattern(s) without a path no longer match anything. They are not in the ` +
283
+ 'baseline but in ignoreErrors of the config, or of a config that a package ships:', ...report.general.map((pattern) => `- ${pattern}`));
277
284
  if (report.omitted.general > 0)
278
- lines.push(`- (nog ${report.omitted.general} niet getoond)`);
285
+ lines.push(`- (${report.omitted.general} more not shown)`);
279
286
  }
280
- lines.push('', 'Wat je ermee kunt:', '- Een regel die niets meer matcht hoort bij een fout die opgelost is; die kan weg.', '- Bij een te hoog aantal verlaag je `count` naar wat er nog voorkomt.', totals.otherFindings > 0
281
- ? `- generate_baseline doet beide in één keer, maar zet ook de ${totals.otherFindings} huidige ` +
282
- 'bevinding(en) erin. Repareer die eerst, anders verstop je ze in de baseline.'
283
- : '- generate_baseline doet beide in één keer, als schrijven op deze server aanstaat.');
287
+ lines.push('', 'What you can do:', '- A rule that no longer matches anything belongs to an error that has been fixed; it can go.', '- For a count that is too high, lower `count` to what still occurs.', totals.otherFindings > 0
288
+ ? `- generate_baseline does both in one go, but also writes the ${totals.otherFindings} current ` +
289
+ 'finding(s) into it. Fix those first, or you hide them in the baseline.'
290
+ : '- generate_baseline does both in one go, if writing is enabled on this server.');
284
291
  if (report.page.hasMore) {
285
292
  const to = report.page.offset + report.page.returned;
286
- lines.push('', `Nog ${report.page.total - to} regel(s). Roep dezelfde tool opnieuw aan met offset=${to} voor de rest.`);
293
+ lines.push('', `${report.page.total - to} more rule(s). Call the same tool again with offset=${to} for the rest.`);
287
294
  }
288
295
  return lines.join('\n');
289
296
  }
@@ -298,7 +305,7 @@ function tally(entries) {
298
305
  .map(([path, count]) => ({ path, count }));
299
306
  }
300
307
  function shorten(pattern) {
301
- return pattern.length <= MAX_PATTERN_CHARS ? pattern : `${pattern.slice(0, MAX_PATTERN_CHARS)}… (afgekapt)`;
308
+ return pattern.length <= MAX_PATTERN_CHARS ? pattern : `${pattern.slice(0, MAX_PATTERN_CHARS)}… (truncated)`;
302
309
  }
303
310
  function clamp(value, low, high) {
304
311
  return Math.min(Math.max(Math.trunc(value), low), high);
@@ -1 +1 @@
1
- {"version":3,"file":"unmatched.js","sourceRoot":"","sources":["../src/unmatched.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unmatched.js","sourceRoot":"","sources":["../src/unmatched.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,9 +1,22 @@
1
1
  /**
2
- * Versie van de server zoals gemeld in de MCP-handshake. Spiegelt `version` in
3
- * package.json; die kan hier niet zomaar geïmporteerd worden, want een JSON-import
4
- * verhuist bij het bouwen mee naar dist/ en wijst dan naar het verkeerde bestand.
2
+ * Versie van de server zoals gemeld in de MCP-handshake, uit package.json.
3
+ *
4
+ * Gelezen bij het starten en niet geïmporteerd: een JSON-import lost TypeScript op bij
5
+ * het compileren en neemt package.json dan mee naar dist/, waarna hij naar het
6
+ * verkeerde bestand wijst. Tot 0.16 stond de versie hier daarom met de hand, bijgewerkt
7
+ * door een apart script in de release — drie onderdelen voor één getal. `src/` en `dist/`
8
+ * liggen allebei één map onder de pakketroot, dus `../package.json` vanaf dit bestand is
9
+ * in de tests, na het bouwen én in een geïnstalleerd pakket hetzelfde bestand.
5
10
  *
6
11
  * Staat los van server.ts omdat tools.ts hem ook nodig heeft, en server.ts
7
12
  * importeert tools.ts — dat zou een cyclus zijn.
8
13
  */
9
- export declare const VERSION = "0.16.0";
14
+ export declare const VERSION: string;
15
+ /**
16
+ * Leest `version` uit het package.json op `url`, of `'unknown'` als dat niet lukt.
17
+ *
18
+ * Terugvallen en niet gooien: dit draait bij het importeren, en een exception daar legt
19
+ * de hele server plat voor een getal dat alleen gemeld wordt. `unknown` staat wél
20
+ * zichtbaar in de opstartregel en in `server_config`, dus stil is het niet.
21
+ */
22
+ export declare function readVersion(url: URL): string;
package/dist/version.js CHANGED
@@ -1,10 +1,33 @@
1
+ import { readFileSync } from 'node:fs';
1
2
  /**
2
- * Versie van de server zoals gemeld in de MCP-handshake. Spiegelt `version` in
3
- * package.json; die kan hier niet zomaar geïmporteerd worden, want een JSON-import
4
- * verhuist bij het bouwen mee naar dist/ en wijst dan naar het verkeerde bestand.
3
+ * Versie van de server zoals gemeld in de MCP-handshake, uit package.json.
4
+ *
5
+ * Gelezen bij het starten en niet geïmporteerd: een JSON-import lost TypeScript op bij
6
+ * het compileren en neemt package.json dan mee naar dist/, waarna hij naar het
7
+ * verkeerde bestand wijst. Tot 0.16 stond de versie hier daarom met de hand, bijgewerkt
8
+ * door een apart script in de release — drie onderdelen voor één getal. `src/` en `dist/`
9
+ * liggen allebei één map onder de pakketroot, dus `../package.json` vanaf dit bestand is
10
+ * in de tests, na het bouwen én in een geïnstalleerd pakket hetzelfde bestand.
5
11
  *
6
12
  * Staat los van server.ts omdat tools.ts hem ook nodig heeft, en server.ts
7
13
  * importeert tools.ts — dat zou een cyclus zijn.
8
14
  */
9
- export const VERSION = '0.16.0';
15
+ export const VERSION = readVersion(new URL('../package.json', import.meta.url));
16
+ /**
17
+ * Leest `version` uit het package.json op `url`, of `'unknown'` als dat niet lukt.
18
+ *
19
+ * Terugvallen en niet gooien: dit draait bij het importeren, en een exception daar legt
20
+ * de hele server plat voor een getal dat alleen gemeld wordt. `unknown` staat wél
21
+ * zichtbaar in de opstartregel en in `server_config`, dus stil is het niet.
22
+ */
23
+ export function readVersion(url) {
24
+ try {
25
+ const pakket = JSON.parse(readFileSync(url, 'utf8'));
26
+ const versie = pakket?.version;
27
+ return typeof versie === 'string' && versie !== '' ? versie : 'unknown';
28
+ }
29
+ catch {
30
+ return 'unknown';
31
+ }
32
+ }
10
33
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,GAAQ;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAI,MAAuC,EAAE,OAAO,CAAC;QACjE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phpstan-mcp-mx",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "description": "MCP server that exposes PHPStan as tools, for several PHP projects at once",
5
5
  "keywords": [
6
6
  "mcp",
@@ -58,7 +58,6 @@
58
58
  "@eslint/js": "^10.0.1",
59
59
  "@forge-for-gitea/semantic-release-gitea": "^1.2.0",
60
60
  "@semantic-release/changelog": "^7.0.0",
61
- "@semantic-release/exec": "^7.1.0",
62
61
  "@semantic-release/git": "^11.0.1",
63
62
  "@types/node": "^24.13.4",
64
63
  "@vitest/coverage-v8": "^5.0.0",